
:root{
  --ink:        #17130F;
  --ink-elev:   #211B15;
  --ink-elev-2: #2B2319;
  --ember:      #D9662B;
  --ember-soft: #E88A4E;
  --brick:      #8F3324;
  --line:       #3A2F24;
  --text:       #EEE7D9;
  --text-dim:   #B9AD98;
  --text-faint: #8A7E6C;
  --focus:      #E88A4E;
}
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]){
    --ink:#ECE6D9; --ink-elev:#F7F3E9; --ink-elev-2:#FFFDF8;
    --ember:#C85A22; --ember-soft:#B0491B; --brick:#8F3324;
    --line:#D9CDB7; --text:#241C12; --text-dim:#5B5140; --text-faint:#83765F; --focus:#A6431A;
  }
}
:root[data-theme="light"]{
  --ink:#ECE6D9; --ink-elev:#F7F3E9; --ink-elev-2:#FFFDF8;
  --ember:#C85A22; --ember-soft:#B0491B; --brick:#8F3324;
  --line:#D9CDB7; --text:#241C12; --text-dim:#5B5140; --text-faint:#83765F; --focus:#A6431A;
}
:root[data-theme="dark"]{
  --ink:#17130F; --ink-elev:#211B15; --ink-elev-2:#2B2319;
  --ember:#D9662B; --ember-soft:#E88A4E; --brick:#8F3324;
  --line:#3A2F24; --text:#EEE7D9; --text-dim:#B9AD98; --text-faint:#8A7E6C; --focus:#E88A4E;
}
*{box-sizing:border-box;}
::selection{ background:var(--ember); color:var(--ink); }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation-duration:.001ms !important; transition-duration:.001ms !important;} }
body{ margin:0; background:var(--ink); color:var(--text); font-family:"Public Sans",-apple-system,"Segoe UI",sans-serif; font-size:16.5px; line-height:1.6; -webkit-font-smoothing:antialiased; }
h1,h2,h3{ font-family:"Fraunces",Georgia,"Iowan Old Style",serif; font-weight:560; letter-spacing:-0.01em; text-wrap:balance; margin:0; color:var(--text); }
a{ color:inherit; } p{ margin:0; }
.mono{ font-family:"IBM Plex Mono",ui-monospace,"SFMono-Regular",monospace; font-variant-numeric:tabular-nums; }
.eyebrow{ font-family:"IBM Plex Mono",ui-monospace,monospace; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ember); }
.wrap{ max-width:1120px; margin:0 auto; padding-left:clamp(20px,5vw,56px); padding-right:clamp(20px,5vw,56px); }

.preview-strip{ background:var(--ink-elev-2); border-bottom:1px solid var(--line); color:var(--text-faint); font-family:"IBM Plex Mono",monospace; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; text-align:center; padding:7px 12px; }
.preview-strip b{ color:var(--ember); font-weight:500; }

.nav{ position:sticky; top:0; z-index:40; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:16px clamp(20px,5vw,56px); background:color-mix(in srgb, var(--ink) 88%, transparent); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; }
.brand img{ height:30px; width:auto; display:block; }
.brand-word{ font-family:"Fraunces",serif; font-weight:560; font-size:1.18rem; letter-spacing:.01em; }
.brand-word sub{ font-family:"IBM Plex Mono",monospace; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--text-faint); display:block; margin-top:-3px; }
.navlinks{ display:flex; align-items:center; gap:26px; list-style:none; margin:0; padding:0; }
.navlinks a{ text-decoration:none; font-size:.86rem; color:var(--text-dim); letter-spacing:.02em; padding-bottom:2px; border-bottom:1px solid transparent; transition:color .15s ease,border-color .15s ease; white-space:nowrap; }
.navlinks a:hover, .navlinks a:focus-visible{ color:var(--text); border-color:var(--ember); }
.navlinks a[aria-current="page"]{ color:var(--ember); border-color:var(--ember); }
a:focus-visible, button:focus-visible{ outline:2px solid var(--focus); outline-offset:3px; }
.menu-btn{ display:none; background:none; border:1px solid var(--line); color:var(--text); width:38px; height:38px; border-radius:2px; cursor:pointer; font-size:1rem; }
@media (max-width:820px){
  .navlinks{ position:fixed; inset:57px 0 auto 0; flex-direction:column; align-items:flex-start; background:var(--ink-elev); border-bottom:1px solid var(--line); padding:18px clamp(20px,5vw,56px) 24px; gap:16px; transform:translateY(-8px); opacity:0; pointer-events:none; transition:opacity .18s ease,transform .18s ease; }
  .navlinks.open{ opacity:1; transform:translateY(0); pointer-events:auto; }
  .menu-btn{ display:block; }
}

section{ border-bottom:1px solid var(--line); }
.section-inner{ padding:clamp(52px,8vw,92px) 0; }
.section-head{ display:grid; gap:14px; max-width:64ch; margin-bottom:clamp(32px,5vw,52px); }
.section-head h2{ font-size:clamp(1.7rem,3.4vw,2.5rem); }
.draft-tag{ display:inline-flex; align-items:center; gap:7px; font-family:"IBM Plex Mono",monospace; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-faint); border:1px solid var(--line); padding:4px 9px; border-radius:2px; width:max-content; }
.draft-tag::before{ content:"\25CF"; color:var(--ember); font-size:.6em; }

.page-hero{ position:relative; overflow:hidden; border-bottom:1px solid var(--line); }
.lattice{ position:absolute; inset:0; background-image: repeating-linear-gradient(45deg, color-mix(in srgb, var(--ember) 14%, transparent) 0 2px, transparent 2px 46px), repeating-linear-gradient(-45deg, color-mix(in srgb, var(--brick) 12%, transparent) 0 2px, transparent 2px 46px); mask-image:radial-gradient(ellipse 80% 65% at 78% 15%, black 0%, transparent 72%); -webkit-mask-image:radial-gradient(ellipse 80% 65% at 78% 15%, black 0%, transparent 72%); opacity:.9; }
.page-hero-inner{ position:relative; padding:clamp(48px,8vw,84px) 0 clamp(40px,6vw,64px); display:grid; gap:22px; }
.page-hero h1{ font-size:clamp(2.1rem,4.6vw,3.4rem); line-height:1.05; max-width:20ch; }
.page-hero h1 em{ font-style:italic; color:var(--ember); }
.page-hero .lede{ max-width:60ch; font-size:1.05rem; color:var(--text-dim); }
.crumb{ font-family:"IBM Plex Mono",monospace; font-size:.72rem; letter-spacing:.08em; color:var(--text-faint); }
.crumb a{ text-decoration:none; border-bottom:1px solid var(--line); }
.crumb a:hover{ color:var(--ember); border-color:var(--ember); }

.about-grid{ display:grid; grid-template-columns:1fr; gap:40px; }
@media(min-width:820px){ .about-grid{ grid-template-columns:1.1fr .9fr; } }
.about-copy p{ max-width:60ch; color:var(--text-dim); margin-top:14px; }
.about-copy p:first-of-type{ margin-top:0; }
.about-copy strong{ color:var(--text); font-weight:600; }
.credentials{ display:grid; gap:0; border:1px solid var(--line); background:var(--ink-elev); }
.credentials dt{ font-family:"IBM Plex Mono",monospace; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-faint); padding:14px 18px 0; }
.credentials dd{ margin:4px 18px 16px; font-size:.98rem; color:var(--text); padding-bottom:15px; border-bottom:1px solid var(--line); }
.credentials div:last-child dd{ border-bottom:none; padding-bottom:18px; }

.idea-pull{ font-family:"Fraunces",serif; font-weight:440; font-style:italic; font-size:clamp(1.3rem,2.4vw,1.8rem); line-height:1.35; max-width:30ch; color:var(--text); border-left:2px solid var(--ember); padding-left:26px; }
.idea-grid{ display:grid; gap:36px; margin-top:44px; }
@media(min-width:760px){ .idea-grid{ grid-template-columns:repeat(3,1fr); } }
.idea-card .num{ font-family:"IBM Plex Mono",monospace; font-size:.74rem; color:var(--ember); letter-spacing:.08em; }
.idea-card h3{ font-size:1.14rem; font-weight:560; margin-top:10px; }
.idea-card p{ margin-top:10px; color:var(--text-dim); font-size:.96rem; max-width:38ch; }

.why-grid{ display:grid; gap:30px; }
@media(min-width:760px){ .why-grid{ grid-template-columns:repeat(3,1fr); } }
.why-card{ padding:22px 0 0; border-top:1px solid var(--ember); }
.why-card h3{ font-size:1.05rem; font-weight:560; }
.why-card p{ margin-top:8px; color:var(--text-dim); font-size:.93rem; }
.why-versus{ margin-top:10px; font-size:.78rem; color:var(--text-faint); }

.ledger-table{ width:100%; border-collapse:collapse; }
.ledger-table th{ text-align:left; font-family:"IBM Plex Mono",monospace; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-faint); font-weight:400; padding:0 0 12px; border-bottom:1px solid var(--line); }
.ledger-table td{ padding:16px 0; border-bottom:1px solid var(--line); vertical-align:top; font-size:.96rem; }
.ledger-table tr:last-child td{ border-bottom:none; }
.ledger-table td.figure{ font-family:"IBM Plex Mono",monospace; text-align:right; white-space:nowrap; color:var(--text); }
.ledger-table td.label{ color:var(--text-dim); max-width:34ch; }
.ledger-table td.label b{ color:var(--text); font-weight:600; display:block; margin-bottom:2px; }
.tbc{ color:var(--text-faint); font-style:italic; }
.ledger-wrap{ overflow-x:auto; }
.ledger-note{ margin-top:18px; font-size:.82rem; color:var(--text-faint); max-width:56ch; }

.sol-grid{ display:grid; gap:1px; background:var(--line); border:1px solid var(--line); }
@media(min-width:760px){ .sol-grid{ grid-template-columns:repeat(3,1fr); } }
.sol-card{ background:var(--ink); padding:30px 26px; display:flex; flex-direction:column; gap:12px; }
.sol-card .eyebrow{ font-size:.66rem; }
.sol-card h3{ font-size:1.2rem; }
.sol-card p{ color:var(--text-dim); font-size:.94rem; flex:1; }
.sol-card .fit{ font-size:.78rem; color:var(--text-faint); padding-top:10px; border-top:1px solid var(--line); }

.contact-grid{ display:grid; gap:48px; }
@media(min-width:820px){ .contact-grid{ grid-template-columns:.85fr 1.15fr; } }
.contact-info dl{ margin:22px 0 0; display:grid; gap:16px; }
.contact-info dt{ font-family:"IBM Plex Mono",monospace; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-faint); }
.contact-info dd{ margin:3px 0 0; }
.contact-info a{ text-decoration:none; border-bottom:1px solid var(--line); }
.contact-info a:hover{ border-color:var(--ember); color:var(--ember); }
form{ display:grid; gap:16px; }
.field{ display:grid; gap:6px; }
label{ font-family:"IBM Plex Mono",monospace; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-faint); }
input, textarea{ font-family:"Public Sans",sans-serif; font-size:.96rem; color:var(--text); background:var(--ink-elev); border:1px solid var(--line); padding:11px 13px; border-radius:2px; width:100%; }
input:focus, textarea:focus{ outline:none; border-color:var(--ember); }
textarea{ min-height:110px; resize:vertical; }
.submit-btn{ justify-self:start; margin-top:4px; background:var(--ember); color:var(--ink); border:none; font-family:"IBM Plex Mono",monospace; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; padding:13px 24px; cursor:pointer; transition:background .15s ease; }
.submit-btn:hover{ background:var(--ember-soft); }
.form-note{ font-size:.76rem; color:var(--text-faint); }
.form-note.ok{ color:var(--ember); }

.pagebar{ display:flex; flex-wrap:wrap; gap:12px 20px; justify-content:space-between; align-items:center; padding:28px 0; }
.pagebar a{ text-decoration:none; font-family:"IBM Plex Mono",monospace; font-size:.78rem; color:var(--text-dim); border-bottom:1px solid var(--line); }
.pagebar a:hover{ color:var(--ember); border-color:var(--ember); }

footer{ padding:34px 0 42px; }
.foot-row{ display:flex; flex-wrap:wrap; gap:14px 28px; justify-content:space-between; align-items:center; }
.foot-left{ font-family:"IBM Plex Mono",monospace; font-size:.74rem; color:var(--text-faint); }
.foot-right{ display:flex; gap:20px; align-items:center; }
.foot-right a{ color:var(--text-faint); text-decoration:none; font-size:.78rem; }
.foot-right a:hover{ color:var(--ember); }
.icon-link{ display:inline-flex; }
.compliance{ margin-top:22px; padding-top:20px; border-top:1px solid var(--line); font-size:.76rem; color:var(--text-faint); max-width:74ch; }

/* ---- Disclaimer gate (professional/institutional client) ---- */
.disclaimer-modal{ position:fixed; inset:0; background:rgba(10,7,4,.72); display:none; align-items:center; justify-content:center; z-index:200; padding:24px; }
.disclaimer-modal.active{ display:flex; }
.disclaimer-content{ background:var(--ink-elev); border:1px solid var(--line); max-width:600px; width:100%; padding:34px 32px; max-height:82vh; display:flex; flex-direction:column; }
.disclaimer-content h2{ font-size:1.1rem; line-height:1.35; flex-shrink:0; }
.disclaimer-body{ overflow-y:auto; margin-top:6px; padding-right:6px; }
.disclaimer-body h3{ font-family:"IBM Plex Mono",monospace; font-size:.7rem; letter-spacing:.09em; text-transform:uppercase; color:var(--ember); margin-top:18px; }
.disclaimer-body h3:first-child{ margin-top:16px; }
.disclaimer-body p{ margin-top:8px; color:var(--text-dim); font-size:.88rem; line-height:1.55; }
.disclaimer-content .agree-btn{ margin-top:22px; flex-shrink:0; background:var(--ember); color:var(--ink); border:none; font-family:"IBM Plex Mono",monospace; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; padding:13px 26px; cursor:pointer; transition:background .15s ease; }
.disclaimer-content .agree-btn:hover{ background:var(--ember-soft); }
.disclaimer-note{ margin-top:16px; font-size:.72rem; color:var(--text-faint); font-style:italic; }
.gated-content{ display:none; }
.gated-content.revealed{ display:block; }

/* ---- Solution cards as accordion ---- */
.sol-toggle{ all:unset; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:14px; width:100%; }
.sol-toggle .plus{ font-family:"IBM Plex Mono",monospace; color:var(--ember); font-size:1.15rem; line-height:1; transition:transform .2s ease; flex-shrink:0; }
.sol-card.open .sol-toggle .plus{ transform:rotate(45deg); }
.sol-body{ max-height:0; overflow:hidden; transition:max-height .28s ease; }
.sol-card.open .sol-body{ max-height:260px; }
.sol-body-inner{ padding-top:12px; }
.sol-teaser{ margin-top:6px; font-size:.86rem; color:var(--text-faint); }
.contact-cta{ display:inline-block; margin-top:12px; font-family:"IBM Plex Mono",monospace; font-size:.76rem; letter-spacing:.04em; color:var(--ember); text-decoration:none; border-bottom:1px solid var(--line); }
.contact-cta:hover{ border-color:var(--ember); }
