:root{--bg: #120c08;--bg-2: #1c120b;--panel: rgba(30, 21, 13, .88);--panel-solid: #21170e;--ink: #f3eef7;--ink-dim: #b8a894;--ink-faint: #7a6f60;--line: rgba(255, 255, 255, .09);--gold: #e6b45c;--gold-2: #f5d28a;--accent: #9f7cff;--accent-2: #6ea8fe;--good: #63d3a0;--paper: #f3e9d2;--paper-edge: #e6d7b8;--paper-ink: #33261a;--paper-dim: #7a6448;--paper-gold: #8a6a2f;--serif: "Fraunces", Georgia, "Times New Roman", serif;--sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--radius: 14px;--ease: cubic-bezier(.22, 1, .36, 1);--topbar-h: 78px}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{font-family:var(--sans);color:var(--ink);background:radial-gradient(1200px 800px at 50% -10%,#2d1c0c 0%,var(--bg) 58%) fixed;-webkit-font-smoothing:antialiased;overscroll-behavior:none}#scene-container{position:fixed;top:0;right:0;bottom:0;left:0}#scene-container.library-fallback{background:url(/library-fallback.webp) center / cover no-repeat}body.library-fallback .hint{display:none}canvas{display:block}.icon{width:1em;height:1em;flex:none;display:inline-block;vertical-align:-.125em}.topbar{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;gap:18px;padding:16px 22px;background:linear-gradient(180deg,#0d0a08eb,#0d0a0800);pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:13px;min-width:260px}.brand-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;font-family:var(--serif);font-weight:700;font-size:26px;color:#241a08;background:linear-gradient(160deg,var(--gold-2),var(--gold) 60%,#c98f2f);box-shadow:0 8px 24px -6px #e6b45c8c}.brand-text h1{margin:0;font-family:var(--serif);font-size:26px;font-weight:600;letter-spacing:.2px}.brand-text h1 i{font-style:italic;color:var(--gold)}.brand-text p{margin:1px 0 0;font-size:11px;color:var(--ink-dim);letter-spacing:.2px}.searchbox{position:relative;flex:1;min-width:0;max-width:520px;margin:0 auto}.searchbox input{width:100%;padding:12px 46px 12px 40px;border-radius:999px;border:1px solid var(--line);background:#ffffff0f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--ink);font:500 14px/1 var(--sans);outline:none;transition:border-color .2s,background .2s,box-shadow .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbox input::-webkit-search-decoration,.searchbox input::-webkit-search-cancel-button,.searchbox input::-webkit-search-results-button,.searchbox input::-webkit-search-results-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:none}.searchbox input::placeholder{color:var(--ink-faint)}.searchbox input:focus{border-color:var(--gold);background:#ffffff17;box-shadow:0 0 0 3px #e6b45c2e}.searchbox-icon{position:absolute;z-index:1;left:16px;top:50%;transform:translateY(-50%);font-size:17px;color:var(--ink-faint)}.searchbox-icon .icon{width:17px;height:17px}.search-clear{position:absolute;right:9px;top:50%;transform:translateY(-50%);width:28px;height:28px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:#ffffff17;color:var(--ink-dim);font:600 13px var(--sans);line-height:1;cursor:pointer;transition:background .15s,color .15s;-webkit-tap-highlight-color:transparent}.search-clear:hover,.search-clear:focus-visible{background:#ffffff2e;color:var(--ink)}.search-clear[hidden]{display:none}.search-clear .icon{width:14px;height:14px}.ghost-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#ffffff0f;color:var(--ink-dim);font-weight:700;display:grid;place-items:center;cursor:pointer;transition:all .2s}.ghost-btn .icon{width:18px;height:18px}.ghost-btn:hover{color:var(--ink);border-color:var(--gold)}.volume-card{--volume-accent: var(--gold);position:fixed;z-index:19;width:min(250px,calc(100vw - 24px));padding:14px 16px 13px;border:1px solid color-mix(in srgb,var(--volume-accent) 48%,transparent);border-radius:14px;background:#140e0ae6;box-shadow:0 18px 48px #0000006b,inset 3px 0 0 var(--volume-accent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s;pointer-events:none}.volume-card.visible{opacity:1;visibility:visible;transform:none;transition:opacity .2s ease,transform .2s ease}.volume-card-kicker{margin:0 0 3px;color:var(--volume-accent);font:700 10px var(--sans);letter-spacing:.12em;text-transform:uppercase}.volume-card-title{margin:0;color:var(--ink);font:600 21px var(--serif)}.volume-card-samples{display:grid;gap:4px;margin:9px 0 0;padding:9px 0 0 16px;border-top:1px solid var(--line);color:var(--ink-dim);font-size:11px}.hint{position:fixed;bottom:102px;left:50%;transform:translate(-50%);z-index:15;display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font-size:12px;color:var(--ink-dim);background:#0d0a0899;border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;transition:opacity .3s ease}body.reading .hint{opacity:0;pointer-events:none}.hint-dot{width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 10px var(--good);animation:pulse 2.4s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.letter-nav{position:fixed;bottom:42px;left:50%;transform:translate(-50%);z-index:20;display:flex;gap:5px;padding:8px 10px;border-radius:16px;background:#140e09cc;border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);max-width:calc(100vw - 24px);overflow-x:auto}.letter-nav button{min-width:34px;height:26px;padding:0 8px;flex:0 0 auto;white-space:nowrap;border:0;border-radius:8px;background:transparent;color:var(--ink-faint);font:700 12px var(--sans);cursor:pointer;transition:all .15s}.letter-nav button:hover{color:var(--ink);background:#ffffff14}.letter-nav button:focus,.letter-nav button:focus-visible{color:var(--ink);background:#ffffff1a;outline:2px solid var(--gold);outline-offset:2px}.letter-nav.attention{border-color:var(--gold);animation:rail-attention 1.4s ease-out}@keyframes rail-attention{0%{box-shadow:0 0 #e6b45c00}20%{box-shadow:0 0 0 5px #e6b45c73}70%{box-shadow:0 0 0 5px #e6b45c4d}to{box-shadow:0 0 #e6b45c00}}.letter-nav button:disabled{opacity:.35;cursor:default}.letter-nav button:disabled:hover{color:var(--ink-faint);background:transparent}.letter-nav button.active{color:#241a08;background:linear-gradient(160deg,var(--gold-2),var(--gold))}.site-foot{position:fixed;right:0;bottom:0;left:0;z-index:18;display:flex;justify-content:center;padding:6px 16px calc(6px + env(safe-area-inset-bottom));background:linear-gradient(0deg,#0d0a08eb,#0d0a0800);color:var(--ink-dim);font-size:11px;line-height:1.3;pointer-events:none;transition:opacity .25s ease}.site-foot[hidden]{display:none}.site-foot-line{display:flex;align-items:center;margin:0}.site-foot-count{color:var(--ink);font-weight:600}.site-foot-note:before{content:"·";margin:0 7px;color:var(--ink-faint)}body.reading .site-foot,body.map-mode .site-foot{opacity:0}.book-spread{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;visibility:hidden;opacity:0;perspective:1600px;transition:opacity .45s ease,visibility 0s linear .45s}.book-spread.open{visibility:visible;opacity:1;transition:opacity .45s ease}.spread-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 45%,#0a070480,#050302d9);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.spread-book{position:relative;width:min(940px,calc(100vw - 32px));transform:translateY(34px) scale(.92) rotateX(7deg);transform-style:preserve-3d;transition:transform .6s var(--ease)}.book-spread.open .spread-book{transform:none}.spread-pages{position:relative;display:grid;grid-template-columns:1fr 1fr;border-radius:12px;box-shadow:0 60px 100px -20px #000000d9,0 0 0 1px #00000073,0 2px 0 3px #d8c8a4;transform-style:preserve-3d}.page{min-height:min(60vh,540px);max-height:68vh;overflow-y:auto;padding:42px 40px 34px;color:var(--paper-ink);scrollbar-color:rgba(120,95,60,.45) transparent}.page::-webkit-scrollbar-thumb{background:#785f3c73}.page-left{border-radius:12px 3px 3px 12px;background:linear-gradient(100deg,var(--paper-edge) 0%,#f7efdc 14%,var(--paper) 85%,#eadbb9 100%);box-shadow:inset -22px 0 34px -22px #5a401e8c}.page-right{border-radius:3px 12px 12px 3px;background:linear-gradient(260deg,var(--paper-edge) 0%,#f7efdc 14%,var(--paper) 85%,#eadbb9 100%);box-shadow:inset 22px 0 34px -22px #5a401e8c}.spread-crease{position:absolute;left:50%;top:0;bottom:0;width:3px;transform:translate(-50%);background:linear-gradient(90deg,transparent,rgba(60,40,15,.4),transparent);pointer-events:none}.page-flip{position:absolute;left:50%;top:0;width:50%;height:100%;transform-origin:left center;transform-style:preserve-3d;transition:transform .54s cubic-bezier(.35,.65,.35,1);z-index:6;pointer-events:none}.page-flip.hidden{display:none}.flip-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;background:var(--paper) repeating-linear-gradient(0deg,transparent 0 32px,rgba(120,95,60,.12) 32px 33px);box-shadow:inset -18px 0 30px -18px #5a401e80}.flip-front{border-radius:3px 12px 12px 3px}.flip-back{transform:rotateY(180deg);border-radius:12px 3px 3px 12px;box-shadow:inset 18px 0 30px -18px #5a401e80}.spread-close{position:absolute;top:-16px;right:-16px;z-index:8;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#1a130ceb;color:var(--ink-dim);display:grid;place-items:center;cursor:pointer;transition:all .2s}.spread-close .icon{width:16px;height:16px}.spread-close:hover{color:var(--ink);border-color:var(--gold)}.spread-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding:0 6px}.spread-foot-group{display:flex;align-items:center;gap:8px;min-width:0}.spread-back{border-color:#e6b45c73;color:var(--gold-2);white-space:nowrap}.spread-back:hover{border-color:var(--gold);background:#e6b45c24;color:var(--gold-2)}.spread-back[hidden]{display:none}.spread-nav{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:999px;border:1px solid var(--line);background:#1a130cbf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--ink-dim);font:600 12.5px var(--sans);cursor:pointer;transition:all .18s}.spread-nav .icon{width:14px;height:14px}.spread-nav:hover{color:var(--ink);border-color:var(--gold);transform:translateY(-1px)}.spread-nav:disabled{opacity:.35;cursor:default}.spread-nav:disabled:hover{color:var(--ink-dim);border-color:var(--line);transform:none}#spread-counter{font-size:12px;color:var(--ink-faint);font-variant-numeric:tabular-nums;text-shadow:0 1px 4px rgba(0,0,0,.8)}.idx-left{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px}.idx-kicker{margin:0;text-transform:uppercase;letter-spacing:3px;font-size:10.5px;font-weight:600;color:var(--paper-gold)}.idx-ornament{margin:4px 0 2px;color:var(--paper-gold);font-size:15px}.idx-range{margin:0;font-family:var(--serif);font-weight:600;font-size:clamp(52px,8vw,84px);line-height:1;color:#3a2a12}.idx-roman{margin:2px 0 0;font-family:var(--serif);font-style:italic;font-size:16px;color:var(--paper-dim)}.idx-chips{display:flex;gap:14px;margin:16px 0 6px}.idx-chips span{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;font-family:var(--serif);font-weight:700;font-size:24px;color:color-mix(in srgb,var(--chip) 62%,#3a2a12);border:2px solid color-mix(in srgb,var(--chip) 62%,#3a2a12);background:color-mix(in srgb,var(--chip) 14%,transparent)}.idx-count{margin:6px 0 0;font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--paper-dim)}.idx-note{margin:18px 0 0;font-family:var(--serif);font-style:italic;font-size:14px;line-height:1.6;color:var(--paper-dim)}.contents-title{margin:0;font-family:var(--serif);font-weight:600;font-size:27px;color:#3a2a12}.contents-sub{margin:4px 0 0;font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:var(--paper-dim)}.contents-list{list-style:none;margin:18px 0 0;padding:0}.contents-row{display:flex;align-items:baseline;width:100%;padding:7px 4px;border:0;background:transparent;cursor:pointer;font-family:var(--serif);text-align:left;border-radius:6px;transition:all .15s}.contents-row:hover{transform:translate(5px)}.contents-row:hover .c-term{color:color-mix(in srgb,var(--letter-color) 58%,#3a2a12)}.c-term{font-size:17.5px;font-weight:600;color:var(--paper-ink);transition:color .15s}.c-dots{flex:1;margin:0 9px;border-bottom:2px dotted rgba(120,95,60,.4);transform:translateY(-4px)}.c-cat{font-size:12.5px;font-style:italic;color:var(--paper-dim);white-space:nowrap}.spread-book.mode-index .page{padding-bottom:16px}.spread-book.mode-index .page-right{display:flex;flex-direction:column;overflow-y:hidden}.spread-book.mode-index .idx-right{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.spread-book.mode-index .contents-list{flex:1 1 auto;min-height:0;overflow-y:auto}.idx-pager{display:flex;align-items:center;justify-content:center;gap:4px;row-gap:8px;flex-wrap:wrap;flex:0 0 auto;margin:14px -26px 0;padding:12px 22px 13px;background:linear-gradient(180deg,#e6d7b800,#e6d7b880 45%,#e6d7b8e0)}.idx-pager button{font-family:var(--serif);border:0;background:transparent;color:#5a4326;cursor:pointer;-webkit-tap-highlight-color:transparent}.idx-pager button:disabled{opacity:.3;cursor:default}.pager-arrow{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;transition:background .15s,transform .15s}.pager-arrow .icon{width:18px;height:18px}.pager-arrow:hover:not(:disabled){background:#5a43261f}.pager-arrow:active:not(:disabled){transform:scale(.88)}.pager-label{margin:0 2px 0 3px;font-family:var(--serif);font-style:italic;font-size:13px;letter-spacing:.3px;color:#8a6a3a}.pager-nums{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}.pager-num{min-width:26px;height:26px;padding:0 6px;display:grid;place-items:center;border-radius:7px;font-weight:600;font-size:14px;color:#6b5230;transition:background .15s,color .15s,transform .15s}.pager-num:hover:not(:disabled){background:#5a43261f;color:#33261a}.pager-num.current{background:#3a2a12;color:#f3e9d2;box-shadow:0 2px 5px #3a2a1266}.idx-pager button:disabled.pager-num.current{opacity:1}.pg-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:28px}.pg-head .pg-kicker{margin:0}.pg-share{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid rgba(120,95,60,.45);background:#785f3c14;color:var(--paper-gold);font:600 10.5px var(--sans);letter-spacing:1.1px;text-transform:uppercase;cursor:pointer;transition:background .15s,border-color .15s,transform .12s;-webkit-tap-highlight-color:transparent}.pg-share:hover,.pg-share:focus-visible{background:#785f3c2b;border-color:#785f3cb8;outline:none}.pg-share:active{transform:scale(.96)}.pg-share .icon{width:13px;height:13px}.pg-breadcrumb{margin:0;font:600 10.5px var(--sans);letter-spacing:.08em;color:var(--paper-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spread-actions{display:flex;align-items:center;gap:8px}.spread-actions:empty{display:none}.spread-action{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:8px 15px;border-radius:999px;border:1px solid var(--line);background:#1a130cbf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--ink-dim);font:600 12.5px var(--sans);white-space:nowrap;cursor:pointer;transition:all .18s;-webkit-tap-highlight-color:transparent}.spread-action .icon{width:14px;height:14px}.spread-action:hover,.spread-action:focus-visible{color:var(--ink);border-color:var(--gold);transform:translateY(-1px);outline:none}.spread-action:active{transform:scale(.97)}.spread-action:disabled{opacity:.35;cursor:default}.spread-action:disabled:hover{color:var(--ink-dim);border-color:var(--line);transform:none}.spread-action.pg-ask{color:var(--accent-2);border-color:#6ea8fe66;background:#6ea8fe1a}.spread-action.pg-ask:hover,.spread-action.pg-ask:focus-visible{border-color:var(--accent-2);background:#6ea8fe38}.spread-action.pg-map{color:#8fd8f2;border-color:#1f6f8f8c;background:#1f6f8f2e}.spread-action.pg-map:hover,.spread-action.pg-map:focus-visible{border-color:#8fd8f2;background:#1f6f8f4d}.spread-action.pg-flip-back{color:var(--gold-2);border-color:#e6b45c73}.spread-action.pg-flip-back:hover,.spread-action.pg-flip-back:focus-visible{border-color:var(--gold);background:#e6b45c24}.pg-kicker{margin:0 0 6px;text-transform:uppercase;letter-spacing:2.5px;font-size:10.5px;font-weight:600;color:var(--paper-gold)}.pg-type-chip{display:inline-block;margin-left:8px;padding:1px 8px 2px;border-radius:999px;border:1px solid rgba(120,95,60,.45);background:#785f3c1a;letter-spacing:1.2px;font-size:9.5px;color:#6b4e2a;vertical-align:1px}.pg-term{margin:0;font-family:var(--serif);font-weight:600;font-size:clamp(30px,4.4vw,42px);line-height:1.05;color:#2e2114}.pg-aka{margin:7px 0 0;font-family:var(--serif);font-style:italic;font-size:13px;color:var(--paper-dim)}.pg-rule{margin:16px 0 18px;width:64px;border-top:1px solid rgba(120,95,60,.55);border-bottom:3px double rgba(120,95,60,.35);height:3px}.pg-def{margin:0;font-family:var(--serif);font-size:18.5px;line-height:1.58;color:#3a2c1a}.pg-def:first-letter{font-family:var(--serif);font-weight:600;font-size:3em;line-height:.85;float:left;padding:5px 10px 0 0;color:#7a4a1e}.pg-details{margin:0;font-size:14.5px;line-height:1.78;color:#4a3a26;white-space:pre-line}.pg-citation{margin-top:24px;padding-top:14px;border-top:1px solid rgba(120,95,60,.45)}.pg-citation h3{margin:0 0 8px;font-size:11px;letter-spacing:1.8px;text-transform:uppercase;color:var(--paper-gold)}.pg-citation-text{margin:0 0 8px;font-family:var(--serif);font-style:italic;font-size:13.5px;line-height:1.6;color:var(--paper-dim)}.pg-citation-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#7a5a1e;text-decoration:none}.pg-citation-link:hover{text-decoration:underline}.pg-citation-link .icon{width:13px;height:13px}.pg-citation h3 .icon,.pg-highlights h3 .icon,.pg-articles h3 .icon,.pg-links h3 .icon,.pg-suggested h3 .icon{width:13px;height:13px;vertical-align:-.15em}.pg-flip-page{display:inline-flex;align-items:center;gap:6px;margin:20px 0 0;padding:8px 14px;border-radius:999px;border:1px solid rgba(120,95,60,.45);background:#785f3c14;color:var(--paper-gold);font:600 11px var(--sans);letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:background .15s,border-color .15s,transform .12s;-webkit-tap-highlight-color:transparent}.pg-flip-page:hover,.pg-flip-page:focus-visible{background:#785f3c2b;border-color:#785f3cb8;outline:none}.pg-flip-page:active{transform:scale(.96)}.pg-flip-page .icon{width:14px;height:14px}.pg-highlights,.pg-articles,.pg-links{margin-top:20px;padding-top:14px;border-top:1px solid rgba(120,95,60,.45)}.pg-highlights h3,.pg-articles h3,.pg-links h3{margin:0 0 10px;font-size:11px;letter-spacing:1.8px;text-transform:uppercase;color:var(--paper-gold)}.pg-highlights ul,.pg-articles ul,.pg-links ul{margin:0;padding:0;list-style:none}.pg-highlights li{position:relative;margin:0 0 9px;padding-left:16px;font-size:14.5px;line-height:1.65;color:#4a3a26}.pg-highlights li:before{content:"❖";position:absolute;left:0;color:var(--paper-gold);font-size:9px;line-height:2.6}.pg-link-row{display:flex;flex-wrap:wrap;gap:7px}.pg-link-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid rgba(120,95,60,.42);border-radius:999px;background:#785f3c17;color:#6b4e2a;font:600 12px var(--sans);text-decoration:none;transition:background .15s,border-color .15s}.pg-link-chip .icon{width:14px;height:14px;flex:0 0 auto}.pg-link-chip:hover,.pg-link-chip:focus-visible{background:#785f3c2e;border-color:#785f3cbf;outline:none}.pg-link-chip.is-search{border-style:dashed;background:#785f3c0a;color:#7a6a52;font-weight:500}.pg-link-chip.is-search:hover,.pg-link-chip.is-search:focus-visible{background:#785f3c21}.pg-link-kind{width:11px;height:11px;opacity:.7}.pg-articles li{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;margin:0 0 8px;font-size:14px}.pg-articles a{display:inline-flex;align-items:center;gap:4px;color:#7a5a1e;font-weight:600;text-decoration:none}.pg-articles a:hover{text-decoration:underline}.pg-articles a .icon{width:12px;height:12px;flex:0 0 auto}.pg-article-meta{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--paper-dim)}.pg-article-title{font-family:var(--serif)}.pg-related{margin-top:22px;padding-top:14px;border-top:1px solid rgba(120,95,60,.45)}.pg-group{margin-bottom:14px}.pg-group h3{margin:0 0 8px;font-size:11px;letter-spacing:1.8px;text-transform:uppercase;color:#6b4eaa}.pg-group-items{display:flex;flex-wrap:wrap;gap:6px}.related-chip{padding:6px 10px;border:1px solid rgba(107,78,170,.35);border-radius:999px;background:#9f7cff1f;color:var(--paper-ink);font:11px var(--sans);cursor:pointer}.related-chip:hover,.related-chip:focus-visible{background:#9f7cff3d;border-color:#6b4eaa;outline:none}.xp-left .story-open{font-size:18px;margin-top:20px}.xp-figure{margin:22px 0 0;padding:12px;border:1px solid rgba(120,95,60,.35);border-radius:10px;background:#fffaee8c}.xp-right .xp-figure{margin-top:20px}.xp-figure figcaption{margin-top:8px;font:italic 12px/1.45 var(--serif);color:var(--paper-dim)}.xp-figure figcaption a{color:var(--paper-gold)}.xp-photo img{display:block;width:100%;height:auto;max-height:260px;object-fit:contain;border-radius:6px;background:#785f3c0f}.xp-person .xp-photo img{max-height:220px;width:auto;max-width:100%;margin:0 auto}.dg-svg{display:block;width:100%;height:auto}.dg-node rect{fill:#fbf4e3;stroke:#5a4128;stroke-width:1.2}.dg-node text{font:500 11px var(--sans);fill:#33261a}.dg-edge{fill:none;stroke:#8a6a2f;stroke-width:1.3}.dg-arrow{fill:#8a6a2f}.dg-edge-label{font:italic 10px var(--serif);fill:#7a4a1e;paint-order:stroke;stroke:#f7efdc;stroke-width:3px}.xp-right .xp-section{margin-top:18px;padding-top:14px;border-top:1px solid rgba(120,95,60,.35)}.xp-right .pg-story-term+.xp-section{margin-top:0;padding-top:0;border-top:0}.xp-section h3{margin:0 0 8px;font-size:11px;letter-spacing:1.8px;text-transform:uppercase;color:var(--paper-gold)}.xp-section h3 .icon{width:13px;height:13px;vertical-align:-.15em}.xp-section p,.xp-section li{font-size:14.5px;line-height:1.65;color:#4a3a26}.xp-section p{margin:0}.xp-list,.xp-items,.xp-works,.xp-timeline{margin:0;padding:0;list-style:none}.xp-list li,.xp-items li,.xp-works li{position:relative;margin:0 0 7px;padding-left:16px}.xp-list li:before,.xp-items li:before,.xp-works li:before{content:"❖";position:absolute;left:0;color:var(--paper-gold);font-size:9px;line-height:2.6}.xp-steps{counter-reset:xp-step}.xp-steps li{counter-increment:xp-step;padding-left:26px}.xp-steps li:before{content:counter(xp-step);top:2px;width:18px;height:18px;border-radius:50%;border:1px solid rgba(120,95,60,.55);font:600 10px/17px var(--sans);text-align:center;color:var(--paper-gold)}.xp-items strong{color:#33261a;font-weight:600}.xp-items span:before{content:"— ";color:var(--paper-dim)}.xp-timeline{border-left:1px solid rgba(120,95,60,.45);margin-left:4px}.xp-timeline li{position:relative;margin:0 0 10px;padding-left:16px}.xp-timeline li:before{content:"";position:absolute;left:-4px;top:8px;width:7px;height:7px;border-radius:50%;background:var(--paper-gold)}.xp-when{display:block;font:600 11px var(--sans);letter-spacing:1px;color:#7a4a1e}.xp-works a{color:#5a3d18;text-decoration:none;border-bottom:1px solid rgba(120,95,60,.35)}.xp-works a:hover{border-color:var(--paper-gold)}.xp-works .icon{width:11px;height:11px;margin-left:2px}.xp-year{color:var(--paper-dim);font-size:12.5px}.xp-formula{margin:0;padding:10px 12px;overflow-x:auto;border-radius:8px;background:#785f3c14;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:#33261a;white-space:pre-wrap}.xp-lang-tabs{display:inline-flex;gap:4px;margin:0 0 14px;padding:3px;border-radius:999px;background:#785f3c1a}.xp-lang-tabs button{border:0;border-radius:999px;padding:5px 12px;background:transparent;font:600 12px var(--sans);color:#5a3d18;cursor:pointer}.xp-lang-tabs button[aria-pressed=true]{background:#fffaf0;box-shadow:0 1px 3px #3c28142e}.xp-code{position:relative;margin:8px 0 0}.xp-code-lang{display:block;margin-bottom:3px;font:600 10.5px var(--sans);letter-spacing:1px;text-transform:uppercase;color:#7a4a1e}.xp-code pre{margin:0;padding:10px 12px;overflow-x:auto;border-radius:8px;background:#2b2118;color:#f6ead6;font:12.5px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre}.xp-right[data-lang=python] .xp-code:is([data-lang=javascript],[data-lang=typescript]){display:none}.xp-right[data-lang=javascript] .xp-has-js .xp-code[data-lang=python]{display:none}.xp-right[data-lang=javascript] .xp-kind-code.xp-has-py:not(.xp-has-js){opacity:.75}.xp-sources{margin:18px 0 0;font:italic 12px var(--serif);color:var(--paper-dim)}.xp-sources a{color:var(--paper-gold)}.xp-sources .icon{width:11px;height:11px}.story-left{display:flex;flex-direction:column;justify-content:flex-start;height:100%;padding-right:8px}.story-title{margin:6px 0 0;font-family:var(--serif);font-weight:600;font-size:clamp(34px,4.6vw,52px);line-height:1.02;color:#2e2114}.story-subject{margin:14px 0 0;font-family:var(--serif);font-style:italic;font-size:17px;color:var(--paper-dim)}.story-open{margin:26px 0 0;font-family:var(--serif);font-size:20px;line-height:1.5;color:#3a2c1a}.story-open:first-letter{font-family:var(--serif);font-weight:600;font-size:3em;line-height:.85;float:left;padding:5px 10px 0 0;color:#7a4a1e}.pg-story-term{margin:0 0 14px;text-transform:uppercase;letter-spacing:2.5px;font-size:11px;font-weight:600;color:var(--paper-gold)}.story-line{margin:0 0 12px;font-family:var(--serif);font-size:16.5px;line-height:1.72;color:#3a2c1a}.story-moral{margin:4px 0 0;padding:12px 16px;border-left:3px solid rgba(122,74,30,.5);background:#785f3c12;font-family:var(--serif);font-style:italic;font-size:16.5px;line-height:1.65;color:#4a3a26}.story-hl{background:#c4974938;color:#4a2e12;padding:0 3px;border-radius:3px;font-weight:600}.pg-story-end{margin:18px 0 0;text-align:center;font-size:16px;color:var(--paper-gold)}.pg-suggested{margin-top:22px;padding-top:14px;border-top:1px solid rgba(120,95,60,.45)}.pg-suggested h3{margin:0 0 10px;font-size:11px;letter-spacing:1.8px;text-transform:uppercase;color:var(--paper-gold)}.pg-trail{margin-top:20px;padding-top:14px;border-top:1px solid rgba(139,100,50,.28)}.pg-trail-loading,.pg-trail-note{margin:0 0 8px;color:var(--paper-dim);font-size:11px}.pg-trail-title{margin:0 0 6px;font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:#6b4eaa}.pg-trail-path{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.trail-chip{padding:6px 10px;border:1px solid rgba(107,78,170,.35);border-radius:999px;background:#9f7cff1f;color:var(--paper-ink);font:11px var(--sans);cursor:pointer}.trail-chip:hover,.trail-chip:focus-visible{background:#9f7cff3d;border-color:#6b4eaa;outline:none}.trail-arrow{color:#7a5fb0;font-size:12px}.suggested-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.suggested-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:8px;border:1px solid rgba(120,95,60,.3);background:#785f3c0d;cursor:pointer;text-align:left;transition:background .15s,border-color .15s}.suggested-row:hover,.suggested-row:focus-visible{background:#785f3c24;border-color:#785f3c99;outline:none}.s-term{font-family:var(--serif);font-weight:600;font-size:14px;color:#3a2c1a}.s-cat{flex:0 0 auto;font-size:10.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--paper-dim)}.results{position:fixed;top:calc(var(--topbar-h) + 6px);left:50%;transform:translate(-50%);width:min(560px,calc(100vw - 40px));z-index:45;max-height:58vh;overflow-y:auto;background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:18px;box-shadow:0 30px 60px #00000080;padding:10px;visibility:hidden;opacity:0;transition:opacity .2s ease,transform .25s var(--ease);transform:translate(-50%) translateY(-8px)}.results.open{visibility:visible;opacity:1;transform:translate(-50%) translateY(0)}.result-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:11px 12px;border-radius:12px;border:0;background:transparent;color:var(--ink);cursor:pointer;font-family:inherit}.result-item:hover,.result-item:focus-visible{background:#ffffff12;outline:none}.result-item .ri-letter{width:34px;height:34px;flex:0 0 auto;border-radius:9px;display:grid;place-items:center;font-family:var(--serif);font-weight:700;color:var(--letter-color, var(--accent));background:color-mix(in srgb,var(--letter-color, var(--accent)) 16%,transparent)}.result-item .ri-content{display:grid;flex:1;min-width:0;gap:2px}.result-item .ri-term{font-weight:600;font-size:14.5px}.result-item .ri-meta{font-size:10px;color:var(--gold);text-transform:uppercase;letter-spacing:.08em}.result-item .ri-excerpt{overflow:hidden;color:var(--ink-dim);font-size:11px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.result-item .ri-action{flex:none;color:var(--gold-2);font-size:10px;font-weight:700}.results-empty{padding:22px;text-align:center;color:var(--ink-dim);font-size:13.5px}.share-menu{position:fixed;z-index:60;min-width:236px;max-width:calc(100vw - 20px);padding:8px;display:flex;flex-direction:column;gap:2px;border-radius:14px;background:var(--panel-solid);border:1px solid var(--line);box-shadow:0 26px 52px #00000094;animation:share-in .16s var(--ease)}.share-menu[hidden]{display:none}@keyframes share-in{0%{opacity:0;transform:translateY(-5px) scale(.97)}to{opacity:1;transform:none}}.share-menu-title{margin:3px 8px 7px;font-size:10px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;color:var(--ink-faint)}.share-note{margin:0 6px 8px;padding:8px 10px;border-radius:9px;background:#e6b45c1a;border:1px solid rgba(230,180,92,.26);color:var(--gold-2);font-size:11.5px;line-height:1.5}.share-note strong{color:var(--ink);font-weight:700}.share-item{display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border:0;border-radius:10px;background:transparent;color:var(--ink);font:500 13.5px var(--sans);text-align:left;cursor:pointer;transition:background .14s,color .14s}.share-item:hover,.share-item:focus-visible{background:#ffffff17;outline:none}.share-item .si-icon{width:27px;height:27px;flex:0 0 auto;display:grid;place-items:center;border-radius:8px;background:#ffffff12;color:var(--gold-2);font-size:12.5px;font-weight:700;letter-spacing:0}.share-item .si-icon .icon{width:15px;height:15px}.share-item .si-label{display:block;font-weight:600}.share-item .si-sub{display:block;margin-top:1px;font-size:11px;color:var(--ink-faint)}.share-item.copied{background:#63d3a024;color:var(--good)}.share-item.copied .si-icon{color:var(--good);background:#63d3a029}.toast{position:fixed;left:50%;bottom:98px;z-index:70;max-width:min(440px,calc(100vw - 32px));padding:10px 18px;border-radius:999px;background:#1a130cf5;border:1px solid var(--line);box-shadow:0 20px 40px #00000080;color:var(--ink);font-size:13px;text-align:center;opacity:0;transform:translate(-50%) translateY(8px);pointer-events:none;transition:opacity .22s ease,transform .22s var(--ease)}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.help-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;visibility:hidden;opacity:0;transition:opacity .3s}.help-modal.open{visibility:visible;opacity:1}.help-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#050302bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.help-card{position:relative;width:min(560px,calc(100vw - 40px));max-height:86vh;overflow-y:auto;border-radius:20px;background:var(--panel-solid);border:1px solid var(--line);padding:34px 34px 28px}.help-card h2{font-family:var(--serif);margin:0 0 16px}.help-card ul{margin:0 0 16px;padding-left:20px;color:var(--ink-dim);line-height:1.8;font-size:14px}.help-card code{color:var(--gold);background:#e6b45c1a;padding:2px 6px;border-radius:6px}.help-foot{margin:0;color:var(--ink-faint);font-size:12.5px}.entry-close{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:#ffffff0f;color:var(--ink-dim);display:grid;place-items:center;cursor:pointer}.entry-close .icon{width:16px;height:16px}.entry-close:hover{color:var(--ink);border-color:var(--gold)}.view-toggle{display:flex;align-items:center;gap:7px;min-height:40px;padding:0 14px;border:1px solid rgba(159,124,255,.4);border-radius:999px;background:#9f7cff1a;color:var(--ink);font:600 12px var(--sans);cursor:pointer}.view-toggle:hover,.view-toggle:focus-visible,.view-toggle[aria-pressed=true]{border-color:var(--accent);background:#9f7cff38;outline:none}.view-toggle .icon{width:17px;height:17px;color:var(--accent-2)}.graph-view{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;visibility:hidden;opacity:0;background:radial-gradient(circle at 65% 35%,#17152b 0,#0b0911 55%,#070609);transition:opacity .28s ease,visibility 0s linear .28s}.graph-view.open{visibility:visible;opacity:1;transition:opacity .28s ease}#graph-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none;cursor:grab}#graph-canvas:active{cursor:grabbing}.graph-toolbar{position:absolute;top:calc(var(--topbar-h) + 12px);left:18px;z-index:2;display:flex;align-items:flex-start;gap:8px;width:min(460px,calc(100vw - 36px))}.graph-back{flex:none;display:flex;align-items:center;gap:4px;height:42px;padding:0 14px 0 10px;border:1px solid rgba(159,124,255,.3);border-radius:999px;background:#0c0a13d6;color:var(--ink);font:600 12px var(--sans);cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.graph-back .icon{width:16px;height:16px;color:var(--accent-2)}.graph-back:hover,.graph-back:focus-visible{border-color:var(--accent);background:#1e1834eb;outline:none}.graph-find{position:relative;flex:1;min-width:0}.graph-find-icon{position:absolute;z-index:1;left:14px;top:13px;width:16px;height:16px;color:var(--ink-faint);pointer-events:none}.graph-eyebrow,.graph-detail-kicker{margin:0 0 5px;color:var(--accent-2);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.graph-status{position:absolute;top:calc(var(--topbar-h) + 64px);left:22px;z-index:1;margin:0;max-width:calc(100vw - 44px);color:var(--ink-faint);font-size:11px;line-height:1.45;pointer-events:none}.graph-search-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.graph-search{width:100%;height:42px;padding:0 14px 0 38px;border:1px solid rgba(159,124,255,.3);border-radius:999px;background:#0c0a13d6;color:var(--ink);font:14px var(--sans);outline:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);-webkit-appearance:none;-moz-appearance:none;appearance:none}.graph-search::-webkit-search-cancel-button{filter:invert(.7)}.graph-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px #9f7cff26}.graph-term-list{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:min(340px,50vh);overflow-y:auto;padding:6px;border:1px solid rgba(159,124,255,.22);border-radius:16px;background:#0c0a13f0;box-shadow:0 22px 60px #00000073;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.graph-term-list[hidden]{display:none}.graph-term-empty{margin:0;padding:10px;color:var(--ink-faint);font-size:12px}.graph-term-row{width:100%;display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-height:40px;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.graph-term-row:hover,.graph-term-row:focus-visible{background:#9f7cff21;outline:none}.graph-term-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.graph-term-row small{flex:none;max-width:120px;overflow:hidden;color:var(--ink-faint);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.graph-detail{position:absolute;right:18px;bottom:18px;width:min(390px,calc(100vw - 36px));padding:18px;border:1px solid rgba(110,168,254,.25);border-radius:18px;background:#0c0a13e0;box-shadow:0 20px 60px #00000059;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.graph-detail-empty{margin:0;color:var(--ink-dim);font-size:13px}.graph-detail h2{margin:0;font:600 27px/1.12 var(--serif)}.graph-detail-meta{margin:8px 0 12px;color:var(--ink-dim);font-size:11px;line-height:1.45}.graph-related{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.graph-related button{padding:6px 9px;border:1px solid rgba(159,124,255,.25);border-radius:999px;background:#9f7cff14;color:var(--ink-dim);font:10px var(--sans);cursor:pointer}.graph-open-entry{width:100%;padding:10px 14px;border:0;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#0b0911;font:700 12px var(--sans);cursor:pointer}.graph-related button:hover,.graph-related button:focus-visible{background:#9f7cff33;color:var(--ink);outline:none}.graph-open-entry:hover,.graph-open-entry:focus-visible{filter:brightness(1.08);outline:2px solid var(--accent);outline-offset:2px}body.map-mode #scene-container{visibility:hidden}body.map-mode .hint,body.map-mode .letter-nav{opacity:0;pointer-events:none}body.map-mode .results,body.map-mode .archive-home{display:none}body.map-mode .searchbox{visibility:hidden}.explore-nav{position:relative}.explore-toggle{min-height:40px;display:flex;align-items:center;gap:7px;padding:0 14px;border:1px solid rgba(230,180,92,.35);border-radius:999px;background:#e6b45c14;color:var(--ink);font:600 12px var(--sans);cursor:pointer}.explore-toggle:hover,.explore-toggle:focus-visible,.explore-toggle[aria-expanded=true]{border-color:var(--gold);background:#e6b45c29;outline:none}.explore-toggle .icon{width:14px;height:14px;color:var(--gold)}.explore-menu{position:absolute;top:calc(100% + 9px);right:0;width:320px;padding:8px;border:1px solid rgba(230,180,92,.2);border-radius:16px;background:#18110bf7;box-shadow:0 24px 60px #00000080;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transform-origin:top right}.explore-menu:not([hidden]){animation:explore-pop .18s var(--ease)}@keyframes explore-pop{0%{opacity:0;transform:translateY(-6px) scale(.98)}}.explore-menu[hidden],.explore-menu-head{display:none}.explore-menu-group{margin:8px 10px 4px;color:var(--ink-faint);font:700 10px var(--sans);letter-spacing:.14em;text-transform:uppercase}.explore-menu-group:first-of-type{margin-top:4px}.explore-menu-group+.explore-menu-item{margin-top:0}.explore-menu-item+.explore-menu-group{margin-top:10px;padding-top:10px;border-top:1px solid rgba(230,180,92,.12)}.explore-menu-item{width:100%;display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 10px;border:0;border-radius:11px;background:transparent;color:var(--ink-dim);font:500 13px var(--sans);text-align:left;cursor:pointer}.explore-menu-icon{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;border:1px solid rgba(230,180,92,.2);background:#e6b45c12;color:var(--gold)}.explore-menu-icon .icon{width:17px;height:17px}.explore-menu-text{display:flex;flex-direction:column;gap:2px;min-width:0}.explore-menu-label{color:var(--ink);font-weight:600}.explore-menu-desc{color:var(--ink-faint);font-size:11px;line-height:1.3}.explore-menu-desc:empty{display:none}.explore-menu-item:hover,.explore-menu-item:focus-visible{background:#e6b45c1c;color:var(--ink);outline:none}.explore-menu-item:hover .explore-menu-icon,.explore-menu-item:focus-visible .explore-menu-icon{border-color:var(--gold);background:#e6b45c29}.explore-menu-item:disabled{opacity:.38;cursor:default}.archive-home{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:24px;pointer-events:none}.archive-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0806049e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:auto}.archive-card{position:relative;pointer-events:auto;width:min(430px,100%);max-height:min(78vh,700px);border:1px solid var(--line);border-radius:18px;background:linear-gradient(160deg,#22170df5,#160f09f0);box-shadow:0 30px 80px -20px #000000b3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);overflow:auto;animation:archive-card-in .28s var(--ease)}@keyframes archive-card-in{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}.archive-close{position:absolute;top:12px;right:12px;z-index:1;display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:50%;background:#140e09d1;color:var(--ink-dim);cursor:pointer;transition:all .2s}.archive-close .icon{width:16px;height:16px}.archive-close:hover,.archive-close:focus-visible{color:var(--ink);border-color:var(--gold);background:#281c10eb;outline:none}.archive-welcome{padding:26px 22px 24px}.archive-kicker,.archive-headline{padding-right:40px}.archive-kicker{margin:0 0 8px;font:600 11px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}.archive-headline{margin:0 0 10px;font-family:var(--serif);font-size:30px;font-weight:600;line-height:1.12;letter-spacing:.2px}.archive-count{margin:0 0 12px;font:600 13px var(--sans);color:var(--ink-dim)}.archive-value{margin:0 0 18px;font-size:14px;line-height:1.55;color:var(--ink-dim)}.archive-actions{display:grid;gap:10px}.archive-primary{padding:13px 16px;border:0;border-radius:12px;background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#241a08;font:700 14px var(--sans);cursor:pointer}.archive-primary:hover,.archive-primary:focus-visible{filter:brightness(1.06);outline:2px solid var(--gold);outline-offset:2px}.archive-secondary{display:flex;gap:10px}.archive-btn{flex:1 1 0;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#ffffff0f;color:var(--ink);font:600 13px var(--sans);cursor:pointer;transition:all .2s}.archive-btn:hover,.archive-btn:focus-visible{border-color:var(--gold);background:#e6b45c1f;outline:none}.archive-home.collapsed .archive-backdrop,.archive-home.collapsed .archive-card{display:none}.ask-view{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;visibility:hidden;opacity:0;transition:opacity .25s ease,visibility 0s linear .25s}.ask-view.open{visibility:visible;opacity:1;transition:opacity .25s ease}.ask-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#070609b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ask-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(620px,calc(100vw - 32px));max-height:min(80vh,720px);display:flex;flex-direction:column;padding:22px;border:1px solid rgba(159,124,255,.25);border-radius:18px;background:#100c18;color:var(--ink);box-shadow:0 30px 90px #00000080}.ask-close{position:absolute;top:14px;right:14px;width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink-dim);cursor:pointer}.ask-close:hover,.ask-close:focus-visible{color:var(--ink);border-color:var(--gold);outline:none}.ask-close .icon{width:16px;height:16px}.ask-head h2{margin:0;font:600 26px var(--serif)}.ask-status{margin:8px 0 0;color:var(--ink-dim);font-size:12px}.ask-form{display:flex;gap:10px;margin:16px 0}.ask-input{flex:1;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#ffffff0f;color:var(--ink);font:14px var(--sans);outline:none}.ask-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #9f7cff26}.ask-submit{padding:0 18px;border:0;border-radius:10px;cursor:pointer;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#0b0911;font:700 13px var(--sans)}.ask-submit:hover,.ask-submit:focus-visible{filter:brightness(1.08);outline:2px solid var(--accent);outline-offset:2px}.ask-answer{overflow-y:auto;padding-right:4px}.ask-answer-kicker{margin:14px 0 4px;color:var(--accent-2);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.ask-answer-title{margin:0 0 8px;font:600 20px var(--serif)}.ask-answer-meta{margin:0 0 8px;color:var(--ink-dim);font-size:12px}.ask-answer-def{margin:0 0 8px;font:15px/1.5 var(--serif)}.ask-answer-details{margin:0 0 10px;color:var(--ink-dim);font:13px/1.55 var(--sans)}.ask-source-link{display:inline-block;margin-bottom:8px;color:var(--accent-2);font-size:12px;text-decoration:none}.ask-source-link:hover{text-decoration:underline}.ask-chip-row{display:flex;flex-wrap:wrap;gap:6px}.ask-chip{padding:6px 10px;border:1px solid rgba(159,124,255,.25);border-radius:999px;background:#9f7cff14;color:var(--ink);font:11px var(--sans);cursor:pointer}.ask-chip:hover,.ask-chip:focus-visible{background:#9f7cff33;border-color:var(--accent);outline:none}.ask-compare-term{margin:10px 0;padding:12px;border:1px solid var(--line);border-radius:12px}.ask-compare-name{margin:0 0 6px;font:600 15px var(--serif);color:var(--gold-2)}.ask-neighbors{margin-top:10px}.ask-neighbors-title{margin:0 0 6px;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-dim)}.ask-broad-row{display:grid;gap:4px;margin-bottom:10px}.ask-broad-def{margin:0;color:var(--ink-dim);font-size:12px;line-height:1.5}.ask-loading{display:flex;align-items:center;gap:12px;margin:18px 0;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#ffffff0a}.ask-spinner{width:18px;height:18px;flex:none;border:2px solid rgba(159,124,255,.25);border-top-color:var(--accent);border-radius:50%;animation:ask-spin .8s linear infinite}@keyframes ask-spin{to{transform:rotate(360deg)}}.ask-loading-text{margin:0;color:var(--ink-dim);font-size:13px}.ask-found{margin:0 0 14px}.ask-found-title{margin:0 0 6px;color:var(--ink-dim);font-size:12px}@media (max-width: 860px){.view-toggle{margin-left:auto;padding:0 11px}.topbar .ghost-btn{margin-left:0}.graph-toolbar{left:10px;width:calc(100vw - 20px);top:calc(var(--topbar-h) + 4px)}.graph-search{font-size:16px}.graph-status{top:calc(var(--topbar-h) + 56px);left:14px}.graph-detail{bottom:calc(10px + env(safe-area-inset-bottom));right:10px;width:calc(100vw - 20px);max-height:46vh;overflow-y:auto;padding:14px}.graph-detail h2{font-size:22px}}@media (max-width: 520px){.view-toggle span{display:none}.view-toggle{width:38px;padding:0;justify-content:center}}.feedback-toggle{position:fixed;right:22px;bottom:104px;z-index:19;display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:#1a130ce6;color:var(--ink);font:600 12px var(--sans);box-shadow:0 12px 30px #0000004d;cursor:pointer}.feedback-toggle:hover,.feedback-toggle:focus-visible{border-color:var(--gold);outline:none}.feedback-toggle .icon{width:16px;height:16px;color:var(--gold-2)}.feedback-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;display:grid;place-items:center;visibility:hidden;opacity:0;transition:opacity .25s ease}.feedback-modal.open{visibility:visible;opacity:1}.feedback-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#050302c7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.feedback-card{position:relative;width:min(520px,calc(100vw - 32px));max-height:90vh;overflow-y:auto;padding:28px;border:1px solid var(--line);border-radius:20px;background:var(--panel-solid);box-shadow:0 30px 80px #00000080}.feedback-card h2{margin:0;font:600 28px var(--serif)}.feedback-card .entry-close{top:14px;right:14px}.feedback-intro,.feedback-note{color:var(--ink-dim);font-size:12px;line-height:1.5}.feedback-note{margin:12px 0 0;text-align:center}.feedback-note a{color:var(--gold-2)}.feedback-form{display:grid;gap:8px;margin-top:20px}.feedback-form label{margin-top:6px;color:var(--ink-dim);font-size:11px;font-weight:600}.feedback-form input,.feedback-form textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#ffffff0f;color:var(--ink);font:16px var(--sans);outline:none;resize:vertical}.feedback-form input:focus,.feedback-form textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px #e6b45c29}.feedback-submit{margin-top:10px;padding:12px 16px;border:0;border-radius:10px;background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#241a08;font:700 13px var(--sans);cursor:pointer}.feedback-submit:hover,.feedback-submit:focus-visible{filter:brightness(1.06);outline:2px solid var(--gold);outline-offset:2px}.contribute-toggle{display:flex;align-items:center;gap:7px;min-height:40px;padding:0 14px;border:1px solid rgba(230,180,92,.4);border-radius:999px;background:#e6b45c1a;color:var(--ink);font:600 12px var(--sans);cursor:pointer}.contribute-toggle:hover,.contribute-toggle:focus-visible,.contribute-toggle[aria-expanded=true]{border-color:var(--gold);background:#e6b45c38;outline:none}.contribute-toggle .icon{width:17px;height:17px;color:var(--gold-2)}.contribute-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;display:grid;place-items:center;visibility:hidden;opacity:0;transition:opacity .25s ease}.contribute-modal.open{visibility:visible;opacity:1}.contribute-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#050302c7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.contribute-card{position:relative;width:min(560px,calc(100vw - 32px));max-height:90vh;overflow-y:auto;padding:28px;border:1px solid var(--line);border-radius:20px;background:var(--panel-solid);box-shadow:0 30px 80px #00000080}.contribute-card h2{margin:0;font:600 28px var(--serif)}.contribute-card .entry-close{top:14px;right:14px}.contribute-intro{color:var(--ink-dim);font-size:12px;line-height:1.5}.contribute-form{display:grid;gap:10px;margin-top:16px}.contribute-terms{display:grid;gap:12px}.contribute-term{position:relative;display:grid;gap:8px;margin:0;padding:14px;border:1px solid var(--line);border-radius:12px}.contribute-term legend,.contribute-term-title{padding:0 6px;font:600 13px var(--serif);color:var(--gold-2)}.contribute-label{display:grid;gap:4px;color:var(--ink-dim);font-size:11px;font-weight:600}.contribute-label input,.contribute-label select,.contribute-label textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#ffffff0f;color:var(--ink);font:15px var(--sans);outline:none;resize:vertical;box-sizing:border-box}.contribute-label select option{color:#1b1526}.contribute-help{color:var(--ink-dim);font-size:10.5px;font-weight:500;line-height:1.4}.contribute-label input:focus,.contribute-label select:focus,.contribute-label textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px #e6b45c29}.contribute-citation summary{color:var(--ink-dim);font-size:12px;cursor:pointer}.contribute-citation[open] summary{margin-bottom:8px}.contribute-citation{display:block}.contribute-citation .contribute-label{margin-top:6px}.contribute-remove{position:absolute;top:8px;right:10px;border:0;background:none;color:var(--ink-dim);font:600 11px var(--sans);cursor:pointer}.contribute-remove:hover,.contribute-remove:focus-visible{color:var(--gold-2);outline:none;text-decoration:underline}.contribute-add{padding:10px 12px;border:1px dashed var(--line);border-radius:10px;background:none;color:var(--ink-dim);font:600 12px var(--sans);cursor:pointer}.contribute-add:hover,.contribute-add:focus-visible{border-color:var(--gold);color:var(--ink);outline:none}.contribute-add:disabled{opacity:.4;cursor:default}.contribute-submit{margin-top:4px;padding:12px 16px;border:0;border-radius:10px;background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#241a08;font:700 13px var(--sans);cursor:pointer}.contribute-submit:hover,.contribute-submit:focus-visible{filter:brightness(1.06);outline:2px solid var(--gold);outline-offset:2px}.contribute-status{min-height:16px;margin:10px 0 0;color:var(--gold-2);font-size:12px}.contribute-problems{margin:8px 0 0;padding-left:18px;color:#e89a9a;font-size:12px;line-height:1.6}.contribute-review{margin-top:14px;display:grid;gap:10px}.contribute-review-title{margin:0;font:600 18px var(--serif)}.contribute-review-note{margin:0;color:var(--ink-dim);font-size:12px;line-height:1.5}.contribute-file{border:1px solid var(--line);border-radius:12px;overflow:hidden}.contribute-file-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:#ffffff0d}.contribute-file-path{font-size:12px;color:var(--gold-2)}.contribute-copy{border:1px solid var(--line);border-radius:8px;background:none;color:var(--ink);font:600 11px var(--sans);padding:5px 10px;cursor:pointer}.contribute-copy:hover,.contribute-copy:focus-visible{border-color:var(--gold);outline:none}.contribute-json{margin:0;padding:12px;max-height:220px;overflow:auto;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink-dim);white-space:pre}.contribute-blank-issue{color:var(--gold-2);font-size:13px}@media (max-width: 520px){.contribute-toggle span{display:none}.contribute-toggle{width:38px;padding:0;justify-content:center}}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#ffffff40}::-webkit-scrollbar-track{background:transparent}@media (max-width: 1080px){.brand{min-width:0}.page{padding:32px 28px 26px}.pg-term{font-size:clamp(26px,3.6vw,36px)}.pg-def{font-size:17px}.story-line,.story-moral{font-size:15.5px}.story-open{font-size:18px}.idx-range{font-size:clamp(44px,7vw,68px)}}@media (max-width: 860px){:root{--topbar-h: 64px}.topbar{flex-wrap:wrap;gap:10px;padding:calc(10px + env(safe-area-inset-top)) 14px 12px;background:linear-gradient(180deg,#0d0a08fa 72%,#0d0a0800)}.topbar>.searchbox{order:3;flex:1 0 100%}body.map-mode .topbar>.searchbox{display:none}.brand{flex:1 1 auto;gap:11px}.brand-text p{display:none}.brand-text h1{font-size:21px}.brand-mark{width:40px;height:40px;border-radius:11px;font-size:22px}.ghost-btn{flex:0 0 auto;margin-left:auto}.explore-nav{flex:0 0 auto}.searchbox{width:100%;max-width:none;margin:0}.searchbox input{font-size:16px}.results{top:calc(var(--topbar-h) - 4px);left:12px;right:12px;width:auto;max-height:min(62vh,calc(100dvh - var(--topbar-h) - 24px));transform:translateY(-8px)}body.explore-open .topbar{z-index:50}.explore-nav{position:relative;z-index:2}body.explore-open .topbar>:not(.explore-nav){opacity:.25;pointer-events:none;transition:opacity .2s ease}body.explore-open:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:49;background:#05030299;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .2s ease}.explore-menu{position:fixed;top:0;right:0;bottom:0;width:min(340px,88vw);padding:calc(12px + env(safe-area-inset-top)) 12px calc(20px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;border-width:0 0 0 1px;border-radius:22px 0 0 22px}.explore-menu:not([hidden]){animation:drawer-in .28s var(--ease)}.explore-menu-head{display:flex;align-items:center;justify-content:space-between;padding:4px 4px 10px 10px;font:600 22px var(--serif)}.explore-menu-close{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#ffffff0a;color:var(--ink-dim);cursor:pointer}.explore-menu-close .icon{width:18px;height:18px}.explore-menu-item{min-height:56px}.results.open{transform:translateY(0)}.book-spread{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(8px + env(safe-area-inset-top)) 8px calc(8px + env(safe-area-inset-bottom));overflow:hidden;perspective:none}.spread-book{display:flex;flex-direction:column;width:100%;max-height:100%;height:100%;min-height:0;transform-style:flat;transform:translateY(56px);opacity:0;transition:transform .5s var(--ease),opacity .35s ease}.book-spread.open .spread-book{opacity:1}.spread-book:before{content:"";position:absolute;top:0;left:14px;right:14px;z-index:3;height:3px;border-radius:0 0 3px 3px;background:linear-gradient(90deg,var(--gold),var(--gold-2));transform:scaleX(var(--read-progress, 0));transform-origin:left;pointer-events:none}.spread-book.slide-next .spread-pages{animation:sheet-next .42s var(--ease)}.spread-book.slide-prev .spread-pages{animation:sheet-prev .42s var(--ease)}.spread-pages{display:block;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;background:#f7efdc}.page{min-height:0;max-height:none;overflow:visible;padding:28px 22px 24px}.page-left{border-radius:12px 12px 3px 3px;box-shadow:inset 0 -22px 34px -22px #5a401e8c}.spread-book.mode-entry .page-left{padding-top:54px}.page-right{border-radius:3px 3px 12px 12px;box-shadow:inset 0 22px 34px -22px #5a401e8c}.spread-crease,.page-flip{display:none}.spread-book.mode-index .page-right{display:block;overflow:visible}.spread-book.mode-index .idx-right{display:block;flex:none;min-height:0}.spread-book.mode-index .contents-list{display:block;flex:none;min-height:0;overflow:visible}.spread-close{top:8px;right:8px}.spread-foot{flex:0 0 auto;flex-wrap:nowrap;gap:6px;margin-top:8px;padding:0 2px}.spread-foot-group{flex:0 0 auto;gap:6px}.spread-actions{gap:6px}.spread-foot .spread-nav,.spread-foot .spread-action{justify-content:center;width:42px;min-width:42px;height:42px;padding:0}.spread-foot .spread-nav>span,.spread-foot .spread-action>span{display:none}.spread-foot .spread-nav .icon,.spread-foot .spread-action .icon{width:18px;height:18px}#spread-counter{flex:1 1 auto;color:var(--ink-dim);min-width:0;overflow:hidden;font-size:11px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.idx-pager{margin-right:-22px;margin-left:-22px}.pager-num{min-width:24px;height:24px;font-size:13px}.pager-arrow{width:28px;height:28px}.hint{bottom:68px;font-size:11px}html,body{overflow-x:hidden}#scene-container{position:fixed;top:var(--topbar-h);left:0;right:0;bottom:auto;height:36vh}#scene-container:after{content:"";position:absolute;left:0;right:0;bottom:0;height:22%;background:linear-gradient(180deg,rgba(18,12,8,0),var(--bg));pointer-events:none}#scene-container canvas{touch-action:none}.hint{top:calc(var(--topbar-h) + 36vh + 10px);bottom:auto;left:50%;right:auto;transform:translate(-50%);width:max-content;max-width:calc(100vw - 32px)}body.reading .hint,body.map-mode .hint{display:none}.archive-home{padding:16px}.archive-card{width:min(430px,100%);max-height:min(84vh,700px)}.letter-nav{left:12px;right:12px;bottom:calc(40px + env(safe-area-inset-bottom));transform:none;max-width:none;justify-content:flex-start;scrollbar-width:none}.letter-nav::-webkit-scrollbar{display:none}.letter-nav button{min-width:38px;height:32px}}@media (max-width: 520px){.topbar{padding:10px 12px 12px}.brand-text h1{font-size:19px}.brand-mark{width:36px;height:36px;font-size:20px}.brand-text p{display:none}.page{padding:24px 18px 22px}.idx-pager{margin-right:-18px;margin-left:-18px}.pg-term{font-size:26px}.story-line,.story-moral{font-size:15px}.story-open{font-size:17px}.story-title{font-size:28px}.pg-def{font-size:16.5px}.contents-title{font-size:23px}.spread-nav{padding:8px 14px;font-size:12px}.explore-toggle{padding:0 12px}.letter-nav{gap:3px;padding:6px 8px}.letter-nav button{min-width:34px;height:30px;padding:0 8px;border-radius:7px;font-size:11px}.hint{padding:7px 12px;font-size:10.5px;text-align:center;justify-content:center;white-space:normal}.feedback-toggle{right:12px;bottom:calc(92px + env(safe-area-inset-bottom));padding:10px}.feedback-toggle span{display:none}.feedback-card{padding:24px 18px}}@keyframes ink-in{0%{opacity:0;transform:translateY(12px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}@keyframes sheet-next{0%{opacity:.2;transform:translate(36px)}}@keyframes sheet-prev{0%{opacity:.2;transform:translate(-36px)}}@keyframes drawer-in{0%{transform:translate(100%)}}@keyframes fade-in{0%{opacity:0}}.spread-book.ink-in .page>div>*{animation:ink-in .6s var(--ease) both}.spread-book.ink-in .page>div>:nth-child(2){animation-delay:.07s}.spread-book.ink-in .page>div>:nth-child(3){animation-delay:.14s}.spread-book.ink-in .page>div>:nth-child(4){animation-delay:.21s}.spread-book.ink-in .page>div>:nth-child(n+5){animation-delay:.28s}.spread-book.ink-in .page-right>div>*{animation-delay:.22s}.spread-book.ink-in .page-right>div>:nth-child(n+2){animation-delay:.32s}.result-ask .ri-letter{color:var(--accent-2)}.result-ask .ri-letter .icon{width:18px;height:18px}.result-ask{border-top:1px solid var(--line);border-radius:0 0 12px 12px}.result-ask:first-child{border-top:0;border-radius:12px}@media (prefers-reduced-motion: reduce){.spread-book.ink-in .page>div>*,.spread-book .spread-pages,.explore-menu:not([hidden]),body.explore-open:before{animation:none!important}.book-spread,.spread-book{transition:opacity .2s ease}.graph-view{transition:none}.spread-book{transform:none}.page-flip{display:none!important}.hint-dot,.letter-nav.attention{animation:none}}
