/* 1877 Capital, site stylesheet. Plain CSS, no framework, no JavaScript dependencies. */

@font-face{font-family:"Instrument Sans";src:url("/assets/fonts/instrument-sans-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("/assets/fonts/instrument-sans-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("/assets/fonts/instrument-sans-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("/assets/fonts/ibm-plex-mono-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("/assets/fonts/ibm-plex-mono-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}

:root{
  --navy:#0F4C75; --navy-deep:#0B3A5A; --slate:#1E293B; --muted:#475569; --paper:#FFFFFF;
  --blue:#E8F4FD; --line:#D6E2EC; --teal:#00897B; --gold:#C9A84C;
  --amber:#B45309; --orange:#C2410C; --red:#B91C1C;
  --sans:"Instrument Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --r-s:6px; --r-m:10px; --r-l:14px;
  --wrap:1200px; --gut:32px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--slate);font-family:var(--sans);font-size:17px;line-height:1.6;font-feature-settings:"tnum" 0}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--teal)}
:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.2em}
h1,h2,h3,h4{color:var(--navy);font-weight:600;letter-spacing:-.02em;line-height:1.12;margin:0 0 .5em}
h1{font-size:clamp(2.4rem,1.6rem + 3vw,4rem)}
h2{font-size:clamp(1.9rem,1.4rem + 1.8vw,2.75rem)}
h3{font-size:clamp(1.25rem,1.1rem + .6vw,1.5rem)}
h4{font-size:1.1rem}
.lead{font-size:clamp(1.1rem,1rem + .4vw,1.25rem);color:var(--slate);max-width:60ch}
.muted{color:var(--muted)}
.small{font-size:.875rem}
.mono{font-family:var(--mono)}
.skip{position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;padding:12px 16px;z-index:100}
.skip:focus{left:16px;top:16px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.narrow{max-width:760px}
.label{font-family:var(--mono);font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 14px;display:block}
.label b{color:var(--navy);font-weight:500}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line);transition:box-shadow .25s ease}
.site-header.scrolled{box-shadow:0 6px 20px rgba(15,76,117,.08)}
@media (min-width:981px){.site-header{background:rgba(255,255,255,.94);backdrop-filter:saturate(1.2) blur(8px)}}
.site-header .wrap{display:flex;align-items:center;gap:24px;min-height:72px}
.logo{display:flex;align-items:baseline;gap:8px;text-decoration:none;color:var(--navy);margin-right:auto}
.logo b{font-size:1.45rem;font-weight:600;letter-spacing:-.02em}
.logo span{font-family:var(--mono);font-size:.75rem;letter-spacing:.14em;color:var(--navy)}
.nav{display:flex;align-items:center;gap:22px}
.nav>a,.nav summary{color:var(--slate);text-decoration:none;font-size:.95rem;font-weight:500;cursor:pointer}
.nav>a:hover,.nav summary:hover,.nav a[aria-current=page]{color:var(--navy)}
.nav a[aria-current=page]{text-decoration:underline;text-underline-offset:6px}
.dd{position:relative}
.dd summary{list-style:none;display:flex;align-items:center;gap:6px}
.dd summary::-webkit-details-marker{display:none}
.dd summary::after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.dd[open] summary::after{transform:rotate(-135deg) translateY(-2px)}
.dd-panel{position:absolute;top:calc(100% + 14px);left:-16px;width:340px;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);box-shadow:0 8px 24px rgba(15,76,117,.10);padding:10px}
.dd-panel a{display:block;padding:12px 14px;border-radius:var(--r-m);text-decoration:none;color:var(--slate)}
.dd-panel a{transition:background .2s ease}
.dd-panel a:hover{background:var(--blue)}
.dd[open] .dd-panel{animation:menuIn2 .22s ease both}
@keyframes menuIn2{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.dd-panel a strong{display:block;color:var(--navy);font-weight:600}
.dd-panel a span{font-size:.875rem;color:var(--muted)}
.mnav{display:none}
@media (max-width:980px){
  .nav{display:none}
  .site-header .header-cta{display:none}
  .mnav{display:block}
  .mnav summary{list-style:none;display:flex;align-items:center;gap:10px;border:1px solid var(--navy);border-radius:var(--r-m);padding:10px 16px;min-height:44px;color:var(--navy);font-weight:600;cursor:pointer;background:#fff}
  .mnav summary::-webkit-details-marker{display:none}
  .mnav .burger{width:18px;height:12px;position:relative;display:inline-block}
  .mnav .burger::before,.mnav .burger::after,.mnav .burger i{content:"";position:absolute;left:0;right:0;height:2px;background:var(--navy);border-radius:2px;transition:transform .25s ease,opacity .2s ease,top .25s ease}
  .mnav .burger::before{top:0}.mnav .burger i{top:5px}.mnav .burger::after{top:10px}
  .mnav[open] .burger::before{top:5px;transform:rotate(45deg)}
  .mnav[open] .burger::after{top:5px;transform:rotate(-45deg)}
  .mnav[open] .burger i{opacity:0}
  .mnav .m-close{display:none}
  .mnav[open] .m-open{display:none}
  .mnav[open] .m-close{display:inline}
  .mnav[open] summary{background:var(--navy);color:#fff}
  .mnav[open] summary .burger::before,.mnav[open] summary .burger::after{background:#fff}
  .mnav-panel{position:fixed;top:72px;left:0;right:0;bottom:0;height:calc(100vh - 72px);height:calc(100dvh - 72px);z-index:60;background:#fff;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:8px var(--gut) 48px;border-top:1px solid var(--line)}
  .mnav[open] .mnav-panel{animation:menuIn .28s cubic-bezier(.2,.7,.2,1) both}
  @keyframes menuIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
  .mnav-panel p.label{margin:28px 0 4px}
  .mnav-panel a{display:flex;justify-content:space-between;align-items:center;padding:16px 0;font-size:1.3rem;font-weight:600;letter-spacing:-.01em;color:var(--navy);text-decoration:none;border-bottom:1px solid var(--line);min-height:56px}
  .mnav-panel a::after{content:"\2192";font-weight:400;color:var(--teal);transition:transform .2s ease}
  .mnav-panel a:active::after{transform:translateX(4px)}
  .mnav-panel .btn{margin-top:28px;width:100%;border-bottom:0;color:#fff;justify-content:center;font-size:1.05rem;min-height:54px}
  .mnav-panel .btn::after{content:none}
  .mnav-panel .m-foot{margin-top:24px;font-size:.9rem;color:var(--muted)}
  .mnav-panel .m-foot a::after{content:none}
  body:has(.mnav[open]){overflow:hidden}
}

/* Buttons */
.btn{transition:background .2s ease,transform .2s ease,box-shadow .2s ease,color .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:var(--r-m);font:600 1rem var(--sans);text-decoration:none;border:1px solid var(--navy);background:var(--navy);color:#fff;cursor:pointer}
.btn:hover{background:var(--navy-deep);color:#fff;transform:translateY(-2px);box-shadow:0 8px 20px rgba(15,76,117,.22)}
.btn:active{transform:translateY(0);box-shadow:none}
.btn.secondary{background:#fff;color:var(--navy)}
.btn.secondary:hover{background:var(--blue);color:var(--navy)}
.btn.white{background:#fff;color:var(--navy);border-color:#fff}
.btn.white:hover{background:var(--blue)}
.btn.outline-white{background:transparent;color:#fff;border-color:#fff}
.btn.outline-white:hover{background:rgba(255,255,255,.1)}
.btn.small{min-height:40px;padding:0 16px;font-size:.9rem}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.arrow{font-weight:600;text-decoration:none}
.arrow::after{content:"\2192";display:inline-block;margin-left:6px;transition:transform .2s ease}
.arrow:hover::after,a:hover .arrow::after,.card:hover .arrow::after{transform:translateX(5px)}

/* Chapters */
.chapter{padding:112px 0}
.chapter.alt{background:var(--blue)}
.chapter.tight{padding:72px 0}
.hero{padding:88px 0 96px}
.hero.wash{background:linear-gradient(180deg,#fff 0%,#F4F9FE 100%)}
.page-hero{padding:80px 0 72px;border-bottom:1px solid var(--line)}
@media (max-width:700px){.chapter{padding:72px 0}.hero{padding:48px 0 64px}.page-hero{padding:48px 0}:root{--gut:20px}body{font-size:16px}}

/* Grids */
.grid{display:grid;gap:24px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g5{grid-template-columns:repeat(5,minmax(0,1fr))}
.split{display:grid;grid-template-columns:7fr 5fr;gap:56px;align-items:center}
.split.rev{grid-template-columns:5fr 7fr}
.split.top{align-items:start}
.rail{display:grid;grid-template-columns:4fr 8fr;gap:56px;align-items:start}
@media (max-width:980px){.g4,.g5{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}.split,.split.rev,.rail{grid-template-columns:1fr;gap:40px}}
@media (max-width:640px){.g2,.g3,.g4,.g5{grid-template-columns:1fr}}

/* Cards */
.card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:28px;transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease,border-color .3s ease,background-color .3s ease}
.card::before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,var(--teal),var(--navy));transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.card:hover,.card:focus-within{border-color:var(--teal);transform:translateY(-4px);box-shadow:0 14px 34px rgba(15,76,117,.12)}
.card:hover::before,.card:focus-within::before{transform:scaleX(1)}
.card.flat:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(15,76,117,.09)}
.stat.card::before{background:linear-gradient(90deg,var(--gold),var(--teal))}
.router .card:hover{background:#FAFCFE}
@media (hover:none){.card:hover{transform:none}.card:active{transform:scale(.99);border-color:var(--teal)}}
.card h3{margin-bottom:.4em}
.card .label{margin-bottom:10px}
.card p:last-child{margin-bottom:0}
.card.link{display:block;text-decoration:none;color:var(--slate)}
.card.link h3{color:var(--navy)}
.ticks{list-style:none;padding:0;margin:16px 0}
.ticks li{position:relative;padding-left:26px;margin-bottom:8px}
.ticks li::before{content:"";position:absolute;left:2px;top:.55em;width:12px;height:7px;border-left:2px solid var(--teal);border-bottom:2px solid var(--teal);transform:rotate(-45deg)}
.crosses{list-style:none;padding:0;margin:16px 0}
.crosses li{position:relative;padding-left:26px;margin-bottom:8px}
.crosses li::before{content:"";position:absolute;left:3px;top:.8em;width:12px;height:2px;background:var(--muted)}

/* Chips */
.chip{display:inline-block;font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:#fff;vertical-align:middle}
.chip.dev{background:var(--blue);border-color:var(--blue);color:var(--navy)}
.chip.preview{border-color:var(--teal);color:var(--teal)}
.chip.free{border-color:var(--navy);color:var(--navy)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}

/* Stats */
.stat .num{font-size:clamp(2.6rem,2rem + 2vw,3.5rem);font-weight:600;color:var(--navy);letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.stat p{margin:10px 0 8px}
.source{font-family:var(--mono);font-size:.8rem;color:var(--muted);margin:0}
.stat.card{padding:32px}

/* Regulatory strip */
.regstrip{background:var(--blue);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.regstrip .wrap{display:flex;gap:12px;align-items:flex-start;padding-top:16px;padding-bottom:16px;font-size:.9rem}
.regstrip svg{flex:0 0 18px;margin-top:3px}

/* Tables */
.table{width:100%;border-collapse:collapse;font-size:.95rem}
.table th,.table td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top}
.table th{font-family:var(--mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500}
.facts{width:100%;border-collapse:collapse}
.facts th,.facts td{padding:14px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.facts th{width:38%;font-family:var(--mono);font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:500;padding-right:16px}
@media (max-width:640px){.facts th,.facts td{display:block;width:100%;padding:4px 0}.facts td{padding-bottom:14px}}

/* Timeline */
.timeline{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}
.timeline li{position:relative;padding:0 0 32px 28px}
.timeline li::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--navy)}
.timeline li.done::before{background:var(--navy)}
.timeline li.next::before{border-color:var(--teal)}
.timeline .when{font-family:var(--mono);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.timeline h4{margin:4px 0 4px}
.timeline p{margin:0;color:var(--muted)}

/* Steps */
.steps{counter-reset:s;list-style:none;padding:0;margin:0}
.steps>li{counter-increment:s;position:relative;padding-left:56px;margin-bottom:28px}
.steps>li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:0;font-family:var(--mono);font-size:.9rem;color:var(--navy);border:1px solid var(--navy);border-radius:var(--r-s);width:40px;height:32px;display:flex;align-items:center;justify-content:center}

/* Grade badges */
.grade{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--r-s);font-weight:600;color:#fff;flex:0 0 34px}
.grade.a{background:var(--gold);color:var(--navy)}
.grade.b{background:var(--teal)}
.grade.c{background:var(--amber)}
.grade.d{background:var(--orange)}
.grade.f{background:var(--red)}
.grade-row{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line)}
.grade-row p{margin:0}

/* Factor bar */
.factorbar{display:flex;height:56px;border-radius:var(--r-m);overflow:hidden;border:1px solid var(--line)}
.factorbar div{display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--mono);font-size:.78rem;text-align:center;padding:0 4px;line-height:1.2}
.f1{background:#0F4C75;flex:30}.f2{background:#1C6394;flex:20}.f3{background:#2F7BAE;flex:15}.f4{background:#00897B;flex:15}.f5{background:#2FA193;flex:10}.f6{background:#5AB5A9;flex:10}
.factorkey{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 24px;margin-top:14px;font-size:.9rem}
.factorkey span{display:flex;gap:8px;align-items:center}
.factorkey i{width:12px;height:12px;border-radius:3px;display:inline-block}
@media (max-width:640px){.factorbar div{font-size:0}.factorkey{grid-template-columns:1fr 1fr}}

/* Mock panels */
.mock{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:24px;box-shadow:0 1px 0 rgba(15,76,117,.04)}
.mock .tag{position:absolute;top:-11px;left:18px;background:#fff;border:1px solid var(--line);border-radius:var(--r-s);font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:3px 8px}
.mock h4{margin:6px 0 2px}
.mock .row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.92rem}
.mock .row:last-child{border-bottom:0}
.mock .big{font-size:2rem;font-weight:600;color:var(--navy);font-variant-numeric:tabular-nums}
.mock .note{background:var(--blue);border-radius:var(--r-m);padding:10px 12px;font-size:.88rem;margin-top:12px}
.mock .kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0}
.mock .kpis div{border:1px solid var(--line);border-radius:var(--r-m);padding:12px}
.mock .kpis b{display:block;font-size:1.4rem;color:var(--navy)}
.mock .kpis span{font-size:.78rem;color:var(--muted)}
@media (max-width:640px){.mock .kpis{grid-template-columns:1fr 1fr}}
.phone{max-width:340px;margin:0 auto;border:10px solid var(--slate);border-radius:34px;padding:18px 16px;background:#fff}
.countdown{font-family:var(--mono);font-size:2rem;color:var(--navy);letter-spacing:.04em}

/* Photos */
.photo{border-radius:var(--r-l);overflow:hidden;border:1px solid var(--line)}
.photo figcaption{font-family:var(--mono);font-size:.72rem;color:var(--muted);padding:8px 12px;letter-spacing:.04em;background:#fff}

/* Loop diagram */
.loop svg{width:100%;height:auto}

/* Callouts */
.callout{border-left:3px solid var(--navy);background:var(--blue);padding:16px 20px;border-radius:0 var(--r-m) var(--r-m) 0}
.callout.teal{border-color:var(--teal)}
.callout p:last-child{margin:0}

/* Audience router */
.router .card{display:flex;flex-direction:column;gap:6px;min-height:200px;text-decoration:none;color:var(--slate)}
.router .card h3{color:var(--navy)}
.router .card .arrow{margin-top:auto;color:var(--navy)}

/* Markers */
.markers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.markers div{border:1px solid var(--line);border-radius:var(--r-m);padding:16px;background:#fff}
.markers div.now{background:var(--teal);border-color:var(--teal);color:#fff}
.markers div.now b,.markers div.now span{color:#fff}
.markers b{display:block;color:var(--navy)}
.markers span{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.markers.m3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:760px){.markers,.markers.m3{grid-template-columns:1fr 1fr}}

/* Ladder */
.ladder{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:end}
.ladder>div{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:18px}
.ladder>div:nth-child(1){min-height:220px}.ladder>div:nth-child(2){min-height:250px}.ladder>div:nth-child(3){min-height:280px}.ladder>div:nth-child(4){min-height:310px}.ladder>div:nth-child(5){min-height:340px;border-color:var(--navy)}
.ladder .code{font-family:var(--mono);font-size:1.4rem;color:var(--navy);display:block;margin-bottom:6px}
.ladder p{font-size:.9rem;margin:0 0 8px}
@media (max-width:980px){.ladder{grid-template-columns:1fr}.ladder>div{min-height:0!important}}

/* Forms */
.form{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:32px}
.form .grid{gap:20px}
.field{display:flex;flex-direction:column;gap:6px}
.field label,.field legend{font-weight:600;color:var(--slate);font-size:.95rem}
.field .help{font-size:.85rem;color:var(--muted)}
input[type=text],input[type=email],input[type=tel],input[type=date],select,textarea{width:100%;min-height:48px;border:1px solid #B9CCDC;border-radius:var(--r-s);padding:10px 12px;font:inherit;color:var(--slate);background:#fff}
textarea{min-height:130px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--teal);outline-offset:1px;border-color:var(--teal)}
fieldset{border:0;padding:0;margin:0}
.checks label,.radios label{display:flex;gap:10px;align-items:flex-start;font-weight:400;padding:6px 0;cursor:pointer}
.checks input,.radios input{width:20px;height:20px;margin-top:3px;accent-color:var(--navy);flex:0 0 20px}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.92rem}
.consent input{width:20px;height:20px;margin-top:2px;accent-color:var(--navy);flex:0 0 20px}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.span2{grid-column:1/-1}

/* Radio cards (investor gate, contact router) */
.rcards{display:grid;gap:12px}
.rcard{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--r-l);padding:18px;cursor:pointer;background:#fff}
.rcard{transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}
.rcard:hover{border-color:var(--teal);background:#FAFCFE}
.rcard input{width:20px;height:20px;margin-top:3px;accent-color:var(--navy);flex:0 0 20px}
.rcard strong{display:block;color:var(--navy)}
.rcard span{font-size:.9rem;color:var(--muted)}
.rcard:has(input:checked){border-color:var(--navy);box-shadow:0 0 0 1px var(--navy)}

/* Contact router: panels shown with :checked */
.router-panels>div{display:none}
#c-dia:checked~.router-panels .p-dia,#c-biz:checked~.router-panels .p-biz,#c-par:checked~.router-panels .p-par,#c-inv:checked~.router-panels .p-inv,#c-gen:checked~.router-panels .p-gen{display:block}
.router-radios{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:24px}
.router-radios label{border:1px solid var(--line);border-radius:var(--r-m);padding:14px;cursor:pointer;background:#fff;font-weight:500;color:var(--navy);min-height:64px}
.router-radios label:hover{border-color:var(--teal)}
.cr{position:absolute;opacity:0;pointer-events:none}
#c-dia:checked~.router-radios label[for=c-dia],#c-biz:checked~.router-radios label[for=c-biz],#c-par:checked~.router-radios label[for=c-par],#c-inv:checked~.router-radios label[for=c-inv],#c-gen:checked~.router-radios label[for=c-gen]{border-color:var(--navy);box-shadow:0 0 0 1px var(--navy);background:var(--blue)}
.cr:focus-visible~.router-radios{outline:2px solid var(--teal)}
@media (max-width:900px){.router-radios{grid-template-columns:1fr}}

/* Investor gate */
.gate .step{border:1px solid var(--line);border-radius:var(--r-l);padding:28px;background:#fff;margin-bottom:20px}
.gate .stepno{font-family:var(--mono);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.gate .notice-out{display:none}
.gate:has(#res-out:checked) .notice-out{display:block}
.gate:has(#res-out:checked) .gate-rest{display:none}
.gate .res-radios{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:640px){.gate .res-radios{grid-template-columns:1fr}}
.stmt{max-height:380px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-m);padding:20px;background:#FAFCFE;font-size:.92rem;margin-top:16px}
@supports selector(:has(*)){
  .gate .stmt{display:none}
  .gate:has(#t-hnw:checked) .s-hnw,.gate:has(#t-soph:checked) .s-soph,.gate:has(#t-pro:checked) .s-pro{display:block}
}
.gate .yn{display:flex;gap:18px;margin:6px 0 12px}
.gate .yn label{display:flex;gap:8px;align-items:center;font-weight:500}

/* Risk banner */
.riskbar{background:#FFF7E6;border-bottom:1px solid #F0D9A8}
.riskbar .wrap{padding-top:14px;padding-bottom:14px;font-size:.92rem}

/* FAQ */
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:20px 40px 20px 0;font-weight:600;color:var(--navy);position:relative;font-size:1.05rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:14px;font-size:1.6rem;font-weight:400;color:var(--navy);transition:transform .2s ease}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 0 20px;max-width:70ch}

/* Legal layout */
.legal{display:grid;grid-template-columns:260px 1fr;gap:56px;align-items:start}
.legal nav{position:sticky;top:96px}
.legal nav a{display:block;padding:8px 0;text-decoration:none;color:var(--slate);border-bottom:1px solid var(--line);font-size:.95rem}
.legal nav a[aria-current=page]{color:var(--navy);font-weight:600}
.legal article{max-width:72ch}
.legal article h2{font-size:1.5rem;margin-top:1.8em}
.legal article h3{font-size:1.15rem;margin-top:1.4em}
@media (max-width:900px){.legal{grid-template-columns:1fr}.legal nav{position:static}}

/* Article */
.article{max-width:700px}
.article h2{font-size:1.6rem;margin-top:1.8em}
.inshort{background:var(--blue);border-radius:var(--r-l);padding:22px 26px;margin:28px 0}
.inshort ul{margin:0}

/* Dark CTA */
.cta-dark{background:var(--navy);color:#fff;padding:96px 0}
.cta-dark h2{color:#fff}
.cta-dark p{color:#E4EEF6}

/* Footer */
.site-footer{border-top:1px solid var(--line);background:#fff;padding-top:64px}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px;padding-bottom:48px}
.foot-grid h4{font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:14px}
.foot-grid ul{list-style:none;padding:0;margin:0}
.foot-grid li{margin-bottom:8px}
.foot-grid a{color:var(--slate);text-decoration:none}
.foot-grid a:hover{color:var(--teal)}
.legalband{background:var(--blue);padding:28px 0;font-size:.85rem;color:var(--slate)}
.legalband p{margin:0 0 10px;max-width:110ch}
.legalband .row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-family:var(--mono);font-size:.78rem;color:var(--muted)}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}

/* Motion. Everything below is enhancement: with JavaScript off or reduced motion on, content shows immediately. */
@media (prefers-reduced-motion:no-preference){
  html.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0ms)}
  html.js .reveal.in{opacity:1;transform:none}
  html.js .factorbar.reveal div{transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
  html.js .factorbar.reveal.in div{transform:scaleX(1)}
  html.js .factorbar.reveal.in div:nth-child(2){transition-delay:.1s}html.js .factorbar.reveal.in div:nth-child(3){transition-delay:.2s}
  html.js .factorbar.reveal.in div:nth-child(4){transition-delay:.3s}html.js .factorbar.reveal.in div:nth-child(5){transition-delay:.4s}html.js .factorbar.reveal.in div:nth-child(6){transition-delay:.5s}
  html.js .grade.pop{transform:scale(.4);opacity:0;transition:transform .5s cubic-bezier(.34,1.56,.64,1),opacity .3s ease;transition-delay:var(--d,0ms)}
  html.js .grade.pop.in{transform:none;opacity:1}
  /* Hero corridor map */
  .map-flow{stroke-dasharray:4 5;animation:flow 1.6s linear infinite}
  @keyframes flow{to{stroke-dashoffset:-18}}
  .map-gold{stroke-dasharray:420;stroke-dashoffset:420;animation:draw 1.8s .3s cubic-bezier(.4,0,.2,1) forwards}
  @keyframes draw{to{stroke-dashoffset:0}}
  .map-dot{transform-box:fill-box;transform-origin:center;animation:ping 2.4s ease-out infinite}
  .map-dot.d2{animation-delay:.8s}.map-dot.d3{animation-delay:1.6s}
  @keyframes ping{0%{transform:scale(1);opacity:.9}70%{transform:scale(2.6);opacity:0}100%{opacity:0}}
  .map-shop{transform-box:fill-box;transform-origin:center bottom;animation:shop .7s 1.8s cubic-bezier(.34,1.56,.64,1) both}
  @keyframes shop{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
  /* Loop diagram draws itself when it scrolls into view */
  html.js .loop.reveal .loop-path{stroke-dasharray:600;stroke-dashoffset:600}
  html.js .loop.reveal.in .loop-path{animation:draw 1.2s cubic-bezier(.4,0,.2,1) forwards}
  html.js .loop.reveal.in .loop-path.p2{animation-delay:.5s}
  html.js .loop.reveal.in .loop-path.p3{animation-delay:1s}
  html.js .loop.reveal .loop-node{opacity:0;transition:opacity .6s ease}
  html.js .loop.reveal.in .loop-node{opacity:1}
  html.js .loop.reveal.in .loop-node.n2{transition-delay:.6s}html.js .loop.reveal.in .loop-node.n3{transition-delay:1.1s}
  /* Timeline: the next step pulses */
  .timeline li.next::after{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;border:2px solid var(--teal);animation:ping 2s ease-out infinite}
  /* Countdown blinks its separators */
  .countdown .sep{animation:blink 1s steps(1) infinite}
  @keyframes blink{50%{opacity:.25}}
  /* Status chip for private preview breathes */
  .chip.preview{position:relative;padding-left:22px}
  .chip.preview::before{content:"";position:absolute;left:9px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--teal);animation:breathe 2s ease-in-out infinite}
  @keyframes breathe{50%{opacity:.3;transform:scale(.7)}}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Print */
@media print{.site-header,.site-footer,.regstrip,.btns,.legal nav{display:none}body{color:#000}a{color:#000}}
