/* GENERATED by design/build_tokens.py from design/tokens.json -- do not edit by hand. */
@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root{
  /* Core surfaces -- HoltOS is a dark system first */
  --holt-deep:#0D0B12;
  --holt-surface:#171423;
  --holt-raised:#1D1927;
  --holt-hairline:rgba(255,255,255,.09);
  --holt-hairline-strong:rgba(255,255,255,.15);

  /* Ink */
  --holt-ink:#FFFFFF;
  --holt-ink-70:rgba(255,255,255,.70);
  --holt-ink-55:rgba(255,255,255,.55);
  --holt-ink-42:rgba(255,255,255,.42);
  --holt-ink-28:rgba(255,255,255,.28);

  /* Identity -- purple carries identity and does the shouting */
  --holt-current:#B14DFF;
  --holt-current-hover:#C77DFF;
  --holt-current-deep:#8F2FE0;
  --holt-current-tint:rgba(177,77,255,.10);
  --holt-lilac:#F4EBFF;

  /* Semantic -- teal ONLY ever means online / healthy; amber means a human is needed */
  --holt-healthy:#28E0C8;
  --holt-warning:#FFB84D;

  /* Neon accents -- blue informs, magenta glows, lime sparks; never a state or the primary action */
  --holt-pulse:#4F7BFF;
  --holt-flare:#FF4FD8;
  --holt-volt:#C6FF3D;

  /* Glass (HoltOS Glass v2): translucent surfaces that blur what is behind them */
  --holt-glass-surface:rgba(23,20,35,.70);
  --holt-glass-surface-strong:rgba(23,20,35,.84);
  --holt-glass-border:rgba(255,255,255,.09);
  --holt-glass-border-strong:rgba(255,255,255,.15);
  --holt-glass-highlight:rgba(255,255,255,.06);
  --holt-glass-highlight-strong:rgba(255,255,255,.08);
  --holt-glass-blur:18px;
  --holt-glass-blur-strong:28px;
  --holt-glass-blur-badge:8px;
  --holt-glass-saturate:140%;
  --holt-glass-badge-surface:rgba(13,11,18,.72);
  --holt-glass-input-surface:rgba(13,11,18,.50);

  /* Ambient ground layer + scrims for text over art */
  --holt-ambient-glow-current:rgba(177,77,255,.18);
  --holt-ambient-glow-healthy:rgba(40,224,200,.07);
  --holt-ambient-ring:rgba(244,235,255,.05);
  --holt-ambient-scrim-strong:rgba(13,11,18,.92);
  --holt-ambient-scrim-mid:rgba(13,11,18,.62);
  --holt-ambient-scrim-weak:rgba(13,11,18,.12);
  --holt-ambient-stripe:rgba(177,77,255,.24);
  --holt-ambient-glow-pulse:rgba(79,123,255,.12);
  --holt-ambient-glow-flare:rgba(255,79,216,.14);

  /* Badges (status on media) */
  --holt-badge-available:#28E0C8;
  --holt-badge-pending:#B14DFF;
  --holt-badge-processing:#B14DFF;
  --holt-badge-partial:#FFB84D;
  --holt-badge-error:#FFB84D;
  --holt-badge-missing:rgba(255,255,255,.42);
  --holt-badge-missing-dot:rgba(255,255,255,.28);

  /* Type */
  --holt-font-core:'Nunito',system-ui,-apple-system,sans-serif;
  --holt-font-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,monospace;

  /* Geometry */
  --holt-radius-sm:8px;
  --holt-radius-md:10px;
  --holt-radius-lg:14px;
  --holt-radius-pill:999px;

  /* Rhythm */
  --holt-space-1:6px;
  --holt-space-2:10px;
  --holt-space-3:16px;
  --holt-space-4:22px;
  --holt-space-5:32px;
  --holt-space-6:48px;

  /* Layout sizes */
  --holt-size-sidebar:240px;
  --holt-size-sidebar-rail:72px;
  --holt-size-top-bar:60px;
  --holt-size-tab-bar:72px;
  --holt-size-content-max:1400px;
  --holt-size-poster-sm:112px;
  --holt-size-poster-md:132px;
  --holt-size-poster-lg:148px;
  --holt-size-poster-xl:220px;
  --holt-size-avatar:28px;
  --holt-size-hit-target:44px;
  --holt-size-mobile-breakpoint:900px;

  /* Elevation */
  --holt-shadow-1:0 2px 14px rgba(0,0,0,.28);
  --holt-shadow-2:0 8px 24px rgba(0,0,0,.35);
  --holt-shadow-3:0 24px 60px rgba(0,0,0,.50);
  --holt-shadow:var(--holt-shadow-1); /* back-compat alias */

  /* Motion -- drawn, never spun */
  --holt-dur-fast:160ms;
  --holt-dur-base:220ms;
  --holt-dur-draw:1600ms;

  --holt-ease-out:cubic-bezier(.2,.8,.2,1);
}

/* Reduced transparency: every glass surface becomes its opaque twin, so any component
   built on the tokens degrades without its own media query. */
@media (prefers-reduced-transparency: reduce){
  :root{
    --holt-glass-surface:#171423;
    --holt-glass-surface-strong:#171423;
    --holt-glass-badge-surface:#0D0B12;
    --holt-glass-input-surface:#0D0B12;
    --holt-glass-blur:0px;
    --holt-glass-blur-strong:0px;
    --holt-glass-blur-badge:0px;
    --holt-glass-saturate:100%;
  }
}

@media (prefers-reduced-motion: reduce){
  :root{--holt-dur-fast:0ms;--holt-dur-base:0ms;--holt-dur-draw:0ms}
}

body{margin:0;background:var(--holt-deep);color:var(--holt-ink);font-family:var(--holt-font-core);-webkit-font-smoothing:antialiased}
a{color:var(--holt-current);text-decoration:none}
a:hover{color:var(--holt-current-hover)}

/* Type roles */
.holt-display{font-family:var(--holt-font-core);font-weight:900;font-size:64px;letter-spacing:-2.6px;line-height:0.95}
.holt-display-lg{font-family:var(--holt-font-core);font-weight:900;font-size:42px;letter-spacing:-1.8px;line-height:0.98}
.holt-title{font-family:var(--holt-font-core);font-weight:800;font-size:26px;letter-spacing:-1.2px;line-height:1.05}
.holt-body{font-family:var(--holt-font-core);font-weight:400;font-size:15px;letter-spacing:0px;line-height:1.6;color:var(--holt-ink-55);text-wrap:pretty}
.holt-eyebrow{font-family:var(--holt-font-mono);font-weight:400;font-size:10.5px;letter-spacing:2.2px;line-height:1.2;text-transform:uppercase;color:var(--holt-healthy)}
.holt-meta{font-family:var(--holt-font-mono);font-weight:400;font-size:10.5px;letter-spacing:0px;line-height:1.7;color:var(--holt-ink-42)}
