@import url('https://fonts.googleapis.com/css2?family=Bungee&family=Chakra+Petch:wght@400;500;600;700&display=swap');
:root{font-family:'Segoe UI',system-ui,sans-serif;color:var(--fg);background:var(--chip);font-size:14px;color-scheme:light;--ink:#152946;--muted:#657891;--rule:#dce3ee;--blue:#4385f5;--amber:#e5aa57;--cyan:#54c6c5;--player:#4385f5}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,select,input[type=range]{cursor:pointer}button,a{transition:background .16s,color .16s,border-color .16s}button{border:0;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #4385f5;outline-offset:4px}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display);font-weight:500;text-wrap:balance}h1{font-size:42px;line-height:1.13;letter-spacing:0}h2{font-size:21px;letter-spacing:0}h3{font-size:16px}p{line-height:1.75}[hidden]{display:none!important}.site-header{max-width:1600px;margin:auto;height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;border-bottom:1px solid var(--rule);gap:20px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:27px;font-family:var(--display);letter-spacing:0}.brand small{display:block;color:var(--muted);font:13px 'Segoe UI',sans-serif;letter-spacing:.1px;margin-top:2px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;background:var(--ink);color:var(--cyan);border-radius:0;font-size:39px}.quiet-button{background:none;color:var(--dim);display:flex;align-items:center;gap:10px;font-size:13px;padding:7px 0}.quiet-button span{border:1px solid var(--line);width:20px;height:20px;border-radius:50%;display:grid;place-items:center}.quiet-button:hover{color:var(--dim)}.match-progress{font-size:13px;color:var(--dim);padding:9px 14px;background:var(--chip);border-radius:0}.screen{max-width:1380px;margin:auto;padding:42px 40px;min-height:calc(100dvh - 154px)}.lobby{display:grid;grid-template-columns:1fr 470px;align-items:center;gap:90px;padding-top:54px;padding-bottom:54px}.intro-label{color:var(--dim);font-size:13px;margin-bottom:20px}.lobby h1{font-size:56px;letter-spacing:0;line-height:1.07;margin-bottom:22px}.lead{max-width:480px;font-size:15px;color:var(--dim);line-height:1.8}.lobby-art{display:block;width:100%;max-width:520px;height:auto;margin:28px 0 12px}.lobby-art text{font-family:var(--display);font-size:16px;fill:var(--fg)}.flow-note{display:flex;flex-wrap:wrap;gap:14px 20px;font-size:12px;color:var(--dim)}.flow-note>span{display:flex;align-items:center;gap:7px}.flow-note b{font-weight:500;display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:var(--chip);color:var(--fg)}.setup-panel{background:var(--panel);border:1px solid var(--rule);border-radius:0;padding:30px;box-shadow:0 10px 30px #15294604}.setup-panel>p{color:var(--muted);font-size:13px;margin-top:8px}.count-field{padding:0;border:0;margin:27px 0 21px}.count-field legend{font-size:13px;color:var(--dim);margin-bottom:10px}.count-options{display:flex;gap:7px}.count-options label{display:flex;flex:1}.count-options input{position:absolute;width:1px;height:1px;opacity:0}.count-options span{display:grid;place-items:center;width:100%;padding:10px 9px;background:var(--chip);border:1px solid var(--line);border-radius:0;font-size:13px;cursor:pointer}.count-options input:checked+span{color:#fff;background:var(--ink);border-color:var(--ink)}.count-options input:focus-visible+span{outline:3px solid #4385f5;outline-offset:3px}.player-names{display:grid;grid-template-columns:1fr 1fr;gap:16px 13px}.player-names label{font-size:13px;color:var(--dim);min-width:0}.name-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color);margin-right:6px}.player-names input{display:block;width:100%;font-size:13px;color:var(--ink);padding:11px 10px;border:1px solid var(--line);background:var(--panel);border-radius:0;margin-top:7px;min-width:0}.setup-options{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:24px}.setup-options label{font-size:13px;color:var(--dim)}select{display:block;width:100%;padding:10px 9px;background:var(--panel);border:1px solid var(--line);border-radius:0;color:var(--ink);font-size:13px;margin-top:8px;min-height:37px}.primary-button,.secondary-button{display:flex;align-items:center;justify-content:center;text-decoration:none;text-align:center;gap:14px;min-height:45px;padding:12px 18px;border-radius:0;font-size:13px;font-weight:500;line-height:1.5}.primary-button{color:#fff;background:var(--ink)}.primary-button:hover{background:#294b70}.primary-button:disabled{background:#708197;cursor:default}.secondary-button{border:1px solid var(--line);background:var(--panel);color:var(--fg)}.secondary-button:hover{background:var(--chip);border-color:var(--line)}.setup-panel>.primary-button{width:100%;margin-top:26px}.setup-panel .primary-button span{margin-left:auto}.solo-option{margin-top:16px;border-top:1px solid var(--rule);padding-top:19px}.solo-option button{width:100%}.solo-option span{display:block;color:var(--muted);font-size:12px;text-align:center;margin-top:8px;line-height:1.7}.form-error{color:#ff6b81!important;font-size:13px;padding-top:12px}.curtain{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;max-width:900px;padding-top:45px;padding-bottom:55px}.player-badge{display:grid;place-items:center;width:66px;height:66px;border-radius:0;background:var(--player);color:#fff;font-family:var(--display);font-size:29px;margin-bottom:23px}.round-label{color:var(--dim);font-size:13px;margin-bottom:12px}.curtain h1{max-width:750px;overflow-wrap:anywhere}.curtain-copy{font-size:14px;color:var(--dim);max-width:500px;margin-top:18px}.challenge-summary{margin:28px 0;padding:22px 25px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:520px;width:100%}.challenge-summary h2{font-size:17px;margin-bottom:8px}.challenge-summary p{font-size:13px;color:var(--dim)}.challenge-summary p:last-child{font-size:13px;margin-top:8px}.curtain>.primary-button{min-width:280px}.privacy-note{font-size:13px;color:var(--dim);max-width:420px;line-height:1.8;margin-top:17px}.sealed-symbol{font-size:34px;display:grid;place-items:center;background:var(--chip);color:var(--fg);width:66px;height:66px;border-radius:0;margin-bottom:24px}.sealed-players{padding:0;list-style:none;display:flex;gap:13px;flex-wrap:wrap;justify-content:center;margin:26px 0}.sealed-players li{font-size:13px;padding:9px 12px;background:var(--chip);border-radius:0;display:flex;align-items:center;gap:8px}.sealed-players i{width:7px;height:7px;border-radius:50%;background:var(--player)}.draw-heading{display:flex;justify-content:space-between;align-items:start;gap:30px;margin-bottom:26px}.draw-heading h1{font-size:32px;max-width:700px;overflow-wrap:anywhere}.draw-heading p:last-child{font-size:13px;color:var(--dim);margin-top:11px}.turn-timer{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:4px 7px;color:var(--ink);flex-shrink:0;min-width:155px}.turn-timer>span{grid-column:1/-1;font-size:12px;color:var(--dim)}.turn-timer output{font-family:var(--display);font-size:43px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:0}.turn-timer small{font-size:13px;color:var(--muted)}.turn-timer.urgent{color:#ff6b81}.draw-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:27px;align-items:start}.drawing-field{border:1px solid var(--line);border-radius:0;background:var(--panel);overflow:hidden;min-width:0}.private-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--dim);padding:17px 22px;border-bottom:1px solid var(--line)}.privacy-dot{width:6px;height:6px;background:var(--player);border-radius:50%}#draw-canvas{width:100%;touch-action:none;user-select:none}#draw-canvas svg{display:block;width:100%;touch-action:none}#draw-canvas text{font-family:'Segoe UI',sans-serif;font-size:13px;fill:var(--dim)}#draw-canvas .control-label{font-size:13px;fill:var(--fg);font-weight:600}#draw-canvas .endpoint-label{font-size:13px;fill:var(--fg);font-weight:600}#draw-canvas .handle{cursor:grab}#draw-canvas[data-dragging=true] .handle{cursor:grabbing}.editor-caption{font-size:12px;color:var(--dim);padding:0 22px 18px}.draw-controls{padding:20px 0 0}.draw-controls h2{font-size:18px;margin-bottom:11px}.draw-controls>p{font-size:13px;color:var(--dim);line-height:1.8;margin-bottom:23px}.draw-controls>label{display:block;font-size:13px;color:var(--dim);margin-bottom:25px}.slider-field{margin:0 0 24px}.slider-field label{display:flex;justify-content:space-between;font-size:13px;gap:10px;color:var(--dim)}.slider-field output{font-variant-numeric:tabular-nums;color:var(--fg);font-weight:600;white-space:nowrap}input[type=range]{display:block;appearance:none;-webkit-appearance:none;width:100%;height:5px;border-radius:0;background:var(--chip);margin:15px 0 5px;accent-color:var(--player)}input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:17px;height:17px;border-radius:50%;background:var(--player);border:3px solid var(--line);box-shadow:0 0 0 1px #bccbdc}input[type=range]::-moz-range-thumb{width:12px;height:12px;border:3px solid var(--line);border-radius:50%;background:var(--player)}.text-button{background:none;padding:0;color:var(--dim);font-size:13px}.text-button:hover{color:var(--dim)}hr{height:1px;border:0;background:var(--rule);margin:24px 0}.draw-controls .secret-note{font-size:13px;margin-bottom:20px}.draw-controls>.primary-button{width:100%;background:var(--ink)}.lock-note{font-size:12px;color:var(--dim);display:block;text-align:center;margin-top:10px;line-height:1.6}.race-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:25px}.race-heading h1{font-size:30px}.race-heading p:last-child{font-size:13px;color:var(--dim);margin-top:10px}.physics-badge{font-size:12px;color:var(--dim);white-space:nowrap}.race-layout{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:25px;align-items:start}.race-layout>div{min-width:0}.race-stage{position:relative;height:460px;background:var(--pit);border-radius:0;overflow:hidden;color:#fff;isolation:isolate}#race-viewport{position:absolute;inset:0}#race-viewport canvas{display:block;width:100%;height:100%;touch-action:none}.stage-camera{position:absolute;top:19px;right:19px;padding:3px;display:flex;gap:3px;background:#10203959;border:1px solid #a1b4d222;border-radius:0}.stage-camera button{background:none;color:#a2b8d3;padding:7px 11px;font-size:13px;border-radius:0}.stage-camera button[aria-pressed=true]{background:#b6cbe11a;color:#fff}.endpoint{position:absolute;top:0;left:0;pointer-events:none;border-left:2px solid var(--line);padding-left:8px;font-size:16px;font-family:var(--display)}.endpoint span{display:block;font:12px 'Segoe UI',sans-serif;color:#adc4e0;margin-top:2px}.race-legend{position:absolute;left:22px;right:22px;bottom:18px;display:flex;gap:12px 20px;flex-wrap:wrap;font-size:13px;color:#d4e0ed}.race-legend span{display:flex;align-items:center;gap:7px}.race-legend i{width:16px;height:3px;border-radius:0;background:var(--player)}.marble-label{position:absolute;top:0;left:0;pointer-events:none;font-size:12px;color:#fff;border-radius:0;padding:2px 5px;background:#203958d9}.countdown{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#10213c47;pointer-events:none}.countdown>span{font-size:13px;color:#d5e3f5}.countdown output{font-family:var(--display);font-size:104px;line-height:1.2;letter-spacing:0}.race-transport{display:flex;align-items:center;gap:18px;padding:18px 1px}.race-transport .secondary-button{min-height:37px;padding:7px 15px;min-width:85px;font-size:13px}.race-clock{display:flex;align-items:baseline;gap:5px;flex:1}.race-clock output{font-size:28px;font-family:var(--display);font-variant-numeric:tabular-nums;letter-spacing:0}.race-clock span{font-size:13px;color:var(--muted)}.race-transport>label{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}.race-transport select{width:68px;min-height:32px;padding:5px 7px;margin:0;font-size:13px}.replay-scrub{padding:0 1px}.replay-scrub label{font-size:13px;color:var(--muted)}.race-results{background:var(--panel);border:1px solid var(--line);border-radius:0;padding:23px 20px}.race-results>h2{font-size:18px;margin-bottom:18px}.arrival-row{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:9px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.arrival-number{color:var(--dim);font-size:13px;font-variant-numeric:tabular-nums}.arrival-row .player-name{display:flex;align-items:center;gap:7px;min-width:0;font-size:13px;overflow-wrap:anywhere}.player-color{width:7px;height:7px;border-radius:50%;background:var(--player);flex:0 0 7px}.arrival-time{font-variant-numeric:tabular-nums;font-size:13px;white-space:nowrap}.arrival-row small{display:block;font-size:12px;color:var(--dim);margin-top:4px}.round-result{border-top:1px solid var(--rule);padding-top:23px;margin-top:6px}.round-result>p:first-child{font-size:12px;color:var(--dim);margin-bottom:7px}.round-result h3{font-size:23px;line-height:1.3;overflow-wrap:anywhere;letter-spacing:0}.round-result>p:last-child{font-size:13px;line-height:1.8;color:var(--dim);margin-top:10px}.results-actions{display:grid;gap:9px;margin-top:22px}.results-actions button{width:100%;font-size:13px}.score-panel{border-top:1px solid var(--rule);padding-top:20px;margin-top:22px}.score-panel h3{font-size:13px;margin-bottom:12px}.score-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:10px;font-size:13px}.score-row>span{display:flex;align-items:center;gap:7px;overflow-wrap:anywhere}.score-row b{font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.race-rules-note{font-size:12px;line-height:1.8;color:var(--dim);margin-top:18px}.final-scores{max-width:480px;width:100%;margin:30px 0;text-align:left}.final-scores .score-row{border-bottom:1px solid var(--line);padding:14px 0;font-size:15px}.final-scores .score-row b{font-size:18px}.final-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.site-footer{max-width:1600px;margin:auto;display:flex;justify-content:space-between;gap:20px;padding:22px 40px;color:var(--dim);font-size:12px}.race-error{position:absolute;inset:30px;display:grid;place-items:center;text-align:center;line-height:1.8;color:#d5e3f5;background:var(--pit)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{border:1px solid var(--rule);border-radius:0;padding:28px;max-width:610px;width:calc(100% - 32px);color:var(--ink);overscroll-behavior:contain;box-shadow:0 20px 100px #1529464d}dialog::backdrop{background:#10213b9e;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px}.dialog-heading button{border-radius:50%;width:30px;height:30px;font-size:20px;background:var(--chip)}dialog ol{padding-left:21px;margin:0}dialog li{font-size:13px;line-height:1.8;margin-bottom:11px;color:var(--dim)}dialog strong{color:var(--ink);font-weight:600}dialog h3{margin:24px 0 9px;font-size:16px}dialog p{font-size:13px;color:var(--dim);margin-top:10px;line-height:1.8}
@media(min-width:1500px){.screen{padding-top:60px}.lobby{gap:120px;grid-template-columns:1fr 490px}.lobby h1{font-size:64px}.race-stage{height:530px}.race-layout{grid-template-columns:minmax(0,1fr) 300px}}
@media(max-width:1150px){.lobby{gap:45px;grid-template-columns:1fr 420px}.lobby h1{font-size:47px}.lead{font-size:14px}.setup-panel{padding:26px}.screen{padding:35px 30px}.site-header{padding:0 30px}.draw-layout,.race-layout{grid-template-columns:minmax(0,1fr) 240px;gap:23px}.race-results{padding:21px 16px}.race-heading h1{font-size:27px}.race-stage{height:440px}.draw-heading h1{font-size:29px}.turn-timer{min-width:135px}.site-footer{padding-left:30px;padding-right:30px}}
@media(max-width:850px){.lobby{grid-template-columns:1fr;gap:30px;max-width:670px}.lobby h1{font-size:48px}.lobby-story{position:relative}.lobby-art{max-width:390px;margin-top:12px}.lobby .lead{max-width:500px}.setup-panel{padding:28px}.lobby{padding-top:35px}.draw-layout,.race-layout{grid-template-columns:minmax(0,1fr)}.draw-controls{padding:20px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.draw-controls h2,.draw-controls>p,.draw-controls>label,.draw-controls>hr,.draw-controls>.primary-button,.draw-controls>.lock-note{grid-column:1/-1}.draw-controls>label{max-width:350px}.draw-controls .secret-note{margin-bottom:18px}.draw-controls .text-button{justify-self:start}.draw-controls>hr{width:100%}.race-results{padding:25px}.race-heading .physics-badge{display:none}.arrival-list{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.score-panel{margin-top:20px}.results-actions{grid-template-columns:1fr 1fr}.score-panel #scores{display:flex;flex-wrap:wrap;gap:0 30px}.score-row{min-width:150px}.race-stage{height:450px}.curtain{padding-top:40px;padding-bottom:45px}.curtain h1{font-size:38px}.site-footer{line-height:1.7}.match-progress{font-size:12px}}
@media(max-width:520px){.site-header{height:76px;padding:0 18px;gap:12px;flex-wrap:wrap}.brand{font-size:24px;gap:9px}.brand-mark{width:35px;height:35px;font-size:33px;border-radius:0}.brand small{font-size:12px}.quiet-button{font-size:12px;gap:6px}.quiet-button span{width:17px;height:17px}.match-progress{order:3;margin:0 auto;padding:5px 10px;background:none;font-size:12px}.site-header:has(.match-progress:not([hidden])){height:103px;padding-top:14px;padding-bottom:10px}.screen{padding:29px 16px;min-height:calc(100dvh - 148px)}.lobby{gap:27px}.lobby h1{font-size:41px;letter-spacing:0;line-height:1.1}.intro-label{font-size:13px;margin-bottom:15px}.lead{font-size:13px}.lobby-art{margin:18px 0 13px;max-width:390px}.flow-note{font-size:12px;gap:10px 12px}.flow-note b{width:17px;height:17px;font-size:12px}.setup-panel{padding:24px 20px;border-radius:0}.setup-panel h2{font-size:22px}.setup-panel>p{font-size:13px}.count-field{margin-top:23px}.count-options span{font-size:13px;padding:10px 7px}.player-names{gap:15px 10px}.player-names input{font-size:16px;padding:10px 8px}.setup-options{gap:10px}.setup-options label{font-size:12px}select{font-size:13px;min-height:40px}.primary-button,.secondary-button{min-height:44px;font-size:13px}.curtain{padding-top:38px}.curtain h1{font-size:34px;letter-spacing:0}.curtain-copy{font-size:13px}.player-badge,.sealed-symbol{width:57px;height:57px;font-size:26px;margin-bottom:22px}.challenge-summary{padding:20px 6px;margin:22px 0}.challenge-summary h2{font-size:17px}.challenge-summary p{font-size:13px}.curtain>.primary-button{min-width:0;width:100%;max-width:350px}.privacy-note{font-size:12px;max-width:300px}.draw-heading{gap:14px;margin-bottom:21px}.draw-heading h1{font-size:25px;letter-spacing:0}.draw-heading p:last-child{font-size:13px;line-height:1.7}.draw-heading .round-label{font-size:12px}.turn-timer{min-width:74px;max-width:90px;gap:4px}.turn-timer>span{font-size:12px;line-height:1.6}.turn-timer output{font-size:36px}.turn-timer small{font-size:12px;grid-column:1/-1}.drawing-field{border-radius:0}.private-label{font-size:12px;padding:14px 15px}.editor-caption{font-size:12px;padding:0 15px 15px}.draw-controls{gap:0 17px;padding-top:9px}.draw-controls h2{font-size:19px}.draw-controls>p{font-size:13px}.draw-controls>label{font-size:13px}.slider-field label{font-size:13px}.draw-controls .primary-button{font-size:13px}.race-heading h1{font-size:26px;letter-spacing:0}.race-heading p:last-child{font-size:13px;line-height:1.7}.race-stage{height:390px;border-radius:0}.stage-camera{top:16px;right:16px}.stage-camera button{padding:7px 10px}.race-legend{left:17px;right:15px;bottom:17px;font-size:12px;gap:12px 16px}.race-legend span{max-width:45%;overflow-wrap:anywhere}.endpoint{font-size:15px}.endpoint span{font-size:12px}.countdown output{font-size:85px}.race-clock output{font-size:25px}.race-transport{gap:14px;padding-top:16px}.race-transport>label{font-size:12px;gap:5px}.race-transport select{width:59px}.race-results{padding:21px 17px}.arrival-list{grid-template-columns:1fr}.arrival-row{padding:13px 0}.race-results>h2{font-size:19px}.round-result h3{font-size:26px}.results-actions{grid-template-columns:1fr}.score-panel #scores{gap:0 20px}.score-row{min-width:120px}.site-footer{padding:20px 18px;font-size:12px}.site-footer>span:last-child{max-width:185px;text-align:right}.final-scores .score-row{font-size:14px}.final-actions{width:100%;max-width:340px}.final-actions>*{width:100%}.sealed-players{gap:9px}.sealed-players li{font-size:13px;padding:8px 10px}.marble-label{font-size:12px}dialog{padding:23px}.dialog-heading h2{font-size:21px}.dialog-heading{margin-bottom:20px}}
.reuse-draft{display:block;margin-top:15px;text-align:left;line-height:1.7}
.level-conditions{display:flex;justify-content:center;gap:16px 35px;flex-wrap:wrap;text-align:left;margin-top:19px}.level-conditions>div{display:grid;gap:5px;border-left:2px solid var(--line);padding-left:12px}.level-conditions span{font-size:12px;color:var(--dim)}.level-conditions strong{font-size:14px;font-weight:500;color:var(--fg)}.level-conditions small{font-size:12px;color:var(--dim)}.level-conditions .surface-condition[data-resistance="0.3"]{border-color:#c59164}.level-conditions .surface-condition[data-resistance="0.3"] strong{color:var(--dim)}.challenge-summary #handoff-hint{margin-top:20px}.draw-conditions{justify-content:start;gap:35px;margin:0 0 24px;padding:17px 20px;border:1px solid var(--line);background:var(--chip);border-radius:0}.draw-conditions>div{border-left:0;padding-left:0}.draw-conditions strong{font-size:15px}.match-history{max-width:760px;width:100%;text-align:left;margin:0 0 28px}.match-history h2{font-size:18px;margin-bottom:10px}.match-history>p{font-size:13px;color:var(--dim);line-height:1.8;margin-bottom:17px}.history-table-scroll{width:100%;overflow-x:auto}.match-history table{width:100%;border-collapse:collapse;font-size:13px;min-width:520px}.match-history th,.match-history td{text-align:right;padding:13px 10px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;font-weight:400}.match-history th:first-child{text-align:left;padding-left:0;min-width:205px}.match-history th:last-child,.match-history td:last-child{padding-right:0}.match-history thead th{font-size:12px;color:var(--dim)}.match-history tbody th{font-weight:500}.match-history th small{display:block;font-size:12px;color:var(--dim);margin-top:6px;font-weight:400}.complete{max-width:960px}.complete .final-scores{max-width:480px}
@media(max-width:520px){.level-conditions{gap:18px 24px}.level-conditions strong{font-size:13px}.level-conditions span,.level-conditions small{font-size:12px}.draw-conditions{margin-bottom:20px;padding:15px 16px;gap:22px}.draw-conditions strong{font-size:14px}.match-history table{font-size:13px}.match-history h2{font-size:17px}.match-history>p{font-size:12px}.challenge-summary{padding-left:0;padding-right:0}}
.particle-selection{border:0;padding:0;margin:0 0 25px;min-width:0}.particle-selection legend{font-family:var(--display);font-size:18px;letter-spacing:0;padding:0;margin-bottom:8px}.particle-selection>p{font-size:13px;line-height:1.8;color:var(--dim);margin-bottom:15px}.particle-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.particle-card{position:relative;cursor:pointer;min-width:0}.particle-card input{position:absolute;width:1px;height:1px;opacity:0;margin:0}.particle-card-content{display:grid;grid-template-columns:42px minmax(0,1fr);gap:5px 13px;align-items:start;background:var(--panel);border:1px solid var(--line);border-radius:0;padding:17px;min-height:146px;height:100%}.particle-card:hover .particle-card-content{border-color:var(--line);background:var(--panel)}.particle-card input:checked+.particle-card-content{border-color:var(--player);box-shadow:0 0 0 1px var(--player);background:var(--chip)}.particle-card input:focus-visible+.particle-card-content{outline:3px solid var(--player);outline-offset:4px}.particle-preview{display:block;width:36px;height:36px;border-radius:50%;grid-row:1/4;grid-column:1;margin:5px 0 0}.particle-preview.light{background:radial-gradient(circle at 30% 25%,#fff 0,#e6f3ff 36%,#aac4e747 78%);border:2px solid var(--line);box-shadow:inset -3px -4px 8px #4385f51a}.particle-preview.steel{background:radial-gradient(circle at 28% 23%,#f8fbff 0,#a6b4c6 27%,#3d5572 70%,#233b57 100%);box-shadow:inset -3px -4px 5px #192f4c66}.particle-preview.ceramic{background:radial-gradient(circle at 28% 23%,#fff 0,#f3eee4 48%,#bcb6a9 100%);border:1px solid var(--line);box-shadow:inset -2px -3px 5px #aa9e8640}.particle-identity{display:flex;align-items:baseline;justify-content:space-between;gap:10px;grid-column:2;flex-wrap:wrap}.particle-identity strong{font-size:14px;font-weight:600;color:var(--fg)}.particle-identity small{font-size:12px;color:var(--dim);white-space:nowrap}.particle-strength{grid-column:2;font-size:13px;line-height:1.7;color:var(--dim)}.particle-weakness{grid-column:2;font-size:12px;line-height:1.7;color:var(--dim)}.particle-selection .particle-choice-note{font-size:12px;color:var(--dim);margin:10px 0 0}.wind-condition strong{color:var(--dim)}.arrival-row .revealed-particle{color:var(--dim);font-size:12px;margin-top:5px}.match-history td small{display:block;font-size:12px;color:var(--dim);margin-top:5px}.race-legend>span{line-height:1.7}.level-conditions{gap:17px 30px}
@media(max-width:850px){.particle-card-content{padding:14px;grid-template-columns:32px minmax(0,1fr);gap:5px 10px}.particle-preview{width:29px;height:29px}.particle-identity{gap:4px}.particle-identity strong{font-size:13px}.particle-strength{font-size:12px}.particle-weakness{font-size:12px}.particle-options{gap:10px}}
@media(max-width:520px){.particle-options{gap:8px}.particle-card-content{display:flex;flex-direction:column;padding:12px 9px;gap:8px;min-height:246px}.particle-preview{width:32px;height:32px;margin:1px 0 2px}.particle-identity{display:flex;flex-direction:column;align-items:start;gap:4px;min-height:48px;justify-content:start}.particle-identity strong{font-size:13px;line-height:1.4}.particle-identity small{font-size:12px}.particle-strength{font-size:12px;line-height:1.65}.particle-weakness{font-size:12px;line-height:1.65;margin-top:auto}.particle-selection legend{font-size:18px}.particle-selection>p{font-size:12px}.particle-selection .particle-choice-note{font-size:12px;line-height:1.8}.level-conditions{gap:17px 24px}.race-legend>span{font-size:12px}.arrival-row .revealed-particle{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Discovery, rematch and post-race experiments. */
.setup-map{display:block;margin-top:22px;font-size:13px;color:var(--dim)}.setup-map>span{display:block;font-size:13px;line-height:1.7;margin-top:9px;color:var(--dim)}.solo-option>label{display:block;font-size:13px;color:var(--dim)}.solo-option>p{font-size:12px;line-height:1.7;color:var(--dim);margin:8px 0 14px}.match-itinerary{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;list-style:none;padding:0;width:100%;max-width:610px;margin:0 0 25px;text-align:left}.match-itinerary li{flex:1;min-width:115px;padding:11px 12px;border-bottom:2px solid var(--line);color:var(--dim)}.match-itinerary li[aria-current=step]{color:var(--fg);border-color:#4385f5;background:var(--chip);border-radius:0}.match-itinerary span{display:block;font-size:13px;font-weight:600}.match-itinerary small{display:block;font-size:12px;margin-top:7px;line-height:1.5}.round-change{font-size:13px;color:var(--dim);margin:-5px 0 20px}.recovered-path{padding:13px 17px;margin:0 0 23px;border-left:3px solid #54aaa9;background:var(--chip);font-size:13px;color:var(--fg);line-height:1.8}.inspection-toolbar,.experiment-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 20px;padding:17px 20px;background:var(--chip);border:1px solid var(--line);border-radius:0}.inspection-toolbar p,.experiment-banner p{font-size:13px;color:var(--dim);max-width:620px}.inspection-toolbar button,.experiment-banner button{flex-shrink:0}.experiment-banner{background:var(--chip);border-color:var(--line)}.experiment-banner p{color:var(--fg)}.race-learning{border-top:1px solid var(--line);margin-top:30px;padding-top:25px;max-width:1000px}.learning-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.learning-heading h2{font-size:21px}.learning-heading label{font-size:12px;color:var(--dim);min-width:165px;max-width:240px}.learning-heading select{margin-top:5px}.moment-fact{font-size:16px;line-height:1.7;max-width:780px;margin:16px 0 0;color:var(--fg)}.improvement-note{font-size:13px;line-height:1.8;margin-top:10px;color:var(--dim)}.learning-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.learning-actions button{font-size:13px}.particle-comparison{border-top:1px solid var(--line);padding-top:22px;margin-top:22px;max-width:600px}.particle-comparison h3{font-size:18px}.particle-comparison>p{font-size:13px;color:var(--dim);margin-top:8px}.particle-comparison table{width:100%;border-collapse:collapse;font-size:13px;margin-top:13px}.particle-comparison th,.particle-comparison td{padding:12px 8px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums;font-weight:400}.particle-comparison th:first-child{text-align:left;padding-left:0}.particle-comparison thead th{font-size:12px;color:var(--dim)}.particle-comparison small{display:block;font-size:12px;color:var(--dim);margin-top:5px}
@media(max-width:520px){.match-itinerary{gap:5px;margin-bottom:24px}.match-itinerary li{padding:10px 7px;min-width:85px}.match-itinerary span{font-size:13px}.match-itinerary small{font-size:12px}.round-change,.recovered-path{font-size:13px}.inspection-toolbar,.experiment-banner{align-items:stretch;flex-direction:column;padding:16px;gap:12px}.inspection-toolbar p,.experiment-banner p{font-size:13px}.learning-heading{align-items:start;flex-direction:column;gap:14px}.learning-heading label{width:100%;max-width:none}.learning-heading h2{font-size:20px}.moment-fact{font-size:14px;margin-top:14px}.learning-actions{display:grid;grid-template-columns:1fr;width:100%}.race-learning{padding-top:21px;margin-top:24px}.particle-comparison h3{font-size:17px}}
.draw-controls>.previous-track-option{display:flex;align-items:center;gap:9px;max-width:none;font-size:13px;line-height:1.6;margin:18px 0 0;color:var(--dim)}.previous-track-option input{width:16px;height:16px;accent-color:var(--player);flex-shrink:0}.terrain-note{font-size:13px;line-height:1.8;color:var(--dim);background:var(--chip);border-left:3px solid #cfa45f;padding:12px 16px;max-width:780px;margin-top:12px}.zone-condition strong{color:var(--zone-ink,var(--dim))}.zone-condition{border-color:var(--zone,#d7ad66)!important}.terrain-label{pointer-events:none}.race-learning .terrain-note{font-size:13px}@media(max-width:520px){.draw-controls>.previous-track-option{font-size:13px}.race-learning .terrain-note{font-size:13px;padding:11px 13px}}
.gate-objective{border:1px solid var(--line);border-left:3px solid #c89c4e;background:var(--chip);border-radius:0;padding:14px 17px;margin:0 0 22px;color:var(--fg)}.gate-objective strong{font-size:13px;font-weight:600}.gate-objective p{font-size:13px;line-height:1.8;margin-top:5px}.gate-objective[data-hit=true]{border-color:var(--line);border-left-color:#3f9b89;background:var(--chip);color:var(--fg)}.gate-result-note{border-left:3px solid #52a7a6;background:var(--chip);color:var(--dim);padding:12px 16px;font-size:13px;line-height:1.8;margin-top:12px;max-width:780px}.gate-condition strong{color:var(--dim)}.gate-condition{border-color:#6bb5b6!important}select:disabled{background:var(--chip);color:var(--dim);cursor:default}.gate-label{max-width:220px}.match-itinerary li{overflow-wrap:anywhere}@media(max-width:520px){.gate-objective{padding:12px 14px;margin-bottom:19px}.gate-objective strong{font-size:13px}.gate-objective p,.gate-result-note{font-size:13px}.gate-result-note{padding:11px 13px}.gate-label{max-width:190px}}
.header-actions{display:flex;align-items:center;gap:20px}.quiet-button:disabled{opacity:.4;cursor:default}.challenge-entry{margin-top:19px;padding-top:17px;border-top:1px solid var(--rule)}.challenge-entry p{font-size:13px;color:var(--dim);margin-bottom:10px}.challenge-entry button{width:100%;font-size:13px}.challenge-share{width:100%;max-width:760px;text-align:left;border-top:1px solid var(--line);padding-top:26px;margin:0 0 30px}.challenge-share h2{font-size:21px}.challenge-share>p{font-size:13px;color:var(--dim);max-width:640px;margin:10px 0 17px;line-height:1.8}.challenge-share>label{display:block;max-width:290px;font-size:13px;color:var(--dim);margin-bottom:14px}.challenge-share button{font-size:13px}.challenge-share #share-output{margin-top:18px}.challenge-share #share-output>label{display:block;font-size:13px;color:var(--dim)}.challenge-share #share-status{font-size:13px;color:var(--dim);margin-top:10px}.challenge-share textarea,.challenge-dialog textarea{display:block;width:100%;max-width:100%;padding:12px;border:1px solid var(--line);border-radius:0;margin:8px 0 13px;background:var(--panel);color:var(--fg);font:13px/1.7 Consolas,monospace;resize:vertical;overflow-wrap:anywhere;min-height:90px;max-height:260px}.challenge-dialog,.records-dialog{max-height:86dvh;overflow-y:auto}.challenge-dialog>label,.challenge-preview>label,.records-dialog>label{display:block;font-size:13px;color:var(--dim);margin-top:17px}.challenge-preview{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.challenge-preview h3{font-size:20px;overflow-wrap:anywhere}.challenge-preview>p{font-size:13px}.challenge-preview ol{list-style:none;padding:0;margin:15px 0}.challenge-preview li{border-bottom:1px solid var(--line);padding:10px 0}.challenge-preview li strong{font-size:13px;font-weight:500;display:block}.challenge-preview li span{display:block;font-size:12px;margin-top:4px;color:var(--dim)}.challenge-preview input{display:block;width:100%;padding:11px;border:1px solid var(--line);border-radius:0;margin:8px 0 16px;font-size:14px;color:var(--fg)}.record-note{max-width:780px;font-size:13px;line-height:1.8;color:var(--fg);margin-top:12px;padding:11px 15px;border:1px solid var(--line);border-radius:0;background:var(--chip)}.personal-records{list-style:none;padding:0;margin:17px 0 22px}.personal-records li{border-top:1px solid var(--line);padding:14px 0}.personal-records li>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.personal-records h3{font-size:15px;overflow-wrap:anywhere}.personal-records strong{font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--fg);font-size:15px}.personal-records p{font-size:13px;margin-top:6px;overflow-wrap:anywhere}.personal-records small{display:block;font-size:12px;line-height:1.7;margin-top:5px;color:var(--dim)}.records-dialog #records-message{font-size:13px;color:var(--dim);margin-top:16px}.clear-records-confirm{margin-top:15px;padding:14px;border:1px solid var(--line);border-radius:0;background:var(--chip)}.clear-records-confirm p{margin:0 0 12px}.clear-records-confirm button{display:inline-flex;font-size:13px;margin-right:7px;min-height:38px}
@media(max-width:520px){.header-actions{gap:13px}.header-actions .quiet-button{font-size:12px}.challenge-share h2{font-size:20px}.challenge-share>p{font-size:13px}.challenge-share>label{max-width:none}.challenge-share>button,.challenge-share #copy-challenge{width:100%}.challenge-dialog textarea,.challenge-preview input{font-size:16px}.challenge-share textarea{font-size:13px}.record-note{font-size:13px;padding:10px 13px}.personal-records h3,.personal-records strong{font-size:14px}.challenge-preview h3{font-size:18px}.challenge-dialog .primary-button{width:100%}.challenge-share{padding-top:22px}.clear-records-confirm button{margin-bottom:6px}}

.map-families{margin:18px 0 0;padding:15px 14px;border:1px solid var(--rule);border-radius:0}.map-families legend{padding:0 5px;font-size:13px;color:var(--dim)}.map-families #map-family-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.map-families label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink)}.map-families input{accent-color:#4385f5}.map-families small{display:block;margin-top:11px;color:var(--dim);font-size:12px;line-height:1.6}.map-families[hidden]{display:none!important}

/* Tema néon "A Linha". Tudo acima desta linha é a folha original com as cores trocadas por tokens; daqui para baixo é a camada do tema. */
:root{color-scheme:dark;--bg:#070a1c;--bg-2:#0c1130;--panel:rgba(14,20,52,.86);--chip:#141b45;--tile:#0a0e26;--pit:#070a20;--line:#232a5e;--line-hi:#3d4690;--fg:#eef1ff;--dim:#98a0d2;--cyan:#2de2ff;--magenta:#ff3dae;--amber:#ffb627;--lime:#b6ff3c;--dark:#0a0c1f;--ink:#eef1ff;--muted:#98a0d2;--rule:#232a5e;--blue:#2de2ff;--player:#2de2ff;--display:"Bungee","Arial Black",Impact,sans-serif;--ui:"Chakra Petch","Segoe UI",system-ui,sans-serif;font-family:var(--ui);font-size:15px;font-weight:500;color:var(--fg);background:var(--bg)}
body{min-height:100vh;color:var(--fg);background:radial-gradient(55% 45% at 80% 0%,rgba(255,61,174,.13),transparent 70%),radial-gradient(45% 40% at 5% 10%,rgba(45,226,255,.12),transparent 70%),linear-gradient(var(--bg),var(--bg-2));background-attachment:fixed}
button,input,select,textarea{font-family:var(--ui)}
h1{font-family:var(--display);font-weight:400;line-height:1.06}
h2,h3{font-family:var(--ui);font-weight:600}
p{line-height:1.6}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--fg);outline-offset:3px}

/* cabeçalho */
.site-header{height:64px;border-bottom:1px solid var(--line);background:rgba(7,10,28,.7);max-width:none}
.brand{font-family:var(--display);font-size:28px;color:var(--fg);text-shadow:0 0 12px rgba(45,226,255,.7),3px 3px 0 var(--magenta);transform:skewX(-6deg);white-space:nowrap}
.brand-mark{display:none}
.brand small{font-family:var(--ui);text-shadow:none;color:var(--dim)}
.quiet-button{color:var(--dim);border-bottom:1px solid var(--line-hi);padding:3px 0}
.quiet-button span{border-color:var(--line-hi)}
.quiet-button:hover{color:var(--fg);border-color:var(--fg)}
.match-progress{background:transparent;border:1px solid var(--line);color:var(--fg);font-weight:600}
.site-footer{color:var(--dim)}

/* botões e campos */
.primary-button{background:var(--amber);color:var(--dark);font-family:var(--display);font-weight:400;font-size:19px;line-height:1.1;min-height:52px;padding:15px 34px 13px;clip-path:polygon(18px 0,100% 0,calc(100% - 18px) 100%,0 100%);filter:drop-shadow(0 0 16px rgba(255,182,39,.7));transition:filter .12s,background .12s}
.primary-button:hover{background:#fff;filter:drop-shadow(0 0 24px rgba(255,255,255,.85))}
.primary-button:disabled{background:var(--line-hi);color:var(--dim);filter:none}
.primary-button span{margin-left:0!important}
.secondary-button{background:transparent;border:2px solid var(--fg);color:var(--fg);font-weight:700;font-size:15px}
.secondary-button:hover{background:var(--fg);border-color:var(--fg);color:var(--dark)}
.text-button{color:var(--dim);border-bottom:1px solid var(--line-hi);padding:2px 0}
.text-button:hover{color:var(--fg)}
select,input[type=text],input:not([type]),textarea{background:var(--tile);border:1px solid var(--line-hi);color:var(--fg)}
select:disabled{background:var(--chip);color:var(--dim)}
select option{background:#0e1434;color:var(--fg)}
input[type=range]{background:var(--line)}
input[type=range]::-webkit-slider-thumb{border-color:var(--dark);box-shadow:0 0 0 1px var(--player)}
input[type=range]::-moz-range-thumb{border-color:var(--dark)}
input[type=checkbox],input[type=radio]{accent-color:var(--cyan)}
hr{background:var(--line)}

/* lobby */
.lobby{align-items:start}
.lobby h1{font-size:clamp(54px,6.4vw,92px);line-height:.9;text-shadow:0 0 18px rgba(45,226,255,.7),4px 4px 0 var(--magenta);transform:skewX(-6deg) rotate(-2deg);transform-origin:left;white-space:nowrap;margin-bottom:26px}
.intro-label{color:var(--dim);font-size:14px}
.lead{color:var(--dim);font-size:16px}
.lobby-art{border:1px solid var(--line);background:var(--pit)}
.lobby-art text{font-family:var(--display);fill:var(--fg)}
.flow-note{font-size:14px;color:var(--dim)}
.flow-note b{background:var(--fg);color:var(--dark);font-weight:700;border-radius:0;width:22px;height:22px}
.setup-panel{background:var(--panel);border:1px solid var(--line);box-shadow:none}
.setup-panel h2{font-size:22px}
.count-options span{background:var(--tile);border-color:var(--line);color:var(--dim);font-weight:600;font-size:14px}
.count-options input:checked+span{background:var(--fg);border-color:var(--fg);color:var(--dark)}
.player-names input{background:transparent;border:0;border-bottom:1px solid var(--line-hi);padding:6px 0;font-weight:600;font-size:16px}
.name-dot{width:12px;height:12px;box-shadow:0 0 8px var(--color)}
.map-families{border-color:var(--line)}
.map-families label{font-size:14px;color:var(--fg)}
.solo-option,.challenge-entry{border-top-color:var(--line)}
.solo-option button,.challenge-entry button,.challenge-entry a{width:100%}

/* ecrãs de cortina: vez, fechadas, fim */
.curtain h1{font-size:clamp(30px,5vw,58px);text-shadow:0 0 22px rgba(45,226,255,.6),4px 4px 0 var(--magenta)}
.curtain-copy{color:var(--dim);font-size:17px}
.player-badge{color:var(--dark);font-family:var(--display);box-shadow:0 0 24px color-mix(in srgb,var(--player) 70%,transparent)}
.sealed-symbol{background:transparent;border:2px solid var(--cyan);color:var(--cyan)}
.round-label{color:var(--dim);font-weight:600;font-size:14px}
.challenge-summary{border-color:var(--line);background:var(--panel);border:1px solid var(--line);max-width:760px}
.challenge-summary h2{font-family:var(--display);font-weight:400;font-size:24px}
.level-conditions>div{border-left-color:var(--line-hi)}
.level-conditions strong{color:var(--fg);font-weight:700;font-size:16px}
.match-itinerary{max-width:900px}
.match-itinerary li{background:var(--tile);border:1px solid var(--line);border-bottom-width:1px;color:var(--dim)}
.match-itinerary li[aria-current=step]{background:var(--tile);border-color:var(--fg);color:var(--fg)}
.sealed-players li{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--player);padding:12px 16px;font-weight:600;font-size:15px}
.sealed-players i{width:12px;height:12px}
.privacy-note{color:var(--dim)}
.final-scores .score-row{border-bottom-color:var(--line)}
.final-scores .score-row b{font-family:var(--display);font-weight:400;font-size:24px}
.match-history th,.match-history td,.particle-comparison th,.particle-comparison td{border-bottom-color:var(--line)}
.challenge-share{border-top-color:var(--line)}

/* desenho */
.draw-heading h1{font-size:clamp(22px,2.6vw,34px)}
.turn-timer output{font-family:var(--display)}
.turn-timer.urgent{color:#ff6b81}
.draw-conditions{background:var(--panel);border-color:var(--line)}
.drawing-field{background:var(--pit);border-color:var(--line)}
.private-label{border-bottom-color:var(--line);color:var(--dim)}
#draw-canvas text{font-family:var(--ui);fill:var(--dim);font-size:13px}
#draw-canvas .control-label{font-family:var(--display);font-weight:400;fill:var(--fg)}
#draw-canvas .endpoint-label{font-family:var(--display);font-weight:400;font-size:18px;fill:var(--fg)}
.particle-selection legend{font-family:var(--ui);font-weight:600}
.particle-card-content{background:var(--tile);border-color:var(--line)}
.particle-card:hover .particle-card-content{background:var(--tile);border-color:var(--fg)}
.particle-card input:checked+.particle-card-content{background:linear-gradient(90deg,color-mix(in srgb,var(--player) 16%,transparent),transparent),var(--tile);border-color:var(--player);box-shadow:none}
.particle-identity strong{color:var(--fg);font-size:16px;font-weight:700}
.particle-strength{color:var(--fg)}
.particle-preview.light{background:radial-gradient(circle at 34% 30%,#fff,#bfe9ff 45%,#3f79aa);border:0;box-shadow:none}
.particle-preview.steel{background:radial-gradient(circle at 34% 30%,#fff,#9aa3b5 38%,#262b3a);box-shadow:none}
.particle-preview.ceramic{background:radial-gradient(circle at 34% 30%,#fff,#f1e6cf 50%,#948668);border:0;box-shadow:none}
.draw-controls{background:var(--panel);border:1px solid var(--line);padding:16px}
.slider-field output{color:var(--fg);font-size:16px}
.recovered-path,.terrain-note,.gate-objective,.gate-result-note,.record-note{background:var(--tile);color:var(--fg)}
.gate-objective,.record-note{border-color:var(--line)}

/* corrida */
.race-heading h1{font-size:clamp(22px,2.6vw,34px)}
.race-stage{border:1px solid var(--line)}
.stage-camera{background:rgba(7,10,28,.6);border-color:var(--line)}
.stage-camera button{color:var(--dim);font-weight:600}
.stage-camera button[aria-pressed=true]{background:var(--fg);color:var(--dark)}
.endpoint{font-family:var(--display)}
.endpoint span{font-family:var(--ui)}
.countdown output{font-family:var(--display);text-shadow:0 0 30px rgba(45,226,255,.8),6px 6px 0 var(--magenta)}
.race-clock output{font-family:var(--display);font-size:40px;color:var(--fg);text-shadow:0 0 16px rgba(45,226,255,.6)}
.inspection-toolbar,.experiment-banner{background:var(--panel);border-color:var(--line)}
.inspection-toolbar p,.experiment-banner p{color:var(--fg);font-size:15px}
.race-results{background:var(--panel);border-color:var(--line)}
.arrival-row{border:1px solid var(--line);border-left:4px solid var(--player);background:var(--tile);padding:10px 12px;margin-top:8px}
.arrival-row .player-name{font-size:16px;font-weight:700}
.arrival-number{font-family:var(--display);font-size:16px;color:var(--dim)}
.arrival-time{font-size:16px;font-weight:700}
.player-color{width:12px;height:12px;flex-basis:12px}
.round-result{border-top-color:var(--line)}
.round-result h3{font-family:var(--display);font-weight:400}
.score-panel{border-top-color:var(--line)}
.score-panel h3{font-size:16px}
.score-row{font-size:15px}
.score-row b{font-family:var(--display);font-weight:400;font-size:20px}
.race-learning{border-top-color:var(--line)}
.moment-fact{color:var(--fg);font-weight:600;font-size:18px}
.improvement-note{color:var(--dim);font-size:15px}
.race-error{background:var(--pit)}

/* diálogos */
dialog{background:#0e1434;color:var(--fg);border:1px solid var(--line-hi);border-top:4px solid var(--cyan);box-shadow:0 30px 80px rgba(0,0,0,.6)}
dialog::backdrop{background:rgba(4,6,18,.75)}
.dialog-heading h2{font-family:var(--display);font-weight:400;font-size:26px}
.dialog-heading button{background:var(--tile);border:1px solid var(--line);color:var(--dim);border-radius:0;width:36px;height:36px}
.dialog-heading button:hover{color:var(--fg);border-color:var(--fg)}
dialog li,dialog p{color:var(--dim);font-size:15px}
dialog strong{color:var(--fg)}
dialog h3{font-size:17px}
.challenge-preview{border-top-color:var(--line)}
.challenge-preview li,.personal-records li{border-color:var(--line)}
.personal-records strong{font-family:var(--display);font-weight:400;color:var(--fg)}
.clear-records-confirm{background:var(--tile);border-color:var(--magenta)}
.challenge-share textarea,.challenge-dialog textarea{background:var(--tile);border-color:var(--line-hi);color:var(--dim);font-family:var(--ui)}

@media(max-width:520px){.site-header{height:auto;min-height:60px;padding-top:8px;padding-bottom:8px}.brand{font-size:22px}.primary-button{font-size:17px;padding-left:24px;padding-right:24px}.lobby h1{font-size:54px}.race-clock output{font-size:30px}}
.zone-condition strong{color:var(--zone,var(--amber))}.gate-condition strong{color:var(--cyan)}.wind-condition strong{color:var(--fg)}
.draw-controls>.primary-button{background:var(--amber);font-size:16px;padding-left:22px;padding-right:22px}.draw-controls>.primary-button:hover{background:#fff}.draw-controls>.primary-button:disabled{background:var(--line-hi)}
.score-row b{font-size:16px}


/* Lobby com o layout do mockup: menu de modos à esquerda; à direita a pista de exemplo com os lugares e a preparação; barra Jogar fixa em baixo. */
.ui-source{display:none!important}
body:has(#lobby:not([hidden])) .site-header,body:has(#lobby:not([hidden])) .site-footer{display:none}
.home{max-width:1440px;min-height:100dvh;padding:20px max(16px,env(safe-area-inset-left,0px)) 0;display:grid;grid-template-columns:minmax(250px,310px) minmax(0,1fr);grid-template-rows:1fr auto;gap:0 30px;align-items:start}
.home-side{display:flex;flex-direction:column;gap:20px}
.home .logo{font:400 clamp(44px,4.1vw,60px)/.9 var(--display);white-space:nowrap;color:var(--fg);text-shadow:0 0 18px rgba(45,226,255,.7),4px 4px 0 var(--magenta);transform:skewX(-6deg) rotate(-2deg);transform-origin:left;margin:6px 0 0}
.home .tagline{color:var(--dim);max-width:24ch;line-height:1.4;font-size:16px}
.modes{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}
.mode{display:block;width:100%;text-align:left;text-decoration:none;background:transparent;border:0;border-left:4px solid transparent;padding:11px 14px}
.mode .name{display:block;font:400 22px/1 var(--display);color:var(--dim)}
.mode .sub{display:block;font-size:14px;color:var(--dim);margin-top:5px;line-height:1.3}
.mode:hover .name{color:var(--fg)}
.mode[aria-pressed=true]{border-left-color:var(--cyan);background:linear-gradient(90deg,rgba(45,226,255,.2),transparent)}
.mode[aria-pressed=true] .name{color:var(--fg);text-shadow:0 0 14px rgba(45,226,255,.85)}
.mode[aria-pressed=true] .sub{color:var(--fg)}
.side-links{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:15px;padding-left:18px}
.side-links button{background:none;border:0;padding:4px 0;color:var(--dim);border-bottom:1px solid var(--line-hi)}
.side-links button:hover{color:var(--fg);border-color:var(--fg)}
.home-stage{display:flex;flex-direction:column;gap:16px;min-width:0;padding-bottom:18px}
.panel{background:var(--panel);border:1px solid var(--line)}

.grid-scene{position:relative;background:radial-gradient(70% 110% at 50% 115%,rgba(45,226,255,.1),transparent 70%),radial-gradient(40% 70% at 95% 80%,rgba(255,182,39,.08),transparent 70%),var(--pit)}
.grid-scene::before,.grid-scene::after{content:"";position:absolute;width:18px;height:18px;border:2px solid var(--cyan);pointer-events:none;opacity:.8}
.grid-scene::before{left:8px;top:8px;border-right:0;border-bottom:0}
.grid-scene::after{right:8px;bottom:8px;border-left:0;border-top:0}
.grid-scene svg{display:block;width:100%;height:auto;max-height:320px}
.scene-note{position:absolute;right:10%;top:10px;font-size:13px;color:var(--dim)}
.grid-scene .axis{fill:none;stroke:var(--line-hi);stroke-width:6;stroke-dasharray:2 36.2}
.grid-scene .gate{fill:none;stroke:var(--fg);stroke-width:2;stroke-dasharray:4 8;opacity:.35}
.grid-scene .t{fill:none;stroke-linecap:round}
.grid-scene .t.tube{stroke:var(--c);stroke-width:5}
.grid-scene .t.ghost{stroke:var(--line-hi);stroke-width:2;stroke-dasharray:3 9;display:none}
.grid-scene .ball{stroke:var(--dark);stroke-width:1.5}
.grid-scene .tag rect{fill:var(--dark);stroke:var(--c);stroke-width:1.5}
.grid-scene .tag text{font:400 12px var(--display);fill:var(--c);text-anchor:middle}
.grid-scene .pt{font:400 20px var(--display);fill:var(--fg);text-anchor:middle}
.grid-scene .ring{fill:none;stroke:var(--fg);stroke-width:2;opacity:.4}
.home[data-count="2"] .lane-3 .tube,.home[data-count="2"] .lane-3 .tag,.home[data-count="2"] .ball.lane-3,.home[data-mode=cpu] .lane-3 .tube,.home[data-mode=cpu] .lane-3 .tag,.home[data-mode=cpu] .ball.lane-3{display:none}
.home:not([data-count="4"]) .lane-4 .tube,.home:not([data-count="4"]) .lane-4 .tag,.home:not([data-count="4"]) .ball.lane-4,.home[data-mode=cpu] .lane-4 .tube,.home[data-mode=cpu] .lane-4 .tag,.home[data-mode=cpu] .ball.lane-4{display:none}
.home[data-mode=local][data-count="2"] .lane-3 .ghost,.home[data-mode=local]:not([data-count="4"]) .lane-4 .ghost{display:inline}

.slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line)}
.slots .player-names,#free-slots{display:contents}
.slot{--c:var(--cyan);position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:14px 14px 14px 12px;border:0;border-top:3px solid var(--c);border-right:1px solid var(--line);min-height:76px;text-align:left;background:transparent;font-size:16px;color:var(--fg)}
.slots>:last-child,.slots .slot:nth-child(4){border-right:0}
.orb{width:38px;height:38px;border-radius:50%;flex:none;background:radial-gradient(circle at 34% 30%,#fff,var(--c) 45%,color-mix(in srgb,var(--c) 40%,#000));box-shadow:0 0 12px color-mix(in srgb,var(--c) 70%,transparent)}
.slot .who{min-width:0}
.slot .pn{display:block;font:400 13px/1 var(--display);color:var(--c)}
.slot input{display:block;width:100%;min-width:0;margin:0;background:transparent;border:0;border-bottom:1px solid var(--line-hi);padding:3px 0 2px;font-weight:600;font-size:17px;color:var(--fg)}
.slot input:focus{outline:none;border-bottom-color:var(--c)}
.slot.free{border-top-color:var(--line);color:var(--dim);cursor:pointer}
.slot.free .ring{width:38px;height:38px;border-radius:50%;border:2px dashed var(--line-hi);display:grid;place-items:center;font:400 20px/1 var(--display);color:var(--c)}
.slot.free .pn{color:var(--dim)}
.slot.free .join{display:block;font-weight:600;font-size:16px;margin-top:3px}
.slot.free:hover{color:var(--fg);border-top-color:var(--c)}
.slot.free:hover .ring{border-color:var(--c)}
.slot .leave{position:absolute;right:6px;top:6px;width:24px;height:24px;background:var(--tile);border:1px solid var(--line);color:var(--dim);font-size:16px;line-height:1}
.slot .leave:hover{color:var(--fg);border-color:var(--fg)}
.cpu-slot{display:none}
.cpu-style{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;margin-top:4px}
.cpu-n{font-weight:600;font-size:17px}
.home[data-mode=cpu] .slots{grid-template-columns:repeat(2,minmax(0,1fr))}
.home[data-mode=cpu] .cpu-slot{display:grid}
.home[data-mode=cpu] #free-slots,.home[data-mode=cpu] .player-names .slot:not(:first-child),.home[data-mode=cpu] .leave,.home[data-mode=cpu] .rule-time{display:none}
.cpu-note{display:none;color:var(--dim)}
.home[data-mode=cpu] .cpu-note{display:block}

.home .setup{padding:16px 18px 18px;display:flex;flex-direction:column;gap:16px}
.home .map-families{border:0;padding:0;margin:0;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 14px;align-items:baseline}
.home .map-families legend{float:left;padding:0;font:600 18px/1.2 var(--ui);color:var(--fg)}
.home .map-families small{margin:0;color:var(--dim);font-size:14px;grid-column:2;grid-row:1;text-align:right}
.home .map-families #map-family-options{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.map{--c:var(--cyan);display:flex;align-items:center;gap:10px;background:var(--tile);border:1px solid var(--line);padding:12px;font-weight:700;font-size:15px;line-height:1.15;min-width:0;cursor:pointer;color:var(--dim)}
.map:nth-child(4n+2){--c:var(--amber)}.map:nth-child(4n+3){--c:var(--magenta)}.map:nth-child(4n+4){--c:var(--lime)}
.map input{position:absolute;opacity:0;width:1px;height:1px}
.map .chk{flex:none;width:18px;height:18px;border:1px solid var(--line-hi);display:grid;place-items:center;font-size:12px;color:transparent}
.map:has(input:checked){border-color:var(--c);color:var(--fg)}
.map:has(input:checked) .chk{background:var(--c);border-color:var(--c);color:var(--dark)}
.map:has(input:focus-visible){outline:2px solid var(--fg);outline-offset:3px}
.map:hover{border-color:var(--fg)}
.home .setup-map{margin:0;font-size:15px;color:var(--dim)}
.home .setup-map select{max-width:420px;font-size:16px;min-height:42px}
.home .setup-map>span{font-size:14px}
.rules{display:flex;justify-content:space-between;gap:14px 28px;flex-wrap:wrap;padding-top:16px;border-top:1px solid var(--line)}
.rule{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0;font-size:15px}
.rule .k{color:var(--dim)}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{background:var(--tile);border:1px solid var(--line);padding:7px 12px;font-weight:600;font-size:15px;white-space:nowrap;color:var(--dim)}
.seg button:hover{border-color:var(--fg);color:var(--fg)}
.seg button[aria-pressed=true]{background:var(--fg);border-color:var(--fg);color:var(--dark)}
.seg button:disabled{opacity:.45;cursor:default}
.stepper{display:flex;align-items:center;gap:6px}
.stepper button{width:34px;height:34px;background:var(--tile);border:1px solid var(--line);font-weight:700;font-size:18px;color:var(--dim)}
.stepper button:hover{border-color:var(--fg);color:var(--fg)}
.stepper button:disabled{opacity:.4;cursor:default}
.stepper output{min-width:40px;text-align:center;font-weight:700;font-size:24px;font-variant-numeric:tabular-nums}
.mode-description{color:var(--dim);font-size:14px;line-height:1.4}

.dock{position:sticky;bottom:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;background:rgba(7,10,28,.9);backdrop-filter:blur(8px);border-top:1px solid var(--line);padding:12px 0 calc(12px + env(safe-area-inset-bottom,0px))}
.home>.dock{grid-column:1 / -1;margin-inline:calc(-1 * max(16px,env(safe-area-inset-left,0px)));padding-inline:max(16px,env(safe-area-inset-left,0px))}
.summary{display:flex;flex-wrap:wrap;gap:4px 20px;color:var(--dim);font-size:15px;line-height:1.4}
.summary b{color:var(--fg);font-weight:700}
.play{display:flex;align-items:center;gap:16px;border:0;background:var(--amber);color:var(--dark);font:400 clamp(26px,2.6vw,36px)/1 var(--display);padding:15px 30px 13px 38px;clip-path:polygon(20px 0,100% 0,calc(100% - 20px) 100%,0 100%);filter:drop-shadow(0 0 18px rgba(255,182,39,.7));transition:filter .12s,background .12s}
.play kbd{font:700 12px var(--ui);border:2px solid var(--dark);padding:2px 7px;border-radius:3px}
.play:hover{background:#fff;filter:drop-shadow(0 0 26px rgba(255,255,255,.85))}
.play:active{transform:translateY(2px)}
.play:disabled{background:var(--line-hi);color:var(--dim);filter:none;cursor:default}

@media(max-width:1180px){.home .map-families #map-family-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){.home{grid-template-columns:1fr;gap:18px 0}.modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.side-links{padding-left:0}}
@media(max-width:640px){
  .slots{grid-template-columns:repeat(2,minmax(0,1fr))}
  .slots .slot:nth-child(2n){border-right:0}
  .mode .name{font-size:17px}
  .scene-note,.grid-scene .tag,.grid-scene::before,.grid-scene::after{display:none}
  .home .map-families{grid-template-columns:1fr}.home .map-families small{grid-column:1;grid-row:auto;text-align:left}
  .summary span:nth-child(n+4){display:none}
  .dock{justify-content:center}
  .play{width:100%;justify-content:center}
}


/* Ecrãs de jogo com o layout dos mockups: ronda, desenho, pistas fechadas, corrida e fim de partida. Cada um termina numa barra de ação fixa. */
.stagepage{max-width:1440px;min-height:calc(100dvh - 65px);padding:16px max(16px,env(safe-area-inset-left,0px)) 0;display:flex;flex-direction:column;gap:14px}
.stagepage>.dock{margin-top:auto;margin-inline:calc(-1 * max(16px,env(safe-area-inset-left,0px)));padding-inline:max(16px,env(safe-area-inset-left,0px))}
.stagepage .play{font-size:clamp(22px,2.2vw,30px)}
.box{padding:14px 16px 16px}
.box>h2,.plan>h2{font:600 18px/1.2 var(--ui)}
.linkbtn{background:none;border:0;border-bottom:1px solid var(--line-hi);padding:2px 0;color:var(--dim);font-size:15px;text-decoration:none}
.linkbtn:hover{color:var(--fg);border-color:var(--fg)}
.acts{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.lead-copy{color:var(--dim);font-size:17px;line-height:1.5;max-width:44ch}
.shout{font-size:clamp(30px,4.6vw,62px);line-height:1;text-shadow:0 0 22px rgba(45,226,255,.7),5px 5px 0 var(--magenta)}
.work{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:start}
.work-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.conds{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin:0;justify-content:stretch;text-align:left}
.conds>div{display:flex;flex-direction:column;gap:1px;padding:10px 14px;border-left:0!important;border-right:1px solid var(--line)}
.conds>div:last-child{border-right:0}
.conds span{font-size:14px;color:var(--dim);line-height:1.2}
.conds strong{font-size:17px;font-weight:700;line-height:1.2}
.conds small{font-size:13px;color:var(--dim);line-height:1.25}
.draw-conditions.conds{padding:0;margin:0;background:var(--panel)}

/* ronda */
.round-grid{display:grid;grid-template-columns:minmax(300px,440px) minmax(0,1fr);gap:16px 30px;align-items:start}
.intro{display:flex;flex-direction:column;gap:14px}
.rn{display:flex;align-items:flex-end;gap:16px}
.rn .big{font:400 clamp(110px,12vw,180px)/.8 var(--display);text-shadow:0 0 26px rgba(45,226,255,.75),6px 6px 0 var(--magenta);transform:skewX(-6deg)}
.rn .of{font:400 20px/1.15 var(--display);color:var(--dim);padding-bottom:10px;max-width:7ch}
.intro h1{font-size:clamp(24px,2.5vw,34px);margin-top:8px;overflow-wrap:anywhere}
.versus{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.fighter{--c:var(--cyan);display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;align-items:center;padding:12px;border-top:3px solid var(--line);border-right:1px solid var(--line)}
.fighter:last-child{border-right:0}
.fighter.now{border-top-color:var(--c)}
.fighter .orb{grid-row:span 2;width:34px;height:34px;box-shadow:none}
.fighter .n{font-weight:700;font-size:17px;line-height:1.15;overflow-wrap:anywhere}
.fighter .s{font-size:14px;color:var(--dim);line-height:1.2}
.fighter .pts{grid-column:1 / 3;font:400 36px/1 var(--display);color:var(--c);margin-top:6px}
.fighter .pts small{font:500 14px var(--ui);color:var(--dim);margin-left:8px}
.mapcard-head{display:flex;justify-content:space-between;align-items:baseline;gap:6px 16px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line)}
.mapcard-head h2{font:400 clamp(20px,2.1vw,28px)/1.05 var(--display)}
.mapcard-head p,.mapcard-hint{color:var(--dim);font-size:15px;line-height:1.4}
.mapcard-hint{padding:10px 16px 12px;border-top:1px solid var(--line)}
.scene{background:radial-gradient(70% 110% at 50% 115%,rgba(255,182,39,.08),transparent 70%),var(--pit)}
.scene svg{display:block;width:100%;height:auto;max-height:32vh}
.scene .guide{fill:none;stroke:var(--dim);stroke-width:2.5;stroke-dasharray:3 9;stroke-linecap:round}
.scene .zone-t{font:600 14px var(--ui);text-anchor:middle}
.scene .wind{fill:none;stroke:var(--dim);stroke-width:2;stroke-linecap:round;opacity:.6}
.scene .dim{fill:none;stroke:var(--line-hi);stroke-width:1.5}
.scene .dim-t{font:500 13px var(--ui);fill:var(--dim);text-anchor:middle}
.scene .ring{fill:none;stroke:var(--fg);stroke-width:2;opacity:.4}
.scene .pt{font:400 20px var(--display);fill:var(--fg);text-anchor:middle}
.mapcard .conds{border-top:1px solid var(--line)}
.plan{grid-column:1 / -1;padding:12px 16px 14px}
.steps{list-style:none;padding:0;margin:10px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;counter-reset:step}
.steps li{display:flex;flex-direction:column;justify-content:center;background:var(--tile);border:1px solid var(--line);padding:9px 12px;color:var(--dim);min-width:0}
.steps li span{font-weight:700;font-size:15px;line-height:1.2;overflow-wrap:anywhere}
.steps li small{font-size:14px;line-height:1.25;margin-top:3px}
.steps li[aria-current=step]{border-color:var(--fg);color:var(--fg)}
.stagepage .privacy-note{max-width:none;margin:0;text-align:left;font-size:15px}

/* desenho */
.turn{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.turn .orb{box-shadow:0 0 12px color-mix(in srgb,var(--c) 70%,transparent)}
.turn-text{min-width:0;flex:1}
.turn-text .round-label{margin-bottom:4px}
.turn h1{font-size:clamp(22px,2.4vw,32px);overflow-wrap:anywhere}
.turn .turn-timer{min-width:0;display:flex;align-items:center;gap:12px}
.turn .turn-timer>span{font-size:14px;color:var(--dim)}
.turn .turn-timer output{font-size:34px}
.turn .turn-timer small{font-size:14px}
.round-change:empty{display:none}
.round-change{margin:0;color:var(--dim);font-size:15px}
.board-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);font-size:15px;color:var(--dim)}
.stagepage .editor-caption{padding:9px 14px;border-top:1px solid var(--line);font-size:14px;color:var(--dim);margin:0}
.stagepage .particle-selection{margin:0;min-width:0}
.stagepage .particle-selection legend{float:left;width:100%;font:600 18px/1.2 var(--ui);margin:0}
.stagepage .particle-selection>p{clear:both;margin:0;padding-top:2px;font-size:14px;color:var(--dim)}
.work-side .particle-options{grid-template-columns:1fr;gap:8px;margin-top:12px}
.work-side .particle-card-content{display:grid;grid-template-columns:36px minmax(0,1fr);gap:2px 12px;min-height:0;padding:10px 12px;flex-direction:initial}
.work-side .particle-preview{width:36px;height:36px;margin:0;grid-row:1 / 4}
.work-side .particle-identity{flex-direction:row;min-height:0;align-items:baseline}
.work-side .particle-identity small{font-size:14px;color:var(--dim)}
.work-side .particle-strength,.work-side .particle-weakness{font-size:14px;line-height:1.25;margin:0}
.work-side .particle-weakness{color:var(--dim)}
.tune-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.tune-hint{color:var(--dim);font-size:14px;line-height:1.4;margin-top:8px}
.tune .slider-field{margin:14px 0 0}
.tune .slider-field label{font-size:15px;color:var(--dim);align-items:baseline}
.tune .slider-field output{font-size:17px;font-weight:700;color:var(--fg)}
.tune input[type=range]{margin:10px 0 2px}
.tune .reuse-draft{display:inline-block;margin-top:14px}
.tune .previous-track-option{display:flex;align-items:center;gap:9px;margin-top:12px;font-size:15px;color:var(--dim)}
.dock .particle-choice-note{margin:0;color:var(--fg)}
.dock .lock-note{display:inline;margin:0;font-size:15px;text-align:left}

/* pistas fechadas */
.center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding-block:20px}
.center .shout{transform:skewX(-6deg);max-width:18ch}
.center .lead-copy{margin-top:8px}
.sealed{list-style:none;padding:0;margin:22px 0 0;display:flex;gap:16px;flex-wrap:wrap;justify-content:center;width:100%}
.sealed .card{--c:var(--cyan);width:230px;max-width:100%;background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--c);text-align:left}
.sealed .hidden-track{height:104px;display:grid;place-items:center;border-bottom:1px solid var(--line);font:400 54px/1 var(--display);color:var(--line-hi);background:repeating-linear-gradient(135deg,transparent 0 12px,rgba(61,70,144,.22) 12px 14px),var(--tile)}
.sealed .who{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 12px;align-items:center;padding:12px}
.sealed .orb{grid-row:span 2;width:34px;height:34px;box-shadow:none}
.sealed .n{font-weight:700;font-size:17px;line-height:1.15;overflow-wrap:anywhere}
.sealed .s{font-size:14px;color:var(--dim)}

/* corrida */
.title{display:flex;align-items:flex-end;justify-content:space-between;gap:8px 18px;flex-wrap:wrap}
.title h1{font-size:clamp(22px,2.4vw,32px);overflow-wrap:anywhere}
.title .round-label{margin-bottom:4px}
.title p:not(.round-label){color:var(--dim);font-size:15px;margin-top:4px}
.title .physics-badge{font-size:14px;border:1px solid var(--line);padding:4px 10px;color:var(--dim)}
.stagepage .experiment-banner{margin:0}
.arena .race-stage{border:0;height:min(56vh,560px);min-height:300px}
.arena .race-transport{padding:10px 14px;border-top:1px solid var(--line);gap:14px 20px;flex-wrap:wrap}
.arena .race-transport .secondary-button{min-height:38px;padding:6px 14px}
.arena .speed{display:flex;align-items:center;gap:10px;color:var(--dim);font-size:15px}
.arena .replay-scrub{padding:8px 14px 12px;border-top:1px solid var(--line)}
.arena .replay-scrub label{font-size:15px}
.race-work .arrival-list{margin-top:4px}
.race-work .round-result{margin-top:14px;padding-top:14px}
.scores{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));margin-top:10px;border:1px solid var(--line)}
.score{--c:var(--cyan);padding:10px 8px;text-align:center;border-right:1px solid var(--line);border-top:3px solid var(--c);min-width:0}
.score:last-child{border-right:0}
.score b{display:block;font:400 32px/1 var(--display);color:var(--c)}
.score span{display:block;font-size:14px;color:var(--dim);overflow-wrap:anywhere;line-height:1.2;margin-top:3px}
.score-box .race-rules-note{margin-top:10px;font-size:14px;line-height:1.4}
.learning{border-top:1px solid var(--line);margin:0;max-width:none}
.learning .learning-heading{flex-wrap:wrap}
.learning .learning-heading h2{font:600 18px/1.2 var(--ui)}
.learning-pick{min-width:0!important;max-width:none!important}
.dock-row{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;width:100%}
.dock:has(.dock-row:not([hidden])) .dock-idle{display:none}

/* fim de partida */
.end-title{justify-content:flex-start}
.end-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:16px 30px;align-items:end}
.podium{display:flex;align-items:flex-end;gap:12px;margin:0;max-width:none;width:auto}
.step{--c:var(--cyan);--h:120px;flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0}
.step .orb{width:58px;height:58px;box-shadow:none}
.step .n{font-weight:700;font-size:20px;margin-top:8px;max-width:100%;overflow-wrap:anywhere;line-height:1.15}
.step .pts{font-size:15px;color:var(--dim);margin-bottom:10px}
.step .pts b{font:400 22px/1 var(--display);color:var(--c);margin-right:6px}
.step .block{width:100%;height:var(--h);border-top:4px solid var(--c);border-inline:1px solid var(--line);background:linear-gradient(color-mix(in srgb,var(--c) 26%,transparent),rgba(14,20,52,.5));display:grid;place-items:center;font:400 clamp(40px,5vw,72px)/1 var(--display);color:var(--c)}
.step.place-1{--h:210px;order:2}
.step.place-2{order:1}
.step.place-3{--h:76px;order:3}
.step.place-4{--h:44px;order:4}
.step.place-1 .orb{width:84px;height:84px;box-shadow:0 0 30px color-mix(in srgb,var(--c) 80%,transparent)}
.step.place-1 .n{font-size:26px}
.step.place-1 .block{font-size:clamp(64px,8vw,120px);color:var(--fg);text-shadow:0 0 22px var(--c),5px 5px 0 var(--magenta)}
.end-right{display:flex;flex-direction:column;gap:14px;min-width:0}
.end-right .match-history{margin:0;max-width:none}
.end-right .match-history>p,.share>p{color:var(--dim);font-size:14px;line-height:1.4;margin:2px 0 8px}
.end-right .match-history table{font-size:15px}
.end-right .match-history thead th{font-size:14px}
.end-right .match-history th small,.end-right .match-history td small{font-size:13px}
.share-row{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap}
.share-pick{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:15px;color:var(--dim)}
.share-output{margin-top:12px}
.share-output label{display:block;font-size:15px;color:var(--dim)}
.share-output textarea{display:block;width:100%;margin:6px 0 10px;padding:8px 10px;font-size:14px;resize:vertical;word-break:break-all}
.share-output p{font-size:14px;color:var(--dim);margin-top:8px}

/* diálogos */
dialog{max-width:860px;padding:0}
dialog>*{margin-inline:20px}
dialog>.dialog-heading{margin:0;padding:16px 20px;border-bottom:1px solid var(--line)}
dialog>:last-child{margin-bottom:22px}
dialog>.dialog-heading+*{margin-top:18px}
#rules-dialog ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;counter-reset:rule}
#rules-dialog ol li{counter-increment:rule;background:var(--tile);border:1px solid var(--line);padding:12px;margin:0;font-size:14px;line-height:1.35}
#rules-dialog ol li::before{content:counter(rule);display:block;font:400 34px/1 var(--display);color:var(--cyan);margin-bottom:8px}
#rules-dialog ol li strong{display:block;font-size:17px;line-height:1.2;margin-bottom:4px}
#rules-dialog h3{border-top:1px solid var(--line);padding-top:14px;margin-top:16px}
.personal-records li{background:var(--tile);border:1px solid var(--line)!important;padding:10px 14px;margin-bottom:8px}
.personal-records strong{font-size:22px}

@media(max-width:1080px){.work,.round-grid,.end-grid{grid-template-columns:1fr}.work-side .particle-options{grid-template-columns:repeat(3,minmax(0,1fr))}#rules-dialog ol{grid-template-columns:1fr}}
@media(max-width:720px){
  .work-side .particle-options{grid-template-columns:1fr}
  .conds{grid-template-columns:repeat(2,minmax(0,1fr))}
  .conds>div{border-bottom:1px solid var(--line)}
  .rn .big{font-size:110px}
  .turn .turn-timer>span,.scene .zone-t,.scene .dim-t{display:none}
  .stagepage>.dock .summary{display:none}
  .stagepage>.dock,.dock-row{justify-content:center}
  .stagepage .play{width:100%;justify-content:center}
  .acts{width:100%;justify-content:center;flex-direction:column-reverse;gap:10px}
  .sealed .card{width:100%;display:grid;grid-template-columns:90px minmax(0,1fr)}
  .sealed .hidden-track{height:auto;border-bottom:0;border-right:1px solid var(--line);font-size:34px}
  .step{--h:84px}.step.place-1{--h:140px}.step.place-3{--h:56px}.step.place-4{--h:36px}
  .step .orb{width:44px;height:44px}.step.place-1 .orb{width:60px;height:60px}
  .step .n,.step.place-1 .n{font-size:16px}
  .arena .race-stage{height:60vh}
}

.arrival-row{border-left:1px solid var(--line)}.arrival-row .player-color{width:14px;height:14px;flex-basis:14px}
