:root{
  --ink:#0C0D10; --ink-2:#13151A; --ink-3:#1B1E24;
  --paper:#FAF6EE; --paper-2:#F3ECDF; --paper-3:#EAE0CE;
  --text:#171A1F; --soft:#555B64; --muted:#616872;
  --gold:#C8912E; --gold-lite:#E8B75D; --gold-deep:#8A5F14;
  --line:#E2D8C6; --line-2:#D3C6AE;
  --white:#FDFBF7;
  --serif:"Fraunces",Georgia,serif;
  --sans:"Inter",system-ui,-apple-system,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;
  --r-sm:6px; --r:10px; --r-lg:16px;
  --shadow-1:0 1px 2px rgba(90,70,30,.06);
  --shadow-2:0 1px 2px rgba(90,70,30,.07),0 12px 32px -12px rgba(90,70,30,.22);
  --max:1180px;
  --dur:.32s; --ease:cubic-bezier(.2,.8,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{
  margin:0; background:var(--paper); color:var(--text);
  font-family:var(--sans); font-size:16.5px; line-height:1.65;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{max-width:100%; display:block}
a{color:inherit}
button{font:inherit}
::selection{background:var(--gold-lite); color:#1a1200}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px; border-radius:3px}
.wrap{width:100%; max-width:var(--max); margin-inline:auto; padding-inline:24px}
@media(max-width:520px){.wrap{padding-inline:18px}}

/* ---------- type ---------- */
h1,h2,h3,h4{font-family:var(--serif); font-weight:400; margin:0; letter-spacing:-.015em; line-height:1.08; text-wrap:balance}
h1{font-size:clamp(2.5rem,6.4vw,4.5rem); font-weight:300}
h2{font-size:clamp(1.85rem,3.9vw,2.9rem); font-weight:300}
h3{font-size:clamp(1.15rem,2vw,1.35rem); font-weight:500; line-height:1.25; letter-spacing:-.01em}
p{margin:0}
.eyebrow{
  font-family:var(--sans); font-size:.7rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--gold-deep);
  display:flex; align-items:center; gap:10px;
}
.eyebrow::before{content:""; width:26px; height:1px; background:var(--gold); flex:none}
.on-dark .eyebrow{color:var(--gold-lite)}
.lede{font-size:clamp(1.02rem,1.6vw,1.15rem); color:var(--soft); line-height:1.62; max-width:60ch}
.on-dark .lede{color:rgba(253,251,247,.72)}
.mono{font-family:var(--mono); font-variant-numeric:tabular-nums}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-height:48px; padding:0 22px; border-radius:100px; border:1px solid transparent;
  font-size:.94rem; font-weight:600; text-decoration:none; cursor:pointer;
  transition:transform var(--dur) var(--ease), background var(--dur) var(--ease),
             border-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.btn svg{flex:none}
.btn-gold{background:var(--gold); color:#160F00; box-shadow:0 1px 2px rgba(0,0,0,.15)}
.btn-gold:hover{background:var(--gold-lite); transform:translateY(-1px); box-shadow:0 8px 22px -8px rgba(200,145,46,.65)}
.btn-ghost-light{border-color:rgba(253,251,247,.26); color:var(--white)}
.btn-ghost-light:hover{border-color:rgba(253,251,247,.6); background:rgba(253,251,247,.06)}
.btn-ghost{border-color:var(--line-2); color:var(--text); background:transparent}
.btn-ghost:hover{border-color:var(--gold); color:var(--gold-deep); background:#fff}
.btn:active{transform:translateY(0)}

/* ---------- header ---------- */
.hdr{
  position:sticky; top:0; z-index:60;
  background:rgba(12,13,16,.86); backdrop-filter:blur(14px) saturate(1.3);
  border-bottom:1px solid rgba(253,251,247,.10);
}
.hdr-in{display:flex; align-items:center; gap:18px; height:70px}
.brand{display:flex; align-items:center; gap:11px; text-decoration:none; color:var(--white); flex:none}
.brand-mark{width:30px; height:30px; flex:none; color:var(--gold)}
.brand-txt{display:flex; flex-direction:column; line-height:1}
.brand-name{font-family:var(--serif); font-size:1.22rem; font-weight:600; letter-spacing:.11em}
.brand-sub{font-size:.545rem; letter-spacing:.235em; text-transform:uppercase; color:rgba(253,251,247,.55); margin-top:5px; font-weight:500}
.nav{display:flex; align-items:center; gap:2px; margin-left:auto}
.nav a{
  color:rgba(253,251,247,.74); text-decoration:none; font-size:.875rem; font-weight:500;
  padding:9px 12px; border-radius:var(--r-sm); transition:color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.nav a:hover{color:var(--white); background:rgba(253,251,247,.07)}
.hdr .btn{margin-left:10px; min-height:42px; padding:0 18px; font-size:.865rem}
@media(max-width:1080px){.nav a:nth-child(n+5){display:none}}
@media(max-width:880px){.nav{display:none} .hdr .btn{margin-left:auto}}
.burger{
  display:none; margin-left:auto; width:44px; height:44px; align-items:center; justify-content:center;
  background:transparent; border:1px solid rgba(253,251,247,.22); border-radius:8px; color:var(--white); cursor:pointer; flex:none;
}
@media(max-width:880px){.burger{display:flex} .hdr .btn{margin-left:0}}
@media(max-width:780px){.hdr .btn{display:none}}
@media(max-width:360px){.brand-name{font-size:1.08rem;letter-spacing:.08em} .brand-sub{font-size:.5rem;letter-spacing:.18em} .brand-mark{width:26px;height:26px} .hdr-in{gap:12px}}
.mnav{
  display:none; position:fixed; inset:70px 0 0; z-index:59; background:var(--ink);
  padding:20px 24px 40px; overflow-y:auto;
}
.mnav.open{display:block}
.mnav a{
  display:flex; align-items:center; min-height:52px; padding:0 4px; color:var(--white);
  text-decoration:none; font-size:1.05rem; border-bottom:1px solid rgba(253,251,247,.09);
}
.mnav a:last-of-type{border-bottom:0}
.mnav .btn{width:100%; margin-top:22px}

/* ---------- hero ---------- */
.hero{position:relative; background:var(--ink); color:var(--white); overflow:hidden; scroll-margin-top:76px}
.hero-bg{position:absolute; inset:0; z-index:0}
.hero-bg img{width:100%; height:100%; object-fit:cover; object-position:72% 46%; opacity:.62}
.hero-bg::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(96deg,#0C0D10 8%,rgba(12,13,16,.94) 34%,rgba(12,13,16,.55) 62%,rgba(12,13,16,.42) 100%),
    radial-gradient(70% 60% at 18% 30%,rgba(200,145,46,.16),transparent 70%);
}
.hero-in{position:relative; z-index:1; padding:clamp(64px,10vw,116px) 0 clamp(52px,7vw,80px); max-width:640px}
.hero h1{margin:20px 0 0; color:var(--white)}
.hero h1 em{font-style:italic; color:var(--gold-lite)}
.hero .lede{margin-top:22px; max-width:52ch; color:rgba(253,251,247,.78)}
.hero-cta{display:flex; flex-wrap:wrap; gap:12px; margin-top:34px}
@media(max-width:420px){.hero-cta .btn{width:100%}}
.hero-note{
  margin-top:18px; font-size:.8rem; color:rgba(253,251,247,.5);
  display:flex; align-items:center; gap:7px;
}
/* stat bar */
.stats{border-top:1px solid rgba(253,251,247,.12); background:var(--ink); position:relative; z-index:1}
.stats-in{display:grid; grid-template-columns:repeat(4,1fr); gap:0}
.stat{padding:26px 22px 26px 0; border-right:1px solid rgba(253,251,247,.09)}
.stat:last-child{border-right:0}
.stat-k{font-family:var(--serif); font-size:1.28rem; color:var(--gold-lite); font-weight:500; letter-spacing:-.01em}
.stat-v{margin-top:7px; font-size:.82rem; color:rgba(253,251,247,.6); line-height:1.45}
@media(max-width:760px){
  .stats-in{grid-template-columns:1fr 1fr}
  .stat{padding:22px 16px 22px 0}
  .stat:nth-child(2n){border-right:0; padding-left:16px}
  .stat:nth-child(-n+2){border-bottom:1px solid rgba(253,251,247,.09)}
}

/* ---------- section shell ---------- */
.sec{padding:clamp(60px,8vw,104px) 0; scroll-margin-top:76px}
.sec-head{max-width:640px; margin-bottom:clamp(34px,4.5vw,52px)}
.sec-head h2{margin-top:16px}
.sec-head .lede{margin-top:16px}
.dark{background:var(--ink); color:var(--white)}
.dark h2,.dark h3{color:var(--white)}
.paper2{background:var(--paper-2)}

/* ---------- two doors ---------- */
.doors{display:grid; grid-template-columns:1fr 1fr; gap:18px}
@media(max-width:800px){.doors{grid-template-columns:1fr}}
.door{
  position:relative; padding:32px; border-radius:var(--r-lg);
  background:var(--white); border:1px solid var(--line); box-shadow:var(--shadow-1);
  display:flex; flex-direction:column; gap:14px; text-decoration:none;
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.door:hover{transform:translateY(-3px); box-shadow:var(--shadow-2); border-color:var(--line-2)}
.door-k{font-family:var(--mono); font-size:.7rem; letter-spacing:.14em; color:var(--gold-deep); text-transform:uppercase}
.door h3{font-family:var(--serif); font-size:1.5rem; font-weight:500}
.door p{color:var(--soft); font-size:.95rem}
.door-list{list-style:none; margin:4px 0 0; padding:0; display:grid; gap:9px}
.door-list li{display:flex; gap:10px; font-size:.9rem; color:var(--text)}
.door-list svg{flex:none; margin-top:3px; color:var(--gold)}
.door-go{margin-top:auto; padding-top:16px; display:flex; align-items:center; gap:8px; font-size:.875rem; font-weight:600; color:var(--gold-deep)}

/* ---------- process ---------- */
.steps{display:grid; gap:0; counter-reset:s}
.step{
  display:grid; grid-template-columns:76px 1fr; gap:24px; padding:26px 0;
  border-top:1px solid rgba(253,251,247,.10); align-items:start;
}
.step:last-child{border-bottom:1px solid rgba(253,251,247,.10)}
.step-n{
  font-family:var(--mono); font-size:.78rem; color:var(--gold); padding-top:5px; letter-spacing:.06em;
}
.step h3{font-family:var(--serif); font-size:1.32rem; font-weight:500; color:var(--white)}
.step p{margin-top:8px; color:rgba(253,251,247,.66); font-size:.93rem; max-width:64ch}
.step-tag{
  display:inline-block; margin-top:12px; font-family:var(--mono); font-size:.68rem;
  letter-spacing:.1em; text-transform:uppercase; color:var(--gold-lite);
  border:1px solid rgba(200,145,46,.34); border-radius:100px; padding:4px 11px;
}
@media(max-width:600px){.step{grid-template-columns:1fr; gap:8px} .step-n{padding-top:0}}

/* ---------- tools ---------- */
.tools{display:grid; grid-template-columns:1.06fr .94fr; gap:20px; align-items:start}
@media(max-width:900px){.tools{grid-template-columns:1fr}}
.tool{
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg);
  overflow:hidden; box-shadow:var(--shadow-1);
}
.tool-top{padding:22px 24px 0}
.tool-h{display:flex; align-items:center; justify-content:space-between; gap:12px}
.tool-h h3{font-family:var(--serif); font-size:1.3rem; font-weight:500}
.badge{
  font-family:var(--mono); font-size:.63rem; letter-spacing:.11em; text-transform:uppercase;
  border:1px solid var(--line-2); border-radius:100px; padding:4px 9px; color:var(--soft); flex:none;
}
.tool-desc{margin-top:8px; font-size:.87rem; color:var(--soft); line-height:1.55}
.tool-body{padding:20px 24px 24px}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:13px}
@media(max-width:520px){.grid2{grid-template-columns:1fr}}
.field{display:flex; flex-direction:column; gap:6px}
.field label{font-size:.775rem; font-weight:600; color:var(--soft); letter-spacing:.01em}
.field .hint{font-size:.71rem; color:var(--muted); font-weight:400}
.inp{
  width:100%; min-height:46px; padding:10px 12px; font-size:16px; font-family:var(--mono);
  color:var(--text); background:#FFFDF9; border:1px solid var(--line-2); border-radius:var(--r-sm);
  transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
  appearance:none;
}
select.inp{font-family:var(--sans); font-weight:500; font-size:15px; background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23555B64' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; padding-right:32px}
.inp:focus{outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(200,145,46,.16)}
.result{
  margin-top:20px; padding:20px; border-radius:var(--r); background:var(--ink); color:var(--white);
}
.result-label{font-family:var(--mono); font-size:.66rem; letter-spacing:.13em; text-transform:uppercase; color:rgba(253,251,247,.5)}
.result-main{display:flex; align-items:baseline; gap:10px; margin-top:8px}
.result-num{font-family:var(--serif); font-size:2.5rem; font-weight:400; color:var(--gold-lite); letter-spacing:-.02em; line-height:1}
.result-unit{font-size:.85rem; color:rgba(253,251,247,.6)}
.stmt{margin-top:16px; border-top:1px solid rgba(253,251,247,.13); padding-top:14px; display:grid; gap:7px}
.stmt-row{display:flex; justify-content:space-between; gap:12px; font-family:var(--mono); font-size:.755rem}
.stmt-row span:first-child{color:rgba(253,251,247,.55)}
.stmt-row span:last-child{color:rgba(253,251,247,.92); font-variant-numeric:tabular-nums}
.stmt-row.tot span{color:var(--gold-lite); font-weight:500; padding-top:7px; border-top:1px dashed rgba(253,251,247,.2); margin-top:3px}
.tool-foot{margin-top:14px; font-size:.72rem; color:var(--muted); line-height:1.5}
.tool-foot strong{color:var(--soft)}

/* ---------- books ---------- */
.filters{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px}
.chip{
  min-height:38px; padding:0 15px; border-radius:100px; border:1px solid var(--line-2);
  background:transparent; color:var(--soft); font-size:.83rem; font-weight:500; cursor:pointer;
  transition:all var(--dur) var(--ease); font-family:var(--sans);
}
.chip:hover{border-color:var(--gold); color:var(--gold-deep)}
.chip[aria-pressed="true"]{background:var(--ink); border-color:var(--ink); color:var(--white)}
.books{display:grid; grid-template-columns:repeat(4,1fr); gap:26px 22px}
@media(max-width:900px){.books{grid-template-columns:repeat(3,1fr); gap:22px 16px}}
@media(max-width:640px){.books{grid-template-columns:repeat(2,1fr); gap:24px 14px}}
.book{display:flex; flex-direction:column; gap:13px; text-decoration:none; transition:transform var(--dur) var(--ease)}
.book:hover{transform:translateY(-4px)}
.cover{
  position:relative; aspect-ratio:2/3; border-radius:3px 6px 6px 3px; overflow:hidden;
  box-shadow:0 1px 2px rgba(40,28,8,.2), 0 14px 28px -14px rgba(40,28,8,.5);
  display:flex; flex-direction:column; justify-content:space-between; padding:18px 15px;
  border-left:5px solid rgba(255,255,255,.14);
}
.cover::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(105deg,rgba(255,255,255,.14) 0%,rgba(255,255,255,0) 42%);
}
.cover-pub{font-family:var(--sans); font-size:.5rem; letter-spacing:.22em; text-transform:uppercase; opacity:.66; color:#fff}
.cover-title{font-family:var(--serif); color:#fff; font-size:1.02rem; line-height:1.16; font-weight:500; letter-spacing:-.01em}
.cover-auth{font-family:var(--sans); font-size:.6rem; letter-spacing:.13em; text-transform:uppercase; opacity:.7; color:#fff; margin-top:7px}
.c1{background:linear-gradient(160deg,#1E2A38,#0E141B)}
.c2{background:linear-gradient(160deg,#6B2430,#2B0F14)}
.c3{background:linear-gradient(160deg,#2C4238,#101915)}
.c4{background:linear-gradient(160deg,#8A5A18,#3B2508)}
.cover-art{position:absolute; inset:0; width:100%; height:100%; display:block; transition:transform .6s var(--ease)}
.cover-text{position:relative; z-index:2; display:flex; flex-direction:column; justify-content:space-between; width:100%; height:100%}
.cover-pub{position:relative; z-index:2; text-shadow:0 1px 8px rgba(0,0,0,.5)}
.cover-title{position:relative; z-index:2; text-shadow:0 1px 14px rgba(0,0,0,.55), 0 1px 2px rgba(0,0,0,.5)}
.cover-auth{position:relative; z-index:2; text-shadow:0 1px 8px rgba(0,0,0,.5)}
.book:hover .cover-art{transform:scale(1.02)}
.book-meta h4{font-family:var(--serif); font-size:.97rem; font-weight:500; line-height:1.25; letter-spacing:-.005em}
.book-meta p{font-size:.79rem; color:var(--muted); margin-top:4px}
.pill{
  display:inline-block; margin-top:8px; font-family:var(--mono); font-size:.6rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--gold-deep); border:1px solid rgba(200,145,46,.4);
  border-radius:100px; padding:3px 8px; background:rgba(200,145,46,.07);
}
.books-note{
  margin-top:34px; padding:20px 22px; border:1px dashed var(--line-2); border-radius:var(--r);
  font-size:.85rem; color:var(--soft); display:flex; gap:12px; align-items:flex-start; background:rgba(255,255,255,.4);
}
.books-note svg{flex:none; margin-top:2px; color:var(--gold)}

/* ---------- institutions ---------- */
.inst{display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); align-items:center}
@media(max-width:850px){.inst{grid-template-columns:1fr}}
.inst-list{list-style:none; padding:0; margin:26px 0 0; display:grid; gap:14px}
.inst-list li{display:flex; gap:12px; font-size:.94rem; color:rgba(253,251,247,.75)}
.inst-list svg{flex:none; margin-top:3px; color:var(--gold)}
.inst-card{
  border:1px solid rgba(253,251,247,.14); border-radius:var(--r-lg); padding:28px;
  background:linear-gradient(180deg,rgba(253,251,247,.05),rgba(253,251,247,.02));
}
.inst-card h3{font-family:var(--serif); font-size:1.24rem; font-weight:500; margin-bottom:16px}
.inst-card dl{display:grid; gap:12px; margin:0}
.inst-card dt{font-family:var(--mono); font-size:.67rem; letter-spacing:.11em; text-transform:uppercase; color:var(--gold-lite)}
.inst-card dd{margin:4px 0 0; font-size:.9rem; color:rgba(253,251,247,.78)}

/* ---------- promise ---------- */
.promise{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden}
@media(max-width:900px){.promise{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.promise{grid-template-columns:1fr}}
.pcell{background:var(--white); padding:28px 24px}
.pcell svg{color:var(--gold); margin-bottom:14px}
.pcell h4{font-family:var(--serif); font-size:1.06rem; font-weight:500; margin-bottom:7px}
.pcell p{font-size:.845rem; color:var(--soft); line-height:1.55}

/* ---------- faq ---------- */
.faq{max-width:820px; margin:0 auto}
.qa{border-bottom:1px solid var(--line)}
.qa summary{
  display:flex; align-items:flex-start; justify-content:space-between; gap:18px;
  padding:20px 0; cursor:pointer; list-style:none; font-family:var(--serif);
  font-size:1.06rem; font-weight:500; line-height:1.35; letter-spacing:-.005em;
}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{
  content:""; flex:none; width:13px; height:13px; margin-top:6px;
  background:linear-gradient(var(--gold),var(--gold)) center/13px 1.6px no-repeat,
             linear-gradient(var(--gold),var(--gold)) center/1.6px 13px no-repeat;
  transition:transform var(--dur) var(--ease);
}
.qa[open] summary::after{transform:rotate(90deg); background:linear-gradient(var(--gold),var(--gold)) center/13px 1.6px no-repeat}
.qa p{padding:0 0 22px; color:var(--soft); font-size:.93rem; max-width:66ch}

/* ---------- submit ---------- */
.submit{display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(30px,5vw,64px); align-items:start}
@media(max-width:880px){.submit{grid-template-columns:1fr}}
.form-card{background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(24px,3.4vw,34px); box-shadow:var(--shadow-1)}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:15px}
@media(max-width:560px){.form-grid{grid-template-columns:1fr}}
.form-grid .full{grid-column:1/-1}
textarea.inp{min-height:88px; resize:vertical; font-family:var(--sans); font-size:16px; line-height:1.5}
.consent{display:flex; gap:10px; align-items:flex-start; margin-top:16px; font-size:.78rem; color:var(--soft); line-height:1.5}
.consent input{width:18px; height:18px; margin-top:2px; flex:none; accent-color:var(--gold); cursor:pointer}
.form-actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:20px}
.form-actions .btn{flex:1 1 auto; min-width:170px}
.form-msg{
  display:none; margin-top:16px; padding:12px 14px; border-radius:var(--r-sm);
  font-size:.83rem; line-height:1.5; background:rgba(200,145,46,.1);
  border:1px solid rgba(200,145,46,.35); color:var(--gold-deep);
}
.form-msg.show{display:block}
.req{color:var(--gold-deep)}
.contact-block{margin-top:30px; display:grid; gap:14px}
.contact-row{display:flex; gap:12px; align-items:flex-start; font-size:.92rem}
.contact-row svg{flex:none; margin-top:3px; color:var(--gold)}
.contact-row span small{display:block; font-size:.73rem; color:var(--muted); letter-spacing:.06em; text-transform:uppercase; margin-bottom:2px}
.contact-row a{color:var(--text); text-decoration:none; border-bottom:1px solid var(--line-2); transition:border-color var(--dur) var(--ease)}
.contact-row a:hover{border-color:var(--gold)}

/* ---------- footer ---------- */
.ftr{background:var(--ink); color:rgba(253,251,247,.62); padding:clamp(52px,6vw,76px) 0 30px; font-size:.86rem}
.ftr-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:36px 28px}
@media(max-width:820px){.ftr-grid{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.ftr-grid{grid-template-columns:1fr}}
.ftr .brand{margin-bottom:16px}
.ftr p{max-width:34ch; line-height:1.6}
.ftr h5{font-family:var(--sans); font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(253,251,247,.42); margin:0 0 14px; font-weight:600}
.ftr ul{list-style:none; margin:0; padding:0; display:grid; gap:10px}
.ftr a{color:rgba(253,251,247,.68); text-decoration:none; transition:color var(--dur) var(--ease)}
.ftr a:hover{color:var(--gold-lite)}
.ftr-base{
  margin-top:44px; padding-top:22px; border-top:1px solid rgba(253,251,247,.1);
  display:flex; flex-wrap:wrap; gap:10px 24px; justify-content:space-between;
  font-size:.79rem; color:rgba(253,251,247,.64);
}
.legal-note{
  margin-top:16px; padding:14px 16px; border:1px solid rgba(253,251,247,.1); border-radius:var(--r-sm);
  font-size:.75rem; line-height:1.55; color:rgba(253,251,247,.5);
}

/* ---------- reveal ---------- */
.rev{opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease)}
.rev.in{opacity:1; transform:none}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important}
  .rev{opacity:1; transform:none}
}

/* ---------- long-address safety (ebook domain) ---------- */
.submit > *, .contact-block, .contact-row, .contact-row span{min-width:0}
.contact-row a{overflow-wrap:anywhere; word-break:break-word}
.ftr a[href^="mailto"]{overflow-wrap:anywhere}
select.inp{font-size:16px}

/* ---------- mobile pass (ebook build) ---------- */
.result-num{font-size:clamp(1.85rem,7.2vw,2.5rem); word-break:break-word}
.result-main{flex-wrap:wrap; gap:4px 10px}
@media(max-width:900px){
  .tool{position:static}
}
@media(max-width:640px){
  .chip{min-height:44px; padding:0 17px; font-size:.85rem}
  .tool-top{padding:18px 16px 0}
  .tool-body{padding:16px 16px 20px}
  .tool-h h3{font-size:1.18rem}
  .tool-desc{font-size:.83rem}
  .stmt-row{flex-wrap:wrap; gap:1px 10px; font-size:.735rem}
  .stmt-row span:last-child{margin-left:auto}
  .btn{min-height:48px}
  .door{padding:22px 18px}
  .books{gap:22px 12px}
  .book-meta h4{font-size:.98rem}
}
@media(max-width:380px){
  .result-num{font-size:1.8rem}
  .chip{font-size:.8rem; padding:0 13px}
  .filters{gap:6px}
  .wrap{padding-inline:16px}
  .tool-top{padding:16px 14px 0}
  .tool-body{padding:14px 14px 18px}
}
@supports(padding-bottom:env(safe-area-inset-bottom)){
  .ftr{padding-bottom:calc(22px + env(safe-area-inset-bottom))}
}
/* ---------- legal / policy pages ---------- */
.legal-hero{padding:clamp(46px,7vw,80px) 0 clamp(26px,4vw,40px); border-bottom:1px solid var(--line)}
.legal-hero h1{font-size:clamp(2rem,4.6vw,3.1rem)}
.legal-wrap{max-width:820px; margin-inline:auto; padding-inline:24px}
@media(max-width:520px){.legal-wrap{padding-inline:18px}}
.prose{padding:clamp(34px,5vw,56px) 0 clamp(56px,7vw,88px)}
.prose > *{max-width:72ch}
.prose h2{font-size:clamp(1.4rem,2.6vw,1.85rem); margin:2.1em 0 .55em; font-weight:500; letter-spacing:-.012em}
.prose h2:first-of-type{margin-top:0}
.prose h3{font-family:var(--sans); font-size:1rem; font-weight:600; letter-spacing:0; margin:1.7em 0 .4em}
.prose p{margin:0 0 1em; color:var(--text); line-height:1.72; font-size:.97rem}
.prose ul,.prose ol{margin:0 0 1.15em; padding-left:1.15em; display:grid; gap:.5em}
.prose li{font-size:.97rem; line-height:1.65; color:var(--text)}
.prose li::marker{color:var(--gold-deep)}
.prose a{color:var(--gold-deep); text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px}
.prose strong{font-weight:600}
.prose .note{
  border-left:2px solid var(--gold); background:rgba(200,145,46,.07);
  padding:14px 18px; margin:0 0 1.3em; font-size:.9rem; color:var(--soft);
  max-width:72ch;
}
.prose .note strong{color:var(--gold-deep)}
.meta-line{font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-top:14px}
.legal-toc{border:1px solid var(--line); border-radius:var(--r); padding:18px 22px; margin:0 0 2.2em; background:var(--white)}
.legal-toc h2{font-family:var(--sans); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin:0 0 10px; font-weight:600}
.legal-toc ol{margin:0; padding-left:1.1em; gap:.35em}
.legal-toc li{font-size:.9rem}
.legal-toc a{text-decoration:none}
.legal-toc a:hover{text-decoration:underline}
.legal-cta{border-top:1px solid var(--line); margin-top:2.4em; padding-top:1.6em}
.legal-cta p{color:var(--soft); font-size:.92rem}
.legal-links{display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:10px}
.legal-links a{font-size:.87rem; color:var(--gold-deep); text-decoration:none; border-bottom:1px solid rgba(138,95,20,.28); padding-bottom:1px}
.legal-links a:hover{border-color:var(--gold-deep)}
.nf-wrap{padding:clamp(70px,12vw,140px) 0; text-align:center}
.nf-wrap h1{font-size:clamp(2.4rem,7vw,4rem)}
.nf-wrap p{color:var(--soft); margin:18px auto 30px; max-width:44ch}

/* ---------- skip link ---------- */
.skip{position:absolute; left:-9999px; top:0; z-index:300; background:var(--gold); color:#1a1200;
  padding:11px 18px; border-radius:0 0 var(--r) 0; font-weight:600; font-size:.85rem; text-decoration:none}
.skip:focus{left:0}
