/* Kilbi Grossdietwil webfonts.
   SUBSTITUTION NOTE: the original Affinity artwork used a Helvetica/Arial-class
   grotesque (Black + Bold) and a monoline signature script for the
   Frauensportverein wordmark. No font binaries were supplied, so the nearest
   Google Fonts matches are used: Archivo Black (display), Archivo (text),
   Sacramento (script). Swap in the real families here if the club has them. */
@import url("https://fonts.googleapis.com/css2?family=Archivo:ital,wght@0,400..700;1,400..700&family=Archivo+Black&family=Sacramento&display=swap");

:root{
/* --- base palette, sampled from Kilbi2025_full.png --- */
--navy-900:#142833;--navy-800:#1d3a4a;--navy-700:#204050;--navy-600:#2b4a5c;--navy-500:#3b5e71;
--cream-50:#fbf4e0;--cream-100:#f5e7bd;--cream-200:#f0e0b8;--cream-300:#e6d3a2;
--red-400:#e8705f;--red-500:#e05848;--red-600:#c94436;--maroon-800:#802818;
--gold-300:#f2d76a;--gold-400:#eecd4e;--gold-500:#e8c848;--gold-600:#e0a838;
--orange-500:#e37b3c;--orange-600:#c96528;
--teal-400:#38b098;
--white:#f8f8f8;--black:#080605;
/* --- semantic aliases --- */
--surface-page:var(--navy-800);--surface-panel:var(--navy-600);--surface-sunken:var(--navy-900);
--surface-paper:var(--cream-100);--surface-card:var(--white);
--surface-banner:var(--gold-500);--surface-banner-fold:var(--gold-600);
--text-heading:var(--white);--text-body:var(--cream-50);--text-accent:var(--gold-400);
--text-on-paper:var(--navy-800);--text-on-banner:var(--black);--text-muted:var(--navy-500);
--brand-primary:var(--red-500);--brand-primary-hover:var(--red-400);--brand-primary-press:var(--red-600);
--brand-accent:var(--gold-500);--brand-accent-hover:var(--gold-400);--brand-accent-press:var(--gold-600);
--brand-support:var(--teal-400);--brand-warm:var(--orange-500);
--border-strong:var(--black);--border-soft:rgba(248,248,248,.28);
--focus-ring:var(--gold-400);
--link:var(--gold-400);--link-hover:var(--gold-300);
}

/* Kilbi '26 — painterly night palette, sampled from uploads/Kilbi_2026_flyer.pdf.
   The 2026 artwork moved from flat vector to a cinematic painted village scene;
   these tokens sit alongside the 2025 flat palette rather than replacing it. */
:root{
--night-950:#050d16;--night-900:#0a1a28;--night-800:#0c2a44;--night-700:#0c3e67;--night-600:#154f7d;
--ray-100:#fdf0d5;--ray-200:#ffe3ac;--ray-300:#ffca7a;--ray-400:#f0b050;--ray-500:#e39a2e;
--ember-500:#f0a03c;--ember-600:#d97b22;
--signal-500:#e03828;--signal-600:#c22a1c;
--paper-50:#fbf3e2;--paper-100:#f7e6c4;--paper-200:#efd7a8;
/* semantic, 2026 */
--k26-page:var(--night-900);--k26-panel:var(--night-800);--k26-deep:var(--night-950);
--k26-heading:var(--ray-100);--k26-body:#cfdae6;--k26-accent:var(--ray-300);
--k26-cta:var(--signal-500);--k26-cta-hover:#ef4b3a;--k26-cta-press:var(--signal-600);
--k26-paper:var(--paper-100);--k26-on-paper:#22160e;
--k26-glow:0 0 90px rgba(240,176,80,.32);
}

:root{
--font-display:"Archivo Black","Archivo",Helvetica,Arial,sans-serif;
--font-text:"Archivo",Helvetica,Arial,sans-serif;
--font-script:"Sacramento",cursive;
--weight-regular:400;--weight-medium:500;--weight-bold:700;
/* poster scale (A5 @ 1x = 559x794pt) */
--size-hero:104px;--size-display:64px;--size-title:44px;--size-headline:34px;
--size-subhead:26px;--size-body-lg:20px;--size-body:16px;--size-caption:13px;--size-micro:11px;
--leading-tight:.92;--leading-snug:1.1;--leading-normal:1.4;--leading-loose:1.6;
--tracking-hero:-.02em;--tracking-tight:-.01em;--tracking-normal:0;--tracking-wide:.06em;--tracking-shout:.14em;
}

:root{
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;
--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;
--frame-inset:56px;   /* stripe border width on A5 front */
--panel-pad:40px;     /* inner navy panel padding */
--stack-tight:12px;--stack:24px;--stack-loose:44px;
--page-a5-w:559px;--page-a5-h:794px;
}

:root{
--radius-0:0px;      /* default: the poster language is hard-edged */
--radius-sm:6px;
--radius-md:12px;
--radius-lg:20px;    /* QR card on the flyer */
--radius-pill:999px; /* badges, crest, buttons */
}

:root{
/* Flat print language: almost no shadow. Two exceptions only. */
--shadow-none:none;
--shadow-ground:0 18px 26px -14px rgba(20,40,51,.55);  /* the ellipse under the tent */
--shadow-card:0 6px 0 0 rgba(20,40,51,.22);            /* hard offset, no blur */
--shadow-lift:0 10px 24px -10px rgba(20,40,51,.45);    /* web only, hover */
--shadow-fold:-8px 8px 0 0 var(--gold-600);            /* ribbon tail fold */
}

:root{
--ease-out:cubic-bezier(.2,.7,.3,1); /* @kind other */
--ease-pop:cubic-bezier(.34,1.56,.64,1); /* @kind other */
--dur-fast:120ms; /* @kind other */
--dur-base:200ms; /* @kind other */
--dur-slow:420ms; /* @kind other */
--motion-hover:transform var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out);
}

:root{
--stripe-w:56px;
/* Diagonal cream/red barber stripe used as the flyer frame */
--pattern-stripes:repeating-linear-gradient(-45deg,var(--cream-100) 0 var(--stripe-w),var(--red-500) var(--stripe-w) calc(var(--stripe-w)*2));
/* Dashed gold rule that separates flyer blocks */
--pattern-dashes:repeating-linear-gradient(90deg,var(--gold-500) 0 22px,transparent 22px 40px);
/* Subtle paper speckle over navy */
--pattern-speckle:radial-gradient(rgba(248,248,248,.07) 1px,transparent 1.2px); /* @kind other */
--pattern-speckle-size:26px 26px;
}

