/* tokens/fonts.css → self-host (vendor/fonts) */
/* Self-host Google Fonts (Rubik, Nunito, JetBrains Mono): подмножества cyrillic + latin. Лицензия: OFL.txt. */
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('../vendor/fonts/JetBrainsMono-cyrillic-1.woff2?v=26c9ed51') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('../vendor/fonts/JetBrainsMono-latin-1.woff2?v=cb182fee') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 400; font-display: swap; src: url('../vendor/fonts/Nunito-cyrillic-1.woff2?v=63b14e3e') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 400; font-display: swap; src: url('../vendor/fonts/Nunito-latin-1.woff2?v=ba344451') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 600; font-display: swap; src: url('../vendor/fonts/Nunito-cyrillic-1.woff2?v=63b14e3e') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 600; font-display: swap; src: url('../vendor/fonts/Nunito-latin-1.woff2?v=ba344451') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 700; font-display: swap; src: url('../vendor/fonts/Nunito-cyrillic-1.woff2?v=63b14e3e') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 700; font-display: swap; src: url('../vendor/fonts/Nunito-latin-1.woff2?v=ba344451') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 800; font-display: swap; src: url('../vendor/fonts/Nunito-cyrillic-1.woff2?v=63b14e3e') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 800; font-display: swap; src: url('../vendor/fonts/Nunito-latin-1.woff2?v=ba344451') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 500; font-display: swap; src: url('../vendor/fonts/Rubik-cyrillic-1.woff2?v=bdb2b33a') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 500; font-display: swap; src: url('../vendor/fonts/Rubik-latin-1.woff2?v=691cd1d9') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 700; font-display: swap; src: url('../vendor/fonts/Rubik-cyrillic-1.woff2?v=bdb2b33a') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 700; font-display: swap; src: url('../vendor/fonts/Rubik-latin-1.woff2?v=691cd1d9') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 900; font-display: swap; src: url('../vendor/fonts/Rubik-cyrillic-1.woff2?v=bdb2b33a') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 900; font-display: swap; src: url('../vendor/fonts/Rubik-latin-1.woff2?v=691cd1d9') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* tokens/colors.css */
:root{
/* Хмель — primary amber */
--amber-100:#FFF1CC;--amber-300:#FFD066;--amber-500:#F2A61A;--amber-600:#D98A0B;--amber-700:#A8650A;
/* Медь — котёл */
--copper-400:#D9834A;--copper-500:#B8622A;--copper-700:#8A431C;
/* Дерево — ink & outlines */
--wood-500:#8C6141;--wood-700:#5C3A22;--wood-900:#3B2314;
/* Мох — Ленивец, листья */
--moss-100:#E6F0D6;--moss-300:#9BC26A;--moss-500:#5E8C3A;--moss-700:#3F6326;
/* Пена / крем — surfaces */
--cream-50:#FFF9EE;--cream-100:#FBF0DC;--cream-200:#F1E2C4;--cream-300:#E3CFA6;--foam:#FFFFFF;
/* Шерсть ленивца */
--fur-300:#D8C3A3;--fur-500:#A98B6A;--fur-700:#6E5540;
/* Андон — semantic */
--andon-red:#E2453C;--andon-red-soft:#FBE0DE;--andon-yellow:#F2C41A;--andon-yellow-soft:#FFF3C2;--andon-green:#4CAF5A;--andon-green-soft:#DDF3E0;--andon-blue:#3F86C6;--andon-blue-soft:#DCEBF8;
/* Semantic aliases */
--bg-page:var(--cream-50);--bg-sunken:var(--cream-100);--surface-card:var(--foam);--surface-panel:var(--cream-100);--surface-dark:var(--wood-900);
--text-primary:var(--wood-900);--text-secondary:var(--wood-700);--text-muted:var(--wood-500);--text-on-dark:var(--cream-50);--text-on-accent:var(--wood-900);
--border-ink:var(--wood-900);--border-soft:var(--cream-300);
--accent:var(--amber-500);--accent-hover:var(--amber-300);--accent-press:var(--amber-600);--accent-shadow:var(--amber-700);
--secondary:var(--moss-500);--secondary-hover:var(--moss-300);--secondary-shadow:var(--moss-700);
--link:var(--copper-500);--link-hover:var(--copper-700);
--focus-ring:var(--andon-blue);
}

/* tokens/typography.css */
:root{
--font-display:"Rubik","Arial Rounded MT Bold",system-ui,sans-serif;
--font-body:"Nunito",system-ui,sans-serif;
--font-mono:"JetBrains Mono",ui-monospace,monospace;
--text-hero:48px;--text-h1:36px;--text-h2:28px;--text-h3:22px;--text-h4:18px;
--text-body:16px;--text-small:14px;--text-caption:12px;--text-metric:40px;
--leading-tight:1.1;--leading-snug:1.25;--leading-body:1.5;
--weight-display:900;--weight-heading:700;--weight-body:400;--weight-bold:700;--weight-extra:800;
--tracking-display:-0.01em;--tracking-caps:0.08em;
}

/* tokens/spacing.css */
:root{
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;
--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-pill:999px;
--outline-w:2px;--outline-w-thick:3px;
--hit-min:44px;--control-h:44px;--control-h-sm:36px;--control-h-lg:56px;
--container-game:1440px;--sidebar-w:280px;
}

/* tokens/effects.css */
:root{
/* Cartoon hard shadows (no blur) */
--shadow-hard-sm:0 3px 0 var(--wood-900);--shadow-hard:0 5px 0 var(--wood-900);--shadow-hard-lg:0 8px 0 var(--wood-900);
--shadow-accent:0 5px 0 var(--amber-700);--shadow-secondary:0 5px 0 var(--moss-700);
/* Soft ambient for floating layers */
--shadow-float:0 12px 32px rgba(59,35,20,.18);--shadow-inset:inset 0 3px 0 rgba(59,35,20,.12);
/* Motion — bouncy, cartoon */
--ease-bounce:cubic-bezier(.34,1.56,.64,1); /* @kind other */
--ease-out:cubic-bezier(.2,.8,.2,1); /* @kind other */
--dur-fast:120ms; /* @kind other */
--dur-base:200ms; /* @kind other */
--dur-slow:400ms; /* @kind other */
/* Backgrounds */
--pattern-hops:radial-gradient(circle at 1px 1px, rgba(59,35,20,.07) 1.5px, transparent 0); /* @kind other */
--pattern-size:22px 22px;
--gradient-beer:linear-gradient(180deg,var(--amber-300) 0%,var(--amber-500) 60%,var(--amber-600) 100%);
--overlay-scrim:rgba(59,35,20,.55);
}

/* tokens/base.css */
html{background:var(--bg-page);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}
body{margin:0}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--weight-display);line-height:var(--leading-tight);letter-spacing:var(--tracking-display);margin:0}
a{color:var(--link);text-decoration:none;font-weight:var(--weight-bold)}a:hover{color:var(--link-hover);text-decoration:underline}
:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}

