body.roompage{--wall:#04070d;background:#04070d;color:var(--ink);height:100dvh;overflow:hidden;overscroll-behavior:none;margin:0}
.roompage .top{background:linear-gradient(#04070dcc,#04070d00)}
.room3d{position:fixed;inset:0}
#stage{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}
#stage:active{cursor:grabbing}
.hint{position:absolute;left:50%;bottom:clamp(20px,6vh,48px);transform:translateX(-50%);font:400 14px/1.4 var(--sans);color:var(--soft);letter-spacing:.02em;text-align:center;padding:0 var(--gut);transition:opacity 1.2s ease;pointer-events:none}
.hint.gone{opacity:0}
.focus{position:absolute;left:0;right:0;bottom:clamp(18px,7vh,64px);display:flex;flex-direction:column;align-items:center;gap:14px;padding:0 var(--gut);text-align:center;opacity:0;transform:translateY(10px);transition:opacity 1.1s ease .55s,transform 1.1s ease .55s;pointer-events:none}
.focus.on{opacity:1;transform:none;pointer-events:auto}
.ftitle{margin:0;display:flex;flex-direction:column;gap:4px}
.ftitle cite{font:300 italic clamp(24px,3.4vw,40px)/1.15 var(--serif);color:var(--label);text-shadow:0 2px 24px #000}
.ftitle span{font:400 13px/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.factions{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font:400 14px/1.3 var(--sans)}
.factions a,.factions button{color:var(--ink);background:none;border:0;border-bottom:1px solid var(--line);padding:6px 0;font:inherit;cursor:pointer;text-decoration:none}
.factions a:hover,.factions button:hover{border-color:currentColor}
.factions a:focus-visible,.factions button:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.sr-list{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nojs{position:absolute;inset:auto 0 40% 0;text-align:center;font:400 16px/1.4 var(--sans)}
@media (prefers-reduced-motion:reduce){.focus,.hint{transition:none}}
