:root{--ink:#203943;--paper:#f3f0e7;--surface:#fffcf5;--sand-soft:#ede4d2;--muted:#526772;--line:#c7d0d1;--line-strong:#7c9099;--focus:#995619;--danger:#963e2b;color:var(--ink);background:var(--paper);font-synthesis:none;font-family:Arial,sans-serif}.lobby-app{max-width:1120px}.lobby-app h1{max-width:850px}.lobby-app fieldset{border:0;min-width:0;margin:0;padding:0}.lobby-app legend{margin-bottom:20px;font-size:20px;font-weight:700}.lobby-app label{gap:8px;margin:16px 0;font-size:14px;font-weight:700;display:grid}.lobby-app input,.lobby-app select{font:inherit;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:5px;width:100%;min-width:0;padding:12px}.lobby-app :focus-visible{outline:3px solid var(--focus);outline-offset:4px}.lobby-profile,.salon-config,.salon-players{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:28px}.lobby-profile{max-width:620px;margin:28px 0}.color-choices{flex-wrap:wrap;gap:12px;margin:20px 0 10px;display:flex}.color-choices button{border:2px solid var(--ink);width:40px;height:40px;color:var(--ink);cursor:pointer;border-radius:50%;font-size:18px}.color-choices [aria-pressed=true]{outline:3px solid var(--ink);outline-offset:3px}.lobby-columns{grid-template-columns:1.4fr 1fr;gap:24px;margin:28px 0;display:grid}.salon-players h2{margin-top:0}.salon-players ul,.public-rooms ul{padding:0;list-style:none}.salon-players li,.public-rooms li{border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:18px 0;display:flex}.salon-players li div{overflow-wrap:anywhere;flex:1}.salon-players li i{border:1px solid var(--ink);border-radius:4px;flex-shrink:0;width:20px;height:20px}.salon-players small{margin-top:5px;display:block}.salon-players li>span{font-size:13px}.public-rooms{margin:40px 0}.public-rooms li{justify-content:space-between}.public-rooms p{color:var(--muted);font-size:14px}.salon-actions{flex-wrap:wrap;align-items:center;gap:16px;margin-top:28px;display:flex}.invitation{padding:4px 0 20px}.invitation input{margin-bottom:14px;display:block}.invitation [role=status]{margin-left:16px}.lobby-error{color:#732f20;background:#f8e4db;border:1px solid #a24735;padding:18px}.reconnection-banner{background:#fff0be;border:1px solid #b68a28;padding:18px}@media (width<=720px){.lobby-columns{grid-template-columns:1fr}.lobby-profile,.salon-config,.salon-players{padding:20px}}*{box-sizing:border-box}[hidden]{display:none!important}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.match-stage{position:relative}.terrain-concealed{visibility:hidden;pointer-events:none;width:100%;position:absolute;top:0;left:0}.match-results{background:var(--surface);border:1px solid var(--line);border-top:5px solid var(--ink);border-radius:8px;margin:24px 0;padding:28px}.results-heading{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.results-heading h2{letter-spacing:-1px;margin:0;font-size:clamp(24px,3vw,32px);line-height:1.15}.results-heading h2:focus-visible{outline:2px solid var(--focus);outline-offset:5px}.next-round{text-align:right;color:var(--muted);flex-shrink:0;margin:0;font-size:12px}.next-round strong{color:var(--ink);font-variant-numeric:tabular-nums;margin-top:4px;font-size:30px;display:block}.result-explanation{color:var(--muted);margin:20px 0;font-size:14px;line-height:1.5}.score-scroll{min-height:170px;max-height:min(620px,100dvh - 460px);overflow:auto}.score-scroll:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.score-table{border-collapse:collapse;text-align:left;font-variant-numeric:tabular-nums;width:100%;font-size:14px}.score-table th,.score-table td{border-bottom:1px solid var(--line);padding:18px 10px}.score-table thead th{z-index:1;background:var(--surface);color:var(--muted);white-space:nowrap;font-size:11px;font-weight:600;position:sticky;top:0}.score-table td{white-space:nowrap}.score-table .is-me{background:var(--sand-soft)}.score-table small{color:var(--muted);white-space:normal;margin-top:5px;font-size:11px;font-weight:400;line-height:1.4;display:block}.score-player{align-items:center;gap:8px;min-width:105px;display:flex}.score-player i{border:1px solid var(--muted);border-radius:3px;flex-shrink:0;width:12px;height:12px}.score-rank{font-size:24px;font-weight:700}.score-total{color:var(--ink);font-size:26px;font-weight:700}.score-gain{font-weight:700}.score-rule{color:var(--muted);margin:18px 0 0;font-size:12px;line-height:1.6}.results-actions{flex-wrap:wrap;align-items:center;gap:16px;margin-top:24px;display:flex}.results-actions a{text-decoration:none}.results-actions .primary-action{background:var(--ink);color:var(--surface);border-color:var(--ink);font-weight:700}.results-actions .primary-action:hover{background:#3c5d43}.results-actions p{width:100%;color:var(--muted);margin:0;font-size:12px}.is-final-countdown{border-color:var(--focus);box-shadow:inset 4px 0 #efb94b}@media (width<=700px){.match-results{padding:20px 14px}.results-heading{flex-direction:column;gap:14px}.next-round{text-align:left;align-items:center;gap:10px;display:flex}.next-round strong{margin:0;font-size:20px}.score-table th,.score-table td{padding:14px 8px}}body{margin:0}main{width:min(1040px,100% - 64px);margin:0 auto}.masthead{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:96px;display:flex}.wordmark{color:inherit;letter-spacing:-.8px;font-size:19px;font-weight:900;text-decoration:none}.wordmark span,h1 span{color:var(--focus)}.edition,.eyebrow,footer{letter-spacing:1.6px;font-size:11px;font-weight:600}.edition{color:var(--muted)}.intro{justify-content:space-between;align-items:end;gap:20px;margin-top:42px;display:flex}.eyebrow{color:var(--muted);margin:0 0 12px}h1{letter-spacing:-2px;margin:0;font-size:clamp(32px,5vw,48px);font-weight:750;line-height:1.1}.description{color:var(--muted);margin:16px 0 28px;font-size:15px}.local{white-space:nowrap;align-items:center;gap:8px;padding-bottom:5px;font-size:12px;display:flex}.local i{background:#527842;border-radius:50%;width:6px;height:6px}.game{aspect-ratio:2;background:var(--ink);border:1px solid var(--ink);border-radius:6px;width:100%;position:relative;overflow:hidden}.game:focus-visible{outline:3px solid var(--focus);outline-offset:5px}.game canvas{display:block}.game-dead canvas{filter:grayscale()}.controls{color:var(--muted);flex-wrap:wrap;align-items:center;gap:32px;margin-top:22px;font-size:12px;display:flex}.controls>span{align-items:center;gap:5px;display:flex}.controls b{color:var(--ink);margin-left:7px;font-weight:400}kbd{background:var(--surface);border:1px solid var(--line);min-width:27px;height:27px;color:var(--ink);font:inherit;border-bottom-width:2px;border-radius:4px;justify-content:center;align-items:center;padding:0 7px;display:inline-flex}.focus-help{color:var(--muted);margin:14px 0 30px;font-size:12px;line-height:1.5}footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:20px;padding:22px 0 30px;font-size:10px;display:flex}footer span:first-child{text-transform:none;letter-spacing:0;font-size:12px;font-weight:400}@media (width<=600px){main{width:calc(100% - 32px)}.masthead{height:76px}.edition{letter-spacing:.7px;font-size:9px}.intro{align-items:center;margin-top:30px}.controls{gap:16px}footer{letter-spacing:.5px}}.exercises{flex-wrap:wrap;gap:8px;margin:0 0 12px;display:flex}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}button:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.exercises button{border:1px solid var(--line);color:var(--ink);text-align:left;white-space:nowrap;background:0 0;border-radius:4px;flex:1;padding:11px 12px;font-size:12px}.exercises button span{color:var(--muted);margin-right:10px;font-size:10px}.exercises button:hover{background:var(--sand-soft)}.exercises button[aria-current=step]{background:var(--ink);border-color:var(--ink);color:var(--surface)}.exercises button[aria-current=step] span{color:#dac586}.game-wrap{position:relative}.race-layout{grid-template-columns:minmax(0,1fr) 240px;align-items:start;gap:16px;display:grid}.race-progress{border:1px solid var(--line);background:var(--surface);font-variant-numeric:tabular-nums;border-radius:6px;padding:14px 10px}.race-progress h2{margin:0 0 12px;font-size:14px}.progress-endpoint{color:var(--muted);margin:8px 0;font-size:10px}.progress-lanes{justify-content:space-around;height:98px;margin:20px 0;display:flex}.progress-lane{background:var(--line);width:2px;position:relative}.progress-marker{width:19px;height:19px;color:var(--ink);border:1px solid var(--muted);border-radius:50%;place-items:center;font-size:11px;font-weight:700;transition:bottom .1s linear;display:grid;position:absolute;left:50%;transform:translate(-50%,50%)}.progress-marker.is-me{outline:2px solid var(--ink);outline-offset:2px}.progress-marker.is-finished{border-radius:3px}.progress-players{margin:12px 0 0;padding:0;list-style:none}.progress-players li{border-top:1px solid #e8eadf;align-items:center;gap:6px;min-height:30px;padding:5px 2px;font-size:11px;display:flex}.progress-players .is-me{background:var(--sand-soft);font-weight:700}.player-number{border:1px solid var(--muted);width:20px;height:20px;color:var(--ink);border-radius:4px;flex-shrink:0;place-items:center;font-size:11px;font-weight:700;display:inline-grid}.progress-name{overflow-wrap:anywhere;flex:1;min-width:0}.progress-name small{font-size:10px;display:block}.progress-value{white-space:nowrap;font-size:10px}@media (width<=959px){.race-layout{grid-template-columns:minmax(0,1fr)}.race-progress{grid-template-columns:180px minmax(0,1fr);column-gap:24px;display:grid}.race-progress h2,.progress-endpoint,.progress-lanes{grid-column:1}.progress-players{grid-area:1/2/5;margin:0}}@media (width<=480px){.race-progress{display:block}}.pause-note{border:1px solid var(--line-strong);color:#f1e8c9;pointer-events:none;white-space:normal;text-align:center;background:#16261fed;border-radius:4px;width:max-content;max-width:calc(100% - 24px);padding:10px 18px;font-size:13px;position:absolute;top:28px;left:50%;transform:translate(-50%)}.exercise-status{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding:14px 0;display:flex}.exercise-status p{margin:0;font-size:12px;line-height:1.6}.exercise-status strong{font-size:13px;display:block}.exercise-status p span{color:var(--muted)}.restart{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:4px;flex-shrink:0;align-items:center;gap:12px;padding:9px 13px;font-size:12px;display:flex}.restart:hover{background:var(--sand-soft)}.mode-link,.room-link a{color:var(--ink);font-size:13px}.room-link{overflow-wrap:anywhere;font-size:12px}@media (width>=900px){main{width:min(960px,100% - 64px)}.masthead{height:64px}.intro{margin-top:24px}h1{font-size:38px}.eyebrow{margin-bottom:8px}.description{margin:12px 0 20px}.controls{gap:22px;margin-top:16px}}@media (width<=600px){.exercises button{flex:1 0 28%}.exercise-status{align-items:start;gap:12px}.pause-note{padding:8px;font-size:11px;top:80px}}.phase-bar{border:1px solid var(--line-strong);background:var(--ink);color:#e8eddf;border-radius:8px;justify-content:space-between;align-items:center;gap:24px;margin:20px 0;padding:20px;display:flex}.phase-bar p{margin:8px 0 0;font-size:14px;line-height:1.5}.phase-clock{color:#efb94b;font-variant-numeric:tabular-nums;margin-left:16px;font-weight:700}@media (width<=700px){.phase-bar{flex-direction:column;align-items:flex-start}}.build-panel{border:1px solid var(--line);background:var(--surface);border-radius:6px;margin:12px 0;padding:16px}.build-map{border-bottom:1px solid var(--line);margin-bottom:14px;padding-bottom:12px}.build-map strong{font-size:13px}.build-map p,.build-map small{color:var(--muted);margin:4px 0 8px;font-size:11px;line-height:1.4;display:block}.build-map>svg{border:1px solid var(--line-strong);cursor:pointer;touch-action:manipulation;border-radius:3px;width:100%;height:98px;display:block}.build-map>svg:focus-visible{outline-offset:3px;outline:3px solid #276586}.build-map>svg[aria-disabled=true]{cursor:not-allowed}.build-map-landmarks{flex-wrap:wrap;gap:4px;margin-top:7px;display:flex}.build-map-landmarks button{border:1px solid var(--line);color:var(--ink);background:var(--paper);border-radius:3px;flex:auto;padding:5px 3px;font-size:10px}.build-heading,.build-tools,.build-camera,.owner-legend,.build-feedback{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.build-heading{margin-bottom:12px;font-size:13px}.build-budget{margin-left:auto;font-size:12px}.build-budget b{font-variant-numeric:tabular-nums;font-size:20px}.owner-legend{color:var(--muted);gap:6px;font-size:11px}.owner-legend>span{align-items:center;gap:4px;display:inline-flex}.owner-legend i{border:1px solid var(--muted);border-radius:50%;flex-shrink:0;width:9px;height:9px;margin-left:6px;display:inline-block}.trap-palette{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.trap-palette button{text-align:left;border:1px solid var(--line);color:var(--ink);background:0 0;border-radius:4px;align-items:center;gap:10px;padding:12px;display:flex}.trap-palette button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--surface)}.trap-palette strong{font-size:12px;display:block}.trap-palette small{opacity:.8;margin-top:5px;font-size:11px;display:block}.piece-symbol{text-align:center;width:28px;font-size:26px}.build-tools{gap:8px;margin-top:12px}.build-tools button,.build-camera button{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:7px 9px;font-size:11px}.build-tools button[aria-pressed=true]{color:#fff;background:#7b302b}.build-tools kbd{min-width:20px;height:19px;margin-left:4px;padding:0 4px}.build-panel button:disabled{cursor:not-allowed}.build-feedback{justify-content:space-between;align-items:start;min-height:38px;padding-top:12px;font-size:12px}.placement-valid{color:#24653a}.placement-invalid{color:#873f33}.build-camera{border-top:1px solid var(--line);gap:6px;margin-top:6px;padding-top:10px;font-size:11px}.build-camera small{color:var(--muted);margin-left:auto}.build-notice,.build-help{color:var(--muted);font-size:12px;line-height:1.5}.build-notice{margin:10px 0}.build-help kbd{height:22px;font-size:11px}@media (width<=700px){.trap-palette{grid-template-columns:repeat(2,minmax(0,1fr))}.build-budget{margin-left:0}.build-camera small{width:100%;margin-left:0}}.construction-app{width:min(1280px,100% - 48px)}.construction-app .masthead{height:48px}.construction-app .intro{margin-top:16px}.construction-app h1{letter-spacing:-1px;font-size:28px}.construction-app .eyebrow{margin-bottom:6px;font-size:10px}.construction-app .description{margin:8px 0 12px;font-size:13px}.construction-app .phase-bar{margin:12px 0;padding:12px 14px}.construction-app .phase-bar p{margin-top:5px;font-size:12px}.construction-app .room-link{margin:10px 0}.build-terrain{min-width:0}@media (width>=960px){.build-workspace{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:16px;display:grid}.build-workspace .build-panel{margin:0;padding:12px}.build-workspace .build-heading{gap:6px;margin-bottom:10px}.build-workspace .build-budget{width:100%;margin:0}.build-workspace .trap-palette{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.build-workspace .trap-palette button{gap:6px;padding:10px 7px}.build-workspace .trap-palette strong{font-size:11px}.build-workspace .trap-palette small{font-size:10px}.build-workspace .piece-symbol{width:22px;font-size:22px}.build-workspace .build-tools{grid-template-columns:1fr 1fr;gap:6px;display:grid}.build-workspace .build-tools button{min-height:34px;padding:7px 5px;font-size:10px}.build-workspace .build-feedback{gap:6px;min-height:72px;font-size:11px;display:grid}.build-workspace .build-camera>span{width:100%}.build-workspace .build-camera small{margin:0}.build-workspace .build-notice{margin:0 0 8px;font-size:11px}.build-workspace .build-terrain{grid-area:1/2}.build-workspace .build-panel{grid-area:1/1}}.reconnection-banner{color:#29251e;background:#fff2c7;border:2px solid;max-width:1100px;margin:1rem auto;padding:1rem}.checkpoint-notice{color:#e5f6fc;background:#172c36;border-left:3px solid #75c6dd;margin:0 0 10px;padding:10px 14px}.checkpoint-notice strong,.checkpoint-notice span{display:block}.checkpoint-notice span{margin-top:3px;font-size:.8rem}.rescue-notice{color:#293d36;background:#f7f0dc;border-bottom:1px solid #d5cfbc;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:12px 16px;display:flex}.rescue-notice p{flex:240px;margin:0}.rescue-notice small{flex-basis:100%}.construction-app button.wordmark,.connection-panel button.wordmark{cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-size:19px;font-weight:900}.sandbox-trial-actions{flex-wrap:wrap;gap:8px;display:flex}.sandbox-clear{margin:16px 0}.sandbox-confirm{border:1px solid var(--line-strong);background:var(--sand-soft);margin-top:12px;padding:12px}.sandbox-confirm button{margin:8px 8px 0 0}.sandbox-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:24px;width:min(1600px,100% - 32px);display:grid}.sandbox-layout .connection-panel{border:1px solid var(--line);background:var(--surface);border-radius:8px;grid-area:1/2;max-height:calc(100dvh - 24px);padding:16px;position:sticky;top:12px;overflow-y:auto}.sandbox-layout .sandbox-app{grid-area:1/1;width:100%;min-width:0;margin:0}.sandbox-layout .connection-panel .masthead{height:32px}.sandbox-layout .connection-panel .wordmark{font-size:16px}.sandbox-layout .connection-panel .intro{margin-top:16px;display:block}.sandbox-layout .connection-panel h1{letter-spacing:-1px;font-size:24px}.sandbox-layout .connection-panel .eyebrow{display:none}.sandbox-layout .connection-panel .description,.sandbox-layout .connection-panel p[role=status]{font-size:13px}.sandbox-layout .lobby-columns{grid-template-columns:1fr;gap:12px;margin:16px 0}.sandbox-layout .lobby-profile,.sandbox-layout .salon-players,.sandbox-layout .salon-config{padding:12px}.sandbox-layout .salon-players li{gap:8px;padding:8px 0}.sandbox-layout .salon-actions{gap:8px;margin-top:12px}.sandbox-layout .connection-panel .restart{padding:10px;font-size:12px}.connection-panel button.mode-link{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:4px 0;text-decoration:underline}.sandbox-layout .build-workspace{flex-direction:column;gap:16px;display:flex}.sandbox-layout .build-terrain,.sandbox-layout .build-panel{width:100%}.sandbox-layout .trap-palette{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=800px){.sandbox-layout{flex-direction:column;display:flex}.sandbox-layout .connection-panel{width:100%;max-height:none;position:static}.sandbox-layout .trap-palette{grid-template-columns:repeat(2,minmax(0,1fr))}}.piece-explanation{background:var(--sand-soft);margin:10px 0;padding:10px;font-size:12px;line-height:1.5}.course-loading{z-index:10;color:#edf4ec;background:#14252d;border:1px solid #94a6af;border-radius:6px;padding:12px 16px;font-size:14px;position:absolute;inset:12px 12px auto}.course-loading button{color:#edf4ec;cursor:pointer;background:#203943;border:1px solid;border-radius:4px;margin-left:12px;padding:6px 10px}.course-loading button:focus-visible{outline-offset:2px;outline:3px solid #fae3ad}.piece-symbol{flex-shrink:0;width:40px}.piece-icon{width:100%;height:100%;display:block}.trap-palette .piece-icon{height:32px}a,button,input,select,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}button,a.restart{min-height:34px}.restart{border-radius:6px;justify-content:center;line-height:1.4;text-decoration:none}.primary-action,.results-actions .primary-action{background:var(--ink);border-color:var(--ink);color:var(--surface);font-weight:700}.primary-action:hover,.results-actions .primary-action:hover{background:#36535b}.mode-link{text-underline-offset:3px;background:0 0;border:0;padding:6px 0;line-height:1.5;text-decoration:underline}.masthead{gap:16px}.wordmark{white-space:nowrap}.game-tools{gap:6px;margin-left:auto;display:flex}.game-dialog{border:1px solid var(--line-strong);background:var(--surface);width:min(600px,100% - 40px);max-height:calc(100dvh - 64px);color:var(--ink);border-top:6px solid #e7c895;border-radius:10px;padding:24px;font-size:14px;line-height:1.6;overflow-y:auto;box-shadow:0 16px 64px #14252d40}.game-dialog::backdrop{background:#14252db8}.quick-rules{padding-left:24px}.quick-rules li{padding:8px 0}.quick-rules p{color:var(--muted);margin:4px 0 0}.game-dialog .option-toggle{border-bottom:1px solid var(--line);cursor:pointer;align-items:flex-start;gap:12px;margin:0;padding:12px 0;display:flex}.game-dialog .option-toggle input{width:20px;height:20px;accent-color:var(--ink);flex-shrink:0;margin:2px 0;padding:0}.option-toggle small{color:var(--muted);margin-top:4px;font-weight:400;display:block}.game-dialog .audio-options{border:0;margin:24px 0 16px;padding:0}.game-dialog .audio-options legend{margin-bottom:4px;font-size:16px;font-weight:750}.audio-options .option-toggle{padding:12px 0}.game-dialog .option-volume{gap:8px;margin:16px 0;display:grid}.option-volume span{justify-content:space-between;gap:12px;display:flex}.game-dialog .option-volume input{width:100%;min-height:24px;accent-color:var(--ink);background:0 0;border:0;padding:0}.option-volume output{font-variant-numeric:tabular-nums}.fullscreen-option{margin:20px 0}:root:fullscreen{background:var(--surface);overflow-y:auto}.welcome-guide{border-block:1px solid var(--line);flex-wrap:wrap;gap:12px 24px;padding:14px 0;font-size:13px;display:flex}.welcome-guide b{color:var(--focus);margin-right:6px}.home-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:24px;margin-top:24px;display:grid}.home-grid .lobby-profile,.home-grid .public-rooms{margin:0}.public-rooms{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:24px}.public-rooms .results-heading{align-items:center;gap:12px}.public-rooms h2{letter-spacing:-.5px;font-size:20px}.room-empty{padding:20px 0;font-size:14px;line-height:1.6}.room-empty strong{color:var(--ink)}.room-empty .restart{margin-top:16px}.public-rooms li>div{overflow-wrap:anywhere;min-width:0}.color-choices button{font-size:16px;font-weight:700;position:relative}.color-selected{background:var(--ink);color:#fff;border-radius:50%;width:18px;height:18px;font-size:12px;position:absolute;bottom:-5px;right:-5px}.status-notice{border:1px solid var(--line-strong);background:var(--surface);border-left-width:4px;border-radius:6px;margin:14px 0;padding:14px 16px;font-size:13px;line-height:1.5}.status-notice>[role]{align-items:flex-start;gap:12px;display:flex}.notice-symbol{border:1px solid;border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;font-weight:700;display:grid}.status-notice p{overflow-wrap:anywhere;margin:4px 0 0}.status-notice.is-danger{color:var(--danger);border-color:var(--danger);background:#fce9df}.status-notice.is-warning{color:#634511;background:#faedcd;border-color:#967125}.status-notice.is-success{color:#35583c;background:#e9f0e6;border-color:#52784c}.notice-actions{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.salon-summary{overflow-wrap:anywhere;flex-wrap:wrap;gap:10px 24px;font-size:13px;display:flex}.salon-start-help{color:var(--muted);font-size:13px;line-height:1.5}.salon-players li{gap:10px;padding:10px 4px;font-size:14px}.salon-players .is-me{background:var(--sand-soft)}.salon-players .player-readiness{white-space:nowrap;flex-shrink:0;font-size:11px}.salon-config summary,.score-details summary{cursor:pointer;font-size:13px;font-weight:700;line-height:1.6}.salon-config form{margin-top:20px}.phase-title{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.phase-clock{margin:0;font-size:24px}.phase-bar .restart:focus-visible,.course-loading button:focus-visible{outline-color:#fae3ad}.race-hud{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:8px;margin-bottom:8px;font-size:12px;display:grid}.race-hud .checkpoint-notice,.race-hud .rescue-notice{border-radius:6px;margin:0;padding:10px 12px;line-height:1.4}.race-hud .checkpoint-notice span{font-size:11px}.score-summary{background:var(--sand-soft);border-radius:6px;flex-wrap:wrap;gap:16px 32px;margin:16px 0;padding:12px 16px;display:flex}.score-summary span{color:var(--muted);margin-bottom:4px;font-size:11px;display:block}.score-summary strong{font-variant-numeric:tabular-nums;font-size:24px}.score-summary small,.score-summary .score-outcome{font-size:14px}.score-player>span:last-child{overflow-wrap:anywhere;min-width:0}.score-table th,.score-table td{padding:12px 8px}.score-table small{font-size:11px}.score-details{margin-top:16px}.next-step{border-top:1px solid var(--line);color:var(--muted);padding-top:14px;font-size:13px}.is-phase-feedback{animation:.42s ease-out phase-feedback}.is-countdown-feedback{transform-origin:50%;animation:.24s ease-out countdown-feedback;display:inline-block}.is-checkpoint-feedback strong{animation:.45s ease-out checkpoint-feedback}.is-finish-feedback{animation:.6s ease-out finish-feedback}.is-help-feedback{animation:.45s ease-out help-feedback}.is-results-feedback{animation:.28s ease-out results-feedback}.is-results-feedback .score-summary>div:nth-child(2) strong{animation:.45s ease-out countdown-feedback;display:inline-block}@keyframes phase-feedback{0%{box-shadow:inset 0 0 0 2px #efb94b}to{box-shadow:inset 0 0 0 2px #0000}}@keyframes countdown-feedback{0%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes checkpoint-feedback{0%{color:#fff;text-shadow:0 0 8px #75c6dd}to{color:inherit;text-shadow:none}}@keyframes finish-feedback{0%{background-color:#e9f0e6;box-shadow:inset 0 0 0 2px #5e9a61}to{box-shadow:inset 0 0 0 2px #0000}}@keyframes help-feedback{0%{background-color:#faedcd;box-shadow:inset 0 0 0 2px #967125}to{box-shadow:inset 0 0 0 2px #0000}}@keyframes results-feedback{0%{opacity:.8;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}:root[data-reduced-effects=true] .is-phase-feedback,:root[data-reduced-effects=true] .is-countdown-feedback,:root[data-reduced-effects=true] .is-checkpoint-feedback strong,:root[data-reduced-effects=true] .is-finish-feedback,:root[data-reduced-effects=true] .is-help-feedback,:root[data-reduced-effects=true] .is-results-feedback,:root[data-reduced-effects=true] .is-results-feedback .score-summary strong{animation:none}.sandbox-layout .home-grid{display:block}.sandbox-layout .welcome-guide{display:none}.sandbox-layout .home-grid>*+*{margin-top:16px}.sandbox-layout .public-rooms{padding:12px}.sandbox-layout .public-rooms h2{font-size:16px}.sandbox-layout .connection-panel .intro .local{margin-top:10px}.sandbox-layout .salon-control{z-index:2;background:var(--surface);border-bottom:1px solid var(--line);padding:8px 0 1px;position:sticky;top:-1px}.course-loading.is-fallback{color:#634511;background:#faedcd;border-color:#967125;flex-wrap:wrap;align-items:center;gap:12px;display:flex}.course-loading.is-fallback button{background:var(--surface);color:var(--ink);border-color:var(--line-strong);margin-left:0}@media (width>=960px){.construction-app.is-building .phase-bar{z-index:12;position:sticky;top:0}.construction-app:not(.sandbox-app) .build-workspace .build-terrain{position:sticky;top:96px}}@media (width<=959px){.race-progress{display:block}.race-progress>h2,.race-progress>.progress-endpoint,.race-progress>.progress-lanes{display:none}.progress-players{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.progress-players li{flex-wrap:wrap;align-content:start;padding:6px}.progress-value{width:100%;padding-left:26px}}@media (width<=1100px){.sandbox-layout{grid-template-columns:minmax(0,1fr) 320px;gap:16px}.sandbox-layout .sandbox-app h1{font-size:24px}.sandbox-layout .sandbox-app .intro{flex-wrap:wrap;gap:6px}.sandbox-layout .trap-palette{grid-template-columns:repeat(2,minmax(0,1fr))}.sandbox-layout .sandbox-app .masthead{flex-wrap:wrap;gap:8px;height:auto;padding:12px 0}.sandbox-layout .sandbox-app .game-tools{margin-left:0}}@media (width<=720px){.home-grid{grid-template-columns:minmax(0,1fr)}.masthead{flex-wrap:wrap;gap:10px;height:auto;padding:16px 0}.race-hud{grid-template-columns:minmax(0,1fr)}.progress-players{grid-template-columns:repeat(2,minmax(0,1fr))}}
