/* Caldenn one-page · design tokens
 * Brand values carried over from designs 15 / 16 / 20 (navy #060633, mist #eef0f5, silver).
 * Every colour and font on the page references a token below.
 */
@font-face{font-family:Archivo;font-style:normal;font-weight:650 900;font-stretch:110% 125%;font-display:swap;src:url(fonts/archivo-fdbb3247.woff2) format('woff2')}
@font-face{font-family:Manrope;font-style:normal;font-weight:350 800;font-display:swap;src:url(fonts/manrope-a914523a.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 550;font-display:swap;src:url(fonts/jetbrains-mono-80ad58b2.woff2) format('woff2')}
@font-face{font-family:'Archivo Fallback';src:local('Arial'),local('Helvetica Neue'),local('Helvetica'),local('Roboto');size-adjust:130.27%;ascent-override:67.40%;descent-override:16.12%;line-gap-override:0%}
@font-face{font-family:'Manrope Fallback';src:local('Arial'),local('Helvetica Neue'),local('Helvetica'),local('Roboto');size-adjust:128.11%;ascent-override:83.21%;descent-override:23.42%;line-gap-override:0%}
@font-face{font-family:'JetBrains Mono Fallback';src:local('Courier New'),local('Menlo'),local('DejaVu Sans Mono');size-adjust:99.98%;ascent-override:102.02%;descent-override:30%;line-gap-override:0%}

:root {
  /* light surfaces */
  --color-paper:      oklch(99.2% 0.003 272);
  --color-mist:       oklch(95.5% 0.008 272);
  --color-mist-2:     oklch(92.2% 0.013 272);
  /* ink (brand navy) */
  --color-ink:        oklch(16.8% 0.086 272);
  --color-ink-2:      oklch(40.7% 0.062 276);
  --color-ink-3:      oklch(52% 0.05 276);
  --color-ink-raise:  oklch(22.9% 0.106 273);
  --color-ink-raise-2:oklch(28.2% 0.12 273);
  /* on-ink text */
  --color-on-ink:     oklch(96.6% 0.008 272);
  --color-on-ink-2:   oklch(78.5% 0.037 276);
  --color-on-ink-3:   oklch(56% 0.08 276);
  /* silver: the brand's quiet second tone (outlines, unread words) */
  --color-silver:     oklch(81% 0.012 272);
  --color-hair:       oklch(90% 0.012 272);
  --color-hair-ink:   oklch(32% 0.09 273);
  --color-focus:      oklch(55% 0.17 262);
  --color-focus-ink:  oklch(86% 0.08 262);
  /* Holon Dome AI's own palette (its dark stage and signal red), used only in its feature */
  --holon-bg:         oklch(21.59% 0.0075 248.2);
  --holon-plate:      oklch(27.81% 0.0117 248.2);
  --holon-line:       oklch(36% 0.0141 244);
  --holon-fg:         oklch(98.5% 0.0015 240);
  --holon-fg-2:       oklch(78.76% 0.0123 240);
  --holon-red:        oklch(66% 0.21 27);
  --font-holon:       -apple-system, BlinkMacSystemFont, "Segoe UI", "IBM Plex Sans Thai Looped", "Noto Sans Thai", system-ui, sans-serif;
  /* each product poster wears its product's own palette and type (from that product's DESIGN.md) */
  --cf-bg: #0d253d; --cf-fg: #ffffff; --cf-fg-2: #b9c5d6; --cf-accent: #3b82f6;
  --cf-ok: #16a34a; --cf-ok-bg: #dcfce7; --cf-part: #d97706; --cf-part-bg: #fef3c7; --cf-miss: #dc2626; --cf-miss-bg: #fee2e2; --cf-na: #6b7280; --cf-na-bg: #f3f4f6;
  --wv-bg: #f4f4f4; --wv-plate: #ffffff; --wv-fg: #131313; --wv-fg-2: #3d3d3d; --wv-accent: #2f9e34; --wv-grad-a: #b7ee78; --wv-grad-b: #f6fe84; --wv-action: #181818;
  --lms-bg: #fafaf9; --lms-fg: #1a1a1a; --lms-fg-2: #4a4a4a; --lms-accent: #0070f3; --lms-track: #e7e5e4;
  --hr-wash-a: #dce6dc; --hr-wash-b: #e8e9ee; --hr-wash-c: #e2dcf0; --hr-fg: #15171b; --hr-fg-2: #3c4149; --hr-night: #1b1d22; --hr-on-night: #f5f6f1; --hr-lime: #d6f26b; --hr-accent: #4b3cc9;
  --font-cf: "Inter", -apple-system, system-ui, sans-serif;
  --font-wv: "Anuphan", "IBM Plex Sans", -apple-system, system-ui, sans-serif;
  --font-lms: "Geist", "IBM Plex Sans Thai", "Inter", ui-sans-serif, system-ui, sans-serif;
  --font-hr: "IBM Plex Sans Thai", "Noto Sans Thai", sans-serif;
  --color-scrim:      oklch(16.8% 0.086 272 / 0.06);

  --font-display: "Archivo", "Archivo Fallback", "Noto Sans Thai Looped", "Arial Black", system-ui, sans-serif;
  --font-body:    "Manrope", "Manrope Fallback", "IBM Plex Sans Thai Looped", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono:    "JetBrains Mono", "JetBrains Mono Fallback", "IBM Plex Sans Thai Looped", ui-monospace, Menlo, monospace;

  /* type scale */
  --text-label:   0.75rem;
  --text-sm:      0.9375rem;
  --text-body:    clamp(1rem, 0.96rem + 0.2vw, 1.125rem);
  --text-lede:    clamp(1.0625rem, 0.98rem + 0.45vw, 1.375rem);
  --text-h3:      clamp(1.25rem, 1.05rem + 0.8vw, 1.75rem);
  --text-h2:      clamp(2.25rem, 1.2rem + 4.2vw, 5.25rem);
  --text-word:    clamp(2.25rem, 0.9rem + 5.6vw, 6.25rem);
  --text-display: clamp(2rem, 0.6rem + 7.4vw, 7.5rem);
  --text-quote:   clamp(1.75rem, 1rem + 2.9vw, 3.75rem);
  --text-mail:    clamp(1.5rem, 0.6rem + 4.6vw, 5.25rem);

  /* 4 pt spacing scale */
  --space-3xs: 0.25rem;
  --space-2xs: 0.5rem;
  --space-xs:  0.75rem;
  --space-sm:  1rem;
  --space-md:  1.5rem;
  --space-lg:  2rem;
  --space-xl:  3rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;
  --space-4xl: 8rem;
  --space-5xl: 10rem;
  --space-section: clamp(5rem, 3rem + 7vw, 10rem);
  --gutter: max(clamp(1rem, 4vw, 4rem), env(safe-area-inset-left, 0px));

  --radius-sm: 0.5rem;
  --radius-md: 1rem;
  --radius-lg: clamp(1rem, 1.6vw, 1.75rem);
  --radius-pill: 999px;
  --rule: 1px;

  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in: cubic-bezier(0.7, 0, 0.84, 0);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-micro: 120ms;
  --dur-short: 220ms;
  --dur-long: 420ms;
  --dur-draw: 1400ms;

  --shadow-shot: 0 2.5rem 4rem -2rem oklch(16.8% 0.086 272 / 0.28), 0 0.75rem 1.5rem -0.75rem oklch(16.8% 0.086 272 / 0.12);
  --shadow-lens: 0 1.75rem 3rem -1rem oklch(16.8% 0.086 272 / 0.32), 0 0.5rem 1rem -0.5rem oklch(16.8% 0.086 272 / 0.16);

  --banner-height: 4.5rem;
  --z-sticky: 200;
  --z-sticky-nav: 300;
  --z-menu: 400;
}
