/* ANTech Design System — global entry point. Consumers link this one file. */
/* ANTech webfonts — självhostade filer i assets/fonts/ (aktiv standard).
   Variabla familjer: en fil täcker hela viktomfånget. Familjenamnen är identiska
   med Google Fonts, så tokens/fonts.css kan användas som CDN-fallback vid behov. */
@font-face{font-family:"Space Grotesk";src:url("../fonts/SpaceGrotesk-Variable.ttf") format("truetype-variations");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url("../fonts/HankenGrotesk-Variable.ttf") format("truetype-variations");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url("../fonts/HankenGrotesk-Italic-Variable.ttf") format("truetype-variations");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"Space Mono";src:url("../fonts/SpaceMono-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Space Mono";src:url("../fonts/SpaceMono-Italic.ttf") format("truetype");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Space Mono";src:url("../fonts/SpaceMono-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Space Mono";src:url("../fonts/SpaceMono-BoldItalic.ttf") format("truetype");font-weight:700;font-style:italic;font-display:swap}
 /* självhostade filer; byt till tokens/fonts.css för Google CDN */
/* ANTech — colour tokens.
   Target mix across a surface: ~60% pine, 15% chalk, 15% forest, 5% signal, 5% sage. */
:root{
  /* --- brand base --- */
  --pine:#222C26;            /* oklch(.25 .022 158) — primary ink & dark surfaces */
  --pine-deep:#1A221D;       /* oklch(.21 .02 158)  — elevated dark surface */
  --forest:#3C8060;          /* oklch(.55 .115 156) — accent, CTA, icon stroke */
  --signal:#57CE86;          /* oklch(.80 .15 148)  — highlights, "on", the dot */
  --sage:#DBE7DD;            /* oklch(.91 .028 152) — tint surface, card borders */
  --chalk:#F4F8F4;           /* oklch(.976 .005 160)— page background */
  --white:#FFFFFF;

  /* --- neutrals derived from pine --- */
  --ink:#222C26;
  --ink-70:#4A544E;
  --ink-55:#6C756F;
  --ink-40:#9AA19C;
  --mut:#8A9990;             /* muted line / return-path grey in diagrams */
  --esc:#2C5B41;             /* deep forest, escalation paths in diagrams */
  --line:#E1E7E2;
  --line-strong:#CDD5CF;

  /* --- semantic: surfaces --- */
  --surface-page:var(--chalk);
  --surface-card:var(--white);
  --surface-tint:var(--sage);
  --surface-dark:var(--pine);
  --surface-dark-elevated:var(--pine-deep);
  --surface-accent:var(--forest);

  /* --- semantic: text --- */
  --text-body:var(--ink);
  --text-muted:var(--ink-70);
  --text-faint:var(--ink-55);
  --text-ghost:var(--ink-40);
  --text-accent:var(--forest);
  --text-on-dark:var(--chalk);
  --text-on-dark-muted:rgba(244,248,244,.78);
  --text-on-dark-faint:rgba(244,248,244,.55);
  --text-on-accent:#FFFFFF;
  --text-signal:var(--signal);

  /* --- semantic: borders --- */
  --border-subtle:var(--line);
  --border-strong:var(--line-strong);
  --border-card:var(--sage);
  --border-on-dark:rgba(244,248,244,.12);
  --border-on-dark-strong:rgba(244,248,244,.24);

  /* --- semantic: interactive --- */
  --cta-bg:var(--forest);
  --cta-fg:#FFFFFF;
  --cta-bg-hover:#347155;
  --cta-bg-active:#2C6148;
  --link:var(--forest);
  --link-hover:#2C6148;
  --focus-ring:var(--signal);
  --selection-bg:rgba(87,206,134,.35);

  /* --- do / don't feedback (guideline documents only) --- */
  --ok-bg:#E4F6EA;
  --ok-fg:#1D6B40;
  --no-bg:#F7E3DF;
  --no-fg:#9A3B2E;
}

/* ANTech — type tokens. Three families, no more. */
:root{
  --font-heading:"Space Grotesk","Helvetica Neue",system-ui,sans-serif;
  --font-body:"Hanken Grotesk","Helvetica Neue",system-ui,sans-serif;
  --font-mono:"Space Mono",ui-monospace,monospace;
  --font-wordmark:"Hanken Grotesk",system-ui,sans-serif;

  --weight-body:400;
  --weight-medium:500;
  --weight-semibold:600;      /* every heading */
  --weight-wordmark:800;

  --tracking-display:-0.025em;
  --tracking-heading:-0.02em;
  --tracking-tight:-0.01em;
  --tracking-label:0.14em;    /* mono labels: 0.08–0.16em */
  --tracking-label-loose:0.16em;
  --tracking-wordmark:-0.045em;

  --leading-tight:1.04;       /* display & big headings */
  --leading-snug:1.3;
  --leading-relaxed:1.4;      /* card copy */
  --leading-body:1.55;        /* running text */

  /* screen / document scale */
  --fs-display:56px;
  --fs-h1:36px;
  --fs-h2:24px;
  --fs-h3:20px;
  --fs-lead:18px;
  --fs-body:16px;
  --fs-small:14px;
  --fs-label:12px;

  /* 1920×1080 slide scale — never below 24px on a slide */
  --slide-fs-wordmark:118px;
  --slide-fs-statement:88px;
  --slide-fs-cover:84px;
  --slide-fs-h1:80px;
  --slide-fs-h2:60px;
  --slide-fs-metric:170px;
  --slide-fs-section-number:300px;
  --slide-fs-lead:34px;
  --slide-fs-body:28px;
  --slide-fs-caption:25px;
  --slide-fs-label:24px;      /* mono label = slide minimum */
}

/* ANTech — 8px spacing scale, radii and layout constants. */
:root{
  --space-unit:8px;
  --space-1:8px;
  --space-2:16px;
  --space-3:24px;
  --space-4:32px;
  --space-5:48px;
  --space-6:64px;
  --space-7:84px;             /* section rhythm in documents */
  --space-8:120px;            /* slide gutter */

  --radius-button:9px;
  --radius-tile:14px;
  --radius-panel:16px;
  --radius-card:22px;
  --radius-pill:999px;

  --border-width:1px;         /* documents & web */
  --border-width-slide:1.5px; /* slides & diagrams */

  --doc-max-width:1080px;
  --doc-gutter:32px;
  --slide-width:1920px;
  --slide-height:1080px;
  --slide-padding:92px 120px;
}

/* ANTech — shadows, motion, imagery texture. Shadows are soft, green-tinted, never black. */
:root{
  --shadow-card:0 8px 22px rgba(34,44,38,.05);
  --shadow-lift:0 10px 30px rgba(34,44,38,.10);
  --shadow-float:0 18px 50px rgba(34,44,38,.12);
  --shadow-dark:0 18px 40px rgba(34,44,38,.22);
  --shadow-tooltip:0 12px 28px rgba(34,44,38,.34);
  --shadow-lead:0 8px 22px rgba(60,128,96,.12);   /* forest-tinted, "active" cards */
  --glow-signal:0 0 0 4px rgba(87,206,134,.22);   /* live / on indicator */

  --duration-fast:150ms;
  --duration-base:300ms;
  --duration-slow:350ms;
  --ease-standard:ease;                            /* the brand uses plain ease — no bounce */
  --hover-lift:translateY(-2px);

  --blur-bar:8px;                                  /* sticky bars only */

  /* striped placeholder for imagery not yet supplied */
  --placeholder-fill:repeating-linear-gradient(135deg,
    color-mix(in oklab,var(--ink) 9%,var(--chalk)) 0 12px,
    color-mix(in oklab,var(--ink) 4%,var(--chalk)) 12px 24px);
}

/* ANTech — base element defaults. Left-aligned, airy, plain. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-body);font-weight:var(--weight-body);font-size:var(--fs-body);line-height:var(--leading-body)}
::selection{background:var(--selection-bg)}
h1,h2,h3,h4{font-family:var(--font-heading);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-heading);line-height:var(--leading-tight);margin:0}
h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3)}
p{margin:0 0 var(--space-2);text-wrap:pretty}
a{color:var(--link);text-decoration:none}
a:hover{color:var(--link-hover);text-decoration:underline;text-underline-offset:2px}
.on-dark a,.an-dark a{color:var(--signal)}
.on-dark a:hover,.an-dark a:hover{color:var(--chalk)}
img{max-width:100%;display:block}
code,kbd,pre{font-family:var(--font-mono)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}

/* ANTech — component styling layer. The React components in components/ render these classes,
   so a consumer that links styles.css gets identical output from JSX or hand-written HTML. */

/* ---------- wordmark & mark ---------- */
.an-wordmark{display:inline-flex;align-items:center;gap:.4em;line-height:1;font-family:var(--font-wordmark);font-weight:var(--weight-wordmark);letter-spacing:var(--tracking-wordmark);text-transform:lowercase;color:var(--text-body);font-size:24px}
.an-wordmark--on-dark{color:var(--text-on-dark)}
.an-wordmark .an-wordmark__dot{color:var(--signal)}
.an-wordmark img{height:1.15em;width:auto}
.an-mark{display:block;flex-shrink:0}

/* ---------- eyebrow / mono label ---------- */
.an-eyebrow{font-family:var(--font-mono);font-weight:700;font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-accent);display:flex;align-items:center;gap:12px}
.an-eyebrow--rule::before{content:"";width:26px;height:2px;background:currentColor;display:inline-block;flex-shrink:0}
.an-eyebrow--on-dark{color:var(--signal)}
.an-eyebrow--quiet{color:var(--text-faint)}

/* ---------- button ---------- */
.an-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-body);font-weight:var(--weight-semibold);font-size:15px;line-height:1;padding:12px 20px;border-radius:var(--radius-button);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}
.an-btn:hover{text-decoration:none}
.an-btn--primary{background:var(--cta-bg);color:var(--cta-fg)}
.an-btn--primary:hover{background:var(--cta-bg-hover);color:var(--cta-fg)}
.an-btn--primary:active{background:var(--cta-bg-active)}
.an-btn--dark{background:var(--pine);color:var(--chalk)}
.an-btn--dark:hover{background:var(--pine-deep);color:var(--chalk)}
.an-btn--ghost{background:transparent;color:var(--text-body);border-color:var(--border-strong)}
.an-btn--ghost:hover{background:var(--sage);color:var(--text-body)}
.an-btn--ghost.an-btn--on-dark{color:var(--chalk);border-color:var(--border-on-dark-strong)}
.an-btn--ghost.an-btn--on-dark:hover{background:rgba(244,248,244,.08)}
.an-btn--sm{font-size:13.5px;padding:9px 15px}
.an-btn--lg{font-size:17px;padding:15px 26px}
.an-btn[disabled],.an-btn--disabled{opacity:.45;pointer-events:none}

/* ---------- chip / tag ---------- */
.an-chip{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:0.06em;padding:6px 12px;border-radius:var(--radius-pill);border:1px solid var(--border-strong);color:var(--text-muted);background:transparent}
.an-chip--accent{border-color:transparent;background:var(--forest);color:#fff}
.an-chip--signal{border-color:transparent;background:color-mix(in oklab,var(--signal) 26%,var(--white));color:var(--ok-fg)}
.an-chip--on-dark{border-color:var(--border-on-dark-strong);color:var(--text-on-dark)}
.an-chip__dot{width:8px;height:8px;border-radius:50%;background:var(--signal);flex-shrink:0}

/* ---------- panel (document surface) ---------- */
.an-panel{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-panel);padding:28px}
.an-panel--tint{background:color-mix(in oklab,var(--sage) 55%,var(--white))}
.an-panel--dark{background:var(--surface-dark-elevated);border-color:var(--border-on-dark);color:var(--text-on-dark)}
.an-panel__label{font-family:var(--font-mono);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-faint);margin:0 0 10px}
.an-panel--dark .an-panel__label{color:var(--signal)}
.an-panel__title{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:22px;letter-spacing:var(--tracking-tight);margin:0 0 8px}
.an-panel__body{margin:0;color:var(--text-muted);font-size:15.5px}
.an-panel--dark .an-panel__body{color:var(--text-on-dark-muted)}

/* ---------- card (numbered / stat card, pine by default) ---------- */
.an-card{background:var(--surface-dark);color:var(--text-on-dark);border-radius:var(--radius-card);padding:32px 30px;display:flex;flex-direction:column;border:1.5px solid transparent}
.an-card--light{background:var(--white);color:var(--text-body);border-color:var(--border-card)}
.an-card__num{font-family:var(--font-mono);font-size:13px;letter-spacing:0.08em;color:var(--signal)}
.an-card--light .an-card__num{color:var(--forest)}
.an-card__title{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:24px;letter-spacing:var(--tracking-heading);margin-top:auto}
.an-card__body{font-size:16px;line-height:var(--leading-relaxed);margin-top:12px;opacity:.82}

/* ---------- image placeholder ---------- */
.an-ph{background-image:var(--placeholder-fill);display:flex;align-items:center;justify-content:center;color:var(--text-faint);font-family:var(--font-mono);font-size:12px;letter-spacing:0.06em;text-align:center;border-radius:var(--radius-tile);border:1px solid var(--border-card);padding:20px;min-height:160px}

/* ---------- metric ---------- */
.an-metric{padding:0 24px;border-left:2px solid var(--border-subtle)}
.an-metric:first-child{border-left:none;padding-left:0}
.an-metric--on-dark{border-left-color:var(--border-on-dark)}
.an-metric__value{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:64px;letter-spacing:-0.04em;line-height:.9;color:var(--forest)}
.an-metric--on-dark .an-metric__value{color:var(--signal)}
.an-metric__label{font-size:16px;line-height:var(--leading-relaxed);margin-top:14px;color:var(--text-muted);max-width:320px}
.an-metric--on-dark .an-metric__label{color:var(--text-on-dark-muted)}

/* ---------- service tile (outline icon + name + one line) ---------- */
.an-tile{border:1px solid var(--border-card);border-radius:var(--radius-panel);padding:26px;display:flex;flex-direction:column;gap:16px;background:var(--white)}
.an-tile__icon{width:40px;height:40px;fill:none;stroke:var(--forest);stroke-width:2.3;stroke-linecap:square;stroke-linejoin:miter}
.an-tile__name{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:20px;letter-spacing:var(--tracking-tight)}
.an-tile__desc{font-size:15px;line-height:var(--leading-relaxed);color:var(--text-muted)}
.an-tile--on-dark{background:var(--surface-dark-elevated);border-color:var(--border-on-dark);color:var(--text-on-dark)}
.an-tile--on-dark .an-tile__icon{stroke:var(--signal)}
.an-tile--on-dark .an-tile__desc{color:var(--text-on-dark-muted)}

/* ---------- timeline step ---------- */
.an-step{padding-right:24px}
.an-step__node{width:14px;height:14px;border-radius:50%;background:var(--signal);position:relative;z-index:1}
.an-step__when{font-family:var(--font-mono);font-size:12px;letter-spacing:0.04em;color:var(--forest);margin-top:18px}
.an-step--on-dark .an-step__when{color:var(--signal)}
.an-step__title{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:20px;letter-spacing:var(--tracking-heading);margin-top:8px}
.an-step__body{font-size:15px;line-height:var(--leading-relaxed);margin-top:10px;color:var(--text-muted);max-width:280px}
.an-step--on-dark .an-step__body{color:var(--text-on-dark-muted)}
.an-track{position:relative}
.an-track__line{position:absolute;top:6px;left:7px;right:24px;height:2px;background:var(--border-subtle)}
.an-track--on-dark .an-track__line{background:var(--border-on-dark)}

/* ---------- package card ---------- */
.an-pkg{border:1.5px solid var(--border-card);border-radius:var(--radius-card);padding:30px 28px;display:flex;flex-direction:column;background:var(--white)}
.an-pkg--featured{background:var(--pine);color:var(--text-on-dark);border-color:var(--pine)}
.an-pkg__name{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:22px;letter-spacing:var(--tracking-heading)}
.an-pkg__meta{font-family:var(--font-mono);font-size:12.5px;letter-spacing:0.04em;color:var(--forest);margin-top:8px}
.an-pkg--featured .an-pkg__meta{color:var(--signal)}
.an-pkg__list{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-direction:column;gap:12px}
.an-pkg__list li{font-size:15px;line-height:1.35;padding-left:24px;position:relative}
.an-pkg__list li::before{content:"";position:absolute;left:0;top:6px;width:10px;height:10px;border-radius:50%;background:var(--signal)}

/* ---------- pull quote ---------- */
.an-quote{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:32px;letter-spacing:-0.03em;line-height:1.08;color:var(--text-body);margin:0}
.an-quote--on-dark{color:var(--text-on-dark)}
.an-quote--on-accent{color:#fff}
.an-quote__attrib{font-family:var(--font-mono);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-faint);margin-top:20px;display:block}
.an-quote--on-dark .an-quote__attrib,.an-quote--on-accent .an-quote__attrib{color:rgba(255,255,255,.7)}

/* ---------- agenda list (numbered rules) ---------- */
.an-agenda{display:flex;flex-direction:column}
.an-agenda__item{display:flex;align-items:baseline;gap:24px;padding:18px 0;border-top:1px solid var(--border-subtle)}
.an-agenda--on-dark .an-agenda__item{border-top-color:var(--border-on-dark)}
.an-agenda__num{font-family:var(--font-mono);font-size:13px;color:var(--forest);width:34px;flex-shrink:0}
.an-agenda--on-dark .an-agenda__num{color:var(--signal)}
.an-agenda__title{font-family:var(--font-heading);font-weight:var(--weight-medium);font-size:22px;letter-spacing:var(--tracking-heading)}
.an-agenda__note{font-size:15px;color:var(--text-muted);margin-left:auto;max-width:300px;text-align:right}
.an-agenda--on-dark .an-agenda__note{color:var(--text-on-dark-muted)}

/* ---------- diagram node (AI-organisation maps & flow charts) ---------- */
.an-node{border-radius:var(--radius-panel);display:flex;flex-direction:column;justify-content:center;background:var(--white);border:1.5px solid var(--border-card);box-shadow:var(--shadow-card);padding:16px 22px;transition:box-shadow var(--duration-slow) var(--ease-standard),border-color var(--duration-slow) var(--ease-standard),transform var(--duration-slow) var(--ease-standard)}
.an-node--center{align-items:center;text-align:center}
.an-node__name{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:20px;letter-spacing:var(--tracking-heading);color:var(--text-body);display:flex;align-items:center;gap:10px}
.an-node__role{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:0.07em;color:var(--forest);margin-top:6px}
.an-node--control{background:var(--pine);border-color:var(--pine);box-shadow:var(--shadow-dark)}
.an-node--control .an-node__name{color:var(--chalk)}
.an-node--control .an-node__role{color:var(--signal)}
.an-node--lead{border-color:color-mix(in oklab,var(--forest) 52%,var(--sage));box-shadow:var(--shadow-lead)}
.an-node--done{background:var(--forest);border-color:var(--forest)}
.an-node--done .an-node__name{color:#fff}
.an-node--done .an-node__role{color:rgba(255,255,255,.85)}
.an-node--active{border-color:var(--signal);box-shadow:0 0 0 3px rgba(87,206,134,.35),var(--shadow-card)}
.an-node__live{width:10px;height:10px;border-radius:50%;background:var(--signal);box-shadow:var(--glow-signal);flex-shrink:0}
@keyframes an-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.65)}}
.an-node__live--pulse{animation:an-pulse 1.4s infinite}

/* ---------- swatch (colour specimen) ---------- */
.an-swatch{border-radius:var(--radius-panel);overflow:hidden;border:1px solid var(--border-subtle);background:var(--white)}
.an-swatch__chip{height:88px}
.an-swatch__meta{padding:12px 14px 14px}
.an-swatch__name{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:15px;letter-spacing:var(--tracking-tight)}
.an-swatch__hex{font-family:var(--font-mono);font-size:11.5px;color:var(--text-faint);margin-top:3px}
.an-swatch__use{font-size:12px;color:var(--text-muted);margin-top:7px}

/* ---------- layout helpers ---------- */
.an-stack{display:flex;flex-direction:column}
.an-row{display:flex;align-items:center}
.an-grid{display:grid}
.an-gap-1{gap:var(--space-1)}.an-gap-2{gap:var(--space-2)}.an-gap-3{gap:var(--space-3)}.an-gap-4{gap:var(--space-4)}

/* ANTech — slide layer. 1920×1080 design frame; every class below is scoped to .slide so it
   can never leak into web or document layouts. Markup matches the ANTech deck template. */
.slide{width:var(--slide-width);height:var(--slide-height);padding:var(--slide-padding);display:flex;flex-direction:column;font-family:var(--font-body);position:relative;overflow:hidden}
.slide.s-pine{background:var(--pine);color:var(--chalk)}
.slide.s-chalk{background:var(--chalk);color:var(--ink)}
.slide.s-forest{background:var(--forest);color:#fff}

.slide .label{font-family:var(--font-mono);font-weight:700;font-size:var(--slide-fs-label);letter-spacing:var(--tracking-label-loose);text-transform:uppercase}
.slide .label.grn{color:var(--signal)}
.slide .label.for{color:var(--forest)}
.slide .divider-top{border-top:1.5px solid;padding-top:34px}
.slide.s-pine .divider-top{border-color:color-mix(in oklab,var(--chalk) 18%,transparent)}
.slide.s-chalk .divider-top{border-color:color-mix(in oklab,var(--ink) 14%,transparent)}
.slide h1,.slide h2,.slide h3{font-family:var(--font-heading);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-heading);margin:0;line-height:var(--leading-tight)}
.slide h1{font-size:var(--slide-fs-h1)}
.slide h2{font-size:var(--slide-fs-h2)}
.slide .mark{flex-shrink:0;display:block}

/* footer: name left, page number right */
.slide .foot{margin-top:auto;display:flex;align-items:center;gap:18px;font-family:var(--font-mono);font-size:var(--slide-fs-label);letter-spacing:0.04em;padding-top:40px}
.slide .foot .nm{opacity:.7}
.slide .foot .pg{margin-left:auto;opacity:.55}
.slide .foot.dark .nm,.slide .foot.dark .pg{color:var(--chalk)}

/* cover */
.slide .cover-wm{display:flex;align-items:center;gap:34px}
.slide .cover-wm .wt{font-family:var(--font-wordmark);font-weight:var(--weight-wordmark);font-size:var(--slide-fs-wordmark);letter-spacing:var(--tracking-wordmark);text-transform:lowercase;line-height:1}
.slide .cover-wm .wt .dot{color:var(--signal)}
.slide .cover-tag{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:var(--slide-fs-cover);letter-spacing:var(--tracking-display);line-height:1.03;margin-top:70px;max-width:1300px}
.slide .cover-sub{font-size:var(--slide-fs-lead);opacity:.8;margin-top:38px;max-width:1000px}
.slide .cover-ghost{position:absolute;right:-120px;bottom:-160px;opacity:.5;pointer-events:none}

/* statement */
.slide .stmt{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:var(--slide-fs-statement);letter-spacing:var(--tracking-display);line-height:1.08;max-width:1560px;margin-top:46px}
.slide .stmt em{font-style:normal;color:var(--forest)}
.slide.s-pine .stmt em{color:var(--signal)}
.slide .sec-num{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:var(--slide-fs-section-number);line-height:.8;letter-spacing:-0.04em;color:var(--signal)}

/* agenda */
.slide .agenda{display:flex;flex-direction:column;margin-top:40px}
.slide .agenda .it{display:flex;align-items:baseline;gap:40px;padding:28px 0;border-top:1.5px solid color-mix(in oklab,var(--chalk) 16%,transparent)}
.slide.s-chalk .agenda .it{border-top-color:color-mix(in oklab,var(--ink) 14%,transparent)}
.slide .agenda .it .n{font-family:var(--font-mono);font-size:30px;color:var(--signal);width:60px}
.slide.s-chalk .agenda .it .n{color:var(--forest)}
.slide .agenda .it .t{font-family:var(--font-heading);font-weight:var(--weight-medium);font-size:54px;letter-spacing:var(--tracking-heading)}
.slide .agenda .it .d{font-size:var(--slide-fs-body);opacity:.6;margin-left:auto;max-width:560px;text-align:right}

/* numbered cards */
.slide .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:48px}
.slide .card{background:var(--pine);color:var(--chalk);border-radius:var(--radius-card);padding:48px 44px;display:flex;flex-direction:column;min-height:368px}
.slide.s-chalk .card.lite{background:#fff;color:var(--ink);border:1.5px solid var(--sage)}
.slide .card .cn{font-family:var(--font-mono);font-size:26px;color:var(--signal)}
.slide.s-chalk .card.lite .cn{color:var(--forest)}
.slide .card .ch{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:44px;letter-spacing:var(--tracking-heading);margin-top:auto}
.slide .card .cd{font-size:var(--slide-fs-body);line-height:var(--leading-relaxed);margin-top:22px;opacity:.82}

/* two column */
.slide .two{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;margin-top:30px;flex:1}
.slide .two h2{font-size:76px}
.slide .two .bd{font-size:32px;line-height:1.5;margin-top:30px;opacity:.82;max-width:640px}
.slide .ph{width:100%;height:100%;min-height:620px;border-radius:var(--radius-card);background-image:var(--placeholder-fill);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--slide-fs-label);color:color-mix(in oklab,var(--ink) 55%,var(--chalk));border:1.5px solid var(--sage)}

/* metrics */
.slide .metrics{display:grid;grid-template-columns:repeat(3,1fr);margin-top:50px;flex:1;align-content:center}
.slide .metric{padding:0 50px;border-left:2px solid color-mix(in oklab,var(--chalk) 18%,transparent)}
.slide.s-chalk .metric{border-left-color:color-mix(in oklab,var(--ink) 14%,transparent)}
.slide .metric:first-child{border-left:none;padding-left:0}
.slide .metric .big{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:var(--slide-fs-metric);letter-spacing:-0.04em;line-height:.9;color:var(--signal)}
.slide.s-chalk .metric .big{color:var(--forest)}
.slide .metric .ml{font-size:30px;line-height:var(--leading-relaxed);margin-top:30px;opacity:.84;max-width:380px}

/* services grid */
.slide .svc{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:42px;flex:1}
.slide .svc .item{border:1.5px solid var(--sage);border-radius:20px;padding:38px;display:flex;flex-direction:column;gap:24px;background:#fff}
.slide .svc .item svg{width:58px;height:58px;stroke:var(--forest);stroke-width:2.3;fill:none;stroke-linecap:square;stroke-linejoin:miter}
.slide .svc .item .sh{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:40px;letter-spacing:var(--tracking-tight)}
.slide .svc .item .sd{font-size:26px;opacity:.7;line-height:var(--leading-relaxed)}

/* pull quote */
.slide .pull{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:100px;letter-spacing:-0.03em;line-height:1.05;max-width:1500px;margin:auto 0}

/* timeline */
.slide .timeline{position:relative;display:grid;grid-template-columns:repeat(4,1fr);margin-top:80px;flex:1;align-content:center}
.slide .tl-line{position:absolute;top:13px;left:40px;right:40px;height:2px;background:color-mix(in oklab,var(--chalk) 18%,transparent)}
.slide.s-chalk .tl-line{background:color-mix(in oklab,var(--ink) 14%,transparent)}
.slide .tl{padding:0 40px}
.slide .tl .node{width:28px;height:28px;border-radius:50%;background:var(--signal);position:relative;z-index:1}
.slide .tl .wk{font-family:var(--font-mono);font-size:var(--slide-fs-label);color:var(--signal);margin-top:36px;letter-spacing:0.04em}
.slide.s-chalk .tl .wk{color:var(--forest)}
.slide .tl .ph2{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:42px;letter-spacing:var(--tracking-heading);margin-top:14px}
.slide .tl .tx{font-size:var(--slide-fs-caption);line-height:1.42;margin-top:16px;opacity:.82;max-width:330px}

/* team */
.slide .team{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:46px;flex:1}
.slide .member{display:flex;flex-direction:column}
.slide .member .ph{min-height:0;height:360px}
.slide .member img.portrait{height:360px;width:100%;object-fit:cover;object-position:center top;border-radius:var(--radius-card);filter:grayscale(1)}
.slide .member .mn{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:46px;letter-spacing:var(--tracking-heading);margin-top:28px}
.slide .member .mr{font-family:var(--font-mono);font-size:var(--slide-fs-label);color:var(--forest);margin-top:8px;letter-spacing:0.06em;text-transform:uppercase}
.slide .member .mb{font-size:26px;line-height:1.45;margin-top:16px;opacity:.82;max-width:600px}

/* case study */
.slide .case{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;margin-top:38px;flex:1}
.slide .case .blk{border-top:1.5px solid var(--sage);padding:26px 0}
.slide .case .blk:first-child{border-top:none}
.slide .case .bk{font-family:var(--font-mono);font-size:var(--slide-fs-label);color:var(--forest);letter-spacing:0.1em;text-transform:uppercase}
.slide .case .bt{font-size:30px;line-height:var(--leading-relaxed);margin-top:10px;max-width:700px}
.slide .case .out{background:var(--pine);color:var(--chalk);border-radius:var(--radius-card);padding:54px;display:flex;flex-direction:column;justify-content:center}
.slide .case .out .ob{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:128px;letter-spacing:-0.04em;line-height:.9;color:var(--signal)}
.slide .case .out .ol{font-size:30px;line-height:var(--leading-relaxed);margin-top:24px;opacity:.85}

/* packages */
.slide .pkg{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:44px;flex:1}
.slide .pk{border:1.5px solid var(--sage);border-radius:var(--radius-card);padding:46px 40px;display:flex;flex-direction:column;background:#fff}
.slide .pk.feat{background:var(--pine);color:var(--chalk);border-color:var(--pine)}
.slide .pk .pn{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:40px;letter-spacing:var(--tracking-heading)}
.slide .pk .pm{font-family:var(--font-mono);font-size:var(--slide-fs-label);color:var(--forest);margin-top:12px;letter-spacing:0.04em}
.slide .pk.feat .pm{color:var(--signal)}
.slide .pk ul{list-style:none;padding:0;margin:32px 0 0;display:flex;flex-direction:column;gap:16px}
.slide .pk li{font-size:var(--slide-fs-caption);line-height:1.3;padding-left:34px;position:relative;opacity:.92}
.slide .pk li::before{content:"";position:absolute;left:0;top:10px;width:14px;height:14px;border-radius:50%;background:var(--signal)}

/* quote wall */
.slide .quotes{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;margin-top:44px;flex:1}
.slide .qt{background:#fff;border:1.5px solid var(--sage);border-radius:var(--radius-card);padding:44px;display:flex;flex-direction:column}
.slide.s-pine .qt{background:var(--pine-deep);border-color:var(--border-on-dark)}
.slide .qt .qm{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:60px;line-height:.6;color:var(--signal)}
.slide .qt .qb{font-size:30px;line-height:1.4;margin-top:20px}
.slide .qt .qa{font-family:var(--font-mono);font-size:var(--slide-fs-label);letter-spacing:0.06em;color:var(--forest);margin-top:auto;padding-top:26px}
.slide.s-pine .qt .qa{color:var(--signal)}

/* closing */
.slide .close-h{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:150px;letter-spacing:-0.03em;line-height:1;margin-top:40px}
.slide .contact{display:flex;gap:90px;margin-top:70px;font-size:var(--slide-fs-lead)}
.slide .contact .ck{font-family:var(--font-mono);font-size:var(--slide-fs-label);letter-spacing:0.1em;text-transform:uppercase;opacity:.6;display:block;margin-bottom:12px}

/* card-preview helper: scales a 1920×1080 slide into a 1280×720 frame */
.slide-frame{width:1280px;height:720px;overflow:hidden}
.slide-frame > .slide{transform:scale(0.6666667);transform-origin:top left}
