/* owner: THEME (theme pass 2026-10-19) | contract: DESIGN_BRIEF.md section 3 (tokens), CONTRACTS.md section 18 (modes and skins), OWNER_FEEDBACK_1.md sections 1 and 9
 *
 * GENERATED by web/dev/tools/gen_theme_files.py from web/pub/js/theme.js (the formulas) and web/pub/js/skins.js (DEFAULT_SKIN, the Krystle Bright colours).
 * Edit those two files and run the tool; a self-test fails when this file drifts. web/brand/css/tokens.css is a link to this file.
 *
 * DAY (Light) is the default and the first look, every time: whites, pinks and lavender. data-theme="night" is Evening: a soft twilight plum, never black.
 * data-theme="auto" follows the OS. data-theme is always set explicitly by js/theme-boot.js before the first paint; with no attribute you get Light.
 * Palette rule (OWNER_FEEDBACK_1.md): whites, pinks and purples only. No yellow, gold, amber, orange or champagne. Status colours are green, orchid and raspberry.
 * The --kw-gold-* tokens keep their old NAMES (older files use them) and carry PINK values; new code should say "accent" in prose, never gold.
 * RGB triplets (--kw-gold-rgb: 224 88 159) let glows, panels and scrims be built with rgb(var(--kw-gold-rgb) / .35).
 * Text-safe tokens (--kw-t-*) are for text and thin lines and reach WCAG AA on all four surfaces (--kw-bg-0 to --kw-bg-3). Fills use the plain colours.
 * Nothing in this file is inline style: it is a plain stylesheet (strict CSP safe).
 */

/* ------------------------------------------------------------------ theme independent */
:root{
  /* shape, space, type, motion (DESIGN_BRIEF 3) */
  --kw-r-s:8px; --kw-r-m:14px; --kw-r-l:22px; --kw-r-pill:999px;
  --kw-s-1:4px; --kw-s-2:8px; --kw-s-3:12px; --kw-s-4:16px; --kw-s-5:24px; --kw-s-6:32px; --kw-s-7:48px; --kw-s-8:64px;
  --kw-gutter:16px; --kw-tap:48px; --kw-maxw:1200px; --kw-sheet-w:min(960px,100vw);
  --kw-font-display:"Cormorant Garamond","Iowan Old Style","Times New Roman",serif;
  --kw-font-ui:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --kw-font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;
  --kw-font-script:"Allura","Snell Roundhand",cursive;
  --kw-ease:cubic-bezier(.2,.8,.2,1); --kw-ease-io:cubic-bezier(.65,0,.35,1);
  --kw-t-fast:120ms; --kw-t-med:240ms; --kw-t-slow:480ms; --kw-t-cine:900ms;
  --kw-z-world:0; --kw-z-hud:10; --kw-z-sheet:30; --kw-z-nav:40; --kw-z-modal:60; --kw-z-toast:80; --kw-z-tour:90; --kw-z-saver:100;
}

/* ------------------------------------------------------------------ day (Light): the default */
:root,
:root[data-theme="day"]{
  color-scheme:light;
  --kw-bg-0:#fffafc;
  --kw-bg-0-rgb:255 250 252;
  --kw-bg-1:#ffffff;
  --kw-bg-1-rgb:255 255 255;
  --kw-bg-2:#fdeef5;
  --kw-bg-2-rgb:253 238 245;
  --kw-bg-3:#f4e8fa;
  --kw-bg-3-rgb:244 232 250;
  --kw-ink:#1d1620;
  --kw-ink-rgb:29 22 32;
  --kw-ink-2:#3b2a5a;
  --kw-ink-3:#5f5078;
  --kw-idle:#8a7f9a;
  --kw-idle-rgb:138 127 154;
  --kw-gold:#e0589f;
  --kw-gold-rgb:224 88 159;
  --kw-gold-hi:#f58fbe;
  --kw-gold-hi-rgb:245 143 190;
  --kw-gold-lo:#a3336f;
  --kw-gold-lo-rgb:163 51 111;
  --kw-accent:#e0589f;
  --kw-accent-rgb:224 88 159;
  --kw-accent-hi:#f58fbe;
  --kw-accent-hi-rgb:245 143 190;
  --kw-accent-lo:#a3336f;
  --kw-accent-lo-rgb:163 51 111;
  --kw-rose:#f6b8d4;
  --kw-rose-rgb:246 184 212;
  --kw-rose-deep:#a3336f;
  --kw-rose-deep-rgb:163 51 111;
  --kw-blush:#f9d3e5;
  --kw-blush-rgb:249 211 229;
  --kw-rose-gold:#f6a5cb;
  --kw-rose-gold-rgb:246 165 203;
  --kw-violet:#8f7cff;
  --kw-violet-rgb:143 124 255;
  --kw-violet-hi:#9a85ff;
  --kw-violet-hi-rgb:154 133 255;
  --kw-violet-deep:#5a48c7;
  --kw-violet-deep-rgb:90 72 199;
  --kw-mint:#b79cff;
  --kw-mint-rgb:183 156 255;
  --kw-mint-deep:#7a5ac8;
  --kw-mint-deep-rgb:122 90 200;
  --kw-rose-gold-lo:#eb7fb5;
  --kw-ok:#2faa7e;
  --kw-ok-rgb:47 170 126;
  --kw-gain:#2faa7e;
  --kw-gain-rgb:47 170 126;
  --kw-warn:#b455c8;
  --kw-warn-rgb:180 85 200;
  --kw-loss:#d6336c;
  --kw-loss-rgb:214 51 108;
  --kw-wait:#5a48c7;
  --kw-wait-rgb:90 72 199;
  --kw-t-gold:#a3336f;
  --kw-t-accent:#a3336f;
  --kw-t-rose:#a3336f;
  --kw-t-violet:#5a48c7;
  --kw-t-mint:#207456;
  --kw-t-gain:#207456;
  --kw-t-ok:#207456;
  --kw-t-loss:#bc2d5f;
  --kw-t-warn:#9747a8;
  --kw-on-gold:#2a0f24;
  --kw-on-accent:#2a0f24;
  --kw-focus:#5a48c7;
  --kw-foil:linear-gradient(135deg,#f58fbe 0%,#e0589f 45%,#f6a5cb 75%,#eb7fb5 100%);
  --kw-line:rgb(163 51 111 / .20);
  --kw-line-2:rgb(163 51 111 / .42);
  --kw-panel-bg:linear-gradient(160deg,rgb(255 255 255 / .96),rgb(253 238 245 / .92));
  --kw-scrim:rgb(255 250 252 / .70);
  --kw-glow-gold:0 1px 0 rgb(255 255 255 / .9) inset,0 8px 24px rgb(163 51 111 / .16);
  --kw-glow-rose:0 1px 0 rgb(255 255 255 / .9) inset,0 8px 24px rgb(163 51 111 / .16);
  --kw-glow-violet:0 1px 0 rgb(255 255 255 / .9) inset,0 8px 24px rgb(90 72 199 / .16);
  --kw-glow-mint:0 1px 0 rgb(255 255 255 / .9) inset,0 8px 24px rgb(122 90 200 / .16);
  --kw-shadow:0 14px 36px rgb(163 51 111 / .18);
  --kw-hero-shadow:none;
  --kw-hero-glow:0 0 0;
  --kw-hero-glow-a:0;
  --kw-chrome-bg:rgb(255 250 252 / .84);
  --kw-tour-dim:rgb(44 32 68 / .55);
  --kw-page-bg:linear-gradient(180deg,rgb(255 255 255 / .98),rgb(255 250 252 / .98));
  --kw-marble:radial-gradient(120% 80% at 8% 0%,rgb(246 165 203 / .10),transparent 60%),linear-gradient(115deg,transparent 40%,rgb(163 51 111 / .06) 41%,transparent 43%);
  --kw-glow-accent:0 1px 0 rgb(255 255 255 / .9) inset,0 8px 24px rgb(163 51 111 / .16);
}

/* ------------------------------------------------------------------ night (Evening): a soft twilight plum */
:root[data-theme="night"]{
  color-scheme:dark;
  --kw-bg-0:#2a2044;
  --kw-bg-0-rgb:42 32 68;
  --kw-bg-1:#342a52;
  --kw-bg-1-rgb:52 42 82;
  --kw-bg-2:#3e3361;
  --kw-bg-2-rgb:62 51 97;
  --kw-bg-3:#4a3e70;
  --kw-bg-3-rgb:74 62 112;
  --kw-ink:#fff7fc;
  --kw-ink-rgb:255 247 252;
  --kw-ink-2:#eadcf6;
  --kw-ink-3:#c9b9e4;
  --kw-idle:#a798c4;
  --kw-idle-rgb:167 152 196;
  --kw-gold:#f06aa9;
  --kw-gold-rgb:240 106 169;
  --kw-gold-hi:#ff9ccb;
  --kw-gold-hi-rgb:255 156 203;
  --kw-gold-lo:#c13584;
  --kw-gold-lo-rgb:193 53 132;
  --kw-accent:#f06aa9;
  --kw-accent-rgb:240 106 169;
  --kw-accent-hi:#ff9ccb;
  --kw-accent-hi-rgb:255 156 203;
  --kw-accent-lo:#c13584;
  --kw-accent-lo-rgb:193 53 132;
  --kw-rose:#f6b8d4;
  --kw-rose-rgb:246 184 212;
  --kw-rose-deep:#d97aa9;
  --kw-rose-deep-rgb:217 122 169;
  --kw-blush:#f9d3e5;
  --kw-blush-rgb:249 211 229;
  --kw-rose-gold:#f6a5cb;
  --kw-rose-gold-rgb:246 165 203;
  --kw-violet:#a99aff;
  --kw-violet-rgb:169 154 255;
  --kw-violet-hi:#c0b3ff;
  --kw-violet-hi-rgb:192 179 255;
  --kw-violet-deep:#8f7cff;
  --kw-violet-deep-rgb:143 124 255;
  --kw-mint:#c8b2ff;
  --kw-mint-rgb:200 178 255;
  --kw-mint-deep:#a58bff;
  --kw-mint-deep-rgb:165 139 255;
  --kw-rose-gold-lo:#f388ba;
  --kw-ok:#4fd3a0;
  --kw-ok-rgb:79 211 160;
  --kw-gain:#4fd3a0;
  --kw-gain-rgb:79 211 160;
  --kw-warn:#d99cf0;
  --kw-warn-rgb:217 156 240;
  --kw-loss:#ff7aa2;
  --kw-loss-rgb:255 122 162;
  --kw-wait:#c0b3ff;
  --kw-wait-rgb:192 179 255;
  --kw-t-gold:#ff9ccb;
  --kw-t-accent:#ff9ccb;
  --kw-t-rose:#f6b8d4;
  --kw-t-violet:#c0b3ff;
  --kw-t-mint:#4fd3a0;
  --kw-t-gain:#4fd3a0;
  --kw-t-ok:#4fd3a0;
  --kw-t-loss:#ff95b5;
  --kw-t-warn:#dba0f1;
  --kw-on-gold:#2a0f24;
  --kw-on-accent:#2a0f24;
  --kw-focus:#ff9ccb;
  --kw-foil:linear-gradient(135deg,#ff9ccb 0%,#f06aa9 45%,#f6a5cb 75%,#f388ba 100%);
  --kw-line:rgb(255 156 203 / .20);
  --kw-line-2:rgb(255 156 203 / .38);
  --kw-panel-bg:linear-gradient(160deg,rgb(62 51 97 / .92),rgb(52 42 82 / .90));
  --kw-scrim:rgb(42 32 68 / .62);
  --kw-glow-gold:0 0 0 1px rgb(240 106 169 / .35),0 0 22px rgb(240 106 169 / .20),0 0 60px rgb(240 106 169 / .08);
  --kw-glow-rose:0 0 0 1px rgb(246 184 212 / .35),0 0 22px rgb(246 184 212 / .20),0 0 60px rgb(246 184 212 / .08);
  --kw-glow-violet:0 0 0 1px rgb(169 154 255 / .35),0 0 22px rgb(169 154 255 / .20),0 0 60px rgb(169 154 255 / .08);
  --kw-glow-mint:0 0 0 1px rgb(200 178 255 / .35),0 0 22px rgb(200 178 255 / .20),0 0 60px rgb(200 178 255 / .08);
  --kw-shadow:0 18px 48px rgb(0 0 0 / .45);
  --kw-hero-shadow:0 0 18px rgb(240 106 169 / .35);
  --kw-hero-glow:0 0 18px;
  --kw-hero-glow-a:.35;
  --kw-chrome-bg:rgb(36 27 58 / .82);
  --kw-tour-dim:rgb(19 14 31 / .68);
  --kw-page-bg:linear-gradient(180deg,rgb(52 42 82 / .97),rgb(42 32 68 / .98));
  --kw-marble:radial-gradient(120% 80% at 8% 0%,rgb(255 247 252 / .06),transparent 60%),linear-gradient(115deg,transparent 40%,rgb(246 184 212 / .06) 41%,transparent 43%);
  --kw-glow-accent:0 0 0 1px rgb(240 106 169 / .35),0 0 22px rgb(240 106 169 / .20),0 0 60px rgb(240 106 169 / .08);
}

/* ------------------------------------------------------------------ auto: Evening when the OS is dark, Light otherwise */
@media (prefers-color-scheme:dark){
  :root[data-theme="auto"]{
    color-scheme:dark;
    --kw-bg-0:#2a2044;
    --kw-bg-0-rgb:42 32 68;
    --kw-bg-1:#342a52;
    --kw-bg-1-rgb:52 42 82;
    --kw-bg-2:#3e3361;
    --kw-bg-2-rgb:62 51 97;
    --kw-bg-3:#4a3e70;
    --kw-bg-3-rgb:74 62 112;
    --kw-ink:#fff7fc;
    --kw-ink-rgb:255 247 252;
    --kw-ink-2:#eadcf6;
    --kw-ink-3:#c9b9e4;
    --kw-idle:#a798c4;
    --kw-idle-rgb:167 152 196;
    --kw-gold:#f06aa9;
    --kw-gold-rgb:240 106 169;
    --kw-gold-hi:#ff9ccb;
    --kw-gold-hi-rgb:255 156 203;
    --kw-gold-lo:#c13584;
    --kw-gold-lo-rgb:193 53 132;
    --kw-accent:#f06aa9;
    --kw-accent-rgb:240 106 169;
    --kw-accent-hi:#ff9ccb;
    --kw-accent-hi-rgb:255 156 203;
    --kw-accent-lo:#c13584;
    --kw-accent-lo-rgb:193 53 132;
    --kw-rose:#f6b8d4;
    --kw-rose-rgb:246 184 212;
    --kw-rose-deep:#d97aa9;
    --kw-rose-deep-rgb:217 122 169;
    --kw-blush:#f9d3e5;
    --kw-blush-rgb:249 211 229;
    --kw-rose-gold:#f6a5cb;
    --kw-rose-gold-rgb:246 165 203;
    --kw-violet:#a99aff;
    --kw-violet-rgb:169 154 255;
    --kw-violet-hi:#c0b3ff;
    --kw-violet-hi-rgb:192 179 255;
    --kw-violet-deep:#8f7cff;
    --kw-violet-deep-rgb:143 124 255;
    --kw-mint:#c8b2ff;
    --kw-mint-rgb:200 178 255;
    --kw-mint-deep:#a58bff;
    --kw-mint-deep-rgb:165 139 255;
    --kw-rose-gold-lo:#f388ba;
    --kw-ok:#4fd3a0;
    --kw-ok-rgb:79 211 160;
    --kw-gain:#4fd3a0;
    --kw-gain-rgb:79 211 160;
    --kw-warn:#d99cf0;
    --kw-warn-rgb:217 156 240;
    --kw-loss:#ff7aa2;
    --kw-loss-rgb:255 122 162;
    --kw-wait:#c0b3ff;
    --kw-wait-rgb:192 179 255;
    --kw-t-gold:#ff9ccb;
    --kw-t-accent:#ff9ccb;
    --kw-t-rose:#f6b8d4;
    --kw-t-violet:#c0b3ff;
    --kw-t-mint:#4fd3a0;
    --kw-t-gain:#4fd3a0;
    --kw-t-ok:#4fd3a0;
    --kw-t-loss:#ff95b5;
    --kw-t-warn:#dba0f1;
    --kw-on-gold:#2a0f24;
    --kw-on-accent:#2a0f24;
    --kw-focus:#ff9ccb;
    --kw-foil:linear-gradient(135deg,#ff9ccb 0%,#f06aa9 45%,#f6a5cb 75%,#f388ba 100%);
    --kw-line:rgb(255 156 203 / .20);
    --kw-line-2:rgb(255 156 203 / .38);
    --kw-panel-bg:linear-gradient(160deg,rgb(62 51 97 / .92),rgb(52 42 82 / .90));
    --kw-scrim:rgb(42 32 68 / .62);
    --kw-glow-gold:0 0 0 1px rgb(240 106 169 / .35),0 0 22px rgb(240 106 169 / .20),0 0 60px rgb(240 106 169 / .08);
    --kw-glow-rose:0 0 0 1px rgb(246 184 212 / .35),0 0 22px rgb(246 184 212 / .20),0 0 60px rgb(246 184 212 / .08);
    --kw-glow-violet:0 0 0 1px rgb(169 154 255 / .35),0 0 22px rgb(169 154 255 / .20),0 0 60px rgb(169 154 255 / .08);
    --kw-glow-mint:0 0 0 1px rgb(200 178 255 / .35),0 0 22px rgb(200 178 255 / .20),0 0 60px rgb(200 178 255 / .08);
    --kw-shadow:0 18px 48px rgb(0 0 0 / .45);
    --kw-hero-shadow:0 0 18px rgb(240 106 169 / .35);
    --kw-hero-glow:0 0 18px;
    --kw-hero-glow-a:.35;
    --kw-chrome-bg:rgb(36 27 58 / .82);
    --kw-tour-dim:rgb(19 14 31 / .68);
    --kw-page-bg:linear-gradient(180deg,rgb(52 42 82 / .97),rgb(42 32 68 / .98));
    --kw-marble:radial-gradient(120% 80% at 8% 0%,rgb(255 247 252 / .06),transparent 60%),linear-gradient(115deg,transparent 40%,rgb(246 184 212 / .06) 41%,transparent 43%);
    --kw-glow-accent:0 0 0 1px rgb(240 106 169 / .35),0 0 22px rgb(240 106 169 / .20),0 0 60px rgb(240 106 169 / .08);
  }
}

/* The art tokens (--kw-bld-*, --kw-sc-*, --kw-ag-*) and the character palette (--kw-ch-*) live in web/pub/js/art/art.css (the art's own stylesheet). Load it after this file. */
