:root{--paper:#efefe6;--acid:#d7ff79;--muted:rgba(239,239,230,.54);--line:rgba(239,239,230,.18);--black:#080907}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;background:var(--black)}body{overflow:hidden;color:var(--paper);font-family:Inter,sans-serif;cursor:none}button,a{color:inherit;font:inherit;cursor:none}
.environment{position:fixed;inset:-2%;opacity:0;background:#0a0b09 url("assets/backrooms-sanctuary.png") 50% 50%/cover no-repeat;filter:brightness(.56) saturate(.62);transform:scale(1.1);transition:opacity 2.2s ease,transform 4s cubic-bezier(.2,.75,.2,1)}.environment::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 48% 44%,transparent 0,rgba(5,6,5,.17) 47%,rgba(4,5,4,.74) 100%),linear-gradient(180deg,rgba(3,4,3,.38),rgba(3,4,3,.56))}body.scene-ready .environment{opacity:1;transform:scale(1.02)}
.grain{position:fixed;inset:-60px;z-index:8;pointer-events:none;opacity:.105;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E");animation:grain .3s steps(2) infinite}
#world{position:fixed;inset:0;z-index:2;width:100%;height:100%;opacity:0;transform:scale(1.04);transition:opacity 1.6s ease,transform 3.4s cubic-bezier(.2,.75,.2,1)}body.scene-ready #world{opacity:1;transform:scale(1)}
.chrome{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;height:76px;padding:0 31px;opacity:0;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(5,6,5,.72),transparent);transition:opacity 1s ease 2.1s}body.scene-ready .chrome{opacity:1}.brand{display:flex;align-items:center;text-decoration:none}.brand img{display:block;width:min(270px,27vw);height:58px;object-fit:contain;object-position:left center}.chrome-actions{display:flex;align-items:center;gap:20px}.chrome-actions button,.chrome-actions a,.chrome-actions>span{padding:8px 0;border:0;background:none;text-decoration:none;color:var(--muted);font:400 8px DM Mono,monospace;letter-spacing:.12em;transition:color .18s}.chrome-actions button:hover,.chrome-actions a:hover{color:var(--acid)}.chrome-actions>span i{display:inline-block;width:5px;height:5px;margin-right:6px;border-radius:50%;background:var(--acid);box-shadow:0 0 10px var(--acid)}
.utility-telemetry{position:fixed;z-index:24;right:31px;bottom:74px;display:flex;align-items:center;gap:13px;padding:8px 11px;opacity:0;color:rgba(239,239,230,.42);border:1px solid rgba(239,239,230,.1);background:rgba(5,6,5,.62);backdrop-filter:blur(10px);font:400 7px DM Mono,monospace;letter-spacing:.09em;pointer-events:none;transition:opacity .7s ease 2.7s}.scene-ready .utility-telemetry{opacity:1}.utility-telemetry span{display:flex;align-items:center;gap:5px;white-space:nowrap}.utility-telemetry span+span{padding-left:12px;border-left:1px solid var(--line)}.utility-telemetry i{width:5px;height:5px;border-radius:50%;background:var(--acid);box-shadow:0 0 9px var(--acid)}.utility-telemetry b{color:var(--acid);font-weight:500}
.scene-caption{position:fixed;z-index:12;left:50%;bottom:25px;display:flex;align-items:center;gap:13px;padding:9px 14px;color:var(--muted);background:rgba(6,7,6,.42);backdrop-filter:blur(8px);font:300 7px DM Mono,monospace;letter-spacing:.11em;transform:translateX(-50%);opacity:0;transition:opacity .8s ease 3s}body.scene-ready .scene-caption{opacity:1}.scene-caption i{width:22px;height:1px;background:var(--line)}.scene-caption b{color:var(--acid);font-weight:400}
.block-card{--room-accent:var(--acid);position:fixed;z-index:30;left:0;top:0;width:285px;padding:17px;opacity:0;visibility:hidden;pointer-events:none;border:1px solid color-mix(in srgb,var(--room-accent),transparent 48%);background:rgba(7,8,7,.82);backdrop-filter:blur(16px);transform:translate(18px,18px) scale(.96);transition:opacity .16s,transform .16s,visibility .16s}.block-card.visible{opacity:1;visibility:visible;transform:translate(18px,18px) scale(1)}.block-card>div,.block-card footer{display:flex;align-items:center;gap:10px;color:var(--muted);font:400 8px DM Mono,monospace;letter-spacing:.1em}.block-card>div span{color:var(--room-accent);font-size:15px}.block-card>div i{flex:1;height:1px;background:var(--line)}.block-card h2{margin:15px 0 8px;font-size:14px;font-weight:400}.block-card p{margin:0 0 16px;color:var(--muted);font:300 9px/1.55 DM Mono,monospace}.block-card footer{justify-content:space-between;padding-top:10px;border-top:1px solid var(--line)}.block-card footer b{color:var(--room-accent);font-weight:400}
.block-card.locked{--room-accent:#8d9087;border-style:dashed}.block-card.locked footer b{color:rgba(239,239,230,.42)}
.chrome-actions button b{margin-left:5px;color:var(--acid);font-weight:500}
.room-directory{position:fixed;z-index:85;top:76px;right:0;bottom:0;display:grid;grid-template-rows:auto auto 1fr auto;width:min(430px,100vw);padding:0;visibility:hidden;background:rgba(5,6,5,.94);border-left:1px solid var(--line);backdrop-filter:blur(24px);transform:translateX(100%);transition:transform .48s cubic-bezier(.2,.75,.2,1),visibility .48s}.room-directory.open{visibility:visible;transform:translateX(0)}.room-directory header{position:static;display:flex;align-items:flex-start;justify-content:space-between;height:auto;padding:24px;border-bottom:1px solid var(--line);background:none}.room-directory header small{color:var(--acid);font:400 7px DM Mono,monospace;letter-spacing:.14em}.room-directory h2{margin:8px 0 0;font-size:16px;font-weight:400;letter-spacing:.06em}.room-directory header button{padding:8px 0;border:0;background:none;color:var(--muted);font:400 8px DM Mono,monospace;letter-spacing:.12em}.room-directory>p{margin:0;padding:15px 24px;color:var(--muted);border-bottom:1px solid var(--line);font:300 9px/1.5 DM Mono,monospace}.room-directory>footer{padding:15px 24px;color:var(--muted);border-top:1px solid var(--line);font:300 7px DM Mono,monospace;letter-spacing:.12em}.open-room-list{overflow:auto}.open-room-empty{padding:28px 24px;color:var(--muted);font:300 10px/1.65 DM Mono,monospace}.open-room-entry{position:relative;display:grid;width:100%;padding:17px 24px;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;transition:background .18s}.open-room-entry:hover,.open-room-entry:focus-visible{background:rgba(215,255,121,.06);outline:0}.open-room-entry::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--entry-accent,var(--acid));transform:scaleY(0);transition:transform .18s}.open-room-entry:hover::before,.open-room-entry.fresh::before{transform:scaleY(1)}.open-room-entry span{display:flex;justify-content:space-between;color:var(--entry-accent,var(--acid));font:400 8px DM Mono,monospace;letter-spacing:.1em}.open-room-entry b{margin-top:7px;font-size:11px;font-weight:400}.open-room-entry small{margin-top:7px;color:var(--muted);font:300 7px DM Mono,monospace;letter-spacing:.08em}
.locked-notice{position:fixed;z-index:90;left:50%;bottom:64px;display:grid;justify-items:center;width:min(430px,calc(100vw - 28px));padding:20px 22px;opacity:0;visibility:hidden;text-align:center;border:1px dashed rgba(239,239,230,.3);background:rgba(6,7,6,.92);backdrop-filter:blur(18px);transform:translate(-50%,18px);transition:.28s}.locked-notice.visible{opacity:1;visibility:visible;transform:translate(-50%,0)}.locked-notice small{color:var(--acid);font:400 7px DM Mono,monospace;letter-spacing:.16em}.locked-notice b{margin-top:8px;font:500 12px DM Mono,monospace;letter-spacing:.1em}.locked-notice p{margin:10px 0 14px;color:var(--muted);font:300 9px/1.55 DM Mono,monospace}.locked-notice button{padding:10px 13px;border:1px solid var(--acid);background:transparent;color:var(--acid);font:400 8px DM Mono,monospace;letter-spacing:.11em}.locked-notice button:hover{color:#080907;background:var(--acid)}
.corridor-ui{position:fixed;inset:0;z-index:22;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .55s,visibility .55s}.corridor-ui.active{opacity:1;visibility:visible}.exit-room{position:absolute;top:101px;left:31px;padding:13px 17px;color:var(--paper);border:1px solid rgba(239,239,230,.34);background:rgba(6,7,6,.7);backdrop-filter:blur(11px);pointer-events:auto;font:400 9px DM Mono,monospace;letter-spacing:.12em}.exit-room:hover{color:#080907;background:var(--acid);border-color:var(--acid)}.exit-room span{margin-right:9px}.room-status{position:absolute;top:101px;right:31px;display:grid;justify-items:end;gap:5px;text-align:right}.room-status small,.room-status span{color:var(--muted);font:300 8px DM Mono,monospace;letter-spacing:.11em}.room-status b{font:500 11px DM Mono,monospace;letter-spacing:.08em}.room-status span i{display:inline-block;width:5px;height:5px;margin-right:6px;border-radius:50%;background:var(--acid);animation:pulse 1.2s infinite}.corridor-help{position:absolute;bottom:25px;left:31px;display:flex;gap:18px;color:var(--muted);font:300 8px DM Mono,monospace;letter-spacing:.1em}.corridor-help b{color:var(--acid);font-weight:400}
.directory-room-toggle{position:absolute;top:101px;left:190px;padding:13px 17px;color:var(--muted);border:1px solid var(--line);background:rgba(6,7,6,.7);backdrop-filter:blur(11px);pointer-events:auto;font:400 8px DM Mono,monospace;letter-spacing:.1em}.directory-room-toggle b{margin-left:6px;color:var(--acid);font-weight:500}.directory-room-toggle:hover{color:var(--paper);border-color:var(--acid)}
.room-transcript-toggle{position:absolute;top:101px;left:345px;padding:13px 17px;color:var(--acid);border:1px solid color-mix(in srgb,var(--acid),transparent 42%);background:rgba(6,7,6,.76);backdrop-filter:blur(11px);pointer-events:auto;font:400 8px DM Mono,monospace;letter-spacing:.1em;transition:background .2s,color .2s,box-shadow .2s}.room-transcript-toggle:hover{color:#080907;background:var(--acid);box-shadow:0 0 30px color-mix(in srgb,var(--acid),transparent 68%)}
.room-utility-strip{position:absolute;top:153px;left:31px;display:flex;gap:6px;pointer-events:auto}.room-utility-strip button{padding:7px 9px;color:rgba(239,239,230,.46);border:1px solid rgba(239,239,230,.12);background:rgba(6,7,6,.58);backdrop-filter:blur(9px);font:400 7px DM Mono,monospace;letter-spacing:.1em;transition:color .18s,border-color .18s,background .18s}.room-utility-strip button:hover{color:var(--acid);border-color:color-mix(in srgb,var(--acid),transparent 45%);background:rgba(6,7,6,.84)}
.movement-controls{position:absolute;right:31px;bottom:25px;display:flex;gap:7px;pointer-events:auto}.movement-controls button{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--line);background:rgba(6,7,6,.72);color:var(--muted);backdrop-filter:blur(10px);font:400 7px DM Mono,monospace;letter-spacing:.08em;user-select:none;touch-action:none}.movement-controls button b{display:grid;place-items:center;width:20px;height:20px;color:var(--acid);border:1px solid color-mix(in srgb,var(--acid),transparent 45%);font-weight:500}.movement-controls button:hover,.movement-controls button.active{color:var(--paper);border-color:var(--acid);background:color-mix(in srgb,var(--acid),rgba(5,6,5,.86) 88%)}
.room-transcript{position:absolute;z-index:125;inset:72px clamp(22px,6vw,100px) 54px;display:grid;grid-template-rows:auto 1fr auto;opacity:0;visibility:hidden;pointer-events:none;border:1px solid color-mix(in srgb,var(--acid),transparent 48%);background:linear-gradient(135deg,rgba(4,5,4,.985),rgba(8,10,7,.955));box-shadow:0 0 90px rgba(0,0,0,.72),inset 0 0 70px color-mix(in srgb,var(--acid),transparent 95%);backdrop-filter:blur(24px);transform:translateY(22px) scale(.985);transition:opacity .34s,visibility .34s,transform .48s cubic-bezier(.2,.75,.2,1)}.room-transcript.open{opacity:1;visibility:visible;pointer-events:auto;transform:none}.room-transcript::before{content:"";position:absolute;inset:12px;pointer-events:none;border:1px solid rgba(239,239,230,.06)}.room-transcript header,.room-transcript footer{position:relative;display:flex;align-items:center;justify-content:space-between;padding:19px 25px;border-bottom:1px solid var(--line)}.room-transcript header div{display:grid;gap:6px}.room-transcript header small,.room-transcript footer{color:var(--muted);font:400 7px DM Mono,monospace;letter-spacing:.13em}.room-transcript header b{font:400 12px DM Mono,monospace;letter-spacing:.12em}.room-transcript header button{padding:9px 11px;border:1px solid var(--line);background:transparent;color:var(--muted);font:400 8px DM Mono,monospace;letter-spacing:.1em}.room-transcript header button:hover{color:#080907;background:var(--acid);border-color:var(--acid)}.room-transcript-scroll{position:relative;overflow:auto;padding:34px clamp(28px,5vw,80px);scrollbar-color:var(--acid) transparent}.room-transcript pre{display:inline;margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:rgba(239,239,230,.9);font:300 clamp(11px,1vw,15px)/1.72 DM Mono,monospace;text-shadow:0 0 14px rgba(215,255,121,.08)}.transcript-cursor{display:inline-block;width:7px;height:1.05em;margin-left:3px;vertical-align:-.16em;background:var(--acid);box-shadow:0 0 12px var(--acid);animation:pulse .72s steps(1) infinite}.room-transcript footer{border-top:1px solid var(--line);border-bottom:0}.room-transcript footer b{color:var(--acid);font-weight:400}
.corridor-ui.branching{opacity:.2}.room-reticle{position:absolute;left:50%;top:50%;display:grid;justify-items:center;gap:20px;transform:translate(-50%,-50%)}.room-reticle i{display:block;width:15px;height:15px;border:1px solid rgba(239,239,230,.62);transform:rotate(45deg);transition:.18s}.room-reticle span{position:absolute;top:30px;width:290px;color:rgba(239,239,230,.42);font:300 7px DM Mono,monospace;letter-spacing:.11em;text-align:center;transition:.18s}.room-reticle.branch-ready i{width:34px;height:34px;border-color:var(--acid);background:color-mix(in srgb,var(--acid),transparent 82%);box-shadow:0 0 28px color-mix(in srgb,var(--acid),transparent 45%)}.room-reticle.branch-ready span{color:var(--acid)}
.room-transition{position:fixed;inset:0;z-index:190;display:grid;place-items:center;opacity:0;visibility:hidden;pointer-events:none;background:radial-gradient(circle at center,transparent 0,rgba(3,4,3,.18) 25%,rgba(3,4,3,.82) 100%);transition:opacity .42s ease,visibility .42s ease,background .42s ease}.room-transition.active{opacity:.72;visibility:visible}.room-transition.cover{opacity:1;background:#050605}.room-transition i{width:94px;height:94px;border:1px solid var(--acid);border-radius:50%;box-shadow:0 0 60px color-mix(in srgb,var(--acid),transparent 55%),inset 0 0 42px color-mix(in srgb,var(--acid),transparent 72%);transform:scale(.45);transition:transform .9s cubic-bezier(.12,.72,.2,1),opacity .35s}.room-transition.active i{transform:scale(2.8);opacity:.68}.room-transition.cover i{transform:scale(9);opacity:0}.room-transition span{position:absolute;top:calc(50% + 75px);color:var(--acid);font:400 8px DM Mono,monospace;letter-spacing:.18em;transition:opacity .25s}.room-transition.cover span{opacity:0}
.room-transition.exit{opacity:1;visibility:visible;background:repeating-radial-gradient(circle at center,transparent 0 28px,color-mix(in srgb,var(--acid),transparent 90%) 29px 30px),radial-gradient(circle at center,rgba(215,255,121,.08),rgba(2,3,2,.95) 72%);animation:exitFlash 1.25s cubic-bezier(.15,.72,.2,1) both}.room-transition.exit::before,.room-transition.exit::after{content:"";position:absolute;left:50%;top:50%;width:42vmax;height:1px;background:linear-gradient(90deg,transparent,var(--acid),transparent);box-shadow:0 0 20px var(--acid);transform:translate(-50%,-50%);animation:exitLine 1.1s ease-in-out infinite alternate}.room-transition.exit::after{transform:translate(-50%,-50%) rotate(90deg);animation-delay:-.35s}.room-transition.exit i{border-radius:0;transform:rotate(45deg) scale(5.5);opacity:.72}.room-transition.exit span{top:calc(50% + 96px);font-size:9px;text-shadow:0 0 18px var(--acid)}
.cursor{position:fixed;z-index:100;left:0;top:0;display:grid;place-items:center;width:30px;height:30px;pointer-events:none;transform:translate(-50%,-50%);transition:width .16s,height .16s,background .16s}.cursor i{position:absolute;inset:9px;border:1px solid rgba(239,239,230,.7);transform:rotate(45deg)}.cursor span{display:none;color:#080907;font:500 7px DM Mono,monospace}.cursor.hot{width:54px;height:54px;border-radius:50%;background:var(--acid)}.cursor.hot i{display:none}.cursor.hot span{display:block}
.cursor.hot.deity{width:66px;height:66px;background:#fff6c4;box-shadow:0 0 18px #fff6c4,0 0 52px rgba(255,246,196,.72),0 0 90px rgba(215,255,121,.42);animation:deityCursor 1.35s ease-in-out infinite}.cursor.hot.deity span{font-size:6px;letter-spacing:.08em}.divinity-active .environment{filter:brightness(.72) saturate(.7)}.divinity-active .grain{opacity:.16}
.loader{position:fixed;inset:0;z-index:200;display:grid;place-content:center;justify-items:center;background:#080907;transition:opacity .8s,visibility .8s}.loader.done{opacity:0;visibility:hidden}.loader-glyph{position:relative;width:56px;height:56px;animation:spin 5s linear infinite}.loader-glyph i{position:absolute;inset:6px;border:1px solid var(--acid);transform:rotate(45deg)}.loader-glyph i:nth-child(2){inset:16px;animation:spin 2s linear infinite reverse}.loader-glyph i:nth-child(3){inset:25px;background:var(--acid);box-shadow:0 0 18px var(--acid)}.loader p{margin:27px 0 13px;font:400 9px DM Mono,monospace;letter-spacing:.2em}.loader-line{width:240px;height:1px;background:rgba(255,255,255,.14)}.loader-line span{display:block;width:4%;height:100%;background:var(--acid);box-shadow:0 0 9px var(--acid);transition:width .4s}.loader small{margin-top:10px;color:var(--muted);font:300 7px DM Mono,monospace;letter-spacing:.1em}
.open-room-entry span i{font-style:normal}.cursor.hot.locked{background:#8b8e86}.cursor.hot.locked span{font-size:6px}
@keyframes grain{25%{transform:translate(3%,-2%)}50%{transform:translate(-2%,3%)}75%{transform:translate(2%,4%)}100%{transform:translate(-3%,-2%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.25;transform:scale(.7)}}@keyframes deityCursor{50%{transform:translate(-50%,-50%) scale(1.1)}}@keyframes exitFlash{0%{filter:brightness(1)}42%{filter:brightness(1.8)}100%{filter:brightness(.05)}}@keyframes exitLine{to{width:92vmax;opacity:.15}}
@media(max-width:700px){body,button,a{cursor:auto}.cursor{display:none}.chrome{height:65px;padding:0 16px}.brand img{width:190px;height:52px}.chrome-actions{gap:13px}.chrome-actions a,.chrome-actions>span,#audio-toggle,#reset-view,#copy-link,#fullscreen-toggle{display:none}.utility-telemetry{right:14px;bottom:64px;gap:8px}.utility-telemetry span:nth-child(2),.utility-telemetry span:nth-child(4){display:none}.room-directory{top:65px}.scene-caption{bottom:14px;white-space:nowrap}.scene-caption span,.scene-caption i{display:none}.exit-room{top:80px;left:14px}.directory-room-toggle{top:132px;left:14px}.room-transcript-toggle{top:184px;left:14px}.room-utility-strip{top:236px;left:14px}.room-utility-strip button{padding:7px}.room-utility-strip button:nth-child(2){display:none}.room-status{top:83px;right:14px;max-width:48vw}.corridor-help{display:none}.movement-controls{right:14px;bottom:15px}.movement-controls button span{display:none}.room-transcript{inset:18px 12px}.room-transcript-scroll{padding:24px 20px}.block-card{width:240px}.locked-notice{bottom:48px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
