:root,[data-theme=codex]{--font-display:"Cinzel Variable", "Trajan Pro", serif;--font-body:"EB Garamond Variable", Garamond, serif;--font-ui:"EB Garamond Variable", Garamond, serif;--font-hand:"IM Fell English", "EB Garamond Variable", serif;--font-name:"EB Garamond Variable", Garamond, Georgia, serif;--name-weight:500;--font-title:"Cinzel Variable", "Trajan Pro", serif;--bg:#0f1218;--panel:linear-gradient(180deg, #232b3a 0%, #171d28 100%);--panel-solid:#1c2331;--panel-2:#283245;--panel-3:#323e55;--border:#3c475d;--edge:#b8954f;--edge-soft:#b8954f55;--text:#ece1c6;--muted:#b8ad92;--subtle:#aa9f85;--faint:#6f6858;--accent:#e2bd6b;--accent-text:#1a1408;--danger:#c4573f;--ok:#7fb36d;--info:#7fa6d6;--canvas:#6b6142;--canvas-ink:#f3e9cf;--canvas-ink-muted:#d8cba6;--canvas-shadow:0 1px 2px #000a, 0 0 8px #0006;--canvas-texture:radial-gradient(ellipse at 50% 40%, #7a6f4c00 0%, #3a331f 120%), repeating-linear-gradient(0deg, #0000 0 3px, #00000008 3px 4px), repeating-linear-gradient(90deg, #0000 0 3px, #ffffff06 3px 4px);--line:#d9c89a;--line-dim:#d9c89a40;--line-hl:#ffe08a;--card-frame:linear-gradient(160deg, #e9cf86, #8a6a2c 45%, #d9b766 70%, #6e5221);--card-bg:#1d2533;--card-dead:grayscale(.92) sepia(.25) brightness(.82);--card-name-size:15px;--chip:#12161ecc;--chip-text:#ecdcae;--radius:3px;--radius-lg:6px;--shadow:0 10px 30px #000a, 0 2px 6px #0008;--focus-ring:0 0 0 2px #1c2331, 0 0 0 4px #e2bd6b;--minimap-bg:#12161ee6;--theme-color:#171d28;--page-bg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9 .06' numOctaves='2' seed='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .95 0 0 0 0 .88 0 0 0 0 .7 0 0 0 .9 0'/%3E%3C/filter%3E%3Cfilter id='b'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.06 .9' numOctaves='2' seed='8' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .95 0 0 0 0 .88 0 0 0 0 .7 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23a)' opacity='.035'/%3E%3Crect width='240' height='240' filter='url(%23b)' opacity='.03'/%3E%3C/svg%3E") 0 0 / 240px 240px, radial-gradient(ellipse 130% 90% at 50% 0%, #1e283b 0%, #141a26 50%, #0c0f15 100%) fixed;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=modern]{--font-display:"Inter Variable", system-ui, sans-serif;--font-body:"Inter Variable", system-ui, sans-serif;--font-ui:"Inter Variable", system-ui, sans-serif;--font-hand:"EB Garamond Variable", Georgia, serif;--font-name:"EB Garamond Variable", Garamond, Georgia, serif;--name-weight:500;--font-title:"Inter Variable", system-ui, sans-serif;--bg:#f4f2ee;--panel:#fff;--panel-solid:#fff;--panel-2:#f6f4f0;--panel-3:#ece8e1;--border:#e3ded5;--edge:#e3ded5;--edge-soft:#e3ded5;--text:#1f1d1a;--muted:#5c564d;--subtle:#6a645b;--faint:#a59f94;--accent:#2f6f5e;--accent-text:#fff;--danger:#b4452f;--ok:#2f7d4a;--info:#3767b0;--canvas:#f4f2ee;--canvas-ink:#1f1d1a;--canvas-ink-muted:#6d675e;--canvas-shadow:none;--canvas-texture:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' seed='5' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .27 0 0 0 0 .16 0 0 0 1.2 -.25'/%3E%3C/filter%3E%3Crect width='260' height='260' filter='url(%23g)' opacity='.16'/%3E%3C/svg%3E") 0 0 / 260px 260px, radial-gradient(ellipse 120% 100% at 50% 30%, #0000 55%, #6b55300f 100%);--line:#b9b1a3;--line-dim:#b9b1a340;--line-hl:#2f6f5e;--card-frame:#fff;--card-bg:#fff;--card-dead:grayscale(1) contrast(.9) brightness(1.05);--card-name-size:14px;--chip:#fff;--chip-text:#3d3a35;--radius:8px;--radius-lg:14px;--shadow:0 8px 28px #2a221414, 0 1px 3px #2a22141a;--focus-ring:0 0 0 2px #fff, 0 0 0 4px #2f6f5e;--minimap-bg:#ffffffe6;--theme-color:#fff;--page-bg:var(--canvas-texture), var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=night]{--font-display:"EB Garamond Variable", Garamond, Georgia, serif;--font-body:"Inter Variable", system-ui, sans-serif;--font-ui:"Inter Variable", system-ui, sans-serif;--font-hand:"EB Garamond Variable", Georgia, serif;--font-name:"EB Garamond Variable", Garamond, Georgia, serif;--name-weight:500;--font-title:"EB Garamond Variable", Garamond, Georgia, serif;--bg:#13161d;--panel:linear-gradient(180deg, #1c2029 0%, #181b23 100%);--panel-solid:#1a1e27;--panel-2:#222733;--panel-3:#2b3140;--border:#2e3442;--edge:#6b5636;--edge-soft:#6b563666;--text:#ece6dc;--muted:#b8b0a2;--subtle:#a59e92;--faint:#5d5a55;--accent:#e0a458;--accent-text:#1a1206;--danger:#e58a6f;--ok:#8cc48a;--info:#8fb4ec;--canvas:#13161d;--canvas-ink:#ece6dc;--canvas-ink-muted:#b8b0a2;--canvas-shadow:none;--canvas-texture:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' seed='5' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .9 0 0 0 0 .75 0 0 0 1.2 -.25'/%3E%3C/filter%3E%3Crect width='260' height='260' filter='url(%23g)' opacity='.07'/%3E%3C/svg%3E") 0 0 / 260px 260px, radial-gradient(ellipse 90% 70% at 50% 20%, #e0a4580c 0%, #0000 60%), radial-gradient(ellipse 140% 110% at 50% 30%, #0000 50%, #05070b99 100%);--line:#5b606d;--line-dim:#5b606d40;--line-hl:#e0a458;--card-frame:linear-gradient(160deg, #8a7048, #3a3122 50%, #6b5636);--card-bg:#1d222c;--card-dead:grayscale(1) brightness(.75);--card-name-size:15px;--chip:#222733;--chip-text:#ddd5c6;--radius:6px;--radius-lg:12px;--shadow:0 12px 32px #000a, 0 1px 3px #0008;--focus-ring:0 0 0 2px #13161d, 0 0 0 4px #e0a458;--minimap-bg:#1a1e27e6;--theme-color:#181b23;--page-bg:var(--canvas-texture), var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:16px}#app{height:100%}a{color:inherit}button,input,textarea,select{font:inherit;color:inherit}::selection{background:var(--accent);color:var(--accent-text)}.display{font-family:var(--font-display);letter-spacing:.02em}.name{font-family:var(--font-name);font-weight:var(--name-weight)}.name i,i.name-epithet{font-style:italic;font-weight:400}[data-theme=codex] .display{font-variant:small-caps;letter-spacing:.06em}.muted{color:var(--muted)}.faint,.subtle{color:var(--subtle)}h1,h2,h3,h4{text-wrap:balance}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[data-theme=night] .display{letter-spacing:.01em}.panel{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:var(--radius-lg)}[data-theme=codex] .panel{box-shadow:inset 0 0 0 1px var(--edge-soft), var(--shadow);border-color:#0a0d12}[data-theme=night] .panel{box-shadow:inset 0 1px 0 #ffffff08, var(--shadow)}.ui-card{border-radius:var(--radius-lg);background:var(--panel-solid);border:1px solid var(--border);box-shadow:var(--shadow);padding:16px 18px;position:relative}[data-theme=modern] .ui-card{box-shadow:0 1px 2px #2a22140f,0 4px 14px #2a22140a}[data-theme=night] .ui-card{background:var(--panel-solid);box-shadow:inset 0 0 0 1px #6b563633, inset 0 1px 0 #ffffff08, var(--shadow);border-color:#2e3442}[data-theme=codex] .ui-card{background:linear-gradient(180deg, #222a39, #171d28) padding-box, var(--card-frame) border-box;border:2px solid #0000;border-radius:4px;box-shadow:inset 0 0 0 1px #0a0d12,inset 0 1px #f0d58f22,0 6px 18px #0009,0 1px 3px #000a}.ui-card.interactive{cursor:pointer;transition:transform .14s,box-shadow .14s}.ui-card.interactive:hover{transform:translateY(-2px)}.ui-card.interactive:focus-visible{box-shadow:var(--focus-ring);outline:none}.btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--panel-2);height:32px;color:var(--text);font-family:var(--font-ui);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:0 12px;font-size:14px;text-decoration:none;display:inline-flex}.btn:hover{background:var(--panel-3)}.btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.btn.primary{background:var(--accent);color:var(--accent-text);border-color:#0000;font-weight:600}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--panel-2)}.btn.icon{justify-content:center;width:32px;padding:0}.btn[aria-pressed=true]{background:var(--panel-3);border-color:var(--edge)}[data-theme=codex] .btn{background:linear-gradient(#2e384b,#222a39);border-color:#0b0e13;box-shadow:inset 0 0 0 1px #b8954f33}[data-theme=codex] .btn:hover{background:linear-gradient(#3a4660,#2a3447)}[data-theme=codex] .btn.primary{color:#1a1408;background:linear-gradient(#f0cf83,#b8913f);box-shadow:inset 0 1px #fff6,0 1px 2px #0008}[data-theme=codex] .btn[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--edge);background:linear-gradient(#4a3d22,#352b17)}.btn.ghost,[data-theme=codex] .btn.ghost{box-shadow:none;background:0 0;border-color:#0000}.btn.ghost:hover,[data-theme=codex] .btn.ghost:hover{background:var(--panel-2)}[data-theme=codex] .btn.ghost:hover{background:#ffffff0d;box-shadow:inset 0 0 0 1px #b8954f33}.btn.ghost:focus-visible{box-shadow:var(--focus-ring)}.btn.ghost[aria-pressed]{box-shadow:none;background:0 0}.btn.ghost[aria-pressed]:hover{background:var(--panel-2)}.btn.ghost[aria-pressed=false]{color:var(--muted)}.btn.ghost[aria-pressed=true]{color:var(--accent)}[data-theme=night] .btn.primary{background:linear-gradient(#ebb46c,#d49446)}.input{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);width:100%;height:34px;color:var(--text);font-family:var(--font-ui);padding:0 10px;font-size:15px}textarea.input{resize:vertical;height:auto;min-height:88px;padding:8px 10px;line-height:1.45}.input:focus{box-shadow:var(--focus-ring);outline:none}[data-theme=codex] .input{background:#121722;border-color:#0b0e13;box-shadow:inset 0 0 0 1px #b8954f2a}.field{gap:4px;display:grid}.field>span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-family:var(--font-ui)}[data-theme=night] .field>span{text-transform:none;letter-spacing:.02em;font-size:13px}[data-theme=codex] .field>span{font-family:var(--font-display);text-transform:none;font-variant:small-caps;letter-spacing:.08em;font-size:13px}.chip{background:var(--panel-2);border:1px solid var(--border);color:var(--muted);font-size:12px;font-family:var(--font-ui);border-radius:999px;align-items:center;gap:4px;padding:1px 8px;display:inline-flex}kbd{border:1px solid var(--border);background:var(--panel-2);color:var(--muted);border-bottom-width:2px;border-radius:4px;padding:1px 5px;font-family:ui-monospace,monospace;font-size:11px}.rule{font-family:var(--font-display);color:var(--muted);text-transform:uppercase;letter-spacing:.12em;align-items:center;gap:10px;margin:18px 0 8px;font-size:13px;display:flex}.rule:after{content:"";background:linear-gradient(90deg, var(--edge), transparent);flex:1;height:1px}[data-theme=codex] .rule{text-transform:none;font-variant:small-caps;color:var(--accent);font-size:15px}.shell{grid-template-rows:auto minmax(0,1fr) auto;height:100dvh;display:grid;overflow:hidden}.shell>*{min-width:0;min-height:0}.topbar{background:var(--panel);border-bottom:1px solid var(--border);z-index:20;align-items:center;gap:12px;height:52px;padding:0 14px;display:flex;position:relative}[data-theme=codex] .topbar{box-shadow:inset 0 -1px 0 var(--edge-soft), 0 2px 12px #0008;border-bottom:1px solid #0a0d12}[data-theme=night] .topbar{box-shadow:inset 0 -1px #6b563640,0 2px 12px #0006}.topbar .brand{flex:none;align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex}.topbar .brand b{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;max-width:32ch;font-size:18px;font-weight:600;overflow:hidden}[data-theme=night] .topbar .brand b{font-size:20px;font-weight:500}.topbar nav{gap:2px;min-width:0;margin-left:12px;display:flex}.topbar nav a{border-radius:var(--radius);color:var(--muted);font-family:var(--font-ui);align-items:center;gap:6px;padding:6px 12px;font-size:15px;text-decoration:none;display:inline-flex}.topbar nav a:hover{color:var(--text);background:var(--panel-2)}.topbar nav a[data-status=active]{color:var(--text);background:var(--panel-2);box-shadow:inset 0 -2px 0 var(--accent)}.topbar nav a:focus-visible,.topbar .brand:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius);outline:none}.topbar .spacer{flex:1}.topbar-tools{gap:2px;display:flex}.topbar-menu{display:none}.search-trigger{width:260px;color:var(--muted);justify-content:space-between}.page{background:var(--page-bg);height:100%;overflow:auto}.page-inner{max-width:1100px;margin:0 auto;padding:28px 24px 80px}.page h1{font-family:var(--font-title);margin:0 0 4px;font-size:30px;font-weight:600}[data-theme=codex] .page h1{font-variant:small-caps;color:var(--accent)}[data-theme=night] .page h1{font-weight:500}.empty{text-align:center;color:var(--muted);padding:40px}*{scrollbar-width:thin;scrollbar-color:var(--panel-3) transparent}@media (width<=1400px){.topbar nav .nav-label{display:none}.topbar nav a{padding:6px 10px}.search-trigger{width:200px}}@media (width>=1401px) and (width<=1680px){.topbar nav a{gap:5px;padding:6px 7px}.search-trigger{width:168px}}@media (width<=900px){.topbar .brand b{display:none}.search-trigger{width:auto}.search-trigger>span:first-child{font-size:0}}.tabbar{display:none}@media (width<=760px){.topbar{gap:6px;padding:0 8px 0 12px}.topbar nav,.topbar-tools{display:none}.topbar .brand b{max-width:100%;font-size:16px;display:block}.topbar .brand{flex:0 auto}.topbar-menu{display:inline-flex}.search-trigger{justify-content:center;width:36px;height:36px;padding:0}.search-trigger kbd{display:none}.search-trigger>span:first-child{font-size:0}.tabbar{padding:0 4px env(safe-area-inset-bottom);z-index:20;background:var(--panel);border-top:1px solid var(--border);grid-template-columns:repeat(5,1fr);align-items:stretch;display:grid;position:relative}[data-theme=codex] .tabbar{box-shadow:inset 0 1px 0 var(--edge-soft), 0 -2px 12px #0008;border-top-color:#0a0d12}.tabbar a,.tabbar button{height:56px;color:var(--muted);cursor:pointer;font-family:var(--font-ui);letter-spacing:.01em;-webkit-tap-highlight-color:transparent;background:0 0;border:0;align-content:center;justify-items:center;gap:3px;padding:0;font-size:11.5px;text-decoration:none;display:grid;position:relative}[data-theme=codex] .tabbar a,[data-theme=codex] .tabbar button{font-family:var(--font-display);font-variant:small-caps;letter-spacing:.04em;font-size:12.5px}.tabbar a[data-status=active],.tabbar button[aria-expanded=true]{color:var(--accent)}.tabbar a[data-status=active]:before{content:"";background:var(--accent);border-radius:0 0 2px 2px;height:2px;position:absolute;top:-1px;left:28%;right:28%}.tabbar a:focus-visible,.tabbar button:focus-visible{box-shadow:inset var(--focus-ring);border-radius:var(--radius);outline:none}}.more-list{gap:2px;margin:0 0 14px;padding:0;list-style:none;display:grid}.more-list a{border-radius:var(--radius);font-family:var(--font-ui);align-items:center;gap:14px;padding:12px 10px;font-size:16px;text-decoration:none;display:flex}.more-list a svg{color:var(--muted)}.more-list a:hover,.more-list a[data-status=active]{background:var(--panel-2)}.more-list a[data-status=active] svg{color:var(--accent)}.more-list a:focus-visible{box-shadow:var(--focus-ring);outline:none}.more-list a small{color:var(--subtle);margin-left:auto;font-size:13px}.more-row{border-top:1px solid var(--border);font-family:var(--font-ui);justify-content:space-between;align-items:center;gap:12px;padding:10px;display:flex}[data-theme=codex] .more-row{border-top-color:var(--edge-soft)}.more-row .seg{gap:4px;display:flex}::view-transition-old(root){animation-duration:.16s;animation-timing-function:ease-out}::view-transition-new(root){animation-duration:.16s;animation-timing-function:ease-out}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}.more-row .ui-switch-wrap{justify-content:space-between;width:100%}
