:root{
  --kiln:#101012;--iron:#3C3C43;--joint:#8A8A90;--grout:#74747A;
  --mortar:#C9C7C2;--lime:#F1F0ED;--paper:#FFFFFF;
  --gap:6px;--gut:clamp(1.25rem,4vw,2.5rem);--rule:1px solid rgba(16,16,18,.14);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--lime);color:var(--kiln);
  font-family:Spectral,Georgia,serif;font-size:clamp(1rem,.97rem + .18vw,1.09rem);
  line-height:1.68;-webkit-font-smoothing:antialiased}
img,svg,canvas,video{display:block;max-width:100%}
a{color:inherit}
.wrap{width:min(1180px,100% - (var(--gut) * 2));margin-inline:auto}

/* ============ BACKGROUND MONTAGE ============ */
.page{position:relative}

h1,h2,h3{font-family:Archivo,'Helvetica Neue',Arial,sans-serif;font-variation-settings:'wdth' 112;
  font-weight:700;text-transform:uppercase;line-height:.96;letter-spacing:-.015em;margin:0}
h1{font-size:clamp(2.3rem,1rem + 5.2vw,4.7rem);font-variation-settings:'wdth' 106}
h1 .thin{display:block;color:var(--grout);font-weight:500;font-variation-settings:'wdth' 100}
h2{font-size:clamp(1.85rem,1.1rem + 2.6vw,3.1rem)}
h3{font-size:clamp(1.05rem,.95rem + .5vw,1.32rem);letter-spacing:0}
h2.oneline{white-space:nowrap;font-variation-settings:'wdth' 100;letter-spacing:-.022em;
  font-size:clamp(1.02rem,5.3vw,3.1rem)}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}
.eyebrow{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:.7rem;font-weight:500;
  letter-spacing:.2em;text-transform:uppercase;color:var(--grout);margin:0 0 1.4rem}
.lede{font-size:clamp(1.08rem,1rem + .5vw,1.28rem);line-height:1.6;max-width:47ch}
.muted{color:#42424A}

.btn{display:inline-block;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:.74rem;
  letter-spacing:.14em;text-transform:uppercase;text-decoration:none;padding:.95rem 1.5rem;
  border:1px solid var(--kiln);background:var(--kiln);color:var(--lime);
  transition:background .18s ease,color .18s ease}
.btn:hover{background:transparent;color:var(--kiln)}
.btn--ghost{background:rgba(241,240,237,.7);color:var(--kiln)}
.btn--ghost:hover{background:var(--kiln);color:var(--lime)}
.btn--light{border-color:var(--lime);background:var(--lime);color:var(--kiln)}
.btn--light:hover{background:transparent;color:var(--lime)}
:focus-visible{outline:2px solid var(--kiln);outline-offset:3px}
.on-dark :focus-visible{outline-color:var(--lime)}

.hdr{position:sticky;top:0;z-index:60;background:rgba(241,240,237,.78);
  backdrop-filter:blur(12px);border-bottom:var(--rule)}
.hdr__in{display:flex;align-items:center;gap:1.5rem;height:74px}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;margin-right:auto}
.brand svg{width:37px;height:37px;flex:none;margin-top:2px}
.brand b{font-family:Archivo,sans-serif;font-variation-settings:'wdth' 114;font-weight:800;
  text-transform:uppercase;font-size:.95rem;line-height:1;display:block}
.brand span{display:block;font-family:'IBM Plex Mono',monospace;font-size:.52rem;
  letter-spacing:.3em;color:var(--grout);margin-top:.3rem;text-transform:uppercase}
.nav{display:flex;gap:1.6rem;align-items:center}
.nav a{font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.12em;
  text-transform:uppercase;text-decoration:none;color:var(--iron);padding-bottom:2px;
  border-bottom:1px solid transparent}
.nav a:hover{border-bottom-color:var(--kiln)}
.nav .btn{padding:.7rem 1.15rem}
@media (max-width:900px){.nav a:not(.btn){display:none}}

.hero{position:relative;padding:clamp(3.5rem,7vw,6.5rem) 0 clamp(3rem,6vw,5.5rem);
  background:linear-gradient(170deg,#FAFAF8 0%,#E9E7E3 55%,#DCDAD5 100%)}
.hero__grid{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2.5rem,5vw,4.5rem);align-items:end}
@media (max-width:940px){.hero__grid{grid-template-columns:1fr;align-items:start}}
.hero h1{margin-bottom:1.6rem}
.hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}

.wall{display:flex;flex-direction:column;gap:var(--gap)}
.course{display:flex;gap:var(--gap);opacity:0;transform:translateY(18px)}
.course--in{animation:lay .62s cubic-bezier(.2,.7,.25,1) forwards}
@keyframes lay{to{opacity:1;transform:none}}
.brick{height:clamp(56px,7.2vw,82px);display:flex;align-items:center;transition:background .2s ease}
.brick--pad{flex:1}
.brick--label{flex:2.9;padding:0 clamp(.9rem,1.8vw,1.5rem);justify-content:space-between;
  gap:1rem;text-decoration:none}
.brick--label .t{font-family:Archivo,sans-serif;font-variation-settings:'wdth' 112;font-weight:600;
  text-transform:uppercase;font-size:clamp(.78rem,1.35vw,1rem);letter-spacing:.02em;color:#fff;line-height:1.1}
.brick--label .n{font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.14em;
  color:rgba(255,255,255,.55);flex:none}
.course:nth-child(1) .brick{background:rgba(166,166,173,.92)}
.course:nth-child(2) .brick{background:rgba(131,131,139,.92)}
.course:nth-child(3) .brick{background:rgba(91,91,99,.94)}
.course:nth-child(4) .brick{background:rgba(51,51,58,.95)}
.wall .course:hover .brick{background:var(--kiln)}
.wall__foot{display:flex;justify-content:space-between;gap:1rem;font-family:'IBM Plex Mono',monospace;
  font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--grout);margin-top:1rem}

.sec{padding:clamp(3.5rem,7vw,6.5rem) 0;border-top:var(--rule)}
.sec__head{max-width:60ch;margin-bottom:clamp(2.2rem,4vw,3.4rem)}
.sec__head h2{margin-bottom:1.2rem}

.bond{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap)}
.bond__cell{background:var(--paper);padding:clamp(1.5rem,3vw,2.4rem);
  border:1px solid rgba(16,16,18,.08)}
.bond__cell:nth-child(even){margin-top:clamp(0px,4vw,64px)}
.bond__cell h3{margin-bottom:.8rem}
.bond__cell .eyebrow{margin-bottom:1rem}
@media (max-width:760px){.bond{grid-template-columns:1fr}.bond__cell:nth-child(even){margin-top:0}}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,2.6rem)}
@media (max-width:760px){.steps{grid-template-columns:1fr}}
.step{border-top:2px solid var(--kiln);padding-top:1.1rem}
.step h3{margin-bottom:.7rem}
.rate{font-family:Archivo,sans-serif;font-variation-settings:'wdth' 112;font-weight:700;
  font-size:2.6rem;line-height:1;letter-spacing:-.02em;margin:.2rem 0 .9rem}
.rate small{font-family:'IBM Plex Mono',monospace;font-size:.66rem;letter-spacing:.14em;
  color:var(--grout);font-weight:400;display:block;margin-top:.6rem}
.note{margin-top:clamp(2.2rem,4vw,3.2rem);padding:1.4rem 1.6rem;border-left:2px solid var(--kiln);
  background:var(--paper);max-width:64ch}

.dark{position:relative;overflow:hidden;background:var(--kiln);color:var(--lime);border-top:none}
.dark canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.8}
.dark .wrap{position:relative;z-index:2}
.dark .eyebrow{color:var(--mortar)}
.dark .muted{color:#ADADB4}
.signal__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2.5rem,5vw,4.5rem);align-items:center}
@media (max-width:940px){.signal__grid{grid-template-columns:1fr}}
.alerts{display:flex;flex-direction:column;gap:var(--gap)}
.alert{background:#1B1B20;border-left:3px solid var(--lime);padding:1.05rem 1.2rem}
.alert--over{border-left-color:var(--joint)}
.alert__top{display:flex;justify-content:space-between;font-family:'IBM Plex Mono',monospace;
  font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:#8A8A92;margin-bottom:.55rem}
.alert__body{font-family:Archivo,sans-serif;font-variation-settings:'wdth' 110;font-weight:700;
  text-transform:uppercase;font-size:clamp(.95rem,1.7vw,1.18rem);letter-spacing:.01em;line-height:1.15}
.alert__meta{font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.08em;
  color:#ADADB4;margin-top:.5rem}
.disclaim{margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid rgba(241,240,237,.18);
  font-size:.86rem;line-height:1.6;color:#ADADB4;max-width:52ch}
.price{display:flex;align-items:baseline;gap:.6rem;margin:1.8rem 0 1.2rem;font-family:Archivo,sans-serif;
  font-variation-settings:'wdth' 112;font-weight:700;text-transform:uppercase;font-size:1.5rem}
.price small{font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.14em;
  color:var(--mortar);font-weight:400}

.sectors{display:flex;flex-wrap:wrap;gap:var(--gap)}
.sector{background:var(--paper);border:1px solid rgba(16,16,18,.1);padding:1rem 1.25rem;
  font-family:'IBM Plex Mono',monospace;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase}
.sector--open{background:transparent;border-style:dashed;color:var(--grout)}

.contact{border-top:var(--rule);background-color:var(--lime);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='60'%3E%3Cg fill='none' stroke='%23101012' stroke-opacity='.09'%3E%3Cpath d='M0 .5H120M0 30.5H120M0 59.5H120'/%3E%3Cpath d='M60 0V30M0 30V60M120 30V60'/%3E%3C/g%3E%3C/svg%3E")}
.contact__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:start}
@media (max-width:860px){.contact__grid{grid-template-columns:1fr}}
.form{background:var(--paper);border:1px solid rgba(16,16,18,.12);
  padding:clamp(1.4rem,3vw,2.2rem);display:grid;gap:1rem}
.field{display:grid;gap:.4rem}
.field label{font-family:'IBM Plex Mono',monospace;font-size:.66rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--grout)}
.field input,.field textarea{font-family:Spectral,Georgia,serif;font-size:1rem;color:var(--kiln);
  border:none;border-bottom:1px solid rgba(16,16,18,.25);background:transparent;padding:.55rem 0;border-radius:0}
.field textarea{resize:vertical;min-height:96px}
.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--kiln)}
.form .btn{justify-self:start;margin-top:.4rem;cursor:pointer;font-family:'IBM Plex Mono',monospace}

.ftr{background:var(--kiln);color:var(--mortar);padding:2.6rem 0}
.ftr__in{display:flex;flex-wrap:wrap;gap:1.2rem;justify-content:space-between;align-items:center;
  font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}
.ftr a{text-decoration:none;color:var(--lime)}
.ftr a:hover{text-decoration:underline}

.rv{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
.rv--in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .course{opacity:1;transform:none;animation:none!important}
  .rv{opacity:1;transform:none;transition:none}
  *{transition-duration:.01ms!important}
}

/* ---------- multi-page additions ---------- */
.nav a.on{border-bottom-color:var(--kiln)}
.page-head{padding:clamp(3rem,6vw,5rem) 0 clamp(2.2rem,4vw,3.2rem);
  background:linear-gradient(170deg,#FAFAF8 0%,#EDEBE7 100%);border-bottom:var(--rule)}
.page-head h1{font-size:clamp(2rem,1rem + 4vw,3.9rem);margin-bottom:1.2rem}
.page-head .lede{max-width:54ch}
.crumb{font-family:'IBM Plex Mono',monospace;font-size:.66rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--grout);margin:0 0 1.3rem}
.crumb a{text-decoration:none;border-bottom:1px solid rgba(16,16,18,.25)}
.prose{max-width:62ch}
.prose h3{margin:2.2rem 0 .8rem}
.prose ul{padding-left:1.15rem;color:#42424A}
.prose li{margin-bottom:.55rem}
.faq{display:grid;gap:6px}
.faq details{background:var(--paper);border:1px solid rgba(16,16,18,.09);padding:1.15rem 1.4rem}
.faq summary{cursor:pointer;list-style:none;font-family:Archivo,sans-serif;
  font-variation-settings:'wdth' 112;font-weight:700;text-transform:uppercase;
  font-size:.95rem;letter-spacing:.01em;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';font-family:'IBM Plex Mono',monospace;color:var(--grout);flex:none}
.faq details[open] summary::after{content:'\2013'}
.faq p{margin:.9rem 0 0;color:#42424A;font-size:.97rem}
.tiers{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
@media(max-width:760px){.tiers{grid-template-columns:1fr}}
.tier{background:var(--paper);border:1px solid rgba(16,16,18,.09);padding:clamp(1.5rem,3vw,2.2rem)}
.tier .num{font-family:Archivo,sans-serif;font-variation-settings:'wdth' 112;font-weight:800;
  font-size:2.1rem;line-height:1;letter-spacing:-.02em;margin:.2rem 0 .8rem}
.cta{border-top:var(--rule);padding:clamp(3rem,6vw,5rem) 0;background:var(--kiln);color:var(--lime)}
.cta h2{margin-bottom:1rem}
.cta p{color:#ADADB4;max-width:48ch}
.cta .btn{margin-top:1.6rem}
.err{padding:clamp(4rem,10vw,8rem) 0;text-align:center}
.err .mk{width:96px;margin:0 auto 2rem;display:block}
.err .lede{margin-inline:auto}
.ftr__nav{display:flex;gap:1.4rem;flex-wrap:wrap}
.ftr__nav a{text-decoration:none}
.ftr__nav a:hover{text-decoration:underline}
.mk{display:block;height:auto}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:start}
@media(max-width:900px){.split{grid-template-columns:1fr}}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:2rem}
@media(max-width:760px){.stat-row{grid-template-columns:1fr}}
.stat-row div{background:var(--paper);border:1px solid rgba(16,16,18,.09);padding:1.4rem}
.stat-row b{font-family:Archivo,sans-serif;font-variation-settings:'wdth' 112;font-weight:800;
  font-size:1.8rem;line-height:1;display:block;margin-bottom:.5rem}
.stat-row span{font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--grout)}

/* page-head already draws the rule; don't double it */
.page-head + .sec{border-top:none}
.page-head + .sec.contact{border-top:none}
