:root{color:#ece6d8;background:#060908;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility;--ink: #060908;--panel: #111713;--panel-raised: #171f1a;--steel: #2c3631;--steel-dim: #1d2521;--brass: #c98a3d;--brass-bright: #e0a758;--flare: #d6482e;--coolant: #5fa8a0;--paper: #ece6d8;--paper-dim: #a9a192;--paper-faint: #766f62}*{box-sizing:border-box}html{background:#060908}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 18% 0%,rgba(95,168,160,.13),transparent 26rem),radial-gradient(circle at 90% 12%,rgba(201,138,61,.12),transparent 25rem),linear-gradient(135deg,#060908,#0d1210 52%,#080b0a)}body:before{position:fixed;inset:0;pointer-events:none;content:"";opacity:.18;background-image:linear-gradient(rgba(236,230,216,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(236,230,216,.035) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 80%);mask-image:linear-gradient(to bottom,black,transparent 80%)}button,textarea{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}.eyebrow,.console-line{margin:0 0 8px;color:var(--coolant);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.primary,.secondary,.ghost,.choice-grid button,.status-card button{min-height:46px;border-radius:10px;padding:0 18px;font-weight:850;letter-spacing:.01em;transition:transform .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease}.primary,.choice-grid button,.status-card button{border:1px solid rgba(224,167,88,.66);color:#160f08;background:linear-gradient(180deg,var(--brass-bright),var(--brass));box-shadow:0 10px 26px #c98a3d26}.secondary{border:1px solid rgba(95,168,160,.46);color:#d8fffa;background:#5fa8a021}.secondary.leverage:disabled{background-image:linear-gradient(135deg,#2c3631cc 25%,#111713cc 25% 50%,#2c3631cc 50% 75%,#111713cc 75%);background-size:12px 12px}.ghost{border:1px solid rgba(236,230,216,.16);color:var(--paper-dim);background:#ffffff08}button:not(:disabled):active{transform:translateY(1px)}button:not(:disabled):hover{border-color:var(--accent, #c98a3d)}textarea{width:100%;min-height:116px;resize:vertical;border:1px solid rgba(169,161,146,.18);border-radius:14px;padding:14px;color:var(--paper);background:#060908c7;box-shadow:inset 0 1px #ece6d80a}textarea::placeholder{color:#a9a1927a}textarea:focus,button:focus-visible{outline:3px solid color-mix(in srgb,var(--accent, #5fa8a0) 44%,transparent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.game-frame,.entry-panel,.status-card{position:relative;overflow:hidden;border:1px solid rgba(169,161,146,.18);border-radius:18px;background:#0a0e0ce6;box-shadow:0 28px 90px #00000070,inset 0 1px #ece6d80d}.entry-panel,.status-card{margin:9vh auto 0;max-width:620px;padding:clamp(24px,7vw,46px)}.entry-panel:after,.status-card:after,.game-frame:after{position:absolute;inset:auto 0 0;height:1px;content:"";background:linear-gradient(90deg,transparent,var(--accent, #5fa8a0),transparent);opacity:.6}.entry-mark{width:46px;height:46px;margin-bottom:22px;border:1px solid rgba(95,168,160,.36);border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#5fa8a029,#5fa8a005)}.entry-mark span{width:10px;height:10px;border-radius:50%;background:#5fa8a0;box-shadow:0 0 22px #5fa8a0}.entry-panel h1,.status-card h1,.topbar h1{margin:0;color:var(--paper);line-height:1.02;letter-spacing:-.055em}.entry-panel h1{max-width:100%;overflow-wrap:anywhere;font-size:clamp(2.7rem,11vw,6rem)}.entry-copy,.status-card p{max-width:34rem;color:var(--paper-dim);font-size:1rem}.entry-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.pulse-rail{position:relative;overflow:hidden;height:3px;margin-top:22px;border-radius:999px;background:#5fa8a01f}.pulse-rail span{position:absolute;top:0;bottom:0;width:42%;border-radius:inherit;background:linear-gradient(90deg,transparent,#5fa8a0,transparent);animation:sweep 1.7s ease-in-out infinite}@keyframes sweep{0%{transform:translate(-110%)}to{transform:translate(260%)}}.shell{width:min(760px,100%);min-height:100vh;margin:0 auto;padding:14px}.shell:has(.game-frame){min-height:0}.game-frame .console-panel{flex:none}.game-frame{display:flex;flex-direction:column;min-height:0;border:0;border-radius:0;background:#080f0c;box-shadow:none}.console-panel{flex:1;min-height:0;display:flex;flex-direction:column;position:relative;z-index:3;padding:0 clamp(14px,4vw,28px) 24px;background:transparent}.scene-content{display:grid;gap:0;min-width:0}.shell:has(.game-frame--viewport){padding:0;height:100dvh}.game-frame--viewport{--controls-height: clamp(120px, calc(var(--game-height, 100dvh) * .28), 244px);--console-height: clamp(240px, calc(var(--game-height, 100dvh) * .62), 560px);height:var(--game-height, 100dvh);min-height:0;display:grid;grid-template-rows:56px 44px minmax(0,1fr) var(--console-height)}.game-frame--viewport .console-panel{display:flex;flex-direction:column;min-height:0;padding:0 16px max(12px,env(safe-area-inset-bottom))}.game-frame--viewport .scene-content{flex:1;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto var(--controls-height)}.logout-switch{min-height:36px;padding-inline:13px;font-size:.82rem}.topbar{position:relative;z-index:3;display:flex;gap:16px;justify-content:space-between;padding:15px 16px 12px;border-bottom:1px solid rgba(169,161,146,.12);background:#060908ad;align-items:center}.topbar>div{min-width:0}.topbar h1{font-size:clamp(.9rem,3.6vw,1.15rem);letter-spacing:.06em;text-transform:none;color:#83c3bb}.topbar .logout-switch{width:auto;flex-shrink:0;border:0;background:none}.game-frame--viewport .topbar{padding:8px 16px}.game-frame--viewport .logout-switch{min-height:36px;padding:6px 12px;border:1px solid #355048;border-radius:8px;background:#101e19;color:#bacbc3;font:600 .75rem/1.4 ui-sans-serif,system-ui,sans-serif;letter-spacing:0;text-transform:none}.game-frame--viewport .logout-switch:hover{background:#1a3027;color:#e1ede4;border-color:#618b7c}.game-frame--viewport .topbar h1{font:800 .68rem/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--coolant)}.scene-heading{display:flex;align-items:baseline;gap:12px;padding:8px 16px;min-width:0;background:#0b1510}.scene-heading .scene-kind{color:#94b6a9;font:700 .6rem/1.4 ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;flex-shrink:0}.scene-heading p{margin:0;font-size:.8rem;color:#d1d8ca;overflow:auto;max-height:30px}.signal-grid{position:absolute;inset:0;opacity:.34;background-image:linear-gradient(rgba(236,230,216,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(236,230,216,.04) 1px,transparent 1px),radial-gradient(circle at 72% 22%,transparent 0 9rem,rgba(236,230,216,.06) 9.1rem 9.18rem,transparent 9.26rem);background-size:38px 38px,38px 38px,100% 100%;-webkit-mask-image:radial-gradient(circle at center,black,transparent 88%);mask-image:radial-gradient(circle at center,black,transparent 88%)}.menu-stage-card p{margin:0 0 8px;color:var(--coolant);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.68rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.menu-stage-card h2{margin:0;color:var(--paper);font-size:clamp(2rem,9vw,3.8rem);line-height:.95;letter-spacing:-.06em}.menu-stage-card span{display:block;margin-top:14px;color:var(--paper-dim)}.npc-avatar{position:relative;width:clamp(142px,40vw,190px);aspect-ratio:1;display:grid;place-items:center;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 60%,transparent);border-radius:50%;background:radial-gradient(circle at 50% 35%,#ece6d80f,#111713f0 62%);box-shadow:0 0 54px var(--aura),inset 0 0 32px #0000008c}.avatar-glow{position:absolute;inset:14%;border-radius:50%;background:var(--accent);filter:blur(34px);opacity:.18}.npc-avatar svg{position:relative;z-index:2;width:86%;height:86%}.npc-avatar .npc-portrait{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.avatar-head,.avatar-shoulders{fill:#1a211d;stroke:var(--accent);stroke-width:2}.avatar-shadow{fill:#00000057}.avatar-visor,.avatar-signal{stroke:var(--accent);stroke-width:3;stroke-linecap:round;opacity:.9}.avatar-signal{stroke-width:1.4;opacity:.42}.npc-avatar span{position:absolute;right:18px;bottom:16px;z-index:3;color:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.62rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase}.npc-meta p{margin:0 0 3px;color:var(--paper-faint);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.69rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.npc-meta h2{margin:0;color:var(--paper);font-size:clamp(1.75rem,8vw,3.6rem);line-height:.95;letter-spacing:-.06em}.scene-stage{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;border-bottom:1px solid rgba(169,161,146,.14);background:radial-gradient(circle at 50% 42%,var(--aura),transparent 16rem),linear-gradient(180deg,#101612,#070b09);min-height:0;border:0;padding:0}.scene-stage .signal-grid{display:none}.npc-card{position:relative;z-index:2;display:grid;justify-items:center;text-align:center;width:100%;gap:0}.character-name{position:absolute;top:8px;left:16px;max-width:calc(100% - 32px);margin:0;padding:5px 10px;border:1px solid color-mix(in srgb,var(--accent) 60%,#263b32);border-radius:8px;background:#08120ff0;color:var(--paper);font:700 .85rem/1.4 Inter,ui-sans-serif,system-ui,sans-serif;overflow-wrap:anywhere;text-align:left}.npc-avatar--portrait{width:min(100%,512px);border:0;border-radius:0;box-shadow:none;background:none}.scene-stage .npc-avatar:not(.npc-avatar--portrait){margin:48px 0 40px}.menu-stage-card{position:relative;z-index:2;width:min(420px,calc(100% - 34px));border:1px solid rgba(169,161,146,.15);border-radius:18px;padding:clamp(22px,7vw,36px);text-align:left;background:linear-gradient(135deg,rgba(236,230,216,.055),transparent 42%),#060908ad;box-shadow:inset 0 1px #ece6d80b,0 24px 80px #00000059;margin:28px 0}.game-frame--viewport .scene-stage{min-height:0;height:100%}.game-frame--viewport .npc-card{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.game-frame--viewport .npc-meta{position:absolute;height:0;bottom:0}.game-frame--viewport .npc-avatar{height:100%;width:auto;max-width:100%;max-height:100%;aspect-ratio:1;margin:0}.game-frame--viewport .npc-avatar:not(.npc-avatar--portrait){height:min(100%,160px);align-self:center}.game-frame--viewport .menu-stage-card{margin:8px;padding:12px;max-height:100%;overflow:auto}.game-frame--viewport .menu-stage-card h2{font-size:1.5rem}.story-text,.dialogue-surface.npc{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.08rem,3.8vw,1.32rem);line-height:1.68}.story-text p{margin:0 0 1rem}.story-text p:last-child{margin-bottom:0}.story-line>p,.story-line blockquote{margin:0}.story-line .dialogue-speaker{color:var(--accent);font-size:.8rem;font-weight:700;font-family:Arial,sans-serif;margin-bottom:8px}.dialogue-surface{border-left-color:color-mix(in srgb,var(--accent) 72%,rgba(169,161,146,.14));color:var(--paper);box-shadow:inset 0 1px #ece6d809;position:relative;margin-top:-44px;min-height:0;padding:24px clamp(18px,4vw,30px);border:1px solid color-mix(in srgb,var(--accent) 60%,#263b32);border-left-width:1px;border-radius:14px;background:#08120ff5;overflow-wrap:anywhere;white-space:normal}.dialogue-surface.npc{font-size:clamp(1.25rem,2.8vw,1.375rem);line-height:1.5}.dialogue-surface.npc>div,.story-line blockquote,.story-line>p:not(.dialogue-speaker){white-space:pre-wrap}.dialogue-surface .dialogue-speaker{position:absolute;left:16px;bottom:100%;margin:0;padding:5px 18px;border:1px solid color-mix(in srgb,var(--accent) 60%,#263b32);border-bottom:0;border-radius:10px 10px 0 0;background:#10211b;color:var(--paper);font:700 .95rem/1.4 Inter,ui-sans-serif,system-ui,sans-serif}.menu-content .dialogue-surface{margin-top:0}.game-frame--viewport .dialogue-surface{min-height:0;margin:-16px 0 0;padding:20px 16px 12px;display:flex}.game-frame--viewport .dialogue-surface.npc{font-size:clamp(1.125rem,2.5vw,1.25rem);line-height:1.45}.game-frame--viewport .dialogue-copy{width:100%;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#5f897d #12251b;padding-right:8px}.dialogue-copy>p,.dialogue-copy>blockquote{margin:0}.dialogue-copy>p+p{margin-top:12px}.dialogue-copy:focus-visible{outline:2px solid #7eb5a8;outline-offset:2px}.quiet-resources{align-items:center;min-width:0;border-bottom:1px solid rgba(169,161,146,.1);color:var(--paper-faint);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:28px 0;padding:0;border:0;font-family:inherit;font-size:clamp(.72rem,2.7vw,.9rem);line-height:1.4;text-transform:none}.quiet-resources div{display:flex;min-width:0;flex-direction:column;align-items:center;gap:2px}.quiet-resources div+div:before{margin-right:8px;color:#a9a19252;content:none}.quiet-resources dt{color:#b9c2b8;font-size:clamp(.75rem,2vw,.8125rem)}.quiet-resources dd{margin:0;color:var(--paper);font-size:clamp(1.125rem,2.5vw,1.25rem);font-weight:750;font-variant-numeric:tabular-nums}.quiet-resources .credits dd{color:#e8b65e}.quiet-resources .influence dd{color:#7bc9c2}.quiet-resources .low dd{color:#ffb5a5}.game-frame--viewport .quiet-resources{margin:12px 0}.console-line{display:flex;margin:0;color:var(--paper-faint);text-transform:none;letter-spacing:.03em}.console-line span{border:1px solid rgba(95,168,160,.16);border-radius:999px;padding:5px 9px;background:#5fa8a00f}.choice-grid{display:grid;gap:10px}.choice-grid button{padding-block:12px;gap:12px;width:100%;min-height:54px;display:flex;align-items:center;justify-content:space-between;text-align:left}.choice-grid button:after{content:"→";opacity:.62}.quiz-choice-grid button{border-color:#ece6d833;color:var(--paper);background:#ffffff0a;box-shadow:none}.quiz-choice-grid button:not(:disabled):hover{border-color:#ece6d86b}.quiz-choice-grid button:not(:disabled):active{transform:none}.choice-grid button.choice-pending{border-color:var(--accent);color:var(--paper);background:color-mix(in srgb,var(--accent) 24%,#101512);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent),0 10px 28px #00000038}.choice-grid button.choice-correct{border-color:#5fa8a0d1;color:#d8fffa;background:linear-gradient(180deg,#5fa8a052,#5fa8a024)}.choice-grid button.choice-wrong{border-color:#d6482ed1;color:#ffd2c7;background:linear-gradient(180deg,#d6482e4d,#d6482e21)}.choice-grid button:disabled:not(.choice-pending):not(.choice-correct):not(.choice-wrong){filter:saturate(.5)}.scene-actions .primary{background:#dda34c;box-shadow:none}.scene-actions .primary:disabled{opacity:1;background:#897045;color:#ece0c7;border-color:#a08a60}.scene-actions .secondary{border-color:#3e6a62;background:#102922;color:#e1ede4}.scene-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:10px}.scene-action-secondary,.scene-action-primary{min-width:0;display:grid}.scene-actions button{width:100%;min-width:0;min-height:48px;padding:10px 8px;border-radius:10px;font-size:clamp(.8rem,3vw,1rem);font-weight:750;overflow-wrap:normal;word-break:normal;text-wrap:balance}.scene-action-progress{display:block;margin:0 0 10px;text-align:center;color:#b9c2b8;font-size:.8rem}.scene-actions button[aria-busy=true]{cursor:progress}.scene-choices{margin-bottom:12px}.scene-choices button{border-color:#ece6d833;color:var(--paper);background:#ffffff0a;box-shadow:none}.scene-choices button,.quiz-choice-grid button{font-weight:750;border-radius:10px}.quiz-choice-grid{margin-top:12px}.scene-controls{min-height:0;position:relative}.game-frame--viewport .scene-controls{display:flex;flex-direction:column;gap:8px}.game-frame--viewport .scene-controls>.scene-action-area{margin-top:auto;flex:none}.game-frame--viewport .scene-choices,.game-frame--viewport .quiz-choice-grid{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;margin:0}.game-frame--viewport .scene-choices{flex:1}.game-frame--viewport .scene-choices button,.game-frame--viewport .quiz-choice-grid button{min-height:48px}.game-frame--viewport .quiz-controls .console-line{flex:none}.game-frame--viewport .quiz-choice-grid{flex:1}.negotiation-form label{color:var(--paper-dim);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.negotiation-form{display:grid;gap:12px}.reply-field{position:relative}.reply-field textarea{display:block;min-height:112px;padding-bottom:40px}.reply-field textarea::placeholder{color:#9aa69d}.reply-footer{position:absolute;bottom:10px;left:14px;right:20px;display:flex;justify-content:space-between;gap:12px;color:#b8c2b9;font-size:.75rem;pointer-events:none}.negotiation .secondary.leverage:disabled{background-image:none}.influence-control{display:grid;grid-template-columns:minmax(0,1fr) 44px;min-width:0;border:1px solid #3e6a62;border-radius:10px;background:#102922}.negotiation .influence-control .leverage{border:0;border-radius:9px 0 0 9px;background:transparent;padding-inline:6px}.negotiation .influence-control .influence-info{width:44px;min-height:46px;padding:0;border:0;border-radius:0 9px 9px 0;color:#9cd4ce;background:transparent;font-size:1.3rem}.influence-control:focus-within{border-color:#82bdb3}.scene-actions .influence-control .leverage{min-height:46px;padding-block:8px}.influence-help{margin:0;padding:12px 16px;border-radius:10px;background:#13231c;color:#d0d9cf;font-size:.85rem}.counteroffer{margin:0 0 12px;color:#d8c59e;font-size:.85rem}.game-frame--viewport .reply-field{flex:1;min-height:0}.game-frame--viewport .reply-field textarea{height:100%;min-height:0;resize:none}.game-frame--viewport .counteroffer{position:absolute;top:8px;left:14px;right:14px;font-size:.75rem;margin:0}.game-frame--viewport .reply-field:has(.counteroffer) textarea{padding-top:36px}.game-frame--viewport .influence-notices{position:absolute;z-index:6;bottom:58px;left:0;right:0;max-height:calc(100% - 58px);overflow:auto;border-radius:10px;box-shadow:0 6px 24px #0008}.influence-notices:empty{display:none}.counter.warn,.error-banner{color:#ffd2c7}.error-banner{margin:0 0 12px;border:1px solid rgba(255,210,199,.28);border-radius:12px;padding:11px 13px;background:#d6482e1c;position:relative;z-index:4}.console-panel>.error-banner{margin-top:-24px}.console-panel:has(>.error-banner) .dialogue-surface{margin-top:24px}.game-frame--viewport .error-banner{flex:none;max-height:68px;overflow:auto;margin:0 0 8px;font-size:.8rem}.game-frame--viewport .console-panel:has(>.error-banner) .dialogue-surface{margin-top:0}@media(min-width:760px){.shell{padding-block:22px}.console-panel{padding:16px}}@media(max-width:560px){.shell{padding:0}.entry-panel h1{font-size:clamp(2.35rem,13vw,4rem);letter-spacing:-.07em}.entry-actions{grid-template-columns:1fr;flex-direction:column;align-items:stretch}.primary,.secondary,.ghost,.choice-grid button,.status-card button{width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
