/* Copied from design/tokens.css by web/scripts/copy-tokens.mjs – edit design/tokens.json instead. */
/* Generated by design/build-tokens.mjs from design/tokens.json. Do not edit. */
/* Fonts: Dela Gothic One, Onest, Pixelify Sans (all SIL OFL 1.1). The website may load them from
   Google Fonts; the launcher and updater must self-host the woff2 files (CSP font-src 'self'). */
:root {
  color-scheme: dark;
  --nore-accent: #9d5cff;
  --nore-accent-light: #c6a3ff;
  --nore-accent-deep: #6d38dc;
  --nore-accent-ink: #ffffff;
  --nore-page: #141216;
  --nore-page-raised: #1e1b21;
  --nore-page-raised-2: #28242c;
  --nore-slot: #0c0b0e;
  --nore-ghost: #2e2a33;
  --nore-ink: #f3efe9;
  --nore-ink-soft: #b3abb0;
  --nore-ink-faint: #837b82;
  --nore-vinyl: #fbfaf7;
  --nore-vinyl-ink: #17141a;
  --nore-vinyl-ink-soft: #5d5560;
  --nore-paper: #e8e5e0;
  --nore-cover: color-mix(in oklab, var(--nore-accent) 18%, #0f0d12);
  --nore-cover-tab: color-mix(in oklab, var(--nore-accent) 26%, #18151c);
  --nore-cover-ink: #e9e2f5;
  --nore-cover-ink-soft: #ab9fc0;
  --nore-scrim: rgba(8, 7, 10, 0.72);
  --nore-dot-ready: #3fd27f;
  --nore-dot-wait: #ffd23a;
  --nore-dot-error: #ff5a4f;
  --nore-dot-event: #ff8a1f;
  --nore-dot-info: #4aa3ff;
  --nore-dot-nore: var(--nore-accent);
  --nore-dot-off: #6c656d;
  --nore-label-fabric: #e8c873;
  --nore-label-quilt: #d99be8;
  --nore-label-forge: #e09a5b;
  --nore-label-vanilla: #8fd18b;
  --nore-label-modpack: #7cc7d6;
  --nore-label-nore: var(--nore-accent);
  --nore-label-version: #f3efe9;
  --nore-tape-lilac: rgba(198, 163, 255, 0.78);
  --nore-tape-mint: rgba(150, 228, 196, 0.74);
  --nore-tape-kraft: rgba(214, 190, 150, 0.80);
  --nore-foil: conic-gradient(from var(--nore-foil-angle, 0deg), #c6a3ff, #9fe6ff, #c7ffd9, #ffe9a3, #ffc1e3, #c6a3ff); /* taste-skill-ignore */
  --nore-halloween-phosphor: #d2ff7a;
  --nore-halloween-phosphor-glow: rgba(210, 255, 122, 0.38);
  --nore-halloween-pumpkin: #ff7417;
  --nore-halloween-pumpkin-deep: #c2470a;
  --nore-halloween-torch: rgba(255, 236, 196, 0.16);
  --nore-halloween-bat: #221c26;
  --nore-winter-frost: #e9f4ff;
  --nore-winter-ice: #8fd3ff;
  --nore-winter-light-red: #ff5a5a;
  --nore-winter-light-green: #5be38f;
  --nore-winter-light-gold: #ffd257;
  --nore-winter-light-blue: #6cb8ff;

  --nore-font-display: 'Dela Gothic One', 'Onest', system-ui, sans-serif;
  --nore-font-text: 'Onest', 'Segoe UI', system-ui, sans-serif;
  --nore-font-pixel: 'Pixelify Sans', 'Onest', monospace; /* taste-skill-ignore */
  --nore-font-code: ui-monospace, 'Cascadia Mono', 'Consolas', monospace; /* taste-skill-ignore */

  --nore-launcher-meta: 500 12px/16px var(--nore-font-text);
  --nore-launcher-label: 600 13px/18px var(--nore-font-text);
  --nore-launcher-body: 400 14px/21px var(--nore-font-text);
  --nore-launcher-lead: 600 16px/24px var(--nore-font-text);
  --nore-launcher-section: 700 18px/24px var(--nore-font-text);
  --nore-launcher-title: 400 30px/34px var(--nore-font-display);
  --nore-launcher-title-tracking: -0.01em;
  --nore-launcher-hero: 400 44px/46px var(--nore-font-display);
  --nore-launcher-hero-tracking: -0.015em;
  --nore-launcher-play: 400 24px/24px var(--nore-font-display);
  --nore-launcher-play-tracking: 0.02em;
  --nore-web-small: 500 16px/1.45 var(--nore-font-text);
  --nore-web-body: 400 clamp(16px, 1.05vw + 12px, 19px)/1.55 var(--nore-font-text);
  --nore-web-lead: 500 clamp(20px, 1.2vw + 14px, 28px)/1.35 var(--nore-font-text);
  --nore-web-heading: 400 clamp(34px, 4.2vw, 64px)/1 var(--nore-font-display);
  --nore-web-heading-tracking: -0.02em;
  --nore-web-display: 400 clamp(64px, 12.5vw, 200px)/0.86 var(--nore-font-display);
  --nore-web-display-tracking: -0.035em;

  --nore-space-1: 4px;
  --nore-space-2: 8px;
  --nore-space-3: 12px;
  --nore-space-4: 16px;
  --nore-space-5: 20px;
  --nore-space-6: 24px;
  --nore-space-8: 32px;
  --nore-space-10: 40px;
  --nore-space-14: 56px;
  --nore-space-20: 80px;
  --nore-space-30: 120px;
  --nore-space-40: 160px;
  --nore-launcher-rail: 224px;
  --nore-launcher-titlebar: 36px;
  --nore-launcher-page-x: 32px;
  --nore-launcher-page-top: 28px;
  --nore-launcher-gap: 16px;
  --nore-launcher-group: 28px;
  --nore-web-margin: clamp(16px, 2.2vw, 32px);
  --nore-web-section: clamp(96px, 12vw, 200px);
  --nore-web-grid-gap: 8px;
  --nore-radius-xs: 4px;
  --nore-radius-sm: 8px;
  --nore-radius-md: 12px;
  --nore-radius-sticker: 16px;
  --nore-radius-sheet: 18px;
  --nore-radius-pill: 999px;
  --nore-rim-sm: 2px;
  --nore-rim-md: 3px;
  --nore-rim-lg: 5px;
  --nore-shadow-flat: none;
  --nore-shadow-lift: 0 10px 20px -8px rgba(0, 0, 0, 0.65), 0 2px 4px rgba(0, 0, 0, 0.35);
  --nore-shadow-float: 0 24px 48px -12px rgba(0, 0, 0, 0.7), 0 4px 10px rgba(0, 0, 0, 0.4);
  --nore-shadow-phosphor: 0 0 18px rgba(210, 255, 122, 0.38), 0 0 2px rgba(210, 255, 122, 0.8);

  --nore-dur-tap: 90ms;
  --nore-dur-quick: 140ms;
  --nore-dur-base: 220ms;
  --nore-dur-exit: 160ms;
  --nore-dur-peel: 260ms;
  --nore-dur-overlay: 280ms;
  --nore-dur-page: 320ms;
  --nore-dur-stick: 380ms;
  --nore-dur-launch: 900ms;
  --nore-dur-reveal: 1400ms;
  --nore-dur-ambient: 9000ms;
  --nore-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --nore-ease-in: cubic-bezier(0.55, 0, 1, 0.45);
  --nore-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --nore-ease-peel: cubic-bezier(0.45, 0, 0.2, 1);
  --nore-ease-rub: cubic-bezier(0.3, 0, 0.1, 1);
  --nore-spring-stick: linear(0, 0.091 3.6%, 0.263 7.1%, 0.488 10.7%, 0.682 14.3%, 0.860 17.9%, 0.978 21.4%, 1.061 25.0%, 1.099 28.6%, 1.110 32.1%, 1.102 35.7%, 1.081 39.3%, 1.059 42.9%, 1.035 46.4%, 1.017 50.0%, 1.002 53.6%, 0.993 57.1%, 0.989 60.7%, 0.988 64.3%, 0.989 67.9%, 0.991 71.4%, 0.994 75.0%, 0.996 78.6%, 0.998 82.1%, 1.000 85.7%, 1.001 89.3%, 1.001 92.9%, 1.001 96.4%, 1);
  --nore-spring-stick-dur: 445ms;
  --nore-spring-tab: linear(0, 0.056 3.6%, 0.176 7.1%, 0.308 10.7%, 0.457 14.3%, 0.593 17.9%, 0.711 21.4%, 0.805 25.0%, 0.878 28.6%, 0.927 32.1%, 0.966 35.7%, 0.992 39.3%, 1.007 42.9%, 1.016 46.4%, 1.019 50.0%, 1.019 53.6%, 1.018 57.1%, 1.015 60.7%, 1.012 64.3%, 1.009 67.9%, 1.007 71.4%, 1.005 75.0%, 1.003 78.6%, 1.002 82.1%, 1.001 85.7%, 1.000 89.3%, 1.000 92.9%, 1.000 96.4%, 1);
  --nore-spring-tab-dur: 458ms;
  --nore-spring-knob: linear(0, 0.082 3.6%, 0.260 7.1%, 0.472 10.7%, 0.676 14.3%, 0.847 17.9%, 0.973 21.4%, 1.048 25.0%, 1.094 28.6%, 1.109 32.1%, 1.103 35.7%, 1.085 39.3%, 1.062 42.9%, 1.039 46.4%, 1.020 50.0%, 1.005 53.6%, 0.995 57.1%, 0.990 60.7%, 0.988 64.3%, 0.989 67.9%, 0.991 71.4%, 0.993 75.0%, 0.995 78.6%, 0.997 82.1%, 0.999 85.7%, 1.000 89.3%, 1.001 92.9%, 1.001 96.4%, 1);
  --nore-spring-knob-dur: 510ms;
  --nore-spring-soft: linear(0, 0.045 3.6%, 0.145 7.1%, 0.279 10.7%, 0.410 14.3%, 0.533 17.9%, 0.641 21.4%, 0.739 25.0%, 0.813 28.6%, 0.872 32.1%, 0.916 35.7%, 0.949 39.3%, 0.974 42.9%, 0.989 46.4%, 0.999 50.0%, 1.005 53.6%, 1.008 57.1%, 1.010 60.7%, 1.010 64.3%, 1.009 67.9%, 1.008 71.4%, 1.006 75.0%, 1.005 78.6%, 1.004 82.1%, 1.003 85.7%, 1.002 89.3%, 1.001 92.9%, 1.001 96.4%, 1);
  --nore-spring-soft-dur: 663ms;
  --nore-stagger: 45ms;
  --nore-stagger-max: 8;
  --nore-shift-lift: 3px;
  --nore-shift-press: 1px;
  --nore-shift-page: 28px;
  --nore-shift-page-out: 14px;
  --nore-shift-drop: 10px;
  --nore-stick-scale: 1.12;
  --nore-stick-tilt: 4deg;
  --nore-shift-tilt-max: 3deg;
}

[data-event="halloween"] {
  --nore-page: #0b0a0c;
  --nore-page-raised: #151317;
  --nore-slot: #060507;
  --nore-cover: color-mix(in oklab, var(--nore-accent) 9%, #070609);
  --nore-ink: #e9e4dc;
  --nore-ink-soft: #b8b0b6;
}
[data-event="winter"] {
  --nore-page: #11141b;
  --nore-page-raised: #1a1e27;
  --nore-slot: #0a0c11;
  --nore-cover: color-mix(in oklab, var(--nore-accent) 14%, #0d1220);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --nore-shift-lift: 0px;
    --nore-shift-press: 0px;
    --nore-shift-page: 0px;
    --nore-shift-page-out: 0px;
    --nore-shift-drop: 0px;
    --nore-stick-tilt: 0deg;
    --nore-shift-tilt-max: 0deg;
    --nore-stick-scale: 1;
    --nore-spring-stick: cubic-bezier(0.22, 1, 0.36, 1);
    --nore-spring-stick-dur: 140ms;
    --nore-spring-tab: cubic-bezier(0.22, 1, 0.36, 1);
    --nore-spring-tab-dur: 140ms;
    --nore-spring-knob: cubic-bezier(0.22, 1, 0.36, 1);
    --nore-spring-knob-dur: 140ms;
    --nore-spring-soft: cubic-bezier(0.22, 1, 0.36, 1);
    --nore-spring-soft-dur: 140ms;
    --nore-dur-page: 200ms;
    --nore-dur-overlay: 200ms;
    --nore-dur-stick: 200ms;
    --nore-dur-peel: 200ms;
    --nore-dur-launch: 200ms;
    --nore-dur-reveal: 200ms;
  }
}
/* The in-app animation switch: same as reduced motion. */
.no-anim, .no-anim * { transition-duration: 0ms !important; animation-duration: 0ms !important; animation-iteration-count: 1 !important; }
