/* lexoshpejt design system — dark (default) and light share one structure.
   Type: Marcellus (display), Literata (reading), Manrope (interface). All self-hosted, SIL OFL. */
@font-face{font-family:Marcellus;src:url(/assets/fonts/marcellus.woff) format("woff");font-weight:400;font-display:swap}
@font-face{font-family:Literata;src:url(/assets/fonts/literata.woff) format("woff");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:Literata;src:url(/assets/fonts/literata-italic.woff) format("woff");font-weight:400 700;font-style:italic;font-display:swap}
@font-face{font-family:Manrope;src:url(/assets/fonts/manrope.woff) format("woff");font-weight:400 700;font-display:swap}

:root{
  --f-display:Marcellus,"Times New Roman",serif; --f-read:Literata,Georgia,serif; --f-ui:Manrope,system-ui,-apple-system,"Segoe UI",sans-serif;
  --maxw:1160px; --gutter:clamp(1rem,4vw,2.25rem); --radius:2px;
}
:root,[data-theme=dark]{
  --bg:#12110E; --bg-2:#1B1915; --bg-3:#24211B; --text:#EAE3D2; --muted:#A49C88; --line:rgba(201,170,106,.26); --line-2:rgba(234,227,210,.12);
  --gold:#C6A766; --gold-2:#E0C88F; --on-gold:#14120E; --danger:#E08A76; --ok:#8FB59A;
  --r-bg:#12110E; --r-fg:#E8E2D4; /* reading: exactly two colours */
  --shadow:0 24px 60px rgba(0,0,0,.45); color-scheme:dark;
}
[data-theme=light]{
  --bg:#F6F1E6; --bg-2:#EEE6D5; --bg-3:#E5DBC5; --text:#1D1A15; --muted:#5F5745; --line:rgba(122,95,43,.32); --line-2:rgba(29,26,21,.12);
  --gold:#82632A; --gold-2:#6A4F1F; --on-gold:#FBF8F1; --danger:#A3412C; --ok:#2F6B45;
  --r-bg:#FBF8F1; --r-fg:#1C1A16;
  --shadow:0 20px 50px rgba(60,45,20,.18); color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:400 1.0625rem/1.65 var(--f-read);overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background .25s,color .25s}
img{max-width:100%;height:auto}
a{color:var(--gold-2);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--gold)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
h1,h2,h3{font-weight:400;text-wrap:balance}
p{text-wrap:pretty}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;z-index:99}.skip:focus{left:1rem;top:1rem;background:var(--text);color:var(--bg);padding:.5rem 1rem}
.ic{width:1.15em;height:1.15em;flex:none;vertical-align:-.2em}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.muted{color:var(--muted)}
.hint{color:var(--muted);font:400 .86rem/1.5 var(--f-ui);margin:.4rem 0}
.inline{display:inline;margin:0}
.linklike{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.danger{color:var(--danger)}
.nowrap{white-space:nowrap}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:.5rem;justify-content:center;background:var(--gold);color:var(--on-gold);border:1px solid var(--gold);padding:.8rem 1.5rem;font:600 .93rem/1.2 var(--f-ui);letter-spacing:.01em;text-decoration:none;cursor:pointer;border-radius:var(--radius);transition:background .2s,color .2s,border-color .2s;min-height:44px}
.btn:hover{background:transparent;color:var(--gold-2)}
.btn-ghost{background:transparent;color:var(--gold-2);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn-sm{padding:.45rem 1rem;font-size:.86rem;min-height:36px}
.btn-danger{background:var(--danger);border-color:var(--danger);color:var(--bg)}
.btn-danger:hover{background:transparent;color:var(--danger)}
/* ---------- header ---------- */
.site-header{display:flex;align-items:center;gap:1rem;padding:.9rem var(--gutter);border-bottom:1px solid var(--line);position:relative}
.brand{display:flex;align-items:center;color:var(--text);text-decoration:none;margin-right:auto}
.brand .logo{height:36px;width:auto;display:block}
.logo .lx-emblem{color:var(--gold)} .logo .lx-word{color:var(--text)}
.logo-img{height:38px;width:auto;display:block}
[data-theme=dark] .logo-for-light,[data-theme=light] .logo-for-dark{display:none}
.nav{display:flex;align-items:center;gap:1.4rem;font:500 .92rem var(--f-ui)}
.nav a{color:var(--text);text-decoration:none;opacity:.86}
.nav a:hover,.nav a[aria-current=page]{opacity:1;color:var(--gold-2)}
.nav a[aria-current=page]{box-shadow:0 1px 0 var(--gold)}
.nav .btn{color:var(--on-gold);opacity:1}.nav .btn:hover{color:var(--gold-2)}
.nav .linklike{text-decoration:none;opacity:.86}
.theme-toggle{display:inline-grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);background:transparent;color:var(--gold-2);border-radius:50%;cursor:pointer}
.theme-toggle:hover{border-color:var(--gold)}
[data-theme=dark] .ic-sun,[data-theme=light] .ic-moon{display:none}
.nav-toggle{display:none;background:none;border:1px solid var(--line);color:var(--text);width:44px;height:44px;border-radius:var(--radius);cursor:pointer}
.nav-toggle .ic{width:22px;height:22px}
@media (max-width:860px){
  .nav-toggle{display:inline-grid;place-items:center}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;z-index:30;flex-direction:column;align-items:stretch;gap:0;background:var(--bg-2);border-bottom:1px solid var(--line);padding:.5rem var(--gutter) 1rem}
  .nav.open{display:flex}
  .nav a,.nav form,.nav .linklike{padding:.85rem 0;border-bottom:1px solid var(--line-2);font-size:1rem}
  .nav .btn{margin-top:.8rem;border-bottom:1px solid var(--gold)}
  .nav .theme-toggle{margin-top:.8rem}
  .brand .logo{height:30px}
}
.flash{max-width:var(--maxw);margin:1rem auto 0;width:calc(100% - 2*var(--gutter));padding:.8rem 1.1rem;font:500 .93rem var(--f-ui);border-left:3px solid var(--gold);background:var(--bg-2)}
.flash-error{border-color:var(--danger)}.flash-ok{border-color:var(--ok)}
/* ---------- hero ---------- */
.hero{max-width:900px;margin:0 auto;padding:clamp(3.5rem,10vw,7rem) var(--gutter) clamp(3rem,7vw,5rem);text-align:center}
.hero-emblem{display:block;width:clamp(92px,14vw,128px);height:auto;aspect-ratio:1;margin:0 auto 1.4rem;color:var(--gold);animation:emblem-in 1.6s cubic-bezier(.2,.7,.2,1) both}
@keyframes emblem-in{from{opacity:0;transform:rotate(-22deg) scale(.92)}to{opacity:1;transform:none}}
.hero-kicker{font:400 1.05rem var(--f-display);letter-spacing:.32em;color:var(--gold);margin:0 0 1.6rem;text-transform:lowercase}
.hero h1{font:400 clamp(2rem,5.2vw,3.7rem)/1.14 var(--f-display);margin:0 auto 1.4rem;letter-spacing:.005em}
.hero h1 span{display:block}
.lede{font-size:clamp(1.05rem,2vw,1.2rem);color:var(--muted);max-width:56ch;margin:0 auto 2.2rem;line-height:1.7}
.cta-row{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap}
/* ---------- sections ---------- */
.band{padding-top:clamp(2.75rem,6vw,4.75rem)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:1.75rem;padding-bottom:.75rem}
.sec-head > a{font:600 .88rem var(--f-ui);white-space:nowrap}
.sec-title{font:400 clamp(1.55rem,3.2vw,2.1rem)/1.2 var(--f-display);margin:0;letter-spacing:.01em}
.band > .sec-title{border-bottom:1px solid var(--line);padding-bottom:.75rem;margin-bottom:1.75rem}
.sec-head .muted{margin:.35rem 0 0;font-size:.98rem}
.sec-with-sigil{display:flex;gap:1rem;align-items:center}
.sigil-sm{width:46px;height:46px;color:var(--gold);flex:none}
.narrow-text{max-width:680px;text-align:center}
/* cards: editorial, no boxes */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:2.4rem 2rem}
.card{display:flex;flex-direction:column;gap:1rem}
.card-cover{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--bg-2);outline:1px solid var(--line);outline-offset:-1px}
.card-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.card:hover .card-cover img{transform:scale(1.025)}
.cover-empty{display:grid;place-items:center;width:100%;height:100%;background:radial-gradient(circle at 50% 45%,var(--bg-3),var(--bg-2) 70%)}
.cover-emblem{width:30%;height:auto;aspect-ratio:1;color:var(--gold);opacity:.55}
.card-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.card-cat{font:600 .74rem var(--f-ui);color:var(--gold);text-decoration:none;letter-spacing:.06em;text-transform:uppercase}
.card h3{font:400 1.45rem/1.22 var(--f-display);margin:0}
.card h3 a{color:var(--text);text-decoration:none}.card h3 a:hover{color:var(--gold-2)}
.card-ex{margin:0;color:var(--muted);font-size:.98rem;line-height:1.6}
.card-meta{margin:0;font:400 .8rem var(--f-ui);color:var(--muted)}
.card-meta span{opacity:.5;margin:0 .15rem}
.card.lg{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:center}
.card.lg h3{font-size:clamp(1.9rem,3.6vw,2.7rem)}
.card.lg .card-ex{font-size:1.08rem}
@media (max-width:760px){.card.lg{grid-template-columns:1fr;gap:1.1rem}}
/* favorite button */
.fav{display:inline-flex;align-items:center;gap:.45rem;background:none;border:0;color:var(--muted);cursor:pointer;padding:.35rem;margin:-.35rem;border-radius:var(--radius);font:600 .86rem var(--f-ui);min-width:36px;min-height:36px;justify-content:center}
.fav:hover,.fav[aria-pressed=true]{color:var(--gold)}
.fav .ic{width:20px;height:20px}
.fav-wide{border:1px solid var(--line);padding:.5rem .9rem;margin:0}
.fav[disabled]{opacity:.6}
/* fields of knowledge */
.fields{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));column-gap:2.5rem}
.fields li{border-bottom:1px solid var(--line)}
.fields a{display:grid;grid-template-columns:64px 1fr;grid-template-rows:auto auto auto;column-gap:1.1rem;padding:1.4rem .4rem 1.4rem 0;color:var(--text);text-decoration:none}
.fields .sigil{grid-row:1/4;width:64px;height:64px;color:var(--gold);transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.fields a:hover .sigil{transform:rotate(-12deg)}
.f-name{font:400 1.55rem/1.2 var(--f-display)}
.fields a:hover .f-name{color:var(--gold-2)}
.f-desc{color:var(--muted);font-size:.95rem;line-height:1.5;margin-top:.2rem}
.f-count{font:500 .76rem var(--f-ui);color:var(--muted);margin-top:.5rem;letter-spacing:.03em}
.toplist{margin:0;padding:0;list-style:none;counter-reset:n}
.toplist li{counter-increment:n;display:flex;gap:1.2rem;align-items:baseline;padding:1rem 0;border-bottom:1px solid var(--line-2)}
.toplist li::before{content:counter(n);font:400 1.6rem var(--f-display);color:var(--gold);min-width:1.4rem}
.toplist a{font:400 1.3rem/1.3 var(--f-display);color:var(--text);text-decoration:none;flex:1}.toplist a:hover{color:var(--gold-2)}
.toplist small{font:500 .76rem var(--f-ui);color:var(--muted)}
/* daily quote */
.quote-band{margin-top:clamp(3rem,7vw,5rem);background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(3rem,7vw,4.5rem) var(--gutter)}
.quote-in{max-width:760px;margin:0 auto;text-align:center}
.quote-title{font:400 clamp(1.5rem,3vw,1.9rem) var(--f-display);margin:0;letter-spacing:.04em;color:var(--gold-2)}
.quote-sub{font:500 .8rem var(--f-ui);color:var(--muted);margin:.35rem 0 1.4rem;letter-spacing:.04em}
.quote-div{width:180px;height:36px;color:var(--gold);display:block;margin:0 auto 1.6rem}
.quote{margin:0;animation:quote-in 1.4s .2s ease both}
@keyframes quote-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.quote blockquote{margin:0}
.quote blockquote p{font:italic 400 clamp(1.4rem,3.2vw,2rem)/1.45 var(--f-read);margin:0 0 1.3rem}
.quote figcaption{font:500 .92rem var(--f-ui);display:flex;flex-direction:column;gap:.2rem}
.q-author{color:var(--gold-2);letter-spacing:.04em}
.q-source{color:var(--muted);font-size:.82rem;font-weight:400}
.newsletter .nl-form{display:flex;flex-wrap:wrap;gap:.8rem;max-width:680px}
.newsletter input[type=email]{flex:1 1 240px;font:1rem var(--f-ui);padding:.8rem .9rem;background:var(--bg-2);color:var(--text);border:1px solid var(--line);border-radius:var(--radius)}
.check-d{flex-basis:100%;font:.85rem var(--f-ui);color:var(--muted);display:flex;gap:.5rem;align-items:flex-start}
.about-body{max-width:44rem;font-size:1.12rem;line-height:1.75}
.about-body p{margin:0 0 1rem}
/* footer */
.site-footer{margin-top:clamp(4rem,9vw,6rem);text-align:center;padding:2.5rem var(--gutter) 2.5rem;border-top:1px solid var(--line)}
.foot-div{width:160px;height:32px;color:var(--gold);display:block;margin:0 auto 1.2rem}
.foot-mark{display:flex;align-items:center;justify-content:center;gap:.6rem;font:400 1.35rem var(--f-display);margin:0 0 .3rem;letter-spacing:.04em}
.foot-emblem{width:30px;height:30px;color:var(--gold);object-fit:contain}
.motto{font:italic 400 1.05rem var(--f-read);color:var(--muted);margin:0 0 1.4rem}
.foot-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.4rem;font:500 .86rem var(--f-ui);margin-bottom:1.2rem}
.foot-links a,.foot-links .linklike{color:var(--text);opacity:.8;text-decoration:none}
.foot-links a:hover,.foot-links .linklike:hover{opacity:1;color:var(--gold-2)}
.fine{font:.78rem var(--f-ui);color:var(--muted);margin:0}
/* ---------- library ---------- */
.lib-head{padding-top:clamp(2rem,5vw,3.5rem)}
.lib-head h1{font:400 clamp(2.1rem,5vw,3.2rem)/1.1 var(--f-display);margin:0 0 .6rem}
.lib-title{display:flex;align-items:center;gap:1rem;margin-top:.6rem}
.lib-title .sigil{width:64px;height:64px;color:var(--gold);flex:none}
.lib-title h1{margin:0}
.crumbs{font:500 .82rem var(--f-ui);color:var(--muted)}.crumbs a{color:inherit;text-decoration:none}.crumbs a:hover{color:var(--gold-2)}
.crumbs span{margin:0 .3rem;opacity:.6}
.filters{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;margin:1.6rem 0 1rem}
.filters input[type=search],.filters select{font:.95rem var(--f-ui);padding:.65rem .8rem;background:var(--bg-2);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);max-width:100%;min-height:44px}
.filters input[type=search]{flex:1 1 260px}
.filters .reset{font:.86rem var(--f-ui)}
.tagrow{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}
.chip{font:500 .8rem var(--f-ui);padding:.3rem .85rem;border:1px solid var(--line);border-radius:99px;color:var(--text);text-decoration:none}
.chip:hover,.chip.on{background:var(--gold);color:var(--on-gold);border-color:var(--gold)}
.count{font:.85rem var(--f-ui);margin:1rem 0 1.6rem}
.empty{padding:3rem 0;text-align:center}.empty h2{font:400 1.8rem var(--f-display)}
.pager{display:flex;justify-content:center;align-items:center;gap:1.5rem;margin:3rem 0 1rem;font:500 .95rem var(--f-ui)}
/* fields page + legal */
.page-head{text-align:center;padding:clamp(2.5rem,6vw,4rem) 0 2rem}
.page-head h1{font:400 clamp(2.2rem,5vw,3.3rem)/1.1 var(--f-display);margin:0 0 .8rem}
.page-emblem{width:72px;height:72px;color:var(--gold);display:block;margin:0 auto 1.2rem;object-fit:contain}
.lede-sm{color:var(--muted);max-width:52ch;margin:0 auto;font-size:1.08rem}
.field-room{display:grid;grid-template-columns:120px 1fr;gap:clamp(1.2rem,4vw,2.5rem);padding:2.2rem 0;border-top:1px solid var(--line);max-width:860px;margin:0 auto}
.field-room:last-of-type{border-bottom:1px solid var(--line)}
.sigil-lg{width:120px;height:120px;color:var(--gold)}
.field-room h2{font:400 2rem var(--f-display);margin:0 0 .4rem}.field-room h2 a{color:var(--text);text-decoration:none}.field-room h2 a:hover{color:var(--gold-2)}
.fr-desc{color:var(--muted);margin:0 0 1rem}
.fr-subs{list-style:none;margin:0 0 .6rem;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;font:500 .9rem var(--f-ui)}
.fr-subs a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--line)}.fr-subs a:hover{color:var(--gold-2);border-color:var(--gold)}
.fine-note{text-align:center;color:var(--muted);font:.82rem var(--f-ui);max-width:60ch;margin:2rem auto 0}
@media (max-width:560px){.field-room{grid-template-columns:64px 1fr}.sigil-lg{width:64px;height:64px}}
.legal{max-width:760px}
.legal-body{font-size:1.04rem;line-height:1.75}
.legal-body h2{font:600 1.3rem/1.3 var(--f-read);margin:2.2rem 0 .6rem}
.legal-body h3{font:600 1.08rem var(--f-read);margin:1.5rem 0 .4rem}
.legal-body table{width:100%;border-collapse:collapse;font:.9rem/1.5 var(--f-ui);margin:1rem 0;display:block;overflow-x:auto}
.legal-body th,.legal-body td{border-bottom:1px solid var(--line-2);padding:.55rem .6rem;text-align:left;vertical-align:top}
.legal-body code{font-size:.88em;background:var(--bg-2);padding:.05rem .3rem}
.preview-bar{background:var(--gold);color:var(--on-gold);font:600 .9rem var(--f-ui);padding:.7rem 1rem;margin:1rem 0}.preview-bar a{color:inherit}
/* ---------- article reader (two colours inside) ---------- */
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:40}
.progress span{display:block;height:100%;width:0;background:var(--gold)}
.reader{--r-size:19px;--r-lh:1.75;max-width:780px;margin:clamp(1.5rem,4vw,3rem) auto 0;padding:clamp(1.25rem,5vw,3.25rem);background:var(--r-bg);color:var(--r-fg)}
[data-theme=light] .reader{box-shadow:0 0 0 1px var(--line-2)}
.reader a{color:inherit}
.reader-head{text-align:center}
.reader .crumbs{color:inherit;opacity:.72}
.head-sigil{width:54px;height:54px;color:inherit;display:block;margin:1.4rem auto .8rem;opacity:.85}
.reader-head h1{font:400 clamp(2rem,5.5vw,3.1rem)/1.12 var(--f-display);margin:0 0 .9rem;letter-spacing:.005em}
.subtitle{font:italic 400 clamp(1.15rem,2.4vw,1.35rem)/1.5 var(--f-read);margin:0 auto 1rem;max-width:36ch}
.byline{font:500 .84rem var(--f-ui);opacity:.72;margin:0 0 1.2rem}.byline span{margin:0 .2rem;opacity:.6}
.head-actions{display:flex;justify-content:center;margin-bottom:1.6rem}
.reader .fav{color:inherit}.reader .fav-wide{border-color:currentColor;opacity:.85}.reader .fav[aria-pressed=true]{opacity:1}
.reader-cover{margin:0 calc(-1*clamp(1.25rem,5vw,3.25rem)) 1.8rem}.reader-cover img{display:block;width:100%}
.modes{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:0 0 1.2rem}
.modes [role=tab]{display:flex;align-items:center;gap:.8rem;text-align:left;background:transparent;color:inherit;border:1px solid currentColor;border-radius:var(--radius);padding:.85rem 1rem;cursor:pointer;opacity:.6;font:inherit;min-height:64px}
.modes [role=tab] .ic{width:26px;height:26px}
.modes [role=tab] span{display:flex;flex-direction:column}
.modes [role=tab] b{font:700 .98rem var(--f-ui)}
.modes [role=tab] small{font:400 .78rem/1.35 var(--f-ui);opacity:.85}
.modes [role=tab][aria-selected=true]{opacity:1;border-width:2px;padding:calc(.85rem - 1px) calc(1rem - 1px)}
.modes [role=tab]:hover{opacity:1}
@media (max-width:520px){.modes [role=tab] small{display:none}.modes [role=tab]{min-height:54px;padding:.7rem}}
.mode-panel[hidden]{display:none}
.tools{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;padding:.65rem 0;border-top:1px solid currentColor;border-bottom:1px solid currentColor;border-color:color-mix(in srgb,currentColor 22%,transparent);margin-bottom:1.6rem}
.tool{font:600 .86rem var(--f-ui);background:transparent;color:inherit;border:1px solid color-mix(in srgb,currentColor 35%,transparent);padding:.45rem .75rem;border-radius:var(--radius);cursor:pointer;min-height:40px;display:inline-flex;align-items:center;gap:.4rem;list-style:none}
.tool::-webkit-details-marker{display:none}
.tool:hover{border-color:currentColor}
.tool sup{font-size:.7em}
.tools-gap{flex:1}
.tool-speed{letter-spacing:.03em}
.tool-more{position:relative}
.tool-more[open] > .tool{border-color:currentColor}
.tool-pop{position:absolute;z-index:15;top:calc(100% + .4rem);left:0;width:min(290px,80vw);background:var(--r-bg);color:var(--r-fg);border:1px solid currentColor;padding:.9rem;box-shadow:var(--shadow)}
.pop-label{font:600 .76rem var(--f-ui);margin:.2rem 0 .4rem;opacity:.75}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;margin-bottom:.7rem}
.seg button,.seg-one{font:500 .84rem var(--f-ui);background:transparent;color:inherit;border:1px solid color-mix(in srgb,currentColor 35%,transparent);padding:.5rem;border-radius:var(--radius);cursor:pointer;min-height:40px}
.seg button[aria-pressed=true]{border:2px solid currentColor;padding:calc(.5rem - 1px)}
.seg-one{display:flex;align-items:center;gap:.5rem;width:100%}
.f-serif{font-family:var(--f-read)}.f-sans{font-family:var(--f-ui)}
.resume{font:500 .88rem var(--f-ui);border:1px solid currentColor;padding:.6rem .9rem;margin-bottom:1.4rem;display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}
.resume[hidden]{display:none}
.resume button{font:700 .85rem var(--f-ui);background:var(--r-fg);color:var(--r-bg);border:0;padding:.45rem .85rem;cursor:pointer;border-radius:var(--radius)}
.mark{display:block;margin:0 auto;color:inherit;opacity:.55}
.mark-start{width:22px;height:22px;margin-bottom:1.6rem}
.mark-end{width:26px;height:26px;margin-top:1.4rem}
.prose{font:400 var(--r-size)/var(--r-lh) var(--f-read);hyphens:manual;overflow-wrap:break-word;font-variant-numeric:oldstyle-nums}
.reader[data-font=sans] .prose{font-family:var(--f-ui);font-variant-numeric:normal}
.prose p{margin:0 0 1.15em}
.prose h2{font:600 1.45em/1.25 var(--f-read);margin:1.2em 0 .5em}
.reader[data-font=sans] .prose h2,.reader[data-font=sans] .prose h3{font-family:var(--f-ui)}
.prose h3{font:600 1.18em/1.3 var(--f-read);margin:1.5em 0 .4em}
.prose h4{font:600 1em var(--f-read);margin:1.3em 0 .3em}
.prose blockquote{margin:1.6em 0;padding:.1em 0 .1em 1.2em;border-left:2px solid currentColor;font-style:italic}
.prose img,.prose video{max-width:100%;height:auto}
.prose hr{border:0;height:1px;background:currentColor;opacity:.25;margin:2.2em auto;width:40%}
.prose ul,.prose ol{padding-left:1.4em;margin:0 0 1.15em}.prose li{margin-bottom:.4em}
.prose a{text-decoration:underline;text-underline-offset:3px}
.sec-div{display:flex;justify-content:center;margin:2.2em 0 .4em;opacity:.5}
.sec-div svg{width:132px;height:26px}
.prose .speaking{outline:2px solid currentColor;outline-offset:6px;border-radius:1px;scroll-margin:140px}
.reader-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.8rem;padding-top:1.2rem;border-top:1px solid color-mix(in srgb,currentColor 22%,transparent)}
.reader .chip{color:inherit;border-color:color-mix(in srgb,currentColor 35%,transparent)}
.reader .chip:hover{background:var(--r-fg);color:var(--r-bg)}
/* listening */
.player{position:sticky;top:6px;z-index:12;background:var(--r-bg);color:var(--r-fg);border:1px solid currentColor;padding:1rem 1.1rem;margin:0 0 1rem;font:400 .92rem/1.5 var(--f-ui)}
.player.is-playing{box-shadow:var(--shadow)}
.player audio{width:100%}
.ls-intro{margin:0 0 .8rem}
.ls-status{margin:.4rem 0 0;font-weight:600}
.ls-status[hidden],.ls-en[hidden],.ls-controls[hidden],#ls-voice-wrap[hidden]{display:none}
.ls-en{border-top:1px solid color-mix(in srgb,currentColor 25%,transparent);padding-top:.8rem;margin-top:.4rem}
.ls-en p{margin:0 0 .7rem}
.ls-en .btn{background:var(--r-fg);color:var(--r-bg);border-color:var(--r-fg)}
.ls-lang{margin:0 0 .7rem;font-size:.86rem}
.ls-row{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}
.ls-btn{display:inline-grid;place-items:center;width:46px;height:46px;border:1px solid currentColor;background:transparent;color:inherit;border-radius:50%;cursor:pointer}
.ls-btn .ic{width:20px;height:20px}
.ls-play{width:56px;height:56px;background:var(--r-fg);color:var(--r-bg)}
.ls-play .ic-pause,.ls-play.is-on .ic-play{display:none}.ls-play.is-on .ic-pause{display:block}
.ls-pos{display:flex;flex-direction:column;margin-left:.5rem;font-weight:600}
.ls-time{font-weight:400;font-variant-numeric:tabular-nums;opacity:.8;font-size:.84rem}
.ls-track{height:3px;background:color-mix(in srgb,currentColor 22%,transparent);margin:.9rem 0}.ls-track span{display:block;height:100%;width:0;background:currentColor;transition:width .3s}
.ls-opts label{display:flex;align-items:center;gap:.4rem}
.ls-opts select{font:.85rem var(--f-ui);padding:.35rem .5rem;background:var(--r-bg);color:var(--r-fg);border:1px solid currentColor;max-width:min(100%,250px);min-height:36px}
.back-read{font:500 .86rem var(--f-ui);margin:0 0 1.4rem;display:inline-block}
.reader.listening .mark-start{margin-top:.5rem}
/* prev/next */
.pn{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2.5rem;max-width:780px}
.pn a{display:block;padding:1rem 0;border-top:1px solid var(--line);text-decoration:none;color:var(--text);font:400 1.15rem/1.3 var(--f-display)}
.pn a:hover{color:var(--gold-2)}.pn small{display:block;font:500 .75rem var(--f-ui);color:var(--muted);margin-bottom:.3rem}
.pn-next{text-align:right;grid-column:2}
@media (max-width:640px){.pn{grid-template-columns:1fr}.pn-next{grid-column:1;text-align:left}.reader{margin-top:0}}
/* speed reading dialog */
body.sr-lock{overflow:hidden}
.sr-overlay{position:fixed;inset:0;z-index:60;background:color-mix(in srgb,var(--r-bg) 94%,transparent);display:flex;align-items:center;justify-content:center;padding:1rem}
.sr-overlay[hidden]{display:none}
.sr-panel{width:min(720px,100%);max-height:100%;overflow:auto;background:var(--r-bg);color:var(--r-fg);border:1px solid currentColor;padding:clamp(1.2rem,4vw,2.4rem)}
.sr-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}
.sr-top h2{font:400 1.7rem var(--f-display);margin:0;letter-spacing:.04em;display:flex;align-items:center;gap:.6rem}
.sr-x{background:none;border:1px solid currentColor;color:inherit;width:44px;height:44px;cursor:pointer;display:grid;place-items:center;border-radius:var(--radius)}
.sr-step[hidden]{display:none}
.sr-step p{margin:0 0 1rem}.small{font-size:.88rem;opacity:.8}
.sr-levels,.sr-modes,.sr-self{border:0;padding:0;margin:1.2rem 0;display:grid;gap:.5rem}
.sr-levels legend,.sr-modes legend,.sr-self legend{font:700 .9rem var(--f-ui);margin-bottom:.5rem}
.sr-levels label,.sr-modes label,.sr-self label{display:flex;gap:.7rem;align-items:baseline;padding:.75rem .9rem;border:1px solid color-mix(in srgb,currentColor 35%,transparent);cursor:pointer;font:.95rem var(--f-ui)}
.sr-levels label:has(input:checked),.sr-modes label:has(input:checked),.sr-self label:has(input:checked){border:2px solid currentColor;padding:calc(.75rem - 1px) calc(.9rem - 1px)}
.sr-levels span{opacity:.75;font-size:.85rem;margin-left:auto}
.sr-self{grid-template-columns:repeat(3,1fr)}
.sr-panel .btn{background:var(--r-fg);color:var(--r-bg);border-color:var(--r-fg)}
.sr-panel .btn-ghost{background:transparent;color:var(--r-fg)}
.sr-stage{position:relative;height:clamp(140px,28vh,200px);display:flex;flex-direction:column;justify-content:center;border-top:1px solid currentColor;border-bottom:1px solid currentColor}
.sr-guide{position:absolute;left:38%;width:2px;height:14px;background:currentColor}.sr-guide:first-child{top:0}.sr-guide:last-child{bottom:0}
.sr-word{margin:0!important;display:grid;grid-template-columns:38% auto 1fr;align-items:baseline;font:400 clamp(2rem,7vw,3.4rem)/1 var(--f-read);white-space:nowrap}
.sr-word .l{text-align:right}.sr-word .f{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:8px;font-weight:700}.sr-word .r{text-align:left}
.sr-word.phrase{display:block;text-align:center;font-size:clamp(1.5rem,5vw,2.4rem);white-space:normal}
.sr-track{height:3px;background:color-mix(in srgb,currentColor 22%,transparent);margin-top:1rem}.sr-track span{display:block;height:100%;width:0;background:currentColor}
.sr-meta{display:flex;justify-content:space-between;font:.8rem var(--f-ui);opacity:.8;margin:.5rem 0 1.2rem!important}
.sr-ctrl{display:flex;justify-content:center;align-items:center;gap:.7rem;flex-wrap:wrap}
.sr-ctrl button{min-width:48px;height:48px;padding:0 1rem;background:transparent;border:1px solid currentColor;color:inherit;cursor:pointer;font:600 .95rem var(--f-ui);border-radius:var(--radius);display:inline-grid;place-items:center}
.sr-ctrl button.play{background:var(--r-fg);color:var(--r-bg);min-width:64px}
.sr-ctrl .play .ic-play,.sr-ctrl .play.is-on .ic-pause{display:block}.sr-ctrl .play .ic-pause,.sr-ctrl .play.is-on .ic-play{display:none}
.sr-wpm{display:grid;gap:.4rem;font:.9rem var(--f-ui);margin:1.4rem 0 .6rem}
.sr-wpm input{width:100%;accent-color:currentColor}
.sr-mode-inline{display:flex;gap:.5rem;align-items:center;font:.9rem var(--f-ui)}
@media (hover:none){.sr-keys{display:none}}
.sr-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem;margin:1rem 0}
.sr-opt{padding:.8rem;background:transparent;border:1px solid currentColor;color:inherit;font:1rem var(--f-read);cursor:pointer}
.sr-opt.ok{border-width:3px;font-weight:700}.sr-opt.no{text-decoration:line-through;opacity:.6}
.sr-qres,.sr-advice{font:600 .95rem var(--f-ui);min-height:1.2em}
.sr-end{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.4rem}
@media (max-width:560px){.sr-self{grid-template-columns:1fr}.sr-levels label{flex-wrap:wrap}.sr-levels span{margin-left:0;flex-basis:100%}}
/* ---------- forms, panels, account, admin ---------- */
.panel{max-width:var(--maxw);margin:3rem auto;padding:clamp(1.5rem,4vw,3rem);background:var(--bg-2);border:1px solid var(--line)}
.panel.narrow{max-width:520px;width:calc(100% - 2*var(--gutter))}
.panel h1{font:400 2rem/1.15 var(--f-display);margin:0 0 1rem}
.form{display:grid;gap:1.1rem;margin-top:1.25rem}
.form label{display:grid;gap:.4rem;font:600 .9rem var(--f-ui)}
.form small{font-weight:400;color:var(--muted)}
.form input:not([type=checkbox]):not([type=radio]):not([type=range]),.form textarea,.form select{font:400 1rem var(--f-ui);padding:.72rem .85rem;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:var(--radius);width:100%;min-height:44px}
.form textarea{font-family:var(--f-read);line-height:1.55;resize:vertical}
.form .check,.check-inline{display:flex;gap:.6rem;align-items:flex-start;font-weight:500}
.form .check input{margin-top:.25rem}
.form fieldset{border:0;padding:0;margin:0;display:grid;gap:.4rem}
.form legend{font:700 .9rem var(--f-ui);margin-bottom:.3rem}
.form .radio{display:flex;gap:.6rem;align-items:center;font-weight:500}
.form input[type=range]{width:100%;accent-color:var(--gold)}
.form output{font-variant-numeric:tabular-nums}
.narrow-form{max-width:520px}
.grid-form{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));align-items:end}
.grid-form .span2{grid-column:1/-1}
.inline-form{display:flex;flex-wrap:wrap;gap:.8rem;align-items:end}
.aside{margin-top:1.5rem;font:.92rem var(--f-ui);color:var(--muted)}
.sample{border:1px solid var(--line);padding:1rem;margin:0;font-family:var(--f-read)}
.sample.f-sans{font-family:var(--f-ui)}
.acc{display:grid;grid-template-columns:230px 1fr;gap:clamp(1.5rem,4vw,3rem);padding-top:clamp(2rem,5vw,3rem)}
.acc-nav{display:flex;flex-direction:column;gap:.2rem;font:600 .92rem var(--f-ui);position:sticky;top:1rem;align-self:start}
.acc-nav a{color:var(--text);text-decoration:none;padding:.6rem .8rem;border-left:2px solid transparent;opacity:.82}
.acc-nav a:hover{opacity:1;color:var(--gold-2)}
.acc-nav a[aria-current=page]{border-left-color:var(--gold);opacity:1;background:var(--bg-2)}
.admin-label{font:700 .72rem var(--f-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 .4rem .8rem}
.acc-main{min-width:0}
.acc-main h1{font:400 clamp(1.9rem,4vw,2.5rem)/1.15 var(--f-display);margin:0 0 1.2rem}
.acc-main h2{font:400 1.45rem var(--f-display);margin:2.2rem 0 .9rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}
.acc-main h3{font:600 1.05rem var(--f-ui);margin:1.6rem 0 .6rem}
@media (max-width:820px){.acc{grid-template-columns:1fr}.acc-nav{position:static;flex-direction:row;overflow-x:auto;gap:.3rem;padding-bottom:.4rem;border-bottom:1px solid var(--line)}
  .acc-nav a{white-space:nowrap;border-left:0;border-bottom:2px solid transparent}.acc-nav a[aria-current=page]{border-bottom-color:var(--gold)}.admin-label{display:none}}
.acc-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;margin:0 0 1rem}
.acc-stats div{border-top:1px solid var(--gold);padding-top:.7rem}
.acc-stats dt{font:500 .82rem var(--f-ui);color:var(--muted)}
.acc-stats dd{margin:.2rem 0 0;font:400 2.1rem var(--f-display)}
.acc-stats dd a{color:var(--text);text-decoration:none}
.acc-stats dd.small{font:500 .92rem/1.5 var(--f-ui)}
.rows{list-style:none;margin:0;padding:0}
.row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.95rem 0;border-bottom:1px solid var(--line-2)}
.row-main{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.row-cat{font:600 .72rem var(--f-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--gold)}
.row-title{font:400 1.2rem/1.3 var(--f-display);color:var(--text);text-decoration:none}.row-title:hover{color:var(--gold-2)}
.row-meta{font:.8rem var(--f-ui);color:var(--muted)}
.row-bar{display:block;width:min(260px,60vw);height:3px;background:var(--line-2);margin:.35rem 0 .1rem}.row-bar span{display:block;height:100%;background:var(--gold)}
.small-rows .row{padding:.6rem 0}
.empty-line{color:var(--muted);font-size:1.02rem}
.inline-ic{color:var(--gold)}
.danger-form{margin-top:1.4rem}
.notice{border:1px solid var(--gold);background:var(--bg-2);padding:1rem 1.2rem;margin:0 0 1.4rem;font:.93rem/1.55 var(--f-ui)}
.notice ul{margin:.5rem 0;padding-left:1.2rem}
.tbl{width:100%;border-collapse:collapse;font:.9rem/1.45 var(--f-ui);margin:.6rem 0 1rem}
.tbl th{text-align:left;font-weight:700;color:var(--muted);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--line);padding:.55rem .5rem}
.tbl td{border-bottom:1px solid var(--line-2);padding:.65rem .5rem;vertical-align:top}
.tbl tr.is-hidden td{opacity:.6}
@media (max-width:700px){.tbl{display:block;overflow-x:auto}}
.tag{display:inline-block;font:600 .7rem var(--f-ui);border:1px solid var(--line);padding:.1rem .45rem;border-radius:99px;color:var(--muted);vertical-align:middle;margin-left:.3rem}
.tag.warn{border-color:var(--danger);color:var(--danger)}
.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:2rem}
.adm-field{border:1px solid var(--line);padding:1.2rem 1.3rem;margin-bottom:1.4rem;scroll-margin-top:1rem}
.adm-field-head{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}
.adm-field-head .sigil{width:48px;height:48px;color:var(--gold)}
.adm-field-head h2{margin:0;border:0;padding:0;flex:1}
.adm-field details > summary{cursor:pointer;font:600 .88rem var(--f-ui);color:var(--gold-2);margin:.8rem 0}
.mv{display:inline-flex;gap:.3rem}.mv .tool{min-height:34px;padding:.2rem .6rem;color:var(--text)}
.row-edit summary{cursor:pointer;font:600 .85rem var(--f-ui);color:var(--gold-2)}
.row-edit[open]{min-width:min(560px,80vw)}
.sym-pick{display:flex!important;flex-wrap:wrap;gap:.5rem}
.sym-pick label{display:flex!important;align-items:center;gap:.4rem;border:1px solid var(--line);padding:.4rem .6rem;font-weight:500!important;cursor:pointer}
.sym-pick label:has(input:checked){border-color:var(--gold);background:var(--bg-2)}
.sym-pick .sigil-sm{width:34px;height:34px}
.add-sub{display:flex;gap:.6rem;margin-top:.8rem;flex-wrap:wrap}
.add-sub input{flex:1 1 220px;font:400 .95rem var(--f-ui);padding:.55rem .75rem;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);min-height:40px}
.tr-grid{display:grid;gap:1rem}
.tr-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;border-bottom:1px solid var(--line-2);padding-bottom:1rem}
.tr-sq{margin:0;font-size:.95rem;line-height:1.55;color:var(--muted)}
.tr-n{display:inline-block;font:700 .75rem var(--f-ui);color:var(--gold);margin-right:.5rem}
@media (max-width:760px){.tr-row{grid-template-columns:1fr}}
.set{border-top:1px solid var(--line);padding-top:.4rem;margin-top:1.4rem;scroll-margin-top:1rem}
.brand-prev{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}
.bp{padding:1.4rem;display:flex;flex-direction:column;gap:.8rem;align-items:flex-start;border:1px solid var(--line)}
.bp img{height:56px;width:auto}
.bp-dark{background:#12110E;color:#A49C88}.bp-light{background:#F6F1E6;color:#5F5745}
.bp-l{font:600 .75rem var(--f-ui)}
@media (max-width:600px){.brand-prev{grid-template-columns:1fr}}
.editor{border:1px solid var(--line);background:var(--bg)}
.ed-bar{display:flex;flex-wrap:wrap;gap:.3rem;padding:.5rem;border-bottom:1px solid var(--line);background:var(--bg-2);position:sticky;top:0;z-index:2}
.ed-bar button{font:600 .8rem var(--f-ui);background:transparent;color:var(--text);border:1px solid var(--line);padding:.35rem .6rem;border-radius:var(--radius);cursor:pointer;min-height:34px}
.ed-bar button:hover,.ed-bar button[aria-pressed=true]{border-color:var(--gold);color:var(--gold-2)}
.ed-area{min-height:320px;padding:1rem 1.2rem;outline:none;--r-size:17px;--r-lh:1.7}
.ed-src{width:100%;min-height:320px;border:0!important;font:.88rem/1.5 ui-monospace,Menlo,monospace!important;padding:1rem!important}
.ed-actions{display:flex;flex-wrap:wrap;gap:.6rem}
/* ---------- consent + sign-in prompt ---------- */
.consent{position:fixed;left:0;right:0;bottom:0;z-index:70;padding:0 var(--gutter) var(--gutter);pointer-events:none}
.consent[hidden]{display:none}
.consent-in{pointer-events:auto;max-width:760px;margin:0 auto;background:var(--bg-2);color:var(--text);border:1px solid var(--gold);box-shadow:var(--shadow);padding:1.3rem 1.4rem;font:400 .92rem/1.55 var(--f-ui)}
.consent h2{font:400 1.3rem var(--f-display);margin:0 0 .5rem}
.consent p{margin:0 0 1rem}
.consent-actions{display:flex;flex-wrap:wrap;gap:.6rem}
.consent-actions .btn{flex:1 1 160px}
.consent-custom{display:grid;gap:.6rem;margin:0 0 1rem}
.consent-custom[hidden]{display:none}
.cc-row{display:flex;gap:.7rem;align-items:flex-start;border:1px solid var(--line);padding:.7rem .8rem}
.cc-row input{margin-top:.3rem;accent-color:var(--gold)}
.cc-row b{display:block}
.cc-note{color:var(--muted);font-size:.85rem;margin:0!important}
.gate{position:fixed;inset:0;z-index:80;background:rgba(10,9,7,.6);display:grid;place-items:center;padding:1rem}
.gate[hidden]{display:none}
.gate-in{position:relative;max-width:440px;width:100%;background:var(--bg-2);border:1px solid var(--gold);padding:2rem 1.8rem 1.4rem;text-align:center;box-shadow:var(--shadow)}
.gate-ic{width:40px;height:40px;color:var(--gold)}
.gate h2{font:400 1.55rem var(--f-display);margin:.6rem 0 .6rem}
.gate p{color:var(--muted);margin:0 0 1.3rem;font-size:1rem}
.gate-actions{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-bottom:1rem}
.gate .linklike{font:500 .88rem var(--f-ui);color:var(--muted)}
.gate-x{position:absolute;top:.6rem;right:.6rem;background:none;border:0;color:var(--muted);width:40px;height:40px;cursor:pointer;display:grid;place-items:center}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
