:root{--cream:#f6ead6;--cream-dim:#f6ead6b8;--ink:#241b16;--terra:#d9784a;--terra-deep:#b4552f;--teal:#2f9c96;--glass:#1e161294;--glass-strong:#1e1612d1;--font:"Avenir Next", "Segoe UI", "Helvetica Neue", system-ui, sans-serif}html,body{height:100%;font:14px/1.4 var(--font);color:var(--cream);background:#1b1512;margin:0;overflow:hidden}canvas#game{outline:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}[hidden]{display:none!important}button,input,select{font:inherit}.screen{z-index:20;background:radial-gradient(120% 90% at 30% 20%,#ffbe781a,#1c120e8c 70%);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#pause,#panel{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#18110e8c}.card{box-sizing:border-box;background:var(--glass-strong);border:1px solid #f6ead617;border-radius:14px;width:min(460px,100vw - 32px);padding:28px 30px 22px;box-shadow:0 18px 60px #00000059}#start{justify-content:flex-start;padding-left:max(16px,7vw)}#start .card{background:#1e1612b3}h1{letter-spacing:-1px;color:var(--cream);margin:0 0 4px;font-size:54px;font-weight:800;line-height:1}h1:after{content:"";background:linear-gradient(90deg, var(--terra), var(--teal));border-radius:2px;width:64px;height:4px;margin-top:12px;display:block}h2{margin:0 0 14px;font-size:24px;font-weight:700}.tag{color:var(--cream-dim);margin:14px 0 20px}label{text-transform:uppercase;letter-spacing:.08em;color:var(--cream-dim);margin-bottom:6px;font-size:12px;display:block}.row{align-items:center;gap:10px;display:flex}input#name{min-width:0;color:var(--cream);background:#f6ead614;border:1px solid #f6ead62e;border-radius:9px;outline:none;flex:1;padding:11px 14px;font-size:17px}input#name:focus{border-color:var(--terra);background:#f6ead61f}button{background:var(--terra);color:#fff8ee;cursor:pointer;border:0;border-radius:9px;padding:11px 22px;font-size:16px;font-weight:700;transition:background .15s,transform .1s}button:hover{background:var(--terra-deep)}button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:default}button.ghost{color:var(--cream);background:0 0;border:1px solid #f6ead640;font-size:14px;font-weight:600}button.ghost:hover{background:#f6ead614}.status{min-height:20px;color:var(--cream-dim);margin-top:10px;font-size:13px}.controls{grid-template-columns:auto 1fr;gap:3px 14px;margin:18px 0 8px;font-size:13px;display:grid}.controls dt{color:var(--cream);background:#f6ead614;border-radius:4px;justify-self:start;padding:0 7px;font-weight:700}.controls dd{color:var(--cream-dim);margin:0}.small{color:#f6ead68c;margin:8px 0 0;font-size:12px}.settings label{margin:0 0 14px}.settings output{float:right;color:var(--cream);text-transform:none;letter-spacing:0}.settings input[type=range]{width:100%;accent-color:var(--terra);margin-top:6px;display:block}.settings select{width:100%;color:var(--cream);background:#f6ead614;border:1px solid #f6ead62e;border-radius:7px;margin-top:6px;padding:7px 9px;display:block}.settings select option{color:var(--ink)}.settings label.check{text-transform:none;letter-spacing:0;color:var(--cream);align-items:center;gap:8px;font-size:14px;display:flex}.settings input[type=checkbox]{accent-color:var(--terra);width:16px;height:16px}.buttons{flex-wrap:wrap;margin-top:8px}.settings .row2{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.settings .row2 label{font-size:11px}#pause .card{max-height:calc(100vh - 32px);overflow-y:auto}#modetip{color:var(--cream);white-space:nowrap;text-shadow:0 1px 3px #000c;font-size:12px;position:fixed;bottom:122px;left:50%;transform:translate(-50%)}#modetip kbd{font:700 11px var(--font);background:#f6ead629;border-radius:3px;padding:0 5px}.loading-box{text-align:center;width:min(360px,100vw - 32px)}.loading-title{margin-bottom:12px;font-size:22px;font-weight:700}.bar{background:#f6ead626;border-radius:3px;height:6px;overflow:hidden}#loading-fill{background:linear-gradient(90deg, var(--terra), #f0b060);width:0;height:100%;transition:width .2s}.card.error{border-color:#d9784a80}.card.error h2{color:#ffb38c}.card.error p{color:var(--cream-dim);white-space:pre-wrap;word-break:break-word}#hud{pointer-events:none;z-index:5;text-shadow:0 1px 3px #0000008c;position:fixed;inset:0}#crosshair{background:#fff8ecd9;border-radius:50%;width:4px;height:4px;margin:-2px 0 0 -2px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1px #00000040}#compass{width:min(560px,72vw);height:40px;position:absolute;top:12px;left:50%;overflow:hidden;transform:translate(-50%);-webkit-mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000);mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000)}#compass-strip{position:absolute;inset:0}.compass-tick{background:var(--terra);border-radius:1px;width:2px;height:6px;margin-left:-1px;position:absolute;top:0;left:50%}#compass{background:linear-gradient(#0e0a086b,#0e0a0838);border-radius:8px}.cmark{white-space:nowrap;color:var(--cream-dim);text-shadow:0 1px 2px #000000d9,0 0 6px #00000080;font-size:12px;position:absolute;top:8px;transform:translate(-50%)}.cmark.cardinal{color:var(--cream);font-size:13px;font-weight:700}.cmark.landmark{color:#ffd39a;font-size:11px;top:24px}.cmark.landmark:before{content:"";background:#ffb062;border-radius:1px;width:5px;height:5px;margin-right:4px;display:inline-block;transform:rotate(45deg)translateY(-1px)}.cmark.dot{background:#f6ead673;border-radius:50%;width:3px;height:3px;top:11px}#speed{text-align:right;opacity:.88;text-shadow:0 1px 3px #0009;position:absolute;bottom:16px;right:22px}#speed-num{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}#speed .unit{color:var(--cream-dim);margin-left:4px;font-size:11px}#alt{font-variant-numeric:tabular-nums;color:#d8c8ff;margin-bottom:1px;font-size:12px}#flow{background:#f6ead62e;border-radius:2px;width:140px;height:3px;margin:5px 0 0 auto;overflow:hidden}#flow-fill{background:linear-gradient(90deg, #f0b060, var(--terra));width:0;height:100%;transition:width .12s linear}#flow.hot #flow-fill{background:linear-gradient(90deg, var(--terra), #ff5f7a);box-shadow:0 0 8px #ff8a5f}.hint{background:var(--glass);opacity:0;white-space:nowrap;border-radius:8px;padding:7px 14px;font-size:14px;transition:opacity .35s;position:absolute;top:62%;left:50%;transform:translate(-50%)}.hint.on{opacity:1}.hint kbd{font:700 12px var(--font);background:#f6ead629;border-radius:4px;padding:1px 6px}#corner{color:var(--cream-dim);text-shadow:0 1px 2px #000c;align-items:center;gap:7px;font-size:13px;display:flex;position:absolute;top:14px;right:16px}#net-dot{background:#8a7f76;border-radius:50%;width:7px;height:7px}#net-dot.on{background:#5fd39a;box-shadow:0 0 6px #5fd39a}#net-dot.wait{background:#f0b060}#fps{color:var(--cream);white-space:pre;text-align:right;background:#140e0c80;border-radius:6px;padding:5px 8px;font:11px/1.45 ui-monospace,Menlo,monospace;position:absolute;top:36px;right:16px}#viewtag{color:var(--cream-dim);text-shadow:0 1px 3px #000000b3;font-size:12px;position:absolute;top:14px;left:16px}#combo{text-align:right;opacity:0;width:280px;transition:opacity .25s;position:absolute;bottom:66px;right:22px}#combo.on{opacity:1}#combo-pops{flex-direction:column;align-items:flex-end;gap:1px;min-height:0;margin-bottom:4px;display:flex}#combo .pop{align-items:baseline;gap:8px;font-size:13px;animation:.22s ease-out pop-in;display:flex}#combo .pop:last-child{font-size:15px;font-weight:700}#combo .pop .tp{color:#ffd39a;font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}#combo .pop.rep .tn{color:var(--cream-dim)}#combo .pop.rep .tp{color:#ffd39a8c}#combo .pop.gear .tn{color:#d8c8ff}#combo .pop.gear.rep .tn{color:#d8c8ff99}#combo .pop i{color:var(--cream-dim);font-size:11px;font-style:normal}@keyframes pop-in{0%{opacity:0;transform:translateY(6px)scale(.92)}}#combo-line{justify-content:flex-end;align-items:baseline;gap:8px;display:flex}#combo-score{font-variant-numeric:tabular-nums;font-size:20px;font-weight:800}#combo-mult{color:var(--terra);background:#1e161273;border-radius:5px;padding:0 6px;font-size:15px;font-weight:800}#combo-mult.bump{animation:.3s ease-out mult-bump}@keyframes mult-bump{40%{color:#ffb062;transform:scale(1.35)}}#combo-meter{background:#f6ead629;border-radius:2px;width:160px;height:3px;margin:5px 0 0 auto;overflow:hidden}#combo-fill{background:linear-gradient(90deg, var(--teal), #7fe0c8);width:0;height:100%}#combo-fill.low{background:linear-gradient(90deg, var(--terra), #f0b060)}#banked{text-align:right;opacity:0;white-space:nowrap;pointer-events:none;font-size:13px;transition:opacity .4s,transform .4s;position:absolute;bottom:194px;right:22px}#banked.on{opacity:1;transform:translateY(-14px)}#banked b{color:#7fe0c8;font-size:20px}#banked.bad b,#banked.bad{color:#ffb38c}#banked span{color:var(--cream-dim);margin:0 4px}#banked em{color:var(--cream-dim);font-size:11px;font-style:normal}#banked .tot{color:var(--cream-dim);margin-top:1px;font-size:11px}#race{text-align:center;text-shadow:0 1px 3px #000c;background:#0e0a085c;border-radius:10px;min-width:220px;padding:4px 14px 6px;position:absolute;top:58px;left:50%;transform:translate(-50%)}#race-name{text-transform:uppercase;letter-spacing:.1em;color:#7fe0c8;font-size:12px}#race-time{font-variant-numeric:tabular-nums;font-size:34px;font-weight:800;line-height:1.1}#race.armed #race-time{color:var(--cream-dim);font-size:26px}#race-sub{color:var(--cream-dim);font-size:13px}#race-sub .keys{margin-top:3px;font-size:11px}#race kbd,#results kbd{font:700 11px var(--font);background:#f6ead629;border-radius:3px;padding:0 5px}.medals i{font-variant-numeric:tabular-nums;margin-left:8px;font-style:normal;font-weight:700}.medals i:before{content:"";background:currentColor;border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block}.medals .gold,#results.gold .rmedal{color:#ffd166}.medals .silver,#results.silver .rmedal{color:#d9dee3}.medals .bronze,#results.bronze .rmedal{color:#e0a16a}#race-split{font-variant-numeric:tabular-nums;opacity:0;font-size:18px;font-weight:800;transition:opacity .3s}#race-split.on{opacity:1}#race-split.ahead{color:#7fe0c8}#race-split.behind{color:#ff9a7a}#board{background:var(--glass);border-radius:10px;width:230px;padding:10px 12px;font-size:13px;position:absolute;top:96px;right:16px}#board h3{text-transform:uppercase;letter-spacing:.08em;color:#7fe0c8;margin:0 0 6px;font-size:12px}#board ol{margin:0;padding:0;list-style:none}#board li{gap:8px;padding:1px 0;display:flex}#board li.me{color:#ffd39a;font-weight:700}#board li.empty{color:var(--cream-dim);font-style:italic}#board .rk{text-align:right;width:16px;color:var(--cream-dim)}#board .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}#board .tm{font-variant-numeric:tabular-nums}#board .mine{color:var(--cream-dim);margin-top:6px;font-size:12px}#results{background:var(--glass-strong);text-align:center;border-radius:12px;min-width:260px;padding:14px 22px;animation:.3s ease-out toast-in;position:absolute;top:22%;left:50%;transform:translate(-50%)}#results .rname{text-transform:uppercase;letter-spacing:.1em;color:#7fe0c8;font-size:12px}#results .rtime{font-variant-numeric:tabular-nums;font-size:40px;font-weight:800;line-height:1.15}#results .rmedal{text-transform:uppercase;letter-spacing:.12em;color:var(--cream-dim);font-size:15px;font-weight:800}#results .rpb,#results .rserver{color:var(--cream-dim);margin-top:4px;font-size:13px}#results .rserver b{color:#ffd39a}#results .rserver b.rec{color:#ffd166}#results .rserver .bad{color:#ffb38c}#results .keys{color:var(--cream-dim);margin-top:8px;font-size:11px}#lines{position:absolute;inset:0;overflow:hidden}.linetag{text-align:center;white-space:nowrap;background:#143c3899;border:1px solid #7fe0c873;border-radius:9px;padding:3px 10px;position:absolute;top:0;left:0}.linetag b{color:#c9fff1;font-size:13px;display:block}.linetag:has(b.small){background:#143c3859;border-color:#7fe0c840;padding:1px 7px}.linetag b.small{font-size:11px;font-weight:600}.linetag b.small i{color:#ffb38c;margin-left:3px;font-size:10px;font-style:normal;font-weight:500}.linetag span{color:var(--cream-dim);font-size:11px;display:block}.ghosttag{white-space:nowrap;pointer-events:none;color:#eafffa;background:#143c3873;border:1px dashed #7fe0c88c;border-radius:9px;padding:1px 8px;font-size:11px;position:fixed;top:0;left:0}.ghosttag.record{color:#fff3d6;background:#46341273;border-color:#ffd16699}#tags{pointer-events:none;z-index:4;position:fixed;inset:0;overflow:hidden}.nametag{white-space:nowrap;color:#fff;background:hsla(var(--hue,20), 55%, 32%, .62);border:1px solid hsla(var(--hue,20), 70%, 70%, .45);transform-origin:50% 100%;border-radius:10px;padding:2px 9px;font-size:13px;font-weight:600;position:absolute;top:0;left:0}#toasts{z-index:6;pointer-events:none;flex-direction:column;gap:6px;max-width:max(220px,50vw - min(280px,36vw) - 28px);display:flex;position:fixed;top:14px;left:16px}.toast{background:var(--glass);border-radius:8px;padding:6px 12px;font-size:13px;transition:opacity .5s;animation:.25s ease-out toast-in}.toast.out{opacity:0}.toast b{color:#ffd39a}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}}#chat{z-index:6;width:min(420px,100vw - 32px);position:fixed;bottom:16px;left:16px}#chatlog{pointer-events:none;flex-direction:column;gap:3px;margin-bottom:6px;display:flex}.msg{background:var(--glass);word-break:break-word;border-radius:7px;align-self:flex-start;max-width:100%;padding:3px 9px;font-size:13px;transition:opacity .6s}.msg.old{opacity:0}#chat.open .msg.old{opacity:1}.msg .who{margin-right:6px;font-weight:700}.msg.server{color:#ffd39a;font-style:italic}#chatin{box-sizing:border-box;background:var(--glass-strong);width:100%;color:var(--cream);border:1px solid #f6ead640;border-radius:8px;outline:none;padding:8px 11px}@media (max-width:640px){h1{font-size:40px}#start{justify-content:center;padding-left:0}.card{padding:22px 18px 18px}}.label{text-transform:uppercase;letter-spacing:.08em;color:var(--cream-dim);margin-bottom:6px;font-size:12px;display:block}.label.look{margin-top:14px}.outfit{align-items:center;gap:14px;margin-bottom:14px;display:flex}.outfit-preview{background:#f6ead612;border-radius:10px;flex:none;width:84px;height:120px;padding:4px}.outfit-preview svg{width:100%;height:100%;display:block}.outfit-fields{flex:1;grid-template-columns:repeat(4,1fr);gap:8px;min-width:0;display:grid}.outfit .swatch,.settings .outfit .swatch{flex-direction:column;align-items:center;gap:3px;margin:0;font-size:10px;display:flex}.outfit input[type=color]{cursor:pointer;background:0 0;border:1px solid #f6ead640;border-radius:6px;width:100%;max-width:54px;height:26px;padding:0}.outfit-row{grid-column:1/-1;gap:8px;display:flex}.outfit-row select,.settings .outfit-row select{width:auto;min-width:0;color:var(--cream);background:#f6ead614;border:1px solid #f6ead62e;border-radius:7px;flex:1;margin:0;padding:7px 9px}.outfit-row select option{color:var(--ink)}.outfit-row button{padding:6px 14px}.outfit-row .acc,.settings .outfit-row .acc{text-transform:uppercase;letter-spacing:.06em;min-width:0;color:var(--cream-dim);flex-direction:column;flex:1;gap:3px;margin:0;font-size:10px;display:flex}.outfit-row .acc select{text-transform:none;letter-spacing:0;width:100%;font-size:12px}.outfit-row:has(.acc){align-items:flex-end}.outfit-unlocks{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.outfit-unlocks .unlock,.settings .outfit-unlocks .unlock{text-transform:uppercase;letter-spacing:.06em;color:var(--cream-dim);flex-direction:column;gap:3px;margin:0;font-size:10px;display:flex}.outfit-unlocks select{width:100%;min-width:0;color:var(--cream);text-transform:none;letter-spacing:0;background:#f6ead614;border:1px solid #f6ead62e;border-radius:7px;margin:0;padding:6px 7px;font-size:12px}.outfit-unlocks select option{color:var(--ink)}.outfit-unlocks select option:disabled{color:#8a8a8a}#cans{color:#ffd0e6;font-variant-numeric:tabular-nums;align-items:center;gap:5px;margin-right:10px;font-size:16px;font-weight:700;display:inline-flex}#cans[hidden]{display:none}#cans svg{filter:drop-shadow(0 0 4px #ff4fa3b3);width:12px;height:20px}#cans.pop{animation:.9s ease-out cans-pop}@keyframes cans-pop{0%{color:#fff;transform:scale(1.9)}to{transform:scale(1)}}#pause .card,#start .card{max-height:calc(100vh - 24px);overflow-y:auto}#guide{top:70%}#guide b{color:#ffd39a;font-variant-numeric:tabular-nums;margin-right:6px}#guide .skip{color:var(--cream-dim);margin-left:10px;font-size:11px}#guide .ok{color:#7fe0c8;margin-right:4px;font-weight:700}#guide .ring{color:#ffd39a}#guide.next{white-space:normal;text-align:center;max-width:min(620px,90vw)}#guide.next b{margin-right:0}#guide .wp{color:#6cf0d0}#guide-arrow{z-index:6;color:#ffd39a;pointer-events:none;opacity:0;background:#0e0a088c;border:2px solid #ffd39a;border-radius:50%;place-items:center;width:46px;height:46px;transition:opacity .2s;display:grid;position:fixed}#guide-arrow.on{opacity:.95}#tag{background:var(--glass);border-radius:10px;width:220px;padding:10px 12px;font-size:13px;position:absolute;top:120px;left:16px}#tag h3{text-transform:uppercase;letter-spacing:.08em;color:#ffb27a;justify-content:space-between;margin:0 0 4px;font-size:12px;display:flex}#tag .clock{color:var(--cream);font-variant-numeric:tabular-nums;letter-spacing:0;font-size:14px}#tag .big{font-size:17px;font-weight:700}#tag .big.it{color:#ff8a3a}#tag .itname{color:#ffb27a}#tag .sub{color:var(--cream-dim);margin-top:2px;font-size:12px}#tag .sub b{color:var(--cream);font-variant-numeric:tabular-nums}#tag ol{margin:6px 0 0;padding:0;list-style:none}#tag li{font-variant-numeric:tabular-nums;gap:8px;display:flex}#tag li .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}#tag li.me{color:#ffd39a;font-weight:700}#tag-arrow{width:0;height:0;transform:rotate(var(--rot,0deg));position:absolute;top:96px;left:50%}#tag-arrow .tip{filter:drop-shadow(0 0 6px #ff7a2acc);border-bottom:26px solid #ff7a2a;border-left:14px solid #0000;border-right:14px solid #0000;width:0;height:0;position:absolute;top:-34px;left:-14px}#tag-arrow:after{content:attr(data-d);text-align:center;color:#ffb27a;width:60px;transform:rotate(calc(-1 * var(--rot,0deg)));font-size:12px;font-weight:700;position:absolute;top:2px;left:-30px}#hud.tag-it{box-shadow:inset 0 0 90px #ff6e1e73}#hud.tag-out{box-shadow:inset 0 0 120px #ff3c1e99}.nametag.it{background:#e65a14d9;border-color:#ffc08a;box-shadow:0 0 12px #ff7828e6}.nametag.tagjoin{background:#78320abf;border-color:#ff9a4a}.cmark.tagedge{color:#ff9a4a;text-shadow:0 0 8px #ff7828e6}#emotes{width:0;height:0;position:absolute;top:50%;left:50%}#emotes .ring{background:radial-gradient(circle,#1e161226 30%,#1e16128c 70%,#1e161200 72%);border-radius:50%;width:260px;height:260px;position:absolute;top:-130px;left:-130px}#emotes .emote{background:var(--glass);border:1px solid #f6ead633;border-radius:16px;padding:6px 12px;font-size:14px;font-weight:700;transition:transform 80ms,background 80ms;position:absolute;transform:translate(-50%,-50%)}#emotes .emote.on{background:var(--terra);border-color:#ffd39a;transform:translate(-50%,-50%)scale(1.18)}#emotes .hint-line{text-align:center;width:200px;color:var(--cream-dim);font-size:11px;position:absolute;top:140px;left:-100px}#players{background:var(--glass-strong,#1e1612d9);border-radius:12px;width:min(520px,100vw - 32px);padding:12px 16px;font-size:14px;position:absolute;top:18%;left:50%;transform:translate(-50%)}#players h3{text-transform:uppercase;letter-spacing:.08em;color:#7fe0c8;justify-content:space-between;margin:0 0 8px;font-size:12px;display:flex}#players ol{max-height:60vh;margin:0;padding:0;list-style:none;overflow:hidden}#players li{border-top:1px solid #f6ead60f;align-items:center;gap:10px;padding:3px 0;display:flex}#players li.me{color:#ffd39a}#players li.it .nm{color:#ff9a4a}#players .fit{gap:2px;display:inline-flex}#players .fit i{border-radius:2px;width:9px;height:14px;display:inline-block}#players .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}#players .nm em{color:var(--cream-dim);font-size:11px;font-style:normal;font-weight:400}#players .pl{font-variant-numeric:tabular-nums;font-size:12px}#players .dim{color:var(--cream-dim)}#map{z-index:8;cursor:grab;background:#1c3442;position:fixed;inset:0}#map canvas{width:100%;height:100%;position:absolute;inset:0}#map .map-legend{background:var(--glass);color:var(--cream);border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:8px 12px;font-size:12px;display:flex;position:absolute;bottom:14px;left:16px}#map .map-legend kbd{font:700 11px var(--font);background:#f6ead629;border-radius:3px;padding:0 5px}#map .map-legend .k{color:var(--cream-dim);align-items:center;gap:5px;display:inline-flex}#map .map-legend .k i{border-radius:50%;width:9px;height:9px;display:inline-block}.cmark.waypoint{color:#6cf0d0;text-shadow:0 1px 2px #000000e6,0 0 6px #0009;font-weight:700}#daily{margin-bottom:14px}#daily .day{float:right;text-transform:none;letter-spacing:0}#daily ul{margin:0;padding:0;font-size:14px;list-style:none}#daily li{color:var(--cream);align-items:baseline;gap:8px;padding:2px 0;display:flex}#daily li .tick{color:#7fe0c8;width:16px;font-weight:700}#daily li.done{color:var(--cream-dim);text-decoration:line-through}#daily li{align-items:center}#daily li .cl{flex:1;min-width:0}#daily li .cbar{background:#f6ead624;border-radius:3px;flex:0 0 90px;height:6px;overflow:hidden}#daily li .cbar i{background:#ffd39a;border-radius:3px;height:100%;display:block}#daily li.done .cbar i{background:#7fe0c8}#daily li em{color:#ffd39a;text-align:right;flex:0 0 74px;font-size:12px;font-style:normal}#daily li.done em{color:#7fe0c8;text-decoration:none}.pause-nav{flex-wrap:wrap;gap:8px;margin:4px 0 16px;display:flex}.pause-nav button{flex:auto;padding:9px 14px}.pause-nav button.tab.on{color:#ffd39a;border-color:#ffd39a}#pause .pane .back{margin-top:10px}#start{transition:background 1.2s}#start.cover{background:radial-gradient(120% 90% at 30% 20%,#4a3326,#1c1411 70%)}#start .oneline{color:var(--cream-dim);margin:14px 0 0;font-size:13px}#start .oneline kbd,details.keys kbd{font:700 11px var(--font);color:var(--cream);background:#f6ead629;border-radius:3px;padding:0 5px}details.keys{margin:10px 0 0;font-size:13px}details.keys summary{cursor:pointer;color:var(--cream-dim)}.glyphs{grid-template-columns:repeat(9,1fr);gap:4px;margin-bottom:12px;display:grid}.glyphs button{aspect-ratio:1;min-width:0;box-shadow:none;cursor:pointer;background:#f6ead60f;border:1px solid #f6ead624;border-radius:6px;padding:2px}.glyphs button canvas{width:100%;height:100%;display:block}.glyphs button.on{background:#ff4fa32e;border-color:#ff4fa3}.glyphs button:hover{border-color:#f6ead680}.glyphs button{position:relative}.glyphs button.locked{cursor:default}.glyphs button.locked canvas{opacity:.25}.glyphs button .lvl{color:#ffd39a;text-align:center;text-shadow:0 1px 2px #000;font-size:9px;font-weight:700;position:absolute;inset:auto 0 1px}.glyphs button.locked:hover{border-color:#f6ead624}@media (max-width:520px){.glyphs{grid-template-columns:repeat(6,1fr)}}#spray{color:var(--cream);white-space:nowrap;pointer-events:none;background:#140e0b8c;border-radius:16px;align-items:center;gap:8px;padding:5px 11px 5px 6px;font-size:13px;display:flex;position:absolute;top:calc(50% + 26px);left:50%;transform:translate(-50%)}#spray[hidden]{display:none}#spray svg{width:22px;height:22px;transform:rotate(-90deg)}#spray circle{fill:none;stroke-width:4px}#spray circle.bg{stroke:#f6ead633}#spray-ring{stroke:#ff4fa3;transition:stroke-dashoffset 60ms linear}#spray kbd{font:700 11px var(--font);background:#f6ead629;border-radius:3px;padding:0 5px}#spray em{color:#ffd0e6;margin-left:4px;font-style:normal}#lvbar{color:var(--cream-dim);text-shadow:0 1px 2px #000c;background:#0e0a0861;border-radius:7px;align-items:center;gap:7px;padding:3px 9px;font-size:12px;display:flex;position:absolute;top:38px;right:16px}#lvbar .lv{color:var(--cream);font-weight:600}#lvbar .lv b{color:#ffd39a;font-size:15px}#lvbar .bar{background:#f6ead629;border-radius:2px;width:120px;height:4px;overflow:hidden}#lv-fill{background:linear-gradient(90deg,#ffb35a,#ffd39a);width:0;height:100%;transition:width .4s ease-out}#lv-xp{font-variant-numeric:tabular-nums}#lv-pts{color:#7fe0c8;font-weight:600}#lv-pts[hidden]{display:none}#lvbar kbd,#lvcard kbd,#gadget kbd,.node kbd,#skills kbd{font:700 10px var(--font);color:var(--cream);background:#f6ead629;border-radius:3px;padding:0 4px}#fps{top:62px}#xp-pops{pointer-events:none;flex-direction:column;align-items:flex-end;gap:2px;display:flex;position:absolute;bottom:74px;right:314px}#xp-pops .xpop{color:#ffd39a;text-shadow:0 1px 3px #0009;white-space:nowrap;font-size:14px;font-weight:700;animation:2.2s ease-out forwards xpop}#xp-pops .xpop span{font-size:10px}#xp-pops .xpop i{color:var(--cream-dim);font-size:11px;font-style:normal;font-weight:400}@keyframes xpop{0%{opacity:0;transform:translateY(8px)}12%{opacity:1;transform:none}75%{opacity:1}to{opacity:0;transform:translateY(-10px)}}#lvcard{opacity:0;pointer-events:none;text-align:center;background:#18110dd1;border:1px solid #ffd39a59;border-radius:14px;max-width:min(460px,100vw - 32px);padding:14px 22px;transition:opacity .3s,transform .3s;position:absolute;top:21%;left:50%;transform:translate(-50%,-8px)scale(.96)}#lvcard.on{opacity:1;transform:translate(-50%)scale(1)}#lvcard.levelup{box-shadow:0 0 40px #ffb35a59}#lvcard .lv-big{color:#ffd39a;letter-spacing:.02em;font-size:28px;font-weight:800}#lvcard .lv-big.sm{font-size:18px}#lvcard .lv-big em{color:var(--cream-dim);font-size:12px;font-style:normal;font-weight:400}#lvcard .lv-sub{color:var(--cream);margin-top:4px;font-size:13px}#lvcard .lv-open{color:#7fe0c8;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px;font-size:12px;display:flex}#lvcard .lv-open span{align-items:center;gap:4px;display:inline-flex}#lvcard .lv-looks{color:#ffd166}#lvcard .lv-try{color:#6cf0d0;margin-top:6px;font-size:12px}#lvcard .lv-looks .lv-hint{color:#f6ead699}#lvcard .lv-sw{border:1px solid #fff9;border-radius:50%;width:10px;height:10px;display:inline-block}#lvcard .sk-row{text-align:left;align-items:center;gap:12px;display:flex}.sk-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none}#lvcard .sk-icon{color:#7fe0c8}#gadget{pointer-events:none;gap:8px;font-size:12px;display:flex;position:absolute;bottom:92px;left:50%;transform:translate(-50%)}#gadget[hidden]{display:none}#gadget .g{color:var(--cream-dim);white-space:nowrap;background:#140e0b80;border-radius:12px;padding:3px 9px}#gadget .g.aim{color:#7fe0c8;background:#143c3499}#gadget .g.rope{color:#ffd39a}#gadget .g.cooldown{color:#ffb38c}#crosshair.grapple{background:#7fe08a}#aimring{pointer-events:none;border:2px solid #c8c8c873;border-radius:50%;width:26px;height:26px;margin:-13px 0 0 -13px;transition:border-color .12s,transform .12s;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1px #0003}#aimring.in{border-color:#7fe08af2;transform:scale(1.12)}#aimring span{white-space:nowrap;color:#e6e6e6bf;text-shadow:0 1px 2px #000000b3;font-variant-numeric:tabular-nums;font-size:11px;position:absolute;top:30px;left:50%;transform:translate(-50%)}#race-pure{color:#9ff3df;letter-spacing:.04em;text-transform:uppercase;opacity:.85;margin-top:3px;font-size:11px}#race-pure.gear{color:#c9a8ff}#skills .card.wide{width:min(980px,100vw - 32px);max-height:calc(100vh - 40px);overflow:auto}#skills .sk-head{flex-wrap:wrap;align-items:baseline;gap:14px;margin-bottom:12px;display:flex}#skills .sk-head h2{margin:0}#skills .sk-head .lv{color:#ffd39a;font-weight:700}#skills .sk-head .nx{color:var(--cream-dim);font-size:13px}#skills .sk-head .pts{color:var(--cream-dim);margin-left:auto;font-weight:700}#skills .sk-head .pts.has{color:#7fe0c8}#skills .tree{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}#skills .col{flex-direction:column;gap:8px;display:flex}#skills .node{text-align:left;color:var(--cream);box-shadow:none;cursor:default;font:inherit;background:#f6ead60d;border:1px solid #f6ead61f;border-radius:10px;grid-template-rows:auto auto auto;grid-template-columns:30px 1fr;column-gap:8px;padding:9px 10px;display:grid}#skills .node .sk-icon{color:var(--cream-dim);grid-row:1/4;align-self:start}#skills .node .nm{align-items:center;gap:6px;font-size:14px;font-weight:700;display:flex}#skills .node .ds{color:var(--cream-dim);font-size:12px;line-height:1.35}#skills .node .nd{color:var(--cream-dim);text-transform:uppercase;letter-spacing:.05em;margin-top:3px;font-size:11px}#skills .node.locked{opacity:.55}#skills .node.buy{cursor:pointer;border-color:#7fe0c899}#skills .node.buy:hover{background:#7fe0c81f}#skills .node.buy .nd{color:#7fe0c8}#skills .node.some .sk-icon,#skills .node.maxed .sk-icon{color:#ffd39a}#skills .node.maxed{background:#ffb35a14;border-color:#ffd39a73}#skills .pips{gap:3px;display:inline-flex}#skills .pips i{border:1px solid #f6ead680;border-radius:50%;width:7px;height:7px}#skills .pips i.on{background:#ffd39a;border-color:#ffd39a}@media (max-width:760px){#skills .tree{grid-template-columns:repeat(2,minmax(0,1fr))}}#skills{background:#0c0907b8}#skills .card.wide{background:#1d1612}body.skills-open #hint,body.skills-open #guide,body.skills-open #lvcard,body.skills-open #spray,body.skills-open #gadget,body.skills-open #modetip,body.skills-open #tag-arrow,body.skills-open #emotes,body.skills-open #xp-pops{visibility:hidden}#skills .earn{color:#cfeee6;background:#7fe0c81a;border:1px solid #7fe0c859;border-radius:8px;margin:6px 0 10px;padding:8px 12px;font-size:13px;line-height:1.45}#courses .day{float:right;text-transform:none;letter-spacing:0}#courses ul{margin:0 0 12px;padding:0;font-size:14px;list-style:none}#courses li{color:var(--cream);border-top:1px solid #f6ead60f;align-items:center;gap:8px;padding:4px 0;display:flex}#courses li .ck{text-transform:uppercase;letter-spacing:.06em;text-align:center;border-radius:4px;flex:0 0 44px;padding:1px 0;font-size:10px;font-weight:700}#courses li .ck.wing{color:#d8c4ff;background:#b48cff33}#courses li .ck.swing{color:#ffc2e0;background:#ff6fb533}#courses li .ck.race{color:#bff3ea;background:#3fd6c429}#courses li .info{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}#courses li .nm{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}#courses li .ds{text-align:right;color:var(--cream-dim);font-variant-numeric:tabular-nums;flex:0 0 52px;font-size:12px}#courses li .st{font-variant-numeric:tabular-nums;font-size:12px}#courses li .st b{text-transform:uppercase;letter-spacing:.08em;color:var(--cream-dim);margin-left:4px;font-size:10px}#courses li .st b.gold{color:#ffd166}#courses li .st b.silver{color:#d9dee3}#courses li .st b.bronze{color:#e0a16a}#courses li .st.dim,#courses li .st.lock,#courses li.locked .nm{color:var(--cream-dim)}#courses li .wp{flex:none;padding:3px 9px;font-size:12px}#results .rgap{color:#ffd39a;margin-top:2px;font-size:13px;font-weight:700}#results .rnext{color:var(--cream);margin-top:6px;font-size:13px}#results .rnext b{color:#7fe0c8}#results .rnext .wp{color:#6cf0d0;font-size:11px}kbd.pad{text-align:center;color:#fff;background:#f6ead638;min-width:1.45em;padding:0 5px;display:inline-block;box-shadow:inset 0 0 0 1px #ffffff40;border-radius:999px!important}kbd.pad-a{background:#3f9a3a!important}kbd.pad-b{background:#c4372f!important}kbd.pad-x{background:#2f6fc4!important}kbd.pad-y{color:#1b1406;background:#c99a1c!important}kbd.pad-rb,kbd.pad-rt,kbd.pad-lb,kbd.pad-lt,kbd.pad-view,kbd.pad-menu,kbd.pad-r3,kbd.pad-l3,kbd.pad-ls,kbd.pad-dpad{letter-spacing:.02em;font-size:.9em;border-radius:5px!important}#board .tie{color:var(--cream-dim);font-size:10px;font-style:normal}.nametag .ttl,#players .ttl{opacity:.7;letter-spacing:.02em;text-align:center;font-size:10px;font-weight:500;line-height:1.1;display:block}#players .ttl{text-align:left}#tag li.gap{border-top:1px dashed #f6ead640;margin-top:4px;padding-top:2px}#combo .pop.air .tn{color:#ffd27a;font-weight:800}#combo .pop.air{transform-origin:100%;animation:.42s cubic-bezier(.2,1.6,.4,1) air-pop}@keyframes air-pop{0%{opacity:0;transform:scale(1.5)}60%{opacity:1;transform:scale(.94)}}#banked .bail{color:#ff7a5a;margin-right:4px;font-size:1.15em}#trickarc{pointer-events:none;width:40px;height:40px;margin:-20px 0 0 -20px;position:absolute;top:50%;left:50%}#trickarc circle{fill:none;stroke-width:2px}#trickarc .track{stroke:#fff8ec2e}#trickarc .fill{stroke:#fff8ecd9;stroke-linecap:round}#trickarc .clean{stroke:#7fe08a;stroke-width:4px}#trickarc.clean .fill{stroke:#7fe08a}#trickarc.bail .fill{stroke:#ff5a4a;stroke-dasharray:200 0!important}#tricknote{color:#f6ead6bf;letter-spacing:.04em;pointer-events:none;font-size:12px;font-weight:700;position:absolute;top:calc(50% + 26px);left:50%;transform:translate(-50%)}#tricknote.on{animation:.9s ease-out forwards tricknote}@keyframes tricknote{0%{opacity:0;transform:translate(-50%,4px)}20%{opacity:1;transform:translate(-50%)}to{opacity:0}}#bailflash{pointer-events:none;opacity:0;position:absolute;inset:0;box-shadow:inset 0 0 110px 24px #ff3c288c}#bailflash.on{animation:.45s ease-out bailflash}@keyframes bailflash{0%{opacity:1}to{opacity:0}}#combo .pop .bump{color:#1b1406;background:#ffd27a;border-radius:4px;padding:0 4px;font-size:11px;font-style:normal;font-weight:800}body.padmode .kbonly{display:none}#goals{max-height:min(62vh,620px);padding-right:4px;overflow:auto}#goals .day{float:right;text-transform:none;letter-spacing:0}#goals .small{color:var(--cream-dim);margin:6px 0 10px;font-size:12px}.gl-top{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:12px;display:flex}.gl-top .lv{white-space:nowrap;font-weight:600}.gl-top .lv b{color:#ffd39a;font-size:16px}.gl-top .lv em{color:#ffd166;text-transform:uppercase;letter-spacing:.08em;margin-left:4px;font-size:11px;font-style:normal}.gl-tl{text-transform:uppercase;letter-spacing:.06em;color:var(--cream-dim);align-items:center;gap:6px;margin-left:auto;font-size:11px;display:flex}.gl-tl select{min-width:150px}.gl-week{background:#ffd16612;border:1px solid #ffd16647;border-radius:10px;margin-bottom:14px;padding:10px 12px}.gl-wkhead{align-items:center;gap:8px;display:flex}.gl-wkhead .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:16px;font-weight:700;overflow:hidden}.gl-wkst{color:var(--cream-dim);font-variant-numeric:tabular-nums;margin:2px 0 8px;font-size:12px}.gl-wkst b{text-transform:uppercase;letter-spacing:.08em;color:var(--cream-dim);font-size:10px}.gl-wkst b.gold{color:#ffd166}.gl-wkst b.silver{color:#d9dee3}.gl-wkst b.bronze{color:#e0a070}#goals .ck{text-transform:uppercase;letter-spacing:.06em;text-align:center;border-radius:4px;flex:0 0 44px;padding:1px 0;font-size:10px;font-weight:700}#goals .ck.wing{color:#d8c4ff;background:#b48cff33}#goals .ck.swing{color:#ffc2e0;background:#ff6fb533}#goals .ck.race{color:#bff3ea;background:#3fd6c429}#goals .wp{flex:none;padding:3px 9px;font-size:12px}.gl-board{margin:0;padding:0;font-size:13px;list-style:none}.gl-board li{break-inside:avoid;gap:8px;padding:1px 0;display:flex}.gl-board li.podium .rk{color:#ffd166}.gl-board li.me{color:#ffd39a;font-weight:700}.gl-board li.empty{color:var(--cream-dim);font-style:italic}.gl-board .rk{text-align:right;width:16px;color:var(--cream-dim)}.gl-board .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.gl-board .tie{color:var(--cream-dim);align-self:center;font-size:10px}.gl-board .tm{font-variant-numeric:tabular-nums}.gl-badges{flex-wrap:wrap;gap:6px;display:flex}.gl-badges .badge{color:var(--cream-dim);background:#f6ead61a;border-radius:10px;padding:2px 8px;font-size:11px}.gl-badges .badge b{color:#e0a070}.gl-badges .badge.p1 b{color:#ffd166}.gl-badges .badge.p2 b{color:#d9dee3}.gl-dist{margin:0 0 12px;padding:0;font-size:14px;list-style:none}.gl-dist li{border-top:1px solid #f6ead60f;grid-template-columns:1fr auto auto;align-items:center;gap:3px 10px;padding:6px 0;display:grid}.gl-dist .dn{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:700;overflow:hidden}.gl-dist .dn em{color:var(--cream-dim);margin-left:4px;font-size:12px;font-style:normal;font-weight:400}.gl-dist .gt{text-align:right;color:#ffd39a;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.gl-dist .gbar{background:#f6ead624;border-radius:3px;grid-column:1/-1;height:5px;overflow:hidden}.gl-dist .gbar i{background:#ffd166;border-radius:3px;height:100%;display:block}.gl-dist .rw{color:var(--cream-dim);grid-column:1/-1;font-size:11px}.gl-dist li.done .dn,.gl-dist li.done .gt,.gl-dist li.done .rw{color:#ffd166}.gl-next{color:var(--cream-dim);margin:0 0 6px;padding:0;font-size:13px;list-style:none}.gl-next b{color:var(--cream);margin-right:6px}.weekly-strip{background:#ffd16614;border:1px solid #ffd16640;border-radius:9px;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-bottom:12px;padding:8px 10px;font-size:13px;display:flex}.weekly-strip b{font-size:14px}.weekly-strip .wk-rec{color:var(--cream-dim);font-variant-numeric:tabular-nums}.weekly-strip .wk-left{color:var(--cream-dim);margin-left:auto;font-size:12px}.wk-tag{text-transform:uppercase;letter-spacing:.1em;color:#241b16;background:#ffd166;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:700}#weekly-banner{z-index:5;pointer-events:none;background:var(--glass);white-space:nowrap;text-shadow:0 1px 3px #0000008c;border:1px solid #ffd16659;border-radius:10px;align-items:baseline;gap:10px;max-width:calc(100vw - 32px);padding:6px 14px;font-size:13px;display:flex;position:fixed;top:60px;left:50%;transform:translate(-50%)}#weekly-banner b{color:#ffd166;font-size:14px}#weekly-banner .wk-dim{color:var(--cream-dim);font-size:12px}@media (max-width:720px){#weekly-banner .wk-dim{display:none}}body.skills-open #weekly-banner{display:none}body:has(#pause:not([hidden])) #weekly-banner{display:none}body:has(#map:not([hidden])) #weekly-banner{display:none}#goal-banner{z-index:7;text-align:center;text-shadow:0 1px 3px #0009;background:#1e1612db;border:1px solid #ffd1668c;border-radius:14px;max-width:calc(100vw - 32px);padding:16px 30px 14px;position:fixed;top:24%;left:50%;transform:translate(-50%);box-shadow:0 0 60px #ffd16640}#goal-banner.on{animation:.5s cubic-bezier(.2,1.4,.4,1) both gb-in}@keyframes gb-in{0%{opacity:0;transform:translate(-50%)scale(.8)}to{opacity:1;transform:translate(-50%)scale(1)}}#goal-banner .gb-head{color:#ffd166;letter-spacing:.02em;font-size:30px;font-weight:800}#goal-banner .gb-sub{color:var(--cream-dim);margin-top:2px;font-size:14px}#goal-banner .gb-title{margin-top:8px;font-size:16px}#goal-banner .gb-title b{color:#ffd166}#goal-banner .gb-undo{color:var(--cream-dim);margin-top:6px;font-size:12px}#goal-banner kbd{font:700 10px var(--font);background:#f6ead629;border-radius:3px;padding:0 4px}#goals .gl-note{margin:-6px 0 10px;font-size:11px}.gl-top .wp{padding:3px 9px;font-size:12px}.gl-tricks{flex-wrap:wrap;gap:6px;margin-bottom:2px;display:flex}.gl-tricks .tk{color:var(--cream-dim);background:#f6ead614;border-radius:10px;padding:2px 9px;font-size:12px}.gl-tricks .tk.got{color:#bff3ea;background:#7fe0c829}
