:root{font-family:Iowan Old Style,Palatino Linotype,Book Antiqua,Georgia,serif;color:#f5efdc;background:#111714;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 20% 10%,rgba(171,43,30,.22),transparent 30rem),radial-gradient(circle at 80% 20%,rgba(203,160,82,.18),transparent 24rem),linear-gradient(135deg,#101511,#151d18,#231914)}button,input{font:inherit}.shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(22rem,34rem);min-height:100vh}.room{position:relative;display:grid;align-items:end;min-height:100vh;overflow:hidden}.room__canvas,.room__background{position:absolute;inset:0}.room__canvas{width:100%;height:100%;opacity:.9}.room__background{background:radial-gradient(circle at var(--glow-x, 22%) var(--glow-y, 18%),color-mix(in srgb,var(--bg-c, #e2b65f) 36%,transparent),transparent 20rem),repeating-linear-gradient(var(--mist-angle, 35deg),rgba(255,255,255,.035) 0 1px,transparent 1px 18px),linear-gradient(to top,#0a0d0bf0,#0a0d0b14 52%,#0a0d0b9e);background-position:center;background-size:cover;mix-blend-mode:screen;opacity:.82;filter:saturate(.9) contrast(1.08);transform:scale(1.02)}.room__content{position:relative;width:min(54rem,100%);padding:clamp(2rem,5vw,5rem)}.eyebrow{margin:0 0 1rem;color:#e2b65f;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}h1{max-width:10ch;margin:0;font-size:clamp(4rem,12vw,9rem);font-weight:700;line-height:.86}.lede{max-width:42rem;margin:1.5rem 0 0;color:#efe1bd;font-size:clamp(1.1rem,2.4vw,1.55rem);line-height:1.45}.atmosphere{max-width:42rem;margin:1rem 0 0;color:#d8c69d;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem;line-height:1.5}.console{display:grid;grid-template-rows:auto auto auto minmax(14rem,1fr) auto auto;min-height:100vh;border-left:1px solid rgba(226,182,95,.25);background:#0e120fe0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.status{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;padding:.85rem 1.25rem;border-bottom:1px solid rgba(226,182,95,.18);color:#f0c8b8;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.status.online{color:#b7df9b}.status button{min-height:1.9rem;border:1px solid currentColor;border-radius:6px;padding:.25rem .55rem;color:inherit;background:#ffffff0f;cursor:pointer;text-transform:uppercase}.status button:disabled{cursor:wait;opacity:.62}.console__guide{display:grid;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid rgba(226,182,95,.16)}.player,.command{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem}.player label,.command label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.player input,.command input{width:100%;min-width:0;border:1px solid rgba(226,182,95,.35);border-radius:6px;padding:.85rem 1rem;color:#f9f1df;background:#02050380;outline:none}.player input:focus,.command input:focus{border-color:#e2b65f;box-shadow:0 0 0 3px #e2b65f29}.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.guide-panel{min-width:0;border:1px solid rgba(226,182,95,.18);border-radius:8px;padding:.85rem;background:#05080652}.guide-panel h2{margin:0 0 .35rem;color:#f0d18a;font-size:.92rem;line-height:1.2}.guide-panel p{margin:0;color:#d9ccb2;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem;line-height:1.45}.mini-actions,.exits{display:flex;flex-wrap:wrap;gap:.5rem}.mini-actions{margin-top:.7rem}.exits{align-items:center;padding:.75rem 1.25rem;border-bottom:1px solid rgba(226,182,95,.16)}.exits span{color:#d8c69d;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.console__log{display:flex;flex-direction:column;gap:.75rem;overflow:auto;padding:2rem}.console__log p{margin:0;color:#e9dec6;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.96rem;line-height:1.5}.command{padding:1rem 1.25rem 0}.command button,.chips button,.player button,.mini-actions button,.exits button{border:1px solid rgba(226,182,95,.36);border-radius:6px;color:#1b130b;background:#e2b65f;cursor:pointer}.command button,.player button{padding:0 1.1rem;font-weight:700}.command button:disabled,.command input:disabled,.chips button:disabled,.mini-actions button:disabled,.exits button:disabled{cursor:not-allowed;opacity:.55}.chips{display:flex;flex-wrap:wrap;gap:.55rem;padding:1rem 1.25rem 1.25rem}.chips button{padding:.5rem .7rem;color:#ecd7a3;background:#e2b65f14}.mini-actions button,.exits button{padding:.45rem .65rem;color:#ecd7a3;background:#e2b65f14}button:focus-visible,input:focus-visible{outline:3px solid rgba(247,208,124,.8);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:900px){.shell{grid-template-columns:1fr}.room,.console{min-height:auto}.room{min-height:52vh}.console{border-top:1px solid rgba(226,182,95,.25);border-left:0}}@media(max-width:620px){.guide-grid,.player,.command{grid-template-columns:1fr}.command button,.player button,.chips button,.mini-actions button,.exits button{min-height:2.75rem}.command{position:sticky;bottom:0;z-index:20;padding:.85rem 1rem calc(.85rem + env(safe-area-inset-bottom));border-top:1px solid rgba(226,182,95,.22);background:#0e120ff5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.console__log{padding:1.25rem}}.crt-terminal{position:relative;overflow:hidden}.crt-terminal:before{content:" ";display:block;position:absolute;inset:0;z-index:10;background:linear-gradient(#12101000 50%,#00000040 50%),linear-gradient(90deg,#ff00000f,#00ff0005,#0000ff0f);background-size:100% 4px,6px 100%;pointer-events:none}.crt-terminal:after{content:" ";display:block;position:absolute;inset:0;z-index:11;background:#1210101a;opacity:0;pointer-events:none;animation:crt-flicker .15s infinite,crt-roll 8s linear infinite}@keyframes crt-flicker{0%{opacity:.27}50%{opacity:.25}to{opacity:.28}}@keyframes crt-roll{0%{background:linear-gradient(to bottom,#12101000,#12101026,#12101000 20%);background-size:100% 200%;background-position:0% 0%}to{background-position:0% 200%}}@media(prefers-reduced-motion:reduce){.crt-terminal:after{animation:none}}
