/* ============================================================
   TitleBridge — Neumorphic (Soft UI) design system
   Everything is extruded from, or pressed into, one surface.
   Light source: top-left. No hard borders anywhere.

   Used by every page except index.html, which carries the same
   token set inline for its landing-page-only components.
   ============================================================ */

:root{
  /* --- the one surface everything is carved from --- */
  --surface:#e6e9ef;
  --surface-2:#eaedf3;
  --surface-sunk:#e1e4eb;

  /* --- the two lights that make the extrusion --- */
  --light:#ffffff;
  --dark:#c5cad6;

  /* --- ink --- */
  --ink:#2b3345;
  --ink-soft:#5c667e;
  --ink-faint:#60697f;

  /* --- one accent, split into a gradient --- */
  --accent:#6843ff;
  --accent-2:#0c709f;
  --accent-grad:linear-gradient(135deg,#6843ff,#0c709f);

  --mint:#0f7854;
  --amber:#995a12;
  --rose:#b3242a;

  /* --- soft-UI shadow scale --- */
  --sh-1:-3px -3px 7px var(--light), 3px 3px 7px var(--dark);
  --sh-2:-6px -6px 14px var(--light), 6px 6px 14px var(--dark);
  --sh-3:-10px -10px 26px var(--light), 10px 10px 26px var(--dark);
  --sh-4:-16px -16px 40px var(--light), 16px 16px 40px var(--dark);
  --sh-in:inset -3px -3px 7px var(--light), inset 3px 3px 7px var(--dark);
  --sh-in-deep:inset -5px -5px 12px var(--light), inset 5px 5px 12px var(--dark);
  --sh-in-soft:inset -2px -2px 5px var(--light), inset 2px 2px 5px var(--dark);

  --maxw:1180px;
  --nav-h:68px;
  --nav-h-sm:56px;
  --anchor-off:84px;
  --r-sm:12px;
  --r-md:18px;
  --r-lg:26px;
  --r-xl:34px;
}

@media (prefers-color-scheme: dark){
  :root{
    --surface:#262a31;
    --surface-2:#2b2f37;
    --surface-sunk:#22252b;
    --light:#31363f;
    --dark:#1a1d22;
    --ink:#e9ecf3;
    --ink-soft:#a7aebe;
    --ink-faint:#8990a1;
    --accent:#a189ff;
    --accent-2:#4bc2f5;
    --accent-grad:linear-gradient(135deg,#a189ff,#4bc2f5);
    --mint:#3fd9a4;
    --amber:#f0b054;
    --rose:#ff8189;
  }
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--surface);
  color:var(--ink);
  font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,sans-serif;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:"Sora",sans-serif;font-weight:600;letter-spacing:-.025em;line-height:1.16;margin:0;color:var(--ink);}
.mono{font-family:"JetBrains Mono",ui-monospace,monospace;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
.wrap-narrow{max-width:860px;margin:0 auto;padding:0 28px;}

/* ---------- signature: soft-touch grain over the whole surface ---------- */
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;
  opacity:.5;mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
}

main,nav,footer{position:relative;z-index:1;}

/* skip link */
.skip{
  position:absolute;left:-9999px;top:0;z-index:300;
  background:var(--surface);border-radius:var(--r-sm);box-shadow:var(--sh-2);
  padding:12px 20px;font-size:14px;font-weight:600;color:var(--ink);
}
.skip:focus{left:18px;top:14px;}

/* ---------- eyebrow ---------- */
.eyebrow{
  font-family:"JetBrains Mono",monospace;font-size:11px;font-weight:500;
  letter-spacing:.24em;text-transform:uppercase;color:var(--ink-faint);
  display:inline-flex;align-items:center;gap:11px;
}
.eyebrow::before{
  content:"";width:24px;height:6px;border-radius:6px;
  background:var(--surface);box-shadow:var(--sh-in-soft);
}

/* ---------- nav ---------- */
nav{
  position:sticky;top:0;z-index:50;
  background:var(--surface);
  transition:box-shadow .3s ease;
}
nav.scrolled{box-shadow:0 5px 24px rgba(0,0,0,.09);}
@media (prefers-color-scheme: dark){ nav.scrolled{box-shadow:0 5px 26px rgba(0,0,0,.4);} }
.nav-inner{
  display:flex;align-items:center;justify-content:space-between;
  height:var(--nav-h);gap:20px;
  transition:height .28s cubic-bezier(.2,.7,.3,1);
}
nav.scrolled .nav-inner{height:var(--nav-h-sm);}
.brand{display:flex;align-items:center;gap:12px;font-family:"Sora",sans-serif;font-weight:700;font-size:19px;letter-spacing:-.02em;}
.brand .glyph{
  width:40px;height:40px;flex:0 0 auto;padding:6px;border-radius:13px;
  background:var(--surface);box-shadow:var(--sh-1);
  transition:width .28s cubic-bezier(.2,.7,.3,1),height .28s cubic-bezier(.2,.7,.3,1),padding .28s;
}
nav.scrolled .brand .glyph{width:33px;height:33px;padding:4px;border-radius:11px;}

/* the nav links live in a pressed track — a segmented control */
.nav-links{
  display:flex;gap:4px;align-items:center;
  background:var(--surface);border-radius:999px;
  box-shadow:var(--sh-in);padding:5px;
  transition:padding .28s cubic-bezier(.2,.7,.3,1);
}
nav.scrolled .nav-links{padding:4px;}
nav.scrolled .nav-links a{padding:7px 15px;}
.nav-links a{
  font-size:14px;font-weight:500;color:var(--ink-soft);
  padding:9px 17px;border-radius:999px;
  transition:color .2s, box-shadow .2s, background .2s;
}
.nav-links a:hover{color:var(--ink);}
.nav-links a.current{
  color:var(--ink);background:var(--surface);box-shadow:var(--sh-1);
}
.nav-cta{
  font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;font-size:14px;
  padding:12px 22px;border-radius:999px;color:#fff;
  background:var(--accent-grad);
  box-shadow:var(--sh-2);
  transition:transform .2s, box-shadow .2s, filter .2s, padding .28s;
}
nav.scrolled .nav-cta{padding:10px 20px;}
.nav-cta:hover{transform:translateY(-2px);filter:saturate(1.15);box-shadow:var(--sh-3);}
.nav-cta:active{transform:translateY(0);box-shadow:var(--sh-in-soft);}
.menu-btn{
  display:none;border:0;cursor:pointer;padding:0;
  width:46px;height:46px;border-radius:14px;color:var(--ink-soft);
  background:var(--surface);box-shadow:var(--sh-1);
  align-items:center;justify-content:center;
  transition:box-shadow .18s, color .18s;
}
.menu-btn:active,.menu-btn[aria-expanded="true"]{box-shadow:var(--sh-in);color:var(--ink);}

.nav-drawer{display:none;padding:8px 0 20px;}
.nav-drawer.open{display:block;}
.nav-drawer a{
  display:block;padding:14px 20px;margin-bottom:8px;color:var(--ink-soft);font-size:15px;font-weight:500;
  background:var(--surface);border-radius:var(--r-sm);box-shadow:var(--sh-1);
  transition:box-shadow .18s, color .18s;
}
.nav-drawer a:active{box-shadow:var(--sh-in);color:var(--ink);}

/* ---------- buttons ---------- */
.btn-primary{
  display:inline-block;
  font-weight:700;font-size:15px;padding:17px 32px;border-radius:999px;color:#fff;
  background:var(--accent-grad);box-shadow:var(--sh-2);
  transition:transform .2s, box-shadow .2s, filter .2s;
}
.btn-primary:hover{transform:translateY(-3px);filter:saturate(1.15);box-shadow:var(--sh-3);}
.btn-primary:active{transform:translateY(0);box-shadow:var(--sh-in-soft);}
.btn-ghost{
  display:inline-block;
  font-weight:600;font-size:15px;padding:17px 30px;border-radius:999px;color:var(--ink);
  background:var(--surface);box-shadow:var(--sh-2);
  transition:transform .2s, box-shadow .2s, color .2s;
}
.btn-ghost:hover{transform:translateY(-3px);box-shadow:var(--sh-3);color:var(--accent-2);}
.btn-ghost:active{transform:translateY(0);box-shadow:var(--sh-in);}
.btn-sm{font-size:14px;padding:12px 22px;}

/* ---------- page header ---------- */
.page-head{padding:80px 0 56px;}
.page-head h1{font-size:clamp(36px,5vw,58px);font-weight:700;margin-top:20px;letter-spacing:-.035em;}
.page-head h1 .grad{
  background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.page-head p.lede{color:var(--ink-soft);font-size:19px;max-width:58ch;margin:22px 0 0;}
.crumbs{
  display:inline-flex;align-items:center;gap:2px;
  font-family:"JetBrains Mono",monospace;font-size:11.5px;color:var(--ink-faint);
  margin-bottom:26px;padding:9px 18px;border-radius:999px;
  background:var(--surface);box-shadow:var(--sh-in-soft);
}
.crumbs a{color:var(--ink-faint);transition:color .18s;}
.crumbs a:hover{color:var(--accent-2);}
.crumbs span{margin:0 9px;opacity:.5;}

section.blk{padding:76px 0;}
.sec-head{max-width:680px;margin-bottom:46px;}
.sec-head h2{font-size:clamp(27px,3.3vw,40px);margin-top:18px;letter-spacing:-.03em;}
.sec-head p{color:var(--ink-soft);font-size:17px;margin:18px 0 0;}

/* ---------- prose ---------- */
.prose h2{font-size:27px;margin:0 0 16px;scroll-margin-top:var(--anchor-off);letter-spacing:-.028em;}
.prose h3{font-size:19px;margin:34px 0 12px;scroll-margin-top:var(--anchor-off);}
.doc-layout [id]{scroll-margin-top:var(--anchor-off);}
.prose h4{font-size:16px;margin:26px 0 8px;}
.prose p{color:var(--ink-soft);font-size:16px;margin:0 0 17px;}
.prose ul,.prose ol{color:var(--ink-soft);font-size:16px;margin:0 0 20px;padding-left:24px;}
.prose li{margin-bottom:10px;}
.prose li::marker{color:var(--accent);}
.prose strong{color:var(--ink);font-weight:700;}
.prose em{color:var(--ink);font-style:italic;}
.prose a:not(.btn-primary):not(.btn-ghost){
  color:var(--accent-2);font-weight:600;
  box-shadow:inset 0 -2px 0 rgba(12,112,159,.35);
  transition:box-shadow .2s;
}
.prose a:not(.btn-primary):not(.btn-ghost):hover{box-shadow:inset 0 -8px 0 rgba(12,112,159,.18);}
.prose code{
  font-family:"JetBrains Mono",monospace;font-size:13px;color:var(--ink);
  background:var(--surface);border-radius:7px;padding:3px 8px;
  box-shadow:var(--sh-in-soft);
}
.prose pre{
  font-family:"JetBrains Mono",monospace;font-size:12.5px;line-height:1.75;color:var(--ink);
  background:var(--surface);border-radius:var(--r-md);
  padding:22px 24px;overflow-x:auto;margin:0 0 22px;
  box-shadow:var(--sh-in);
}
.prose pre code{background:none;box-shadow:none;padding:0;font-size:inherit;}
.prose hr{
  border:0;height:6px;border-radius:6px;margin:46px 0;
  background:var(--surface);box-shadow:var(--sh-in-soft);
}

/* doc section — separated by a soft groove, never a hard rule */
.doc-sec{padding:46px 0;position:relative;scroll-margin-top:var(--anchor-off);}
.doc-sec::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:5px;border-radius:5px;
  background:var(--surface);box-shadow:var(--sh-in-soft);
}
.doc-sec:last-child::after{display:none;}
.doc-sec > .eyebrow{margin-bottom:16px;}

/* ---------- docs layout ---------- */
.doc-layout{display:grid;grid-template-columns:250px 1fr;gap:56px;align-items:start;padding:56px 0 100px;}
.doc-nav{
  position:sticky;top:calc(var(--nav-h-sm) + 22px);
  background:var(--surface);border-radius:var(--r-lg);
  box-shadow:var(--sh-2);padding:24px 18px;
  max-height:calc(100vh - var(--nav-h-sm) - 46px);
  overflow-y:auto;overscroll-behavior:contain;
  scrollbar-width:thin;scrollbar-color:var(--dark) transparent;
}
.doc-nav::-webkit-scrollbar{width:6px;}
.doc-nav::-webkit-scrollbar-track{background:transparent;}
.doc-nav::-webkit-scrollbar-thumb{background:var(--dark);border-radius:6px;}
.doc-nav h4{
  font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink-faint);font-weight:500;margin:0 0 12px;padding-left:14px;
}
.doc-nav a{
  display:block;font-size:14px;font-weight:500;color:var(--ink-soft);
  padding:9px 14px;border-radius:11px;margin-bottom:3px;
  transition:color .18s, box-shadow .22s;
}
.doc-nav a:hover{color:var(--ink);}
.doc-nav a.active{color:var(--accent-2);font-weight:600;box-shadow:var(--sh-in-soft);}
.doc-nav .group{margin-bottom:26px;}

/* numbered rail — used by the legal pages' Contents */
.doc-nav.numbered{counter-reset:tocn;}
.doc-nav.numbered > a{counter-increment:tocn;display:flex;gap:11px;align-items:baseline;}
.doc-nav.numbered > a::before{
  content:counter(tocn,decimal-leading-zero);
  font-family:"JetBrains Mono",monospace;font-size:10px;font-weight:600;
  color:var(--accent);flex:0 0 auto;opacity:.8;
}
.doc-nav.numbered > a.active::before{opacity:1;}
.doc-nav .group:last-child{margin-bottom:0;}

/* ---------- cards ---------- */
.card{
  background:var(--surface);border-radius:var(--r-lg);padding:30px 28px;
  box-shadow:var(--sh-2);
}
.card h3{font-size:17.5px;margin-bottom:9px;}
.card p{color:var(--ink-soft);font-size:14.5px;margin:0;}
.card-link{display:block;transition:transform .25s cubic-bezier(.2,.7,.3,1), box-shadow .25s;}
.card-link:hover{transform:translateY(-6px);box-shadow:var(--sh-4);}
.card-link:active{transform:translateY(0);box-shadow:var(--sh-in);}
.card .ic{
  width:54px;height:54px;border-radius:17px;display:flex;align-items:center;justify-content:center;
  background:var(--surface);box-shadow:var(--sh-in-soft);margin-bottom:20px;color:var(--accent-2);
}
.card .ic svg{width:22px;height:22px;}
.card .ic.v{color:var(--accent);}
.card .ic.m{color:var(--mint);}
.card .ic.a{color:var(--amber);}
.card .go{
  display:inline-flex;align-items:center;gap:7px;margin-top:18px;
  font-size:13.5px;font-weight:700;color:var(--accent-2);
}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}

/* ---------- callouts — pressed panels with a raised accent ridge ---------- */
.note{
  position:relative;border-radius:var(--r-md);
  background:var(--surface);box-shadow:var(--sh-in);
  padding:22px 26px 22px 32px;margin:0 0 24px;
}
.note::before{
  content:"";position:absolute;left:14px;top:20px;bottom:20px;width:5px;border-radius:5px;
  background:var(--accent-2);box-shadow:0 0 10px rgba(12,112,159,.45);
}
.note.warn::before{background:var(--amber);box-shadow:0 0 10px rgba(153,90,18,.35);}
.note.good::before{background:var(--mint);box-shadow:0 0 10px rgba(15,120,84,.35);}
.note .note-t{
  font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--accent-2);margin-bottom:9px;font-weight:600;
}
.note.warn .note-t{color:var(--amber);}
.note.good .note-t{color:var(--mint);}
.note p{margin:0;color:var(--ink-soft);font-size:15px;}
.note p + p{margin-top:11px;}
.note pre{margin:12px 0 0;}

/* ---------- tables ---------- */
.table-scroll{
  overflow-x:auto;border-radius:var(--r-lg);background:var(--surface);
  box-shadow:var(--sh-2);margin:0 0 24px;padding:6px;
}
table.tbl{width:100%;border-collapse:separate;border-spacing:0 4px;min-width:540px;}
table.tbl th{
  text-align:left;font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-faint);font-weight:600;
  padding:14px 20px 10px;
}
table.tbl td{
  padding:16px 20px;font-size:14.5px;color:var(--ink-soft);vertical-align:top;
  background:var(--surface);
}
table.tbl tbody tr td:first-child{border-radius:14px 0 0 14px;}
table.tbl tbody tr td:last-child{border-radius:0 14px 14px 0;}
table.tbl tbody tr:nth-child(odd) td{box-shadow:var(--sh-in-soft);}
table.tbl td:first-child{
  color:var(--ink);font-family:"JetBrains Mono",monospace;font-size:12.5px;
  white-space:nowrap;font-weight:500;
}
table.tbl td.pill-cell{white-space:normal;font-family:inherit;font-size:14.5px;}
table.tbl td code{font-size:12px;}

/* ---------- status pills — physical chips ---------- */
.pill{
  display:inline-block;font-family:"JetBrains Mono",monospace;font-size:11px;font-weight:600;
  letter-spacing:.03em;padding:7px 15px;border-radius:999px;white-space:nowrap;
  background:var(--surface);box-shadow:var(--sh-1);color:var(--accent-2);
}
.pill.open{color:var(--accent);}
.pill.work{color:var(--accent-2);}
.pill.hold{color:var(--amber);}
.pill.done{color:var(--mint);}
.pill.stop{color:var(--rose);}

/* who-does-what */
.owner{
  display:inline-flex;align-items:center;gap:8px;font-family:"JetBrains Mono",monospace;
  font-size:11px;font-weight:500;letter-spacing:.03em;color:var(--ink-soft);white-space:nowrap;
  padding:6px 13px;border-radius:999px;background:var(--surface);box-shadow:var(--sh-in-soft);
}
.owner::before{content:"";width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:var(--ink-faint);}
.owner.you::before{background:var(--accent);}
.owner.admin::before{background:var(--accent-2);}
.owner.us::before{background:var(--mint);}

/* audience banner */
.aud{
  display:flex;gap:18px;align-items:flex-start;border-radius:var(--r-md);
  background:var(--surface);box-shadow:var(--sh-in);
  padding:22px 26px;margin:0 0 32px;position:relative;
}
.aud::before{
  content:"";position:absolute;left:0;top:22px;bottom:22px;width:5px;border-radius:0 5px 5px 0;
  background:var(--accent);
}
.aud.b::before{background:var(--accent-2);}
.aud.c::before{background:var(--mint);}
.aud .who{
  font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--accent);margin-bottom:7px;font-weight:600;
}
.aud.b .who{color:var(--accent-2);}
.aud.c .who{color:var(--mint);}
.aud p{margin:0;color:var(--ink-soft);font-size:14.5px;}

/* ---------- tick list ---------- */
.tick-list{list-style:none;padding:0;margin:0;display:grid;gap:18px;}
.tick-list li{display:flex;gap:16px;align-items:flex-start;font-size:15px;color:var(--ink-soft);}
.tick-list li strong{color:var(--ink);font-weight:700;}
.tick{
  flex:0 0 auto;width:30px;height:30px;border-radius:10px;
  background:var(--surface);box-shadow:var(--sh-1);
  display:flex;align-items:center;justify-content:center;color:var(--mint);
}

/* ---------- steps ---------- */
.step-list{list-style:none;padding:0;margin:0;counter-reset:s;}
.step-list > li{position:relative;padding:0 0 34px 66px;counter-increment:s;}
.step-list > li:last-child{padding-bottom:0;}
.step-list > li::before{
  content:counter(s,decimal-leading-zero);
  position:absolute;left:0;top:0;width:44px;height:44px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  font-family:"JetBrains Mono",monospace;font-size:13px;font-weight:600;color:var(--accent-2);
  background:var(--surface);box-shadow:var(--sh-1);
}
.step-list h3{font-size:17.5px;margin:8px 0 9px;}
.step-list p{color:var(--ink-soft);font-size:15px;margin:0 0 13px;}

/* ---------- FAQ accordion ---------- */
.faq{display:grid;gap:14px;}
.faq details{
  background:var(--surface);border-radius:var(--r-md);box-shadow:var(--sh-1);
  transition:box-shadow .25s;
}
.faq details[open]{box-shadow:var(--sh-in);}
.faq summary{
  list-style:none;cursor:pointer;padding:22px 26px;display:flex;justify-content:space-between;
  gap:20px;align-items:center;font-size:16px;font-weight:600;color:var(--ink);
  border-radius:var(--r-md);
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary:hover{color:var(--accent-2);}
.faq summary::after{
  content:"";flex:0 0 auto;width:28px;height:28px;border-radius:9px;
  background:var(--surface);box-shadow:var(--sh-1);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235c667e' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:center;
  transition:transform .25s, box-shadow .25s;
}
.faq details[open] summary::after{transform:rotate(180deg);box-shadow:var(--sh-in-soft);}
.faq .a{padding:0 26px 24px;color:var(--ink-soft);font-size:15px;}
.faq .a p{margin:0 0 13px;}
.faq .a p:last-child{margin:0;}
.faq .a a{color:var(--accent-2);font-weight:600;}
.faq .a code{
  font-family:"JetBrains Mono",monospace;font-size:12.5px;color:var(--ink);
  background:var(--surface);border-radius:6px;padding:2px 7px;box-shadow:var(--sh-in-soft);
}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:52px;align-items:start;}
.channel{
  display:flex;gap:20px;align-items:flex-start;padding:24px 26px;margin-bottom:16px;
  background:var(--surface);border-radius:var(--r-md);box-shadow:var(--sh-1);
  transition:transform .22s, box-shadow .22s;
}
.channel:hover{transform:translateY(-3px);box-shadow:var(--sh-3);}
.channel .ic{
  flex:0 0 auto;width:52px;height:52px;border-radius:16px;
  display:flex;align-items:center;justify-content:center;
  background:var(--surface);box-shadow:var(--sh-in-soft);color:var(--accent-2);
}
.channel .ic svg{width:21px;height:21px;}
.channel h3{font-size:16.5px;margin:2px 0 6px;}
.channel p{color:var(--ink-soft);font-size:14.5px;margin:0 0 9px;}
.channel a.val{color:var(--accent-2);font-family:"JetBrains Mono",monospace;font-size:13.5px;font-weight:500;}
.channel .meta{font-family:"JetBrains Mono",monospace;font-size:11px;color:var(--ink-faint);}

.form-card{
  background:var(--surface);border-radius:var(--r-xl);padding:38px 34px;
  box-shadow:var(--sh-3);
}
.form-card h2{font-size:25px;margin-bottom:7px;letter-spacing:-.03em;}
.form-card > .form-body > p.sub{color:var(--ink-soft);font-size:14.5px;margin:0 0 28px;}

/* ---------- form fields — pressed into the surface ---------- */
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.field{margin-bottom:18px;}
.field label{
  display:block;font-family:"JetBrains Mono",monospace;font-size:10.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:9px;font-weight:600;
}
.field input,.field textarea,.field select{
  width:100%;padding:16px 18px;border:0;border-radius:14px;color:var(--ink);font-size:15px;
  font-family:"Plus Jakarta Sans",sans-serif;background:var(--surface);
  box-shadow:var(--sh-in);
  transition:box-shadow .2s;
}
.field textarea{resize:vertical;min-height:130px;line-height:1.65;}
.field select{
  appearance:none;cursor:pointer;padding-right:44px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2360697f' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 18px center;
}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-faint);}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none;box-shadow:var(--sh-in-deep),0 0 0 3px rgba(12,112,159,.4);
}
.field input.invalid,.field textarea.invalid,.field select.invalid{
  box-shadow:var(--sh-in),0 0 0 3px rgba(179,36,42,.32);
}
.field .err{display:none;color:var(--rose);font-size:12px;margin-top:8px;font-family:"JetBrains Mono",monospace;font-weight:500;}
.field.show-err .err{display:block;}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;}

.form-submit,.modal-submit{
  width:100%;margin-top:10px;padding:18px;border:0;border-radius:999px;cursor:pointer;
  font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;font-size:15.5px;color:#fff;
  background:var(--accent-grad);box-shadow:var(--sh-2);
  transition:transform .2s, box-shadow .2s, filter .2s, opacity .2s;
}
.form-submit:hover,.modal-submit:hover{transform:translateY(-2px);filter:saturate(1.15);box-shadow:var(--sh-3);}
.form-submit:active,.modal-submit:active{transform:translateY(0);box-shadow:var(--sh-in-soft);}
.form-submit:disabled,.modal-submit:disabled{opacity:.55;cursor:default;transform:none;box-shadow:var(--sh-in-soft);}
.form-note,.modal-note{text-align:center;color:var(--ink-faint);font-size:12px;margin:18px 0 0;}

.form-result,.modal-result{display:none;text-align:center;padding:16px 0 6px;}
.form-card.done .form-body,.modal.done .form-body{display:none;}
.form-card.done .form-result,.modal.done .modal-result{display:block;}
.result-ic{
  width:74px;height:74px;border-radius:50%;margin:0 auto 22px;
  display:flex;align-items:center;justify-content:center;
  background:var(--surface);box-shadow:var(--sh-2);color:var(--mint);
}
.form-card.error .result-ic,.modal.error .result-ic{color:var(--rose);}
.form-result h3,.modal-result h3{font-size:24px;margin:0 0 10px;}
.form-result p,.modal-result p{color:var(--ink-soft);font-size:15px;margin:0 0 24px;}

/* ---------- band ---------- */
.band{
  border-radius:var(--r-xl);padding:56px 50px;
  background:var(--surface);box-shadow:var(--sh-3);
}
.band-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:48px;align-items:center;}
.band h2{font-size:clamp(26px,3.4vw,38px);letter-spacing:-.03em;}
.band p{color:var(--ink-soft);font-size:17px;margin:20px 0 0;}
.band .table-scroll{box-shadow:var(--sh-in);background:var(--surface);}

/* ---------- about ---------- */
.value{
  padding:32px 34px;margin-bottom:20px;display:grid;grid-template-columns:210px 1fr;gap:36px;
  background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-1);
  transition:transform .22s, box-shadow .22s;
}
.value:hover{transform:translateY(-4px);box-shadow:var(--sh-3);}
.value .n{font-family:"JetBrains Mono",monospace;font-size:11px;color:var(--accent);letter-spacing:.14em;font-weight:600;text-transform:uppercase;}
.value h3{font-size:20px;margin:10px 0 0;letter-spacing:-.025em;}
.value p{color:var(--ink-soft);font-size:15.5px;margin:0;}

.timeline{list-style:none;padding:0;margin:0;display:grid;gap:16px;}
.timeline li{
  display:grid;grid-template-columns:132px 1fr;gap:28px;padding:24px 28px;
  background:var(--surface);border-radius:var(--r-md);box-shadow:var(--sh-1);
}
.timeline .when{
  font-family:"JetBrains Mono",monospace;font-size:11px;font-weight:600;color:var(--accent-2);
  letter-spacing:.1em;text-transform:uppercase;padding-top:4px;
}
.timeline h3{font-size:16.5px;margin:0 0 7px;}
.timeline p{color:var(--ink-soft);font-size:14.5px;margin:0;}

/* ---------- legal ---------- */
.legal-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px;}
.legal-meta span{
  font-family:"JetBrains Mono",monospace;font-size:11.5px;color:var(--ink-faint);
  padding:10px 18px;border-radius:999px;background:var(--surface);box-shadow:var(--sh-in-soft);
}
.legal-meta b{color:var(--ink-soft);font-weight:600;}
.toc{
  border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--sh-in);
  padding:30px 32px;margin:0 0 50px;
}
.toc h4{
  font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink-faint);font-weight:600;margin:0 0 18px;
}
.toc ol{list-style:none;padding:0;margin:0;counter-reset:t;columns:2;column-gap:40px;}
.toc li{counter-increment:t;margin-bottom:11px;break-inside:avoid;}
.toc a{font-size:14.5px;color:var(--ink-soft);transition:color .18s;font-weight:500;}
.toc a::before{
  content:counter(t,decimal-leading-zero);
  font-family:"JetBrains Mono",monospace;font-size:11px;color:var(--accent);
  margin-right:10px;font-weight:600;
}
.toc a:hover{color:var(--accent-2);}

/* ---------- final cta ---------- */
.cta-final{text-align:center;padding:100px 0 96px;}
.cta-final h2{font-size:clamp(29px,4.2vw,50px);max-width:18ch;margin:0 auto;letter-spacing:-.035em;}
.cta-final p{color:var(--ink-soft);font-size:17px;margin:22px auto 36px;max-width:48ch;}
.cta-actions{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;}

/* ---------- footer ---------- */
footer{padding:56px 0 46px;margin-top:20px;box-shadow:inset 0 8px 18px -12px var(--dark);}
.foot-grid{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;align-items:flex-start;}
.foot-brand{max-width:290px;}
.foot-brand p{color:var(--ink-faint);font-size:13.5px;margin:16px 0 0;}
.foot-cols{display:flex;gap:60px;flex-wrap:wrap;}
.foot-col h4{
  font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-faint);margin:0 0 16px;font-weight:600;
}
.foot-col a{display:block;color:var(--ink-soft);font-size:14px;margin-bottom:11px;font-weight:500;transition:color .18s;}
.foot-col a:hover{color:var(--accent-2);}
.foot-bottom{
  margin-top:44px;padding-top:26px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;
  font-family:"JetBrains Mono",monospace;font-size:11.5px;color:var(--ink-faint);
  position:relative;
}
.foot-bottom::before{
  content:"";position:absolute;left:0;right:0;top:0;height:5px;border-radius:5px;
  background:var(--surface);box-shadow:var(--sh-in-soft);
}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.3,1),transform .8s cubic-bezier(.2,.7,.3,1);}
.reveal.in{opacity:1;transform:none;}

/* focus must never rely on shadow alone */
:focus-visible{outline:2px solid var(--accent-2);outline-offset:4px;border-radius:8px;}

/* ---------- demo modal ---------- */
.modal-overlay{
  position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(210,215,225,.6);backdrop-filter:blur(8px);
  opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;
}
@media (prefers-color-scheme: dark){
  .modal-overlay{background:rgba(18,20,24,.66);}
}
.modal-overlay.open{opacity:1;visibility:visible;}
.modal{
  width:100%;max-width:480px;position:relative;
  background:var(--surface);border-radius:var(--r-xl);
  padding:40px 36px 34px;box-shadow:var(--sh-4);
  transform:translateY(20px) scale(.97);transition:transform .32s cubic-bezier(.2,.7,.3,1);
  max-height:calc(100vh - 48px);overflow-y:auto;
}
.modal-overlay.open .modal{transform:none;}
.modal-close{
  position:absolute;top:20px;right:20px;width:42px;height:42px;border-radius:13px;
  border:0;background:var(--surface);color:var(--ink-soft);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--sh-1);transition:box-shadow .18s,color .18s;
}
.modal-close:hover{color:var(--ink);}
.modal-close:active{box-shadow:var(--sh-in);}
.modal-eyebrow,.modal-card-eyebrow{
  font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--ink-faint);font-weight:600;
}
.modal h3{font-size:26px;margin:14px 0 8px;letter-spacing:-.03em;}
.modal-sub{color:var(--ink-soft);font-size:14.5px;margin:0 0 26px;}
.modal-result .modal-submit{max-width:220px;margin-left:auto;margin-right:auto;}

/* ---------- responsive ---------- */
@media(max-width:1000px){
  .doc-layout{grid-template-columns:1fr;gap:36px;padding-top:36px;}
  .doc-nav{position:static;}
  .doc-nav .group{margin-bottom:22px;}
}
@media(max-width:940px){
  .grid-3{grid-template-columns:1fr 1fr;}
  .contact-grid,.band-grid{grid-template-columns:1fr;gap:36px;}
  .value{grid-template-columns:1fr;gap:12px;}
  .nav-links{display:none;}
  .menu-btn{display:flex;}
}
@media(max-width:620px){
  body{font-size:16px;}
  .wrap,.wrap-narrow{padding:0 20px;}
  .nav-cta{display:none;}
  .nav-inner{height:72px;}
  .grid-3,.grid-2,.form-row{grid-template-columns:1fr;}
  .band{padding:34px 24px;}
  section.blk{padding:56px 0;}
  .page-head{padding:52px 0 38px;}
  .form-card{padding:28px 22px;}
  .toc{columns:1;padding:24px 22px;}
  .toc ol{columns:1;}
  .timeline li{grid-template-columns:1fr;gap:10px;}
  .step-list > li{padding-left:56px;}
  .value{padding:26px 22px;}
  .channel{padding:20px 20px;}
  .modal{padding:32px 24px 28px;}
  .doc-sec{padding:34px 0;}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important;}
  .reveal{opacity:1;transform:none;}
}

/* dark mode: the accent gradient is lighter, so gradient-filled controls
   take dark ink instead of white (white would fail AA against both stops) */
@media (prefers-color-scheme: dark){
  .nav-cta,.btn-primary,.form-submit,.modal-submit{color:#14171c;}
}
