/* =========================================================
   Keystone Mortgage Co. — "brass means approved"
   Fraunces (display) · Sora (body/UI) · Space Grotesk (data)
   ========================================================= */
:root{
  --bg:#0f1317;         /* warm-cool ink, never #000 */
  --bg-2:#151b21;       /* panel */
  --bg-3:#1b232b;       /* raised */
  --line:rgba(184,201,219,.11);
  --line-2:rgba(184,201,219,.20);
  --ink:#eef2f6;
  --ink-2:#aeb9c5;
  --ink-3:#7e8b98;
  --brass:#f0b429;      /* accent = "approved". Large/dark-ground use */
  --brass-2:#f7ca57;
  --brass-soft:rgba(240,180,41,.14);
  --brass-line:rgba(240,180,41,.34);
  --good:#4ec98a;
  --warn:#f0b429;
  --bad:#e0714f;
  --pad:clamp(20px,5vw,80px);
  --maxw:1200px;
  --r:14px;
  --ease:cubic-bezier(.22,1,.36,1);
  --fr:"Fraunces",Georgia,serif;
  --sr:"Sora",system-ui,sans-serif;
  --mo:"Space Grotesk",ui-monospace,monospace;
}

*{box-sizing:border-box;margin:0}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--bg);color:var(--ink);
  font-family:var(--sr);font-weight:340;line-height:1.6;
  font-size:clamp(15px,1.05vw,16.5px);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body::before{ /* faint architectural field, warm-shifted */
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(120% 80% at 78% -8%,rgba(240,180,41,.08),transparent 55%),
    radial-gradient(90% 60% at 8% 4%,rgba(46,66,86,.30),transparent 60%),
    var(--bg);
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--brass);color:#241a02}
:focus-visible{outline:2.5px solid var(--brass);outline-offset:3px;border-radius:4px}

.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:fixed;left:14px;top:-60px;z-index:100;background:var(--brass);color:#241a02;
  padding:10px 16px;border-radius:9px;font-weight:600;transition:top .25s var(--ease)}
.skip:focus{top:14px}

/* ---------- shared type ---------- */
.kicker{font-family:var(--mo);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--brass);font-weight:500;display:flex;align-items:center;gap:.6em}
.kicker .dot{width:7px;height:7px;border-radius:50%;background:var(--brass);
  box-shadow:0 0 0 4px var(--brass-soft)}
.sec-title{font-family:var(--fr);font-weight:400;line-height:1.02;letter-spacing:-.02em;
  font-size:clamp(2rem,5.2vw,3.5rem);text-wrap:balance}
.sec-title em{font-style:italic;color:var(--brass)}
.sec-lead{color:var(--ink-2);max-width:52ch;text-wrap:pretty;margin-top:.9rem;font-size:1.05rem}
.num,.inst__rows dd,.ledger__rate i,.broker__stats dd,.step__meta,.gauge__score{
  font-family:var(--mo);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:var(--sr);font-weight:600;font-size:.98rem;cursor:pointer;border:0;
  padding:.92em 1.35em;border-radius:11px;transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease)}
.btn--primary{background:var(--brass);color:#241a02;box-shadow:0 8px 26px -8px rgba(240,180,41,.5)}
.btn--primary:hover{background:var(--brass-2);transform:translateY(-2px);box-shadow:0 14px 34px -10px rgba(240,180,41,.62)}
.btn--primary:active{transform:translateY(0)}

/* =========================================================
   NAV
   ========================================================= */
.nav{position:sticky;top:0;z-index:50;transition:background .3s var(--ease),border-color .3s var(--ease),backdrop-filter .3s var(--ease);
  border-bottom:1px solid transparent}
.nav.stuck{background:rgba(15,19,23,.78);backdrop-filter:blur(12px) saturate(1.4);border-bottom-color:var(--line)}
.nav__in{max-width:var(--maxw);margin:0 auto;padding:14px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{display:flex;align-items:center;gap:.6rem;color:var(--ink)}
.brand__mark{color:var(--brass);flex:none}
.brand__name{font-family:var(--fr);font-size:1.24rem;letter-spacing:-.01em}
.brand__co{color:var(--ink-3);font-family:var(--sr);font-weight:400;font-size:.82rem;letter-spacing:.02em}
.nav__links{display:flex;align-items:center;gap:clamp(.6rem,2vw,1.9rem)}
.nav__links a{color:var(--ink-2);font-size:.94rem;transition:color .25s var(--ease)}
.nav__links a:hover{color:var(--ink)}
.nav__cta{color:var(--brass)!important;border:1px solid var(--brass-line);padding:.5em 1em;border-radius:9px;
  background:var(--brass-soft)}
.nav__cta:hover{background:rgba(240,180,41,.2)}
@media(max-width:620px){.nav__links a:not(.nav__cta){display:none}}

/* =========================================================
   HERO / CALCULATOR
   ========================================================= */
.hero{max-width:var(--maxw);margin:0 auto;padding:clamp(30px,5vw,60px) var(--pad) clamp(60px,8vw,90px)}
.hero__grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(28px,4vw,56px);align-items:start}
@media(max-width:940px){.hero__grid{grid-template-columns:1fr}}
.hero__title{font-family:var(--fr);font-weight:400;letter-spacing:-.03em;line-height:.98;
  font-size:clamp(2.7rem,7.6vw,5.1rem);margin:1.1rem 0 .1rem;text-wrap:balance}
.hero__title em{font-style:italic;color:var(--brass)}
.hero__title .l{display:block;overflow:hidden}
.hero__title .l>span{display:block;transform:translateY(110%);opacity:0;
  animation:lineRise 1.15s var(--ease) both}
.hero__title .l:nth-child(2)>span{animation-delay:.12s}
@keyframes lineRise{to{transform:translateY(0);opacity:1}}
.hero__sub{color:var(--ink-2);max-width:50ch;margin-top:1.1rem;text-wrap:pretty}

/* controls */
.controls{margin-top:2rem;display:flex;flex-direction:column;gap:1.35rem}
.ctrl__top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.5rem}
.ctrl label,.seg legend{font-size:.9rem;color:var(--ink-2);font-weight:500}
.ctrl output{font-family:var(--mo);font-variant-numeric:tabular-nums;font-size:.98rem;color:var(--ink);font-weight:500}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:6px;
  background:linear-gradient(90deg,var(--brass) var(--p,40%),var(--bg-3) var(--p,40%));cursor:pointer}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;
  background:var(--ink);border:5px solid var(--brass);box-shadow:0 3px 10px rgba(0,0,0,.5);transition:transform .15s var(--ease)}
input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.1)}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--ink);border:5px solid var(--brass);box-shadow:0 3px 10px rgba(0,0,0,.5)}
input[type=range]::-moz-range-track{height:6px;border-radius:6px;background:var(--bg-3)}
input[type=range]::-moz-range-progress{height:6px;border-radius:6px;background:var(--brass)}

.ctrl--row{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:end}
@media(max-width:460px){.ctrl--row{grid-template-columns:1fr}}
.seg{border:0;padding:0;min-inline-size:0}
.seg legend{margin-bottom:.5rem;padding:0}
.seg>div,.seg{display:flex}
.seg{gap:0;background:var(--bg-2);border:1px solid var(--line);border-radius:11px;padding:4px}
.seg label{position:relative;flex:1;text-align:center}
.seg input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.seg span{display:block;padding:.55em .3em;border-radius:8px;font-size:.9rem;color:var(--ink-2);
  transition:background .25s var(--ease),color .25s var(--ease)}
.seg input:checked+span{background:var(--brass);color:#241a02;font-weight:600}
.seg input:focus-visible+span{outline:2.5px solid var(--brass);outline-offset:2px}
.ctrl--sel label{display:block;margin-bottom:.5rem}
select{font-family:var(--sr);font-size:.92rem;color:var(--ink);background:var(--bg-2);
  border:1px solid var(--line);border-radius:11px;padding:.62em 2.2em .62em .8em;cursor:pointer;
  appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%23aeb9c5' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .7em center;background-size:12px}
.controls__note{margin-top:1.4rem;font-size:.82rem;color:var(--ink-3);max-width:46ch;text-wrap:pretty}

/* instrument */
.instrument{background:linear-gradient(180deg,var(--bg-2),#111820);
  border:1px solid var(--line);border-radius:var(--r);padding:clamp(20px,3vw,30px);
  box-shadow:0 30px 70px -30px rgba(0,0,0,.75),inset 0 1px 0 rgba(255,255,255,.04);
  position:sticky;top:84px}
@media(max-width:940px){.instrument{position:static}}
.inst__lbl{font-family:var(--mo);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3)}
.inst__big{display:flex;align-items:baseline;gap:.1em;margin:.25rem 0 .1rem;line-height:1}
.inst__big .cur{font-family:var(--fr);font-size:clamp(1.6rem,3vw,2rem);color:var(--brass);align-self:flex-start;margin-top:.35em}
.inst__big .num{font-family:var(--mo);font-weight:600;font-size:clamp(2.9rem,7vw,4.1rem);letter-spacing:-.03em;color:var(--ink)}
.inst__big .per{font-family:var(--sr);color:var(--ink-3);font-size:1rem;margin-left:.15em}
.inst__break{display:flex;flex-wrap:wrap;gap:.35em 1.1em;font-size:.82rem;color:var(--ink-3);margin-top:.3rem}
.inst__break i{font-family:var(--mo);font-style:normal;color:var(--ink-2);font-variant-numeric:tabular-nums}

.gauge{margin:1.4rem 0 .4rem;display:grid;grid-template-columns:1.2fr .8fr;gap:.4rem;align-items:center}
@media(max-width:380px){.gauge{grid-template-columns:1fr}}
.gauge svg{width:100%;height:auto;overflow:visible}
.gauge__track{fill:none;stroke:var(--bg-3);stroke-width:13;stroke-linecap:round}
.gauge__fill{fill:none;stroke:var(--brass);stroke-width:13;stroke-linecap:round;
  stroke-dasharray:100;stroke-dashoffset:100;filter:drop-shadow(0 0 6px rgba(240,180,41,.4))}
.needle__ln{stroke:var(--ink);stroke-width:3;stroke-linecap:round}
.needle__hub{fill:var(--ink);stroke:var(--brass);stroke-width:2}
.gauge__read{display:flex;flex-direction:column;gap:.3rem}
.gauge__score{font-size:1.9rem;font-weight:600;line-height:1;color:var(--ink)}
.gauge__score small{font-size:.85rem;color:var(--ink-3)}
.gauge__tag{font-size:.82rem;font-weight:600;padding:.32em .7em;border-radius:99px;width:max-content;
  border:1px solid var(--brass-line);color:var(--brass);background:var(--brass-soft)}
.gauge__tag[data-level="excellent"]{color:var(--good);border-color:rgba(78,201,138,.4);background:rgba(78,201,138,.12)}
.gauge__tag[data-level="tight"]{color:var(--bad);border-color:rgba(224,113,79,.4);background:rgba(224,113,79,.12)}

.inst__rows{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:1rem 0 1.2rem}
.inst__rows>div{background:var(--bg-2);padding:.7rem .9rem;display:flex;flex-direction:column;gap:.15rem}
.inst__rows dt{font-size:.72rem;color:var(--ink-3);letter-spacing:.04em}
.inst__rows dd{font-size:1.12rem;color:var(--ink);font-weight:500}
.inst__cta{width:100%}
.inst__reassure{margin-top:.9rem;font-size:.8rem;color:var(--ink-3);text-align:center;text-wrap:pretty}

/* =========================================================
   LOANS — ledger
   ========================================================= */
.loans{max-width:var(--maxw);margin:0 auto;padding:clamp(60px,10vh,110px) var(--pad)}
.sec-head{max-width:60ch}
.sec-head .sec-title{margin-top:.7rem}
.sec-head--center{text-align:center;margin:0 auto;max-width:24ch}
.sec-head--center .kicker{justify-content:center}
.ledger{list-style:none;margin:2.6rem 0 0;border-top:1px solid var(--line)}
.ledger__row{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(.8rem,2.4vw,2rem);align-items:center;
  padding:clamp(1.2rem,2.6vw,1.9rem) 0;border-bottom:1px solid var(--line);
  transition:background .4s var(--ease)}
.ledger__row:hover{background:linear-gradient(90deg,rgba(240,180,41,.05),transparent 70%)}
.ledger__no{font-family:var(--fr);font-size:1.5rem;color:var(--brass);width:1.4em;text-align:center;opacity:.85}
.ledger__body h3{font-family:var(--fr);font-weight:400;font-size:clamp(1.25rem,2.4vw,1.7rem);letter-spacing:-.01em}
.ledger__body p{color:var(--ink-2);font-size:.95rem;margin-top:.25rem;max-width:56ch;text-wrap:pretty}
.ledger__rate{text-align:right;white-space:nowrap}
.ledger__rate i{font-style:normal;font-size:clamp(1.4rem,2.8vw,2rem);font-weight:600;color:var(--ink)}
.ledger__rate small{display:block;font-family:var(--mo);font-size:.66rem;letter-spacing:.1em;color:var(--ink-3);text-transform:uppercase;margin-top:.1rem}
@media(max-width:560px){
  .ledger__row{grid-template-columns:auto 1fr;grid-template-areas:"no body" "no rate"}
  .ledger__no{grid-area:no;align-self:start}
  .ledger__body{grid-area:body}
  .ledger__rate{grid-area:rate;text-align:left;margin-top:.4rem}
  .ledger__rate small{display:inline;margin-left:.4em}
}
.loans__foot{margin-top:1.8rem;font-size:.9rem;color:var(--ink-3)}
.loans__foot a{color:var(--brass);border-bottom:1px solid var(--brass-line)}

/* =========================================================
   PROCESS — stepper
   ========================================================= */
.process{max-width:var(--maxw);margin:0 auto;padding:clamp(50px,8vh,90px) var(--pad)}
.steps{list-style:none;margin:3rem 0 0;display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
@media(max-width:820px){.steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:460px){.steps{grid-template-columns:1fr}}
.step{background:var(--bg-2);padding:clamp(1.4rem,2.5vw,2rem);position:relative;min-height:200px;
  display:flex;flex-direction:column;transition:background .35s var(--ease)}
.step:hover{background:var(--bg-3)}
.step__no{font-family:var(--fr);font-size:2.6rem;color:var(--brass);line-height:1;
  width:1.5em;height:1.5em;display:grid;place-items:center;border:1px solid var(--brass-line);
  border-radius:50%;font-size:1.3rem;margin-bottom:1rem}
.step h3{font-family:var(--fr);font-weight:400;font-size:1.28rem;letter-spacing:-.01em}
.step p{color:var(--ink-2);font-size:.92rem;margin-top:.4rem;text-wrap:pretty;flex:1}
.step__meta{margin-top:1rem;font-family:var(--mo);font-size:.72rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3)}

/* =========================================================
   BROKER
   ========================================================= */
.broker{max-width:var(--maxw);margin:0 auto;padding:clamp(50px,9vh,100px) var(--pad);
  display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(28px,5vw,64px);align-items:center}
@media(max-width:820px){.broker{grid-template-columns:1fr;max-width:560px}}
.broker__portrait{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);
  box-shadow:0 30px 60px -30px rgba(0,0,0,.7)}
.portrait{width:100%;height:auto}
.broker__body .sec-title{margin-top:.7rem}
.broker__lead{color:var(--ink-2);margin-top:1.1rem;font-size:1.05rem;max-width:54ch;text-wrap:pretty}
.broker__pledge{font-family:var(--fr);font-style:italic;font-size:clamp(1.25rem,2.4vw,1.6rem);
  line-height:1.35;color:var(--ink);margin:1.6rem 0;padding-left:1.2rem;border-left:2px solid var(--brass);text-wrap:pretty}
.broker__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-top:1.6rem}
@media(max-width:520px){.broker__stats{grid-template-columns:repeat(2,1fr)}}
.broker__stats>div{background:var(--bg-2);padding:1rem .9rem}
.broker__stats dt{font-size:.72rem;color:var(--ink-3);letter-spacing:.03em}
.broker__stats dd{font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:600;color:var(--brass);margin-top:.2rem}

/* =========================================================
   TESTIMONIAL
   ========================================================= */
.quote{background:linear-gradient(180deg,#12181e,#0d1216);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:clamp(60px,11vh,130px) var(--pad)}
.quote figure{max-width:920px;margin:0 auto;text-align:center}
.quote blockquote p{font-family:var(--fr);font-weight:400;font-size:clamp(1.55rem,4.2vw,2.9rem);
  line-height:1.28;letter-spacing:-.015em;color:var(--ink);text-wrap:balance}
.quote em{font-style:italic;color:var(--brass)}
.q-num{font-family:var(--mo);font-variant-numeric:tabular-nums;color:var(--brass);font-size:.86em;white-space:nowrap}
.quote figcaption{margin-top:2rem;display:flex;flex-direction:column;gap:.3rem;align-items:center}
.q-stars{color:var(--brass);letter-spacing:.2em;font-size:1rem}
.q-name{font-weight:600;font-size:1.05rem}
.q-meta{font-family:var(--mo);font-size:.78rem;letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase}

/* =========================================================
   APPLY / FORM
   ========================================================= */
.apply{max-width:var(--maxw);margin:0 auto;padding:clamp(60px,10vh,120px) var(--pad);
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:start}
@media(max-width:860px){.apply{grid-template-columns:1fr;max-width:560px}}
.apply__pitch{position:sticky;top:96px}
@media(max-width:860px){.apply__pitch{position:static}}
.apply__lead{color:var(--ink-2);margin-top:1rem;font-size:1.05rem;text-wrap:pretty}
.apply__ticks{list-style:none;margin:1.6rem 0 0;display:flex;flex-direction:column;gap:.8rem}
.apply__ticks li{position:relative;padding-left:1.9rem;color:var(--ink-2);font-size:.95rem}
.apply__ticks li::before{content:"";position:absolute;left:0;top:.15em;width:1.2rem;height:1.2rem;border-radius:50%;
  background:var(--brass-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5 5-6' fill='none' stroke='%23f0b429' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat;
  border:1px solid var(--brass-line)}

.form{background:linear-gradient(180deg,var(--bg-2),#111820);border:1px solid var(--line);
  border-radius:var(--r);padding:clamp(22px,3.5vw,36px);
  box-shadow:0 30px 70px -30px rgba(0,0,0,.75);display:flex;flex-direction:column;gap:1.05rem;position:relative}
.field{display:flex;flex-direction:column;gap:.4rem}
.field label{font-size:.86rem;color:var(--ink-2);font-weight:500}
.field input,.field select{font-family:var(--sr);font-size:.98rem;color:var(--ink);background:var(--bg);
  border:1px solid var(--line-2);border-radius:10px;padding:.8em .9em;transition:border-color .25s var(--ease),box-shadow .25s var(--ease)}
.field input::placeholder{color:var(--ink-3)}
.field input:focus,.field select:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-soft)}
.field input[aria-invalid=true]{border-color:var(--bad);box-shadow:0 0 0 3px rgba(224,113,79,.15)}
.err{color:var(--bad);font-size:.8rem;font-weight:500}
.hint{color:var(--ink-3);font-size:.78rem}
.form__submit{margin-top:.4rem;width:100%}
.form__legal{font-size:.74rem;color:var(--ink-3);text-align:center;text-wrap:pretty}
.form__ok{position:absolute;inset:0;background:linear-gradient(180deg,var(--bg-2),#111820);
  border-radius:var(--r);display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;gap:.7rem;padding:clamp(22px,4vw,40px);color:var(--good);animation:okin .5s var(--ease)}
@keyframes okin{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
.form__ok h3{font-family:var(--fr);font-weight:400;font-size:1.6rem;color:var(--ink)}
.form__ok h3 span{color:var(--brass);font-style:italic}
.form__ok p{color:var(--ink-2);font-size:.95rem;max-width:38ch;text-wrap:pretty}
.form__ok b{color:var(--ink)}

/* =========================================================
   FOOTER
   ========================================================= */
.foot{border-top:1px solid var(--line);padding:clamp(46px,7vh,72px) var(--pad) 30px;max-width:var(--maxw);margin:0 auto}
.foot__in{display:grid;grid-template-columns:1.4fr 1.6fr;gap:clamp(24px,4vw,50px)}
@media(max-width:720px){.foot__in{grid-template-columns:1fr}}
.foot__brand .brand__name{font-family:var(--fr);font-size:1.3rem}
.foot__brand p{color:var(--ink-3);font-size:.84rem;margin-top:.8rem;max-width:52ch;text-wrap:pretty}
.foot__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
@media(max-width:460px){.foot__cols{grid-template-columns:1fr 1fr}}
.foot__cols h4{font-family:var(--mo);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.8rem;font-weight:500}
.foot__cols a,.foot__cols span{display:block;color:var(--ink-2);font-size:.9rem;padding:.22em 0;transition:color .2s var(--ease)}
.foot__cols a:hover{color:var(--brass)}
.foot__base{margin-top:2.4rem;padding-top:1.4rem;border-top:1px solid var(--line);
  font-family:var(--mo);font-size:.72rem;letter-spacing:.04em;color:var(--ink-3)}

/* =========================================================
   REVEAL
   ========================================================= */
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}

/* =========================================================
   LIGHT MODE (token override)
   ========================================================= */
@media(prefers-color-scheme:light){
  :root{
    --bg:#f4f1ea;--bg-2:#ffffff;--bg-3:#efeae0;
    --line:rgba(38,30,18,.12);--line-2:rgba(38,30,18,.22);
    --ink:#1c1913;--ink-2:#514a3d;--ink-3:#6b6252;
    --brass:#855a0f;--brass-2:#6f4a0c;      /* darkened for AA on light */
    --brass-soft:rgba(133,90,15,.13);--brass-line:rgba(133,90,15,.38);
    --good:#227a4e;--bad:#b4482a;
  }
  body::before{background:
    radial-gradient(120% 80% at 80% -10%,rgba(154,106,18,.10),transparent 55%),
    radial-gradient(90% 60% at 6% 2%,rgba(120,110,90,.10),transparent 60%),var(--bg)}
  .btn--primary{color:#fff;box-shadow:0 8px 24px -10px rgba(154,106,18,.5)}
  .seg input:checked+span,::selection{color:#fff}
  ::selection{background:var(--brass)}
  .inst__big .num,.ledger__rate i,.inst__rows dd{color:var(--ink)}
  .nav.stuck{background:rgba(244,241,234,.82)}
  .instrument,.form{background:linear-gradient(180deg,#fff,#faf7f0)}
  .quote{background:linear-gradient(180deg,#efeae0,#f4f1ea)}
  .needle__ln,.needle__hub{stroke:var(--ink)}
  .needle__hub{fill:var(--ink)}
}
:root[data-theme=light]{
  --bg:#f4f1ea;--bg-2:#ffffff;--bg-3:#efeae0;
  --line:rgba(38,30,18,.12);--line-2:rgba(38,30,18,.22);
  --ink:#1c1913;--ink-2:#514a3d;--ink-3:#6b6252;
  --brass:#855a0f;--brass-2:#6f4a0c;--brass-soft:rgba(133,90,15,.13);--brass-line:rgba(133,90,15,.38);
  --good:#227a4e;--bad:#b4482a;
}
:root[data-theme=dark]{
  --bg:#0f1317;--bg-2:#151b21;--bg-3:#1b232b;
  --line:rgba(184,201,219,.11);--line-2:rgba(184,201,219,.20);
  --ink:#eef2f6;--ink-2:#aeb9c5;--ink-3:#7e8b98;
  --brass:#f0b429;--brass-2:#f7ca57;--brass-soft:rgba(240,180,41,.14);--brass-line:rgba(240,180,41,.34);
  --good:#4ec98a;--bad:#e0714f;
}

/* =========================================================
   REDUCED MOTION — settled, complete frame
   ========================================================= */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  .hero__title .l>span{transform:none!important;opacity:1!important}
  .rv{opacity:1!important;transform:none!important}
}
