/* =====================================================================
   GENERATED by common/design/build_tokens.py — do not edit by hand.
   Source of truth: common/design/seeds.json (YakBuildHQ seed).
   Every colour below was derived by rule and verified at WCAG AA before
   this file was written; re-run the generator after changing a seed.
   ===================================================================== */



/* ── light ───────────────────────────────────────────────────────────────── */
html.yw-light {
    --color-base-100:           oklch(99% 0.0042 250);
    --color-base-200:           oklch(96.5% 0.007 250);
    --color-base-300:           oklch(92% 0.0112 250);
    --color-base-content:       oklch(24% 0.021 250);
    --color-primary:            oklch(62% 0.1428 62);
    --color-primary-content:    oklch(18% 0.02 62);
    --color-secondary:          oklch(62% 0.0825 250);
    --color-secondary-content:  oklch(18% 0.02 250);
    --color-accent:             oklch(62% 0.15 45);
    --color-accent-content:     oklch(18% 0.02 45);
    --color-neutral:            oklch(35% 0.028 250);
    --color-neutral-content:    oklch(98% 0.009806 250);
    --color-info:               oklch(48% 0.1019 235);
    --color-info-content:       oklch(98% 0.01 235);
    --color-success:            oklch(48% 0.101 165);
    --color-success-content:    oklch(98% 0.01 165);
    --color-warning:            oklch(48% 0.1014 75);
    --color-warning-content:    oklch(98% 0.01 75);
    --color-error:              oklch(48% 0.13 25);
    --color-error-content:      oklch(98% 0.00971 25);
    --yak-primary-ink:          oklch(49.6% 0.0825 62);
    --yak-primary-on-dark:      oklch(60.56% 0.0825 62);
    --yak-accent-ink:           oklch(50.08% 0.0825 45);
    --yak-primary-tint:         oklch(62% 0.1428 62 / 0.1);
    --yak-accent-tint:          oklch(62% 0.15 45 / 0.1);
    --yak-text-muted:           oklch(40.29% 0.0196 250);
    --yak-text-faint:           oklch(50.76% 0.0196 250);
    --yak-border:               oklch(83% 0.014 250);
    --yak-border-soft:          oklch(90% 0.0098 250);
    --yak-nav-bg:               oklch(99% 0.0042 250 / 0.88);
    --yak-nav-border:           oklch(90% 0.0098 250);
    --yak-nav-fg:               oklch(40.29% 0.0196 250);
    --yak-nav-fg-active:        oklch(49.6% 0.0825 62);
    --yak-nav-hover-bg:         oklch(62% 0.1428 62 / 0.08);
    --yak-hero-wash:            radial-gradient(120% 120% at 50% -20%, oklch(62% 0.1428 62 / 0.12) 0%, transparent 62%);
    --yak-shadow-sm:            0 1px 2px oklch(0% 0 0 / .06);
    --yak-shadow-md:            0 8px 24px oklch(0% 0 0 / .10);
    --yak-brand-gradient:       linear-gradient(135deg, oklch(62% 0.1428 62) 0%, oklch(62% 0.15 45) 100%);
    --yak-brand-gradient-hover: linear-gradient(135deg, oklch(62% 0.15 45) 0%, oklch(62% 0.1428 62) 100%);
}


/* ── Compatibility aliases ────────────────────────────────────────────────
   The ~2,500 Bootstrap-3 call sites in the Wt/JWt products, and every
   per-product <name>-yak-style.css, read the older --accent* / --surface*
   names. Aliasing them onto the generated tokens means adopting the design
   system changes no markup: the old names keep working and now they are
   derived and contrast-verified rather than typed in by hand.
   ──────────────────────────────────────────────────────────────────────── */
html.yw-light {
    --accent-gradient:       var(--yak-brand-gradient);
    --accent-gradient-hover: var(--yak-brand-gradient-hover);
    --accent:                var(--color-primary);
    --accent-strong:         var(--yak-primary-ink);
    --accent-soft:           var(--color-accent);
    --accent-contrast:       var(--color-primary-content);
    --accent-tint:           var(--yak-primary-tint);
    --accent-ink:            var(--yak-primary-ink);
    --primary:               var(--color-primary);
    --primary-strong:        var(--yak-primary-ink);
    --primary-contrast:      var(--color-primary-content);
    --primary-tint:          var(--yak-primary-tint);
    --on-accent:             var(--color-primary-content);
    --bg:                    var(--color-base-200);
    --bg-alt:                var(--color-base-300);
    --surface:               var(--color-base-100);
    --surface-2:             var(--color-base-200);
    --surface-border:        var(--yak-border);
    --surface-border-soft:   var(--yak-border-soft);
    --text:                  var(--color-base-content);
    --text-muted:            var(--yak-text-muted);
    --text-faint:            var(--yak-text-faint);
    --danger:                var(--color-error);
    --success:               var(--color-success);
    --warning:               var(--color-warning);
    --info:                  var(--color-info);
}


/* ── dark ───────────────────────────────────────────────────────────────── */
html.yw-dark {
    --color-base-100:           oklch(24% 0.0042 250);
    --color-base-200:           oklch(19% 0.007 250);
    --color-base-300:           oklch(14% 0.0112 250);
    --color-base-content:       oklch(93% 0.021 250);
    --color-primary:            oklch(70% 0.12 62);
    --color-primary-content:    oklch(18% 0.02 62);
    --color-secondary:          oklch(70% 0.066 250);
    --color-secondary-content:  oklch(18% 0.02 250);
    --color-accent:             oklch(70% 0.12 45);
    --color-accent-content:     oklch(18% 0.02 45);
    --color-neutral:            oklch(75% 0.028 250);
    --color-neutral-content:    oklch(18% 0.02 250);
    --color-info:               oklch(70% 0.104 235);
    --color-info-content:       oklch(18% 0.02 235);
    --color-success:            oklch(70% 0.104 165);
    --color-success-content:    oklch(18% 0.02 165);
    --color-warning:            oklch(70% 0.104 75);
    --color-warning-content:    oklch(18% 0.02 75);
    --color-error:              oklch(70% 0.104 25);
    --color-error-content:      oklch(18% 0.02 25);
    --yak-primary-ink:          oklch(78.63% 0.066 62);
    --yak-primary-on-dark:      oklch(60.45% 0.066 62);
    --yak-accent-ink:           oklch(78.58% 0.066 45);
    --yak-primary-tint:         oklch(70% 0.12 62 / 0.16);
    --yak-accent-tint:          oklch(70% 0.12 45 / 0.16);
    --yak-text-muted:           oklch(73.82% 0.0196 250);
    --yak-text-faint:           oklch(62.32% 0.0196 250);
    --yak-border:               oklch(40% 0.014 250);
    --yak-border-soft:          oklch(33% 0.0098 250);
    --yak-nav-bg:               oklch(24% 0.0042 250 / 0.88);
    --yak-nav-border:           oklch(33% 0.0098 250);
    --yak-nav-fg:               oklch(73.82% 0.0196 250);
    --yak-nav-fg-active:        oklch(78.63% 0.066 62);
    --yak-nav-hover-bg:         oklch(70% 0.12 62 / 0.14);
    --yak-hero-wash:            radial-gradient(120% 120% at 50% -20%, oklch(70% 0.12 62 / 0.16) 0%, transparent 62%);
    --yak-shadow-sm:            0 1px 2px oklch(0% 0 0 / .28);
    --yak-shadow-md:            0 8px 24px oklch(0% 0 0 / .38);
    --yak-brand-gradient:       linear-gradient(135deg, oklch(70% 0.12 62) 0%, oklch(70% 0.12 45) 100%);
    --yak-brand-gradient-hover: linear-gradient(135deg, oklch(70% 0.12 45) 0%, oklch(70% 0.12 62) 100%);
}


/* ── Compatibility aliases ────────────────────────────────────────────────
   The ~2,500 Bootstrap-3 call sites in the Wt/JWt products, and every
   per-product <name>-yak-style.css, read the older --accent* / --surface*
   names. Aliasing them onto the generated tokens means adopting the design
   system changes no markup: the old names keep working and now they are
   derived and contrast-verified rather than typed in by hand.
   ──────────────────────────────────────────────────────────────────────── */
html.yw-dark {
    --accent-gradient:       var(--yak-brand-gradient);
    --accent-gradient-hover: var(--yak-brand-gradient-hover);
    --accent:                var(--color-primary);
    --accent-strong:         var(--yak-primary-ink);
    --accent-soft:           var(--color-accent);
    --accent-contrast:       var(--color-primary-content);
    --accent-tint:           var(--yak-primary-tint);
    --accent-ink:            var(--yak-primary-ink);
    --primary:               var(--color-primary);
    --primary-strong:        var(--yak-primary-ink);
    --primary-contrast:      var(--color-primary-content);
    --primary-tint:          var(--yak-primary-tint);
    --on-accent:             var(--color-primary-content);
    --bg:                    var(--color-base-200);
    --bg-alt:                var(--color-base-300);
    --surface:               var(--color-base-100);
    --surface-2:             var(--color-base-200);
    --surface-border:        var(--yak-border);
    --surface-border-soft:   var(--yak-border-soft);
    --text:                  var(--color-base-content);
    --text-muted:            var(--yak-text-muted);
    --text-faint:            var(--yak-text-faint);
    --danger:                var(--color-error);
    --success:               var(--color-success);
    --warning:               var(--color-warning);
    --info:                  var(--color-info);
}


/* Fallback for a document the server has not stamped yet. */
:root:not(.yw-light):not(.yw-dark) {
    --color-base-100:           oklch(99% 0.0042 250);
    --color-base-200:           oklch(96.5% 0.007 250);
    --color-base-300:           oklch(92% 0.0112 250);
    --color-base-content:       oklch(24% 0.021 250);
    --color-primary:            oklch(62% 0.1428 62);
    --color-primary-content:    oklch(18% 0.02 62);
    --color-secondary:          oklch(62% 0.0825 250);
    --color-secondary-content:  oklch(18% 0.02 250);
    --color-accent:             oklch(62% 0.15 45);
    --color-accent-content:     oklch(18% 0.02 45);
    --color-neutral:            oklch(35% 0.028 250);
    --color-neutral-content:    oklch(98% 0.009806 250);
    --color-info:               oklch(48% 0.1019 235);
    --color-info-content:       oklch(98% 0.01 235);
    --color-success:            oklch(48% 0.101 165);
    --color-success-content:    oklch(98% 0.01 165);
    --color-warning:            oklch(48% 0.1014 75);
    --color-warning-content:    oklch(98% 0.01 75);
    --color-error:              oklch(48% 0.13 25);
    --color-error-content:      oklch(98% 0.00971 25);
    --yak-primary-ink:          oklch(49.6% 0.0825 62);
    --yak-primary-on-dark:      oklch(60.56% 0.0825 62);
    --yak-accent-ink:           oklch(50.08% 0.0825 45);
    --yak-primary-tint:         oklch(62% 0.1428 62 / 0.1);
    --yak-accent-tint:          oklch(62% 0.15 45 / 0.1);
    --yak-text-muted:           oklch(40.29% 0.0196 250);
    --yak-text-faint:           oklch(50.76% 0.0196 250);
    --yak-border:               oklch(83% 0.014 250);
    --yak-border-soft:          oklch(90% 0.0098 250);
    --yak-nav-bg:               oklch(99% 0.0042 250 / 0.88);
    --yak-nav-border:           oklch(90% 0.0098 250);
    --yak-nav-fg:               oklch(40.29% 0.0196 250);
    --yak-nav-fg-active:        oklch(49.6% 0.0825 62);
    --yak-nav-hover-bg:         oklch(62% 0.1428 62 / 0.08);
    --yak-hero-wash:            radial-gradient(120% 120% at 50% -20%, oklch(62% 0.1428 62 / 0.12) 0%, transparent 62%);
    --yak-shadow-sm:            0 1px 2px oklch(0% 0 0 / .06);
    --yak-shadow-md:            0 8px 24px oklch(0% 0 0 / .10);
    --yak-brand-gradient:       linear-gradient(135deg, oklch(62% 0.1428 62) 0%, oklch(62% 0.15 45) 100%);
    --yak-brand-gradient-hover: linear-gradient(135deg, oklch(62% 0.15 45) 0%, oklch(62% 0.1428 62) 100%);
    --accent-gradient:          var(--yak-brand-gradient);
    --accent-gradient-hover:    var(--yak-brand-gradient-hover);
    --accent:                   var(--color-primary);
    --accent-strong:            var(--yak-primary-ink);
    --accent-soft:              var(--color-accent);
    --accent-contrast:          var(--color-primary-content);
    --accent-tint:              var(--yak-primary-tint);
    --accent-ink:               var(--yak-primary-ink);
    --primary:                  var(--color-primary);
    --primary-strong:           var(--yak-primary-ink);
    --primary-contrast:         var(--color-primary-content);
    --primary-tint:             var(--yak-primary-tint);
    --on-accent:                var(--color-primary-content);
    --bg:                       var(--color-base-200);
    --bg-alt:                   var(--color-base-300);
    --surface:                  var(--color-base-100);
    --surface-2:                var(--color-base-200);
    --surface-border:           var(--yak-border);
    --surface-border-soft:      var(--yak-border-soft);
    --text:                     var(--color-base-content);
    --text-muted:               var(--yak-text-muted);
    --text-faint:               var(--yak-text-faint);
    --danger:                   var(--color-error);
    --success:                  var(--color-success);
    --warning:                  var(--color-warning);
    --info:                     var(--color-info);
}


/* Texture: safety hatching — the diagonal of a site barrier, at low contrast
   so it reads as material rather than as a warning. */
.yak-texture {
    background-image: repeating-linear-gradient(
        135deg,
        var(--yak-primary-tint) 0 10px,
        transparent 10px 20px
    );
}
