:root{--bg: #17141f;--surface: #1f1a2c;--surface-raised: #261f38;--ink: #ece4d6;--ink-dim: #a89dbd;--ember: #c97a3d;--ember-soft: rgba(201, 122, 61, .16);--violet: #8a6aa8;--border: #33293f;--header-height: 56px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{overscroll-behavior-y:contain}body{margin:0;background:radial-gradient(ellipse 120% 80% at 50% -10%,#241c33 0%,var(--bg) 55%);color:var(--ink);font-family:Inter,sans-serif;min-height:100vh;overscroll-behavior-y:contain}.app-header{position:fixed;top:0;left:0;right:0;z-index:50;padding-top:env(safe-area-inset-top);background:#17141fd1;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.app-header-inner{max-width:600px;margin:0 auto;height:var(--header-height);display:flex;align-items:center;padding:0 12px}.app-header-back{background:none;border:none;color:var(--ink);display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;cursor:pointer;transition:background .15s}.app-header-back:active{background:var(--surface-raised);transform:scale(.92)}.app-header-spacer{width:36px;flex-shrink:0}.app-header-titles{flex:1;text-align:center;overflow:hidden;display:flex;flex-direction:column;justify-content:center}.app-header-title{font-family:Fraunces,serif;font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-header-subtitle{font-size:11px;color:var(--ink-dim);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-content{max-width:600px;margin:0 auto;padding:calc(var(--header-height) + env(safe-area-inset-top) + 20px) 16px calc(env(safe-area-inset-bottom) + 32px)}.book{width:100%}.kicker{font-size:13px;color:var(--violet);margin-bottom:6px}h1.title{font-family:Fraunces,serif;font-weight:600;font-size:27px;margin:0 0 4px}.chapter-name{font-family:Fraunces,serif;font-style:italic;font-size:15px;color:var(--ink-dim);margin:0 0 24px}.page{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:38px 32px;position:relative;overflow:hidden;box-shadow:0 8px 30px #00000040}.page:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--ember),transparent 70%)}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-transition{animation:page-in .28s ease-out}.story-text{font-family:Fraunces,serif;font-size:18px;line-height:1.7}.story-text p{margin:0 0 16px}.story-text p:last-child{margin-bottom:0}.choices{margin-top:30px;display:flex;flex-direction:column;gap:10px}.choice-btn{text-align:left;background:var(--surface-raised);border:1px solid var(--border);border-left:3px solid var(--violet);border-radius:0 8px 8px 0;color:var(--ink);font-family:Inter,sans-serif;font-size:15px;font-weight:500;padding:14px 18px;cursor:pointer;transition:border-left-color .15s,background .15s,transform .1s}.choice-btn:hover{border-left-color:var(--ember);background:#2a2239}.choice-btn:active{transform:scale(.98);background:#2a2239}.choice-btn:focus-visible{outline:2px solid var(--ember);outline-offset:2px}.ending-tag{display:inline-block;margin-top:26px;font-size:13px;color:var(--ember);background:var(--ember-soft);padding:5px 12px;border-radius:3px}.restart-btn{margin-top:20px;background:none;border:1px solid var(--border);color:var(--ink-dim);font-family:Inter,sans-serif;font-size:14px;padding:10px 18px;border-radius:8px;cursor:pointer;transition:transform .1s}.restart-btn:hover{color:var(--ink);border-color:var(--violet)}.restart-btn:active{transform:scale(.97)}.path{margin-top:18px;font-size:12px;color:var(--ink-dim);display:flex;flex-wrap:wrap;gap:6px}.path span{padding:2px 8px;border:1px solid var(--border);border-radius:10px}.narrator{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px}.narrator select{background:var(--surface-raised);color:var(--ink);border:1px solid var(--border);border-radius:3px;font-family:Inter,sans-serif;font-size:13px;padding:6px 8px;max-width:180px}.narrator-btn{background:var(--surface-raised);border:1px solid var(--border);color:var(--ink);font-family:Inter,sans-serif;font-size:13px;font-weight:500;padding:7px 14px;border-radius:8px;cursor:pointer;transition:transform .1s}.narrator-btn:hover{border-color:var(--ember)}.narrator-btn:active{transform:scale(.96)}.narrator-toggle{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-dim);margin-left:auto;cursor:pointer}.hero{position:relative;margin:-20px -16px 28px;height:260px;overflow:hidden}.hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;transform:scale(1.05)}.hero-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(23,20,31,.2) 0%,var(--bg) 92%)}.hero-content{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:0 20px 22px}.hero-kicker{font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--ember);margin-bottom:6px}.hero-headline{font-family:Fraunces,serif;font-size:26px;line-height:1.2;margin:0 0 6px;max-width:320px}.hero-sub{font-size:13px;color:var(--ink-dim);margin:0}.catalog-section{margin-bottom:30px}.catalog-section-title{font-family:Fraunces,serif;font-size:17px;margin:0 0 12px;padding:0 2px}.hscroll{display:flex;gap:14px;overflow-x:auto;padding:2px 2px 10px;margin:0 -2px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.hscroll::-webkit-scrollbar{display:none}.hscroll-card{flex:0 0 auto;width:158px;scroll-snap-align:start;cursor:pointer;background:none;border:none;padding:0;text-align:left;color:inherit;font-family:inherit}.hscroll-cover{width:158px;height:158px;border-radius:12px;overflow:hidden;position:relative;margin-bottom:8px;border:1px solid var(--border);box-shadow:0 6px 18px #0000004d;transition:transform .12s}.hscroll-card:active .hscroll-cover{transform:scale(.96)}.hscroll-cover img{width:100%;height:100%;object-fit:cover;display:block}.hscroll-progress-badge{position:absolute;top:8px;left:8px;font-size:10px;font-weight:600;letter-spacing:.02em;color:var(--ink);background:#17141fbf;border:1px solid var(--border);border-radius:20px;padding:3px 8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hscroll-title{font-family:Fraunces,serif;font-size:14px;line-height:1.3;margin:0 0 3px}.hscroll-meta{font-size:11px;color:var(--ink-dim);margin:0}
