/* =========================================================================
   ANVIL ROOFING
   Design language: dark technical instrument. Graphite void, hairline steel
   grid, chamfered corners, mono for every figure and label. Reads like an
   underwriting terminal, not a brochure.
   Motion personality: mechanical. 140 to 200ms, counters tick, nothing floats.
   Data colours are validated: OKLCH lightness band, chroma floor, CVD
   separation and contrast, dark surface #12161B.
   ========================================================================= */

/* ---------- 1. PRIMITIVE TOKENS ---------- */
:root{
  --void:#0A0C0F; --void-2:#0D1014; --surf:#12161B; --surf-2:#171C23; --surf-3:#1D242C;
  --steel:#232A33; --steel-2:#2E3843; --steel-3:#3C4854;

  /* data marks, validated categorical steps */
  --d-amber:#CE7405; --d-cyan:#3A96C9; --d-green:#2B9464;
  /* ui accents, WCAG text contrast on --void */
  --sig:#F0A339; --sig-2:#FFBE66; --cool:#62C0EC; --good:#46C48F; --bad:#E4674C;

  --bone:#E8EAED; --bone-2:#B4BCC6; --bone-3:#8B95A1; --bone-4:#7E8894;

  --f-disp:"Space Grotesk",ui-sans-serif,system-ui,-apple-system,sans-serif;
  --f-body:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;

  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px;
  --s6:32px; --s7:44px; --s8:64px; --s9:88px; --s10:116px;

  /* motion: mechanical */
  --e:cubic-bezier(.2,0,0,1);
  --e-out:cubic-bezier(.16,.8,.3,1);
  --t1:140ms; --t2:200ms; --t3:280ms;

  --w:1260px;
  --chamf:10px;
}

/* ---------- 2. RESET ---------- */
*,*::before,*::after{box-sizing:border-box}
/* [hidden] must beat the author display rules below, or panels toggled
   with the hidden property render anyway. */
[hidden]{display:none!important}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--void);color:var(--bone);
  font-family:var(--f-body);font-size:16.5px;line-height:1.62;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg{display:block;max-width:100%}
h1,h2,h3,p,ul,ol,dl,dd,fieldset,legend,figure{margin:0}
ul,ol{padding:0;list-style:none}
fieldset{border:0;padding:0;min-width:0}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
table{border-collapse:collapse;width:100%}
:focus-visible{outline:2px solid var(--sig);outline-offset:2px}
::selection{background:var(--sig);color:var(--void)}

.hold{width:100%;max-width:var(--w);margin-inline:auto;padding-inline:18px}
@media(min-width:900px){.hold{padding-inline:40px}}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--sig);color:var(--void);padding:12px 18px;font-weight:600}
.skip:focus{left:0}

/* chamfered corner, the house shape */
.cham{clip-path:polygon(var(--chamf) 0,100% 0,100% calc(100% - var(--chamf)),calc(100% - var(--chamf)) 100%,0 100%,0 var(--chamf))}

/* ---------- 3. TYPE ---------- */
.tag{
  font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--sig);margin-bottom:var(--s4);
}
.tag__sep{color:var(--bone-4);padding:0 4px}
.h2{
  font-family:var(--f-disp);font-weight:600;font-size:clamp(1.75rem,5.2vw,3rem);
  line-height:1.04;letter-spacing:-.035em;text-wrap:balance;
}
.lede{margin-top:var(--s4);max-width:62ch;font-size:clamp(.98rem,2.1vw,1.08rem);line-height:1.68;color:var(--bone-3)}
.lede b,.note b,.mtable b{color:var(--bone);font-weight:600}
.head{margin-bottom:var(--s7);padding-bottom:var(--s5);border-bottom:1px solid var(--steel)}
@media(min-width:900px){.head{margin-bottom:var(--s8)}}

/* ---------- 4. BUTTONS ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:50px;padding:0 22px;border:1px solid transparent;
  font-family:var(--f-mono);font-size:13.5px;font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;cursor:pointer;touch-action:manipulation;
  clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px);
  transition:background-color var(--t1) var(--e),color var(--t1) var(--e),
             border-color var(--t1) var(--e),transform var(--t1) var(--e);
}
.btn svg{width:17px;height:17px;flex:none;transition:transform var(--t1) var(--e)}
.btn--sig{background:var(--sig);color:var(--void)}
.btn--sig:hover{background:var(--sig-2);transform:translateY(-1px)}
.btn--sig:hover svg{transform:translateX(3px)}
.btn--sig:active{transform:translateY(0)}
.btn--wire{border-color:var(--steel-2);color:var(--bone);background:transparent}
.btn--wire:hover{border-color:var(--sig);color:var(--sig);transform:translateY(-1px)}
.btn--lg{min-height:56px;padding:0 28px;font-size:14px}
.btn--wide{width:100%;margin-top:var(--s4)}

/* ---------- 5. BAR ---------- */
.bar{
  position:fixed;inset:0 0 auto;z-index:70;border-bottom:1px solid transparent;
  transition:background-color var(--t2) var(--e),border-color var(--t2) var(--e);
}
.bar.stuck{
  background:rgba(10,12,15,.9);border-bottom-color:var(--steel);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
}
.bar__in{max-width:var(--w);margin-inline:auto;padding:11px 18px;display:flex;align-items:center;gap:var(--s6)}
@media(min-width:900px){.bar__in{padding:13px 40px}}
.logo{display:flex;align-items:center;gap:10px;margin-right:auto;min-height:44px}
.logo__i{width:30px;height:24px;color:var(--sig);flex:none}
.logo__t{
  font-family:var(--f-disp);font-size:17px;font-weight:700;letter-spacing:.02em;
  display:flex;flex-direction:column;line-height:1.05;
}
.logo__t i{
  font-style:normal;font-family:var(--f-mono);font-size:8.5px;font-weight:500;
  letter-spacing:.34em;color:var(--bone-4);
}
.bar__nav{display:none;gap:var(--s5)}
@media(min-width:1000px){.bar__nav{display:flex}}
.bar__nav a{
  position:relative;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--bone-3);padding:6px 0;transition:color var(--t1) var(--e);
}
.bar__nav a::before{
  content:"";position:absolute;left:0;bottom:2px;width:100%;height:1px;background:var(--sig);
  transform:scaleX(0);transform-origin:left;transition:transform var(--t2) var(--e);
}
.bar__nav a:hover{color:var(--bone)}
.bar__nav a:hover::before{transform:scaleX(1)}
.bar__cta{
  display:flex;align-items:center;gap:9px;min-height:44px;padding:0 15px;
  border:1px solid var(--steel-2);font-family:var(--f-mono);font-size:13px;font-weight:600;
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
  transition:border-color var(--t1) var(--e),color var(--t1) var(--e);
}
.bar__cta:hover{border-color:var(--sig);color:var(--sig)}
.bar__dot{width:7px;height:7px;background:var(--good);border-radius:50%;flex:none;box-shadow:0 0 8px var(--good)}
.bar__num{display:none}
@media(min-width:520px){.bar__num{display:inline}}

/* ---------- 6. HERO / STORM ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding-top:110px;padding-bottom:var(--s7);overflow:hidden;isolation:isolate}
.storm{position:absolute;inset:0;z-index:-1}
.storm__sky{
  position:absolute;inset:0;
  background:linear-gradient(178deg,#05070A 0%,#0A1017 22%,#131C26 44%,#1B2530 60%,#121820 76%,#080A0D 100%);
}
.storm__cell{position:absolute;border-radius:50%;filter:blur(2px)}
.storm__cell--a{
  left:16%;top:6%;width:min(90vw,900px);aspect-ratio:1.6;transform:translateX(-30%);
  background:radial-gradient(closest-side,rgba(120,150,180,.19),rgba(90,120,150,.07) 48%,transparent 72%);
}
.storm__cell--b{
  right:4%;top:14%;width:min(72vw,700px);aspect-ratio:1.5;
  background:radial-gradient(closest-side,rgba(240,163,57,.13),rgba(200,130,50,.05) 46%,transparent 70%);
  animation:flicker 9s ease-in-out infinite;
}
@keyframes flicker{0%,86%,100%{opacity:.62}90%{opacity:1}92%{opacity:.7}94%{opacity:.95}}
.storm__rain{
  position:absolute;inset:-10% -10% 24%;
  background:repeating-linear-gradient(74deg,transparent 0 22px,rgba(160,190,215,.055) 22px 23px,transparent 23px 46px);
  animation:fall 5.5s linear infinite;
}
@keyframes fall{from{transform:translate3d(0,0,0)}to{transform:translate3d(-46px,160px,0)}}
.storm__roof{position:absolute;left:0;right:0;bottom:0;width:100%;height:min(30vh,270px)}
.storm__scan{
  position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(180deg,transparent 0 3px,rgba(0,0,0,.16) 3px 4px);
  opacity:.5;
}
.hero__in{position:relative;width:100%}
.hero__h{
  font-family:var(--f-disp);font-weight:700;
  font-size:clamp(1.95rem,6.4vw,4rem);line-height:1.02;letter-spacing:-.042em;
}
.hero__h2{display:block;color:var(--sig);margin-top:.16em}
.hero__p{margin-top:var(--s5);max-width:52ch;font-size:clamp(1rem,2.3vw,1.12rem);line-height:1.66;color:var(--bone-2)}

.counter{
  margin-top:var(--s6);display:grid;gap:var(--s4);align-items:center;
  border:1px solid var(--steel-2);background:rgba(18,22,27,.72);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  padding:var(--s5);
  clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);
}
@media(min-width:680px){.counter{grid-template-columns:1fr auto;gap:var(--s6)}}
.counter__k{
  display:block;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--bone-4);
}
.counter__v{
  display:block;font-family:var(--f-mono);font-weight:700;
  font-size:clamp(3rem,11vw,4.6rem);line-height:.92;letter-spacing:-.04em;color:var(--sig);
  margin:6px 0 8px;
}
.counter__n{display:block;font-size:12.5px;color:var(--bone-3);line-height:1.5;max-width:44ch}

.stats{margin-top:var(--s6);display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--steel);border-top:1px solid var(--steel)}
@media(min-width:760px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{background:var(--void);padding:var(--s4) var(--s4) var(--s4) 0}
.stat dt{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-4);line-height:1.5}
.stat dd{
  margin-top:7px;font-family:var(--f-mono);font-weight:700;font-size:clamp(1.4rem,4.2vw,1.85rem);
  letter-spacing:-.03em;color:var(--bone);
}

/* ---------- 7. SECTIONS ---------- */
.tools{padding-block:var(--s8);background:var(--void-2);border-top:1px solid var(--steel)}
@media(min-width:900px){.tools{padding-block:var(--s9)}}

.panel{
  border:1px solid var(--steel);background:var(--surf);margin-bottom:var(--s6);
  clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);
}
.panel__hd{
  display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;
  padding:var(--s4) var(--s5);border-bottom:1px solid var(--steel);background:var(--surf-2);
}
.panel__no{font-family:var(--f-mono);font-size:12px;font-weight:700;color:var(--sig);letter-spacing:.1em}
.panel__hd h3{font-family:var(--f-disp);font-size:1.16rem;font-weight:600;letter-spacing:-.02em;margin-right:auto}
.badge{
  font-family:var(--f-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;
  padding:5px 9px;border:1px solid var(--steel-2);color:var(--bone-3);
}
.badge--demo{border-color:rgba(240,163,57,.4);color:var(--sig)}

/* ZIP selector */
.zipbar{display:grid;gap:9px;padding:var(--s5) var(--s5) var(--s4)}
@media(min-width:620px){.zipbar{grid-template-columns:auto minmax(0,360px);align-items:center;gap:var(--s4)}}
.zipbar__l{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--bone-3)}
.zipbar__s{
  min-height:48px;width:100%;padding:0 38px 0 14px;border:1px solid var(--steel-2);
  background:var(--surf-3);color:var(--bone);font-family:var(--f-mono);font-size:14px;
  -webkit-appearance:none;appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--sig) 50%),linear-gradient(135deg,var(--sig) 50%,transparent 50%);
  background-position:calc(100% - 18px) 21px,calc(100% - 13px) 21px;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;
  transition:border-color var(--t1) var(--e);
}
.zipbar__s:hover{border-color:var(--sig)}

/* chart */
.chartwrap{padding:0 var(--s5) var(--s5)}
.chart__hd{padding-bottom:var(--s3)}
.chart__t{font-family:var(--f-disp);font-size:1.02rem;font-weight:600;letter-spacing:-.01em}
.chart__t span{color:var(--sig);font-family:var(--f-mono);font-size:.94em}
.chart__s{font-family:var(--f-mono);font-size:12px;color:var(--bone-3);letter-spacing:.03em;margin-top:3px}
.chart{width:100%;height:auto;display:block;overflow:visible}
.bar-hit{cursor:pointer}
.bar-hit:focus{outline:none}
.bar-hit:focus-visible .bar-mark,.bar-hit:hover .bar-mark{fill:var(--sig)}
.bar-hit:focus-visible .bar-ring{opacity:1}
.chart__foot{margin-top:var(--s4);border-top:1px solid var(--steel);padding-top:var(--s4)}
.chart__facts{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s4) var(--s5)}
@media(min-width:640px){.chart__facts{grid-template-columns:repeat(4,1fr)}}
.chart__facts dt{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--bone-4)}
.chart__facts dd{margin-top:4px;font-family:var(--f-mono);font-size:1.06rem;font-weight:600;color:var(--bone)}
.tblview{margin-top:var(--s4)}
.tblview summary{
  cursor:pointer;list-style:none;min-height:44px;display:flex;align-items:center;gap:9px;
  font-family:var(--f-mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--cool);
}
.tblview summary::-webkit-details-marker{display:none}
.tblview summary::before{content:"+";font-size:14px;line-height:1}
.tblview[open] summary::before{content:"\2212"}
.dtable{font-family:var(--f-mono);font-size:12.5px;min-width:420px}
.dtable th,.dtable td{padding:8px 12px;text-align:right;border-bottom:1px solid var(--steel);white-space:nowrap}
.dtable th:first-child,.dtable td:first-child{text-align:left}
.dtable thead th{color:var(--bone-4);font-weight:500;font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.dtable tbody td{color:var(--bone-2)}
.dtable tbody tr.peak td{color:var(--sig);font-weight:600}

.disclose{
  margin-top:var(--s5);padding:var(--s4);border-left:2px solid var(--sig);
  background:rgba(240,163,57,.055);font-size:13px;line-height:1.62;color:var(--bone-3);
}
.disclose b{color:var(--sig);font-weight:600}
.disclose--sm{font-size:12.5px;border-left-color:var(--steel-2);background:transparent}
.disclose--sm b{color:var(--bone-2)}

/* ---------- 8. ESTIMATOR ---------- */
.est{display:grid}
@media(min-width:1000px){.est{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.est__in{padding:var(--s5);display:grid;gap:var(--s5);align-content:start}
@media(min-width:1000px){.est__in{border-right:1px solid var(--steel)}}
.est__out{padding:var(--s5);display:grid;gap:var(--s4);align-content:start;background:var(--void-2)}

.fieldrow{display:grid;gap:9px}
.fl{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  font-family:var(--f-mono);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--bone-3);
}
.fl--sub{margin-top:var(--s3)}
.fl__o{font-size:15px;letter-spacing:0;text-transform:none;color:var(--sig);font-weight:600}
.fh{font-size:12.5px;line-height:1.55;color:var(--bone-4);margin-top:-3px}
.fh b{color:var(--bone-2);font-family:var(--f-mono)}
.subfield{display:grid;gap:9px}

.sl{-webkit-appearance:none;appearance:none;width:100%;height:44px;background:transparent;cursor:pointer;margin:0}
.sl::-webkit-slider-runnable-track{height:2px;background:var(--steel-3)}
.sl::-moz-range-track{height:2px;background:var(--steel-3)}
.sl::-webkit-slider-thumb{
  -webkit-appearance:none;width:14px;height:26px;margin-top:-12px;background:var(--sig);
  border:0;clip-path:polygon(0 0,100% 0,100% 78%,50% 100%,0 78%);
  transition:background-color var(--t1) var(--e);
}
.sl::-moz-range-thumb{width:14px;height:26px;border:0;border-radius:0;background:var(--sig)}
.sl:hover::-webkit-slider-thumb{background:var(--sig-2)}

.pick{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
.pick--3{grid-template-columns:repeat(3,1fr)}
.pick--4{grid-template-columns:repeat(2,1fr)}
@media(min-width:460px){.pick--4{grid-template-columns:repeat(4,1fr)}}
.pick--2{grid-template-columns:repeat(2,1fr)}
.pk{position:relative;cursor:pointer;display:block;min-width:0}
.pk input{position:absolute;opacity:0;width:1px;height:1px}
.pk>span{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  min-height:46px;padding:8px 6px;border:1px solid var(--steel-2);background:var(--surf-2);
  font-family:var(--f-mono);font-size:12.5px;color:var(--bone-3);text-align:center;
  transition:border-color var(--t1) var(--e),color var(--t1) var(--e),background-color var(--t1) var(--e);
}
.pk>span i{font-style:normal;font-size:10px;color:var(--bone-4);letter-spacing:.04em}
.pk:hover>span{border-color:var(--steel-3);color:var(--bone)}
.pk input:checked+span{border-color:var(--sig);background:rgba(240,163,57,.11);color:var(--sig)}
.pk input:checked+span i{color:var(--sig)}
.pk input:focus-visible+span{outline:2px solid var(--sig);outline-offset:2px}
.pk--big>span{min-height:60px;gap:3px}
.pk--big b{font-family:var(--f-disp);font-size:16px;font-weight:700;letter-spacing:.02em}
.pk--big i{font-size:10px}

/* the bridge between the two tools */
.link{
  border:1px solid rgba(98,192,236,.32);background:rgba(98,192,236,.06);
  padding:var(--s4) var(--s4) var(--s4) var(--s5);display:grid;gap:6px;
  border-left-width:2px;border-left-color:var(--cool);
}
.link__k{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--cool)}
.link__b{font-size:13.5px;line-height:1.62;color:var(--bone-2)}
.link__b b{color:var(--cool);font-family:var(--f-mono);font-weight:600}
.link__b a{color:var(--cool);box-shadow:0 1px 0 rgba(98,192,236,.4)}
.link__b a:hover{color:var(--bone)}

.bignum{
  border:1px solid var(--steel);background:var(--surf);padding:var(--s4) var(--s5) var(--s5);
  clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);
}
.bignum--hot{border-color:rgba(240,163,57,.42);background:linear-gradient(160deg,rgba(240,163,57,.1),rgba(240,163,57,.02))}
.bignum--cool{border-color:rgba(98,192,236,.4);background:linear-gradient(160deg,rgba(98,192,236,.09),rgba(98,192,236,.02))}
.bignum__k{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone-4)}
.bignum__v{
  display:block;margin:8px 0 6px;font-family:var(--f-mono);font-weight:700;
  font-size:clamp(2rem,7vw,2.9rem);line-height:1;letter-spacing:-.04em;color:var(--bone);
}
.bignum--hot .bignum__v{color:var(--sig)}
.bignum--cool .bignum__v{color:var(--cool)}
.bignum__n{display:block;font-size:12.5px;line-height:1.5;color:var(--bone-3)}

.ledger{border:1px solid var(--steel);padding:var(--s4) var(--s5) var(--s5);background:var(--surf)}
.ledger__k{font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone-4);margin-bottom:var(--s3)}
.ledger__l{display:grid;counter-reset:lg}
.ledger__l li{
  display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:baseline;
  padding:9px 0;border-bottom:1px solid var(--steel);font-size:13.5px;color:var(--bone-2);
}
.ledger__l li::before{
  counter-increment:lg;content:counter(lg);font-family:var(--f-mono);font-size:10px;
  color:var(--bone-4);min-width:14px;
}
.ledger__l li b{font-family:var(--f-mono);font-size:13.5px;font-weight:600;color:var(--bone);white-space:nowrap}
.ledger__l li.neg b{color:var(--bad)}
.ledger__l li.pos b{color:var(--good)}
.ledger__l li.tot{border-bottom:0;border-top:1px solid var(--steel-2);margin-top:4px;padding-top:12px}
.ledger__l li.tot b{color:var(--sig);font-size:15px}

.explain{border:1px solid var(--steel);background:var(--surf);padding:var(--s5)}
.explain h4{font-family:var(--f-disp);font-size:1.02rem;font-weight:600;letter-spacing:-.015em;margin-bottom:10px}
.explain p{font-size:13.5px;line-height:1.68;color:var(--bone-3)}
.explain p+p{margin-top:10px}
.explain b{color:var(--bone);font-weight:600}
.explain .why{color:var(--sig);font-family:var(--f-mono);font-size:13px}

/* ---------- 9. TIMELINE ---------- */
.timeline{padding-block:var(--s8);border-top:1px solid var(--steel)}
@media(min-width:900px){.timeline{padding-block:var(--s9)}}
.steps{display:grid;gap:0;border-top:1px solid var(--steel)}
.step{
  position:relative;padding:var(--s5) 0 var(--s6);border-bottom:1px solid var(--steel);
  display:grid;gap:8px;
}
@media(min-width:820px){
  .step{grid-template-columns:150px minmax(0,1fr);column-gap:var(--s6);padding-block:var(--s6)}
  .step h3,.step p{grid-column:2}
  .step__d{grid-row:1/span 2;padding-top:3px}
}
.step__d{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--sig)}
.step h3{font-family:var(--f-disp);font-size:clamp(1.2rem,3.4vw,1.55rem);font-weight:600;letter-spacing:-.025em;line-height:1.14}
.step p{max-width:70ch;font-size:15px;line-height:1.7;color:var(--bone-3)}
.step::after{
  content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;
  background:linear-gradient(90deg,var(--sig),transparent 40%);
  transform:scaleX(0);transform-origin:left;transition:transform var(--t3) var(--e-out);
}
.step.in::after{transform:scaleX(1)}

/* ---------- 10. MATERIALS ---------- */
.materials{padding-block:var(--s8);background:var(--void-2);border-top:1px solid var(--steel)}
@media(min-width:900px){.materials{padding-block:var(--s9)}}
.tbl-scroll{overflow-x:auto;border:1px solid var(--steel);background:var(--surf)}
.mtable{min-width:720px;font-size:14px}
.mtable th,.mtable td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--steel);vertical-align:top}
.mtable thead th{
  font-family:var(--f-mono);font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--bone-4);font-weight:500;background:var(--surf-2);
}
.mtable tbody th{font-weight:600;color:var(--bone);font-size:14.5px}
.mtable tbody tr:last-child td,.mtable tbody tr:last-child th{border-bottom:0}
.mtable .n{font-family:var(--f-mono);font-size:13px;color:var(--bone-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.mtable .sub{font-size:13px;color:var(--bone-3);line-height:1.55;max-width:38ch}
.mtable tr.hl{background:rgba(240,163,57,.055)}
.mtable tr.hl th{color:var(--sig)}
.star{display:inline-block;width:7px;height:7px;background:var(--sig);margin-left:6px;clip-path:polygon(50% 0,100% 100%,0 100%)}
.pill{
  display:inline-block;font-family:var(--f-mono);font-size:10px;letter-spacing:.09em;
  padding:4px 8px;border:1px solid currentColor;white-space:nowrap;
}
.pill--good{color:var(--good)}
.pill--mid{color:var(--cool)}
.pill--low{color:var(--bone-4)}
.note{
  margin-top:var(--s6);border:1px solid var(--steel);background:var(--surf);padding:var(--s5) var(--s5) var(--s6);
  clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);
}
.note h3{font-family:var(--f-disp);font-size:clamp(1.15rem,3vw,1.45rem);font-weight:600;letter-spacing:-.025em;margin-bottom:var(--s4)}
.note p{max-width:72ch;font-size:14.5px;line-height:1.72;color:var(--bone-3)}
.note p+p{margin-top:var(--s4)}

/* ---------- 11. FINANCING ---------- */
.finance{padding-block:var(--s8);border-top:1px solid var(--steel)}
@media(min-width:900px){.finance{padding-block:var(--s9)}}
.fincalc{
  border:1px solid var(--steel);background:var(--surf);display:grid;
  clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);
}
@media(min-width:900px){.fincalc{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}
.fincalc__in{padding:var(--s5);display:grid;gap:var(--s5);align-content:start}
@media(min-width:900px){.fincalc__in{border-right:1px solid var(--steel)}}
.fincalc__out{padding:var(--s5);display:grid;gap:var(--s4);align-content:start;background:var(--void-2)}
.finsplit{display:grid;gap:0;border-top:1px solid var(--steel)}
.finsplit div{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--steel)}
.finsplit dt{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--bone-4)}
.finsplit dd{font-family:var(--f-mono);font-size:14px;font-weight:600;color:var(--bone)}

/* ---------- 12. TRUST ---------- */
.trust{padding-block:var(--s8);background:var(--void-2);border-top:1px solid var(--steel)}
@media(min-width:900px){.trust{padding-block:var(--s9)}}
.certs{display:grid;gap:1px;background:var(--steel);border:1px solid var(--steel)}
@media(min-width:700px){.certs{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1080px){.certs{grid-template-columns:repeat(3,1fr)}}
.cert{background:var(--surf);padding:var(--s5);display:grid;gap:6px;align-content:start}
.cert__k{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--sig)}
.cert b{font-family:var(--f-disp);font-size:1.06rem;font-weight:600;letter-spacing:-.015em;line-height:1.24}
.cert__d{font-size:13px;line-height:1.6;color:var(--bone-3);margin-top:4px}

.emerg{
  margin-top:var(--s6);border:1px solid rgba(240,163,57,.34);
  background:linear-gradient(155deg,rgba(240,163,57,.09),rgba(240,163,57,.015) 60%,transparent);
  padding:var(--s5);display:grid;gap:var(--s5);
  clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);
}
@media(min-width:860px){.emerg{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:var(--s7);align-items:center}
  .emerg .btn--wide{grid-column:1/-1;margin-top:0}}
.emerg h3{font-family:var(--f-disp);font-size:clamp(1.3rem,3.6vw,1.85rem);font-weight:600;letter-spacing:-.03em;line-height:1.1;margin-bottom:var(--s3)}
.emerg p{font-size:14.5px;line-height:1.68;color:var(--bone-3);max-width:52ch}
.emerg__r{display:grid;gap:0;border-top:1px solid rgba(240,163,57,.26)}
.emerg__r div{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid rgba(240,163,57,.26)}
.emerg__r dt{font-family:var(--f-mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--bone-3)}
.emerg__r dd{font-family:var(--f-mono);font-size:14px;font-weight:700;color:var(--sig);white-space:nowrap}

/* ---------- 13. CLOSE + FOOT ---------- */
.close{padding-block:var(--s9) var(--s10);position:relative;overflow:hidden;border-top:1px solid var(--steel)}
.close::before{
  content:"";position:absolute;left:50%;bottom:-40%;width:min(130vw,1000px);aspect-ratio:1;
  transform:translateX(-50%);pointer-events:none;
  background:radial-gradient(closest-side,rgba(240,163,57,.13),transparent 68%);
}
.close__in{position:relative;max-width:760px}
.close__cta{margin-top:var(--s6);display:flex;flex-wrap:wrap;gap:var(--s3)}
.close__meta{margin-top:var(--s6);font-family:var(--f-mono);font-size:12px;line-height:1.8;color:var(--bone-4)}

.foot{border-top:1px solid var(--steel);padding-block:var(--s6);background:#06080A}
.foot__in{display:grid;gap:8px;font-size:12px;color:var(--bone-4);line-height:1.55}
@media(min-width:900px){.foot__in{grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s5)}}
.foot__by a{
  display:inline-flex;align-items:center;min-height:44px;color:var(--sig);
  box-shadow:0 1px 0 rgba(240,163,57,.35);transition:color var(--t1) var(--e);
}
.foot__by a:hover{color:var(--sig-2)}


.demo-note{max-width:78ch;color:var(--bone-3);line-height:1.5}
@media(min-width:900px){.demo-note{grid-column:1/-1;order:3;padding-top:10px;border-top:1px solid var(--steel)}}

/* ---------- 14. REVEAL ---------- */
.a{opacity:0;transform:translate3d(0,10px,0);transition:opacity var(--t3) var(--e-out),transform var(--t3) var(--e-out)}
.a.in{opacity:1;transform:none}

/* ---------- 15. REDUCED MOTION ---------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .a{opacity:1;transform:none}
  .storm__rain,.storm__cell--b{animation:none}
  .step::after{transform:scaleX(1)}
}
