:root{
  /* Temne design tokens v1.0 — see docs/design/02-styleguide.md. Edit tokens there first. */

  /* Brand role tokens. --brand is set at runtime by OrgProvider from branding.accent on guest pages. */
  --brand: #25327a; /* blaatime-800 */
  --brand-foreground: #ffffff;
  --brand-text: var(--brand);
  --brand-tint: color-mix(in oklab, var(--brand) 10%, white);
  --brand-ring: color-mix(in srgb, var(--brand) 60%, transparent);

  /* Surfaces, borders, ink (warm stone) */
  --surface: #ffffff;
  --surface-muted: #fafaf9;
  --surface-sunken: #f5f5f4;
  --border: #e7e5e4;
  --border-strong: #d6d3d1;
  --border-control: var(--ink-muted); /* Identifies unfilled controls: >= 3:1 on white. */
  --focus-ring: var(--brand-text); /* Opaque, contrast-adjusted customer accent. */
  --ink: #1c1917;
  --ink-secondary: #57534e;
  --ink-muted: #78716c;

  /* Radius */
  --radius-sm: 0.375rem;
  --radius: 0.75rem;
  --radius-lg: 1.25rem;

  /* Elevation */
  --shadow-sm: 0 1px 2px rgb(28 25 23 / 0.06);
  --shadow-md: 0 4px 12px rgb(28 25 23 / 0.08);
  --shadow-lg: 0 12px 32px rgb(28 25 23 / 0.14);

  /* Motion */
  --duration-fast: 120ms;
  --duration-base: 200ms;
  --duration-slow: 320ms;
  --ease-out: cubic-bezier(0.2, 0, 0, 1);
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
  /* Blåtime (indigo) */
  --color-blaatime-50: #f1f4fd;
  --color-blaatime-100: #e3e8fa;
  --color-blaatime-500: #4c63d2;
  --color-blaatime-600: #3b4fb8;
  --color-blaatime-700: #2f3f99;
  --color-blaatime-800: #25327a;
  --color-blaatime-900: #1c2657;
  --color-blaatime-950: #141b3d;

  /* Lykt (amber). 500 is decorative only; 700 is text-safe on white. */
  --color-lykt-50: #fef8ec;
  --color-lykt-100: #fcefd6;
  --color-lykt-400: #f2b95e;
  --color-lykt-500: #e8a33d;
  --color-lykt-600: #b07414;
  --color-lykt-700: #8a5a0b;

  /* Gull: the parent company Vör's gold, inherited rather than chosen. It is the
     one colour Temne shares with Vör, and it lights the lantern in the mark.
     Deliberately not part of the Lykt ramp and deliberately absent from the
     interface, which keeps lykt-500. See 01-brand.md §5 and §6. */
  --color-gull: #c7a24a;

  /* Semantic: text / surface / border. Never overridden by the customer accent. */
  --color-success: #1f7a4d;
  --color-success-surface: #ddf3e6;
  --color-success-border: #9ad6b4;
  --color-warning: #7a4a0b;
  --color-warning-surface: #fdefd2;
  --color-warning-border: #f2cb7a;
  --color-danger: #b42318;
  --color-danger-surface: #fde2e0;
  --color-danger-border: #f4a9a3;
  --color-info: #2f3f99;
  --color-info-surface: #f1f4fd;
  --color-info-border: #e3e8fa;

  /* Chart series, fixed order, validated (docs/design/02-styleguide.md §2.6) */
  --color-chart-1: #3b4fb8;
  --color-chart-2: #d97a1f;
  --color-chart-3: #1aa38f;
  --color-chart-4: #c93d6e;
  --color-chart-5: #7a9a1e;
  --color-chart-6: #8a4fbf;--font-sans:system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans',sans-serif;--font-display:var(--font-sans)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--surface-muted);color:var(--ink);font:16px/1.5 var(--font-sans)}a{color:var(--brand-text);text-underline-offset:4px}a:focus-visible{outline:3px solid var(--brand);outline-offset:4px}a:hover{text-decoration:underline}a:active{opacity:.8}.wrap{max-width:1280px;margin:auto;padding:0 16px}header .wrap{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:16px}header svg{width:126px;height:44px}nav{display:flex;gap:16px;align-items:center}nav a,.skip{display:inline-flex;align-items:center;min-height:44px}.skip{position:absolute;left:16px;top:-100px;background:var(--surface);padding:12px;z-index:2}.skip:focus{top:8px}.hero{background:var(--color-lykt-50);padding:48px 0 64px}.hero-grid{display:grid;gap:48px;align-items:center}.eyebrow{color:var(--color-lykt-700);font-weight:600;margin:0 0 16px}h1{font:800 40px/1.1 var(--font-display);letter-spacing:-.02em;color:var(--color-blaatime-900);margin:0 0 24px;max-width:15ch}h2{font-size:22px;line-height:28px;font-weight:600;margin:0 0 16px}h3{font-size:18px;line-height:28px;font-weight:600;margin:0 0 8px}p{margin:0 0 16px;max-width:65ch}.lead{font-size:18px;line-height:28px;color:var(--ink-secondary);max-width:48ch}.actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:24px}.button{display:inline-flex;min-height:48px;padding:12px 24px;background:var(--brand);color:var(--brand-foreground);border-radius:var(--radius);font-weight:600;text-decoration:none;box-shadow:var(--shadow-sm)}.button:hover{background:var(--color-blaatime-700)}.preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-lg);max-width:440px;width:100%;margin:auto}.preview-label{font-size:16px;color:var(--ink-secondary)}.event-art{height:120px;border-radius:var(--radius);background:var(--color-blaatime-50);display:grid;place-items:center;margin:16px 0 24px}.event-art svg{width:210px;height:96px}.event-title{color:var(--color-blaatime-900);font-size:30px;line-height:36px;font-weight:700}.choice{border:2px solid var(--brand);border-radius:var(--radius);padding:12px 16px;font-weight:600;color:var(--brand);margin:16px 0}.note{color:var(--ink-secondary)}section.content{padding:64px 0}.cards{display:grid;gap:24px;margin-top:32px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.number{font-size:18px;font-weight:600;color:var(--brand);margin-bottom:16px}.quiet{background:var(--surface-sunken)}.split{display:grid;gap:32px}.guest{border-left:4px solid var(--color-lykt-500);padding-left:24px}footer{background:var(--color-blaatime-950);color:var(--surface);padding:32px 0}footer p{margin-bottom:0}footer a{color:var(--surface)}@media(min-width:640px){.wrap{padding:0 24px}}@media(min-width:768px){.hero-grid{grid-template-columns:1.2fr 1fr}.cards{grid-template-columns:repeat(3,1fr)}.split{grid-template-columns:1fr 1fr;gap:64px}.hero{padding:64px 0}.card{padding:24px}}@media(max-width:400px){nav{gap:12px}header svg{width:112px}h1{font-size:36px;line-height:40px}.hero{padding-top:32px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* landing update */
.plan-grid{display:grid;gap:24px;margin-top:32px}.plan{display:flex;flex-direction:column;align-items:start}.plan h3{font-size:22px;line-height:28px}.plan .action{margin-top:auto;padding-top:16px}.plan ul{padding-left:24px;margin:0 0 24px}.plan li{margin:8px 0}.plan-lead{font-size:18px;line-height:28px;color:var(--ink);font-weight:600}.secondary{display:inline-flex;min-height:48px;align-items:center;padding:10px 20px;border:1px solid var(--border-control);border-radius:var(--radius);color:var(--brand-text);text-decoration:none;font-weight:600}.secondary:hover{background:var(--surface-sunken)}.hero-fact{margin:16px 0 0;color:var(--ink-secondary)}.footer-grid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}.footer-links{display:flex;flex-wrap:wrap;gap:12px 24px}.footer-links a{min-height:44px;display:inline-flex;align-items:center}.actions>a:not(.button){min-height:44px;display:inline-flex;align-items:center}.login-link{min-height:44px;display:inline-flex;align-items:center}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;box-shadow:0 0 0 2px var(--surface)}@media(min-width:768px){.plan-grid{grid-template-columns:1fr 1fr}}
/* end landing update */
.separated{margin-top:24px}
/* Static production surface: same approved palette and typography. */
header .logo{width:126px;height:44px;display:block}header .home{display:inline-flex;min-height:44px;align-items:center}.legal{max-width:800px;padding-top:40px;padding-bottom:64px}.legal h1{max-width:100%;font-size:clamp(30px,5vw,40px)}.legal h2{margin-top:32px}.legal ul{padding-left:24px}.legal li{margin:8px 0}.legal p,.legal li{overflow-wrap:anywhere}.breadcrumb{display:inline-flex;align-items:center;min-height:44px;margin-bottom:24px}.updated{color:var(--ink-secondary);margin-bottom:24px}.legal-toc{padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.legal-toc a{display:inline-flex;align-items:center;min-height:44px}.legal-toc ul{margin:0}.plan ul{overflow-wrap:anywhere}.contact-note{margin-top:16px}.notfound{padding-top:64px;padding-bottom:96px}footer a:focus-visible{outline-color:white;box-shadow:none}nav{flex-wrap:wrap;justify-content:flex-end}.preview .choice{cursor:default}.preview{overflow-wrap:anywhere}@media(max-width:400px){header .logo{width:112px}header .wrap{gap:8px}nav{gap:8px}.legal{padding-top:24px}}
