/* ============================================================
   DentalPro — design system
   ============================================================ */

/* ---------- Reset & base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd,ul,ol{margin:0}
ul[role='list'],ol[role='list'],ul,ol{padding:0}
ul,ol{list-style:none}
img,picture,svg,video{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
::selection{background:var(--ink);color:var(--bone)}
[hidden]{display:none !important}

/* ---------- Tokens ---------- */
:root{
  /* Paper palette */
  --bone:        #ECE5D2;
  --bone-2:      #E2DBC4;
  --bone-3:      #D7CFB6;
  --paper:       #F3EEDC;
  --paper-2:     #F7F2E1;
  --cream:       #F8F4E6;

  /* Ink */
  --ink:         #14110A;
  --ink-soft:    #2B271E;
  --ink-mute:    #6F6850;
  --ink-faint:   #A39B7F;
  --ink-ghost:   #C8C0A4;

  /* Accent */
  --moss:        #2D4A35;
  --moss-deep:   #1A2C20;
  --moss-soft:   #4F6A55;
  --sage:        #93A38C;
  --sand:        #C7B086;
  --coral:       #B6492A;
  --gold:        #8A6E2F;

  /* Lines */
  --line:        rgba(20, 17, 10, .18);
  --line-soft:   rgba(20, 17, 10, .09);
  --line-faint:  rgba(20, 17, 10, .045);

  /* Typography */
  --f-display:   "Fraunces", "Times New Roman", serif;
  --f-italic:    "Instrument Serif", "Fraunces", serif;
  --f-body:      "DM Sans", system-ui, -apple-system, sans-serif;
  --f-mono:      "JetBrains Mono", ui-monospace, monospace;

  /* Spacing */
  --gutter:      clamp(20px, 4vw, 56px);
  --rail-w:      clamp(160px, 16vw, 220px);
  --section-y:   clamp(80px, 11vw, 168px);
  --max-w:       1440px;

  /* Motion */
  --ease:        cubic-bezier(.2,.7,.2,1);
  --ease-out:    cubic-bezier(.16,1,.3,1);

  /* Layered surfaces */
  --bg:          var(--bone);
  --surface:     var(--paper);
  --surface-2:   var(--cream);
  --text:        var(--ink);
  --text-mute:   var(--ink-mute);
  --accent:      var(--moss);
}

/* ---------- Dark theme ---------- */
:root[data-theme="dark"]{
  --bone:        #0F0E0B;
  --bone-2:      #161412;
  --bone-3:      #1E1B17;
  --paper:       #15130F;
  --paper-2:     #1C1916;
  --cream:       #24211C;

  --ink:         #F2EBD4;
  --ink-soft:    #DCD4BB;
  --ink-mute:    #B0A88C;
  --ink-faint:   #756D55;
  --ink-ghost:   #48422F;

  --moss:        #B8D4B7;
  --moss-deep:   #6F9072;
  --moss-soft:   #94B294;
  --sage:        #D2DFC9;
  --sand:        #E2CC9A;
  --coral:       #E07A55;
  --gold:        #C9A656;

  --line:        rgba(242, 235, 212, .15);
  --line-soft:   rgba(242, 235, 212, .08);
  --line-faint:  rgba(242, 235, 212, .04);

  --bg:          var(--bone);
  --surface:     var(--paper);
  --surface-2:   var(--cream);
  --text:        var(--ink);
  --text-mute:   var(--ink-mute);
  --accent:      var(--moss);
}

/* Dark mode polish — accent glows and refined surfaces */
:root[data-theme="dark"] .hero-orbit{
  filter:drop-shadow(0 0 30px color-mix(in srgb, var(--moss) 30%, transparent))
         drop-shadow(0 12px 30px rgba(0,0,0,.6));
}
:root[data-theme="dark"] .hero-orbit::before{opacity:.45}
:root[data-theme="dark"] .license-card{
  background:linear-gradient(180deg, var(--cream), var(--paper-2));
  border-color:color-mix(in srgb, var(--moss) 30%, var(--line));
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, var(--ink-soft) 20%, transparent),
    0 40px 80px -30px rgba(0,0,0,.7),
    0 0 0 1px color-mix(in srgb, var(--moss) 12%, transparent);
}
:root[data-theme="dark"] .lic-corner{border-color:color-mix(in srgb, var(--moss) 45%, var(--line))}
:root[data-theme="dark"] .lic-stamp{
  filter:drop-shadow(0 0 24px color-mix(in srgb, var(--moss) 25%, transparent));
}
:root[data-theme="dark"] .ledger-paper{
  background:linear-gradient(180deg, var(--cream), var(--paper-2));
  box-shadow:0 30px 60px -30px rgba(0,0,0,.6);
}
:root[data-theme="dark"] .pull-quote .open-quote{opacity:.22}
:root[data-theme="dark"] .kicker .pulse,
:root[data-theme="dark"] .hero-tag .pulse{
  box-shadow:0 0 10px color-mix(in srgb, var(--coral) 70%, transparent);
}
:root[data-theme="dark"] .signal-stat{
  background:linear-gradient(180deg, var(--cream), var(--paper));
  border-color:color-mix(in srgb, var(--coral) 30%, var(--line));
}
:root[data-theme="dark"] .signal-stat .stat-num{
  filter:drop-shadow(0 0 14px color-mix(in srgb, var(--coral) 25%, transparent));
}
:root[data-theme="dark"] .footer-megaword{
  text-shadow:0 0 60px color-mix(in srgb, var(--moss) 18%, transparent);
}
:root[data-theme="dark"] .instrument:hover{
  background:linear-gradient(180deg, var(--surface), var(--bg));
}

/* ---------- Body ---------- */
html,body{background:var(--bg);color:var(--text)}
body{
  font-family:var(--f-body);
  font-size:16px;
  line-height:1.55;
  font-feature-settings:"ss01","ss02","kern","liga";
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  position:relative;
}

/* Grain overlay — subtle paper texture */
.grain{
  position:fixed;inset:0;
  pointer-events:none;
  z-index:9000;
  opacity:.42;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='2' stitchTiles='stitch' seed='3'/%3E%3CfeColorMatrix values='0 0 0 0 .08  0 0 0 0 .07  0 0 0 0 .04  0 0 0 .22 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:220px 220px;
}
:root[data-theme="dark"] .grain{
  opacity:.55;
  mix-blend-mode:screen;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='2' stitchTiles='stitch' seed='5'/%3E%3CfeColorMatrix values='0 0 0 0 .95  0 0 0 0 .91  0 0 0 0 .76  0 0 0 .14 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Skip link */
.skip-link{
  position:absolute;left:-9999px;
  background:var(--ink);color:var(--bone);
  padding:.6rem 1rem;border-radius:0;font-family:var(--f-mono);font-size:12px;
  letter-spacing:.04em;text-transform:uppercase;
  z-index:9999;
}
.skip-link:focus{left:1rem;top:1rem}

/* Visually hidden for screen-readers */
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ---------- Typography ---------- */
.mono{
  font-family:var(--f-mono);
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:500;
}
.mono.mute{color:var(--text-mute)}

h1,h2,h3,h4{
  font-family:var(--f-display);
  font-weight:400;
  line-height:1;
  letter-spacing:-0.02em;
  font-variation-settings:"opsz" 144, "SOFT" 30, "WONK" 0;
  color:var(--text);
}

em,i.italic,.italic{
  font-family:var(--f-italic);
  font-style:italic;
  font-weight:400;
}
em{
  font-family:var(--f-italic);
  font-style:italic;
  font-weight:400;
}
.serif-it{
  font-family:var(--f-italic);
  font-style:italic;
}

/* ============================================================
   TICKER
   ============================================================ */
.ticker{
  position:relative;
  border-bottom:1px solid var(--line);
  background:var(--bg);
  overflow:hidden;
  padding:.65rem 0;
  font-family:var(--f-mono);
  font-size:11px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--text-mute);
  z-index:50;
}
.ticker-track{
  display:flex;
  gap:3rem;
  white-space:nowrap;
  animation:scroll 75s linear infinite;
  width:max-content;
}
.ticker-track span{
  display:inline-flex;align-items:center;gap:.6rem;
}
.ticker .dot{
  width:5px;height:5px;background:var(--moss);
  border-radius:50%;flex:0 0 5px;
}
@keyframes scroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

/* ============================================================
   NAVIGATION
   ============================================================ */
.site-header{
  position:sticky;top:0;z-index:100;
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .3s var(--ease), background .3s var(--ease);
}
.site-header.is-scrolled{
  border-bottom-color:var(--line);
  background:color-mix(in srgb, var(--bg) 94%, transparent);
}

.nav-shell{
  max-width:var(--max-w);
  margin:0 auto;
  padding:1.1rem var(--gutter);
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:2rem;
}

.brand{
  display:inline-flex;align-items:center;gap:.7rem;
  letter-spacing:-.01em;
}
.brand-mark{
  width:28px;height:28px;display:inline-flex;
  color:var(--accent);
  transition:transform .4s var(--ease);
}
.brand-mark svg{width:100%;height:100%}
.brand:hover .brand-mark{transform:rotate(-10deg)}
.brand-word{
  display:inline-flex;align-items:baseline;gap:.45rem;
}
.brand-name{
  font-family:var(--f-display);
  font-size:22px;
  font-weight:500;
  letter-spacing:-.02em;
  font-variation-settings:"opsz" 36, "SOFT" 30;
}
.brand-sub{
  font-family:var(--f-mono);
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-mute);
}

.primary-nav ul{
  display:flex;justify-content:center;gap:2.2rem;
}
.primary-nav a{
  display:inline-flex;align-items:baseline;gap:.45rem;
  font-size:14px;
  color:var(--text);
  position:relative;
  padding:.4rem 0;
  transition:color .2s var(--ease);
}
.primary-nav a:hover{color:var(--accent)}
.primary-nav a::after{
  content:"";position:absolute;left:0;bottom:0;
  width:0;height:1px;background:currentColor;
  transition:width .35s var(--ease);
}
.primary-nav a:hover::after{width:100%}
.nav-num{
  font-family:var(--f-mono);font-size:10px;
  letter-spacing:.05em;color:var(--text-mute);
}

.nav-actions{
  display:inline-flex;align-items:center;gap:.9rem;
}
.theme-toggle{
  width:36px;height:36px;
  border-radius:50%;
  border:1px solid var(--line);
  display:inline-flex;align-items:center;justify-content:center;
  position:relative;color:var(--text);
  transition:background .25s var(--ease), border-color .25s var(--ease);
}
.theme-toggle:hover{background:var(--surface);border-color:var(--ink-faint)}
.theme-toggle svg{width:15px;height:15px;position:absolute;transition:opacity .3s var(--ease), transform .4s var(--ease)}
.icon-moon{opacity:0;transform:scale(.6) rotate(-30deg)}
:root[data-theme="dark"] .icon-sun{opacity:0;transform:scale(.6) rotate(30deg)}
:root[data-theme="dark"] .icon-moon{opacity:1;transform:scale(1) rotate(0)}

.nav-cta{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.55rem 1.1rem .55rem 1.2rem;
  border:1px solid var(--ink);
  background:var(--ink);color:var(--bone);
  border-radius:999px;
  font-size:13px;font-weight:500;letter-spacing:-.005em;
  transition:transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease);
}
.nav-cta svg{width:13px;height:13px;transition:transform .3s var(--ease)}
.nav-cta:hover{background:var(--accent);border-color:var(--accent);color:var(--cream)}
.nav-cta:hover svg{transform:translateX(3px)}

.nav-toggle{
  display:none;
  width:38px;height:38px;
  flex-direction:column;justify-content:center;align-items:center;gap:5px;
}
.nav-toggle span{
  display:block;width:18px;height:1px;background:currentColor;
  transition:transform .3s var(--ease), opacity .3s var(--ease);
}

.mobile-nav{
  border-top:1px solid var(--line);
  background:var(--bg);
  padding:1rem var(--gutter) 2rem;
}
.mobile-nav ul{display:flex;flex-direction:column;gap:.1rem}
.mobile-nav a{
  display:flex;align-items:baseline;gap:1rem;
  font-family:var(--f-display);font-size:30px;
  padding:.85rem 0;
  border-bottom:1px solid var(--line-soft);
}
.mobile-nav a span{
  font-family:var(--f-mono);font-size:11px;color:var(--text-mute);
  letter-spacing:.06em;
}
.mobile-cta{
  font-family:var(--f-mono) !important;
  font-size:13px !important;
  color:var(--accent);
  text-transform:uppercase;letter-spacing:.06em;
}

/* ============================================================
   GLOBAL SECTION SCAFFOLDING
   ============================================================ */
section{padding:var(--section-y) 0;position:relative}
section + section{border-top:1px solid var(--line-soft)}

.section-grid{
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 var(--gutter);
  display:grid;
  grid-template-columns:var(--rail-w) 1fr;
  gap:clamp(2rem, 6vw, 6rem);
  align-items:start;
}

.section-rail{
  position:sticky;
  top:120px;
  display:flex;
  flex-direction:column;
  gap:1.5rem;
  padding-top:.4rem;
}
.rail-num{
  font-family:var(--f-display);
  font-size:48px;
  line-height:.85;
  color:var(--accent);
  font-variation-settings:"opsz" 144, "SOFT" 80, "WONK" 1, "wght" 300;
  letter-spacing:-.04em;
}
.rail-label{
  color:var(--text-mute);
  border-top:1px solid var(--line);
  padding-top:1rem;
  max-width:180px;
}

.section-head h2{
  font-size:clamp(38px, 5.4vw, 76px);
  line-height:.96;
  letter-spacing:-.025em;
  font-variation-settings:"opsz" 144, "SOFT" 30, "WONK" 0, "wght" 350;
}
.section-head .section-lede{
  margin-top:1.6rem;
  font-size:clamp(17px, 1.4vw, 19px);
  color:var(--text-mute);
  max-width:55ch;
  line-height:1.55;
}
.section-head.center{text-align:center;margin-inline:auto;max-width:760px}
.section-head.center .section-lede{margin-inline:auto}

.kicker{
  color:var(--text-mute);
  display:inline-flex;align-items:center;gap:.55rem;
  margin-bottom:1.4rem;
}
.kicker .pulse{
  width:6px;height:6px;background:var(--accent);
  border-radius:50%;
  animation:pulse 1.8s var(--ease) infinite;
  box-shadow:0 0 0 0 var(--accent);
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 70%, transparent)}
  60%{box-shadow:0 0 0 9px transparent}
  100%{box-shadow:0 0 0 0 transparent}
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn-primary{
  display:inline-flex;align-items:center;gap:.65rem;
  padding:.95rem 1.55rem .95rem 1.7rem;
  background:var(--ink);color:var(--bone);
  border:1px solid var(--ink);
  border-radius:999px;
  font-size:14px;font-weight:500;letter-spacing:-.005em;
  transition:background .3s var(--ease), color .3s var(--ease), transform .25s var(--ease), border-color .3s var(--ease);
  position:relative;overflow:hidden;
}
.btn-primary svg{width:14px;height:14px;transition:transform .35s var(--ease)}
.btn-primary:hover{background:var(--accent);color:var(--cream);border-color:var(--accent)}
.btn-primary:hover svg{transform:translateX(4px)}
.btn-primary:active{transform:translateY(1px)}

.btn-primary.btn-lg{padding:1.15rem 1.9rem 1.15rem 2.05rem;font-size:15px}

.btn-text{
  display:inline-flex;align-items:center;gap:.7rem;
  font-size:14px;font-weight:500;
  color:var(--text);position:relative;padding:.4rem 0;
  transition:color .2s var(--ease);
}
.btn-text i{
  display:inline-block;width:22px;height:1px;background:currentColor;
  position:relative;transition:width .3s var(--ease);
}
.btn-text i::after{
  content:"";position:absolute;right:0;top:-3px;
  width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;
  transform:rotate(45deg);transform-origin:top right;
}
.btn-text:hover i{width:34px}
.btn-text:hover{color:var(--accent)}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  padding:clamp(80px, 10vw, 140px) 0 clamp(40px, 6vw, 80px);
  position:relative;
  border-bottom:1px solid var(--line);
  overflow:hidden;
  isolation:isolate;
}

/* Atmospheric background */
.hero-atmos{
  position:absolute;inset:0;
  pointer-events:none;
  z-index:-1;
}
.atmos-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(to right, var(--line-faint) 1px, transparent 1px),
    linear-gradient(to bottom, var(--line-faint) 1px, transparent 1px);
  background-size:88px 88px;
  background-position:center;
  mask-image:radial-gradient(ellipse 90% 80% at 50% 50%, black 30%, transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse 90% 80% at 50% 50%, black 30%, transparent 75%);
  opacity:.5;
}
.atmos-glow{
  position:absolute;
  width:60vw;height:60vw;
  border-radius:50%;
  filter:blur(80px);
  opacity:.55;
}
.atmos-glow-1{
  top:-20vw;right:-15vw;
  background:radial-gradient(circle, color-mix(in srgb, var(--moss) 28%, transparent), transparent 65%);
}
.atmos-glow-2{
  bottom:-25vw;left:-15vw;
  background:radial-gradient(circle, color-mix(in srgb, var(--sand) 30%, transparent), transparent 65%);
  opacity:.35;
}
:root[data-theme="dark"] .atmos-glow-1{
  background:radial-gradient(circle, color-mix(in srgb, var(--moss) 22%, transparent), transparent 65%);
  opacity:.8;
}
:root[data-theme="dark"] .atmos-glow-2{
  background:radial-gradient(circle, color-mix(in srgb, var(--gold) 18%, transparent), transparent 65%);
  opacity:.5;
}
.atmos-mark{
  position:absolute;
  top:18%;left:8%;
  font-family:var(--f-display);
  font-size:clamp(140px, 18vw, 280px);
  line-height:1;
  color:var(--accent);
  opacity:.04;
  font-variation-settings:"opsz" 144, "WONK" 1, "wght" 300;
  user-select:none;
  transform:rotate(-12deg);
}
:root[data-theme="dark"] .atmos-mark{opacity:.07}

/* Vertical side strip */
.hero-side{
  position:absolute;
  right:clamp(8px, 1.4vw, 18px);
  top:50%;
  transform:translateY(-50%) rotate(180deg);
  writing-mode:vertical-rl;
  font-family:var(--f-mono);
  font-size:10.5px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--text-mute);
  z-index:5;
  pointer-events:none;
  display:flex;align-items:center;gap:.8rem;
}
.hero-side::before{
  content:"";
  display:block;
  width:1px;height:28px;
  background:var(--accent);
}

.hero-stage{
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 var(--gutter);
  position:relative;
}

/* Tag pills above headline */
.hero-tags{
  display:flex;flex-wrap:wrap;gap:.6rem;
  margin-bottom:clamp(28px, 4vw, 56px);
  opacity:0;animation:rise 1s var(--ease-out) .05s forwards;
}
.hero-tag{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.45rem .85rem .5rem;
  border:1px solid var(--line);
  border-radius:999px;
  background:color-mix(in srgb, var(--surface) 60%, transparent);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  color:var(--text-mute);
  font-family:var(--f-mono);font-size:10.5px;letter-spacing:.06em;
  transition:border-color .25s var(--ease), color .25s var(--ease);
}
.hero-tag:hover{border-color:var(--accent);color:var(--text)}
.hero-tag .pulse{
  width:6px;height:6px;background:var(--coral);
  border-radius:50%;
  animation:pulse 1.8s var(--ease) infinite;
  flex:0 0 6px;
}

/* Editorial index rule below headline */
.hero-rule{
  display:grid;
  grid-template-columns:auto 1fr auto 1fr auto;
  align-items:center;
  gap:1rem;
  margin-top:clamp(32px, 4vw, 56px);
  padding-top:1.4rem;
  border-top:1px solid var(--line);
  color:var(--text-mute);
}
.hero-rule .rule-line{
  height:1px;background:var(--line);
  position:relative;
}
.hero-rule .rule-line::before,
.hero-rule .rule-line::after{
  content:"";position:absolute;top:-3px;
  width:1px;height:7px;background:var(--text-mute);opacity:.5;
}
.hero-rule .rule-line::before{left:25%}
.hero-rule .rule-line::after{right:25%}

/* Scroll cue */
.hero-scroll{
  display:flex;align-items:center;gap:1rem;
  max-width:var(--max-w);
  margin:clamp(48px, 6vw, 80px) auto 0;
  padding:1.4rem var(--gutter) 0;
  border-top:1px solid var(--line);
  color:var(--text-mute);
  font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  transition:color .25s var(--ease);
  position:relative;
  width:100%;
  box-sizing:border-box;
}
.hero-scroll:hover{color:var(--accent)}
.scroll-num{color:var(--accent);font-weight:600}
.scroll-label{font-family:var(--f-display);font-size:14px;letter-spacing:-.005em;text-transform:none;color:var(--text);font-variation-settings:"opsz" 36, "wght" 420}
.scroll-line{
  flex:1;height:1px;background:var(--line);
  position:relative;overflow:hidden;
}
.scroll-line::after{
  content:"";position:absolute;left:0;top:0;height:100%;
  width:30%;background:var(--accent);
  animation:scroll-dash 3s var(--ease) infinite;
}
.scroll-arrow{
  display:inline-block;
  animation:bob 2s var(--ease) infinite;
  font-size:14px;color:var(--accent);
}
@keyframes scroll-dash{
  0%{transform:translateX(-100%)}
  100%{transform:translateX(400%)}
}
@keyframes bob{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(4px)}
}

.hero-headline{
  font-family:var(--f-display);
  font-size:clamp(72px, 14vw, 220px);
  line-height:.86;
  letter-spacing:-.05em;
  font-variation-settings:"opsz" 144, "SOFT" 30, "WONK" 0, "wght" 360;
  color:var(--text);
  margin:0;
  position:relative;
}
.hero-headline .line{
  display:block;
  position:relative;
  opacity:0;transform:translateY(28px);
  animation:rise 1.1s var(--ease-out) forwards;
}
.hero-headline .line:nth-child(1){animation-delay:.05s}
.hero-headline .line:nth-child(2){animation-delay:.18s;padding-left:clamp(60px, 14vw, 220px)}
.hero-headline .line:nth-child(3){animation-delay:.32s;text-align:right}
.hero-headline .word.italic{
  font-family:var(--f-italic);
  font-style:italic;
  font-variation-settings:normal;
  font-weight:400;
}
@keyframes rise{
  to{opacity:1;transform:translateY(0)}
}

.hero-orbit{
  position:absolute;
  right:clamp(40px, 6vw, 80px);
  top:-10px;
  width:clamp(130px, 13vw, 180px);
  height:clamp(130px, 13vw, 180px);
  pointer-events:none;
  filter:drop-shadow(0 12px 30px color-mix(in srgb, var(--accent) 22%, transparent));
}
.hero-orbit::before{
  content:"";position:absolute;inset:18%;
  border:1px solid var(--accent);
  border-radius:50%;
  opacity:.25;
}
.orbit-svg{width:100%;height:100%;animation:spin 22s linear infinite}
.orbit-text{
  font-family:var(--f-mono);
  font-size:11.5px;
  letter-spacing:.14em;
  fill:var(--text);
  font-weight:500;
}
.orbit-core{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  color:var(--accent);
}
.orbit-core span{
  font-family:var(--f-display);font-size:38px;
  font-variation-settings:"opsz" 144, "wght" 380;
  display:inline-block;
  transition:transform .4s var(--ease);
}
.hero-orbit:hover .orbit-core span{transform:rotate(8deg) scale(1.1)}
@keyframes spin{
  from{transform:rotate(0)}
  to{transform:rotate(360deg)}
}

.hero-foot{
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 var(--gutter);
  margin-top:clamp(60px, 8vw, 110px);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(3rem, 6vw, 6rem);
  align-items:end;
  border-top:1px solid var(--line);
  padding-top:clamp(40px, 5vw, 64px);
}

.hero-lede{max-width:560px}
.lede-eyebrow{margin-bottom:1.2rem;color:var(--text-mute)}
.lede{
  font-family:var(--f-display);
  font-size:clamp(22px, 1.9vw, 28px);
  line-height:1.35;
  letter-spacing:-.013em;
  color:var(--text);
  font-variation-settings:"opsz" 36, "SOFT" 60, "wght" 380;
}
.lede em{
  font-family:var(--f-italic);
  display:inline-block;
  margin-top:.4rem;color:var(--accent);
}
.hero-actions{
  margin-top:2rem;
  display:inline-flex;align-items:center;gap:1.8rem;flex-wrap:wrap;
}

/* Hero terminal */
.hero-terminal{
  background:linear-gradient(180deg, var(--surface-2), var(--surface));
  border:1px solid var(--line);
  border-radius:16px;
  padding:1.3rem 1.5rem 1.5rem;
  font-family:var(--f-mono);
  font-size:12px;
  color:var(--text);
  position:relative;
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, var(--bone) 80%, transparent),
    0 1px 0 var(--line-faint),
    0 30px 60px -30px rgba(20,17,10,.18),
    0 60px 100px -50px rgba(20,17,10,.12);
  transform:rotate(.3deg);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.hero-terminal:hover{
  transform:rotate(0) translateY(-4px);
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, var(--bone) 80%, transparent),
    0 1px 0 var(--line-faint),
    0 40px 70px -28px rgba(20,17,10,.22),
    0 70px 120px -50px rgba(20,17,10,.14);
}
:root[data-theme="dark"] .hero-terminal{
  background:linear-gradient(180deg, color-mix(in srgb, var(--surface-2) 100%, transparent), var(--surface));
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, var(--ink-soft) 60%, transparent),
    0 30px 60px -30px rgba(0,0,0,.5),
    0 0 0 1px color-mix(in srgb, var(--moss) 8%, transparent);
}
.term-head{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding-bottom:.8rem;border-bottom:1px solid var(--line-soft);
  margin-bottom:1rem;
  color:var(--text-mute);
}
.term-head .pulse{
  display:inline-block;width:6px;height:6px;background:var(--coral);
  border-radius:50%;margin-right:.4rem;vertical-align:middle;
  animation:pulse 1.8s var(--ease) infinite;
}
.term-dots{display:inline-flex;gap:5px}
.term-dots i{width:6px;height:6px;border-radius:50%;background:var(--ink-ghost)}
.term-dots i:nth-child(1){background:var(--coral)}
.term-dots i:nth-child(2){background:var(--gold)}
.term-dots i:nth-child(3){background:var(--moss-soft)}

.term-row{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:.55rem 0;
  border-bottom:1px dashed var(--line-soft);
}
.term-row:last-of-type{border-bottom:0}
.term-k{color:var(--text-mute);font-size:11px;letter-spacing:.04em}
.term-v{
  font-family:var(--f-display);
  font-size:22px;
  letter-spacing:-.02em;
  font-variation-settings:"opsz" 36, "wght" 500;
  display:inline-flex;align-items:baseline;gap:.45rem;
}
.term-v em{font-family:var(--f-mono);font-size:11px;color:var(--accent);font-style:normal}
.term-v strong{font-weight:inherit}

.term-chart{
  margin-top:1.2rem;
  padding-top:1rem;
  border-top:1px solid var(--line-soft);
  display:flex;flex-direction:column;gap:.45rem;
}
.chart-row{
  display:grid;grid-template-columns:24px 1fr;gap:.8rem;align-items:center;
}
.chart-row .mono{color:var(--text-mute);font-size:10px}
.chart-row .bar{
  height:6px;background:var(--accent);
  width:var(--h);
  position:relative;
}
.chart-row:nth-child(odd) .bar{background:var(--ink)}
.chart-row .bar::after{
  content:"";position:absolute;right:-2px;top:-3px;width:1px;height:12px;background:var(--text-mute);
}
.term-foot{
  display:flex;justify-content:space-between;
  margin-top:1.2rem;padding-top:.9rem;border-top:1px solid var(--line-soft);
  color:var(--text-mute);
}

/* ============================================================
   PRESS BAR
   ============================================================ */
.press{
  padding:clamp(40px,5vw,60px) 0;
  background:var(--surface);
  border-bottom:1px solid var(--line);
}
.press-shell{
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 var(--gutter);
}
.press-label{
  color:var(--text-mute);
  margin-bottom:1.6rem;
}
.press-list{
  display:flex;flex-wrap:wrap;
  gap:clamp(1.5rem, 4vw, 3.5rem);
  align-items:baseline;
  font-family:var(--f-display);
  font-size:clamp(22px, 2.6vw, 32px);
  letter-spacing:-.015em;
  font-variation-settings:"opsz" 60, "SOFT" 40, "wght" 380;
  color:var(--text);
}
.press-list li{position:relative;display:inline-flex;align-items:baseline;gap:.35rem}
.press-list em{font-family:var(--f-italic);color:var(--text-mute)}
.press-list sup{font-size:.45em;vertical-align:super;color:var(--text-mute)}

/* ============================================================
   MANIFESTO
   ============================================================ */
.manifesto-body{max-width:920px}
.kicker.mono{
  display:inline-flex;align-items:center;gap:.55rem;
  margin-bottom:2.2rem;
  color:var(--text-mute);
}

.manifesto-text{
  font-family:var(--f-display);
  font-size:clamp(28px, 3.2vw, 48px);
  line-height:1.18;
  letter-spacing:-.018em;
  color:var(--text);
  font-variation-settings:"opsz" 60, "SOFT" 50, "wght" 360;
  max-width:24ch;
}
.manifesto-text em{
  font-family:var(--f-italic);color:var(--accent);
  display:inline;
}
.manifesto-text .period{
  display:inline-block;margin:0 .3em;color:var(--accent);
}
.manifesto-text .break{display:block;height:1.4em}

.manifesto-stats{
  margin-top:clamp(48px, 6vw, 84px);
  padding-top:3rem;
  border-top:1px solid var(--line);
  display:grid;grid-template-columns:repeat(4, 1fr);gap:2rem;
}
.m-stat{display:flex;flex-direction:column;gap:.8rem}
.m-stat-n{
  font-family:var(--f-display);
  font-size:clamp(48px, 6vw, 78px);
  line-height:.9;
  letter-spacing:-.04em;
  font-variation-settings:"opsz" 144, "SOFT" 30, "WONK" 0, "wght" 350;
  color:var(--text);
}
.m-stat-n sup{font-size:.4em;color:var(--accent);vertical-align:super}
.m-stat-n .pct{font-family:var(--f-italic);color:var(--accent);font-size:.5em;font-style:normal}
.m-stat-l{color:var(--text-mute)}

/* ============================================================
   LEDGER (Features)
   ============================================================ */
.instruments{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:0;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
  margin-top:clamp(40px, 5vw, 64px);
}
.instrument{
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:2.4rem 1.7rem 2rem;
  display:flex;flex-direction:column;gap:1rem;
  background:var(--bg);
  position:relative;
  min-height:240px;
  transition:background .3s var(--ease);
}
.instrument:hover{background:var(--surface)}
.instrument.tall{
  grid-row:span 2;
}
.ins-head{display:flex;align-items:baseline;gap:.8rem}
.ins-num{
  color:var(--accent);
  font-size:11px;
  min-width:24px;
}
.instrument h3{
  font-family:var(--f-display);
  font-size:clamp(20px, 1.6vw, 26px);
  line-height:1.1;
  letter-spacing:-.015em;
  font-variation-settings:"opsz" 36, "SOFT" 30, "wght" 420;
}
.instrument p{
  color:var(--text-mute);
  font-size:14.5px;
  line-height:1.55;
  max-width:32ch;
}
.ins-illus{
  margin-top:auto;
  padding-top:1.6rem;
  border-top:1px dashed var(--line-soft);
  color:var(--text);
  opacity:.85;
}
.tooth-illus{
  position:relative;
  color:var(--accent);
}
.tooth-tag{
  position:absolute;
  right:0;bottom:0;
  background:var(--ink);color:var(--bone);
  padding:.3rem .55rem;
  font-size:9.5px;
  letter-spacing:.08em;
}

/* ============================================================
   METHOD (Steps)
   ============================================================ */
.steps{
  display:flex;flex-direction:column;gap:0;
  margin-top:clamp(40px, 5vw, 64px);
  border-top:1px solid var(--line);
}
.step{
  display:grid;
  grid-template-columns:140px 1fr;
  gap:clamp(1.5rem, 4vw, 4rem);
  padding:clamp(28px, 3.5vw, 48px) 0;
  border-bottom:1px solid var(--line);
  align-items:start;
  position:relative;
  transition:background .3s var(--ease);
}
.step:hover{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 6%, transparent), transparent)}
.step-num{
  font-family:var(--f-display);
  font-size:clamp(60px, 8vw, 132px);
  line-height:.85;
  letter-spacing:-.05em;
  font-variation-settings:"opsz" 144, "SOFT" 70, "WONK" 1, "wght" 300;
  -webkit-text-stroke:1px var(--text);
  color:transparent;
  transition:color .3s var(--ease), -webkit-text-stroke-color .3s var(--ease);
}
.step:hover .step-num{
  color:var(--accent);
  -webkit-text-stroke-color:var(--accent);
}
.step-line{display:none}
.step-body{padding-top:1rem;display:flex;flex-direction:column;gap:.7rem;max-width:640px}
.step-body h3{
  font-family:var(--f-display);
  font-size:clamp(24px, 2.2vw, 36px);
  letter-spacing:-.018em;
  line-height:1.1;
  font-variation-settings:"opsz" 60, "SOFT" 30, "wght" 400;
}
.step-body p{color:var(--text-mute);font-size:16px;max-width:50ch}
.step-tag{
  display:inline-block;
  margin-top:.5rem;
  color:var(--accent);
  border:1px solid var(--line);
  padding:.3rem .55rem;
  font-size:10px;letter-spacing:.08em;
  align-self:flex-start;
}

/* ============================================================
   SIGNAL (WhatsApp)
   ============================================================ */
.signal{background:var(--surface);position:relative}
.signal-body .kicker{margin-bottom:1.6rem;color:var(--accent)}
.signal-copy h2{
  font-size:clamp(40px, 5vw, 72px);
  line-height:.95;
  letter-spacing:-.025em;
  font-variation-settings:"opsz" 144, "SOFT" 30, "wght" 360;
}
.signal-lede{
  margin-top:1.4rem;
  font-size:17px;
  color:var(--text-mute);
  line-height:1.6;
  max-width:54ch;
}
.signal-lede strong{color:var(--text);font-weight:500}

.signal-features{
  margin:2.8rem 0 2.6rem;
  display:flex;flex-direction:column;gap:0;
  border-top:1px solid var(--line);
}
.signal-features li{
  display:grid;grid-template-columns:36px 1fr;gap:1.2rem;
  padding:1.3rem 0;
  border-bottom:1px solid var(--line);
  align-items:start;
}
.sf-no{color:var(--accent);padding-top:.4rem}
.signal-features h4{
  font-family:var(--f-display);
  font-size:18px;
  letter-spacing:-.01em;
  margin-bottom:.35rem;
  font-variation-settings:"opsz" 36, "SOFT" 30, "wght" 480;
}
.signal-features p{
  color:var(--text-mute);font-size:14px;max-width:46ch;
}

.signal-body{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(2rem, 6vw, 5rem);
  align-items:start;
}
.signal-copy{max-width:580px}

/* Phone mockup */
.signal-phone-wrap{
  position:relative;
  display:flex;flex-direction:column;align-items:center;gap:2rem;
}
.phone{
  position:relative;
  transform:rotate(-2deg);
  filter:drop-shadow(0 40px 60px rgba(20,17,10,.18));
}
.phone-frame{
  width:320px;
  border-radius:42px;
  background:var(--ink);
  padding:14px 12px 16px;
  border:1px solid var(--ink-soft);
}
:root[data-theme="dark"] .phone-frame{
  background:#0A0905;
  border-color:#1A1812;
}
.phone-notch{
  width:90px;height:18px;
  background:#000;
  border-radius:0 0 12px 12px;
  margin:0 auto 8px;
}
.phone-header{
  display:flex;align-items:center;gap:.8rem;
  padding:.7rem .9rem .9rem;
  border-radius:18px 18px 0 0;
  background:#075E54;
  color:#fff;
  font-family:var(--f-body);
  position:relative;
}
.phone-back{font-size:22px;line-height:1;opacity:.85}
.phone-avatar{
  width:32px;height:32px;border-radius:50%;
  background:#0F8478;color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:600;letter-spacing:.04em;
}
.phone-title strong{display:block;font-size:13px;font-weight:600}
.phone-title span{font-size:10.5px;opacity:.7}

.phone-chat{
  background:#E5DDD5;
  padding:.8rem .8rem 1.2rem;
  min-height:420px;
  background-image:
    linear-gradient(135deg, rgba(255,255,255,.03) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.03) 50%, rgba(255,255,255,.03) 75%, transparent 75%);
  background-size:24px 24px;
  color:#3B3B3B;
  display:flex;flex-direction:column;gap:.55rem;
  border-radius:0 0 18px 18px;
}
.chat-day{
  align-self:center;
  background:#ffffffd9;color:#5a6873;
  font-size:10px;font-weight:500;
  padding:.3rem .65rem;border-radius:6px;
  margin:.4rem 0 .2rem;letter-spacing:.02em;
}
.bubble{
  max-width:80%;
  padding:.55rem .7rem .35rem;
  font-size:12.5px;
  line-height:1.45;
  position:relative;
  box-shadow:0 1px 1px rgba(0,0,0,.08);
}
.bubble.clinic{
  background:#fff;
  align-self:flex-start;
  border-radius:6px 8px 8px 8px;
}
.bubble.patient{
  background:#DCF8C6;
  align-self:flex-end;
  border-radius:8px 6px 8px 8px;
}
.bubble .time{
  display:block;text-align:right;font-size:9.5px;
  color:#7a8893;margin-top:.25rem;letter-spacing:.02em;
}
.file-att{
  display:flex;align-items:center;gap:.55rem;
  padding:.4rem .5rem;background:#F5F1EA;
  border-radius:6px;margin-bottom:.4rem;
}
.file-icon{
  background:#E54848;color:#fff;
  padding:.25rem .35rem;font-size:9px;font-weight:700;
  border-radius:3px;letter-spacing:.04em;
}
.file-att strong{display:block;font-size:11.5px;font-weight:600}
.file-att em{display:block;font-size:9.5px;color:#7a8893;font-style:normal;font-family:inherit}
.invoice-lines{
  margin:.4rem 0;font-size:11.5px;
  display:flex;flex-direction:column;gap:.18rem;
}
.invoice-lines li{display:flex;justify-content:space-between;gap:1rem}
.invoice-lines li b{font-weight:600}
.invoice-total{
  border-top:1px solid #00000018;padding-top:.3rem;margin-top:.3rem;
  font-size:12px;
}
.invoice-total strong{color:#075E54}

.typing{
  align-self:flex-start;
  background:#fff;border-radius:14px;
  padding:.55rem .8rem;
  display:inline-flex;gap:4px;
  box-shadow:0 1px 1px rgba(0,0,0,.08);
}
.typing span{
  width:6px;height:6px;background:#aab2b7;border-radius:50%;
  animation:type 1.2s var(--ease) infinite;
}
.typing span:nth-child(2){animation-delay:.15s}
.typing span:nth-child(3){animation-delay:.3s}
@keyframes type{
  0%,60%,100%{transform:translateY(0);opacity:.5}
  30%{transform:translateY(-4px);opacity:1}
}

.signal-stat{
  display:flex;flex-direction:column;align-items:center;gap:.5rem;
  text-align:center;
  padding:1.5rem;
  border:1px solid var(--line);
  background:var(--bg);
  max-width:280px;
}
.stat-num{
  font-family:var(--f-display);
  font-size:80px;line-height:.88;
  letter-spacing:-.05em;
  color:var(--coral);
  font-variation-settings:"opsz" 144, "SOFT" 50, "WONK" 1, "wght" 320;
}
.stat-num i{font-size:.4em;font-family:var(--f-italic);font-style:normal;vertical-align:super;color:var(--coral)}
.stat-lbl{color:var(--text-mute);line-height:1.4}

/* ============================================================
   ACCOUNTING / LEDGER
   ============================================================ */
.acc-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(2rem, 6vw, 5rem);
  align-items:start;
}
.acc-copy h2{
  font-size:clamp(40px, 5vw, 72px);
  line-height:.96;letter-spacing:-.025em;
  font-variation-settings:"opsz" 144, "SOFT" 30, "wght" 360;
}
.acc-copy .section-lede{margin-top:1.5rem;font-size:17px;line-height:1.6;color:var(--text-mute);max-width:50ch}
.acc-check{
  margin:2.4rem 0 2rem;
  display:flex;flex-direction:column;gap:1rem;
}
.acc-check li{
  display:grid;grid-template-columns:32px 1fr;gap:.6rem;
  padding-bottom:1rem;border-bottom:1px solid var(--line-soft);
  font-size:15px;line-height:1.5;color:var(--text);max-width:54ch;
}
.acc-check li .mono{color:var(--accent)}

.ledger-paper{
  background:var(--cream);
  border:1px solid var(--line);
  padding:2.4rem 2rem 2.4rem 3.6rem;
  position:relative;
  font-family:var(--f-mono);
  font-size:13px;
  box-shadow:0 30px 60px -30px rgba(20,17,10,.15);
}
.ledger-paper::before{
  content:"";position:absolute;left:0;top:0;bottom:0;
  width:36px;border-right:1px dashed var(--line-soft);
  background:repeating-linear-gradient(
    transparent 0,
    transparent 28px,
    color-mix(in srgb, var(--coral) 22%, transparent) 28px,
    color-mix(in srgb, var(--coral) 22%, transparent) 29px
  );
  opacity:.18;
}
.ledger-watermark{
  position:absolute;right:1.5rem;top:1.5rem;
  color:var(--ink-faint);
}
.ledger-head, .ledger-row{
  display:grid;grid-template-columns:1fr 110px 110px;
  align-items:baseline;padding:.7rem 0;
  border-bottom:1px solid var(--line-soft);
}
.ledger-head{
  border-bottom:1px solid var(--ink);
  color:var(--text-mute);
  margin-top:1.4rem;
}
.ledger-row span:nth-child(1){color:var(--text)}
.ledger-row span:nth-child(2), .ledger-row span:nth-child(3){
  text-align:right;font-variant-numeric:tabular-nums;
}
.ledger-row.faint{opacity:.5}
.ledger-row.total{
  border-top:2px double var(--ink);border-bottom:0;
  padding-top:.9rem;margin-top:.4rem;
  color:var(--text);
  font-weight:600;
}
.ledger-row.total span:nth-child(2),
.ledger-row.total span:nth-child(3){color:var(--accent)}
.ledger-foot{
  margin-top:1.4rem;padding-top:1rem;
  border-top:1px solid var(--line-soft);
  display:flex;justify-content:space-between;
  color:var(--text-mute);
}
.ledger-foot .mono:last-child{color:var(--accent)}

/* ============================================================
   SECURITY
   ============================================================ */
.sec-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:0;
  margin-top:clamp(40px, 5vw, 64px);
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.sec-grid li{
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:2.2rem 2rem;
  display:flex;flex-direction:column;gap:.8rem;
  position:relative;
}
.sec-no{color:var(--accent)}
.sec-grid h3{
  font-family:var(--f-display);
  font-size:24px;letter-spacing:-.015em;
  font-variation-settings:"opsz" 60, "SOFT" 30, "wght" 420;
}
.sec-grid p{color:var(--text-mute);font-size:15px;line-height:1.55;max-width:42ch}

/* ============================================================
   PRICING — License Certificate
   ============================================================ */
.pricing{background:var(--surface)}
.pricing-body{max-width:none}

.license-card{
  position:relative;
  margin-top:clamp(48px, 6vw, 80px);
  max-width:780px;
  margin-inline:auto;
  padding:clamp(40px, 5vw, 72px) clamp(28px, 4vw, 64px);
  background:var(--cream);
  border:1px solid var(--ink);
  box-shadow:
    0 1px 0 var(--line-faint),
    0 2px 0 var(--bg),
    0 3px 0 var(--ink),
    0 40px 80px -30px rgba(20,17,10,.25);
}
.lic-corner{
  position:absolute;width:18px;height:18px;
  border:1px solid var(--ink);
}
.lic-corner.tl{top:10px;left:10px;border-right:0;border-bottom:0}
.lic-corner.tr{top:10px;right:10px;border-left:0;border-bottom:0}
.lic-corner.bl{bottom:10px;left:10px;border-right:0;border-top:0}
.lic-corner.br{bottom:10px;right:10px;border-left:0;border-top:0}

.lic-head{
  display:flex;justify-content:space-between;align-items:flex-start;
  gap:2rem;
  padding-bottom:2rem;
  border-bottom:1px dashed var(--line);
}
.lic-stamp{
  width:140px;height:140px;
  color:var(--accent);
  flex:0 0 140px;
}
.stamp-svg{width:100%;height:100%;animation:spin 28s linear infinite}
.stamp-text{
  font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;
  fill:var(--accent);
}
.stamp-c, .stamp-y{
  font-family:var(--f-display);
  fill:var(--accent);
  font-variation-settings:"opsz" 144, "wght" 500;
}
.stamp-c{font-size:14px;letter-spacing:.1em}
.stamp-y{font-size:26px;letter-spacing:-.02em}
.lic-meta{text-align:right;color:var(--text-mute);display:flex;flex-direction:column;gap:.3rem}

.lic-body{padding-top:2.4rem;text-align:center}
.lic-eyebrow{
  font-family:var(--f-italic);font-size:18px;font-style:italic;
  color:var(--text-mute);
}
.lic-title{
  margin-top:.8rem;
  font-family:var(--f-display);
  font-size:clamp(40px, 6vw, 72px);
  line-height:1;
  letter-spacing:-.025em;
  font-variation-settings:"opsz" 144, "SOFT" 30, "WONK" 0, "wght" 350;
}
.lic-title em{font-family:var(--f-italic);color:var(--accent)}
.lic-desc{
  margin:1.6rem auto 0;
  max-width:50ch;
  font-size:15.5px;
  color:var(--text-mute);
  line-height:1.6;
}
.lic-price{
  margin:2.5rem 0 1rem;
  display:inline-flex;align-items:baseline;justify-content:center;gap:.4rem;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:1.5rem 2.4rem;
}
.price-curr{font-family:var(--f-mono);font-size:14px;color:var(--text-mute);align-self:flex-start;padding-top:.6rem}
.price-amt{
  font-family:var(--f-display);
  font-size:clamp(96px, 14vw, 180px);
  line-height:.85;
  letter-spacing:-.05em;
  font-variation-settings:"opsz" 144, "SOFT" 30, "WONK" 1, "wght" 320;
  color:var(--text);
}
.price-unit{
  font-family:var(--f-italic);font-style:italic;
  font-size:18px;color:var(--text-mute);
  align-self:flex-end;padding-bottom:.8rem;
}

.lic-grid{
  margin-top:3rem;
  display:grid;grid-template-columns:1fr 1fr;
  gap:0;
  text-align:left;
  border-top:1px solid var(--line);
}
.lic-grid > div{
  padding:1.6rem 1.8rem;
  border-right:1px solid var(--line);
}
.lic-grid > div:last-child{border-right:0;background:rgba(20,17,10,.025)}
.lic-grid p.mono{color:var(--accent);margin-bottom:1rem}
.lic-grid > div:last-child p.mono{color:var(--text-mute)}
.lic-grid ul{display:flex;flex-direction:column;gap:.55rem}
.lic-grid li{
  font-size:14.5px;color:var(--text);
  padding-left:1.1rem;position:relative;line-height:1.5;
}
.lic-grid li::before{
  content:"✓";position:absolute;left:0;top:0;
  color:var(--accent);font-size:14px;
}
.lic-grid .excluded li{color:var(--text-mute);text-decoration:line-through;text-decoration-color:var(--ink-faint)}
.lic-grid .excluded li::before{content:"×";color:var(--ink-faint)}

.lic-cta{margin-top:2.5rem}
.lic-fine{margin-top:1.4rem;color:var(--text-mute)}

.lic-sign{
  margin-top:3rem;padding-top:2rem;
  border-top:1px dashed var(--line);
  display:grid;grid-template-columns:1fr 1fr;gap:2rem;text-align:left;
}
.sig-line{display:flex;flex-direction:column;gap:.45rem}
.sig-line.right{text-align:right;align-items:flex-end}
.sig-line .mono{color:var(--text-mute)}
.sig-name{
  font-family:var(--f-italic);font-style:italic;
  font-size:22px;color:var(--text);
  border-bottom:1px solid var(--ink);
  padding-bottom:.2rem;display:inline-block;
}
.sig-mark{
  font-family:var(--f-display);font-size:22px;color:var(--accent);
  font-variation-settings:"opsz" 36, "wght" 500;
}

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.pull-quote{
  margin-top:clamp(40px, 5vw, 64px);
  position:relative;
  padding:2rem 0;
}
.open-quote{
  position:absolute;
  left:-.2em;top:-.5em;
  font-family:var(--f-display);
  font-size:clamp(120px, 18vw, 240px);
  line-height:1;
  color:var(--accent);
  opacity:.3;
  font-variation-settings:"opsz" 144, "WONK" 1, "wght" 380;
  user-select:none;
  pointer-events:none;
}
.pull-quote blockquote{
  font-family:var(--f-display);
  font-size:clamp(28px, 3.6vw, 56px);
  line-height:1.12;
  letter-spacing:-.018em;
  color:var(--text);
  font-variation-settings:"opsz" 144, "SOFT" 40, "wght" 380;
  max-width:22ch;
  position:relative;z-index:1;
  padding-left:clamp(40px, 5vw, 64px);
}
.pull-quote blockquote em{font-family:var(--f-italic);color:var(--accent)}
.pull-quote figcaption{
  margin-top:2.4rem;
  display:flex;align-items:center;gap:1.2rem;
  padding-left:clamp(40px, 5vw, 64px);
}
.cite-mark{width:36px;height:1px;background:var(--accent)}
.pull-quote figcaption strong{
  display:block;
  font-family:var(--f-display);font-size:20px;letter-spacing:-.01em;font-weight:500;
  font-variation-settings:"opsz" 36, "wght" 500;
}
.cite-meta{color:var(--text-mute);margin-top:.2rem;display:block}

.quote-grid{
  margin-top:clamp(64px, 8vw, 96px);
  display:grid;grid-template-columns:repeat(3, 1fr);gap:0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.mini-quote{
  padding:2.4rem 1.6rem 2rem;
  border-right:1px solid var(--line);
  display:flex;flex-direction:column;gap:1.4rem;
}
.mini-quote:last-child{border-right:0}
.mini-quote blockquote{
  font-family:var(--f-display);
  font-size:19px;line-height:1.4;
  color:var(--text);
  font-variation-settings:"opsz" 36, "SOFT" 30, "wght" 420;
}
.mini-quote figcaption{display:flex;flex-direction:column;gap:.25rem;margin-top:auto}
.mini-quote strong{
  font-family:var(--f-display);font-size:15px;font-weight:500;
  font-variation-settings:"opsz" 36, "wght" 500;
}
.mini-quote .mono{color:var(--text-mute)}

/* ============================================================
   FAQ
   ============================================================ */
.faq{
  margin-top:clamp(40px, 5vw, 64px);
  border-top:1px solid var(--line);
}
.faq > li{border-bottom:1px solid var(--line)}
.faq-q{
  width:100%;text-align:left;
  padding:1.6rem 0;
  display:grid;grid-template-columns:48px 1fr 36px;gap:1.2rem;
  align-items:baseline;
  font-family:var(--f-display);
  font-size:clamp(20px, 1.9vw, 30px);
  letter-spacing:-.015em;
  font-variation-settings:"opsz" 36, "SOFT" 30, "wght" 400;
  color:var(--text);
  transition:color .25s var(--ease);
}
.faq-q:hover{color:var(--accent)}
.faq-no{color:var(--accent);align-self:start;padding-top:.55rem}
.faq-text{padding-right:1rem}
.chev{
  width:14px;height:14px;align-self:start;margin-top:.55rem;
  position:relative;
}
.chev::before, .chev::after{
  content:"";position:absolute;left:50%;top:50%;
  background:currentColor;
  transition:transform .35s var(--ease), opacity .25s var(--ease);
}
.chev::before{width:14px;height:1px;transform:translate(-50%,-50%)}
.chev::after{width:1px;height:14px;transform:translate(-50%,-50%)}
.faq-q[aria-expanded="true"] .chev::after{transform:translate(-50%,-50%) scaleY(0);opacity:0}
.faq-a{
  padding:0 0 1.8rem calc(48px + 1.2rem);
}
.faq-a p{
  font-size:16.5px;color:var(--text-mute);line-height:1.6;max-width:64ch;
}
.faq-a p strong{color:var(--text);font-weight:500}

/* ============================================================
   FINAL CTA
   ============================================================ */
.cta{
  /* Always-dark slab: lock text tokens so they don't flip with theme */
  --on-dark:        #ECE5D2;
  --on-dark-soft:   rgba(236, 229, 210, .78);
  --on-dark-mute:   rgba(236, 229, 210, .58);
  --on-dark-faint:  rgba(236, 229, 210, .38);
  --on-dark-line:   rgba(236, 229, 210, .18);
  --on-dark-line-2: rgba(236, 229, 210, .10);
  --on-dark-accent: #94B294;

  background:var(--ink);
  color:var(--on-dark);
  padding:clamp(80px,10vw,140px) 0 clamp(80px,10vw,160px);
  position:relative;
  overflow:hidden;
  border-top:1px solid var(--ink);
}
:root[data-theme="dark"] .cta{background:#06050a}
.cta::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 80% 10%, color-mix(in srgb, var(--moss) 35%, transparent), transparent 50%),
    radial-gradient(circle at 10% 90%, color-mix(in srgb, var(--moss) 25%, transparent), transparent 55%);
  opacity:.7;pointer-events:none;
}

.cta-shell{
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 var(--gutter);
  position:relative;z-index:1;
}
.cta-grid{
  display:grid;
  grid-template-columns:minmax(320px, 1fr) minmax(420px, 1.15fr);
  gap:clamp(2rem, 6vw, 6rem);
  align-items:start;
}

/* Left aside */
.cta-aside{color:var(--on-dark)}
.cta-aside .kicker{color:var(--on-dark-soft)}
.cta-aside .kicker .pulse{background:var(--on-dark-accent)}
.cta-aside h2{
  color:var(--on-dark);
  font-size:clamp(44px, 6vw, 84px);
  line-height:.96;letter-spacing:-.03em;
  font-variation-settings:"opsz" 144, "SOFT" 30, "WONK" 0, "wght" 360;
}
.cta-aside h2 em{color:var(--on-dark-accent);font-family:var(--f-italic);font-style:italic}
.cta-lede{
  margin:1.5rem 0 0;
  max-width:46ch;
  font-size:17px;
  color:var(--on-dark-soft);
  line-height:1.6;
}

.cta-trust{
  margin-top:2.6rem;
  padding-top:2rem;
  border-top:1px solid var(--on-dark-line);
  display:flex;flex-direction:column;gap:1.4rem;
}
.cta-trust li{
  display:grid;grid-template-columns:36px 1fr;
  gap:1rem;align-items:start;
}
.trust-no{color:var(--on-dark-accent);padding-top:.3rem}
.cta-trust strong{
  display:block;
  font-family:var(--f-display);font-size:17px;font-weight:500;
  letter-spacing:-.005em;color:var(--on-dark);
  font-variation-settings:"opsz" 36, "wght" 500;
  margin-bottom:.2rem;
}
.cta-trust span{color:var(--on-dark-mute);font-size:14px;line-height:1.5}
.cta-foot{
  margin-top:2.2rem;
  padding-top:1.4rem;
  border-top:1px solid var(--on-dark-line);
  color:var(--on-dark-mute);
  line-height:1.7;
}
.cta-foot a{
  color:var(--on-dark);
  border-bottom:1px solid color-mix(in srgb, var(--on-dark-accent) 60%, transparent);
  padding-bottom:1px;transition:color .2s var(--ease);
}
.cta-foot a:hover{color:var(--on-dark-accent)}

/* Form wrap + card */
.form-wrap{position:relative}
.demo-form{display:block}
.form-card{
  background:var(--cream);
  border:1px solid color-mix(in srgb, var(--bone) 22%, transparent);
  border-radius:18px;
  padding:clamp(28px, 3vw, 44px) clamp(24px, 3vw, 40px);
  position:relative;
  box-shadow:
    0 1px 0 color-mix(in srgb, var(--bone) 30%, transparent) inset,
    0 30px 60px -25px rgba(0,0,0,.4),
    0 60px 120px -50px rgba(0,0,0,.3);
  color:var(--ink);
  display:flex;flex-direction:column;gap:1rem;
}
:root[data-theme="dark"] .form-card{
  background:var(--paper-2);
  border-color:color-mix(in srgb, var(--moss) 22%, transparent);
  box-shadow:
    0 1px 0 color-mix(in srgb, var(--ink-soft) 60%, transparent) inset,
    0 30px 60px -25px rgba(0,0,0,.6);
}

.form-card-head{
  display:flex;justify-content:space-between;align-items:baseline;
  padding-bottom:1.2rem;margin-bottom:.4rem;
  border-bottom:1px solid var(--line);
  color:var(--ink);
}
.form-card-head .mono{color:var(--ink);font-weight:500}
.form-card-head .mono.mute{color:var(--ink-mute);font-weight:400}
:root[data-theme="dark"] .form-card-head .mono{color:var(--ink)}

/* Field cells */
.field-row{display:grid;gap:.8rem}
.field-row.two{grid-template-columns:1fr 1fr}
.field-row.phone-grid{grid-template-columns:170px 1fr}

.field{
  display:flex;flex-direction:column;gap:.35rem;
  padding:.85rem 1rem .9rem;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--bg);
  transition:border-color .2s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease);
  position:relative;
  cursor:text;
}
.field:hover{border-color:var(--ink-faint)}
.field:focus-within{
  border-color:var(--moss);
  background:var(--cream);
  box-shadow:
    0 0 0 3px color-mix(in srgb, var(--moss) 14%, transparent);
}
:root[data-theme="dark"] .field{background:var(--bg)}
:root[data-theme="dark"] .field:focus-within{
  border-color:var(--moss);
  background:var(--paper-2);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--moss) 22%, transparent);
}

.field-lbl{
  color:var(--ink-mute);
  font-family:var(--f-mono);
  font-size:10.5px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.field-lbl strong{
  color:var(--moss);font-weight:500;
}

.field input,
.field select{
  background:transparent;
  border:0;
  color:var(--ink);
  padding:0;
  font-family:var(--f-body);
  font-size:16px;
  font-weight:500;
  letter-spacing:-.005em;
  width:100%;
  outline:none;
  appearance:none;
  -webkit-appearance:none;
}
.field input::placeholder{
  color:var(--ink-faint);font-weight:400;
}
.field select{
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23696040' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 0 center;
  background-size:12px;
  padding-right:1.2rem;
}
.field select option{background:var(--bg);color:var(--ink)}
:root[data-theme="dark"] .field select{
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239A927A' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}

.field-cap{
  background:color-mix(in srgb, var(--moss) 5%, var(--bg));
  border-color:color-mix(in srgb, var(--moss) 20%, var(--line));
}
.field-cap .field-lbl{color:var(--ink);font-weight:500}
.field-cap .field-lbl strong{color:var(--moss);font-family:var(--f-display);font-size:14px;font-weight:600;letter-spacing:-.01em}

.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.form-submit-row{
  margin-top:.6rem;
  padding-top:1.4rem;
  border-top:1px solid var(--line);
  display:grid;grid-template-columns:1fr auto;
  gap:1.2rem;align-items:center;
}
.form-fine{
  font-family:var(--f-body);
  font-size:12.5px;line-height:1.5;
  color:var(--ink-mute);
  max-width:42ch;
}

.form-submit{
  background:var(--ink);color:var(--bone);
  border-color:var(--ink);
  padding:1rem 1.4rem 1rem 1.55rem;
}
.form-submit:hover{background:var(--moss);border-color:var(--moss);color:var(--cream)}
:root[data-theme="dark"] .form-submit{
  background:var(--moss);color:var(--bg);
  border-color:var(--moss);
}
:root[data-theme="dark"] .form-submit:hover{
  background:var(--sage);border-color:var(--sage);color:var(--bg);
}

.form-status{
  margin-top:1rem;
  color:var(--ink-mute);
  font-family:var(--f-mono);font-size:12px;
  min-height:1em;
  text-align:center;
}
.form-status.is-error{
  color:#B6492A;
}
:root[data-theme="dark"] .form-status{color:color-mix(in srgb, var(--bone) 70%, transparent)}
:root[data-theme="dark"] .form-status.is-error{color:#E07A55}

.form-thanks{
  background:var(--cream);
  border:1px solid var(--line);
  border-radius:18px;
  padding:clamp(40px, 5vw, 72px) 1.5rem;
  text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:1.2rem;
  color:var(--ink);
  box-shadow:0 30px 60px -25px rgba(0,0,0,.4);
}
:root[data-theme="dark"] .form-thanks{background:var(--paper-2);border-color:color-mix(in srgb, var(--moss) 20%, transparent)}
.thanks-mark{
  color:var(--moss);width:56px;height:56px;
  filter:drop-shadow(0 4px 12px color-mix(in srgb, var(--moss) 30%, transparent));
}
.form-thanks h3{
  font-family:var(--f-display);
  font-size:32px;color:var(--ink);
  font-variation-settings:"opsz" 60, "wght" 420;
}
.form-thanks p{color:var(--ink-mute);max-width:46ch;line-height:1.6}
.form-thanks .btn-text{color:var(--ink)}
.form-thanks .btn-text:hover{color:var(--moss)}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{
  background:var(--bg);
  border-top:1px solid var(--line);
  padding:clamp(60px, 7vw, 100px) 0 0;
  position:relative;overflow:hidden;
}
.footer-shell{
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 var(--gutter);
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr repeat(3, 1fr) 1.2fr;
  gap:clamp(1.5rem, 3vw, 3rem);
  padding-bottom:clamp(60px, 7vw, 100px);
  border-bottom:1px solid var(--line);
}
.footer-col h4{
  font-family:var(--f-mono);
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-mute);
  margin-bottom:1.4rem;
  font-weight:500;
}
.footer-col ul{display:flex;flex-direction:column;gap:.7rem}
.footer-col a{
  font-family:var(--f-display);
  font-size:18px;
  letter-spacing:-.01em;
  color:var(--text);
  font-variation-settings:"opsz" 36, "wght" 380;
  display:inline-flex;align-items:baseline;gap:.4rem;
  position:relative;
  transition:color .2s var(--ease);
}
.footer-col a:hover{color:var(--accent)}
.footer-col a::after{
  content:"";display:inline-block;
  width:0;height:1px;background:currentColor;
  transition:width .3s var(--ease);
}
.footer-col a:hover::after{width:14px;margin-left:.3rem}

.footer-brand .mono.mute{margin-bottom:1.4rem;display:block}
.footer-mission{
  font-family:var(--f-display);
  font-size:22px;
  line-height:1.25;
  letter-spacing:-.015em;
  font-variation-settings:"opsz" 36, "SOFT" 40, "wght" 380;
  max-width:24ch;
  margin-bottom:2rem;
}
.footer-mission em{font-family:var(--f-italic);color:var(--accent)}
.wa-link, .email-link{
  display:inline-flex;align-items:center;gap:.55rem;
  font-family:var(--f-mono);font-size:12.5px;
  color:var(--text);margin-top:.4rem;
}
.wa-link{margin-bottom:.6rem}
.wa-link svg{width:14px;height:14px;color:var(--accent)}
.wa-link:hover, .email-link:hover{color:var(--accent)}

.footer-newsletter p{
  font-size:14px;color:var(--text-mute);margin-bottom:1.2rem;
  max-width:26ch;line-height:1.5;
}

.footer-megaword{
  padding:clamp(40px, 6vw, 80px) 0 clamp(20px, 3vw, 40px);
  font-family:var(--f-display);
  font-size:clamp(80px, 22vw, 360px);
  line-height:.78;
  letter-spacing:-.045em;
  text-align:center;
  font-variation-settings:"opsz" 144, "SOFT" 40, "WONK" 1, "wght" 320;
  color:var(--text);
  user-select:none;
  position:relative;
  white-space:nowrap;
}
.footer-megaword span{display:inline-block}
.footer-megaword em{font-family:var(--f-italic);color:var(--accent);font-weight:300}

.footer-bottom{
  padding:1.6rem 0;
  border-top:1px solid var(--line);
  display:grid;grid-template-columns:1fr 1fr;
  gap:1rem;
  font-family:var(--f-mono);font-size:11px;
  color:var(--text-mute);
}
.footer-bottom p:nth-child(2){text-align:right}

/* ============================================================
   LEGAL PAGES — Editorial document layout
   ============================================================ */
.legal-doc main{padding-bottom:0}

/* Masthead */
.legal-masthead{
  padding:clamp(80px, 9vw, 140px) 0 clamp(48px, 6vw, 80px);
  border-bottom:1px solid var(--line);
  background:var(--bg);
  position:relative;
}
.legal-shell{
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 var(--gutter);
}
.legal-crumbs{
  display:inline-flex;align-items:center;gap:.5rem;
  color:var(--text-mute);
  margin-bottom:clamp(40px, 5vw, 64px);
  font-family:var(--f-mono);
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;
}
.legal-crumbs a{color:var(--text);transition:color .2s var(--ease)}
.legal-crumbs a:hover{color:var(--accent)}
.legal-crumbs span{opacity:.5}
.legal-crumbs em{font-family:var(--f-italic);font-style:italic;text-transform:none;letter-spacing:0;color:var(--accent);font-size:13px}

.legal-title-row{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:clamp(2rem, 5vw, 4rem);
  align-items:end;
  max-width:1200px;
}
.legal-volume{
  color:var(--text-mute);
  align-self:start;
  padding-top:1.2rem;
  border-top:1px solid var(--line);
  min-width:180px;
}
.legal-h1{
  font-family:var(--f-display);
  font-size:clamp(56px, 9vw, 140px);
  line-height:.92;
  letter-spacing:-.035em;
  font-variation-settings:"opsz" 144, "SOFT" 30, "WONK" 0, "wght" 360;
  color:var(--text);
  grid-column:2;
  grid-row:1;
}
.legal-h1 em{
  font-family:var(--f-italic);
  font-style:italic;
  color:var(--accent);
  font-weight:400;
}
.legal-deck{
  grid-column:2;grid-row:2;
  margin-top:1.8rem;
  font-family:var(--f-display);
  font-size:clamp(19px, 1.5vw, 22px);
  line-height:1.45;
  color:var(--text-mute);
  max-width:60ch;
  font-variation-settings:"opsz" 36, "SOFT" 60, "wght" 380;
}
.legal-deck a{color:var(--text);border-bottom:1px solid var(--line);padding-bottom:1px;transition:color .2s var(--ease), border-color .2s var(--ease)}
.legal-deck a:hover{color:var(--accent);border-color:var(--accent)}

.legal-meta{
  margin-top:clamp(48px, 6vw, 72px);
  display:grid;grid-template-columns:repeat(4, 1fr);
  gap:1rem;
  padding-top:1.4rem;
  border-top:1px solid var(--line);
}
.legal-meta > div{
  display:flex;flex-direction:column;gap:.4rem;
}
.legal-meta span:nth-child(2){
  font-family:var(--f-display);
  font-size:17px;
  letter-spacing:-.005em;
  color:var(--text);
  font-variation-settings:"opsz" 36, "wght" 400;
}

/* Body: TOC + Prose */
.legal-body{
  padding:clamp(60px, 7vw, 100px) 0 clamp(80px, 10vw, 140px);
  background:var(--bg);
}
.legal-grid{
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 var(--gutter);
  display:grid;
  grid-template-columns:260px 1fr;
  gap:clamp(3rem, 7vw, 8rem);
  align-items:start;
}

/* TOC */
.legal-toc{
  position:sticky;
  top:120px;
  padding-top:.4rem;
}
.toc-label{
  margin-bottom:1.2rem;
  padding-bottom:1rem;
  border-bottom:1px solid var(--line);
}
.legal-toc ol{
  display:flex;flex-direction:column;gap:.2rem;
}
.legal-toc a{
  display:grid;grid-template-columns:32px 1fr;gap:.6rem;
  padding:.45rem 0;
  font-family:var(--f-display);
  font-size:14.5px;
  line-height:1.4;
  letter-spacing:-.005em;
  color:var(--text);
  font-variation-settings:"opsz" 36, "wght" 380;
  transition:color .2s var(--ease), padding-left .25s var(--ease);
  border-bottom:1px solid transparent;
}
.legal-toc a:hover{color:var(--accent);padding-left:6px}
.toc-no{
  font-family:var(--f-mono);
  font-size:10px;
  letter-spacing:.06em;
  color:var(--text-mute);
  padding-top:.25rem;
}
.toc-cta{
  margin-top:2rem;
  padding-top:1.4rem;
  border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:.7rem;
}

/* TLDR card */
.legal-tldr{
  border:1px solid var(--ink);
  background:var(--surface);
  padding:clamp(24px, 3vw, 40px) clamp(24px, 3vw, 44px);
  margin-bottom:clamp(48px, 5vw, 72px);
  position:relative;
}
.legal-tldr::before, .legal-tldr::after{
  content:"";position:absolute;width:14px;height:14px;
  border:1px solid var(--ink);
}
.legal-tldr::before{top:-1px;left:-1px;border-right:0;border-bottom:0;background:var(--bg)}
.legal-tldr::after{bottom:-1px;right:-1px;border-left:0;border-top:0;background:var(--bg)}
.legal-tldr p.mono{
  color:var(--accent);
  margin-bottom:1.2rem;
  padding-bottom:.8rem;
  border-bottom:1px solid var(--line);
}
.legal-tldr ul{
  display:flex;flex-direction:column;gap:.9rem;
}
.legal-tldr li{
  font-family:var(--f-display);
  font-size:clamp(16px, 1.3vw, 19px);
  line-height:1.45;
  color:var(--text);
  font-variation-settings:"opsz" 36, "wght" 400;
  padding-left:1.3rem;position:relative;
  letter-spacing:-.005em;
}
.legal-tldr li::before{
  content:"—";position:absolute;left:0;top:0;
  color:var(--accent);font-family:var(--f-mono);
}
.legal-tldr em{font-family:var(--f-italic);color:var(--accent)}
.legal-tldr a{color:var(--text);border-bottom:1px solid var(--accent);padding-bottom:1px;transition:color .2s var(--ease)}
.legal-tldr a:hover{color:var(--accent)}

/* Prose */
.legal-prose{
  max-width:780px;
  color:var(--text);
}
.legal-section{
  margin-bottom:clamp(48px, 5vw, 72px);
}
.legal-section:last-of-type{margin-bottom:0}

.legal-prose h2{
  font-family:var(--f-display);
  font-size:clamp(32px, 3.4vw, 48px);
  line-height:1.05;
  letter-spacing:-.022em;
  font-variation-settings:"opsz" 60, "SOFT" 30, "WONK" 0, "wght" 380;
  color:var(--text);
  margin-bottom:1.4rem;
  padding-bottom:1rem;
  border-bottom:1px solid var(--line);
  display:flex;align-items:baseline;gap:.7em;
  scroll-margin-top:100px;
}
.legal-prose h2 .sec-no{
  font-family:var(--f-mono);
  font-size:.32em;
  letter-spacing:.06em;
  color:var(--accent);
  flex:0 0 auto;
  padding-top:.55em;
  font-weight:500;
}
.legal-prose h2 em, .legal-prose h2 .h2-italic{
  font-family:var(--f-italic);
  font-style:italic;
  color:var(--accent);
}

.legal-prose h3{
  font-family:var(--f-display);
  font-size:clamp(20px, 1.8vw, 24px);
  letter-spacing:-.012em;
  font-variation-settings:"opsz" 36, "SOFT" 30, "wght" 460;
  color:var(--text);
  margin:2rem 0 .8rem;
}

.legal-prose p{
  font-family:var(--f-body);
  font-size:16px;
  line-height:1.65;
  color:var(--text);
  margin-bottom:1rem;
  max-width:68ch;
}
.legal-prose p + p{margin-top:0}

.legal-prose ul{
  display:flex;flex-direction:column;gap:.7rem;
  margin:1.1rem 0 1.4rem;
  padding-left:0;
}
.legal-prose ul li{
  font-family:var(--f-body);
  font-size:15.5px;line-height:1.6;
  color:var(--text);
  padding-left:1.4rem;position:relative;
  max-width:66ch;
}
.legal-prose ul li::before{
  content:"";position:absolute;left:0;top:.7em;
  width:8px;height:1px;background:var(--accent);
}
.legal-prose em, .legal-prose strong{
  font-family:var(--f-italic);
  font-style:italic;
  font-weight:400;
  color:var(--text);
}
.legal-prose strong{font-weight:500}

.legal-prose a{
  color:var(--text);
  border-bottom:1px solid var(--accent);
  padding-bottom:1px;
  transition:color .2s var(--ease), background .2s var(--ease);
}
.legal-prose a:hover{
  color:var(--accent);
  background:color-mix(in srgb, var(--accent) 8%, transparent);
}
.legal-prose code{
  font-family:var(--f-mono);
  font-size:.86em;
  background:var(--surface);
  border:1px solid var(--line-soft);
  padding:.1em .4em;
  color:var(--text);
}

/* Table */
.legal-table-wrap{
  margin:1.4rem 0 1.8rem;
  border:1px solid var(--line);
  overflow-x:auto;
}
.legal-table{
  width:100%;
  border-collapse:collapse;
  font-family:var(--f-mono);
  font-size:12.5px;
}
.legal-table th, .legal-table td{
  text-align:left;
  padding:.9rem 1rem;
  border-bottom:1px solid var(--line-soft);
  vertical-align:top;
}
.legal-table th{
  background:var(--surface);
  color:var(--text-mute);
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:10.5px;
  border-bottom:1px solid var(--ink);
}
.legal-table td{font-family:var(--f-body);font-size:14px}
.legal-table code{background:transparent;border:0;padding:0;color:var(--accent)}
.legal-table tbody tr:last-child td{border-bottom:0}

/* Contact */
.legal-contact{
  margin-top:1.2rem;
  display:flex;flex-direction:column;gap:0 !important;
  border-top:1px solid var(--line);
}
.legal-contact li{
  display:grid;grid-template-columns:120px 1fr;
  gap:1rem;align-items:baseline;
  padding:1rem 0 !important;
  border-bottom:1px solid var(--line);
  padding-left:0 !important;
}
.legal-contact li::before{display:none !important}
.legal-contact .mono{color:var(--text-mute)}
.legal-contact a{
  font-family:var(--f-display);
  font-size:19px;
  letter-spacing:-.01em;
  border-bottom:0;
  font-variation-settings:"opsz" 36, "wght" 420;
}
.legal-contact a:hover{background:none;color:var(--accent)}

/* Fine print + signature */
.legal-fineprint{
  margin-top:clamp(48px, 5vw, 72px);
  padding:1.6rem 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-family:var(--f-italic);
  font-style:italic;
  font-size:15px;
  line-height:1.55;
  color:var(--text-mute);
  max-width:64ch;
}

.legal-sign{
  margin-top:2.4rem;
  display:grid;grid-template-columns:1fr 1fr;
  gap:2rem;
}
.legal-sign .sig-line{
  display:flex;flex-direction:column;gap:.4rem;
}
.legal-sign .sig-line.right{text-align:right;align-items:flex-end}
.legal-sign .sig-line .mono{color:var(--text-mute)}
.legal-sign .sig-name{
  font-family:var(--f-italic);font-style:italic;
  font-size:22px;color:var(--text);
  border-bottom:1px solid var(--ink);
  padding-bottom:.2rem;display:inline-block;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1080px){
  .primary-nav{display:none}
  .nav-shell{grid-template-columns:auto 1fr}
  .nav-toggle{display:inline-flex}
  .nav-actions{justify-self:end}
  .instruments{grid-template-columns:repeat(2,1fr)}
  .instrument.tall{grid-row:auto}
  .signal-body{grid-template-columns:1fr}
  .signal-phone-wrap{align-items:flex-start}
  .acc-grid{grid-template-columns:1fr}
  .quote-grid{grid-template-columns:1fr}
  .mini-quote{border-right:0;border-bottom:1px solid var(--line)}
  .mini-quote:last-child{border-bottom:0}
  .footer-grid{grid-template-columns:1fr 1fr 1fr;gap:2rem 2rem}
  .footer-brand{grid-column:1 / -1;border-bottom:1px solid var(--line-soft);padding-bottom:2rem;margin-bottom:1rem}
  .legal-grid{grid-template-columns:220px 1fr;gap:3rem}
  .legal-meta{grid-template-columns:repeat(2, 1fr);gap:1.4rem}
}

@media (max-width: 860px){
  :root{--rail-w: 100%}
  .section-grid{grid-template-columns:1fr;gap:2rem}
  .section-rail{
    position:static;
    flex-direction:row;align-items:baseline;gap:1.2rem;
    padding-top:0;
    border-bottom:1px solid var(--line);
    padding-bottom:1.2rem;
  }
  .rail-num{font-size:32px}
  .rail-label{border-top:0;padding-top:0;max-width:none}
  .hero-headline{font-size:clamp(56px, 18vw, 120px)}
  .hero-headline .line:nth-child(2){padding-left:0}
  .hero-headline .line:nth-child(3){text-align:left}
  .hero-orbit{
    right:auto;left:auto;
    position:relative;
    top:0;margin:1rem 0 1.5rem;
    width:120px;height:120px;
  }
  .hero-foot{grid-template-columns:1fr;gap:2.5rem}
  .hero-side{display:none}
  .hero-rule{grid-template-columns:auto 1fr auto;gap:.7rem}
  .hero-rule .mono:nth-child(4), .hero-rule .mono:nth-child(5){display:none}
  .hero-rule .rule-line:nth-child(4){display:none}
  .atmos-mark{font-size:clamp(100px, 30vw, 200px)}
  .manifesto-stats{grid-template-columns:1fr 1fr}
  .acc-check li{grid-template-columns:24px 1fr}
  .lic-head{flex-direction:column;align-items:center;gap:1.2rem;text-align:center}
  .lic-meta{text-align:center}
  .lic-grid{grid-template-columns:1fr}
  .lic-grid > div{border-right:0;border-bottom:1px solid var(--line)}
  .lic-grid > div:last-child{border-bottom:0}
  .lic-sign{grid-template-columns:1fr;gap:1.5rem}
  .sig-line.right{text-align:left;align-items:flex-start}
  .cta-grid{grid-template-columns:1fr;gap:3rem}
  .field-row.two{grid-template-columns:1fr}
  .field-row.phone-grid{grid-template-columns:1fr 1.6fr}
  .form-submit-row{grid-template-columns:1fr;text-align:left}
  .form-submit{justify-self:flex-start}
  .footer-grid{grid-template-columns:1fr 1fr;gap:2rem}
  .footer-brand{grid-column:1 / -1}
  .footer-newsletter{grid-column:1 / -1}
  .footer-bottom{grid-template-columns:1fr;text-align:left}
  .footer-bottom p:nth-child(2){text-align:left}

  /* Legal pages — stack TOC above prose */
  .legal-grid{grid-template-columns:1fr;gap:2.5rem}
  .legal-toc{
    position:static;
    border:1px solid var(--line);
    padding:1.6rem;
    background:var(--surface);
  }
  .legal-toc ol{
    display:grid;grid-template-columns:repeat(2, 1fr);
    gap:.1rem 1rem;
  }
  .toc-cta{margin-top:1.2rem;padding-top:1rem}
  .legal-title-row{grid-template-columns:1fr;gap:1.5rem}
  .legal-h1{grid-column:1;grid-row:auto}
  .legal-deck{grid-column:1;grid-row:auto;margin-top:0}
  .legal-volume{border-top:0;padding-top:0;min-width:0}
  .legal-meta{grid-template-columns:1fr 1fr}
  .legal-sign{grid-template-columns:1fr;gap:1.5rem}
  .legal-sign .sig-line.right{text-align:left;align-items:flex-start}
  .legal-contact li{grid-template-columns:90px 1fr;gap:.6rem}
}

@media (max-width: 540px){
  .ticker{font-size:10px}
  .nav-cta{padding:.5rem .85rem .5rem 1rem;font-size:12px}
  .nav-cta svg{display:none}
  .brand-name{font-size:18px}
  .brand-sub{display:none}
  .hero-headline{font-size:clamp(48px, 18vw, 96px);letter-spacing:-.04em}
  .sec-grid{grid-template-columns:1fr}
  .instruments{grid-template-columns:1fr}
  .step{grid-template-columns:80px 1fr;gap:1rem}
  .step-num{font-size:50px}
  .lic-price{padding:1rem 1.4rem}
  .price-amt{font-size:80px}
  .footer-grid{grid-template-columns:1fr}
  .footer-megaword{font-size:clamp(60px, 26vw, 180px)}

  .legal-h1{font-size:clamp(44px, 14vw, 80px)}
  .legal-toc ol{grid-template-columns:1fr}
  .legal-meta{grid-template-columns:1fr}
  .legal-prose h2{font-size:clamp(26px, 7vw, 36px);flex-direction:column;gap:.4rem;align-items:flex-start}
  .legal-prose h2 .sec-no{padding-top:0}
  .legal-contact li{grid-template-columns:1fr;gap:.2rem}
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
  .hero-headline .line{opacity:1;transform:none}
  .ticker-track{animation:none}
  .orbit-svg, .stamp-svg{animation:none}
}

/* ---------- Focus ring ---------- */
:focus{outline:none}
:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
}
.btn-primary:focus-visible{outline-offset:5px}
.faq-q:focus-visible{outline-offset:-2px}
