:root{--ink: #f3e9d2;--ink-dim: #c9b993;--ink-faint: #9d8f70;--gold: #d9b56a;--gold-hi: #f2d79b;--panel: rgba(18, 12, 22, .82);--panel-solid: #1a1220;--line: rgba(217, 181, 106, .38);--violet: #6d4a8f;--serif: "Cormorant Garamond", Georgia, serif;--display: "Cinzel", "Cormorant Garamond", serif;--ui-scale: 1}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#0c0810;color:var(--ink);font-family:var(--serif);font-size:calc(17px * var(--ui-scale))}body.large-ui{--ui-scale: 1.2}#stage{position:fixed;inset:0}#stage canvas{display:block;width:100%;height:100%}.hidden{display:none!important}button{font-family:inherit;color:inherit}kbd{display:inline-block;min-width:1.6em;padding:0 .35em;margin:0 .12em;border:1px solid var(--line);border-radius:4px;font-family:var(--serif);font-size:.85em;line-height:1.5;text-align:center;color:var(--ink);background:#00000040}.btn{cursor:pointer;border:1px solid var(--gold);background:#1e122699;padding:.55em 1.3em;border-radius:999px;font-size:1rem;letter-spacing:.04em;transition:background .2s,color .2s,box-shadow .2s}.btn:hover,.btn:focus-visible{background:var(--gold);color:#1a1020;outline:none;box-shadow:0 0 18px #f2d79b59}.btn-primary{font-family:var(--display);font-size:1.05rem;padding:.75em 2em}.btn-small{font-size:.85rem;padding:.3em .9em}.btn-ghost{border-color:transparent}.icon-btn{cursor:pointer;background:none;border:none;font-size:1rem;padding:.3em .45em;border-radius:6px;color:var(--ink)}.icon-btn:hover,.icon-btn:focus-visible{color:var(--gold-hi);background:#d9b56a1f;outline:none}.intro{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,#3c22468c,#08050ceb 70%);transition:opacity 1.2s ease;z-index:20}.intro.fade{opacity:0;pointer-events:none}.intro-inner{text-align:center;padding:2rem;max-width:760px}.crest{color:var(--gold);width:140px;margin:0 auto -.4rem}.logo{font-family:var(--display);font-weight:500;font-size:clamp(2.6rem,7vw,5.2rem);letter-spacing:.12em;margin:0;color:var(--gold-hi);text-shadow:0 0 30px rgba(242,200,120,.35)}.tagline{font-style:italic;font-size:1.35rem;color:var(--ink-dim);margin:.4rem 0 2.2rem}.load-wrap{width:min(360px,80vw);margin:0 auto}.load-bar{height:2px;background:#ffffff14;overflow:hidden;border-radius:2px}#load-fill{height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--gold-hi));transition:width .3s}.load-text{font-size:.95rem;color:var(--ink-faint);margin-top:.8rem}.enter-wrap{animation:rise 1s ease both}.intro-opts{display:flex;gap:1.6rem;justify-content:center;margin-top:1.4rem;font-size:.95rem;color:var(--ink-dim)}.intro-opts select,.menu select{background:var(--panel-solid);color:var(--ink);border:1px solid var(--line);border-radius:6px;font-family:inherit;font-size:.95rem;margin-left:.4em;padding:.1em .3em}.intro-keys{margin-top:1.6rem;color:var(--ink-faint);font-size:.95rem}.credit{margin-top:2.2rem;font-size:.85rem;letter-spacing:.03em;color:var(--ink-faint);font-style:italic}.menu .credit{margin-top:1.2rem;text-align:center}@keyframes rise{0%{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}.hud{position:fixed;inset:0;pointer-events:none;z-index:5}.hud button{pointer-events:auto}.crosshair{position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#fff0d28c;box-shadow:0 0 4px #0009;transition:transform .15s,background .15s}.crosshair.active{transform:scale(1.8);background:var(--gold-hi)}body.free-cursor .crosshair{opacity:0}.prompt{position:absolute;left:50%;top:calc(50% + 34px);transform:translate(-50%);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:.35em 1em;font-size:1rem;white-space:nowrap;max-width:80vw;overflow:hidden;text-overflow:ellipsis;backdrop-filter:blur(6px)}.prompt b{color:var(--gold-hi);font-weight:600}.prompt i{color:var(--ink-dim)}.place{position:absolute;left:50%;top:14%;transform:translate(-50%);text-align:center;opacity:0;transition:opacity 1.2s ease;text-shadow:0 2px 12px rgba(0,0,0,.85)}.place.show{opacity:1}#place-name{display:block;font-family:var(--display);font-size:1.9rem;letter-spacing:.1em;color:var(--gold-hi)}#place-tag{display:block;font-style:italic;font-size:1.1rem;color:var(--ink)}.search-pill{position:absolute;top:22px;right:24px;display:flex;align-items:center;gap:.6em;padding:.55em 1.1em;min-width:320px;border-radius:999px;border:1px solid var(--line);background:#0e09128c;backdrop-filter:blur(6px);cursor:pointer;font-size:1rem;font-style:italic;color:var(--ink-dim)}.search-pill span{flex:1;text-align:left}.search-pill:hover{border-color:var(--gold);color:var(--ink)}.keys{position:absolute;left:22px;bottom:20px;display:grid;grid-template-columns:auto auto;gap:.35em 1.4em;font-size:.9rem;color:var(--ink-dim);text-shadow:0 1px 6px #000;transition:opacity 1.5s}.keys.dim{opacity:.25}.guide-bar{position:absolute;left:50%;bottom:120px;transform:translate(-50%);display:flex;align-items:center;gap:.8em;padding:.5em .6em .5em 1.2em;border-radius:999px;background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(6px);pointer-events:auto}#guide-text{font-style:italic;color:var(--gold-hi)}.toast{position:absolute;left:50%;top:22px;transform:translate(-50%);padding:.45em 1.2em;border-radius:999px;background:var(--panel);border:1px solid var(--line);opacity:0;transition:opacity .4s;font-size:.95rem}.toast.show{opacity:1}.panel{position:fixed;z-index:10;background:var(--panel);border:1px solid var(--line);border-radius:14px;backdrop-filter:blur(10px);box-shadow:0 20px 60px #0000008c}.search{top:70px;right:24px;width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 110px);display:flex;flex-direction:column;padding:.6rem .6rem .4rem;animation:rise .25s ease both}.search-head{display:flex;align-items:center;gap:.6em;padding:.2em .5em;border-bottom:1px solid var(--line);color:var(--gold)}.search-head input{flex:1;background:none;border:none;outline:none;color:var(--ink);font-family:var(--serif);font-size:1.3rem;padding:.4em 0}.chips{display:flex;flex-wrap:wrap;gap:.35em;padding:.7em .4em .4em}.chip{cursor:pointer;border:1px solid var(--line);background:none;border-radius:999px;padding:.15em .75em;font-size:.88rem;color:var(--ink-dim)}.chip:hover,.chip.on{color:#1a1020;background:var(--gold);border-color:var(--gold)}.results{list-style:none;margin:0;padding:.2em;overflow-y:auto;flex:1}.results li{display:grid;grid-template-columns:10px 1fr auto;gap:.75em;align-items:center;padding:.55em .6em;border-radius:8px;cursor:pointer}.results li:hover,.results li.sel{background:#d9b56a21}.results .swatch{width:8px;height:34px;border-radius:2px}.results .r-title{font-size:1.08rem;font-weight:600;line-height:1.2}.results .r-sub{font-size:.9rem;color:var(--ink-dim)}.results .r-where{font-size:.8rem;color:var(--ink-faint);text-align:right;font-style:italic}.results .r-audio{color:var(--gold-hi);font-style:normal}.results .empty{display:block;color:var(--ink-faint);font-style:italic;cursor:default}.search-foot{margin:.3em .6em .2em;font-size:.82rem;color:var(--ink-faint);font-style:italic}.book{top:70px;right:24px;width:min(460px,calc(100vw - 32px));max-height:calc(100vh - 200px);overflow-y:auto;padding:1.2rem 1.3rem;animation:rise .3s ease both}.book-close{position:absolute;top:8px;right:8px}.book-top{display:grid;grid-template-columns:120px 1fr;gap:1rem}#book-cover{width:120px;height:180px;border-radius:3px 6px 6px 3px;box-shadow:4px 6px 18px #0009}.eyebrow{margin:0;font-family:var(--display);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}.book h2{margin:.2em 0 .1em;font-size:1.5rem;line-height:1.12;font-weight:600}.author{margin:0;font-style:italic;color:var(--ink-dim)}.mark{margin:.35em 0 .6em;font-size:.8rem;color:var(--ink-faint);letter-spacing:.04em}.actions{display:flex;flex-wrap:wrap;gap:.4em}.actions a{text-decoration:none}.blurb{margin:1em 0 .5em;font-size:1.05rem;line-height:1.45}.subjects{margin:.2em 0 .8em;font-size:.85rem;color:var(--ink-faint);font-style:italic}.book-lists h3{font-family:var(--display);font-weight:500;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:1em 0 .35em;border-top:1px solid var(--line);padding-top:.8em}.mini-list{list-style:none;margin:0;padding:0}.mini-list li{display:flex;align-items:center;gap:.6em;padding:.3em .4em;border-radius:6px;cursor:pointer;font-size:.98rem}.mini-list li:hover{background:#d9b56a1f}.mini-list .dot{width:6px;height:20px;border-radius:2px;flex:none}.mini-list .who{color:var(--ink-faint);font-style:italic;font-size:.88rem;margin-left:auto;text-align:right}.mini-list .here{color:var(--gold-hi)}.player{position:fixed;left:50%;bottom:18px;transform:translate(-50%);z-index:8;display:grid;grid-template-columns:minmax(150px,220px) auto minmax(200px,1fr) auto;align-items:center;gap:1rem;width:min(980px,calc(100vw - 32px));padding:.55rem 1rem;background:var(--panel);border:1px solid var(--line);border-radius:999px;backdrop-filter:blur(10px);box-shadow:0 10px 40px #00000080}.pl-info{display:flex;flex-direction:column;min-width:0}.pl-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pl-chapter{font-size:.85rem;font-style:italic;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pl-controls{display:flex;align-items:center;gap:.1rem}.pl-play{width:42px;height:42px;border-radius:50%!important;border:1px solid var(--gold)!important;font-size:1.05rem!important}.pl-progress{display:flex;align-items:center;gap:.6em;font-size:.82rem;color:var(--ink-dim);font-variant-numeric:tabular-nums}.pl-progress input{flex:1;accent-color:var(--gold)}.pl-extra{display:flex;align-items:center;gap:.15rem}.pl-chip{font-size:.85rem!important}.pl-chip.on{color:var(--gold-hi)}.caption{position:fixed;left:50%;bottom:96px;transform:translate(-50%);z-index:7;max-width:min(860px,calc(100vw - 40px));padding:.4em 1em;text-align:center;font-size:1.25rem;line-height:1.4;background:#0a060eb3;border-radius:10px;text-shadow:0 1px 2px #000}.caption .w-now{color:var(--gold-hi)}.caption .w-past{color:var(--ink)}.caption .w-next{color:var(--ink-faint)}.welcome{position:fixed;left:50%;bottom:40px;transform:translate(-50%);z-index:9;text-align:center;width:min(820px,calc(100vw - 40px));animation:rise .8s ease both}.welcome-line{margin:0 0 .7rem;font-size:1.35rem;line-height:1.45;padding:.4em 1em;background:#0a060e9e;border-radius:12px;text-shadow:0 1px 3px #000;min-height:1.4em}.welcome-line .w-now{color:var(--gold-hi)}.welcome-line .w-next{color:var(--ink-faint)}.welcome-actions{display:flex;justify-content:center;gap:.6rem}.drawer{left:50%;bottom:92px;transform:translate(-50%);width:min(620px,calc(100vw - 32px));max-height:46vh;display:flex;flex-direction:column;animation:rise .25s ease both}.drawer-tabs{display:flex;gap:.2em;padding:.5em .6em 0;border-bottom:1px solid var(--line)}.drawer-tabs button{cursor:pointer;background:none;border:none;padding:.5em .9em;font-size:.95rem;color:var(--ink-dim);border-bottom:2px solid transparent}.drawer-tabs button.active{color:var(--gold-hi);border-bottom-color:var(--gold)}.drawer-body{overflow-y:auto;padding:.6em 1em 1em;font-size:1rem}.drawer-body ol,.drawer-body ul{list-style:none;margin:0;padding:0}.drawer-body li{display:flex;justify-content:space-between;gap:1em;padding:.45em .5em;border-radius:6px;cursor:pointer}.drawer-body li:hover{background:#d9b56a1f}.drawer-body li.now{color:var(--gold-hi)}.drawer-body .t{color:var(--ink-faint);font-variant-numeric:tabular-nums}.drawer-body .del{color:var(--ink-faint);background:none;border:none;cursor:pointer}.transcript p{line-height:1.7;margin:0 0 .9em}.transcript span{cursor:pointer;border-radius:3px}.transcript span:hover{background:#d9b56a2e}.transcript span.now{color:#1a1020;background:var(--gold-hi)}.transcript h4,.credits h4{font-family:var(--display);font-weight:500;letter-spacing:.1em;color:var(--gold);margin:.8em 0 .4em;font-size:.85rem;text-transform:uppercase}.credits p{margin:.2em 0 .6em;line-height:1.45}.credits .note{font-style:italic;color:var(--ink-dim)}.credits ul.intent{list-style:disc;padding-left:1.2em}.credits ul.intent li{display:list-item;cursor:default;padding:.15em 0}.credits ul.intent li:hover{background:none}.menu{left:50%;top:50%;transform:translate(-50%,-50%);width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow-y:auto;padding:1.6rem 1.8rem;text-align:center;animation:rise .25s ease both}.menu h2{font-family:var(--display);font-weight:500;letter-spacing:.14em;color:var(--gold-hi);margin:0 0 1rem}.menu-grid{display:grid;gap:.75rem;text-align:left}.menu-grid .btn{justify-self:center;margin-bottom:.5rem}.menu-grid label{display:grid;grid-template-columns:1fr 1.2fr;align-items:center;gap:1em;font-size:1rem}.menu-grid label.row{display:flex;gap:.6em}.menu-grid input[type=range]{accent-color:var(--gold)}.menu-about{text-align:left;margin-top:1rem;border-top:1px solid var(--line);padding-top:.7rem;color:var(--ink-dim)}.menu-about summary{cursor:pointer;color:var(--gold);font-family:var(--display);letter-spacing:.08em;font-size:.9rem}.menu-about p{line-height:1.5;font-size:.98rem}@media (max-width: 900px){.player{grid-template-columns:1fr auto;border-radius:18px}.pl-progress{grid-column:1 / -1}.search-pill{min-width:0}.search-pill span{display:none}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
