/* KERR-DS 2026-10-28: one design system for every page (Errol: "run the whole UI through ChatGPT, Google Gemini and rebuild it").
   Merged from the ChatGPT design director review and the Gemini Pro review of 18 pages (Ai Profile doc claude/kerr-design-system-2026-10-28.md).
   Loaded on every HTML page by functions/_middleware.js, which also tags <html data-kp="..."> with the page (all /weather tabs are "wx"),
   so page rules below never leak. Typography, color and chrome only: no layout, data or behavior. No em dashes. */
:root{
  --k-bg:#090c11; --k-surface:#11161e; --k-raised:#19212b; --k-line:#2a3440;
  --k-text:#f3f5f7; --k-text2:#b6c0cb; --k-text3:#8996a5;
  --k-gold:#E3AF25; --k-gold-soft:#322a18; --k-go:#35c996; --k-caution:#e3a33a; --k-nogo:#ef6b6b;
  --k-r-lg:16px; --k-r:12px;
}
/* One gold. Bright yellow and per-category rainbow accents retire (both reviews: "several products sharing one gold"). */
html body, html body *{ --mx-sig:#E3AF25 !important; }
html[data-kp="tools"] [style*="--accent"]{ --accent:#E3AF25 !important; }
html[data-kp="tools"] .deals-header h2, html[data-kp="tools"] [style*="#FFD700"]{ background:none !important; -webkit-text-fill-color:currentColor !important; color:#E3AF25 !important; }

/* Buttons: primary gold, secondary outline, 48 px, 12 px radius, sentence case (both reviews) */
:is(html[data-kp="equipment"],html[data-kp="about"],html[data-kp="diy"],html[data-kp="contact"],html[data-kp="home"],html[data-kp="tools"]) :is(.btn.btn-pri, .mx-btn.mx-btn-pri, .subsurf-btn-primary, .kdc-form-toggle){
  min-height:48px !important; border-radius:12px !important; font:700 16px/1.2 Inter,system-ui,sans-serif !important; letter-spacing:0 !important; text-transform:none !important;
  background:#E3AF25 !important; border-color:#E3AF25 !important; color:#0b0f17 !important; box-shadow:none !important; display:inline-flex !important; align-items:center; justify-content:center;
}
:is(html[data-kp="equipment"],html[data-kp="about"],html[data-kp="diy"],html[data-kp="contact"],html[data-kp="home"],html[data-kp="tools"]) :is(.btn.btn-out, .mx-btn:not(.mx-btn-pri):not(.mx-btn-text), .subsurf-btn-secondary, .dc-more-btn, #mxMoreRows){
  min-height:48px !important; border-radius:12px !important; font:600 16px/1.2 Inter,system-ui,sans-serif !important; letter-spacing:0 !important; text-transform:none !important;
  background:transparent !important; border:1px solid #3a4656 !important; color:#f3f5f7 !important; display:inline-flex !important; align-items:center; justify-content:center;
}
html[data-kp="equipment"] .mx-btn.mx-btn-text{ text-transform:none !important; letter-spacing:0 !important; font:600 16px/1.2 Inter,system-ui,sans-serif !important; color:#E3AF25 !important; }

/* Editorial reading size for a 75 year old reader: body copy 16 px, 1.6 line height (both reviews) */
:is(html[data-kp="about"],html[data-kp="contact"],html[data-kp="diy"],html[data-kp="equipment"],html[data-kp="blog"],html[data-kp="weather-blog"],html[data-kp="tools"]) main p:not([class]){ font-size:16px !important; line-height:1.6 !important; }
:is(html[data-kp="blog"],html[data-kp="weather-blog"]) .post-excerpt, :is(html[data-kp="blog"],html[data-kp="weather-blog"]) .post-summary{ font-size:16px !important; line-height:1.55 !important; }

/* The monospace face retires: components that name "JetBrains Mono" directly now get Inter's letterforms (same variable file the site
   already loads from Google Fonts), so every number and label reads in one face. Code blocks keep the system monospace. */
@font-face{ font-family:"JetBrains Mono"; font-style:normal; font-weight:100 900; font-display:swap;
  src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2) 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; }
html[data-kp] :is(code, pre, kbd, samp){ font-family:ui-monospace,SFMono-Regular,Menlo,monospace !important; }

/* One reading face: every page's --mono now means Inter with even-width numbers (both reviews: no monospace as the reading face) */
html[data-kp], html[data-kp] body, html[data-kp] body *{ --mono:'Inter',system-ui,-apple-system,sans-serif !important; --font-mono:'Inter',system-ui,-apple-system,sans-serif !important; }
html[data-kp] body{ font-variant-numeric:normal; }
/* tnum in Inter also widens the hyphen ("I - 80"), so tabular figures only where numbers line up */
html[data-kp] :is(table, svg, [class*="temp"], [class*="num"], [class*="stat"], .fc-card, .d80-h, .d80-sx b){ font-variant-numeric:tabular-nums; }

/* Generated: every small uppercase or monospace label seen on the 18 pages, in sentence case Inter, 13 px floor */
:is(html[data-kp="about"]) :is(.sec-lbl.adc-lbl, .footer-inner > p){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
:is(html[data-kp="about"]) :is(.about-jump > a, .live-lbl, .tl-year, .vid-tag){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important;font-size:13.0px!important}
:is(html[data-kp="about"],html[data-kp="blog"],html[data-kp="diy"],html[data-kp="equipment"],html[data-kp="home"],html[data-kp="tools"],html[data-kp="weather-blog"]) :is(.pwa-dl-title){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
:is(html[data-kp="about"],html[data-kp="blog"],html[data-kp="diy"],html[data-kp="equipment"],html[data-kp="home"],html[data-kp="weather-blog"]) :is(#pwa-ba, #pwa-bi){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
:is(html[data-kp="about"],html[data-kp="contact"],html[data-kp="diy"]) :is(.hero-tag){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important;font-size:13.0px!important}
:is(html[data-kp="about"],html[data-kp="contact"],html[data-kp="diy"],html[data-kp="equipment"]) :is(.btn.btn-pri){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
:is(html[data-kp="about"],html[data-kp="contact"],html[data-kp="diy"],html[data-kp="equipment"]) :is(.btn.btn-out){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important;font-size:13.0px!important}
:is(html[data-kp="about"],html[data-kp="contact"],html[data-kp="diy"],html[data-kp="equipment"],html[data-kp="tools"]) :is(.sec-lbl){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important;font-size:13.0px!important}
:is(html[data-kp="blog"]) :is(.post-badge){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important;font-size:13.0px!important}
:is(html[data-kp="blog"],html[data-kp="weather-blog"]) :is(.feed-header > h2){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
:is(html[data-kp="blog"],html[data-kp="weather-blog"]) :is(.blog-hero-tag, .post-date, .post-tag, .quick-share-btn, .post-toggle){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important;font-size:13.0px!important}
:is(html[data-kp="contact"]) :is(#ct-quote > p){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
:is(html[data-kp="contact"]) :is(.pri > small){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important;font-size:13.0px!important}
:is(html[data-kp="crew-weather"]) :is(.asph-total-unit){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
:is(html[data-kp="crew-weather"]) :is(.cw3-top > b, .asph-unit, #fcConcCopy, #fcConcClear, .knc-skill > span, .knc-feed > span, #bcPrecipCrewLegend > span, #bcBiasCrew > div, #bcBiasContentCrew > div, #accContent > div){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important;font-size:13.0px!important}
:is(html[data-kp="crew-weather"],html[data-kp="ski-day"],html[data-kp="wx"]) :is(.xc-lab > span, .xc-wh > b, .xc-m > span, .xc-m > output, .xc-m.c > span, .xc-m.c > output, .an.c){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important;font-size:13.0px!important}
:is(html[data-kp="crew-weather"],html[data-kp="tools"]) :is(#pwa-btn-android, #pwa-btn-ios){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
:is(html[data-kp="diy"]) :is(.btn.btn-pri.kdc-form-toggle){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
:is(html[data-kp="diy"]) :is(.hs-lbl, .corner-tag, .diy-step-photo > figcaption, .share-label, .diy-share-btn, .diy-step-gear, .dp-cat, .dp-cta, .pipe-status, .pipe-progress-lbl > span, .sfh-badge, .hp-chip-cat-toggle, .hp-sfh-amazon-btn, .hp-sfh-stat > span){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important;font-size:13.0px!important}
:is(html[data-kp="equipment"]) :is(.mx-btn.mx-btn-pri, .mx-btn, .mx-btn.mx-btn-text, .mx-jr-links.mx-jr-row > a, .icfg-title, .subsurf-btn.subsurf-btn-primary, .subsurf-btn.subsurf-btn-secondary, .subsurf-adv-label, .dc-more-btn, .subsurf-find, .subsurf-details > summary, #mxMoreRows, .cat-tab, .lsc-cta, .used-eq-checklist-summary > span){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
:is(html[data-kp="equipment"]) :is(.jr-card-tag, .jr-brochure-details > summary, .jr-brochure-dl, .icfg-label, .icfg-check, .jr-card-ext-link, .jr-pricing-note > strong, .jr-spec-btn, .subsurf-eyebrow, .subsurf-dealer-label, .subsurf-chip, .subsurf-safety-cap, .subsurf-safety-badge, .subsurf-threat-tag.subsurf-threat-tag-red, .subsurf-threat-tag.subsurf-threat-tag-blue, .subsurf-threat-tag.subsurf-threat-tag-yellow, .subsurf-threat-tag.subsurf-threat-tag-cyan, .subsurf-threat-tag.subsurf-threat-tag-green, .subsurf-mfr-label, .mx-drive.mx-drive-track, .mx-drive.mx-drive-wheel, .featured-att-overlay-tag, .a-tag, .a-soon, .placeholder-note > strong, .cat-tab-count, .mt-browse-link){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important;font-size:13.0px!important}
:is(html[data-kp="home"]) :is(.hdc-llm > summary){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
:is(html[data-kp="home"]) :is(.hp3-kicker, .small, .jl-now > span, #hpWxEy, .wx-top > b, .crs-btn > span, #hpWxIntel > b, .ww-head > span, .hdc-acc-eb, .eyebrow, .st-cat, .eyebrow.hp3-rv.in, .chip.chip-blue, .chip.chip-amber, .chip.chip-green, .blog-eyebrow){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important;font-size:13.0px!important}
:is(html[data-kp="ski-day"]) :is(#fcSummary > span, .s-caution){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
:is(html[data-kp="ski-day"]) :is(.ksp-l, .sd-kicker, .sd-call-k, .sd-call-top > b, #sdUpdated, #sdSeason > b, .k, .skc-lab > b, .fc-detail-label, .xc-lab > b, .sd-camk, .sd-camgroup-h, .sd-camgroup-h > span){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important;font-size:13.0px!important}
:is(html[data-kp="ski-day"],html[data-kp="wx"]) :is(.skc-lab > span){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important;font-size:13.0px!important}
:is(html[data-kp="tools"]) :is(.deals-header > h2, #category-nav > p, .bat-chips > a, .ajb-title){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
:is(html[data-kp="tools"]) :is(.kh-badge, .last-updated, .sc-brand, .sc-badge.flex, .kv-tag, .kv-tag.kv-tag-stamp, .ajb-cta){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important;font-size:13.0px!important}
:is(html[data-kp="weather-blog"]) :is(#kerrWxTabs > a, #lfnDate, .wg-chip){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important;font-size:13.0px!important}
:is(html[data-kp="wx"]) :is(.wxa-cat, #accuracyContent > div){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
:is(html[data-kp="wx"]) :is(.wx3-top > b, .an.n, .kr-mlab, .kpm-eye, .wxa-kick, .wxa-kick > b, .wxa-lab, .on > b, .wxa-lab > span, .wxa-days > span, .wxa-layers > button, .wxa-chip, .wxa-chip > b, .wxa-tl > span, .sat-toggle, .noaa-card-title, .ch-title, .mv-label, .model-btn, .param-btn, .ksc-k, .ksc-s > b, .ksc-s.hot > b, .kso-tab, .wxst-kick, .wxst-kick > b, .l, .eta, .wxd-links > a, .gh, .ksd-h, .ksd-h > span, .ksd-lseg.ob > span, .ksd-lring > span, .ksd-lseg.fc > span, .ksd-lseg.fc.thin > span, .ksd-tab, .ksd-tab.ksd-cum, .ksd-lg.ksd-lg-k, .ksd-lg, .ksd-btc.k > span, .ksd-btc.e > span, .ksd-btc.n > span, .ksd-dd-row.ksd-dd-head > span, .agree > th, .k > th, .ksd-smn.g > b, .ksd-smn.g > span, .ksd-smn.n > b, .ksd-smn.n > span, .kc-head > span, .kx-ask-h > b, #kcBadge, .intel-card-title, .wxv-kick, .wxv-kick > b, .lb, .wxv-chips > button, .wxv-ck, #bcPrecipFullLegend > span, #bcBiasContentFull > div, .agi-learn-tag, .agi-model-name, .kax-tg > button, .wxv-key > span){font-family:Inter,system-ui,-apple-system,sans-serif!important;text-transform:none!important;letter-spacing:0!important;font-size:13.0px!important}

/* Field intel summary: a quiet panel with one thin gold edge, not a gold box (ChatGPT review item 6) */
html[data-kp] .kit-stack .kit-brief{ background:rgba(255,255,255,.035) !important; border:0 !important; border-left:3px solid #E3AF25 !important; border-radius:4px 12px 12px 4px !important; padding:11px 14px !important; }

/* 16 day rows: the COLD, RAIN, SNOW and timing tags become quiet colored words instead of boxed pills (both reviews: competing badges) */
html[data-kp] .fc-tags{ gap:4px 10px !important; }
html[data-kp] .fc-tag{ background:transparent !important; border:0 !important; padding:0 !important; border-radius:0 !important;
  font:600 12px/1.25 Inter,system-ui,sans-serif !important; letter-spacing:0 !important; text-transform:lowercase !important; font-style:normal !important; }
html[data-kp] .fc-tag::first-letter{ text-transform:uppercase; }
html[data-kp] .fc-tag.cold{ color:#8fcfe8 !important; } html[data-kp] .fc-tag.rain, html[data-kp] .fc-tag.snow{ color:#ecc55a !important; }
html[data-kp] .fc-tag.eta-tag{ color:#b6c0cb !important; } html[data-kp] .fc-tag.heat{ color:#e8955a !important; }

/* ---- Round 2 (ChatGPT second review, 7.1/10 after round 1): readable size, room to breathe, gold with intent ---- */
/* 16 day rows: 60 px rows, 15.5 px day and temperatures */
html[data-kp] #forecastCards .fc-card{ min-height:60px !important; }
html[data-kp] #forecastCards .fc-day{ font-size:15.5px !important; }
html[data-kp] #forecastCards :is(.fc-hi, .fc-lo){ font-size:15.5px !important; }
html[data-kp] #forecastCards :is(.fc-date, .fc-stat){ font-size:13px !important; }
/* The floating Ask Kerr button never sits on the last row of a page */
html[data-kp] body::after{ content:""; display:block; height:88px; }
/* /equipment: the hero gives way to the plows sooner */
html[data-kp="equipment"] .mx-hero{ min-height:min(64vh,560px) !important; }
/* /about: the pull quote reads in white with one gold edge instead of a gold paragraph */
html[data-kp="about"] p.lede[style*="--gold"]{ color:#f3f5f7 !important; border-left:3px solid #E3AF25; padding-left:14px; }
/* /ski-day: the verdict word says it; the badge ring goes, as on /weather */
html[data-kp="ski-day"] #sdBadge{ display:none !important; }
/* Charts on the Data and Accuracy tabs: 13.5 px labels, 14 px legends */
html[data-kp="wx"] :is(.wxd-svg, .wxv-svg) text:not(.st):not(.x2):not(.vl){ font-size:13.5px !important; }
html[data-kp="wx"] :is(.wxd-key, .wxv-key, .wxd-leg){ font-size:14px !important; }
