:root{--bg: #0c0a09;--ink: #e7e2da;--ink-dim: #a39b8f;--accent: #37b8a0;--danger: #b3362b;--panel: rgba(10, 8, 7, .82);--panel-border: rgba(231, 226, 218, .14);--font-ui: "Avenir Next", "Segoe UI", system-ui, -apple-system, sans-serif;--font-story: Georgia, "Times New Roman", serif}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--font-ui);overflow:hidden;overscroll-behavior:none;-webkit-text-size-adjust:100%}#app{position:fixed;inset:0;height:100dvh;touch-action:manipulation;user-select:none;-webkit-user-select:none}button{font-family:inherit;touch-action:manipulation}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hidden{display:none!important}.stage{position:absolute;inset:0;background:var(--bg)}.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1;transition:opacity .3s ease}.bg[src=""],.bg:not([src]){opacity:0}.bg-fading{opacity:.35}.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 45%,rgba(0,0,0,.55) 100%),linear-gradient(to top,rgba(0,0,0,.65) 0%,transparent 35%)}.video-layer{position:absolute;inset:0;background:#000;z-index:30}.video-layer.held{z-index:15}.video-layer video{width:100%;height:100%;object-fit:contain}.video-hint{position:absolute;inset:0;display:grid;place-items:center;color:var(--ink);font-size:1.1rem;letter-spacing:.12em;text-transform:uppercase;background:#00000073;pointer-events:none}.skip-btn{position:absolute;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));padding:10px 18px;min-height:44px;background:#0000008c;color:var(--ink);border:1px solid var(--panel-border);border-radius:6px;font-size:.9rem;letter-spacing:.08em;cursor:pointer}.hud{position:absolute;inset-inline:0;bottom:0;z-index:20;display:flex;flex-direction:column;align-items:center;padding:12px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));padding-bottom:max(12px,env(safe-area-inset-bottom))}.dialogue{width:min(100%,860px);background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;padding:16px 18px 22px;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:rise .22s ease}.speaker{color:var(--accent);font-size:.82rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px}.line-text{font-family:var(--font-story);font-size:1.08rem;line-height:1.55;text-shadow:0 1px 2px rgba(0,0,0,.8)}.continue-hint{position:absolute;right:16px;bottom:8px;color:var(--ink-dim);font-size:.7rem;animation:bob 1.4s ease-in-out infinite}.dialogue{position:relative}.dialogue.captions-hidden{opacity:0}.cinematic .hud{padding-bottom:max(30px,env(safe-area-inset-bottom))}.cinematic .dialogue:not(.card){width:min(90%,680px);background:none;border:none;border-radius:0;padding:0 8px;backdrop-filter:none;-webkit-backdrop-filter:none;text-align:center}.cinematic .dialogue:not(.card) .speaker{margin-bottom:3px;font-size:.7rem;opacity:.85;text-shadow:0 1px 3px rgba(0,0,0,.95)}.cinematic .dialogue:not(.card) .line-text{font-size:clamp(1rem,2.7vw,1.32rem);line-height:1.32;text-shadow:0 0 4px rgba(0,0,0,.92),0 1px 2px rgba(0,0,0,1),0 2px 7px rgba(0,0,0,.8)}.cinematic .dialogue:not(.card) .continue-hint{display:none}.choices{width:min(100%,720px);display:flex;flex-direction:column;gap:10px;animation:rise .22s ease}.split{position:absolute;inset:0;z-index:55;display:flex;flex-direction:column;background:#000;animation:rise .22s ease}.split-timer{flex:none;height:5px;background:#ffffff1f}.split-timer-fill{height:100%;width:100%;background:var(--accent);transition:width .1s linear}.split-timer-critical .split-timer-fill{background:#e5484d}.split-panels{flex:1;display:flex;min-height:0}.split-panel{position:relative;flex:1;min-width:0;display:flex;align-items:flex-end;justify-content:center;padding:0;border:none;background:#000;cursor:pointer;overflow:hidden}.split-panel+.split-panel{border-left:2px solid rgba(0,0,0,.7)}.split-panel-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .26s ease,filter .26s ease}.split-panel-label{position:relative;z-index:1;width:100%;box-sizing:border-box;padding:18px 16px calc(20px + env(safe-area-inset-bottom));text-align:center;font-size:1.02rem;font-weight:600;line-height:1.25;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.9);background:linear-gradient(to top,#000000e0 30%,#0000)}.split-panel:hover .split-panel-img,.split-panel:focus-visible .split-panel-img{transform:scale(1.04)}.split-panel:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}@keyframes ken-burns{0%{transform:scale(1.001)}to{transform:scale(1.09)}}.cinematic .split-panel-img{animation:ken-burns 14s ease-out both;transform-origin:50% 42%}.cinematic .split-panel:first-child .split-panel-img{transform-origin:32% 45%}.cinematic .split-panel:last-child .split-panel-img{transform-origin:68% 45%}.cinematic .split-panel:only-child .split-panel-img{transform-origin:50% 45%}@media(orientation:portrait){.split-panels{flex-direction:column}.split-panel+.split-panel{border-left:none;border-top:2px solid rgba(0,0,0,.7)}}.timer{height:6px;border-radius:3px;background:#e7e2da2e;overflow:hidden}.timer-fill{height:100%;width:100%;background:var(--accent);transition:width .1s linear,background-color .2s ease}.timer-critical .timer-fill{background:var(--danger)}.prompt{font-family:var(--font-story);font-style:italic;color:var(--ink-dim);text-align:center;font-size:.98rem;text-shadow:0 1px 2px rgba(0,0,0,.8)}.choice-buttons{display:flex;flex-direction:column;gap:8px;max-height:min(62dvh,440px);overflow-y:auto;-webkit-overflow-scrolling:touch}.choice-btn{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:12px 14px;background:var(--panel);border:1px solid var(--panel-border);border-radius:8px;color:var(--ink);font-size:1rem;text-align:left;cursor:pointer;transition:border-color .12s ease,background-color .12s ease,transform 80ms ease}.choice-btn:hover:not(:disabled),.choice-btn:focus-visible{border-color:var(--accent);background:#1a1510eb}.choice-btn:active:not(:disabled){transform:scale(.99)}.choice-btn:disabled{opacity:.45;cursor:default}.choice-key{flex:0 0 auto;width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--panel-border);border-radius:5px;color:var(--ink-dim);font-size:.8rem}.choice-label{flex:1}.dialogue.card{border-color:var(--accent);background:#080a09eb}.dialogue.card .line-text{font-style:italic;text-align:center;color:var(--ink)}.blip{position:absolute;top:max(70px,calc(env(safe-area-inset-top) + 58px));right:max(14px,env(safe-area-inset-right));z-index:40;padding:6px 12px;background:#0000008c;border:1px solid var(--accent);border-radius:999px;color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.12em;pointer-events:none;animation:rise .2s ease}.title-desc{margin:0;max-width:620px;color:var(--ink-dim);font-family:var(--font-story);font-size:.98rem;line-height:1.6}.back-link{position:absolute;top:max(16px,env(safe-area-inset-top));left:max(16px,calc(env(safe-area-inset-left) + 4px));color:var(--ink-dim);font-size:.85rem;letter-spacing:.08em;text-decoration:none}.back-link:hover,.back-link:focus-visible{color:var(--accent)}.library{position:absolute;inset:0;overflow-y:auto;padding:max(32px,env(safe-area-inset-top)) 24px max(32px,env(safe-area-inset-bottom));padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));background:radial-gradient(ellipse at 50% 0%,rgba(55,184,160,.12),transparent 55%),linear-gradient(to bottom,#15110d,#0c0a09 60%)}.library-head{text-align:center;margin:8px 0 28px}.brandmark{margin:0 0 6px;font-family:var(--font-story);font-style:italic;font-weight:700;font-size:1.35rem;letter-spacing:.06em;text-transform:none;color:var(--accent)}.library-kicker{margin:0;color:var(--accent);letter-spacing:.4em}.library-title{margin:4px 0 0;font-family:var(--font-story);font-size:clamp(1.8rem,6vw,3rem);letter-spacing:.04em}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:18px;max-width:1100px;margin:0 auto}.library-shelf-title{max-width:1100px;margin:34px auto 14px;color:var(--ink-dim);font-size:.82rem;letter-spacing:.26em;text-transform:uppercase;font-weight:600}.library-empty{text-align:center;color:var(--ink-dim);font-family:var(--font-story);font-size:1.05rem}.game-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--panel-border);border-radius:12px;background:var(--panel);color:var(--ink);text-decoration:none;transition:border-color .14s ease,transform .12s ease}.game-card:hover,.game-card:focus-visible{border-color:var(--accent);transform:translateY(-3px)}.game-card-cover{aspect-ratio:16 / 9;background:#0a0807;overflow:hidden}.game-card-cover-blank{background:radial-gradient(ellipse at 30% 20%,color-mix(in srgb,var(--accent) 30%,transparent),transparent 60%),linear-gradient(135deg,#1a1512,#0c0a09)}.game-card-img{width:100%;height:100%;object-fit:cover;display:block}.game-card-body{padding:14px 16px 18px;display:flex;flex-direction:column;gap:6px}.game-card-sub{margin:0;color:var(--ink-dim);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase}.game-card-title{margin:0;font-family:var(--font-story);font-size:1.4rem;color:var(--accent)}.game-card-desc{margin:0;color:var(--ink-dim);font-size:.92rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.toast{position:absolute;top:max(18px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:40;max-width:min(92vw,560px);padding:10px 18px;background:var(--panel);border:1px solid var(--accent);border-radius:8px;color:var(--ink);font-size:.92rem;text-align:center;pointer-events:none;animation:rise .26s ease}.mute-btn,.fullscreen-btn,.captions-btn,.voice-btn,.pause-btn,.debug-btn,.exit-btn{position:absolute;top:max(12px,env(safe-area-inset-top));z-index:50;width:44px;height:44px;display:grid;place-items:center;background:#00000073;border:1px solid var(--panel-border);border-radius:50%;font-size:1.1rem;cursor:pointer;color:var(--ink)}.mute-btn{right:max(12px,env(safe-area-inset-right))}.fullscreen-btn{right:calc(max(12px,env(safe-area-inset-right)) + 52px)}.fullscreen-btn:hover,.fullscreen-btn:focus-visible{border-color:var(--accent);color:var(--accent)}.captions-btn{right:calc(max(12px,env(safe-area-inset-right)) + 104px);font-size:.78rem;font-weight:700;letter-spacing:.06em}.captions-btn:hover,.captions-btn:focus-visible{border-color:var(--accent);color:var(--accent)}.captions-btn[aria-pressed=false]{opacity:.5}.voice-btn{right:calc(max(12px,env(safe-area-inset-right)) + 156px);font-size:.95rem}.voice-btn:hover,.voice-btn:focus-visible{border-color:var(--accent);color:var(--accent)}.voice-btn[aria-pressed=false]{opacity:.5}.pause-btn{right:calc(max(12px,env(safe-area-inset-right)) + 208px);font-size:1rem}.pause-btn:hover,.pause-btn:focus-visible{border-color:var(--accent);color:var(--accent)}.debug-btn{right:calc(max(12px,env(safe-area-inset-right)) + 260px);font-size:1rem}.debug-btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.exit-btn{left:max(12px,env(safe-area-inset-left));color:var(--ink);text-decoration:none;font-size:1.6rem;line-height:1;padding-bottom:3px;touch-action:manipulation}.exit-btn:hover,.exit-btn:focus-visible{border-color:var(--accent);color:var(--accent)}.screen{position:absolute;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:14px;padding:24px;padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));padding-bottom:max(24px,env(safe-area-inset-bottom));background:radial-gradient(ellipse at 50% 30%,rgba(60,45,25,.25),transparent 60%),linear-gradient(to bottom,#15110d,#0c0a09 70%);text-align:center;overflow-y:auto}.screen:before,.screen:after{content:"";flex:1 0 0}.kicker{margin:0;color:var(--ink-dim);font-size:.8rem;letter-spacing:.3em;text-transform:uppercase}.game-title{margin:0;font-family:var(--font-story);font-size:clamp(2.6rem,10vw,4.5rem);font-weight:700;letter-spacing:.06em;color:var(--ink);text-shadow:0 2px 18px rgba(201,162,39,.25)}.ending-title{margin:0;font-family:var(--font-story);font-size:clamp(1.8rem,7vw,3rem);color:var(--accent)}.ending-desc{margin:0;max-width:560px;font-family:var(--font-story);font-size:1.05rem;line-height:1.6;color:var(--ink)}.recap-heading{margin:14px 0 0;color:var(--ink-dim);font-size:.78rem;letter-spacing:.22em;text-transform:uppercase}.recap{display:flex;flex-direction:column;gap:6px;max-width:560px}.recap-item{font-size:.9rem;color:var(--ink-dim)}.recap-item:before{content:"✦ ";color:var(--accent)}.menu{display:flex;flex-direction:column;gap:12px;margin-top:18px;width:min(100%,320px)}.menu-btn{min-height:52px;padding:14px 22px;background:transparent;border:1px solid var(--panel-border);border-radius:8px;color:var(--ink);font-size:1.02rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:border-color .12s ease,color .12s ease}.menu-btn:hover,.menu-btn:focus-visible{border-color:var(--accent);color:var(--accent)}a.menu-btn{display:grid;place-items:center;text-decoration:none;font-size:.92rem}.preload{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:20px;width:min(100%,320px);opacity:1;transition:opacity .5s ease}.preload.hidden{display:none}.preload.done{opacity:0}.preload-bar{width:100%;height:3px;border-radius:3px;background:var(--panel-border);overflow:hidden}.preload-fill{height:100%;width:0%;background:var(--accent);transition:width .26s ease}.preload-label{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim)}.more-games{width:min(100%,720px);margin-top:26px}.more-games .shelf:not(.hidden)~.shelf:not(.hidden){margin-top:26px}.more-games-heading{margin:0 0 12px;color:var(--ink-dim);font-size:.78rem;letter-spacing:.22em;text-transform:uppercase}.more-games-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.more-games .game-card{width:min(100%,300px);text-align:left}.game-card-compact .game-card-body{padding:10px 14px 14px}.game-card-compact .game-card-title{font-size:1.15rem}@media(max-height:480px){.dialogue{padding:10px 14px 18px}.line-text{font-size:1rem;line-height:1.45}.choice-buttons{max-height:56dvh;gap:6px}.choice-btn{min-height:44px;padding:8px 12px}.hud{padding-top:6px}}@media(min-width:900px){.line-text{font-size:1.22rem}.choice-btn{font-size:1.05rem}.hud{padding:24px;padding-bottom:max(24px,env(safe-area-inset-bottom))}}.rotate-hint{display:none;position:fixed;z-index:55;bottom:max(14px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);align-items:center;gap:8px;padding:8px 14px;font-size:.82rem;color:var(--ink);background:#000000a8;border:1px solid var(--panel-border);border-radius:999px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);cursor:pointer}.rotate-hint .rotate-ico{font-size:1.15rem;display:inline-block;animation:rotate-tip 2.6s ease-in-out infinite}@keyframes rotate-tip{0%,55%,to{transform:rotate(0)}72%{transform:rotate(90deg)}}@media(prefers-reduced-motion:reduce){.rotate-hint .rotate-ico{animation:none}}@media(max-aspect-ratio:3 / 4){.stage{display:flex;flex-direction:column;justify-content:safe center;overflow-y:auto;-webkit-overflow-scrolling:touch}.bg{position:relative;inset:auto;flex:none;width:100%;height:auto;aspect-ratio:16 / 9;object-fit:contain}.video-layer{inset:0 0 auto;height:56.25vw}.video-layer video{object-fit:contain}.vignette{bottom:auto;height:56.25vw}.hud{position:relative;inset:auto;flex:none;padding-top:16px}.cinematic .hud{padding-top:18px}.split{position:relative;inset:auto;flex:none}.split-panels{flex:none;flex-direction:column}.split-panel{flex:none;width:100%;aspect-ratio:16 / 9;align-items:flex-end}.split-panel+.split-panel{border-left:none;border-top:2px solid rgba(0,0,0,.7)}.split-panel-img{object-fit:contain}.split-panels[data-count="3"] .split-panel{aspect-ratio:21 / 9}.split-panels[data-count="3"] .split-panel-img{object-fit:cover}.rotate-hint:not(.dismissed){display:flex}.stage:has(.split:not(.hidden)) .bg,.stage:has(.split:not(.hidden)) .vignette{display:none}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.debug-panel{position:fixed;top:8px;left:8px;z-index:200;display:flex;flex-direction:column;gap:6px;max-width:240px;padding:8px;font-size:12px;line-height:1.3;color:#fff;background:#0c0a09eb;border:1px solid rgba(255,255,255,.25);border-radius:6px}.debug-close{align-self:flex-end;width:22px;height:22px;margin:-2px -2px 0 0;font:inherit;font-size:16px;line-height:1;color:#fff;background:#ffffff14;border:1px solid rgba(255,255,255,.3);border-radius:4px;cursor:pointer}.debug-panel .debug-select,.debug-panel .debug-jump{font:inherit;padding:4px 6px;color:#fff;background:#ffffff14;border:1px solid rgba(255,255,255,.3);border-radius:4px;cursor:pointer}.debug-panel .debug-flags{display:flex;flex-direction:column;gap:2px}.debug-panel .debug-flag{display:flex;align-items:center;gap:5px;cursor:pointer}
