:root,[data-theme=light]{--outer: #1d1712;--outer-soft: #2a211a;--outer-text: #e8d9b4;--outer-mut: #9a8560;--paper: #ead9b0;--paper-hi: #fff8e4;--ink: #3a2d1c;--ink-soft: #5d4526;--ink-mut: #7a5f34;--rule: #c9b184;--rule-soft: #a88f5e;--seal: #8a2f23;--card: rgba(255, 248, 228, .55);--card-solid: #f4e8c8;--grid: rgba(122, 95, 52, .16);--route: rgba(93, 69, 38, .55);--page-card: #f7eed4;--page-card-border: #d8c69a}[data-theme=dark]{--outer: #0d0a07;--outer-soft: #191309;--outer-text: #e8d9b4;--outer-mut: #9a8560;--paper: #221a10;--paper-hi: #2f2415;--ink: #e6d6ac;--ink-soft: #c9b184;--ink-mut: #a88f5e;--rule: #4a3b28;--rule-soft: #5d4b30;--seal: #d06048;--card: rgba(255, 248, 228, .05);--card-solid: #2f2415;--grid: rgba(200, 170, 110, .1);--route: rgba(200, 170, 110, .4);--page-card: #221a10;--page-card-border: #4a3b28}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:EB Garamond,Georgia,serif;background:#1d1712;color:var(--outer-text);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.codex{min-height:100vh;background:radial-gradient(ellipse at 50% 0%,var(--outer-soft) 0%,var(--outer) 60%);color:var(--outer-text);transition:background .3s ease}.codex-page,.codex-chart{display:flex;flex-direction:column;align-items:center;min-height:100vh;padding:26px 20px 34px}.codex-page>*,.codex-chart>*{width:min(1460px,100%)}.codex-page>*{width:min(1000px,100%)}.pill{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.14em;color:#c9b184;border:1px solid #4a3b28;border-radius:999px;padding:8px 16px;white-space:nowrap}.pill-btn{background:transparent;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center}.pill-btn:hover{border-color:#9a8560;color:#e8d9b4}.page-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.topbar-left{display:flex;align-items:baseline;gap:16px;min-width:0}.codex-home{display:inline-flex;align-items:center;gap:7px;font-family:EB Garamond,Georgia,serif;font-size:15px;font-weight:600;color:var(--outer-text);white-space:nowrap;transition:color .2s ease}.codex-home .codex-home-mark{color:var(--seal);font-size:13px}.codex-home:hover{color:#fff}.topbar-actions{display:flex;align-items:center;gap:8px}.palette-launch{display:inline-flex;align-items:center;gap:7px}.palette-launch kbd{font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.06em;border:1px solid currentColor;border-radius:4px;padding:1px 4px;opacity:.7}.pill-btn.pill-on{border-color:#c9a84a;color:#e6d6ac}.hoid{cursor:pointer;outline:none}.hoid-halo{fill:#ffe89a;opacity:.1;animation:hoidPulse 3.6s ease-in-out infinite}.hoid-fig circle{fill:var(--ink-soft)}.hoid-fig line{stroke:var(--ink-soft);stroke-width:1.2;stroke-linecap:round}.hoid-fig .hoid-staff{stroke:var(--ink-mut)}.hoid:hover .hoid-halo,.hoid:focus-visible .hoid-halo{opacity:.3}@keyframes hoidPulse{0%,to{opacity:.07}50%{opacity:.2}}[data-theme=dark] .hoid-fig circle{fill:#e6d6ac}[data-theme=dark] .hoid-fig line{stroke:#e6d6ac}.world-secret .world-core{filter:drop-shadow(0 0 5px rgba(255,232,154,.85))}.chart-toast{position:absolute;top:20px;left:50%;transform:translate(-50%);z-index:5;background:var(--card-solid);border:1px solid var(--seal);color:var(--ink);font-family:EB Garamond,Georgia,serif;font-size:16px;padding:10px 22px;border-radius:999px;box-shadow:0 12px 34px #00000073;max-width:90%;text-align:center}.toast-fade-enter-active,.toast-fade-leave-active{transition:opacity .35s ease,transform .35s ease}.toast-fade-enter-from,.toast-fade-leave-to{opacity:0;transform:translate(-50%,-12px)}.palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0e0a068c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:12vh 20px 20px}.palette{width:min(620px,100%);max-height:70vh;display:flex;flex-direction:column;background:var(--card-solid);border:1px solid var(--rule-soft);border-radius:12px;box-shadow:0 30px 90px #0009;overflow:hidden;color:var(--ink)}.palette-fade-enter-active,.palette-fade-leave-active{transition:opacity .15s ease}.palette-fade-enter-from,.palette-fade-leave-to{opacity:0}.palette-fade-enter-active .palette{transition:transform .18s ease}.palette-fade-enter-from .palette{transform:translateY(-8px)}.palette-input-row{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--rule)}.palette-input-row .palette-icon{color:var(--ink-mut);font-size:18px}.palette-input-row .palette-input{flex:1;border:none;background:transparent;outline:none;font-family:EB Garamond,Georgia,serif;font-size:18px;color:var(--ink)}.palette-input-row .palette-input::placeholder{color:var(--ink-mut)}.palette-input-row .palette-kbd{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--ink-mut);border:1px solid var(--rule);border-radius:4px;padding:2px 6px}.palette-list{list-style:none;margin:0;padding:6px;overflow-y:auto}.palette-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer}.palette-row.active{background:color-mix(in srgb,var(--seal) 16%,transparent)}.palette-row .palette-tag{font-family:IBM Plex Mono,monospace;font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--paper-hi);background:var(--ink-mut);border-radius:4px;padding:2px 6px;flex-shrink:0;min-width:62px;text-align:center}.palette-row .palette-tag[data-type=World]{background:#2e6fb3}.palette-row .palette-tag[data-type=Magic]{background:#8a4ab3}.palette-row .palette-tag[data-type=Book]{background:var(--seal)}.palette-row .palette-tag[data-type=Character]{background:#2c8a5a}.palette-row .palette-tag[data-type=Place]{background:#b3702c}.palette-row .palette-label{font-family:EB Garamond,Georgia,serif;font-size:16px;font-weight:600;color:var(--ink)}.palette-row .palette-sub{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--ink-mut);margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40%}.palette-row .palette-check{color:var(--seal);margin-left:auto}.palette-empty{padding:22px 18px;font-style:italic;color:var(--ink-mut)}.palette-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 14px;border-top:1px solid var(--rule);background:color-mix(in srgb,var(--ink) 5%,transparent)}.palette-footer .palette-status{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.04em;color:var(--ink-soft)}.palette-footer .palette-status strong{color:var(--seal);font-weight:600}.palette-footer .palette-status .palette-status-hint{color:var(--ink-mut)}.palette-footer .palette-hints{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--ink-mut)}.palette-footer .palette-hints kbd{border:1px solid var(--rule);border-radius:3px;padding:0 4px;margin:0 1px}.book-card.veiled{cursor:default}.book-card.veiled .veil-cover{background:repeating-linear-gradient(45deg,var(--card-solid),var(--card-solid) 8px,var(--page-card) 8px,var(--page-card) 16px);color:var(--ink-mut);font-size:22px}.book-card.veiled .veil-title{color:var(--ink-mut);font-style:italic;filter:blur(.2px)}.spread-book.veiled{cursor:default;opacity:.75}.spread-book.veiled .veil{background:repeating-linear-gradient(45deg,var(--rule-soft),var(--rule-soft) 5px,var(--card-solid) 5px,var(--card-solid) 10px)!important}.spread-book.veiled .spread-book-title{font-style:italic;color:var(--ink-mut)}.spoiler-wall{text-align:center;padding:60px 34px}.spoiler-wall .spoiler-wall-mark{font-size:40px;color:var(--seal);margin-bottom:8px}.spoiler-wall h2{font-family:EB Garamond,Georgia,serif;font-size:30px;font-weight:700;color:var(--ink);margin-bottom:10px}.spoiler-wall p{max-width:480px;margin:0 auto 20px;font-size:15.5px;line-height:1.7;color:var(--ink-soft)}.spoiler-wall p strong{color:var(--ink)}.spoiler-wall .spoiler-wall-actions{display:flex;gap:10px;justify-content:center}.spoiler-wall .spoiler-wall-actions .pill-btn{color:var(--ink);border-color:var(--rule-soft)}.back-link{border:none;background:transparent;color:var(--outer-mut);font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:color .2s ease}.back-link:hover{color:var(--outer-text)}.status-message{text-align:center;padding:4rem 2rem;font-style:italic;font-size:17px;color:var(--outer-mut)}.status-message.error{color:var(--seal)}.chart-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}.chart-eyebrow{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.34em;color:var(--outer-mut);text-transform:uppercase}.chart-header h1,.library-header h1{margin-top:2px;font-size:38px;font-weight:600;letter-spacing:.01em;line-height:1.05;color:var(--outer-text)}.chart-pills{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.chart-viewport{flex:1;position:relative;background:var(--paper);border:1px solid #0e0a06;box-shadow:0 24px 70px #0000008c,inset 0 0 0 8px var(--paper),inset 0 0 0 9px var(--rule-soft),inset 0 0 90px #00000038;min-height:560px;overflow:hidden;touch-action:none;cursor:grab;transition:background .3s ease}.chart-viewport:active{cursor:grabbing}.chart-svg{width:100%;height:100%;display:block;position:absolute;top:0;right:0;bottom:0;left:0}.chart-paper{fill:var(--paper);transition:fill .3s ease}.chart-graticule{pointer-events:none}.chart-graticule .grat-spoke{fill:none;stroke:var(--grid);stroke-width:1}.chart-graticule .grat-ring{fill:none;stroke:var(--grid);stroke-width:1;stroke-dasharray:2 7}.chart-graticule .grat-ecliptic{fill:none;stroke:var(--grid);stroke-width:1.3;stroke-dasharray:11 9;opacity:.85}.chart-nebulae,.chart-stars{pointer-events:none}.chart-stars .star-dot,.chart-stars .star-mark{animation-name:twinkle;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}.chart-stars .star-dot{fill:var(--ink-mut)}.chart-stars .star-mark line{stroke:var(--ink-soft);stroke-width:.9;opacity:.7}.chart-stars .star-mark circle{fill:var(--ink-soft);opacity:.85}@keyframes twinkle{0%{opacity:var(--tw-lo, .3)}to{opacity:var(--tw-hi, .8)}}[data-theme=dark] .chart-viewport{background:radial-gradient(ellipse at 50% 32%,#0a1122,#04060c 62%);box-shadow:0 24px 70px #000000bf,inset 0 0 0 8px #04060c,inset 0 0 0 9px #26324a,inset 0 0 140px #0009}[data-theme=dark] .chart-paper{fill:transparent}[data-theme=dark] .chart-stars .star-dot{fill:#cdd8ea}[data-theme=dark] .chart-stars .star-mark line{stroke:#e2e9f5}[data-theme=dark] .chart-stars .star-mark circle{fill:#f2f6fd}[data-theme=dark] .chart-constellations .con-line{stroke:#8fa3c8}[data-theme=dark] .chart-constellations .con-star{fill:#dfe8f6}[data-theme=dark] .chart-constellations .con-label{fill:#9fb0cc}.chart-constellations{pointer-events:none}.chart-constellations .con-line{fill:none;stroke:var(--ink-mut);stroke-width:1;stroke-dasharray:3 5;opacity:.5}.chart-constellations .con-star{fill:var(--ink-soft);opacity:.9}.chart-constellations .con-label{fill:var(--ink-mut);font-family:EB Garamond,Georgia,serif;font-style:italic;font-size:19px;letter-spacing:.02em;opacity:.72}.moon-orbit{fill:none;stroke:var(--ink-mut);stroke-width:.7;stroke-dasharray:2 4;opacity:.5}.moon{stroke:var(--ink);stroke-width:.6}.life-highstorm path{fill:none;stroke:#8fd0ff;stroke-width:3;stroke-linecap:round;opacity:.55;filter:drop-shadow(0 0 4px rgba(120,180,255,.7))}.life-pulse .pulse-ring{fill:none;stroke-width:2;stroke:#c86ae0;opacity:0;transform-box:fill-box;transform-origin:center;animation:nalthisPulse 4.5s ease-out infinite}.life-pulse .pulse-ring.d2{stroke:#6ab0ff;animation-delay:2.25s}@keyframes nalthisPulse{0%{transform:scale(1);opacity:.55}to{transform:scale(2.5);opacity:0}}.life-pulse .pulse-ring.d3{stroke:#e0d86a;animation-delay:3.4s}.life-spren .spren-mote{fill:#a6e2ff;filter:drop-shadow(0 0 3px rgba(120,200,255,.9));animation:sprenPulse 2.6s ease-in-out infinite}@keyframes sprenPulse{0%,to{opacity:.35}50%{opacity:1}}.life-ash .ash{fill:#d8cfc2;opacity:0;animation-name:ashfall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes ashfall{0%{transform:translateY(-22px);opacity:0}15%{opacity:.85}85%{opacity:.5}to{transform:translateY(26px);opacity:0}}.life-steel{transform-box:fill-box;transform-origin:center;animation:steelPulse 6s ease-out infinite}.life-steel line{stroke:#7fb8ff;stroke-width:.8}@keyframes steelPulse{0%{opacity:0}4%{opacity:.75}15%{opacity:0}to{opacity:0}}.life-aon .aon-stroke{fill:none;stroke:#ffe89a;stroke-width:1.2;stroke-linecap:round;filter:drop-shadow(0 0 3px rgba(224,216,106,.85));stroke-dasharray:260;stroke-dashoffset:260;animation:aonDraw 6.5s ease-in-out infinite}@keyframes aonDraw{0%{stroke-dashoffset:260;opacity:0}14%{opacity:.9}52%{stroke-dashoffset:0;opacity:.9}72%{opacity:0;stroke-dashoffset:0}to{opacity:0}}.life-debris .debris-ring{fill:none;stroke:#aabedc80;stroke-width:.8;stroke-dasharray:3 5}.life-debris .fighter{fill:#fff;filter:drop-shadow(0 0 2px rgba(160,220,255,.95))}.life-spirits .spirit{fill:#ffc0d8;opacity:0;animation-name:spiritRise;animation-timing-function:ease-out;animation-iteration-count:infinite}@keyframes spiritRise{0%{transform:translateY(10px);opacity:0}20%{opacity:.9}to{transform:translateY(-26px);opacity:0}}.life-terminator .sun-edge{fill:#ffcf7a;opacity:.9;filter:drop-shadow(0 0 3px rgba(255,180,90,.9))}.world-bloom{opacity:.22;pointer-events:none}.meteors{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.meteor{position:absolute;width:0;height:0}.meteor i{position:absolute;display:block;width:340px;height:2px;background:linear-gradient(90deg,#bed7ff00,#bed7ff1f 55%,#d6e8ff8c 84%,#f0f7fff2);clip-path:polygon(100% 0,100% 100%,0 58%,0 42%);opacity:0;animation-name:meteor;animation-timing-function:cubic-bezier(.4,0,.7,1);animation-iteration-count:infinite}.meteor i:after{content:"";position:absolute;right:0;top:50%;width:3px;height:3px;border-radius:50%;background:#fff;transform:translateY(-50%);box-shadow:0 0 7px 2px #cde4ffe6,0 0 14px 4px #96beff66}.meteor.m1{top:9%;left:4%;transform:rotate(21deg)}.meteor.m1 i{width:360px;animation-duration:26s;animation-delay:4s}.meteor.m2{top:24%;left:22%;transform:rotate(28deg)}.meteor.m2 i{width:300px;animation-duration:41s;animation-delay:19s}.meteor.m3{top:44%;left:8%;transform:rotate(15deg)}.meteor.m3 i{width:400px;animation-duration:58s;animation-delay:35s}@keyframes meteor{0%{opacity:0;transform:translate(-42vw)}0.5%{opacity:1}3%{opacity:1}4%{opacity:0;transform:translate(155vw)}to{opacity:0;transform:translate(155vw)}}.chart-compass{position:absolute;left:18px;bottom:14px;pointer-events:none}.chart-compass circle,.chart-compass line{fill:none;stroke:var(--ink-mut);stroke-width:1}.chart-compass circle.thin{stroke-width:.6}.chart-compass text{font-family:EB Garamond,Georgia,serif;font-size:16px;fill:var(--ink-soft);stroke:none}.chart-motto{font-family:EB Garamond,Georgia,serif;font-size:16px;font-style:italic;fill:var(--ink-mut);pointer-events:none}.route-hit{fill:none;stroke:transparent;stroke-width:22;pointer-events:stroke;cursor:help}.route-line{fill:none;stroke:var(--route);stroke-width:1.3;stroke-dasharray:1 7;stroke-linecap:round;pointer-events:none;animation:routeDash 12s linear infinite;transition:stroke .25s ease}.route-line.lit{stroke:var(--seal);stroke-width:1.8}@keyframes routeDash{to{stroke-dashoffset:-80}}.route-label{font-family:EB Garamond,Georgia,serif;font-size:17px;font-style:italic;fill:var(--ink-soft);paint-order:stroke;stroke:var(--paper);stroke-width:5px;pointer-events:none}.route-dot{pointer-events:none;offset-rotate:0deg;offset-distance:0%;animation:routeTravel 3.2s linear infinite}.route-dot circle{fill:var(--seal);stroke:var(--paper);stroke-width:1.5}.route-dot circle.halo{fill:none;stroke:var(--seal);stroke-width:1;opacity:.5}@keyframes routeTravel{0%{offset-distance:0%}to{offset-distance:100%}}.world-node{cursor:pointer;outline:none;opacity:.94;transition:opacity .2s ease}.world-node:hover,.world-node:focus-visible{opacity:1}.world-node:focus-visible .world-outer{stroke:var(--seal);stroke-width:2.2}.world-outer{fill:var(--paper);stroke:var(--ink);stroke-width:1.4;transition:fill .3s ease}.world-mid{fill:none;stroke:var(--ink-mut);stroke-width:.8}.world-core{stroke:var(--ink);stroke-width:1.2}.world-stamp{pointer-events:none}.world-stamp circle{fill:none;stroke:var(--seal);stroke-width:2;opacity:.85}.world-stamp text{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.18em;fill:var(--seal);font-weight:500}.world-name{font-family:EB Garamond,Georgia,serif;font-size:24px;font-weight:600;fill:var(--ink);pointer-events:none}.world-sub{font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.2em;fill:var(--ink-mut);text-transform:uppercase;pointer-events:none}.chart-key{position:absolute;left:18px;top:16px;display:flex;flex-direction:column;gap:2px;padding:10px 12px 11px;background:var(--card);border:1px solid var(--rule-soft);box-shadow:2px 3px #0000002e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.key-title{display:flex;align-items:center;gap:6px;width:100%;font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.22em;color:var(--ink-mut);text-transform:uppercase;padding:0 0 6px;margin-bottom:4px;border:none;border-bottom:1px solid var(--rule);background:transparent;cursor:pointer;text-align:left;transition:color .15s ease}.key-title:hover{color:var(--ink)}.key-title .key-caret{font-size:8px}.chart-key.collapsed .key-title{padding-bottom:0;margin-bottom:0;border-bottom:none}.key-entries{display:flex;flex-direction:column;gap:2px}.key-entry{display:flex;align-items:center;gap:9px;border:none;background:transparent;padding:3px 5px;cursor:pointer;text-align:left;border-radius:3px;transition:background .15s ease}.key-entry:hover{background:var(--card-solid)}.key-entry .key-swatch{width:12px;height:12px;border-radius:50%;border:1px solid var(--ink);flex-shrink:0}.key-entry .key-text{display:flex;flex-direction:column;line-height:1.15}.key-entry .key-name{font-family:EB Garamond,Georgia,serif;font-size:14px;font-weight:600;color:var(--ink)}.key-entry .key-region{font-family:IBM Plex Mono,monospace;font-size:8.5px;letter-spacing:.14em;color:var(--ink-mut);text-transform:uppercase}.chart-zoom{position:absolute;right:18px;bottom:18px;display:flex;flex-direction:column;gap:6px}.chart-zoom button{width:40px;height:40px;border:1px solid var(--ink-mut);background:var(--card-solid);color:var(--ink);font-family:EB Garamond,Georgia,serif;font-size:20px;cursor:pointer;transition:all .2s ease;padding:0}.chart-zoom button:hover{background:var(--paper-hi)}.chart-hint{position:absolute;bottom:14px;left:50%;transform:translate(-50%);font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.18em;color:var(--ink-mut);pointer-events:none;white-space:nowrap;transition:opacity .3s ease}.chart-viewport.flying{cursor:default}.chart-viewport.flying .chart-hint{opacity:0}.chart-viewport.flying:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;background:radial-gradient(ellipse at center,transparent 52%,rgba(0,0,0,.34) 100%);animation:flyVignette .7s ease-out}@keyframes flyVignette{0%{opacity:0}45%{opacity:1}to{opacity:0}}.spread-overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:auto;background:#0e0a06b8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:60;display:flex;align-items:center;justify-content:center;padding:24px}.spread{width:min(1060px,100%);max-height:88vh;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));background:var(--paper);box-shadow:0 30px 90px #000000b3;animation:spreadIn .25s ease;position:relative;overflow:hidden;outline:none}@keyframes spreadIn{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}.spread-fade-enter-active,.spread-fade-leave-active{transition:opacity .2s ease}.spread-fade-enter-from,.spread-fade-leave-to{opacity:0}.spread-close{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;border:1px solid var(--ink-mut);background:var(--card-solid);color:var(--ink);font-size:15px;cursor:pointer;z-index:5;padding:0}.spread-close:hover{background:var(--paper-hi)}.spread-page{padding:30px 30px 26px 34px;overflow-y:auto;max-height:88vh;color:var(--ink)}.spread-left{border-right:1px solid var(--rule)}.spread-right{padding:30px 34px 26px 30px}.spread-system{font-family:IBM Plex Mono,monospace;font-size:9.5px;letter-spacing:.28em;color:var(--ink-mut);text-transform:uppercase}.spread h2{margin:2px 0;font-size:40px;font-weight:700;line-height:1}.spread-tagline{margin-bottom:14px;font-style:italic;font-size:17px;color:var(--ink-soft)}.spread-description{margin-bottom:16px;font-size:15.5px;line-height:1.7}.spread-rule-title{margin-bottom:6px;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.24em;color:var(--ink-mut);text-transform:uppercase;border-bottom:1px solid var(--rule);padding-bottom:5px;font-weight:500}.spread-magic-title{margin-top:14px}.spread-shard{margin-bottom:6px;font-size:14.5px;line-height:1.5}.spread-shard strong{font-weight:700}.spread-shard em{color:var(--ink-soft)}.spread-magic{margin-bottom:8px;font-size:14.5px;line-height:1.55}.spread-magic strong{font-weight:700}.stamp-btn{margin-top:14px;border:1.4px solid var(--seal);background:transparent;color:var(--seal);font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.16em;padding:9px 18px;cursor:pointer;transition:all .2s ease}.stamp-btn:hover{opacity:.85}.stamp-btn.stamped{background:var(--seal);color:#f5ecd2}.spread-books{display:flex;flex-direction:column;gap:10px;margin-top:12px}.spread-book{display:flex;align-items:center;gap:12px;border:1px solid var(--rule-soft);background:var(--card);padding:10px 14px 10px 10px;cursor:pointer;text-align:left;font-family:EB Garamond,Georgia,serif;transition:all .2s ease;box-shadow:1px 2px #0003}.spread-book:hover{background:var(--card-solid);transform:translate(-1px,-1px);box-shadow:3px 4px #0003}.spread-book .spread-book-cover{width:34px;height:50px;object-fit:cover;border:1px solid var(--ink);flex-shrink:0}.spread-book .spread-book-text{display:flex;flex-direction:column;min-width:0}.spread-book .spread-book-title{font-size:17px;font-weight:600;color:var(--ink);line-height:1.2}.spread-book .spread-book-meta{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--ink-mut);letter-spacing:.1em}.spread-book .spread-book-arrow{margin-left:auto;color:var(--ink-mut)}.spread-blank{margin-top:12px;font-style:italic;font-size:16px;color:var(--ink-soft)}.book-page{animation:pageIn .3s ease}.book-sheet{background:var(--paper);border:1px solid #0e0a06;box-shadow:0 24px 70px #0000008c,inset 0 0 0 8px var(--paper),inset 0 0 0 9px var(--rule-soft),inset 0 0 90px #00000038;padding:26px;transition:background .3s ease}@keyframes pageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.book-hero{display:flex;gap:28px;background:linear-gradient(150deg,#241c13,#120e08);border:1px solid #0e0a06;box-shadow:0 20px 60px #00000080,inset 0 0 0 1px #c8aa6e26;padding:30px;flex-wrap:wrap;margin-bottom:20px}.book-hero .hero-cover{width:190px;height:285px;object-fit:cover;border:1.5px solid #0e0a06;box-shadow:6px 8px 24px #00000080;flex-shrink:0}.book-hero .hero-cover-tint{width:190px;height:285px;border:1.5px solid #0e0a06;box-shadow:6px 8px 24px #00000080;flex-shrink:0;display:flex;flex-direction:column;justify-content:space-between;padding:14px}.book-hero .hero-cover-tint .tint-author{font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.24em;color:#fff8e4bf;text-transform:uppercase}.book-hero .hero-cover-tint .tint-title{font-family:EB Garamond,Georgia,serif;font-size:24px;font-weight:700;color:#fff8e4;line-height:1.15;text-shadow:0 2px 8px rgba(0,0,0,.5)}.book-hero .hero-info{flex:1;min-width:260px;color:#e8d9b4}.book-hero .hero-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.book-hero .chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #4a3b28;border-radius:999px;padding:4px 12px;font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.12em;color:#e8d9b4}.book-hero .chip-world{transition:border-color .2s ease}.book-hero .chip-world:hover{border-color:#9a8560}.book-hero .chip-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.book-hero .chip-cosmere{border-color:#6a5a2f;color:#d8c072;letter-spacing:.18em}.book-hero h1{margin-bottom:4px;font-size:44px;font-weight:700;line-height:1.02;color:#f5ecd2}.book-hero .hero-tagline{margin-bottom:14px;font-style:italic;font-size:17px;color:#c9a84a}.book-hero .hero-synopsis{font-size:15.5px;line-height:1.75;max-width:560px;color:#d9c9a2}.section-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}.section-chip{border:1px solid var(--rule-soft);background:var(--card-solid);color:var(--ink);border-radius:999px;padding:6px 14px;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.1em;transition:all .2s ease}.section-chip:hover{background:var(--paper-hi)}.section-chip span{color:var(--ink-mut)}.page-section{margin-bottom:30px;scroll-margin-top:20px}.page-section h2{margin-bottom:4px;font-size:27px;font-weight:700;color:var(--ink)}.page-section .section-sub{margin-bottom:4px;font-style:italic;font-size:14px;color:var(--ink-mut)}.section-rule{border-bottom:1px solid var(--rule);margin-bottom:14px}.page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.page-card{background:var(--page-card);border:1px solid var(--page-card-border);padding:14px 16px;box-shadow:1px 2px #0000002e}.page-card .card-title{font-size:17px;font-weight:700;color:var(--ink);line-height:1.2}.page-card .card-body{font-size:13.5px;line-height:1.55;color:var(--ink-soft);margin-top:3px}.character-card{display:flex;gap:12px}.character-card .character-initial{width:38px;height:38px;border-radius:50%;border:1px solid var(--ink);color:#fff8e4;display:flex;align-items:center;justify-content:center;font-family:EB Garamond,Georgia,serif;font-size:17px;font-weight:700;flex-shrink:0}.magic-card{border-left:2px solid #c9a84a}.place-type{font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.24em;color:var(--ink-mut);text-transform:uppercase;margin-bottom:3px}.siblings-section .siblings-title{font-size:22px}.sibling-buttons{display:flex;gap:8px;flex-wrap:wrap}.sibling-btn{border:1px solid var(--rule-soft);background:var(--card);color:var(--ink);font-family:EB Garamond,Georgia,serif;font-size:15px;font-weight:600;padding:7px 14px;cursor:pointer;transition:all .2s ease}.sibling-btn:hover{background:var(--card-solid)}.library-sheet .chart-eyebrow{color:var(--ink-mut)}.library-sheet h1{color:var(--ink)}.library-sheet .status-message{color:var(--ink-mut)}.library-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.filter-toggles{display:flex;gap:6px}.filter-btn{border:1px solid var(--ink-mut);background:var(--card);color:var(--ink);font-family:EB Garamond,Georgia,serif;font-size:14px;font-weight:600;padding:6px 14px;cursor:pointer;transition:all .2s ease}.filter-btn:hover{background:var(--card-solid)}.filter-btn.active{background:var(--seal);color:#f5ecd2;border-color:var(--seal)}.books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}.book-card{display:flex;flex-direction:column;background:var(--page-card);border:1px solid var(--page-card-border);overflow:hidden;cursor:pointer;box-shadow:1px 2px #0000002e;transition:all .2s ease}.book-card:hover{transform:translate(-1px,-1px);box-shadow:4px 5px #00000038}.book-card .book-cover-wrapper{position:relative;overflow:hidden;border-bottom:1px solid var(--page-card-border)}.book-card .read-toggle{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;border:1.5px solid rgba(255,255,255,.75);background:#14100a8c;color:#ffffffe6;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease,background .15s ease,transform .15s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.book-card .read-toggle:hover{transform:scale(1.08)}.book-card .read-toggle.read{opacity:1;background:var(--teal, #106c58);border-color:#2c8a5a;color:#fff;background:#2c8a5a}.book-card:hover .read-toggle,.book-card .read-toggle:focus-visible{opacity:1}.book-card.is-read{border-color:#2c8a5a;box-shadow:0 0 0 1px #2c8a5a,1px 2px #0000002e}.book-card .next-badge{position:absolute;top:8px;left:8px;font-family:IBM Plex Mono,monospace;font-size:8.5px;font-weight:600;letter-spacing:.14em;color:#fff;background:var(--seal);padding:3px 7px;border-radius:4px;box-shadow:0 2px 6px #00000059}.book-card .book-cover{width:100%;height:300px;object-fit:cover;display:block}.book-card .book-cover-placeholder{width:100%;height:300px;display:flex;align-items:center;justify-content:center;background:var(--card-solid);color:var(--ink-mut);font-family:EB Garamond,Georgia,serif;font-size:15px;font-weight:600;text-align:center;padding:1rem}.book-card .book-info{padding:12px 14px 14px;flex:1;display:flex;flex-direction:column;gap:3px}.book-card .book-info h3{font-family:EB Garamond,Georgia,serif;font-size:16px;font-weight:700;color:var(--ink);line-height:1.25}.book-card .book-info .book-series{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.08em;color:var(--ink-soft);text-transform:uppercase}.book-card .book-info .book-year{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--ink-mut)}.cosmere-badge{display:inline-flex;font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.18em;color:var(--seal);border:1px solid var(--seal);padding:2px 8px;border-radius:999px;width:fit-content;margin-top:auto;opacity:.85}@media (max-width: 768px){.codex-page,.codex-chart{padding:18px 12px 24px}.chart-header h1,.library-header h1{font-size:28px}.chart-viewport{min-height:440px}.chart-hint{display:none}.spread-overlay{padding:10px}.spread{max-height:92vh;grid-template-columns:1fr;overflow-y:auto}.spread-page{max-height:none;overflow-y:visible}.spread-left{border-right:none;border-bottom:1px solid var(--rule)}.book-sheet{padding:14px}.topbar-left{gap:12px}.codex-home{font-size:13px}.book-hero{padding:20px;gap:20px;justify-content:center}.book-hero h1{font-size:30px}.books-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.books-grid .book-card .book-cover,.books-grid .book-card .book-cover-placeholder{height:225px}}@media (max-width: 480px){.books-grid{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion: reduce){.route-line,.route-dot{animation:none!important}.star-dot,.star-mark{animation:none!important;opacity:var(--tw-hi, .6)}.meteors{display:none}.life-pulse .pulse-ring,.life-ash .ash{animation:none!important;opacity:0!important}.life-spren .spren-mote{animation:none!important;opacity:.7!important}.life-steel{animation:none!important;opacity:0!important}.life-aon .aon-stroke{animation:none!important;stroke-dashoffset:0!important;opacity:.5!important}.life-spirits .spirit{animation:none!important;opacity:0!important}.hoid-halo{animation:none!important;opacity:.16!important}.spread,.book-page{animation:none!important}html{scroll-behavior:auto}}
