:root{--ink:#191b1a;--paper:#f4f1e8;--acid:#d9ff43;--muted:#686b66;--line:#c9c8bf}*{box-sizing:border-box}html{background:var(--paper)}body{color:var(--ink);background:radial-gradient(circle at 80% 15%, #d9ff4342, transparent 25rem), var(--paper);margin:0;font-family:Arial,Apple SD Gothic Neo,Noto Sans KR,sans-serif}a{color:inherit;text-decoration:none}main{min-height:100vh;padding:0 5vw 5rem}nav{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:5rem;display:flex}.brand{letter-spacing:-.06em;font-size:1.25rem;font-weight:900}.status,.eyebrow{color:var(--muted);letter-spacing:.14em;font-size:.72rem;font-weight:800}.hero{align-content:center;max-width:72rem;min-height:67vh;padding:5rem 0;display:grid}.hero h1{letter-spacing:-.085em;word-break:keep-all;max-width:20ch;margin:.4rem 0 1.5rem;font-size:clamp(3.3rem,8vw,8.6rem);font-weight:900;line-height:.89}.summary{max-width:36rem;color:var(--muted);word-break:keep-all;margin:0;font-size:clamp(1rem,2vw,1.25rem);line-height:1.65}.actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.actions a{border:1px solid var(--ink);justify-content:center;align-items:center;min-height:3.5rem;padding:0 1.4rem;font-weight:800;transition:transform .15s,box-shadow .15s;display:inline-flex}.actions a:hover,.actions a:focus-visible{box-shadow:4px 4px 0 var(--ink);transform:translate(-3px,-3px)}.extension-link{border:1px solid var(--ink);width:min(100%,31rem);box-shadow:5px 5px 0 var(--acid);background:#ffffff85;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.9rem;margin-top:2.5rem;padding:1rem 1.15rem;transition:transform .15s,box-shadow .15s;display:grid}.extension-link>span:first-child{background:var(--ink);width:2.4rem;height:2.4rem;color:var(--acid);border-radius:50%;place-items:center;font-size:1.1rem;display:grid}.extension-link strong,.extension-link small{display:block}.extension-link strong{font-size:.95rem}.extension-link small{color:var(--muted);margin-top:.15rem;font-size:.78rem;font-weight:700}.extension-link>b{font-size:1.2rem}.extension-link:hover,.extension-link:focus-visible{box-shadow:8px 8px 0 var(--ink);transform:translate(-3px,-3px)}.primary{background:var(--acid)}.secondary{background:0 0}.rule-card{border:1px solid var(--ink);background:#ffffff5c;grid-template-columns:.8fr 1.2fr;gap:3rem;padding:2.5rem;display:grid}.rule-card h2{letter-spacing:-.06em;word-break:keep-all;max-width:12ch;margin:.5rem 0 0;font-size:clamp(2rem,4vw,3.4rem);line-height:1}.rule-card ol{gap:0;margin:0;padding:0;list-style:none;display:grid}.rule-card li{border-bottom:1px solid var(--line);grid-template-columns:3rem 1fr;gap:1rem;padding:1.2rem 0;line-height:1.5;display:grid}.rule-card li:last-child{border-bottom:0}.rule-card li span{color:var(--muted);font-size:.75rem;font-weight:800}.site-footer{color:var(--muted);justify-content:flex-end;padding:1.5rem 0 0;font-size:.85rem;font-weight:700;display:flex}.site-footer a:hover,.site-footer a:focus-visible{color:var(--ink);text-underline-offset:.25rem;text-decoration:underline;text-decoration-thickness:2px}.form-page{align-content:start;gap:8vh;padding-top:2rem;display:grid}.privacy-page{min-height:100vh}.privacy-home-link{font-size:.85rem;font-weight:800}.privacy-home-link:hover,.privacy-home-link:focus-visible{text-underline-offset:.25rem;text-decoration:underline;text-decoration-thickness:2px}.privacy-content{border:1px solid var(--ink);width:min(100%,52rem);box-shadow:8px 8px 0 var(--acid);word-break:keep-all;background:#ffffff75;margin:clamp(3rem,9vw,7rem) auto;padding:clamp(1.5rem,5vw,4rem);line-height:1.75}.privacy-heading{border-bottom:1px solid var(--ink);padding-bottom:2.25rem}.privacy-heading h1{letter-spacing:-.08em;margin:.5rem 0;font-size:clamp(2.7rem,7vw,5rem);line-height:.95}.privacy-heading p:last-child,.privacy-content>p,.privacy-content section>p{color:var(--muted)}.privacy-content section{border-bottom:1px solid var(--line);padding:2rem 0}.privacy-content section:last-child{border-bottom:0}.privacy-content h2{letter-spacing:-.045em;margin:0 0 .85rem;font-size:clamp(1.35rem,3vw,1.75rem)}.privacy-content ul{gap:.7rem;padding-left:1.25rem;display:grid}.privacy-content a:not(.brand){text-underline-offset:.2rem;text-decoration:underline;text-decoration-thickness:2px}.privacy-note{border-left:4px solid var(--acid);background:#d9ff4333;margin-bottom:0;padding:.85rem 1rem;font-size:.9rem;color:var(--ink)!important}.form-card{border:1px solid var(--ink);width:min(100%,34rem);box-shadow:8px 8px 0 var(--acid);background:#ffffff75;margin-inline:auto;padding:clamp(1.5rem,4vw,3rem)}.form-card h1{letter-spacing:-.07em;margin:.35rem 0 .75rem;font-size:clamp(2.5rem,7vw,4.2rem)}.form-card p{color:var(--muted)}.form-card label{gap:.5rem;margin-top:1.4rem;font-size:.85rem;font-weight:800;display:grid}.form-card input,.form-card select,.form-card button{border:1px solid var(--ink);min-height:3.4rem;font:inherit;border-radius:0}.form-card input,.form-card select{background:var(--paper);padding:0 1rem}.form-card button{background:var(--line);width:100%;color:var(--muted);margin-top:1.5rem;font-weight:800}.form-card button:not(:disabled){cursor:pointer;background:var(--acid);color:var(--ink)}.form-card .form-error,.lobby-page .form-error{color:#a32314;font-weight:700}.form-card input.code-input{text-transform:uppercase;letter-spacing:.2em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.2rem;font-weight:800}.lobby-page{min-height:100vh}.lobby-header{justify-content:space-between;align-items:center;gap:2rem;padding:1.5rem 0 1.25rem;display:flex}.lobby-header h1{letter-spacing:-.06em;margin:0;font-size:clamp(1.65rem,4vw,2.4rem)}.room-code-value,.pairing-code-value{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.room-code-value h1{margin:0}.room-code{border:1px solid var(--line);letter-spacing:.1em;background:#ffffff8f;padding:.5rem .65rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem;font-weight:900}.room-code-label{color:var(--muted);letter-spacing:.08em;font-size:.72rem;font-weight:800}.copy-button{border:1px solid var(--ink);min-height:2.5rem;color:var(--ink);font:inherit;cursor:pointer;background:0 0;padding:0 .85rem;font-size:.8rem;font-weight:800}.copy-button:hover,.copy-button:focus-visible{background:var(--acid)}.connection-action .copy-button{min-height:2.5rem;color:var(--ink);background:0 0;margin:0}.connection-action .copy-button:hover,.connection-action .copy-button:focus-visible{background:var(--acid)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.lobby-header p{color:var(--muted)}.extension-banner{border:1px solid var(--ink);background:#d9ff4375;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.7rem .85rem;display:flex}.extension-banner-mark{background:var(--ink);width:1.45rem;height:1.45rem;color:var(--acid);border-radius:50%;flex:none;place-items:center;font-size:.8rem;font-weight:900;display:grid}.extension-banner p{color:var(--muted);flex:1;margin:0;font-size:.82rem;line-height:1.45}.extension-banner p strong{color:var(--ink)}.extension-banner a{border:1px solid var(--ink);background:var(--ink);color:var(--paper);flex:none;padding:.45rem .65rem;font-size:.75rem;font-weight:800}.extension-banner a:hover,.extension-banner a:focus-visible{background:var(--acid);color:var(--ink)}.room-state{border:1px solid var(--ink);background:var(--acid);text-transform:uppercase;padding:.65rem .8rem;font-size:.75rem;font-weight:900}.race-overview{border:1px solid var(--ink);background:var(--ink);color:var(--paper);box-shadow:8px 8px 0 var(--acid);grid-template-columns:minmax(10rem,.45fr) minmax(0,1.55fr);align-items:center;gap:clamp(1.5rem,4vw,4rem);margin-bottom:1rem;padding:clamp(1.5rem,4vw,3rem);display:grid}.race-overview h1{letter-spacing:-.07em;margin:.25rem 0 0;font-size:clamp(1.8rem,4vw,3.4rem)}.race-route{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:clamp(.8rem,3vw,2rem);display:grid}.race-route div{gap:.5rem;display:grid}.race-route span{color:#b7bab1;letter-spacing:.1em;font-size:.72rem;font-weight:800}.race-route strong{overflow-wrap:anywhere;color:var(--acid);letter-spacing:-.06em;font-size:clamp(1.35rem,3vw,2.3rem)}.race-route b{color:var(--acid);font-size:clamp(1.5rem,4vw,3rem)}.race-empty{color:#b7bab1}.lobby-grid{grid-template-columns:minmax(0,1.35fr) minmax(18rem,.65fr);gap:1rem;display:grid}.lobby-grid-player-only{grid-template-columns:minmax(0,34rem)}.leaderboard-panel{border:1px solid var(--ink);background:#ffffff75;margin-top:1rem;padding:clamp(1.25rem,3vw,2rem)}.leaderboard-panel h2{letter-spacing:-.05em;margin:.3rem 0 0;font-size:clamp(1.5rem,3vw,2.3rem)}.leaderboard-list{margin:1.25rem 0 0;padding:0;list-style:none}.leaderboard-list>li{border-top:1px solid var(--line);grid-template-columns:5rem minmax(8rem,1fr) 7rem 7rem auto;align-items:center;gap:1rem;min-height:3.5rem;display:grid}.leaderboard-list small{color:#a32314;font-weight:800}.route-details{grid-column:1/-1;padding:0 0 1rem}.route-details summary{cursor:pointer;width:fit-content;padding:.4rem 0;font-size:.8rem;font-weight:800}.generated-path{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:1rem}.generated-path h3{margin:0;font-size:1rem}.generated-path ol{flex-wrap:wrap;gap:.4rem 1.2rem;margin:.75rem 0 0;padding-left:1.25rem;display:flex}.route-details>p{color:var(--muted);margin:.5rem 0;font-size:.85rem}.route-list{border-left:2px solid var(--acid);margin:.5rem 0 0;padding:0;list-style:none}.route-list li{border-bottom:1px solid var(--line);grid-template-columns:4rem minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.6rem .75rem;font-size:.85rem;display:grid}.route-list li>span,.route-list small{color:var(--muted);font-size:.72rem;font-weight:800}.route-list strong{overflow-wrap:anywhere}.lobby-card{border:1px solid var(--ink);background:#ffffff6b;padding:1.5rem}.settings-card{min-height:23rem}.participants-card{align-self:start;min-height:0}.card-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:1rem;display:flex}.card-heading h2{letter-spacing:-.04em;margin:.25rem 0 0;font-size:1.5rem}.card-heading .eyebrow{margin:0}.player-list{margin:0;padding:0;list-style:none}.player-list li{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.75rem;padding:1rem 0;display:grid}.player-name{gap:.15rem;min-width:0;display:grid}.player-name strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player-name span{color:var(--muted);font-size:.72rem;font-weight:800}.player-readiness{border:1px solid var(--line);color:var(--muted);white-space:nowrap;padding:.3rem .4rem;font-size:.68rem;font-weight:800}.player-readiness.is-ready{border-color:var(--ink);background:var(--acid);color:var(--ink)}.presence{background:#55a630;border-radius:50%;width:.6rem;height:.6rem}.settings-list{grid-template-columns:4rem 1fr;gap:1rem;margin-top:1.5rem;display:grid}.settings-list dt,.empty-message{color:var(--muted)}.settings-list dd{margin:0;font-weight:800}.settings-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:1rem;margin-top:1.5rem;display:grid}.settings-form>label:first-child,.settings-form .random-path-controls,.settings-form>button,.settings-form .form-error,.settings-form .form-success{grid-column:1/-1}.settings-form label{gap:.45rem;font-size:.8rem;font-weight:800;display:grid}.random-path-controls{border:1px dashed var(--line);gap:.6rem;padding:.85rem;display:grid}.form-hint{color:var(--muted);margin:0;font-size:.78rem}.settings-form input,.settings-form select,.settings-form button{border:1px solid var(--ink);min-height:3rem;font:inherit;border-radius:0}.settings-form>button{justify-self:end;width:auto;min-width:12rem;padding-inline:1.25rem}.settings-form input,.settings-form select{background:var(--paper);padding:0 .8rem}.settings-form button{background:var(--acid);cursor:pointer;font-weight:800}.settings-form button:disabled{background:var(--line);color:var(--muted);cursor:default}.settings-form .form-error,.form-success{margin:0;font-size:.85rem}.form-success{color:#2d6a27;font-weight:700}.connection-panel,.start-panel,.countdown-clock{border:1px solid var(--ink);background:#ffffff6b;margin-bottom:1rem;padding:1.5rem}.connection-panel,.start-panel{grid-template-columns:minmax(12rem,.75fr) minmax(16rem,1.25fr);align-items:center;gap:1.5rem;display:grid}.connection-panel h2,.start-panel h2{letter-spacing:-.05em;margin:.35rem 0 0;font-size:1.6rem}.connection-action{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.connection-action p{color:var(--muted);flex-basis:100%;margin:0}.connection-action button,.start-panel button{border:1px solid var(--ink);background:var(--acid);cursor:pointer;min-height:3rem;padding:0 1rem;font-weight:800}.connection-action button:disabled,.start-panel button:disabled{background:var(--line);color:var(--muted);cursor:default}.start-panel button.danger-button{color:#fff;background:#a32314}.start-panel.next-game-panel{background:var(--acid);color:var(--ink)}.start-panel.next-game-panel p{color:var(--muted)}.start-panel.next-game-panel button{background:var(--paper)}.connection-ok{font-weight:800}.pairing-code{letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.7rem}.countdown-clock{background:var(--ink);min-height:13rem;color:var(--paper);place-items:center;display:grid}.countdown-clock strong{color:var(--acid);font-size:clamp(4rem,12vw,8rem);line-height:1}.start-panel{background:var(--ink);color:var(--paper);margin-top:1rem}.start-panel p{color:#b8bbb5}.start-panel .form-error{grid-column:1/-1}.retry-button{border:1px solid var(--ink);background:var(--acid);cursor:pointer;min-height:3rem;padding:0 1rem;font-weight:800}@media (max-width:720px){main{padding-inline:1.25rem}.hero{min-height:72vh}.rule-card{grid-template-columns:1fr;gap:2rem;padding:1.5rem}.lobby-header{flex-direction:column;align-items:start;padding-top:1.5rem}.lobby-header h1{font-size:1.8rem}.extension-banner{flex-wrap:wrap;align-items:stretch}.extension-banner p{flex-basis:calc(100% - 2.25rem)}.extension-banner a{text-align:center;margin-left:2.2rem}.race-overview{grid-template-columns:1fr;gap:1.5rem;padding:1.5rem}.race-route{grid-template-columns:1fr;gap:.9rem}.race-route b{transform:rotate(90deg)}.lobby-grid,.settings-form{grid-template-columns:1fr}.settings-form>label,.settings-form .random-path-controls,.settings-form>button,.settings-form .form-error,.settings-form .form-success{grid-column:auto}.settings-form>button{width:100%}.connection-panel,.start-panel{grid-template-columns:1fr}.leaderboard-list>li{grid-template-columns:4rem 1fr auto;gap:.5rem;padding:.75rem 0}.player-list li{grid-template-columns:auto minmax(0,1fr) auto}.player-remove-button{grid-column:2/-1;justify-self:start}.leaderboard-list>li>span:nth-of-type(2),.leaderboard-list>li>small{grid-column:2/-1}.route-list li{grid-template-columns:3rem minmax(0,1fr)}.route-list small{grid-column:2}}
