/* GB Klubs Riga design system tokens.
   Concatenated from the supplied design system; the Google Fonts import
   was lifted into the page head so it can carry preconnect. */

/* ===== tokens/colors.css ===== */
:root{
color-scheme:dark; /* native controls, scrollbars and autofill follow the page */

/* ---- base ramp: ink (black / near-black) ---- */
--ink-1000:#000000;--ink-900:#070605;--ink-850:#0B0908;--ink-800:#100D0C;--ink-750:#161211;--ink-700:#1D1817;--ink-600:#262020;--ink-500:#332B2A;
/* ---- base ramp: burgundy / crimson velvet ---- */
--burgundy-950:#1C0305;--burgundy-900:#320609;--burgundy-800:#420A0E;--burgundy-700:#5A0C12;--crimson-600:#850E18;--crimson-500:#A2131F;--crimson-400:#C0202D;--crimson-300:#E5484D;
/* ---- base ramp: antique gold ---- */
--gold-700:#7C6231;--gold-600:#9A7B3E;--gold-500:#C5A15A;--gold-400:#D8BC80;--gold-300:#E7D2A5;
/* ---- base ramp: ivory / muted grey ---- */
--ivory-100:#F1E8D8;--ivory-200:#E2D8C6;--grey-500:#8F8982;--grey-600:#6E6963;--grey-700:#4A4643;

/* ---- alpha utilities ---- */
--gold-a12:rgba(197,161,90,.12);--gold-a24:rgba(197,161,90,.24);--gold-a40:rgba(197,161,90,.40);
--ivory-a08:rgba(241,232,216,.08);--ivory-a16:rgba(241,232,216,.16);--ivory-a60:rgba(241,232,216,.60);
--crimson-a20:rgba(133,14,24,.20);--black-a60:rgba(7,6,5,.60);--black-a85:rgba(7,6,5,.85);

/* ---- semantic: surfaces ---- */
--surface-page:var(--ink-900);
--surface-raised:var(--ink-850);
--surface-card:var(--ink-800);
--surface-card-hover:var(--ink-750);
--surface-inset:var(--ink-1000);
--surface-velvet:var(--burgundy-900);
--surface-velvet-deep:var(--burgundy-950);
--surface-overlay:var(--black-a85);
--surface-scrim:linear-gradient(180deg,rgba(7,6,5,0) 0%,rgba(7,6,5,.55) 45%,var(--ink-900) 100%);

/* ---- semantic: text ---- */
--text-display:var(--ivory-100);
--text-body:var(--ivory-200);
--text-muted:var(--grey-500);
--text-faint:var(--grey-600);
--text-accent:var(--gold-500);
--text-on-gold:var(--ink-900);
--text-on-crimson:var(--ivory-100);--text-error:var(--crimson-300);

/* ---- semantic: lines & edges ---- */
--line-hairline:var(--ivory-a08);
--line-soft:var(--ivory-a16);
--line-gold:var(--gold-a24);
--line-gold-strong:var(--gold-a40);
--line-rule:linear-gradient(90deg,transparent,var(--gold-a40) 50%,transparent);

/* ---- semantic: interactive ---- */
--action-primary-bg:var(--gold-500);
--action-primary-bg-hover:var(--gold-400);
--action-primary-fg:var(--ink-900);
--action-secondary-border:var(--gold-a40);
--action-secondary-fg:var(--gold-500);
--action-danger-bg:var(--crimson-600);
--focus-ring:var(--gold-400);

/* ---- semantic: status ---- */
--status-ok:#7FA06A;--status-warn:var(--gold-500);--status-error:var(--crimson-400);--status-info:var(--grey-500);
}

/* ===== tokens/typography.css ===== */
:root{
/* ---- families ---- */
--font-serif-display:"Playfair Display","Times New Roman",Georgia,serif; /* @kind font */
--font-serif-accent:"Cormorant Garamond",Georgia,serif; /* @kind font */
--font-sans:"Archivo","Helvetica Neue",Arial,sans-serif; /* @kind font */
--font-mono:ui-monospace,"SFMono-Regular",Menlo,monospace; /* @kind font */

/* ---- weights ---- */
--fw-light:300; /* @kind font */
--fw-regular:400; /* @kind font */
--fw-medium:500; /* @kind font */
--fw-semibold:600; /* @kind font */
--fw-bold:700; /* @kind font */

/* ---- display scale (serif, headlines) ---- */
--fs-display-xl:clamp(3rem,7vw,5.5rem); /* @kind font */
--fs-display-l:clamp(2.5rem,5vw,4rem); /* @kind font */
--fs-display-m:clamp(2rem,3.6vw,3rem); /* @kind font */
--fs-display-s:clamp(1.6rem,2.6vw,2.25rem); /* @kind font */
--lh-display:1.06; /* @kind other */
--ls-display:-0.01em; /* @kind other */

/* ---- body scale (sans) ---- */
--fs-lead:1.25rem; /* @kind font */
--fs-body:1rem; /* @kind font */
--fs-body-s:0.9375rem; /* @kind font */
--fs-caption:0.8125rem; /* @kind font */
--lh-body:1.7; /* @kind other */
--lh-lead:1.6; /* @kind other */
--lh-tight:1.35; /* @kind other */

/* ---- eyebrow / label: letterspaced uppercase sans ---- */
--fs-eyebrow:0.75rem; /* @kind font */
--ls-eyebrow:0.28em; /* @kind other */
--fs-label:0.6875rem; /* @kind font */
--ls-label:0.18em; /* @kind other */
--fs-button:0.8125rem; /* @kind font */
--ls-button:0.16em; /* @kind other */

/* ---- semantic aliases ---- */
--type-hero:var(--fw-medium) var(--fs-display-xl)/var(--lh-display) var(--font-serif-display); /* @kind font */
--type-section:var(--fw-medium) var(--fs-display-m)/1.1 var(--font-serif-display); /* @kind font */
--type-card-title:var(--fw-medium) var(--fs-display-s)/1.15 var(--font-serif-display); /* @kind font */
--type-quote:var(--fw-medium) clamp(1.25rem,2vw,1.75rem)/1.45 var(--font-serif-accent); /* @kind font */
--type-tile-label:var(--fw-medium) 1.375rem/1.15 var(--font-serif-accent); /* @kind font */
--type-lead:var(--fw-regular) var(--fs-lead)/var(--lh-lead) var(--font-sans); /* @kind font */
--type-body:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-sans); /* @kind font */
--type-caption:var(--fw-regular) var(--fs-caption)/1.5 var(--font-sans); /* @kind font */
}

/* ===== tokens/spacing.css ===== */
:root{
--space-1:4px; /* @kind spacing */
--space-2:8px; /* @kind spacing */
--space-3:12px; /* @kind spacing */
--space-4:16px; /* @kind spacing */
--space-5:24px; /* @kind spacing */
--space-6:32px; /* @kind spacing */
--space-7:48px; /* @kind spacing */
--space-8:64px; /* @kind spacing */
--space-9:96px; /* @kind spacing */
--space-10:128px; /* @kind spacing */
--space-11:160px; /* @kind spacing */
/* section rhythm - the brand is generous; sections breathe */
--section-y:clamp(72px,10vw,140px); /* @kind spacing */
--section-y-tight:clamp(48px,6vw,80px); /* @kind spacing */
--gutter:clamp(20px,5vw,48px); /* @kind spacing */
--container-max:1180px; /* @kind spacing */
--container-narrow:720px; /* @kind spacing */
--measure:64ch; /* @kind other */
/* radii - near-square; the brand is theatrical, not friendly */
--radius-0:0px;--radius-1:2px;--radius-2:4px;--radius-3:8px;--radius-pill:999px; /* @kind radius */
/* stroke widths */
--stroke-hair:1px; /* @kind spacing */
--stroke-frame:1px; /* @kind spacing */
--stroke-emphasis:2px; /* @kind spacing */
}

/* ===== tokens/effects.css ===== */
:root{
/* ---- shadows: deep, warm, never grey ---- */
--shadow-none:none; /* @kind shadow */
--shadow-1:0 1px 2px rgba(0,0,0,.6); /* @kind shadow */
--shadow-2:0 8px 24px rgba(0,0,0,.55); /* @kind shadow */
--shadow-3:0 24px 64px rgba(0,0,0,.65); /* @kind shadow */
--shadow-lift:0 18px 48px rgba(0,0,0,.6),0 0 0 1px var(--gold-a12); /* @kind shadow */
--glow-gold:0 0 0 1px var(--gold-a40),0 0 28px rgba(197,161,90,.18); /* @kind shadow */
/* Struck-metal button: dark seat, bright top lip, cast shadow. */
--shadow-foil:0 1px 0 rgba(255,244,216,.45) inset,0 -1px 0 rgba(60,44,16,.55) inset,0 10px 26px rgba(0,0,0,.6),0 0 22px rgba(197,161,90,.14); /* @kind shadow */
/* Pressed foil: the lip goes dark, the cast shadow collapses. Seats the button. */
--shadow-foil-press:0 1px 0 rgba(60,44,16,.6) inset,0 2px 6px rgba(0,0,0,.5) inset,0 2px 6px rgba(0,0,0,.5); /* @kind shadow */
/* Upholstered panel at rest, then lifted. Depth is felt, not announced. */
--shadow-panel:0 2px 4px rgba(0,0,0,.5),0 14px 34px rgba(0,0,0,.5),inset 0 1px 0 rgba(241,232,216,.06); /* @kind shadow */
--shadow-panel-lift:0 4px 8px rgba(0,0,0,.45),0 26px 60px rgba(0,0,0,.62),inset 0 1px 0 rgba(241,232,216,.10); /* @kind shadow */
--glow-crimson:0 0 40px rgba(133,14,24,.35); /* @kind shadow */
--inset-top-light:inset 0 1px 0 var(--ivory-a08); /* @kind shadow */
--inset-frame-gold:inset 0 0 0 1px var(--gold-a24); /* @kind shadow */

/* ---- gradients & atmosphere ---- */
/* Flat gold - small surfaces, badges, ticks. */
--grad-gold:linear-gradient(180deg,var(--gold-400) 0%,var(--gold-500) 52%,var(--gold-600) 100%); /* @kind color */
/* Foil gold - the real thing: raking sheen across the face. Buttons, plaques. */
--grad-gold-foil:linear-gradient(103deg,#92743A 0%,#A88547 12%,#D6B978 30%,#F2E0B6 44%,#CFAE68 54%,#A57F3C 70%,#E2C994 88%,#957437 100%); /* @kind color */
/* Foil for text - pair with background-clip:text. Lighter, so glyphs stay legible. */
--grad-gold-text:linear-gradient(96deg,#B08F4A 0%,#E7D2A5 26%,#FFF4D8 46%,#D8BC80 62%,#A98443 100%); /* @kind color */
--grad-gold-edge:linear-gradient(180deg,rgba(255,244,216,.55) 0%,rgba(197,161,90,.15) 40%,rgba(124,98,49,.5) 100%); /* @kind color */
--grad-velvet:linear-gradient(180deg,var(--burgundy-900) 0%,var(--ink-900) 100%); /* @kind color */
/* Satin - catches light in a hard diagonal band, where velvet absorbs it. */
--grad-satin:linear-gradient(115deg,rgba(7,6,5,0) 0%,rgba(241,232,216,.05) 38%,rgba(241,232,216,.13) 47%,rgba(241,232,216,.04) 56%,rgba(7,6,5,0) 100%); /* @kind color */
/* Reflection sweep - travels across gold on hover. Pair with --anim-sweep. */
--grad-sheen:linear-gradient(105deg,transparent 30%,rgba(255,248,225,.42) 47%,rgba(255,255,255,.62) 50%,rgba(255,248,225,.42) 53%,transparent 70%); /* @kind color */
/* Pointer-tracked panel light. Components set --mx/--my from the cursor. */
--grad-pointer-light:radial-gradient(340px circle at var(--mx,50%) var(--my,0%),rgba(197,161,90,.13) 0%,rgba(197,161,90,0) 62%); /* @kind color */
/* Lit velvet - a fold of light falling across burgundy. Feature panels. */
--grad-velvet-lit:radial-gradient(120% 140% at 22% 0%,rgba(133,14,24,.55) 0%,rgba(50,6,9,.9) 42%,var(--ink-900) 100%); /* @kind color */
--grad-stage:radial-gradient(120% 80% at 50% 0%,rgba(133,14,24,.35) 0%,rgba(7,6,5,0) 65%); /* @kind color */
--grad-vignette:radial-gradient(110% 90% at 50% 45%,rgba(7,6,5,0) 40%,rgba(7,6,5,.58) 100%); /* @kind color */
--grad-protect-bottom:linear-gradient(180deg,rgba(7,6,5,0) 0%,rgba(7,6,5,.55) 55%,rgba(7,6,5,.88) 82%,var(--ink-900) 100%); /* @kind color */
--grad-hairline-gold:linear-gradient(90deg,transparent,var(--gold-a40) 50%,transparent); /* @kind color */

/* ---- textures ---- */
--texture-velvet:url("/public/velvet-red-2.jpg"); /* @kind color */
/* Film grain - 3-5% over photography and velvet panels, never over body copy. */
--texture-grain:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAQAElEQVR4ATTbVY9sVRAF4KqNDRcbfPCLu7u7/gQgEAgk8ELCA08QIEBICISgIWiC/Abc3bnu7u5uh/lqckg63X1676pVa62qfbrv0J544onuySef7F588cXujTfe6B555JHuvvvu6x566KHuzjvv7D788MPu8ccf7x5++OHu9ddf79577716//7773cvvPBCrbH+rrvu6h544IHOszhvvfVW9+yzz3aPPvpo98EHH3Qff/xx9+qrr3bvvvtud//999d1uV555ZXu5Zdf7l566aXuwQcf7B577LFae/fdd3dvvvlm7Xn77be7e+65p15/9NFHnT3yiHfvvfd2Tz/9dNeveeaZZ7qnnnqqe/7557vXXnut8sD3zjvvFLZPPvmkavP+ueee69ohhxwS8+bNi+nTp8eaNWti27Ztcc0118SZZ54Zt9xyS3z//fexYMGCOOqoo2LLli21Zt99943ddtstDj744Dj//PNr/R133BGnnHJKXHTRRbF169b46aefwrr9998/Nm7cGBMnToylS5dGZsYRRxwRhx9+eMi99957x3///Rc7d+6Mk08+ueIvWrQoLrvsspg7d274fPny5RV7+/btMWnSpMp92GGH1fNxxx0XK1asKPwwqmNgYCCmTZsWBx10UOG54IIL4o8//iic9su1cuXKyt8WLlwYl1xySZx44onRB43h/4D6+uuvQwGnn356zJgxo5Ioeu3atVXUnnvuWcABWL9+fSxZsqSKsee0004rIjZs2BCSWYMgJCByOEWMGjWqiLnqqqtiaGioSLnyyitj1apVVfwJJ5xQaw444IC6hjg5YT733HPjn3/+iVNPPVWoGBguGoaLL764iBdnypQphXPx4sXh+pw5c+LAAw+sz23atGlTNJt+//33KnDdunVFAsCYb63F8ccfXw4YPXp0MbZr164444wzYsKECUEpwAEbP358gaHC5MmTQ3DOOvTQQ4OC9iNx2bJlsfvuu8c+++xTbgBcUdTOzFKYclSaOXNmrF69upSEBU57jznmmBg7dmyRg1A1zJo1q0iQd+rUqRVH4URR+M8//1z4OAReuAleLaDYwcHBANYG9rTgvPPOi3///Tc4YMeOHQH8HnvsEbNnzw4Ms9nff/9dbZOZAYR955xzTtn5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"); /* @kind color */

/* ---- blur ---- */
--blur-nav:saturate(120%) blur(14px); /* @kind other */
}

/* ===== tokens/motion.css ===== */
:root{
/* Movement is slow and curtain-like. Nothing bounces, nothing springs. */
--dur-instant:90ms; /* @kind other */
--dur-fast:180ms; /* @kind other */
--dur-base:320ms; /* @kind other */
--dur-slow:560ms; /* @kind other */
--dur-curtain:900ms; /* @kind other */
--ease-standard:cubic-bezier(.4,0,.2,1); /* @kind other */
--ease-out-soft:cubic-bezier(.16,1,.3,1); /* @kind other */
--ease-in-soft:cubic-bezier(.7,0,.84,0); /* @kind other */
--transition-control:color var(--dur-fast) var(--ease-standard),background-color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard); /* @kind other */
--transition-reveal:opacity var(--dur-slow) var(--ease-out-soft),transform var(--dur-slow) var(--ease-out-soft); /* @kind other */
/* Panel lift: restrained. 3px of travel, never a scale. */
--transition-panel:transform var(--dur-base) var(--ease-out-soft),box-shadow var(--dur-base) var(--ease-out-soft),border-color var(--dur-base) var(--ease-standard); /* @kind other */
--lift-panel:translateY(-3px); /* @kind other */
--press-control:translateY(1px); /* @kind other */
--dur-sweep:820ms; /* @kind other */
}
@keyframes gb-sheen-sweep{from{transform:translateX(-120%) skewX(-12deg)}to{transform:translateX(220%) skewX(-12deg)}}
@keyframes gb-reveal-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
:root{
}
@media (prefers-reduced-motion:reduce){:root{
--dur-instant:0ms; /* @kind other */
--dur-fast:0ms; /* @kind other */
--dur-base:0ms; /* @kind other */
--dur-slow:0ms; /* @kind other */
--dur-curtain:0ms; /* @kind other */
}}

/* ===== tokens/base.css ===== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface-page);color:var(--text-body);font:var(--type-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{margin:0;font-family:var(--font-serif-display);font-weight:var(--fw-regular);color:var(--text-display);letter-spacing:var(--ls-display);line-height:var(--lh-display);text-wrap:balance}
p{margin:0;text-wrap:pretty}
a{color:var(--text-accent);text-decoration:none;transition:var(--transition-control)}
a:hover{color:var(--gold-300)}
::selection{background:var(--crimson-600);color:var(--ivory-100)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
img{max-width:100%;display:block}
button{font:inherit}

/* ===== utilities/layout.css ===== */
/* Layout utilities that cannot be expressed as inline styles.

   A four-item row must be 2-across or 4-across and NEVER 3-across: with 4 items,
   `repeat(auto-fit,minmax(F,1fr))` yields 3 tracks for every container width in
   [3F+2g, 4F+3g), orphaning the fourth item beside a two-column void, and no
   value of F removes that band. The rule is purely declarative, so it belongs in
   a media query rather than in runtime measurement: a media query can never be
   stuck waiting on an observer, a timer or a settle window.

   4-up needs a track wide enough for the longest tile label
   (KONFIDENCIALITĀTE = 232px of text + 32px of tile padding = 264px). At a
   1264px viewport the 1180px container gives 4 tracks of 280px, which clears it. */
.gb-quad{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:559px){.gb-quad{grid-template-columns:minmax(0,1fr)}}
@media (min-width:1264px){.gb-quad{grid-template-columns:repeat(4,minmax(0,1fr))}}
