/* Glass Room. Single committed dark look, system fonts only (no third-party requests). Adapted from the owner-approved prototype. */
:root{
 --bg:#030711;--bg-2:#06121e;--ink:#e6f4f7;--muted:#9ab3c0;--dim:#8aa5b3;
 --glass:#93e3f1;--ok:#8fe3b0;--warn:#e8c98a;--bad:#f0b09c;--line:#ffffff1a;
 --display:Georgia,"Times New Roman",serif;
 --body:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
 --mono:ui-monospace,Menlo,Consolas,monospace;
 --pw:min(420px,66vw);--ph:calc(var(--pw)*.74);--gap:300px;
 color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 var(--body)}
button,select,input{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer;text-align:left;padding:0}
a{color:var(--glass)}
:focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 5px #000;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:8px;top:-60px;background:#fff;color:#000;padding:8px 12px;border-radius:6px;z-index:9}.skip:focus{top:8px}
.wrap{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(1200px 760px at 28% 30%,#0b2236 0%,var(--bg) 62%);padding-inline:max(16px,env(safe-area-inset-left,0px))}
.inner{width:100%;max-width:1480px;margin:0 auto;flex:1}
.strip{background:#3a2d0e;color:#f3deaa;text-align:center;font-size:13px;padding:6px 12px}
header.top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-block:16px 12px;border-bottom:1px solid var(--line)}
.brand{display:flex;flex-shrink:0}.brand img{display:block;width:150px;height:auto;object-fit:contain}.room-name{font:400 22px var(--display);color:var(--ink);padding-left:14px;border-left:1px solid var(--line)}
.spacer{flex:1}
.pill{display:inline-flex;align-items:center;gap:8px;padding:5px 11px;border:1px solid #93e3f155;border-radius:999px;font-size:13px;color:var(--ink)}
.pill i{width:8px;height:8px;border-radius:50%;background:var(--dim);flex:none}
.pill.running i{background:var(--ok)}.pill.paused i{background:var(--warn)}
.demo{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--warn);border:1px solid #e8c98a66;border-radius:4px;padding:3px 8px}
.langlink{font-size:14px}
.itemline{display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap;padding-block:16px 4px}
.itemline h1{font:400 clamp(24px,2.6vw,34px)/1.15 var(--display);margin:4px 0 0;text-wrap:balance;max-width:30ch}
.eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#9dc0d0;margin:0}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.chip{font:12.5px var(--mono);color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:4px 9px;overflow-wrap:anywhere}
.demonote{border:1px solid #e8c98a55;background:#e8c98a0d;color:#ecd9a8;border-radius:10px;padding:10px 14px;font-size:14px;margin:12px 0 0}
.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin-top:12px}
.tabs button{padding:11px 14px;font-size:14px;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap}
.tabs button[aria-selected=true]{color:var(--ink);border-color:var(--glass)}
.tabs button:hover{color:var(--ink)}
.view{padding-block:16px 28px}
.view[hidden]{display:none}
html:not(.js) .tabs{display:none}html:not(.js) .view{display:block!important}
.msg{border:1px solid #93e3f144;border-radius:12px;padding:16px 18px;background:#93e3f10a;max-width:70ch}
.msg b{display:block;font:400 20px var(--display);margin-bottom:4px}
.roomgrid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:22px;align-items:start}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.tbtn{font-size:13px;color:#cdeef5;border:1px solid #93e3f155;border-radius:8px;padding:7px 12px;background:#06141f99}
.tbtn:hover{border-color:#93e3f1cc}.tbtn[aria-pressed=true]{background:#93e3f122;border-color:#93e3f1}
.tbtn[hidden]{display:none}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:0 0 10px;padding:0;list-style:none}
.legend li{display:inline-flex;align-items:center;gap:6px}
.sw{display:inline-block;width:18px;height:12px;border-radius:3px;border:1px solid #93e3f1aa;flex:none}
.sw.clear{background:#93e3f118}.sw.frost{background:repeating-linear-gradient(45deg,#cfeff544 0 2px,#93e3f122 2px 5px)}.sw.litsw{background:#8fe3b044;border-color:#8fe3b0;box-shadow:0 0 8px #8fe3b088}
.walls{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wallbtn{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:4px 12px;align-items:center;border:1px solid #93e3f144;border-radius:12px;padding:12px 14px;background:linear-gradient(135deg,#93e3f112,#93e3f104)}
.wallbtn:hover{border-color:#93e3f1aa}
.wallbtn[aria-pressed=true]{border-color:#d6f8ff;background:linear-gradient(135deg,#93e3f124,#0b1f2e66)}
.wallbtn.lit{border-color:#8fe3b0aa;box-shadow:0 0 24px #8fe3b01f}
.wallbtn.frosted{background:repeating-linear-gradient(45deg,#cfeff51a 0 2px,#93e3f10d 2px 6px)}
.wallbtn .no{font:12.5px var(--mono);color:#9ccbd9}
.wallbtn .lbl{font:400 19px var(--display)}
.wallbtn .st{font-size:13px;color:var(--muted);text-align:right}
.wallbtn .facts{grid-column:2/4;font-size:13.5px;color:#b9d8e0}
.scene{position:relative;height:clamp(340px,52vh,540px);perspective:1400px;perspective-origin:50% 38%;overflow:hidden;border-radius:16px;border:1px solid #ffffff12;background:radial-gradient(70% 60% at 50% 60%,#0c263833,transparent);margin-bottom:12px}
.scene[hidden]{display:none}
.room{position:absolute;left:50%;top:52%;width:0;height:0;transform-style:preserve-3d;transition:transform 1.1s cubic-bezier(.22,.7,.12,1)}
.plane{position:absolute;transform-style:preserve-3d;pointer-events:none}
.floor{left:calc(var(--pw)/-2);width:var(--pw);top:calc(var(--ph)/2);transform-origin:top center;transform:rotateX(-90deg);background:repeating-linear-gradient(0deg,#93e3f112 0 1px,transparent 1px 56px),repeating-linear-gradient(90deg,#93e3f112 0 1px,transparent 1px 56px);border:1px solid #93e3f12a}
.step{position:absolute;width:14px;height:20px;margin:-10px 0 0 -7px;border-radius:50%;background:#93e3f199;box-shadow:0 0 10px #93e3f166}
.step.no{background:#f0b09ccc;box-shadow:0 0 10px #f0b09c88}
.pane{position:absolute;width:var(--pw);height:var(--ph);left:calc(var(--pw)/-2);top:calc(var(--ph)/-2);transform-style:preserve-3d;border-radius:14px;transition:opacity .8s}
.pane button{position:absolute;inset:0;border-radius:14px;width:100%}
.pane .glass{position:absolute;inset:0;border:1px solid #93e3f166;border-radius:14px;background:linear-gradient(135deg,#93e3f124,#93e3f10a 55%,#ffffff08);box-shadow:inset 0 0 40px #93e3f112;pointer-events:none}
.pane.frosted .glass{background:repeating-linear-gradient(45deg,#cfeff533 0 2px,#93e3f11a 2px 6px)}
.pane.lit .glass{border-color:#8fe3b0cc;box-shadow:inset 0 0 50px #8fe3b01c,0 0 40px #8fe3b033}
.pane.sel .glass{border-color:#d6f8ff;box-shadow:inset 0 0 70px #93e3f11a,0 0 60px #4fe0ff26}
.pane .front{position:absolute;inset:0;padding:14px 18px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}
.pane .front .no{font:12.5px var(--mono);color:#a9d6e3}
.pane .front .lbl{font:400 clamp(18px,1.8vw,24px) var(--display)}
.pane .front .facts{font-size:13px;color:#c2dfe7}
.stage.focus .pane:not(.sel){opacity:.35}
.hint{font-size:13px;color:var(--muted);margin:8px 0 0;max-width:80ch}
.side{display:flex;flex-direction:column;gap:12px;min-width:0}
.panel{border:1px solid #93e3f12e;border-radius:16px;background:linear-gradient(160deg,#0c2131f2,#06121ef5);padding:20px 22px;box-shadow:0 30px 90px #0007;min-height:300px}
.panel h2{font:400 clamp(23px,2.2vw,29px)/1.15 var(--display);margin:6px 0 4px;text-wrap:balance}
.sub{color:var(--muted);font-size:14px;margin:0 0 12px}
.fade{animation:in .4s ease both}@keyframes in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.src{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid #ffffff12}
.fav{width:30px;height:30px;border-radius:7px;display:grid;place-items:center;font:600 11px var(--body);color:#fff;background:#24465a;flex:none}
.src b{font-weight:500;font-size:14px;display:block;overflow-wrap:anywhere}.src small{color:var(--muted);font-size:13px}
.tier{font-size:12px;padding:2px 7px;border-radius:4px;border:1px solid #8fe3b077;color:#b4f0c9;white-space:nowrap;display:inline-block}
.tier.m{border-color:#93e3f177;color:#c0f0f8}.tier.x{border-color:#f0b09c88;color:#f6c5b5}
h3.group{font:500 12px var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:16px 0 2px}
.check{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid #ffffff12;font-size:14px}.check i{font-style:normal;color:var(--ok);min-width:70px;flex:none;font-size:13px}.check.f i{color:var(--bad)}.check.n i{color:var(--dim)}
.big{display:flex;align-items:baseline;gap:10px;margin:4px 0 8px}.big b{font:400 44px var(--display)}.big span{color:var(--muted)}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.kv div{border:1px solid var(--line);border-radius:8px;padding:9px 11px;min-width:0}.kv small{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.kv span{font-size:14px;overflow-wrap:anywhere}
.frostbox{margin:12px 0 0;border-radius:8px;padding:10px 12px;background:repeating-linear-gradient(45deg,#cfeff51c 0 2px,#93e3f10f 2px 6px);border:1px solid #93e3f144;font-size:14px}
.frostbox b{font-weight:500}.frostbox small{display:block;color:#d6e8ee}
.note{margin:12px 0 0;font-size:14px;color:#e5d3a6;border:1px dashed #e8c98a66;border-radius:8px;padding:9px 12px;background:#e8c98a0a}
.note.info{color:#c4e9f1;border-color:#93e3f155;background:#93e3f10a}
.hash{font:13px var(--mono);color:#a9c9d6;word-break:break-all;margin:8px 0 0}
.verify{margin-top:12px;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;border:1px solid #8fe3b055;border-radius:10px;padding:11px 13px;background:#8fe3b00a;font-size:14px}
.btn{background:#a9ecc2;color:#05220f;border-radius:7px;padding:8px 14px;font-weight:600;font-size:14px}
.btn.ghost{background:none;color:#cdeef5;border:1px solid #93e3f188}
.feed{border:1px solid var(--line);border-radius:14px;padding:12px 16px;background:#ffffff05}
.feed ul{list-style:none;margin:6px 0 0;padding:0;max-height:170px;overflow:auto}
.feed li{font:13px/1.5 var(--mono);color:#b4cdd8;padding:4px 0;border-bottom:1px solid #ffffff0d}
.mapgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:22px}
.mapcol{display:flex;flex-direction:column;gap:10px}
.colhead{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:0 0 4px}
.claim{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#ffffff06;width:100%}
.claim:hover{border-color:#93e3f188}
.claim[aria-pressed=true]{border-color:#d6f8ff;background:#93e3f118}
.claim p{margin:0;font:17px/1.5 var(--display)}
.claim small{display:block;margin-top:6px;color:var(--muted);font-size:13px}
.evn{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#081827e6}
.evn small{display:block;color:var(--muted);font-size:13px}
.evn.dim{opacity:.45}.evn.on{border-color:#d6f8ff;box-shadow:0 0 30px #4fe0ff1c}
.jgrid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:28px}
.tl{position:relative;padding-left:30px;margin:6px 0 0;list-style:none}
.tl:before{content:'';position:absolute;left:9px;top:8px;bottom:24px;width:1px;background:linear-gradient(#93e3f1aa,#93e3f122)}
.tl li{position:relative;margin-bottom:12px;border:1px solid #ffffff14;border-radius:12px;padding:12px 16px;background:#ffffff06}
.tl li:before{content:'';position:absolute;left:-26px;top:17px;width:11px;height:11px;border-radius:50%;background:var(--glass)}
.tl li.no:before{background:#f0b09c}
.tl .h{display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap}.tl .h b{font-weight:500}.tl .h span{font:13px var(--mono);color:var(--muted)}
.tl p{font-size:14px;color:var(--muted);margin:4px 0 0}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.stats div{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.stats small{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.stats b{font:400 24px var(--display)}
.recgrid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:22px}
pre.json{margin:0;max-height:560px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:16px;background:#020509;font:13px/1.6 var(--mono);color:#c4dde6;white-space:pre-wrap;word-break:break-word}
.legal{display:grid;grid-template-columns:240px minmax(0,1fr);gap:28px}
.toc{position:sticky;top:12px;align-self:start;display:flex;flex-direction:column;gap:2px;font-size:14px}
.toc a{color:var(--muted);text-decoration:none;padding:6px 8px;border-radius:6px}.toc a:hover{color:var(--ink);background:#ffffff0d}
.doc{max-width:78ch}
.doc .lead{font:19px/1.6 var(--display);color:#d4e5ea;margin:0 0 14px}
.doc section{border-top:1px solid var(--line);padding:6px 0 10px}
.doc h3{font:400 22px var(--display);margin:14px 0 6px}
.doc p,.doc li{color:#c6d8df;font-size:15px;line-height:1.7}
.doc ul{padding-left:20px}
table.t{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0 14px}
table.t th{text-align:left;font-weight:600;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);padding:8px 10px;border-bottom:1px solid #ffffff22}
table.t td{padding:9px 10px;border-bottom:1px solid #ffffff12;color:#d4e6ec;vertical-align:top}
.tw{overflow-x:auto}
footer.bot{border-top:1px solid var(--line);padding-block:16px;font-size:13px;color:var(--muted);display:flex;gap:16px;flex-wrap:wrap}
dialog{background:#0a1a28;color:var(--ink);border:1px solid #93e3f188;border-radius:14px;max-width:min(520px,92vw);padding:22px}
dialog::backdrop{background:#000b}
dialog h2{font:400 24px var(--display);margin:0 0 8px}
@media (max-width:980px){
 .roomgrid,.jgrid,.recgrid,.mapgrid{grid-template-columns:1fr}
 .legal{grid-template-columns:1fr}.toc{position:static;flex-direction:row;flex-wrap:wrap}
 :root{--pw:min(340px,72vw);--gap:280px}.chips{margin-left:0}
}
@media (max-width:480px){.kv,.stats{grid-template-columns:1fr}.src{grid-template-columns:auto 1fr}.src .tierwrap{grid-column:2}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
@media (forced-colors:active){.glass,.wallbtn,.frostbox{border:1px solid CanvasText}}
.norec .recview,.norec [role=tab]:not(#t-about){display:none!important}
.norec .tabs{margin-top:12px}
html main.loadingstate .recview{display:none!important}
.loadingstate #loading{display:block}
.msg[hidden]{display:none}
main:not(.loadingstate) #loading{display:none}
.frostbox small{font-size:13px}

@media (max-width:480px){.brand img{width:120px}.room-name{font-size:19px;padding-left:10px}}
