/* GENERATED by scripts/m5-split-css.mjs from web/style.css: only the rules normal play reaches. The whole stylesheet (style.css) is loaded on top of this by the rollback and historical paths. Do not edit. */
@font-face{font-family:'Japa Display';src:url(fonts/departure.woff2) format('woff2');font-display:swap}
@font-face{font-family:'Japa Body';src:url(fonts/grotesk-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Japa Body';src:url(fonts/grotesk-600.woff2) format('woff2');font-weight:600;font-display:swap}
:root{--bg:#0b0d12;--ink:#f2f4f8;--soft:#c7cedb;--mut:#8d97aa;--card:#141821;--card2:#1c2230;--line:#2a3242;--off:#232a38;
  --red:#ff1f1f;--redt:#ff5a4d;--green:#00e676;--greend:#00873f;--gold:#ffd23f;--blue:#4cc9f0;--ok:#00e676;--bad:#ff5a4d;--acc:#00e676;
  --display:'Japa Display','Courier New',monospace;--body:'Japa Body',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --px:var(--display);--read:var(--body);color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.5 var(--read)}
h1,h2,.px,button,.lbl,.tag,.d{-webkit-font-smoothing:none}
main{max-width:520px;margin:0 auto;padding:12px 16px 16px}
h1,h2,.px{font-family:var(--px);font-weight:400;text-transform:uppercase;letter-spacing:.01em}
h1{font-size:26px;line-height:1.05;margin:8px 0}
h2{font-size:17px;line-height:1.15;margin:4px 0 8px}
p{margin:8px 0}
b,strong{font-weight:600;color:var(--gold)}
b.px,.px b,.m b,.step b{font-weight:400}
.mut{color:var(--mut);font-size:15px}
.lbl{font-family:var(--px);font-size:13px;text-transform:uppercase;color:var(--mut)}
a{color:var(--green)}
.card{background:var(--card);border:3px solid var(--line);box-shadow:4px 4px 0 #000;padding:14px;margin:14px 0}
button{font:15px/1.25 var(--px);text-transform:uppercase;border:2px solid var(--line);background:var(--bg);color:var(--ink);padding:12px;width:100%;text-align:left;margin:6px 0;cursor:pointer;border-radius:0}
button:hover:not([disabled]){border-color:var(--green)}
button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
button.primary{background:var(--green);border:0;color:#04140b;text-align:center;font-size:17px;padding:15px;box-shadow:0 4px 0 var(--greend)}
button.primary:active:not([disabled]){transform:translateY(3px);box-shadow:0 1px 0 var(--greend)}
button[disabled]{opacity:.4;cursor:default}
button.primary[disabled]{background:var(--off);color:var(--mut);box-shadow:0 4px 0 #000;opacity:1}
button.sel,button[aria-pressed=true]:not(.link){border-color:var(--green);box-shadow:0 0 0 1px var(--green),0 0 14px rgba(0,230,118,.35)}
.row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ic{display:inline-block;width:18px;height:18px;flex:none;vertical-align:middle}
.ic svg,.pt svg{display:block;width:100%;height:100%}
.d{display:inline-block;font:14px var(--px);text-transform:uppercase;background:#000;padding:3px 7px;margin:2px 4px 2px 0}
.up{color:var(--ok)}
.dn{color:var(--bad)}
footer{max-width:520px;margin:0 auto;padding:8px 16px 24px;color:var(--mut);font-size:14px;text-align:center}
footer a{color:var(--mut)}
button.link{display:inline;width:auto;margin:0 0 0 6px;padding:2px 6px;border:0;background:none;color:var(--mut);font:14px var(--read);text-transform:none;text-decoration:underline;text-align:center}
[data-focus]:focus{outline:none}
.title{font:34px/.95 var(--px);color:#fff;text-shadow:3px 3px 0 var(--red),-3px -3px 0 var(--green);margin:14px 0 8px;text-transform:uppercase}
.bar{position:relative;height:6px;background:var(--off)}
.bar i{display:block;height:100%;background:var(--green)}
.bar::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(10% - 2px),var(--card) calc(10% - 2px) 10%)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sandbox{position:relative;border:3px solid #000;box-shadow:4px 4px 0 #000;margin:14px 0}
.sandbox .scene{height:min(clamp(200px,36vh,320px),70vw);margin:0;border:0;box-shadow:none}
.sandbox .cap{position:absolute;left:0;right:0;top:0;background:rgba(0,0,0,.8);padding:6px 10px;font-size:15px;display:flex;gap:8px}
.sandbox .cap::before{content:"▸";color:var(--green);font-family:var(--px)}
.acts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 12px}
.act{background:var(--card);border:3px solid var(--line);box-shadow:4px 4px 0 #000;padding:10px;display:flex;flex-direction:column;gap:6px;cursor:pointer}
.act .name{display:flex;align-items:center;gap:8px;font:13px/1.1 var(--px);text-transform:uppercase}
.act .ic{width:22px;height:22px}
.act .fx{font-size:14px;color:var(--mut);line-height:1.2}
.pips{display:flex;gap:2px;height:9px}
.pips i{width:9px;height:9px;background:var(--ink)}
.step{display:flex;align-items:center;justify-content:space-between}
.step b{font:20px var(--px);color:var(--ink)}
.step button{width:44px;height:44px;margin:0;padding:0;text-align:center;font-size:20px}
.blocks{font:14px var(--px);color:var(--gold);white-space:nowrap}
.blocks.full{color:var(--green)}
.plans{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 6px}
.plans button{width:auto;min-height:44px;margin:0;padding:8px 10px;font-size:12px}
.plans button.sel{background:var(--green);color:#04140b}
.twist-card{border-color:var(--blue)}
.twist-card .lbl{color:var(--blue)}
.tdots{display:inline-flex;gap:7px;margin-left:8px;vertical-align:middle}
.tdot{display:inline-flex;align-items:center;gap:2px;color:var(--mut)}
.tdot .ic{width:14px;height:14px}
.tdot i{display:block;width:6px;height:6px;border-radius:50%;background:var(--ink)}
.tdot.big i{width:11px;height:11px}
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}
.result{border-color:var(--green);padding:10px 12px}
.result .who{font:13px var(--px);text-transform:uppercase;color:var(--green);margin:0 0 4px}
.result:not(.moment) .reveal p{margin:4px 0;font-size:15px}
.pt{width:62px;height:62px;flex:none;border:2px solid #000;display:block}
.done-tag{font:14px var(--px);color:var(--green)}
.actions{display:grid;grid-template-columns:1.4fr 1fr;gap:10px}
.actions button{margin:0}
.code{display:flex;gap:5px;align-items:center}
.code span{width:34px;height:42px;display:grid;place-items:center;background:var(--bg);border:2px solid var(--green);font:20px var(--px);color:var(--green)}
.code button{width:auto;margin:0 0 0 auto;font-size:12px}
input{font:16px var(--px);letter-spacing:.12em;text-transform:uppercase;border:2px solid var(--line);background:var(--bg);color:var(--ink);padding:11px 12px;width:100%;border-radius:0}
.addf{display:flex;gap:8px}
.addf button{width:auto;margin:0;flex:none}
.danger{color:var(--bad)}
body.mopen{overflow:hidden}
body.mopen main{z-index:6}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes pxrise{0%{opacity:0;transform:translateY(14px)}30%{opacity:1;transform:none}100%{opacity:1}}
@keyframes pop{0%{opacity:0;transform:scale(.4)}70%{transform:scale(1.15)}100%{opacity:1;transform:none}}
@keyframes wpop{0%{opacity:0;transform:rotate(-1deg) scale(.6)}100%{opacity:1;transform:rotate(-1deg) scale(1)}}
@keyframes wpop-aha{0%{opacity:0;transform:rotate(1deg) scale(.6)}100%{opacity:1;transform:rotate(1deg) scale(1)}}
@keyframes pulse-ok{0%{box-shadow:0 0 0 0 var(--ok)}100%{box-shadow:0 0 0 6px transparent}}
@keyframes pulse-bad{0%{box-shadow:0 0 0 0 var(--bad)}100%{box-shadow:0 0 0 6px transparent}}
@keyframes flicker{0%,100%{opacity:1}8%{opacity:.35}12%{opacity:1}20%{opacity:.5}24%{opacity:1}}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes pxblink{0%,49%{opacity:1}50%,100%{opacity:0}}
.card{animation:rise .3s steps(6) both}
.result .reveal{animation:pxrise .5s steps(6) .4s both}
.d{animation:pop .4s ease .5s both}
.bar i{transition:width .6s steps(10)}
.blink{animation:blink 1s steps(1) 3}
@keyframes thud{0%{transform:translateY(-14px) scale(1.04)}40%{transform:translateY(3px)}70%{transform:translate(-3px,0)}100%{transform:none}}
.ending>*{animation:rise .4s steps(6) both}
.ending>:nth-child(2){animation-delay:.3s}
.ending>:nth-child(3){animation-delay:.6s}
.ending>:nth-child(n+4){animation-delay:.9s}
main.still,main.still *:not(.scene *){animation:none!important}
.scene{height:150px;overflow:hidden;background:#000}
.scene svg{display:block;width:100%;height:100%}
@keyframes pxfall{from{transform:translate(0,0)}to{transform:translate(6px,60px)}}
@keyframes pxshiver{from{transform:translateX(0)}to{transform:translateX(1px)}}
@keyframes pxdrive{from{transform:translateX(-24px)}to{transform:translateX(100px)}}
@keyframes pxplane{from{transform:translateX(-14px)}to{transform:translateX(110px)}}
@keyframes pxbob{from{transform:translateY(0)}to{transform:translateY(-1px)}}
@keyframes pxsteam{0%{transform:translateY(0);opacity:1}100%{transform:translateY(-6px);opacity:0}}
@keyframes pxzz{0%{transform:translate(0,0);opacity:0}20%{opacity:1}100%{transform:translate(4px,-8px);opacity:0}}
@keyframes pxwalk{from{transform:translateX(0)}to{transform:translateX(50px)}}
.scene .px-fall{animation:pxfall 4s linear infinite}
.scene .px-plane{animation:pxplane 7s steps(70) infinite}
.scene .px-bob{animation:pxbob .5s steps(2) infinite alternate}
.scene .px-steam{animation:pxsteam 1.4s steps(4) infinite}
.scene .px-lights{animation:blink 1.6s steps(1) infinite}
.scene .px-blink{animation:blink .8s steps(1) 4}
@keyframes pxdrop{from{transform:translateY(0);opacity:1}to{transform:translateY(6px);opacity:0}}
@keyframes pxdrift{from{transform:translateX(0)}to{transform:translateX(-60px)}}
@keyframes pxstamp{from{transform:translateY(0)}to{transform:translateY(3px)}}
.ic .px-steam{animation:pxsteam 1s steps(3) infinite}
body.no-fx *,body.no-fx *::before,body.no-fx *::after{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
body{transition:background-color .8s ease}
body[data-season=winter]{--bg:#0a0e16;--card:#131a26}
body[data-season=fall]{--bg:#100c0b}
#air{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}
#air i{position:absolute}
#air.leaves i{top:-12px;opacity:.55;animation:leaf linear infinite}
@keyframes fall{to{transform:translate(40px,105vh)}}
@keyframes leaf{0%{transform:translate(0,0)}50%{transform:translate(-30px,52vh)}100%{transform:translate(20px,105vh)}}
@keyframes rain{to{transform:translate(-8px,105vh)}}
@keyframes glow{0%,100%{opacity:0;transform:translate(0,0)}50%{opacity:.8;transform:translate(10px,-24px)}}
@keyframes wipe{to{transform:translateX(230%)}}
@keyframes dissolve{0%{opacity:0}100%{opacity:1}}
@keyframes nudge{50%{transform:translateY(2px)}}
main,footer{position:relative;z-index:1}
@media(min-width:900px){main,footer{max-width:850px}
.acts{grid-template-columns:1fr 1fr 1fr}}
.dhow{margin:6px 0 4px;padding-left:18px;color:var(--mut);font-size:14px}
.dhow li{margin:3px 0}
.ptabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.ptabs button{text-align:center;margin:0;min-height:44px}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px 10px;margin:10px 0 14px}
.pstamp{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:92px;padding:10px 8px;text-align:center;border:3px solid var(--line);outline:2px solid var(--line);outline-offset:-9px;color:var(--mut);transform:rotate(var(--tilt,0deg))}
.pstamp b{font:15px/1.15 var(--px);text-transform:uppercase;color:inherit;overflow-wrap:anywhere}
.pstamp .ps-top{font:11px var(--px);letter-spacing:.08em}
.pstamp .ps-sub{font:12px/1.25 var(--read);text-transform:none}
.pstamp.got{color:var(--redt);border-color:var(--redt);outline-color:var(--redt);opacity:.92;background:rgba(255,90,77,.07)}
.pstamp.got:nth-child(3n+2){color:var(--green);border-color:var(--green);outline-color:var(--green);background:rgba(0,230,118,.06)}
.pstamp.got:nth-child(3n){color:var(--gold);border-color:var(--gold);outline-color:var(--gold);background:rgba(255,210,63,.06)}
.pstamp.locked{border-style:dashed;outline:0;background:var(--card)}
.pstamp.locked b{color:var(--mut)}
.pstamp.slam{animation:slam .35s steps(5) calc(1s + var(--i,0) * .4s) both}
@keyframes slam{from{opacity:0;transform:rotate(var(--tilt,0deg)) scale(2.6)}60%{opacity:1;transform:rotate(var(--tilt,0deg)) scale(.92)}to{opacity:.92;transform:rotate(var(--tilt,0deg)) scale(1)}}
.newstamps .gotline{font:14px var(--px);text-transform:uppercase;color:var(--gold);margin:4px 0 10px}
.pend{margin:10px 0}
.pend p{margin:6px 0}
.pend.got{border-color:var(--greend)}
.pend.got .px{color:var(--green)}
.savedtag{position:absolute;right:12px;top:100%;margin-top:2px;font:11px var(--px);text-transform:uppercase;color:var(--green);opacity:0;transition:opacity .2s;pointer-events:none}
.acct input,.acct select,#username,#email,#password,#residence{text-transform:none;letter-spacing:0;font-size:16px}
.namecard b{font-size:17px;flex:1;min-width:0;overflow-wrap:anywhere}
.field{margin:0 0 14px}
.field label{display:block;font:12px var(--px);text-transform:uppercase;color:var(--soft);margin:0 0 6px}
.fhint{margin:6px 0 0;font-size:14px}
.err{margin:6px 0 0;min-height:0;color:var(--red,#ff6b6b);font-size:14px}
.err:empty{display:none}
@keyframes vstamp{from{transform:rotate(-10deg) scale(2.2);opacity:0}to{transform:rotate(-10deg) scale(1);opacity:.88}}
.result .rsim{float:left;width:52px;margin:0 12px 4px 0}
.result .rsim{height:54px}
.result .rsim .cpt{display:block;width:100%;height:100%;background:#1c2230;border:2px solid #000}
.result::after{content:'';display:block;clear:both}
#roadtoast{margin:8px 0;display:flex;flex-direction:column;gap:2px;padding:6px 10px;background:var(--card);border:3px solid var(--green);box-shadow:4px 4px 0 #000;animation:rise .3s steps(6) both}
#roadtoast .pmile{border:0;padding:0;background:none}
#roadtoast small{color:var(--ink);font:15px/1.25 var(--read)}
#roadtoast b{font:12px var(--px);text-transform:uppercase;color:var(--green)}
.result .tip{margin:8px 0 2px;padding:6px 8px;border-left:3px solid var(--gold,#e8b84a);background:var(--card2,#1a1f2e);font-size:14px;color:var(--soft)}
.result .tip b{font:11px var(--px);text-transform:uppercase;color:var(--gold,#e8b84a);margin-right:6px}
.linkb{width:auto;display:inline;margin:0;padding:0 2px;border:0;background:none;color:var(--green);text-decoration:underline;font:inherit;box-shadow:none}
.hubroom{position:relative;margin:12px -16px;border-block:3px solid #000}
@media(min-width:552px){.hubroom{margin:12px 0;border:3px solid #000;box-shadow:4px 4px 0 #000}}
.hubroom .scene{height:auto;aspect-ratio:192/108}
.hubroom .spot{--c:rgba(255,210,63,.95);position:absolute;margin:0;padding:0;min-width:44px;min-height:44px;border:0;box-shadow:none;text-align:center;animation:spotpulse 1.6s steps(2) infinite;
  background:linear-gradient(var(--c),var(--c)) 0 0/10px 2px,linear-gradient(var(--c),var(--c)) 0 0/2px 10px,linear-gradient(var(--c),var(--c)) 100% 0/10px 2px,linear-gradient(var(--c),var(--c)) 100% 0/2px 10px,linear-gradient(var(--c),var(--c)) 0 100%/10px 2px,linear-gradient(var(--c),var(--c)) 0 100%/2px 10px,linear-gradient(var(--c),var(--c)) 100% 100%/10px 2px,linear-gradient(var(--c),var(--c)) 100% 100%/2px 10px;background-repeat:no-repeat}
.hubroom .spot:hover,.hubroom .spot:active{background-color:rgba(255,210,63,.16)}
.hubroom .spotlbl{position:absolute;left:50%;bottom:3px;transform:translateX(-50%);font:11px/1 var(--px);background:#000;color:var(--gold);padding:3px 5px;white-space:nowrap;pointer-events:none}
@keyframes spotpulse{50%{opacity:.55}}
.roomline{min-height:3em;margin:4px 0 10px}
.roomacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,92px),1fr));gap:8px}
.roomacts button{margin:0;min-height:52px;text-align:center;font-size:13px;padding:8px 6px}
@media(min-width:700px){main:has(.hubwrap){max-width:min(100%,1560px);padding-inline:clamp(16px,2.4vw,36px)}
.hubwrap{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.85fr);gap:clamp(16px,2vw,32px);align-items:start}
.hubwrap .hubroom{margin-top:0}}
@media(min-width:1180px){.hubwrap{grid-template-columns:minmax(0,1.8fr) minmax(330px,.8fr)}
.hubside{max-width:460px}}
@media(min-width:1450px){main:has(.hubwrap){max-width:1600px}
.hubwrap{grid-template-columns:minmax(0,1050px) minmax(350px,440px)}}
@media(min-width:700px) and (max-height:850px){.hubroom .scene{max-height:calc(100vh - 225px)}
.hubroom{max-width:calc((100vh - 225px)*192/108);margin-inline:auto}}
@media(max-width:699px){.hubwrap{display:block}}
.hubside .row{flex-wrap:wrap;gap:4px 12px;margin-top:4px}
.hubside h2{margin:0}
.hubtime{font:13px var(--px);color:var(--soft);text-transform:uppercase}
.hubpreview{font-size:14px;color:var(--gold);margin:4px 0}
.roomacts button small{display:block;font:12px/1.3 var(--read);text-transform:none;color:var(--mut);margin-top:3px}
.roomacts button.closed,.hubgo button.closed{color:var(--mut);border-style:dashed}
.hubgo{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,120px),1fr));gap:8px;margin:10px 0 0}
.hubgo button{margin:0;min-height:48px;font-size:13px;text-align:center}
.lastweek{margin-top:10px}
.lastweek summary{cursor:pointer;font:13px var(--px);text-transform:uppercase;color:var(--mut);min-height:44px;display:flex;align-items:center}
.community-first{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,.75fr);grid-template-areas:"scene head" "scene tools";gap:12px 22px;align-items:start}
.community-first>.hubstage{grid-area:scene;min-width:0}
.community-first>.community-head{grid-area:head;min-width:0}
.community-first>.community-tools{grid-area:tools;min-width:0}
.community-head .hubhead{margin:0;align-items:center}
.community-first .hubroom{margin:0;border:3px solid #000;box-shadow:4px 4px 0 #000}
.community-first .hubroom .scene{height:auto;aspect-ratio:192/108}
.community-tools{display:grid;gap:8px}
.community-tools:empty{display:none}
.community-first details>summary{min-height:42px;display:flex;align-items:center;cursor:pointer;color:var(--gold);font:12px var(--px);text-transform:uppercase}
.community-first .hubtime{margin-left:auto}
@media(min-width:700px){.community-first .hubroom{max-width:100%;margin:0}
.community-first .hubroom .scene{max-height:calc(100vh - 150px)}}
@media(min-width:700px) and (max-width:899px){.community-first{grid-template-columns:minmax(0,1fr);grid-template-areas:"scene" "head" "tools"}
.community-first>.hubstage{width:100%}}
@media(max-width:699px){.community-first{display:flex;flex-direction:column;gap:8px}
.community-first>.hubstage{order:0;width:100%}
.community-first>.community-head{order:1;width:100%}
.community-first>.community-tools{order:2;width:100%;gap:7px}
.community-first .hubroom{margin:0 -16px;border-inline:0;box-shadow:none}
.community-first .hubroom .scene{height:auto;aspect-ratio:192/108}}
@keyframes walkin{from{transform:translateX(var(--dx))}to{transform:none}}
.scene .walk{animation:walkin .5s steps(6) both}
.blocksbar{margin:6px 0 2px}
.blocksbar p{margin:4px 0 0;font-size:14px;color:var(--soft)}
.blocksbar b{font:13px var(--px);color:var(--ink)}
.blocksbar .cells{display:flex;gap:3px}
.blocksbar .cells i{flex:1;min-width:0;height:12px;border:2px solid var(--line);background:var(--bg)}
@keyframes poprise{0%{opacity:0;margin-top:6px}15%{opacity:1;margin-top:0}75%{opacity:1;margin-top:-10px}100%{opacity:0;margin-top:-14px}}
@keyframes spotjust{0%,100%{background-color:transparent}50%{background-color:rgba(0,230,118,.22)}}
@keyframes notifin{from{transform:translateY(-12px);opacity:0}to{transform:none;opacity:1}}
.hubhead{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.hubhead h2{margin:0;flex:1 1 auto}
.mapbtn{width:auto;margin:0;padding:8px 12px;min-height:44px;font-size:13px;text-align:center}
@keyframes pxhop{0%{transform:translateY(0)}35%{transform:translateY(-3px)}70%{transform:translateY(0)}85%{transform:translateY(-1px)}100%{transform:translateY(0)}}
.am{display:block;margin-top:3px;font:12px/1.3 var(--read);text-transform:none;color:var(--soft)}
.objmenu button small,.roomacts button small{display:block;font:12px/1.3 var(--read);text-transform:none;color:var(--mut);margin-top:3px}
details.fold{margin:8px 0;border:2px solid var(--line);background:var(--card)}
details.fold>summary{min-height:44px;display:flex;align-items:center;padding:0 12px;cursor:pointer;font:13px var(--px);text-transform:uppercase;color:var(--soft);list-style:none}
details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary::after{content:'▾';margin-left:auto;color:var(--mut)}
details.fold>div{padding:8px 10px}
details.fold .roomacts button,details.fold .hubgo button{min-height:48px}
.progress-list{padding:8px 10px}
.trk{margin:6px 0 12px}
.trkhead{display:flex;justify-content:space-between;font:13px var(--px);text-transform:uppercase}
.trkhead span{color:var(--soft)}
.trk .bar,.trkmini .bar{height:8px;background:var(--bg);border:2px solid var(--line);margin:4px 0}
.trk .bar i,.trkmini .bar i{display:block;height:100%;background:var(--green)}
.trk ul{list-style:none;margin:0;padding:0;font-size:14px}
.trk li{display:flex;gap:8px;margin:3px 0;color:var(--mut)}
.trk li.got{color:var(--ink)}
.trk li.got>span:first-child{color:var(--green)}
.quickweek{margin:10px 0 6px}
.quickweek .quick{display:block;width:100%;text-align:left}
.quickweek .quick .am{display:block}
.quickplan .qwlist{list-style:none;margin:6px 0;padding:0}
.quickplan .qwlist li{padding:3px 0;line-height:1.35;overflow-wrap:anywhere}
.twoyears .lbl{display:block;margin-top:10px}
.twoyears .focus{margin:6px 0}
.twoyears .good{color:var(--green);font-weight:700}
.twoyears .timeline li{overflow-wrap:anywhere}
.twoyears details{margin-top:10px}
.twoyears .timeline{list-style:none;margin:12px 0 0;padding:0;border-left:3px solid var(--green)}
.twoyears .timeline li{display:flex;gap:8px;align-items:baseline;padding:4px 0 4px 10px;line-height:1.35}
.twoyears .timeline li i{font-style:normal;color:var(--green);min-width:1.2em}
.twoyears .timeline li:last-child i{color:var(--gold)}
@keyframes momentpop{50%{transform:translateY(-2px)}}
:is(.hall-first,.home-first,.place-first){--gut:16px;--ar:128/160}
:is(.hall-first,.home-first,.place-first).hall-wide{--ar:192/128}
@media(min-width:700px){:is(.hall-first,.home-first,.place-first){--gut:clamp(16px,2.4vw,36px)}}
:is(.hall-first,.home-first,.place-first) .hubroom:is(.hall,.homeroom,.placeroom){position:relative;width:100%;max-width:none;height:auto;aspect-ratio:var(--ar);margin:0;border:3px solid #000;box-shadow:4px 4px 0 #000}
:is(.hall-first,.home-first,.place-first) .hubroom:is(.hall,.homeroom,.placeroom) .scene{width:100%;height:auto;max-height:none;aspect-ratio:var(--ar);background:#2a1f2a}
:is(.hall-first,.home-first,.place-first) .hubhead h2{font-size:16px}
:is(.hall-first,.home-first,.place-first) .hubhead .hubtime{margin-left:auto}
:is(.hall-first,.home-first,.place-first) .hall-people{display:grid;gap:6px;margin:10px 0 2px}
.hall-people .lbl{font:12px var(--px);color:var(--mut);text-transform:uppercase}
.hallperson{display:flex;align-items:center;gap:10px;margin:0;padding:8px 10px;min-height:52px;text-align:left;text-transform:none}
.hallperson span{display:flex;flex-direction:column}
.hallperson b{font:14px var(--px);text-transform:uppercase}
.hallperson small{font:13px/1.3 var(--read);color:var(--mut)}
.hallperson span.talkface{display:block;width:32px;height:32px;flex:none}
.hallperson .talkface .pt{width:32px;height:32px}
.community-first:is(.hall-first,.home-first,.place-first).hall-stack{display:flex;flex-direction:column;align-items:stretch;gap:6px}
.hall-stack>.hubstage{order:0;align-self:center;width:calc(100% + 2 * var(--gut))}
.hall-stack>.community-head{order:2}
.hall-stack>.community-tools{order:3;gap:4px}
.hall-stack .hubroom:is(.hall,.homeroom,.placeroom){border-inline:0;box-shadow:none}
.hall-stack .hall-people{display:none}
.hall-stack .community-head .hubhead{gap:6px 8px}
:is(.hall-first,.home-first,.place-first) .mapbtn{min-height:44px;padding:6px 10px}
main:has(.hall-cols){max-width:1760px}
.community-first:is(.hall-first,.home-first,.place-first).hall-cols{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:"scene head" "scene ctx" "scene tools";grid-template-rows:auto auto 1fr;gap:10px 24px;align-items:start;justify-content:stretch}
@media(min-width:1200px){.community-first:is(.hall-first,.home-first,.place-first).hall-cols{grid-template-columns:minmax(0,1fr) 340px}}
.hall-cols>.hubstage{grid-area:scene;min-width:0}
.hall-cols>.community-head{grid-area:head;min-width:0}
.hall-cols>.community-tools{grid-area:tools;min-width:0}
.hall-cols .hubroom:is(.hall,.homeroom,.placeroom){width:min(100%,calc((100dvh - 96px) * var(--ar)));margin:0 auto}
.hubroom:is(.hall,.homeroom,.placeroom) .spot{min-width:0;min-height:0}
.hubroom:is(.hall,.homeroom,.placeroom) .hallobj .spotlbl{display:none;top:auto;bottom:2px}
.hubroom:is(.hall,.homeroom,.placeroom) .hallobj:hover .spotlbl,.hubroom:is(.hall,.homeroom,.placeroom) .hallobj:focus-visible .spotlbl,.hubroom:is(.hall,.homeroom,.placeroom) .hallobj.sel .spotlbl,.hubroom:is(.hall,.homeroom,.placeroom) .hallobj.hl .spotlbl{display:block}
.hubroom:is(.hall,.homeroom,.placeroom) .spot:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
.hubroom:is(.hall,.homeroom,.placeroom) .hallobj{--c:rgba(255,210,63,.55);background-size:6px 2px,2px 6px,6px 2px,2px 6px,6px 2px,2px 6px,6px 2px,2px 6px}
.hubroom:is(.hall,.homeroom,.placeroom) .hallobj.sel,.hubroom:is(.hall,.homeroom,.placeroom) .hallobj.hl,.hubroom:is(.hall,.homeroom,.placeroom) .hallobj.moment,.hubroom:is(.hall,.homeroom,.placeroom) .hallobj:focus-visible{background-size:10px 2px,2px 10px,10px 2px,2px 10px,10px 2px,2px 10px,10px 2px,2px 10px}
.hubroom:is(.hall,.homeroom,.placeroom) .hallwho{background:none;animation:none;z-index:1}
.hubroom:is(.hall,.homeroom,.placeroom) .hallwho.sel{background-color:transparent;outline:2px dashed var(--green);outline-offset:-2px}
.hubroom:is(.hall,.homeroom,.placeroom) .whotag{position:absolute;left:50%;bottom:0;transform:translate(-50%,40%);font:10px/1 var(--px);background:#000;color:var(--gold);padding:2px 4px;white-space:nowrap;pointer-events:none;text-transform:uppercase}
.hubroom:is(.hall,.homeroom,.placeroom) .hallwho.moment .whotag{color:#04140b;background:var(--blue)}
@keyframes bubin{from{opacity:0;margin-top:4px}to{opacity:1;margin-top:0}}
.hall-toast{position:absolute;z-index:3;left:6px;right:6px;bottom:6px;margin:0;padding:6px 9px;background:rgba(0,0,0,.84);border-left:3px solid var(--gold);font:14px/1.3 var(--read);pointer-events:none}
.hubroom:is(.hall,.homeroom,.placeroom) .pop{z-index:4}
@keyframes hallwalk{from{transform:translate(var(--dx),var(--dy))}to{transform:none}}
.hubroom:is(.hall,.homeroom,.placeroom) .scene .walk{animation:hallwalk .45s steps(5) both}
@media(prefers-reduced-motion:reduce){.hubroom:is(.hall,.homeroom,.placeroom) .scene .walk,.hall-bubble{animation:none}}
.homewhere{margin:4px 0 0;font:14px/1.35 var(--read);color:var(--ink)}
.homewhere .lbl{margin-right:6px;font:11px var(--px);color:var(--mut);text-transform:uppercase}
:is(.home-first,.place-first) .homestatus{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:is(.home-first,.place-first) .community-tools>.fold>summary{min-height:42px;display:flex;align-items:center;cursor:pointer;color:var(--gold);font:12px var(--px);text-transform:uppercase}
:is(.home-first,.place-first) .community-tools>.fold{border-top:1px solid #34394a;padding-top:2px}
:is(.home-first,.place-first) .community-tools>button.primary{margin-top:4px}
.pt{background:#1c2230}
.cpt{display:block;width:100%;height:100%}
:root{--you:#00e676}
.d i{font-style:normal;margin-right:3px;font-size:.8em}
.pmile{display:flex;gap:10px;align-items:center;padding:8px 10px;border:3px solid var(--gold);background:var(--card)}
.pmile small{display:block;color:var(--mut)}
@keyframes lplane{from{transform:translateX(0)}to{transform:translateX(82px)}}
@keyframes ltw{50%{opacity:.25}}
.dprog{position:relative;height:24px;margin:6px 0;background:var(--card2);border:2px solid #000}
.dprog i{position:absolute;inset:0 auto 0 0;background:var(--greend)}
.dprog span{position:relative;display:block;text-align:center;font:12px/20px var(--px);text-transform:uppercase}
.scoreparts{list-style:none;margin:6px 0;padding:0}
.scoreparts li{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid var(--line)}
.scoreparts small{display:block;color:var(--mut)}
.scoreparts b{font:15px var(--px);color:var(--gold)}
.result.compact{padding:8px 10px;margin-bottom:8px}
.result.compact .rsim,.result.compact .tip,.result.compact .mut{display:none}
.result.compact p{margin:2px 0}
#roadtoast{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:2px 8px;padding:4px 10px;margin:4px 0}
#roadtoast small{font-size:13px}
.result.compact .reveal>p:first-child{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.result.compact .reveal{cursor:default}
.result.compact .who{margin:0 0 2px}
