:root{color-scheme:light;--paper:#efece4;--ink:#20292d;--muted:#777d7b;--orange:#f5754f;--border:#d0d1c8;--navy:#14242d;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;height:100dvh;overflow:hidden}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #e7592c;outline-offset:4px}button{transition:background .15s,transform .15s}button:active:not(:disabled){transform:translateY(1px)}.hidden{display:none!important}.header{height:84px;padding:0 4.2vw;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:35px;background:var(--paper);position:relative;z-index:20}.wordmark{display:flex;align-items:center;gap:9px;font:900 29px Impact,'Arial Narrow',sans-serif;letter-spacing:-.04em;text-decoration:none;color:var(--ink)}.logo{display:grid;place-items:center;width:33px;height:35px;background:var(--orange);font:900 italic 34px Impact,sans-serif;line-height:1;overflow:hidden;transform:skew(-6deg);margin-right:3px}.wordmark-small{font:8px/1.3 'Courier New',monospace;letter-spacing:.05em;border-left:1px solid #9caaa7;padding-left:10px;margin-left:7px}.header-label{font:9px 'Courier New',monospace;letter-spacing:.07em;margin-left:auto;color:#6a7574}.header-actions{display:flex;align-items:center;gap:20px}.text-button{font:700 10px 'Courier New',monospace;letter-spacing:.06em;border:0;background:transparent;color:inherit;padding:9px 0}.text-button:hover{color:#d7552e}#home{max-width:1600px;margin:auto;height:calc(100dvh - 84px);padding:38px 4.2vw 34px;display:grid;grid-template-columns:1fr 1.07fr;gap:5vw}.hero{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding-bottom:4px}.eyebrow{font:700 9px 'Courier New',monospace;letter-spacing:.1em;display:block}.orange-dot{display:inline-block;width:6px;height:6px;background:var(--orange);border-radius:50%;margin-right:7px}h1{font:900 clamp(66px,7.5vw,122px)/.84 Impact,'Arial Narrow',sans-serif;letter-spacing:-.035em;margin:30px 0 24px}h1 span{color:var(--orange)}.hero-description{font-size:14px;line-height:1.65;color:#687471;margin:0 0 25px}.profile-form{width:100%;max-width:440px}label{font:700 9px 'Courier New',monospace;letter-spacing:.12em;display:block;margin-bottom:10px}.profile-row{display:flex;gap:14px;align-items:center}input{min-width:0;width:100%;height:44px;background:#f7f6f1;color:var(--ink);border:1px solid #bfc4bb;border-radius:3px;padding:0 12px;font-size:13px}#display-name{flex:1}#color-picker{display:flex;gap:7px;flex-wrap:wrap;width:104px;justify-content:flex-start}.swatch{border:0;width:19px;height:19px;border-radius:50%;padding:0;box-shadow:inset 0 0 0 1px #0002}.swatch.active{outline:2px solid var(--ink);outline-offset:2px}.hero-actions{display:flex;gap:9px;width:100%;max-width:440px;margin-top:16px}.button{height:48px;display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--ink);border-radius:3px;padding:0 17px;font-size:10px;letter-spacing:.08em;font-weight:800}.button span{font-size:20px;line-height:1}.button-dark{background:var(--ink);color:var(--paper)}.button-dark:hover{background:#38464b}.button-outline{background:transparent;color:var(--ink)}.button-outline:hover{background:#e2e3d9}.hero-actions .button:first-child{flex:1.25}.hero-actions .button:last-child{flex:1}.training-link{display:flex;align-items:center;gap:12px;border:0;border-bottom:1px solid var(--border);background:transparent;text-align:left;width:100%;max-width:440px;padding:20px 0 18px;margin:0;color:#727d77;font-size:10px;line-height:1.5}.training-link strong{display:block;color:var(--ink);font-size:12px}.training-link>span:last-child{margin-left:auto;color:var(--ink);font-size:20px}.play-icon{display:grid;place-items:center;border:1px solid #aeb9b1;border-radius:50%;width:31px;height:31px;color:var(--ink);font-size:20px}.hero-foot{display:flex;gap:16px;font:8px 'Courier New',monospace;letter-spacing:.07em;color:#869089;margin-top:18px}.hero-foot span+span:before{content:'·';margin-right:16px}#stage{position:relative;min-width:0;overflow:hidden;border-radius:9px;background:#142832;box-shadow:0 7px 22px #1a2b3512}canvas{width:100%;height:100%;display:block;outline:none}.stage-caption{position:absolute;bottom:0;left:0;right:0;height:49px;display:flex;align-items:center;gap:9px;padding:0 24px;font:9px 'Courier New',monospace;letter-spacing:.07em;color:#ced0b8;background:#13252bde;border-top:1px solid #67746545}.stage-caption>span:last-child{margin-left:auto;font-size:17px}.live-dot{height:5px;width:5px;border-radius:50%;background:#ff925f;box-shadow:0 0 10px #f7855e77}.preview-sticker{position:absolute;right:25px;top:24px;transform:rotate(7deg);width:113px;height:120px;background:#f1d783;color:#293837;padding:14px;box-shadow:2px 4px 1px #08161755}.preview-sticker span{font:900 28px/.91 Impact,sans-serif;letter-spacing:-.015em}.preview-sticker small{font:8px 'Courier New',monospace;display:block;margin-top:12px}.is-playing #home,.is-lobby #home{display:block;padding:0;max-width:none}.is-playing .hero,.is-lobby .hero{display:none}.is-playing #stage,.is-lobby #stage{position:fixed;inset:84px 0 0;border-radius:0;box-shadow:none}.is-playing .stage-caption,.is-playing .preview-sticker,.is-lobby .stage-caption,.is-lobby .preview-sticker{display:none}.is-playing .header-label,.is-lobby .header-label{color:#4c5e59}#hud{position:fixed;inset:84px 0 0;pointer-events:none;z-index:3}.climb-card{position:absolute;top:24px;left:24px;width:182px;background:var(--paper);padding:17px;border-radius:4px;box-shadow:0 5px 25px #091a2b30}.label{font:700 9px 'Courier New',monospace;letter-spacing:.12em;color:#7a847d}.floor-line{display:flex;align-items:center;justify-content:space-between}.floor-line strong{font:900 74px/1.05 Impact,sans-serif;letter-spacing:-.025em}.floor-line>span{font-size:36px;color:#f0754f}.rank-line{display:flex;justify-content:space-between;align-items:center;font:10px 'Courier New',monospace;margin-top:6px}#rank{font-weight:900;font-size:14px}#gap{font-size:8px;color:#697b72}.speed-track{height:4px;margin-top:19px;background:#d3d8cb;overflow:hidden}.speed-track span{display:block;height:100%;width:0;background:#ee794e;transition:width .08s}.speed-caption{font:7px 'Courier New',monospace;color:#6b7e73;margin-top:7px;display:flex;flex-wrap:wrap;gap:4px;justify-content:space-between}.standings-card{position:absolute;top:24px;right:24px;width:224px;background:#142831e8;border:1px solid #60747744;color:#c6d4cb;border-radius:4px;padding:16px}.standings-title{display:flex;justify-content:space-between;font:8px 'Courier New',monospace;letter-spacing:.1em;border-bottom:1px solid #ffffff20;padding-bottom:13px}.standing{display:grid;grid-template-columns:15px 9px 1fr 32px 28px;gap:7px;align-items:center;font-size:11px;padding:10px 0}.standing.self{color:#fff9d9}.standing>span:first-child{font:10px 'Courier New',monospace;color:#b8ab88}.standing .color-dot{width:7px;height:7px;border-radius:50%}.standing>span:nth-child(3){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.standing .standing-floor{font:11px 'Courier New',monospace;text-align:right}.standing small{font:8px 'Courier New',monospace;text-align:right;color:#859e99}#victory-rule{font:7px 'Courier New',monospace;color:#8baba3;border-top:1px solid #ffffff20;padding-top:12px;letter-spacing:.025em}.bottom-controls{position:absolute;bottom:19px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;color:#bac7bc;font:8px 'Courier New',monospace;letter-spacing:.04em}.bottom-controls>div{display:flex;align-items:center;gap:7px;background:#142730d9;border:1px solid #74888645;border-radius:4px;padding:9px 11px}kbd{font:700 9px 'Courier New',monospace;min-width:21px;display:inline-block;text-align:center;line-height:23px;padding:0 4px;background:#efece4;color:#263b3a;border-radius:3px;border-bottom:2px solid #abb5ac}.space-key{margin-left:12px}#strike-indicator{color:#efe8d9}#strike-indicator i{display:block;width:6px;height:6px;border-radius:50%;background:#8fd0af;margin-left:8px}#strike-indicator.used{opacity:.6}#strike-indicator.used i{background:#7c847d}#dominance{position:absolute;top:22px;left:50%;transform:translateX(-50%);background:#f17850;border-radius:4px;width:280px;padding:12px 15px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 4px 20px #170b0344}#dominance>div:first-child{display:grid;gap:5px}#dominance span{font:700 8px 'Courier New',monospace;letter-spacing:.14em}#dominance strong{font-size:12px}#dominance b{font:900 35px Impact,sans-serif}.dominance-track{position:absolute;bottom:0;left:0;right:0;height:3px;background:#5d3c1b44}.dominance-track span{display:block;height:100%;background:#f9ebce;width:0}#event-message{position:absolute;top:27%;left:50%;transform:translateX(-50%);font:900 28px Impact,sans-serif;letter-spacing:.02em;color:#fff0c3;text-shadow:0 3px 10px #18292a;opacity:0;transition:opacity .15s;white-space:nowrap}#event-message.show{opacity:1}#countdown{position:absolute;inset:0;background:#09182277;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#ffe6b2}#countdown small{font:10px 'Courier New',monospace;letter-spacing:.14em}#countdown strong{font:900 170px Impact,sans-serif}#training{position:fixed;z-index:5;left:24px;bottom:100px;width:232px;padding:17px;background:var(--paper);border-radius:4px;box-shadow:0 3px 25px #0b152337}.training-top{display:flex;align-items:center;justify-content:space-between;font:8px 'Courier New',monospace;letter-spacing:.08em}.training-top button{background:none;border:0;font-size:19px;color:#778b80;line-height:16px;padding:0}.training-top>span:nth-child(2){margin-left:auto;margin-right:15px;color:#7c8d80}#lesson-progress{display:flex;gap:4px;margin-top:12px}#lesson-progress i{display:block;flex:1;height:3px;background:#d3d7cb}#lesson-progress i.complete{background:#f17850}#training h3{font:900 24px/1.02 Impact,sans-serif;margin:16px 0 9px}#training p{font-size:11px;line-height:1.55;color:#6b7d73;margin:0 0 12px}#jump-comparison{display:flex;align-items:flex-end;gap:17px;border-top:1px solid #cdd4c6;padding-top:10px;margin-top:10px}#jump-comparison>div{display:flex;align-items:flex-end;gap:6px;flex:1;font:7px 'Courier New',monospace}#jump-comparison span{max-width:35px;line-height:1.4}#jump-comparison i{display:block;width:9px;background:#f17850}#jump-comparison b{font:7px 'Courier New',monospace}#next-lesson{margin-top:9px;font-size:9px}#dialog-backdrop{position:fixed;inset:84px 0 0;z-index:10;background:#10232ac9;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px}.dialog{position:relative;width:440px;max-width:100%;max-height:100%;overflow:auto;padding:34px;background:var(--paper);border-radius:8px;box-shadow:0 20px 100px #0004}.dialog h2{font:900 58px/.93 Impact,sans-serif;letter-spacing:-.015em;margin:23px 0 20px}.dialog p{font-size:12px;color:#718075;line-height:1.6;margin:0 0 22px}.dialog-close{position:absolute;right:18px;top:16px;border:0;background:none;font-size:24px;color:#6c796e}.dialog .button{width:100%;margin-top:16px}.dialog label{margin-top:25px}.dialog input{font:700 22px 'Courier New',monospace;letter-spacing:.22em;text-transform:uppercase;height:53px}.room-code-line{display:flex;align-items:center;justify-content:space-between;border:1px dashed #a3b5a1;padding:13px 15px;background:#e4e7dc;margin-bottom:18px}.room-code-line small{font:8px 'Courier New',monospace;display:block;margin-bottom:4px;color:#718472}.room-code-line strong{font:700 24px 'Courier New',monospace;letter-spacing:.1em}.room-code-line .text-button{font-size:8px}.member{display:flex;align-items:center;gap:10px;border-bottom:1px solid #d5dacf;padding:12px 0;font-size:12px}.member i{width:11px;height:11px;border-radius:3px}.member small{margin-left:auto;font:8px 'Courier New',monospace;color:#7b8b80}.member small.ready{color:#267e55}.empty-seat{color:#86998b;font-size:11px;padding:16px 0;border-bottom:1px solid #d5dacf}.empty-seat span{display:inline-block;border:1px dashed #a4b3a7;width:13px;height:13px;margin-right:9px;vertical-align:middle}#lobby-message{font-size:10px;margin:13px 0 0}.lobby-buttons{display:flex;gap:10px}.lobby-buttons .button{flex:1}.lobby-buttons .button.ready{background:#c0dbc5}.lobby-leave{margin-top:15px}.result-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px}.result-stat{border-top:1px solid #adbcae;padding-top:12px}.result-stat span{font:7px 'Courier New',monospace;color:#708573;display:block}.result-stat strong{font:900 32px Impact,sans-serif;display:block;margin-top:7px}#result-table{border-top:1px solid #becbbf;margin-bottom:20px}.result-row{display:flex;gap:10px;padding:9px 0;font-size:10px}.result-row span:last-child{margin-left:auto;color:#7e9280;font:9px 'Courier New',monospace}#rematch-note{font-size:10px;margin:10px 0}#toast{position:fixed;z-index:40;bottom:28px;left:50%;transform:translateX(-50%);background:#f6d6a4;color:#42352c;padding:13px 20px;border-radius:4px;box-shadow:0 3px 20px #0b1c1f40;font-size:12px;max-width:90vw}
@media(min-width:1500px){.hero{padding-left:25px}.hero-description{font-size:17px}.profile-form,.hero-actions,.training-link{max-width:480px}.button{height:54px}.hero-foot{margin-top:23px}}
@media(max-height:790px) and (min-width:851px){#home{padding-top:23px;padding-bottom:23px}h1{font-size:82px;margin:20px 0}.hero-description{margin-bottom:15px}.training-link{padding:13px 0}.hero-foot{margin-top:12px}.header{height:70px}#home{height:calc(100dvh - 70px)}.is-playing #stage,.is-lobby #stage,#hud,#dialog-backdrop{top:70px}}
@media(max-width:1050px){.header-label{font-size:8px}.climb-card{width:145px;left:14px;top:14px;padding:12px}.floor-line strong{font-size:59px}.standings-card{width:190px;right:14px;top:14px;padding:12px}#training{left:14px;width:200px}.standing{gap:4px;grid-template-columns:12px 7px 1fr 26px 21px;font-size:10px}}
@media(max-width:850px){body{overflow:auto}.header{height:68px;padding:0 24px;gap:14px}.header-label{display:none}.wordmark{font-size:25px}.wordmark-small{display:none}.header-actions{margin-left:auto;gap:15px}.text-button{font-size:9px}#home{padding:28px 24px;height:auto;min-height:calc(100dvh - 68px);grid-template-columns:1fr;gap:27px}.hero{padding:0}.hero h1{font-size:78px;margin:22px 0;line-height:.88}.hero h1 br:nth-child(2){display:none}.hero h1 span{margin-left:11px}.hero-description{font-size:13px;line-height:1.5;margin-bottom:23px}.profile-form,.hero-actions,.training-link{max-width:none}.hero-foot{margin-top:16px}#stage{height:390px}.is-playing #stage,.is-lobby #stage{inset:68px 0 0;height:auto}.is-playing,.is-lobby{overflow:hidden}#hud,#dialog-backdrop{top:68px}.climb-card{top:12px;left:12px;width:114px;padding:10px}.floor-line strong{font-size:46px}.floor-line>span{font-size:26px}.label{font-size:7px}.rank-line{margin-top:2px;display:block}.rank-line #gap{display:block;margin-top:3px}.speed-track{margin-top:12px}.speed-caption>span{display:none}.standings-card{top:12px;right:12px;width:163px;padding:10px}.standings-title{font-size:7px;padding-bottom:8px}.standing{font-size:9px;padding:6px 0;grid-template-columns:10px 7px 1fr 23px;gap:5px}.standing small{display:none}#victory-rule{font-size:6px;padding-top:8px}.bottom-controls{left:12px;right:12px;bottom:12px;font-size:7px}.bottom-controls>div{gap:4px;padding:7px}.space-key{margin-left:5px}#training{left:12px;bottom:76px;width:210px;padding:12px}#training h3{font-size:20px;margin:12px 0 6px}#training p{font-size:10px;margin-bottom:5px}#jump-comparison{display:none}#dominance{top:185px;width:230px;padding:9px 12px}#event-message{font-size:23px;top:39%}.dialog{padding:26px}.dialog h2{font-size:51px}.preview-sticker{width:106px;height:112px}.stage-caption{padding:0 17px}}
@media(prefers-reduced-motion:reduce){button,#event-message,.speed-track span{transition:none}}
@media(max-width:850px){#jump-comparison:not(.hidden){display:flex}}
.character-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:12px;padding:10px 12px;border:1px solid #bfc4bb;border-radius:3px;background:#e5e7dd;text-align:left;color:var(--ink);font:8px 'Courier New',monospace;letter-spacing:.06em}.character-trigger strong{font:700 12px Arial;letter-spacing:0;margin-left:12px}.character-trigger:hover{background:#dce1d4}.character-dialog{width:680px}.character-dialog h2{font-size:48px;margin:18px 0 12px}.character-dialog>p{margin-bottom:18px}.character-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.character-option{display:flex;flex-direction:column;align-items:stretch;min-width:0;border:1px solid #b6c2b4;border-radius:5px;padding:0 12px 13px;background:#e0e5da;text-align:left;color:var(--ink);overflow:hidden}.character-option:hover{background:#d5dfd0}.character-option[aria-pressed=true]{border:2px solid #d35c38;padding:0 11px 12px;background:#f0dfc9}.character-option canvas{width:100%;height:auto;aspect-ratio:1;flex:none}.character-option strong{font:900 24px Impact,'Arial Narrow',sans-serif;letter-spacing:.02em}.character-description{font:11px/1.5 Arial;color:#627268;min-height:51px;margin-top:6px}.character-status{font:700 9px 'Courier New',monospace;letter-spacing:.08em;margin-top:13px;color:#51675b}.character-option[aria-pressed=true] .character-status{color:#b84d2f}.character-dialog #character-done{margin-top:20px}
@media(max-width:560px){.character-dialog{padding:24px 16px}.character-dialog h2{font-size:38px}.character-options{gap:6px}.character-option{padding:0 7px 10px}.character-option[aria-pressed=true]{padding:0 6px 9px}.character-option strong{font-size:19px}.character-description{font-size:9px;min-height:65px}.character-status{font-size:8px;letter-spacing:0}.character-dialog>p{font-size:11px}}
@media(max-height:790px) and (min-width:851px){.character-trigger{margin-top:8px;padding:8px 12px}.hero-foot{margin-top:10px}.character-dialog canvas{max-height:135px;object-fit:contain}.character-dialog h2{font-size:40px;margin:12px 0}}
.bot-entry{width:100%;max-width:440px;margin-top:10px;background:#dce5d6;border-color:#9aae98;color:#263b32;height:42px}.bot-entry:hover{background:#cbdcc3}.dialog select{width:100%;height:44px;border:1px solid #a9b8a2;border-radius:3px;background:#f7f6f1;padding:0 12px;color:var(--ink);font:700 13px Arial}.dialog select:focus-visible{outline:3px solid #e7592c;outline-offset:3px}.dialog p.bot-setting-note{font-size:11px;line-height:1.5;margin:9px 0 18px}.bot-rules{padding:13px;background:#e1e6d9;border-radius:4px;font:11px/1.6 Arial;color:#526753;margin-top:20px}#bot-settings{display:block;margin-bottom:9px}#bots-dialog label{margin-top:18px}
@media(min-width:1500px){.bot-entry{max-width:480px}}
@media(max-width:850px){.bot-entry{max-width:none}}
@media(max-height:790px) and (min-width:851px){.hero h1{font-size:68px;margin:14px 0}.hero-description{font-size:12px;margin-bottom:12px}.hero-actions .button{height:42px}.training-link{padding:10px 0}.bot-entry{height:38px;margin-top:8px}.hero-foot{margin-top:8px}#bots-dialog{padding:24px 30px}#bots-dialog h2{font-size:44px;margin:16px 0}#bots-dialog label{margin-top:12px}#bots-dialog p{margin-bottom:12px}}
.momentum-track{margin-top:10px!important}.momentum-track span{background:#a9f6c4!important}.climb-card .speed-caption{display:block;font-size:9px;line-height:1.35}.climb-card .speed-caption>span{display:block;font-size:8px;margin-top:3px;color:#354c40}

#dominance.elimination-list{display:flex;flex-direction:column;gap:8px;width:330px;padding:0;background:none;box-shadow:none;max-height:45vh;overflow-y:auto;pointer-events:auto}
#dominance.elimination-list .elimination-notice{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px 16px;border-radius:5px;overflow:hidden;flex-shrink:0;box-shadow:0 3px 15px #0003}
#dominance.elimination-list .safe{background:#c7edcd;color:#18492c}#dominance.elimination-list .danger{background:#f5b6ac;color:#72281f}
#dominance.elimination-list strong{display:block;font:700 11px/1.4 Arial}#dominance.elimination-list span{display:block;font:8px/1.5 'Courier New',monospace;letter-spacing:0;margin-top:4px}#dominance.elimination-list b{font:700 24px 'Courier New',monospace;white-space:nowrap}#dominance.elimination-list i{position:absolute;left:0;bottom:0;height:4px;background:currentColor}
#spectating{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);max-width:90%;padding:13px 18px;border-radius:5px;background:#e9e5d8;color:#223d39;text-align:center;font:700 11px/1.5 'Courier New',monospace}.standing.eliminated{opacity:.45}.climb-card #gap{overflow-wrap:anywhere}
@media(max-width:850px){#dominance.elimination-list{top:320px;width:min(330px,90vw);max-height:32vh}}
