/* ==========================================================================
   Undersign — base styles
   Design tokens, reset, typography and shared utilities/buttons used across
   every section. Load this first, then nav.css / sections.css / footer.css.
   ========================================================================== */

:root{
  --seafoam-50:#F2FAF7;
  --seafoam-100:#E4F3ED;
  --seafoam-200:#CFE9E0;
  --teal-900:#0B3630;
  --teal-800:#0F4640;
  --teal-700:#146357;
  --teal-600:#1B7B6C;
  --teal-500:#249E88;
  --ink:#0E211D;
  --ink-soft:#4B615B;
  --ink-faint:#8AA39C;
  --line:#D3E7DF;
  --line-strong:#C7DBD4;
  --white:#FFFFFF;
  --font-display:'Playfair Display', serif;
  --font-body:'DM Sans', sans-serif;
  --font-mono:'DM Mono','IBM Plex Mono', monospace;
  --silk:cubic-bezier(0.16,1,0.3,1);
  --maxw:1180px;
  /* Code / docs palette */
  --code-bg:#0A2622;
  --code-bg-2:#0C302B;
  --code-text:#D8F1E8;
  --code-muted:#8FB0A5;
  /* Status accents (method tags, callouts) */
  --amber:#A96A12;--amber-bg:#FBF1E1;
  --coral:#B4432F;--coral-bg:#FCEAE6;
  --blue:#2E5E8C;--blue-bg:#E9F0F7;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--seafoam-50);color:var(--ink);font-family:var(--font-body);font-size:16.5px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img,svg{display:block;max-width:100%;}
a{color:inherit;}
button{font-family:inherit;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
@media(max-width:640px){.wrap{padding:0 20px;}}
*{transition-timing-function:var(--silk);}

h1,h2,h3{font-family:var(--font-display);font-weight:500;color:var(--ink);margin:0;letter-spacing:-0.01em;}
h1{font-size:clamp(2.5rem,5.4vw,3.9rem);line-height:1.08;}
h2{font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.15;}
h3{font-size:1.12rem;font-weight:600;font-family:var(--font-body);}
em{font-family:var(--font-display);font-style:italic;color:var(--teal-700);font-weight:500;}
p{margin:0;}
.eyebrow{font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--teal-600);margin-bottom:16px;display:inline-block;padding:5px 12px;background:var(--seafoam-100);border-radius:20px;}
.lede{font-size:1.12rem;color:var(--ink-soft);max-width:46ch;}

/* Buttons (shared, used throughout sections) */
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:0.94rem;padding:12px 22px;border-radius:100px;text-decoration:none;border:1px solid var(--teal-700);cursor:pointer;transition:all .3s var(--silk);}
.btn-primary{background:var(--teal-700);color:var(--white);}
.btn-primary:hover{background:var(--teal-800);transform:translateY(-1px);box-shadow:0 10px 24px -10px rgba(11,54,48,0.45);}
.btn-ghost{background:transparent;color:var(--teal-700);}
.btn-ghost:hover{background:var(--seafoam-100);}
.btn-onlight{border-color:var(--white);background:var(--white);color:var(--teal-800);}

/* Section scaffolding */
section{padding:104px 0;}
section.tight{padding:80px 0;}
.section-head{max-width:620px;margin-bottom:48px;}
.section-head.center{margin:0 auto 56px;text-align:center;}
.rule-top{border-top:1px solid var(--line);}
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .7s var(--silk),transform .7s var(--silk);}
[data-reveal].in{opacity:1;transform:translateY(0);}

::selection{background:var(--seafoam-200);color:var(--teal-900);}
@media(prefers-reduced-motion:reduce){.float-badge,.ticker-track{animation:none;}}