@layer legacy {
/* KECB DEPLOY-730 — UX audit residual closure + statewide map clarity. */
/* KECB DEPLOY-663 — exact-order bundle: visual-system 660 followed by handoff 634. No rule rewriting. */
/* KECB DEPLOY-660 — authoritative sitewide visual QA, readability, continuity, and no-blue public-surface architecture.
   Consolidates the 556 direction into explicit surface, type, reading, spacing and component rules.
   Four-path IA is preserved; visual correctness and consistency are the contract. */
:root{
  --kecb-black:#0b0e10;
  --kecb-black-2:#111518;
  --kecb-ink:#17191a;
  --kecb-ink-soft:#50565a;
  --kecb-paper:#fffdf9;
  --kecb-paper-warm:#f7f1e8;
  --kecb-paper-soft:#f2ece3;
  --kecb-line:#ded6ca;
  --kecb-line-strong:#c7b9a5;
  --kecb-brass:#b88a48;
  --kecb-brass-deep:#7f5c29;
  --kecb-oxblood:#7d3028;
  --kecb-slate:#485760;
  --kecb-navy-data:#203d54;
  --kecb-white:#fff;
  --kecb-radius:var(--kecb-radius-card);
  --kecb-radius-sm:var(--kecb-radius-sm);
  --kecb-radius-card:var(--kecb-radius-card);
  --kecb-radius-control:var(--kecb-radius-control);
  --kecb-radius-pill:var(--kecb-radius-pill);
  --kecb-max:1180px;
  --kecb-reading:58ch;
  --kecb-working:960px;
  --kecb-discovery:1180px;
  --kecb-type-meta:.875rem;
  --kecb-type-small:.9375rem;
  --kecb-type-body:1rem;
  --kecb-type-h4:1.125rem;
  --kecb-type-h3:clamp(1.28rem,2vw,1.5rem);
  --kecb-type-h2:clamp(1.7rem,3vw,2.35rem);
  --kecb-type-h1:clamp(2.2rem,4.45vw,3.95rem);
  --kecb-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --kecb-serif:Georgia,"Times New Roman",serif;
  --kecb-s1:.375rem;
  --kecb-s2:.75rem;
  --kecb-s3:1.25rem;
  --kecb-s4:2.25rem;
  --kecb-s5:4rem;
  --kecb-section-gap-tight:1rem;
  --kecb-section-gap-standard:2rem;
  --kecb-section-gap-major:3.5rem;
  --kecb-surface-paper:var(--kecb-paper-warm);
  --kecb-surface-raised:#fff;
}

/* ---------- foundation ---------- */
html{scroll-padding-top:76px}
body[data-design-system="institutional-v2"],
body.page-operational,
body.show-history{
  background:var(--kecb-paper);
  color:var(--kecb-ink);
  font-family:var(--kecb-sans);
  line-height:1.58;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body :where(h1,h2){font-family:var(--kecb-serif);text-wrap:balance}
/* Surface context owns text colour; headings never guess the background. */
html:root body .surface-light{background:var(--kecb-paper-warm);background-image:none;color:var(--kecb-ink)}
html:root body .surface-light :is(h1,h2,h3,h4,strong){color:var(--kecb-ink)}
html:root body .surface-light :is(p,li,dd,small){color:var(--kecb-ink-soft)}
html:root body .surface-dark{color:var(--kecb-paper)}
html:root body .surface-dark :is(h1,h2,h3,h4,strong){color:var(--kecb-paper)}
html:root body .surface-dark :is(p,li,dd,small){color:#e5ddd2}
body :where(h1){letter-spacing:-.035em;line-height:1.01}
body :where(h2){letter-spacing:-.025em;line-height:1.08}
body :where(h3,h4,strong){letter-spacing:-.008em}
body main :where(h1){font-size:max(var(--kecb-type-meta), var(--kecb-type-h1))}
body main :where(h2){font-size:max(var(--kecb-type-meta), var(--kecb-type-h2))}
body main :where(h3){font-size:max(var(--kecb-type-meta), var(--kecb-type-h3));line-height:1.2}
body main :where(h4){font-size:max(var(--kecb-type-meta), var(--kecb-type-h4));line-height:1.25}
body main :where(button,.button,.btn,input,select,textarea,summary){font-size:max(var(--kecb-type-meta), max(14px,var(--kecb-type-small)))}
body main :where(p,li,dd){max-width:var(--kecb-reading)}
body :where(p,li,dd){text-wrap:pretty}
body :where(a){text-underline-offset:.16em}
body main :where(a:not(.button):not(.btn):not([class*="card"])){color:var(--kecb-oxblood)}
body main :where(a:not(.button):not(.btn):not([class*="card"]):hover){color:#59211c}
body :where(a,button,input,select,textarea,summary){font-family:var(--kecb-sans)}
body :where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid rgba(184,138,72,.5);outline-offset:3px}

/* ---------- shared shell ---------- */
html:root body .site-header.site-header-v3,
html:root body .site-header-v3.site-header-simple,
html:root body .audience-global-header{
  background:var(--kecb-black);
  color:#f8f1e7;
  border-bottom:1px solid rgba(184,138,72,.55);
  box-shadow:var(--kecb-shadow-none);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
html:root body .audience-global-header{min-height:52px;padding:.30rem clamp(.72rem,1.55vw,1.2rem);gap:.68rem}
html:root body .audience-brand{display:inline-flex;align-items:center;gap:.35rem;min-width:max-content;text-decoration:none}
html:root body .audience-brand .brand-mark{
  display:inline-flex;align-items:center;min-width:0;min-height:0;padding:.28rem 0;
  border:0;border-radius:0;background:transparent;box-shadow:var(--kecb-shadow-none);color:#fbf7ef;
  font:700 .98rem/1 var(--kecb-serif);letter-spacing:.14em;white-space:nowrap;word-break:keep-all;
}
html:root body .audience-brand .brand-star{display:inline-flex;align-items:center;color:var(--kecb-brass);font:700 max(var(--kecb-type-meta), .76rem)/1 var(--kecb-serif);transform:translateY(-.02em)}
html:root body .audience-brand:hover .brand-star,html:root body .audience-brand:focus-visible .brand-star{color:#d5ad70}
html:root body .audience-path-nav{gap:.04rem}
html:root body .audience-nav>summary,
html:root body .audience-utility-link,
html:root body .audience-sign-in{
  min-height:38px;padding:.36rem .50rem;border-radius:var(--kecb-radius-sm);color:#f5eee4;
  background:transparent;font-size:max(var(--kecb-type-meta), max(14px,.78rem));font-weight:720;letter-spacing:.005em;box-shadow:var(--kecb-shadow-none);
}
html:root body .audience-nav[open]>summary,
html:root body .audience-nav>summary:hover,
html:root body .audience-nav>summary:focus-visible,
html:root body .audience-utility-link:hover,
html:root body .audience-utility-link:focus-visible,
html:root body .audience-sign-in:hover,
html:root body .audience-sign-in:focus-visible{background:rgba(255,255,255,.065);color:#fff}
html:root body .audience-sign-in{margin-left:.18rem;border:1px solid rgba(184,138,72,.48)}
html:root body .audience-tree{top:calc(100% + .34rem);padding:.34rem;border:1px solid rgba(184,138,72,.48);border-radius:var(--kecb-radius-control);background:#111518;box-shadow:var(--kecb-shadow-card)}
html:root body .audience-tree a,html:root body .audience-tree-label{color:#f5eee4}
html:root body .audience-tree a{border-radius:var(--kecb-radius-sm)}
html:root body .audience-tree a:hover,html:root body .audience-tree a:focus-visible{background:rgba(255,255,255,.07);color:#fff}
html:root body .audience-tree-label{color:#d4b47c}
html:root body .audience-mobile-search{min-height:40px;padding:.46rem .72rem;border:1px solid rgba(184,138,72,.48);border-radius:var(--kecb-radius-control);background:transparent;color:#f5eee4;box-shadow:var(--kecb-shadow-none)}

/* ---------- universal editorial openings ---------- */
body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero,.section-visual-hero){
  min-height:0;
  padding:clamp(2.2rem,5vw,4.3rem) 0;
  border:0;
  border-bottom:1px solid var(--kecb-line);
  background:var(--kecb-paper-warm);
  color:var(--kecb-ink);
  box-shadow:var(--kecb-shadow-none);
}
body :where(.tonight-wrap,.artist-halls-wrap,.dir-wrap,.edu-wrap,.book-first-wrap,.bi-shell,.system-wrap,.wrap){max-width:var(--kecb-max)}
body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero) :where(h1){
  max-width:920px;margin:.12rem 0 .75rem;color:var(--kecb-ink);
  font:700 clamp(2.35rem,5.4vw,4.65rem)/.98 var(--kecb-serif);letter-spacing:-.04em;
}
body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero) :where(p:not([class*="kicker"]):not([class*="eyebrow"])){max-width:800px;color:var(--kecb-ink-soft);font-size:max(var(--kecb-type-meta), clamp(1rem,1.7vw,1.16rem));line-height:1.62}
body :where(.tonight-eyebrow,.artist-halls-eyebrow,.dir-kicker,.edu-kicker,.book-first-kicker,.bi-eyebrow,.eyebrow,.section-kicker,.spx-kicker,.k2-kicker,.artist-hall-kicker,.artist-section-kicker,.tonight-active-kicker){
  margin:0 0 .45rem;color:var(--kecb-brass-deep);font:800 max(14px,.70rem)/1.2 var(--kecb-sans);letter-spacing:.12em;text-transform:uppercase;
}
body :where(.tonight-utility,.artist-halls-utility){margin-top:1rem;gap:.45rem 1rem}
body :where(.tonight-utility,.artist-halls-utility) a{color:var(--kecb-oxblood);font-size:max(var(--kecb-type-meta), var(--kecb-type-micro));font-weight:750;text-decoration-thickness:1px}

/* ---------- controls and buttons ---------- */
body main :where(button,.button,.btn,a.button,.system-button,.bi-button,.kecb-share-standout,input:not([type="checkbox"]):not([type="radio"]),select,textarea){border-radius:var(--kecb-radius);box-shadow:var(--kecb-shadow-none)}
body main :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){border:1px solid #a99f92;background:#fff;color:var(--kecb-ink)}
body main :where(button,.button,.btn,a.button,.system-button,.bi-button,.kecb-share-standout){min-height:40px}
body main :where(.button.primary,.btn.primary,.system-button:not(.secondary),.bi-button.primary,.kecb-share-standout){border:1px solid var(--kecb-black);background:var(--kecb-black);color:#fff}
body main :where(.button.secondary,.btn.secondary,.system-button.secondary,.bi-button.secondary){border:1px solid var(--kecb-line-strong);background:#fff;color:var(--kecb-ink)}
body main :where(.button.primary,.btn.primary,.system-button:not(.secondary),.bi-button.primary,.kecb-share-standout):hover{background:#202427;border-color:#202427}
body main :where(.button.secondary,.btn.secondary,.system-button.secondary,.bi-button.secondary):hover{border-color:var(--kecb-brass);background:#fffaf1}

/* Pills only where they behave like actual filters/status. */
body main :where(.chip,.manager-filter-chip,.tonight-date-shortcuts button,.dir-quick-regions button,.vp-tag,.tool-count-pill){border-radius:var(--kecb-radius-pill)}

/* ---------- card discipline ---------- */
body main :where(.dir-card,.edu-card,.vp-card,.artist-hall-card,.bi-card,.bi-panel,.bi-section,.academy-link-card,.academy-course-lesson,.role-resource-card,.search-result,.search-page-box,.priority-tool-card,.manager-filter-box,.personal-tool-shelf,.home-live-card,.tonight-card,.event-card){
  border:1px solid var(--kecb-line);border-radius:var(--kecb-radius);background:#fff;box-shadow:var(--kecb-shadow-none);
}
body main :where(.dir-card,.edu-card,.vp-card,.artist-hall-card,.bi-card,.academy-link-card,.role-resource-card,.search-result,.priority-tool-card,.home-live-card,.tonight-card,.event-card):hover{border-color:var(--kecb-line-strong);box-shadow:var(--kecb-shadow-none);transform:none}
body main :where(.dir-card,.edu-card,.vp-card,.artist-hall-card,.bi-card,.academy-link-card,.role-resource-card,.search-result,.priority-tool-card) :where(h2,h3,strong){color:var(--kecb-ink)}
body main :where(.dir-card,.edu-card,.vp-card,.artist-hall-card,.bi-card,.academy-link-card,.role-resource-card,.search-result,.priority-tool-card) :where(p,small){color:var(--kecb-ink-soft)}

/* ---------- homepage: preserve four paths, refine presentation ---------- */

/* ---------- Tonight ---------- */

/* ---------- Artists in the Halls ---------- */

/* ---------- venue directory + profiles ---------- */
body .dir-region-panel{border:0;border-bottom:1px solid var(--kecb-line);border-radius:0;background:#fff;box-shadow:var(--kecb-shadow-none);padding:1rem 0}
body .dir-section{padding-top:clamp(1.5rem,3vw,2.4rem)}
body .dir-card{margin-bottom:.48rem;padding:.78rem .9rem;border-left:2px solid transparent}
body .dir-card:hover{border-left-color:var(--kecb-brass)}
body .dir-card .dir-name,body .dir-card .dir-name a{color:var(--kecb-ink);font-family:var(--kecb-serif)}
body .dir-card .dir-meta{color:var(--kecb-ink-soft)}
body.venue-profile-page .vp-hero{background:var(--kecb-paper-warm);border-bottom:1px solid var(--kecb-line);box-shadow:var(--kecb-shadow-none)}
body.venue-profile-page .vp-hero h1{color:var(--kecb-ink);font:700 clamp(2.35rem,5vw,4.35rem)/.98 var(--kecb-serif);letter-spacing:-.04em}
body.venue-profile-page .vp-kicker{color:var(--kecb-brass-deep)}
body.venue-profile-page .vp-lead,body.venue-profile-page .vp-location{color:var(--kecb-ink-soft)}
body.venue-profile-page .vp-intel-strip{padding:.72rem 0;border:0;border-top:1px solid var(--kecb-line);border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent}
body.venue-profile-page .vp-intel-strip strong{color:var(--kecb-ink);font-family:var(--kecb-serif)}
body.venue-profile-page .vp-card{padding:1rem}
body.venue-profile-page .vp-card h2,body.venue-profile-page .vp-card h3{color:var(--kecb-ink)}
body.venue-profile-page .vp-tag{background:var(--kecb-paper-soft);border:1px solid var(--kecb-line);color:var(--kecb-ink-soft)}
body.venue-profile-page .vp-links a{border-radius:var(--kecb-radius);box-shadow:var(--kecb-shadow-none)}

/* ---------- Academy ---------- */
body.edu-page .edu-hero-grid{grid-template-columns:minmax(0,1.45fr) minmax(260px,.7fr);gap:clamp(1.6rem,4vw,3.5rem)}
body.edu-page .edu-facts{border:1px solid var(--kecb-line);border-radius:var(--kecb-radius);background:#fff;box-shadow:var(--kecb-shadow-none)}
body.edu-page .edu-section{padding:clamp(2.2rem,5vw,4.2rem) 0;background:var(--kecb-paper)}
body.edu-page .edu-section-alt{background:var(--kecb-paper-soft)}
body.edu-page .edu-section h2{color:var(--kecb-ink)}
body.edu-page .edu-card{padding:1rem;min-height:0}
body.edu-page .edu-card-code{color:var(--kecb-brass-deep)}
body.edu-page .edu-card h3,body.edu-page .edu-card h3 a{color:var(--kecb-ink)}
body :where(.academy-home-hero,.academy-track-hero,.academy-lesson-hero){background:var(--kecb-paper-warm);color:var(--kecb-ink);border-bottom:1px solid var(--kecb-line);box-shadow:var(--kecb-shadow-none)}
body :where(.academy-home-hero,.academy-track-hero,.academy-lesson-hero) :where(h1,h2,h3){color:var(--kecb-ink)}
body :where(.academy-home-hero,.academy-track-hero,.academy-lesson-hero) :where(p,span,small){color:var(--kecb-ink-soft)}
body :where(.academy-link-card,.academy-course-lesson,.academy-assessment-card,.academy-promise-panel,.academy-at-glance article,.academy-concept-grid article,.academy-full-details,.academy-full-details details,.acad){background:#fff;color:var(--kecb-ink);border-color:var(--kecb-line);box-shadow:var(--kecb-shadow-none)}

/* ---------- Tools ---------- */
body.page-tool .tools-book-first-hero{padding:clamp(2.2rem,5vw,4rem) 0}
body.page-tool .manager-priority-tools{background:var(--kecb-paper-soft);border-bottom:1px solid var(--kecb-line)}
body.page-tool .priority-tool-card{min-height:156px;padding:.9rem}
body.page-tool .priority-tool-card strong{color:var(--kecb-ink);font-family:var(--kecb-serif)}
body.page-tool .priority-open,body.page-tool .tool-source-card small{color:var(--kecb-oxblood)}
body.page-tool .manager-tool-finder{background:#fff}
body.page-tool .manager-filter-box{padding:.8rem;background:var(--kecb-paper-warm)}
body.page-tool .manager-filter-chip{border:1px solid var(--kecb-line-strong);background:#fff;color:var(--kecb-ink)}
body.page-tool .manager-filter-chip[aria-pressed="true"]{border-color:var(--kecb-black);background:var(--kecb-black);color:#fff}
body.page-tool .full-tool-library{border-color:var(--kecb-line);border-radius:var(--kecb-radius);box-shadow:var(--kecb-shadow-none)}
body.page-tool .full-tool-library>summary{background:#fff;color:var(--kecb-ink)}
body.page-tool .tool-card-grid{gap:0 1rem}
body.page-tool .tool-source-card{min-height:138px;padding:.9rem .1rem;border:0;border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent}
body.page-tool .tool-source-card:hover{background:var(--kecb-paper-warm)}
body.page-tool .tool-source-card strong{color:var(--kecb-ink);font-family:var(--kecb-serif)}

/* ---------- Booking Intelligence ---------- */

/* ---------- tables / details / footer ---------- */
body main table{border:1px solid var(--kecb-line);border-radius:var(--kecb-radius);background:#fff;box-shadow:var(--kecb-shadow-none)}
body main th{background:var(--kecb-paper-soft);color:var(--kecb-ink)}
body main th,body main td{border-color:var(--kecb-line)}
body main details:not(.audience-nav){border-color:var(--kecb-line);box-shadow:var(--kecb-shadow-none)}
body .site-footer,body .site-footer-v3{border-top:1px solid rgba(184,138,72,.45);background:var(--kecb-black-2);color:#d9d0c5}
body .site-footer a,body .site-footer-v3 a{color:#f8f1e7}
body .site-footer strong,body .site-footer-v3 strong{color:#fff;font-family:var(--kecb-serif)}

/* ---------- mobile ---------- */
@media(max-width:960px){
  body.edu-page .edu-hero-grid{grid-template-columns:1fr}
  html:root body .audience-global-header{padding:.32rem .68rem;gap:.48rem}
}
@media(max-width:720px){
  html:root body .audience-global-header{min-height:50px;padding:.30rem .58rem}
  html:root body .audience-brand .brand-mark{font-size:max(var(--kecb-type-meta), var(--kecb-type-small));letter-spacing:.13em}
  html:root body .audience-brand .brand-star{font-size:max(var(--kecb-type-meta), .74rem)}
  body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero){padding:1.5rem 0 1.65rem}
  body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero) :where(h1){font-size:max(var(--kecb-type-meta), clamp(2rem,10vw,3rem))}
  body.venue-profile-page .vp-intel-strip{grid-template-columns:1fr 1fr}
  body.page-tool .priority-tool-card{min-height:150px}
}
@media(max-width:420px){
  body.page-tool .priority-tools-grid{grid-template-columns:1fr}
  body.page-tool .priority-tool-card{min-height:128px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}body :where(a,button,[class*="card"]){transition:none}}
@media print{
  html:root body .site-header,html:root body .site-footer{display:none}
  body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero){background:#fff;color:#000;border-bottom:1px solid #bbb}
}

/* ---------- deep curriculum + long-form page parity ---------- */
body :where(.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero){
  min-height:0;
  border:0;
  border-bottom:1px solid var(--kecb-line);
  background:var(--kecb-paper-warm);
  color:var(--kecb-ink);
  box-shadow:var(--kecb-shadow-none);
}
body :where(.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero) :where(h1,h2,h3,strong){color:var(--kecb-ink)}
body :where(.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero) :where(p,li,span,small){color:var(--kecb-ink-soft)}
body :where(.fs-kicker,.bartender-kicker,.chef-kicker,.tool-suite-kicker,.role-library-kicker,.visual-kicker,.analysis-kicker,.dl-kicker,.sh-kicker){color:var(--kecb-brass-deep);text-transform:uppercase;letter-spacing:.11em;font-size:max(var(--kecb-type-meta), max(14px,.7rem));font-weight:800}
body .fs-hero{padding:clamp(2.1rem,5vw,4rem) 0}
body .fs-hero h1{max-width:900px;margin:.15rem 0 .7rem;font:700 clamp(2.25rem,5vw,4.35rem)/.99 var(--kecb-serif);letter-spacing:-.038em}
body .fs-hero .fs-deck{max-width:800px;font-size:max(var(--kecb-type-meta), clamp(1rem,1.7vw,1.16rem));line-height:1.62}
body .fs-actions{gap:.5rem;margin-top:1rem}
body .fs-btn{min-height:40px;padding:.52rem .72rem;border:1px solid var(--kecb-line-strong);border-radius:var(--kecb-radius);background:#fff;color:var(--kecb-ink);box-shadow:var(--kecb-shadow-none)}
body .fs-btn.primary{border-color:var(--kecb-black);background:var(--kecb-black);color:#fff}
body .fs-section{padding:clamp(2rem,4vw,3.7rem) 0}
body .fs-card{border:1px solid var(--kecb-line);border-radius:var(--kecb-radius);background:#fff;box-shadow:var(--kecb-shadow-none)}
body .fs-card:hover{border-color:var(--kecb-line-strong);box-shadow:var(--kecb-shadow-none);transform:none}
body .fs-card :where(h2,h3,strong){color:var(--kecb-ink)}
body .fs-card :where(p,small){color:var(--kecb-ink-soft)}

/* Thousands of content objects should feel related without becoming one giant card style. */
body main :where(.search-panel,.recipe-panel,.kitchen-panel,.recipe-card,.chapter-tool-card,.spx-card,.chapter-card,.recipe-intelligence-card,.chapter-work-panel,.recommend-card,.tool-guide-card,.kitchen-card,.tool-card,.speakeasy-category-card,.kitchen-source-panel,.bar2-resource-card,.k2-card,.expansion-card,.mastery-resource-card,.deep-card,.dt-card,.system-card,.role-quick-card,.role-book-route-card,.dt-tool-card,.academy-track-card,.bar2-dashboard-card,.quick-card,.role-entry-card,.guide-sidebar-card,.progress-dashboard-card,.workflow-card,.path-system-card,.section-tool-card,.learning-path-card,.path-progress-card,.preservation-tool-card,.k2-dashboard-card,.mastery-school-card,.bar2-school-card){
  border-radius:var(--kecb-radius);
  box-shadow:var(--kecb-shadow-none);
}

/* Reading surfaces: reduce decorative chrome and let text lead. */
body main :where(.chapter-card,.chapter-work-panel,.recipe-panel,.kitchen-panel,.search-panel){border-color:var(--kecb-line)}
body main :where(.chapter-card,.chapter-work-panel) :where(h2,h3){color:var(--kecb-ink)}

@media(max-width:720px){
  body :where(.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero){padding-top:1.45rem;padding-bottom:1.55rem}
  body .fs-hero h1{font-size:max(var(--kecb-type-meta), clamp(2rem,10vw,3rem))}
}

/* Remaining specialized hero families: same visual grammar, no orphaned blue surfaces. */
body :where(.dt-hero,.spx-hero){min-height:0;border:0;border-bottom:1px solid var(--kecb-line);background:var(--kecb-paper-warm);color:var(--kecb-ink);box-shadow:var(--kecb-shadow-none)}
body :where(.dt-hero,.spx-hero) :where(h1,h2,h3,strong){color:var(--kecb-ink)}
body :where(.dt-hero,.spx-hero) :where(p,li,span,small){color:var(--kecb-ink-soft)}

/* ---------- DEPLOY 532 composition + scale refinement ---------- */
/* Header: strengthen the wordmark, lower navigation visual weight, preserve compact touch targets. */
html:root body .audience-global-header{min-height:50px;padding:.26rem clamp(.72rem,1.45vw,1.15rem);gap:.72rem}
html:root body .audience-brand .brand-mark{font-size:max(var(--kecb-type-meta), var(--kecb-type-body));font-weight:740;letter-spacing:.145em}
html:root body .audience-brand .brand-star{font-size:max(var(--kecb-type-meta), .80rem)}
html:root body .audience-nav>summary,
html:root body .audience-utility-link,
html:root body .audience-sign-in{min-height:36px;padding:.32rem .48rem;font-size:max(var(--kecb-type-meta), max(14px,.77rem));font-weight:650}
html:root body .audience-sign-in{padding-inline:.62rem}

/* Universal page openings: authority comes from proportion and type, not giant scale. */
body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero,.section-visual-hero){
  padding:clamp(1.85rem,3.8vw,3.15rem) 0;
}
body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero) :where(h1){
  max-width:860px;margin:.1rem 0 .62rem;font-size:max(var(--kecb-type-meta), clamp(2.2rem,4.45vw,3.95rem));line-height:1;
}
body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero) :where(p:not([class*="kicker"]):not([class*="eyebrow"])){max-width:720px;font-size:max(var(--kecb-type-meta), clamp(.98rem,1.45vw,var(--kecb-type-subhead)));line-height:1.58}
body :where(.tonight-eyebrow,.artist-halls-eyebrow,.dir-kicker,.edu-kicker,.book-first-kicker,.bi-eyebrow,.eyebrow,.section-kicker,.spx-kicker,.k2-kicker,.artist-hall-kicker,.artist-section-kicker,.tonight-active-kicker){margin-bottom:.36rem;letter-spacing:.115em}

/* Deep curriculum / long-form heroes use the same restrained scale. */
body :where(.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero,.dt-hero,.spx-hero){
  padding:clamp(1.85rem,3.8vw,3.15rem) 0;
}
body :where(.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero,.dt-hero,.spx-hero) h1{
  max-width:860px;margin:.1rem 0 .65rem;font:700 clamp(2.2rem,4.45vw,3.95rem)/1 var(--kecb-serif);letter-spacing:-.038em;
}
body .fs-hero h1{max-width:820px;font-size:max(var(--kecb-type-meta), clamp(2.15rem,4.3vw,3.8rem))}
body .fs-hero .fs-deck{max-width:720px;font-size:max(var(--kecb-type-meta), clamp(.98rem,1.45vw,var(--kecb-type-subhead)));line-height:1.58}

/* Share is a quiet utility action, never a competing call-to-action. */
body main .kecb-share-primary{margin:.62rem 0 .88rem}
body main .kecb-share-standout,
body main .kecb-share-standout :where(strong,span,b,small){color:var(--kecb-ink)}
body main .kecb-share-standout{
  min-height:34px;padding:.34rem .58rem;gap:.34rem;border:1px solid var(--kecb-line-strong);
  border-radius:var(--kecb-radius-sm);background:transparent;font-size:max(var(--kecb-type-meta), max(14px,.78rem));font-weight:680;
}
body main .kecb-share-standout:hover,
body main .kecb-share-standout:hover :where(strong,span,b,small){color:var(--kecb-ink)}
body main .kecb-share-standout:hover{border-color:var(--kecb-brass);background:#fffaf1}
body main .kecb-share-standout svg{color:var(--kecb-ink);fill:currentColor}
body main .kecb-share-bottom{max-width:760px;margin:2rem auto;padding:.8rem 0;border:0;border-top:1px solid var(--kecb-line);border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent}

/* Bartending Academy: smaller opening, narrower deck, lean progress, curriculum as a contents system. */
body.bartender-page .bartender-hero{padding:clamp(2rem,3.4vw,2.9rem) 0 clamp(1.8rem,3vw,2.45rem)}
body.bartender-page .bartender-hero h1{max-width:18ch;margin:.12rem 0 .6rem;font:700 clamp(2.45rem,4.15vw,3.78rem)/.99 var(--kecb-serif);letter-spacing:-.038em}
body.bartender-page .bartender-deck{max-width:720px;margin:.35rem 0 0;color:var(--kecb-ink-soft);font-size:max(var(--kecb-type-meta), clamp(1rem,1.35vw,var(--kecb-type-subhead)));line-height:1.58}
body.bartender-page .academy-progress-card{max-width:760px;margin:1rem 0 0;padding:.72rem 0;border:0;border-top:1px solid var(--kecb-line);border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent;box-shadow:var(--kecb-shadow-none)}
body.bartender-page .academy-progress-copy strong{font-size:max(var(--kecb-type-meta), var(--kecb-type-small))}
body.bartender-page .academy-progress-copy span{font-size:max(var(--kecb-type-meta), var(--kecb-type-micro))}
body.bartender-page .academy-progress-meter{height:4px;margin-top:.55rem;background:#e4ddd2}
body.bartender-page .academy-progress-actions{margin-top:.55rem}
body.bartender-page .academy-progress-actions .bartender-btn{min-height:36px;padding:.38rem .62rem;font-size:max(var(--kecb-type-meta), var(--kecb-type-micro))}
body.bartender-page .bartender-section{padding:clamp(1.65rem,3.25vw,2.75rem) 0}
body.bartender-page .bartender-stats{margin-bottom:1.9rem;gap:0;border:0;border-top:1px solid var(--kecb-line);border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent}
body.bartender-page .bartender-stats>div{padding:.68rem .78rem;border-right:1px solid var(--kecb-line);background:transparent}
body.bartender-page .bartender-stats strong{font-size:max(var(--kecb-type-meta), 1.62rem);color:var(--kecb-ink)}
body.bartender-page .bartender-stats span{font-size:max(var(--kecb-type-meta), .78rem);color:var(--kecb-ink-soft)}
body.bartender-page .bartender-prose{max-width:720px;font-size:max(var(--kecb-type-meta), 1rem)}
body.bartender-page .bartender-prose h2{margin:2.1rem 0 .65rem;font-size:max(var(--kecb-type-meta), clamp(1.55rem,2.5vw,2.05rem))}
body.bartender-page .bartender-stage-list{margin-top:2rem;border-top:1px solid var(--kecb-line)}
body.bartender-page .academy-phase{margin:0;border:0;border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent;overflow:visible}
body.bartender-page .academy-phase>summary{min-height:46px;padding:.6rem .1rem;font-weight:720}
body.bartender-page .academy-phase>summary:after{font-size:max(var(--kecb-type-meta), 1rem);color:var(--kecb-brass-deep)}
body.bartender-page .academy-phase>summary .academy-phase-meta{font-size:max(var(--kecb-type-meta), .76rem);font-weight:620;color:var(--kecb-ink-soft)}
body.bartender-page .academy-phase-body{padding:0 0 .65rem}
body.bartender-page .academy-phase-body ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.25rem;margin:0;padding:0;list-style:none}
body.bartender-page .academy-phase-body li a{display:block;height:100%;padding:.72rem .05rem;border:0;border-top:1px solid #ebe5dc;border-radius:0;background:transparent;box-shadow:var(--kecb-shadow-none);color:var(--kecb-ink);text-decoration:none}
body.bartender-page .academy-phase-body li a:hover{background:transparent;color:var(--kecb-oxblood);transform:none}
body.bartender-page .academy-phase-body li span{font-size:max(var(--kecb-type-meta), .67rem);color:var(--kecb-brass-deep)}
body.bartender-page .academy-phase-body li strong{margin:.16rem 0;font-size:max(var(--kecb-type-meta), 1rem);line-height:1.22}
body.bartender-page .academy-phase-body li small{color:var(--kecb-ink-soft);font-size:max(var(--kecb-type-meta), .78rem);line-height:1.42}

/* Culinary Academy: same editorial proportions and lean progress/stat architecture. */
body.academy-complete .academy-home-hero{padding:clamp(2rem,3.5vw,3rem) 0}
body.academy-complete .academy-home-hero h1{max-width:760px;margin:.1rem 0 .55rem;font:700 clamp(2.35rem,4vw,3.7rem)/1 var(--kecb-serif);letter-spacing:-.038em}
body.academy-complete .academy-home-hero>div>p:not(.eyebrow){max-width:700px;color:var(--kecb-ink-soft);font-size:max(var(--kecb-type-meta), var(--kecb-type-body));line-height:1.58}
body.academy-complete .academy-home-hero .k2-actions{margin-top:.9rem;gap:.42rem}
body.academy-complete .academy-home-hero .k2-actions .button{min-height:38px;padding:.43rem .68rem;font-size:max(var(--kecb-type-meta), var(--kecb-type-micro))}
body.academy-complete .academy-stat-grid{margin-top:1.25rem;gap:0;border-top:1px solid var(--kecb-line);border-bottom:1px solid var(--kecb-line);background:transparent}
body.academy-complete .academy-stat-grid>div{padding:.65rem .72rem;border:0;border-right:1px solid var(--kecb-line);border-radius:0;background:transparent}
body.academy-complete .academy-stat-grid>div:last-child{border-right:0}
body.academy-complete .academy-stat-grid strong{font-size:max(var(--kecb-type-meta), var(--kecb-type-subhead));color:var(--kecb-ink)}
body.academy-complete .academy-stat-grid span{font-size:max(var(--kecb-type-meta), .76rem);color:var(--kecb-ink-soft)}
body.academy-complete .academy-progress-card{max-width:760px;margin:.95rem 0 0;padding:.7rem 0;border:0;border-top:1px solid var(--kecb-line);border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent}
body.academy-complete .academy-start,body.academy-complete .k2-section{padding:clamp(1.8rem,3.6vw,3rem) 0}
body.academy-complete .academy-section-head{margin-bottom:1rem}
body.academy-complete .mastery-hub-grid{gap:0 1rem}
body.academy-complete .mastery-hub-grid a{min-height:0;padding:.78rem .05rem;border:0;border-top:1px solid var(--kecb-line);border-radius:0;background:transparent;box-shadow:var(--kecb-shadow-none)}
body.academy-complete .mastery-hub-grid a:hover{background:transparent;color:var(--kecb-oxblood);transform:none}

/* Venue + artist profiles: identity leads; giant record headings and dark hero mass recede. */
body.venue-profile-page .vp-hero{padding:clamp(1.8rem,3.6vw,3rem) 0}
body.venue-profile-page .vp-hero h1{max-width:820px;font-size:max(var(--kecb-type-meta), clamp(2.3rem,4.25vw,3.8rem))}

/* Directory / Artists / Tonight: denser scan rhythm without reducing touch clarity. */
body .dir-card{padding:.66rem .78rem;margin-bottom:.36rem}
body .tonight-card,body .event-card{padding:clamp(.72rem,1.5vw,.9rem)}

/* Tools + intelligence: less dashboard chrome, more reading/data hierarchy. */
body.page-tool .manager-priority-tools,body.page-tool .manager-tool-finder{padding-block:clamp(1.6rem,3.2vw,2.6rem)}
body.page-tool .priority-tool-card{min-height:138px;padding:.78rem}
body.page-tool .manager-filter-box{padding:.7rem}

/* Footer: quieter ending, fewer heavy blocks. */
body footer.site .foot{padding-top:1.45rem;padding-bottom:1rem;gap:1.2rem}
body footer.site .fbrand p{max-width:560px;margin:.35rem 0 0;font-size:max(var(--kecb-type-meta), var(--kecb-type-micro));line-height:1.5;color:#cfc6bb}
body footer.site .foot nav{gap:.25rem .8rem}
body footer.site .foot nav a{font-size:max(var(--kecb-type-meta), .8rem);font-weight:600}
body footer.site .copy{padding-top:.7rem;padding-bottom:1.1rem;font-size:max(var(--kecb-type-meta), .74rem);color:#bfb5a8}
body .bartender-footer{padding:1.3rem 0;font-size:max(var(--kecb-type-meta), .78rem)}

/* Reading measure and section rhythm: long-form text should look typeset, not stretched. */
body main :where(.bartender-prose,.academy-reading,.reader-body,.chapter-body,.prose,.longform,.bar2-reading,.chef-lesson-prose){max-width:var(--kecb-reading)}
body main :where(.fs-article,.chapter-main,.k2-reading,.academy-full-details,.guide-full-details){max-width:min(var(--kecb-working),calc(100% - 2rem))}
body main :where(.fs-article,.chapter-main,.k2-reading,.academy-full-details,.guide-full-details) :where(p,li,dd){max-width:var(--kecb-reading)}
body main :where(.academy-reading,.fs-article,.reader-body,.chapter-body,.prose,.longform) :where(p,li){line-height:1.66}

@media(max-width:760px){
  html:root body .audience-global-header{min-height:49px}
  body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero,.section-visual-hero,.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero,.dt-hero,.spx-hero){padding-top:1.35rem;padding-bottom:1.45rem}
  body.bartender-page .bartender-hero h1{font-size:max(var(--kecb-type-meta), clamp(2.2rem,10.5vw,3rem))}
  body.bartender-page .academy-phase-body ol{grid-template-columns:1fr}
  body.bartender-page .bartender-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.bartender-page .bartender-stats>div:nth-child(2){border-right:0}
  body.bartender-page .bartender-stats>div:nth-child(-n+2){border-bottom:1px solid var(--kecb-line)}
  body.academy-complete .academy-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.academy-complete .academy-stat-grid>div:nth-child(2){border-right:0}
  body.academy-complete .academy-stat-grid>div:nth-child(-n+2){border-bottom:1px solid var(--kecb-line)}
  body main .kecb-share-standout{min-height:36px}
  body footer.site .foot{padding-top:1.2rem}
}
@media(max-width:420px){
  body.bartender-page .bartender-stats,body.academy-complete .academy-stat-grid{grid-template-columns:1fr}
  body.bartender-page .bartender-stats>div,body.academy-complete .academy-stat-grid>div{border-right:0;border-bottom:1px solid var(--kecb-line)}
  body.bartender-page .bartender-stats>div:last-child,body.academy-complete .academy-stat-grid>div:last-child{border-bottom:0}
}

/* DEPLOY-556 — audit remediation: component-owned contrast, focus, and text floor */
:root{--kecb-focus:0 0 0 3px #9c4b2c}
body :where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #9c4b2c;outline-offset:3px;box-shadow:0 0 0 1px #fff,0 0 0 4px #9c4b2c}
body.shift-desk-page .member-button{color:#fff}
body.edu-page .edu-cta{color:#24333e}
body.edu-page .edu-cta p{color:#51483f}
body :where(.venue-why-label,.venue-experience-label,.vad-kicker,.vad-radius-label,.vad-map-detail,.vad-boundary,.vad-more,.bi-ux-launch-kicker,.bi-ux-hint){font-size:max(var(--kecb-type-meta), max(14px,1em))}
body :where(.working-numbers,[data-surface="dark"],.dark,.spx-dark,.k2-dark) :where(h1,h2,h3,h4){color:#fffdf9}


/* ---------- DEPLOY 567 canonical correctness + rhythm closure ---------- */
/* Explicit light hero surfaces. High specificity is intentional only at the legacy boundary. */
html:root body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero,.section-visual-hero,.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero,.dt-hero,.spx-hero){
  background:var(--kecb-paper-warm);background-image:none;color:var(--kecb-ink);
  border-bottom:1px solid var(--kecb-line);box-shadow:var(--kecb-shadow-none);
}
html:root body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero,.section-visual-hero,.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero,.dt-hero,.spx-hero) :where(h1,h2,h3,h4,strong,b){color:var(--kecb-ink)}
html:root body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero,.section-visual-hero,.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero,.dt-hero,.spx-hero) :where(p,li,span,small){color:var(--kecb-ink-soft)}
html:root body :where(.visual-hero,.section-visual-hero)::before,html:root body :where(.visual-hero,.section-visual-hero)::after{content:none;background:none}
html:root body .surface-light::before,html:root body .surface-light::after{background:none;background-image:none;box-shadow:var(--kecb-shadow-none)}

/* One eyebrow decision, surface aware. */
html:root body :where(.eyebrow,.tonight-eyebrow,.artist-halls-eyebrow,.dir-kicker,.edu-kicker,.book-first-kicker,.bi-eyebrow,.section-kicker,.spx-kicker,.k2-kicker,.artist-hall-kicker,.artist-section-kicker,.tonight-active-kicker,.fs-kicker,.bartender-kicker,.chef-kicker,.tool-suite-kicker,.role-library-kicker,.visual-kicker,.analysis-kicker,.dl-kicker,.sh-kicker){font-size:max(var(--kecb-type-meta), 14px);line-height:1.3;color:var(--kecb-brass-deep)}
html:root body .surface-dark :where(.eyebrow,[class*="kicker"],[class*="eyebrow"]){color:#e0c08a}

/* action correctness: explicit component focus beats legacy component resets. */

/* Deep-content back navigation must remain visible and hit-testable. */
html:root body :where(.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.academy-lesson-hero,.academy-track-hero) :where(.bar2-back,.academy-back){position:relative;z-index:90;display:inline-flex;align-items:center;min-height:40px;padding:.28rem 0;color:var(--kecb-oxblood);pointer-events:auto;text-decoration-thickness:1px;text-underline-offset:.2em}
html:root body :where(.bar2-lesson-hero,.bar2-track-hero,.academy-lesson-hero,.academy-track-hero){position:relative;isolation:isolate}

/* Text floor for the remaining known labels. */
html:root body :where(.venue-why-label,.venue-experience-label,.vad-kicker,.vad-radius-label,.vad-map-detail,.vad-boundary,.vad-more,.bi-ux-launch-kicker,.bi-ux-hint,.bi-eyebrow,.edu-kicker){font-size:max(var(--kecb-type-meta), 14px);line-height:1.35}

/* Professional-school spec rows share the label baseline. */
html:root body .fs-spec,html:root body .number-grid{align-items:stretch}
html:root body .fs-spec>div,html:root body .number-grid>div{display:grid;grid-template-rows:minmax(2.6em,auto) auto;align-content:stretch}
html:root body .fs-spec>div>span,html:root body .number-grid>div>span{align-self:end}

/* Subnavs scroll rather than clip at intermediate desktop widths. */
html:root body :where(.k2-subnav,.spx-subnav,.bar2-subnav) :where(.k2-wrap,.spx-wrap,.bar2-wrap){overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;overscroll-behavior-inline:contain}
html:root body :where(.k2-subnav,.spx-subnav,.bar2-subnav) a{flex:0 0 auto;white-space:nowrap}

/* Site rhythm: sections get three predictable spacing modes. */
body main>section{scroll-margin-top:76px}
body main>section+section{margin-top:0}
body main :where(.section-compact,.compact-section){padding-block:var(--kecb-s3)}
body main :where(.section-standard,.content-section){padding-block:var(--kecb-s4)}
body main :where(.section-major,.feature-section){padding-block:var(--kecb-s5)}

/* Directory cards: every venue is a distinct, scan-friendly record. */
html:root body .dir-section>.dir-wrap{max-width:1080px}
html:root body .dir-section #dir-list{display:block}
html:root body .dir-section .dir-letter{display:flex;align-items:center;gap:.7rem;margin:1.35rem 0 .55rem;color:var(--kecb-oxblood);font-family:var(--kecb-serif);font-size:max(var(--kecb-type-meta), var(--kecb-type-small));font-weight:700;letter-spacing:.04em;line-height:1;text-decoration:none;border-bottom:0;padding-bottom:0}
html:root body .dir-section .dir-letter::after{content:"";flex:1 1 auto;height:1px;background:var(--kecb-line-strong)}
html:root body .dir-section .dir-card{display:grid;grid-template-columns:minmax(16rem,.9fr) minmax(0,1.1fr);gap:.3rem 1.15rem;align-items:center;margin:0 0 .72rem;padding:.9rem 1rem;border:1px solid var(--kecb-line);border-left:3px solid rgba(184,138,72,.72);border-radius:var(--kecb-radius-card);background:var(--kecb-paper);box-shadow:var(--kecb-shadow-card);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
html:root body .dir-section .dir-card:hover{border-color:var(--kecb-line-strong);border-left-color:var(--kecb-brass-deep);background:#fffaf4;box-shadow:var(--kecb-shadow-card)}
html:root body .dir-section .dir-card .dir-name{grid-column:1;grid-row:1;margin:0;font-size:max(var(--kecb-type-meta), var(--kecb-type-subhead));line-height:1.2;min-width:0;overflow-wrap:normal;word-break:normal}
html:root body .dir-section .dir-card .dir-name a{color:var(--kecb-ink);text-decoration:none;font-weight:700}
html:root body .dir-section .dir-card .dir-name a:hover{text-decoration:underline;text-decoration-color:var(--kecb-brass);text-underline-offset:.16em}
html:root body .dir-section .dir-card .dir-meta{grid-column:1;grid-row:2;margin:.12rem 0 0;color:var(--kecb-ink-soft);font-size:max(var(--kecb-type-meta), var(--kecb-type-small));line-height:1.35;min-width:0;overflow-wrap:normal;word-break:normal}
html:root body .dir-section .dir-card .dir-links{grid-column:2;grid-row:1 / span 2;display:flex;flex-wrap:wrap;align-self:center;justify-content:flex-end;gap:.4rem;min-width:0;width:100%;margin:0}
html:root body .dir-section .dir-card .dir-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:.5rem .7rem;border:1px solid var(--kecb-line-strong);border-radius:var(--kecb-radius-control);background:#fff;color:var(--kecb-ink);font-size:max(var(--kecb-type-meta), 14px);font-weight:750;line-height:1.1;text-decoration:none;white-space:nowrap;box-shadow:var(--kecb-shadow-none)}
html:root body .dir-section .dir-card .dir-link:hover,html:root body .dir-section .dir-card .dir-link:focus-visible{border-color:var(--kecb-brass-deep);background:var(--kecb-paper-warm);color:var(--kecb-ink)}
html:root body .dir-section .dir-card .dir-link:first-child{border-color:var(--kecb-oxblood);background:var(--kecb-oxblood);color:#fff}
html:root body .dir-section .dir-card .dir-link:first-child:hover,html:root body .dir-section .dir-card .dir-link:first-child:focus-visible{border-color:#59211c;background:#59211c;color:#fff}

/* Tools: keep priority cards; turn the 121-item catalog into lean library rows. */
html:root body.page-tool .tool-card-grid{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--kecb-line)}
html:root body.page-tool .tool-source-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.35rem 1rem;min-height:0;margin:0;padding:.72rem .08rem;border:0;border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent;box-shadow:var(--kecb-shadow-none)}
html:root body.page-tool .tool-source-card:hover{background:var(--kecb-paper-warm);transform:none}

/* Booking Intelligence: answer/research hierarchy outranks the control inventory. */

/* Academy: curriculum scans as a sequence, not a wall of equal-weight cards. */
html:root body.academy-complete .academy-track-grid{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--kecb-line)}
html:root body.academy-complete .academy-track-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.35rem 1rem;align-items:center;margin:0;padding:.78rem .08rem;border:0;border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent;box-shadow:var(--kecb-shadow-none)}
html:root body.academy-complete .academy-track-card:hover{background:var(--kecb-paper-warm);transform:none}

html:root body.academy-complete .mastery-school-card{border-radius:var(--kecb-radius-card);box-shadow:var(--kecb-shadow-none)}

/* Shift Desk: one stage at a time, lean operational panels, no dashboard bulk. */
html:root body.shift-desk-page .tonight-stage-grid{gap:.35rem;margin:.75rem 0}
html:root body.shift-desk-page .tonight-stage-grid :is(button,a){min-height:42px;border-radius:var(--kecb-radius-control)}
html:root body.shift-desk-page .tonight-action-panel{border:1px solid var(--kecb-line);border-radius:var(--kecb-radius-card);padding:.82rem;box-shadow:var(--kecb-shadow-none)}
html:root body.shift-desk-page .tonight-action{border-radius:var(--kecb-radius-control);box-shadow:var(--kecb-shadow-none)}
html:root body.shift-desk-page .workspace-shortcut-panel{border-radius:var(--kecb-radius-card);box-shadow:var(--kecb-shadow-none)}

/* Canonical geometry. Normal content rests on the page; only true floating layers elevate. */
html:root body main :where(.card,.panel,.info-card,.resource-card,.event-card,.venue-card,.artist-card,.academy-card,.tool-card){box-shadow:var(--kecb-shadow-none)}
html:root body :where(button,.button,.btn,input,select,textarea){border-radius:var(--kecb-radius-control)}

/* Mobile keeps touch clarity without restoring bulk. */
@media(max-width:860px){
  html:root body .dir-section>.dir-wrap{max-width:100%}
  html:root body .dir-section .dir-letter{margin-top:1.05rem}
  html:root body .dir-section .dir-card{grid-template-columns:1fr;gap:.22rem;margin-bottom:.62rem;padding:.82rem .85rem}
  html:root body .dir-section .dir-card .dir-name{grid-column:1;grid-row:auto;font-size:max(var(--kecb-type-meta), var(--kecb-type-subhead))}
  html:root body .dir-section .dir-card .dir-meta{grid-column:1;grid-row:auto}
  html:root body .dir-section .dir-card .dir-links{grid-column:1;grid-row:auto;justify-content:flex-start;margin-top:.42rem}
  html:root body .dir-section .dir-card .dir-link{min-height:40px}
  html:root body.page-tool .tool-source-card{grid-template-columns:1fr}
  body main :where(p,li,dd){max-width:100%}
}

/* Shared mobile shell is owned here so every public page gets the same behavior. */

body .ux-mobile-dock{display:none}
@media(max-width:720px){
  body:has(.ux-mobile-dock){padding-bottom:76px}
  body .ux-mobile-dock{
    position:fixed;z-index:180;left:max(.5rem,env(safe-area-inset-left));right:max(.5rem,env(safe-area-inset-right));bottom:max(.5rem,env(safe-area-inset-bottom));
    display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.2rem;padding:.28rem;border:1px solid rgba(23,25,26,.16);border-radius:var(--kecb-radius-card);
    background:rgba(255,253,249,.97);box-shadow:var(--kecb-shadow-card);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)
  }
  body .ux-mobile-dock a,body .ux-mobile-dock button{
    display:grid;place-items:center;gap:.15rem;min-height:52px;padding:.26rem .12rem;border:0;border-radius:var(--kecb-radius-card);background:transparent;color:var(--kecb-ink);
    font-size:max(var(--kecb-type-meta), 14px);font-weight:750;line-height:1.05;text-decoration:none
  }
  body .ux-mobile-dock a:hover,body .ux-mobile-dock a:focus-visible{background:var(--kecb-paper-soft);color:var(--kecb-ink)}
  body .ux-mobile-dock a[aria-current="page"]{background:var(--kecb-black);color:#fff}
  body .ux-mobile-dock .ux-dock-icon{font-size:max(var(--kecb-type-meta), 1rem);line-height:1;color:inherit}
}
@media print{body .ux-mobile-dock{display:none}}

/* Canonical type scale and readable prose measure. */
html:root body main h1{font-size:max(var(--kecb-type-meta), var(--kecb-type-h1));line-height:1.01}
html:root body main h2{font-size:max(var(--kecb-type-meta), var(--kecb-type-h2));line-height:1.08}
html:root body main h3{font-size:max(var(--kecb-type-meta), var(--kecb-type-h3));line-height:1.2}
html:root body main h4{font-size:max(var(--kecb-type-meta), var(--kecb-type-h4));line-height:1.25}
html:root body main :is(p,li,dd){max-width:var(--kecb-reading)}
html:root body main :is(.eyebrow,[class*="kicker"],[class*="eyebrow"],[class*="meta"],[class*="status"]){font-size:max(14px,var(--kecb-type-meta))}

/* One footer visual language across legacy and v3 markup. */
html:root body :is(footer.site,.site-footer,.site-footer-v3){background:var(--kecb-black-2);color:#d9d0c5;border-top:1px solid rgba(184,138,72,.45);box-shadow:var(--kecb-shadow-none)}
html:root body :is(footer.site,.site-footer,.site-footer-v3) :is(a,strong){color:#f8f1e7}
html:root body :is(footer.site,.site-footer,.site-footer-v3) p{color:#cfc6bb}

/* Homepage resilience: service degradation stays useful and visually intentional. */
html:root body .home-live-fallback{display:grid;place-items:center;align-content:center;gap:.4rem;min-height:clamp(220px,36vw,430px);padding:1.5rem;border:1px solid var(--kecb-line);background:var(--kecb-paper-warm);color:var(--kecb-ink);text-align:center}
html:root body .home-live-fallback strong{font-family:var(--kecb-serif);font-size:max(var(--kecb-type-meta), clamp(1.2rem,2.4vw,1.6rem));color:var(--kecb-ink)}
html:root body .home-live-fallback span{max-width:48ch;color:var(--kecb-ink-soft)}

/* Artists index: scan first; richer tour/link evidence opens on demand. */

/* Booking Intelligence: five primary research modes read as choices; advanced inventory stays collapsed. */

/* Final contrast/tap-floor closure for repeated audit offenders. */
html:root body.edu-page .edu-kicker{color:var(--kecb-brass-deep)}
html:root body :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #9c4b2c;outline-offset:3px;box-shadow:0 0 0 1px #fff,0 0 0 4px #9c4b2c}
html:root body main :is(button,.button,.btn,input:not([type="checkbox"]):not([type="radio"]),select,textarea,summary){min-height:40px}

/* Card/panel geometry is a sitewide visual primitive, not a page-local invention. */
html:root body main :where(.card,[class$="-card"],[class*="-card "],.panel,[class$="-panel"],[class*="-panel "]){border-radius:var(--kecb-radius-card);box-shadow:var(--kecb-shadow-none)}
html:root body main :where([class*="badge"],[class*="pill"],[class*="chip"]){border-radius:var(--kecb-radius-pill);box-shadow:var(--kecb-shadow-none)}

/* Lean-row child placement: compact without scrambling information order. */
html:root body.page-tool .tool-source-card>strong{grid-column:1;grid-row:1}
html:root body.page-tool .tool-source-card>p{grid-column:1;grid-row:2;margin:.12rem 0 0}
html:root body.page-tool .tool-source-card>small{grid-column:2;grid-row:1 / span 2;align-self:center;white-space:nowrap}
html:root body.academy-complete .academy-track-card>.academy-track-count{grid-column:1;grid-row:1}
html:root body.academy-complete .academy-track-card>strong{grid-column:1;grid-row:2}
html:root body.academy-complete .academy-track-card>p{grid-column:1;grid-row:3;margin:.12rem 0 0}
html:root body.academy-complete .academy-track-card>.academy-track-link{grid-column:2;grid-row:1 / span 3;align-self:center;white-space:nowrap}
@media(max-width:720px){
  html:root body.page-tool .tool-source-card>small{grid-column:1;grid-row:3;white-space:normal;margin-top:.25rem}
  html:root body.academy-complete .academy-track-card{grid-template-columns:1fr}
  html:root body.academy-complete .academy-track-card>.academy-track-link{grid-column:1;grid-row:4;white-space:normal;margin-top:.25rem}
}

/* DEPLOY-567 final browser-verified closure.
   Legacy dark-hero selectors used html:root +; light surfaces must decisively own their descendants. */
html:root body .surface-light.surface-light :is(p,li,dd,span,small):not(.button *):not(button *){
  color:var(--kecb-ink-soft);
}
html:root body .surface-light.surface-light :is(.eyebrow,.tonight-eyebrow,.artist-halls-eyebrow,.dir-kicker,.edu-kicker,.book-first-kicker,.bi-eyebrow,.section-kicker,.spx-kicker,.k2-kicker,.artist-hall-kicker,.artist-section-kicker,.tonight-active-kicker,.fs-kicker,.bartender-kicker,.chef-kicker,.tool-suite-kicker,.role-library-kicker,.visual-kicker,.analysis-kicker,.dl-kicker,.sh-kicker){
  color:var(--kecb-brass-deep);
}
html:root body .surface-light.surface-light :is(h1,h2,h3,h4) :is(span,small){color:inherit}
html:root body .tonight-hero.surface-light h1 span{color:var(--kecb-brass-deep)}
html:root body .surface-light.surface-light :is(.upgrade-actions,.book-first-actions) a.secondary{
  color:var(--kecb-oxblood);border-color:var(--kecb-brass);background:transparent;
}
html:root body .book-first-actions a[hidden]{display:none}
/* A relative subnav must not retain the old sticky offset; that offset caused academy hero overlap. */
html:root body :is(.bar2-subnav,.k2-subnav,.spx-subnav,.culture-subnav){top:auto}


/* ==========================================================================\n   DEPLOY 572 — VISUAL CLARITY / INFORMATION CHUNKING\n   Quiet semantic hierarchy: SECTION → GROUP → ROW.\n   Containment belongs to meaningful groups; individual rows stay lean.\n   ========================================================================== */
:root{
  --kecb-group-surface:#fffdf9;
  --kecb-group-active:#fff8ee;
  --kecb-group-line:#d8cfc3;
  --kecb-group-accent:#a77b43;
}

/* Shared section language for information-dense surfaces. */
body main :where(.academy-section-heading,.academy-curriculum-heading){max-width:760px}
body main :where(.academy-section-kicker){margin:0 0 .32rem;color:var(--kecb-brass-deep);font:800 max(var(--kecb-type-meta), 13px)/1.25 var(--kecb-sans);letter-spacing:.115em;text-transform:uppercase}
body main :where(.academy-section-heading,.academy-curriculum-heading) h2{margin:.08rem 0 .38rem;color:var(--kecb-ink);font:700 clamp(1.45rem,2.4vw,1.9rem)/1.12 var(--kecb-serif);letter-spacing:-.022em}
body main :where(.academy-section-heading,.academy-curriculum-heading)>p:last-child{margin:.1rem 0 0;max-width:68ch;color:var(--kecb-ink-soft);line-height:1.55}

/* Academy overview = one SECTION containing metric and explanation GROUPS. */
html:root body:is(.bartender-page,.chef-path-index) .academy-overview-zone{margin:0 0 clamp(2rem,4vw,2.8rem);padding:0 0 clamp(1.8rem,3.4vw,2.4rem);border-bottom:1px solid var(--kecb-line)}
html:root body:is(.bartender-page,.chef-path-index) .academy-overview-zone>.academy-section-heading{margin-bottom:.9rem}
html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stats,.chef-path-summary){display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;margin:0 0 1rem;padding:0;border:0;background:transparent}
html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stats>div,.chef-stat){min-width:0;min-height:68px;padding:.68rem .78rem;border:1px solid var(--kecb-group-line);border-radius:var(--kecb-radius-card);background:var(--kecb-group-surface);box-shadow:var(--kecb-shadow-none)}
html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stats>div,.chef-stat) strong{display:block;margin:0 0 .08rem;color:var(--kecb-ink);font:700 clamp(1.35rem,2.3vw,1.7rem)/1 var(--kecb-serif);letter-spacing:-.025em}
html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stats>div span,.chef-stat){color:var(--kecb-ink-soft);font-size:max(var(--kecb-type-meta), .78rem);line-height:1.3}
html:root body:is(.bartender-page,.chef-path-index) .academy-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.72rem}
html:root body:is(.bartender-page,.chef-path-index) .academy-info-group{margin:0;padding:1rem 1.05rem;border:1px solid var(--kecb-group-line);border-radius:var(--kecb-radius-card);background:#fff;box-shadow:var(--kecb-shadow-none)}
html:root body:is(.bartender-page,.chef-path-index) .academy-info-group h3{margin:0 0 .48rem;color:var(--kecb-ink);font:700 clamp(1.08rem,1.7vw,1.28rem)/1.18 var(--kecb-serif);letter-spacing:-.012em}
html:root body:is(.bartender-page,.chef-path-index) .academy-info-group p{margin:.48rem 0 0;max-width:66ch;color:var(--kecb-ink-soft);line-height:1.58}
html:root body:is(.bartender-page,.chef-path-index) .academy-info-group p:first-of-type{margin-top:0}

/* Curriculum SECTION starts unmistakably, then phases become the primary GROUPS. */
html:root body:is(.bartender-page,.chef-path-index) .academy-curriculum-heading{margin:0 0 1rem;padding-top:.1rem}
html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stage-list,.chef-path-list){display:grid;gap:.62rem;margin:0}
html:root body:is(.bartender-page,.chef-path-index) details.academy-phase{margin:0;border:1px solid var(--kecb-group-line);border-radius:var(--kecb-radius-card);background:#fff;box-shadow:var(--kecb-shadow-none);overflow:hidden}
html:root body:is(.bartender-page,.chef-path-index) details.academy-phase[open]{border-color:#c8af8a;border-left:3px solid var(--kecb-group-accent);background:var(--kecb-group-active)}
html:root body:is(.bartender-page,.chef-path-index) details.academy-phase>summary{display:flex;align-items:center;gap:.7rem;min-height:48px;padding:.68rem .78rem;color:var(--kecb-ink);font-family:var(--kecb-serif);font-size:max(var(--kecb-type-meta), 1rem);font-weight:720;line-height:1.2;background:transparent;cursor:pointer}
html:root body:is(.bartender-page,.chef-path-index) details.academy-phase>summary:hover{background:var(--kecb-paper-warm)}
html:root body:is(.bartender-page,.chef-path-index) details.academy-phase>summary .academy-phase-meta{margin-left:auto;padding:.18rem .4rem;border:1px solid var(--kecb-line);border-radius:var(--kecb-radius-control);background:var(--kecb-paper-soft);color:var(--kecb-ink-soft);font-family:var(--kecb-sans);font-size:max(var(--kecb-type-meta), 14px);font-weight:720;line-height:1.15;letter-spacing:.025em;text-transform:uppercase;white-space:nowrap}
html:root body:is(.bartender-page,.chef-path-index) details.academy-phase[open]>summary{padding-bottom:.72rem;border-bottom:1px solid rgba(167,123,67,.28)}
html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body{padding:0 .78rem .55rem;background:transparent}
html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body ol{margin:0;padding:0;list-style:none}
body.bartender-page .academy-phase-body ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.15rem}
body.chef-path-index .academy-phase-body ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.15rem}
html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body li{min-width:0;margin:0;padding:0}
html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body li a{display:block;height:100%;padding:.72rem .05rem;border:0;border-top:1px solid #e8e0d5;border-radius:0;background:transparent;color:var(--kecb-ink);text-decoration:none;box-shadow:var(--kecb-shadow-none)}
html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body li a:hover,html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body li a:focus-visible{background:rgba(255,255,255,.72);color:var(--kecb-oxblood)}
html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body li :where(span,.chef-module-number){display:block;margin:0 0 .16rem;color:var(--kecb-brass-deep);font-size:max(var(--kecb-type-meta), 14px);font-weight:780;letter-spacing:.06em;text-transform:uppercase}
html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body li :where(strong,.chef-module-title){display:block;margin:.12rem 0;color:var(--kecb-ink);font-family:var(--kecb-serif);font-size:max(var(--kecb-type-meta), 1rem);font-weight:700;line-height:1.22;letter-spacing:-.008em}
html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body li small{display:block;margin-top:.2rem;color:var(--kecb-ink-soft);font-size:max(var(--kecb-type-meta), .78rem);line-height:1.42}

/* Long lessons: spacing + divider make each headed concept legible before reading. */
body main .academy-lesson-layout{align-items:start;gap:clamp(1.2rem,3vw,2.1rem)}
body main :where(article.bartender-prose,article.chef-lesson-prose)>h2{margin:2rem 0 .55rem;padding-top:1.15rem;border-top:1px solid var(--kecb-line);color:var(--kecb-ink);font:700 clamp(1.22rem,2vw,1.48rem)/1.2 var(--kecb-serif);letter-spacing:-.015em}
body main :where(article.bartender-prose,article.chef-lesson-prose)>h2:first-child{margin-top:0;padding-top:0;border-top:0}
body main :where(article.bartender-prose,article.chef-lesson-prose)>h3{margin:1.3rem 0 .42rem;color:var(--kecb-ink);font-family:var(--kecb-serif)}
body main .academy-lesson-map{border:1px solid var(--kecb-group-line);border-radius:var(--kecb-radius-card);background:var(--kecb-paper-warm);box-shadow:var(--kecb-shadow-none)}

/* Tools: the category is the GROUP; tools inside it remain light ROWS. */
body.page-tool .tool-book-group{margin:0 0 1rem;border:1px solid var(--kecb-group-line);border-radius:var(--kecb-radius-card);background:#fff;box-shadow:var(--kecb-shadow-none);overflow:hidden}
body.page-tool .tool-book-group>header{margin:0;padding:.85rem .95rem;border-bottom:1px solid var(--kecb-line);background:var(--kecb-paper-warm)}
body.page-tool .tool-book-group>header :where(h2,h3,strong){margin-top:0;color:var(--kecb-ink)}
body.page-tool .tool-book-group>header p{max-width:70ch;color:var(--kecb-ink-soft)}
body.page-tool .tool-book-group>.tool-card-grid{padding:0 .9rem .45rem;gap:0 1rem}
body.page-tool .tool-book-group .tool-source-card{min-height:0;padding:.78rem .05rem;background:transparent}
body.page-tool .tools-guide-promo{border-bottom:1px solid var(--kecb-line);background:#fff}
body.page-tool .tools-catalog-shell{border-bottom:1px solid var(--kecb-line);background:var(--kecb-paper-soft)}

/* Booking Intelligence: related measurements live in restrained section GROUPS. */

/* Tonight: location is one compact control GROUP, not a loose line of fields. */

/* Venue profiles: preserve cards, strengthen group identity without dashboard bulk. */
body.venue-profile-page .vp-main>.vp-card{border-left:3px solid rgba(167,123,67,.55);border-radius:var(--kecb-radius-card)}
body.venue-profile-page .vp-main>.vp-card :where(h2,h3){margin-top:0}

/* Responsive: hierarchy survives on phones without inflating vertical mass. */
@media(max-width:760px){
  html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stats,.chef-path-summary){grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
  html:root body:is(.bartender-page,.chef-path-index) .academy-overview-grid{grid-template-columns:1fr;gap:.55rem}
  html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stage-list,.chef-path-list){gap:.52rem}
  html:root body:is(.bartender-page,.chef-path-index) details.academy-phase>summary{min-height:46px;padding:.62rem .7rem}
  html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body{padding-inline:.7rem}
  body.bartender-page .academy-phase-body ol,body.chef-path-index .academy-phase-body ol{grid-template-columns:1fr;gap:0}
  body.page-tool .tool-book-group>.tool-card-grid{padding-inline:.72rem}
  body.venue-profile-page .vp-main>.vp-card{border-left-width:2px}
}
@media(max-width:420px){
  html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stats,.chef-path-summary){grid-template-columns:repeat(2,minmax(0,1fr))}
  html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stats>div,.chef-stat){min-height:62px;padding:.6rem .65rem}
  html:root body:is(.bartender-page,.chef-path-index) .academy-info-group{padding:.82rem .86rem}
  html:root body:is(.bartender-page,.chef-path-index) details.academy-phase>summary .academy-phase-meta{font-size:max(var(--kecb-type-meta), 13px)}
}


/* ---------- DEPLOY 648 visual QA + readability closure ---------- */
/* Component typography is allowed to express hierarchy. The zero-specificity 13px guard
   in the foundation bundle remains the only global floor. */
html:root body main .recommend-card{justify-content:flex-start}
html:root body main a.quick-card{min-height:auto;justify-content:flex-start}
html:root body main a.quick-card small{margin-top:.75rem}
html:root body main article.expansion-card{justify-content:flex-start}

/* Light-surface controls own light-surface colors. */
html:root body .surface-light .button.secondary,
html:root body :is(.visual-hero,.section-visual-hero).surface-light .button.secondary{
  background:#fff;color:var(--kecb-ink);border-color:var(--kecb-ink);
}
html:root body .dt-hero .dt-button.secondary{
  background:#fff;color:var(--kecb-ink);border-color:var(--kecb-ink);
}
html:root body .dt-hero .kecb-u-color-gold-soft{color:#6f3023}
html:root body .fv-choice-grid a:first-child :is(strong,b){color:#fffdf9}
html:root body .fv-choice-grid a:first-child span{color:#e7e1d8;opacity:1}
html:root body .start-here-primary-grid a:first-child b{color:#f0c96e}

/* Show History search remains a deliberate dark control surface after global light-card rules. */
html:root body.show-history .sh-search-card{background:#111419;color:#fff;border-color:#2b3036}
html:root body.show-history .sh-search-card .sh-search-primary label{color:#fffdf9}
html:root body.show-history .sh-search-card .sh-filter-row label{color:#d8dde3}
html:root body.show-history .sh-search-card .sh-filter-summary{color:#d8dde3}

/* Venue discovery labels never shrink below the site's declared visible-text floor on phones. */
@media(max-width:680px){
  html:root body.venue-profile-page :is(
    .entity-profile-visual figcaption,.venue-section-label,.vp-detail strong,
    .vad-stat span,.vad-tabs button,.vad-radius button,.vad-radius-label,.vad-map-note,
    .vad-map-detail,.vad-row-meta,.vad-row-reason,.vad-distance,.vad-boundary,.vad-more,
    .venue-experience-item,.venue-experience-empty,.venue-owner-strip>div>span,
    .venue-owner-strip small,.venue-owner-strip>a,.venue-current h2:before,.venue-next-date,
    .venue-next-copy small,.venue-program h2:before
  ){font-size:max(var(--kecb-type-meta), 14px);line-height:1.35}
  html:root body.venue-profile-page :is(.venue-verification-fact,.venue-back-link,[data-seo-observed-history] p){font-size:max(var(--kecb-type-meta), 14px)}
}

/* Three section rhythm tokens; recurring long discovery/topic blocks get an unmistakable break. */
html:root body main > .discovery-section + .discovery-section{
  margin-top:var(--kecb-section-gap-standard);
  border-top:1px solid var(--kecb-line-strong);
  padding-top:var(--kecb-section-gap-major);
}
html:root body main .topic-section + .topic-section{
  margin-top:var(--kecb-section-gap-standard);
  border-top:1px solid var(--kecb-line-strong);
  padding-top:var(--kecb-section-gap-major);
}
html:root body main > .kecb-related{margin-top:var(--kecb-section-gap-standard)}


/* ---------- DEPLOY 649 visual QA residual closure ---------- */
/* Eyebrow colors are owned by surface, not by a misleading semantic class name. */
html:root body{
  --kecb-eyebrow-on-light:#7f5c29;
  --kecb-eyebrow-on-dark:#f3d587;
}
html:root body main :is(.academy-full-details,.guide-full-details,.academy-promise-panel,.chapter-connected-learning) :is(.eyebrow,.eyebrow-on-dark){
  color:var(--kecb-eyebrow-on-light);
}
html:root body main :is(.surface-dark,.analysis-hero,.section-visual-hero) :is(.eyebrow,.eyebrow-on-dark){
  color:var(--kecb-eyebrow-on-dark);
}

/* Start Here: the entire dark choice owns a dark-surface type palette. */
html:root body main .start-here-primary-grid>a:first-child{
  background:var(--kecb-black);
  border-color:var(--kecb-black);
  color:#fffdf9;
}
html:root body main .start-here-primary-grid>a:first-child :is(strong,b){color:#fffdf9}
html:root body main .start-here-primary-grid>a:first-child>span{
  color:#e9edf2;
  opacity:1;
  font-size:max(var(--kecb-type-meta), max(14px,var(--kecb-type-micro)));
}
html:root body main .start-here-primary-grid>a:first-child>b{color:#f0c96e}

/* Venue discovery microcopy: the 13px floor belongs to the component at every width. */
html:root body.venue-profile-page :is(
  .entity-profile-visual figcaption,.venue-section-label,.vp-detail strong,
  .vad-stat span,.vad-tabs button,.vad-radius button,.vad-radius-label,.vad-map-note,
  .vad-map-detail,.vad-row-meta,.vad-row-reason,.vad-distance,.vad-boundary,.vad-more,
  .venue-experience-item,.venue-experience-empty,.venue-owner-strip>div>span,
  .venue-owner-strip small,.venue-owner-strip>a,.venue-current h2:before,.venue-next-date,
  .venue-next-copy small,.venue-program h2:before
){font-size:max(var(--kecb-type-meta), 14px);line-height:1.35}
html:root body.venue-profile-page :is(.venue-verification-fact,.venue-back-link,[data-seo-observed-history] p){font-size:max(var(--kecb-type-meta), 14px)}

/* Recommend cards size to content; hierarchy no longer depends on reserved blank height. */
html:root body main .recommend-card{min-height:auto}

/* Continuity handoff microcopy clears AA on its light editorial surface. */
html:root body .kecb-handoff p>span,
html:root body .kecb-handoff-recent>span{color:#555f68}

/* DEPLOY 657 — Tonight light-hero contrast closure.
   The legacy cream emphasis was effectively invisible on the warm-paper hero.
   Oxblood keeps the title accent while clearing WCAG AA/AAA contrast. */

/* Small/meta text on light surfaces uses the same readable muted token when no component owns it. */
html:root body main :is(.surface-light,.pr-library-excerpt,.book-source-banner) small{color:#5b554d}


/* ---------- DEPLOY 650 no-blue public-surface closure ---------- */
/*
   Public decorative surfaces use the warm KECB palette. Navy is reserved for
   data semantics and explicit reader modes, never as a generic page-section fill.
*/
html:root body{
  --kecb-espresso:#1b1512;
  --kecb-espresso-2:#241b17;
  --kecb-band-paper:#f3ece3;
}

/* Large legacy dark bands become light editorial surfaces. */
html:root body main :is(
  .expansion-band,.field-center-strip,.decision-band,.founder-principles,
  .k2-dark,.spx-dark,.directory-methodology,.discovery-band,.food-truck-feature-band,
  .food-truck-reviewed,.free-tools-home,.home-academy-callout,.home-directory-callout,
  .home-discovery,.home-discovery-carousel,.next-steps-efficient,.guided-system-card,
  .artist-complete-callout,.artist-directory-cta,.artist-intent-panel,.bar-academy-feature,
  .bartender-station,.chapter-connect-cta,.chapter-connected-learning,.recipe-culture-door,
  .path-progress-card,.search-browse-card,.tool-all-card,.academy-promise-panel,
  .mastery-deepen-panel,.mastery-sidebar,.visual-banner,.whats-new-feature-side,
  .food-truck-snapshot-side,.guide-full-details details
){
  background:var(--kecb-band-paper);
  background-image:none;
  color:var(--kecb-ink);
  border-color:var(--kecb-line);
  box-shadow:var(--kecb-shadow-none);
}
html:root body main :is(
  .expansion-band,.field-center-strip,.decision-band,.founder-principles,
  .k2-dark,.spx-dark,.directory-methodology,.discovery-band,.food-truck-feature-band,
  .food-truck-reviewed,.free-tools-home,.home-academy-callout,.home-directory-callout,
  .home-discovery,.home-discovery-carousel,.next-steps-efficient,.guided-system-card,
  .artist-complete-callout,.artist-directory-cta,.artist-intent-panel,.bar-academy-feature,
  .bartender-station,.chapter-connect-cta,.chapter-connected-learning,.recipe-culture-door,
  .path-progress-card,.search-browse-card,.tool-all-card,.academy-promise-panel,
  .mastery-deepen-panel,.mastery-sidebar,.visual-banner,.whats-new-feature-side,
  .food-truck-snapshot-side,.guide-full-details details
) :is(h1,h2,h3,h4,strong,b){color:var(--kecb-ink)}
html:root body main :is(
  .expansion-band,.field-center-strip,.decision-band,.founder-principles,
  .k2-dark,.spx-dark,.directory-methodology,.discovery-band,.food-truck-feature-band,
  .food-truck-reviewed,.free-tools-home,.home-academy-callout,.home-directory-callout,
  .home-discovery,.home-discovery-carousel,.next-steps-efficient,.guided-system-card,
  .artist-complete-callout,.artist-directory-cta,.artist-intent-panel,.bar-academy-feature,
  .bartender-station,.chapter-connect-cta,.chapter-connected-learning,.recipe-culture-door,
  .path-progress-card,.search-browse-card,.tool-all-card,.academy-promise-panel,
  .mastery-deepen-panel,.mastery-sidebar,.visual-banner,.whats-new-feature-side,
  .food-truck-snapshot-side,.guide-full-details details
) :is(p,li,dd,span,small){color:var(--kecb-ink-soft)}
html:root body main :is(
  .expansion-band,.field-center-strip,.decision-band,.founder-principles,
  .k2-dark,.spx-dark,.directory-methodology,.discovery-band,.food-truck-feature-band,
  .food-truck-reviewed,.free-tools-home,.home-academy-callout,.home-directory-callout,
  .home-discovery,.home-discovery-carousel,.next-steps-efficient,.guided-system-card,
  .artist-complete-callout,.artist-directory-cta,.artist-intent-panel,.bar-academy-feature,
  .bartender-station,.chapter-connect-cta,.chapter-connected-learning,.recipe-culture-door,
  .path-progress-card,.search-browse-card,.tool-all-card,.academy-promise-panel,
  .mastery-deepen-panel,.mastery-sidebar,.visual-banner,.whats-new-feature-side,
  .food-truck-snapshot-side,.guide-full-details details
) :is(.eyebrow,[class*="kicker"]){color:var(--kecb-brass-deep)}

/* The former navy expansion cards are now crisp paper cards on a warm band. */
html:root body main .expansion-band :is(
  .expansion-card,.culture-definition,.resource-link,.system-step,.preservation-tool-card,
  .callout-box,.culture-note,.workflow-card
){
  background:#fff;
  background-image:none;
  color:var(--kecb-ink);
  border-color:var(--kecb-line);
  box-shadow:var(--kecb-shadow-none);
}
html:root body main .expansion-band :is(
  .expansion-card,.culture-definition,.resource-link,.system-step,.preservation-tool-card,
  .callout-box,.culture-note,.workflow-card
) :is(h2,h3,h4,strong,b){color:var(--kecb-ink)}
html:root body main .expansion-band :is(
  .expansion-card,.culture-definition,.resource-link,.system-step,.preservation-tool-card,
  .callout-box,.culture-note,.workflow-card
) :is(p,li,span,small){color:var(--kecb-ink-soft)}
html:root body main .expansion-band :is(.expansion-card,.resource-link,.preservation-tool-card,.culture-note) a{color:var(--kecb-oxblood)}

/* Dark-card variants no longer use navy as decoration. */
html:root body main :is(.spx-card.dark,.academy-assessment-card,.academy-at-glance article,.academy-concept-grid article,.academy-rubric article,.academy-tool-grid article){
  background:#fff;background-image:none;color:var(--kecb-ink);
  border-color:var(--kecb-line);box-shadow:var(--kecb-shadow-none);
}
html:root body main :is(.spx-card.dark,.academy-assessment-card,.academy-at-glance article,.academy-concept-grid article,.academy-rubric article,.academy-tool-grid article) :is(h2,h3,h4,strong){color:var(--kecb-ink)}
html:root body main :is(.spx-card.dark,.academy-assessment-card,.academy-at-glance article,.academy-concept-grid article,.academy-rubric article,.academy-tool-grid article) :is(p,li,span,small){color:var(--kecb-ink-soft)}

/* Secondary navigation may remain dark, but dark means warm near-black—not blue. */
html:root body :is(.culture-subnav,.k2-subnav,.spx-subnav,.bar2-subnav,.speakeasy-nav,.role-quickbar){
  background:var(--kecb-espresso);
  background-image:none;
  color:#f8f1e7;
  border-color:rgba(184,138,72,.42);
  box-shadow:var(--kecb-shadow-none);
}
html:root body :is(.culture-subnav,.k2-subnav,.spx-subnav,.bar2-subnav,.speakeasy-nav,.role-quickbar) a{
  color:#f5eee4;
  border-color:rgba(255,255,255,.16);
}
html:root body :is(.culture-subnav,.k2-subnav,.spx-subnav,.bar2-subnav,.speakeasy-nav,.role-quickbar) a:is(:hover,:focus-visible,[aria-current="page"],.active){
  background:var(--kecb-paper-soft);
  color:var(--kecb-ink);
  border-color:var(--kecb-paper-soft);
}

/* Data insets can stay dark, but use espresso rather than navy. */
html:root body main :is(.working-numbers,.school-footer){
  background:var(--kecb-espresso);
  background-image:none;
  color:#f8f1e7;
  border-color:rgba(184,138,72,.42);
}
html:root body main :is(.working-numbers,.school-footer) :is(h1,h2,h3,h4,strong,p,li,span,small,a){color:#f8f1e7}

/* Start Here and compact primary controls use black, not navy. */
html:root body main .start-here-primary-grid>a:first-child{
  background:var(--kecb-black);
  border-color:var(--kecb-black);
}
html:root body main :is(.surface-light .button.secondary,.dt-hero .dt-button.secondary){
  color:var(--kecb-ink);
  border-color:var(--kecb-ink);
}

/* Large public sections must never resolve to the legacy navy gradient. */

/* ---------- DEPLOY 650 emerging discovery density closure ---------- */
/* Discovery cards own a compact record scale; canonical section h2 sizing must not turn names into page headings. */
/* The PR excerpt remains distinctive, but discovery pages use an editorial inset rather than a billboard. */


/* ---------- DEPLOY 650 legacy blue-surface second sweep ---------- */
/* Smaller legacy families were still able to expose old navy from earlier bundles. */
html:root body main :is(
  .home-hero,.dt-tool-header,.role-library-hero,.spx-preview,.spx-stat,
  .section-image-card,.edu-cta,.front-door-founder
){
  background:var(--kecb-paper-warm);
  background-image:none;
  color:var(--kecb-ink);
  border-color:var(--kecb-line);
  box-shadow:var(--kecb-shadow-none);
}
html:root body main :is(
  .home-hero,.dt-tool-header,.role-library-hero,.spx-preview,.spx-stat,
  .section-image-card,.edu-cta,.front-door-founder
) :is(h1,h2,h3,h4,strong,b){color:var(--kecb-ink)}
html:root body main :is(
  .home-hero,.dt-tool-header,.role-library-hero,.spx-preview,.spx-stat,
  .section-image-card,.edu-cta,.front-door-founder
) :is(p,li,span,small){color:var(--kecb-ink-soft)}
html:root body main .role-library-gate>summary{
  background:#fff;
  background-image:none;
  color:var(--kecb-ink);
  border-color:var(--kecb-line-strong);
  box-shadow:var(--kecb-shadow-none);
}
html:root body main .role-library-gate>summary :is(strong,span,small){color:var(--kecb-ink)}
html:root body main .path-card .path-icon,
html:root body main .section-image-card .card-icon{
  background:var(--kecb-paper-soft);
  background-image:none;
  color:var(--kecb-brass-deep);
  border-color:var(--kecb-line);
}
html:root body main .food-truck-table th{
  background:var(--kecb-espresso);
  background-image:none;
  color:#f8f1e7;
  border-color:rgba(184,138,72,.42);
}
html:root body main :is(.recipe-mobile-actions,.dt-tool-header .button.primary){
  background:var(--kecb-black);
  background-image:none;
  color:#fff;
  border-color:var(--kecb-black);
}
html:root body main .chapter-work-actions a{
  background:#fff;
  background-image:none;
  color:var(--kecb-ink);
  border-color:var(--kecb-line-strong);
}


/* ---------- DEPLOY 656 compact warm continuation band ---------- */
/*
   The runtime inserts .next-steps-efficient between </main> and the footer.
   Earlier no-blue rules were scoped to `main`, so they could not reach the
   actual injected band. Own the component at body scope and keep it warm.
*/
html:root body .next-steps-efficient{
  width:min(var(--max,1180px),calc(100% - 2rem));
  margin:1.05rem auto;
  padding:.78rem .9rem;
  border:1px solid rgba(126,91,48,.28);
  border-radius:var(--kecb-radius-card);
  background:#f3ece3;
  background-image:none;
  color:#211d18;
  box-shadow:var(--kecb-shadow-none);
}
html:root body .next-steps-efficient>.eyebrow,
html:root body .next-steps-efficient p.eyebrow{
  margin:0 0 .12rem;
  color:#7f5c29;
  font-size:max(var(--kecb-type-meta), 14px);
  line-height:1.25;
}
html:root body .next-steps-efficient h2{
  margin:.08rem 0 .62rem;
  color:#211d18;
  font-size:max(var(--kecb-type-meta), clamp(1.55rem,3vw,2.15rem));
  line-height:1.05;
}
html:root body .next-steps-efficient>div{
  gap:.55rem;
}
html:root body .next-steps-efficient a{
  min-height:86px;
  padding:.62rem .7rem;
  border:1px solid rgba(70,54,41,.18);
  border-radius:var(--kecb-radius-card);
  background:#fffdf9;
  color:#211d18;
  box-shadow:var(--kecb-shadow-none);
}
html:root body .next-steps-efficient a:hover,
html:root body .next-steps-efficient a:focus-visible{
  border-color:#9a6f2d;
  background:#fffaf2;
}
html:root body .next-steps-efficient small{
  color:#7f5c29;
  font-size:max(var(--kecb-type-meta), 14px);
  line-height:1.2;
}
html:root body .next-steps-efficient strong{
  margin:.24rem 0;
  color:#211d18;
  font-size:max(var(--kecb-type-meta), var(--kecb-type-small));
  line-height:1.25;
}
html:root body .next-steps-efficient span{
  margin-top:auto;
  color:#8f2d24;
  font-size:max(var(--kecb-type-meta), 14px);
  line-height:1.2;
}
@media(max-width:650px){
  html:root body .next-steps-efficient{width:calc(100% - 1rem);margin:.8rem .5rem;padding:.68rem}
  html:root body .next-steps-efficient h2{font-size:max(var(--kecb-type-meta), 1.55rem);margin-bottom:.52rem}
  html:root body .next-steps-efficient a{min-height:76px}
}


/* ---------- DEPLOY 659 audit-remediation: semantic contrast ownership ---------- */
/*
   These rules deliberately target semantic classes rather than bare descendant tags.
   That prevents a later surface repaint from inheriting half of a dark-theme component.
*/
html:root body main .chapter-connect-cta .chapter-connect-action{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:42px;padding:.55rem .72rem;border:1px solid var(--kecb-line-strong);
  border-radius:var(--kecb-radius-card);background:#fffdf9;color:#211d18;text-decoration:none;font-weight:750;
}
html:root body main .chapter-connect-cta .chapter-connect-action:hover,
html:root body main .chapter-connect-cta .chapter-connect-action:focus-visible{background:#fff7ea;border-color:#8f2d24;color:#6f211c}
html:root body main .field-checklist .field-checklist-item{color:#2c2925}
html:root body main .recipe-culture-door .recipe-culture-link{color:#7d3028;font-weight:800;text-decoration-thickness:.08em;text-underline-offset:.16em}
html:root body main .spx-stats .spx-stat{background:#fffdf9;background-image:none;border:1px solid var(--kecb-line);color:#17191a}
html:root body main .spx-stats .spx-stat .spx-stat-value{color:#17191a}
html:root body main .spx-stats .spx-stat .spx-stat-label{color:#50565a}
html:root body main .start-here-primary-grid>a:first-child .start-here-choice-detail{color:#e9edf2;opacity:1}


/* ---------- DEPLOY 660 structural continuity + type + tap-target closure ---------- */
/* Exact destination uses the dark state; section descendants use a quieter location state. */
@media(max-width:720px){
  html:root body .ux-mobile-dock a[aria-current="location"]{
    background:var(--kecb-paper-soft);
    color:var(--kecb-oxblood);
    box-shadow:inset 0 0 0 1px var(--kecb-line-strong);
  }
}
/* Editorial reading copy may never collapse into microcopy even when legacy bundles carry smaller sizes. */
html:root body main :is(.chapter-content,.prose-section,.kitchen-longform,.legal-section,.analysis-body,.guide-body,.lesson-content) :is(p,li,dd){
  font-size:max(var(--kecb-type-meta), max(15px,1em));
}
/* The only confirmed WCAG 2.5.8 cluster: adjacent chapter tool links need a real gap and target height. */
html:root body main .chapter-tool-grid{gap:.62rem}
html:root body main .chapter-tool-card{
  display:grid;
  align-content:center;
  gap:.18rem;
  min-height:44px;
  padding:.62rem .72rem;
}
/* Unprimed continuity is intentionally lighter than entity-specific continuity, but always visible. */
html:root body .kecb-handoff-editorial.kecb-handoff-unprimed{
  background:#fbf6ee;
  border-color:#ded1bf;
}

/* ---- handoff 634 ---- */
/* KECB sitewide continuity handoff layer — DEPLOY 634 */
.kecb-handoff{margin:0;border-block:1px solid color-mix(in srgb,currentColor 13%,transparent);background:color-mix(in srgb,#fff 96%,#d8c7a5 4%);color:#17202a}.kecb-handoff-inner{max-width:1180px;margin:0 auto;padding:.62rem 1rem;display:flex;align-items:center;gap:.75rem;justify-content:space-between}.kecb-handoff p{margin:0;display:flex;align-items:baseline;gap:.35rem;min-width:0}.kecb-handoff p span{font-size:max(var(--kecb-type-meta), .7rem);letter-spacing:.08em;text-transform:uppercase;color:#67707a;white-space:nowrap}.kecb-handoff p strong{font-size:max(var(--kecb-type-meta), var(--kecb-type-micro));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kecb-handoff nav{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.kecb-handoff a,.kecb-handoff button{min-height:36px;padding:.42rem .65rem;border:1px solid #c9c2b7;border-radius:var(--kecb-radius-pill);background:#fff;color:#243448;font:inherit;font-size:max(var(--kecb-type-meta), .78rem);font-weight:700;line-height:1.05;text-decoration:none;cursor:pointer}.kecb-handoff a:hover,.kecb-handoff button:hover{border-color:#8d7458;background:#fbf8f3}.kecb-handoff a:focus-visible,.kecb-handoff button:focus-visible,.kecb-project-chooser button:focus-visible,.kecb-pending-project-item button:focus-visible{outline:3px solid #7c3b2a;outline-offset:2px}.kecb-handoff-tool{margin-top:1.2rem}.kecb-handoff-event{margin:1rem 0;border:1px solid #d4cec4;border-radius:var(--kecb-radius-card)}.kecb-handoff-event .kecb-handoff-inner{padding:.65rem .75rem}.kecb-inline-handoffs{margin:.55rem 0 0;font-size:max(var(--kecb-type-meta), var(--kecb-type-micro))}.kecb-inline-handoffs a{font-weight:700}.kecb-project-chooser{width:min(520px,calc(100% - 2rem));border:1px solid #c9c2b7;border-radius:var(--kecb-radius-card);padding:0;background:#fff;color:#17202a;box-shadow:var(--kecb-shadow-card)}.kecb-project-chooser::backdrop{background:rgba(9,14,20,.52)}.kecb-project-chooser form{padding:1rem}.kecb-project-chooser header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.kecb-project-chooser header div{display:grid;gap:.18rem}.kecb-project-chooser header small{font-size:max(var(--kecb-type-meta), .7rem);text-transform:uppercase;letter-spacing:.08em;color:#69717a}.kecb-project-chooser header strong{font-size:max(var(--kecb-type-meta), 1rem)}.kecb-project-chooser header>button{width:40px;height:40px;border:0;background:transparent;font-size:max(var(--kecb-type-meta), 1.5rem);cursor:pointer}.kecb-project-choices{display:grid;gap:.45rem;margin:.9rem 0}.kecb-project-choices button,.kecb-pending-project-item button{min-height:44px;border:1px solid #c9c2b7;border-radius:var(--kecb-radius-card);background:#fff;color:#243448;font:inherit;font-weight:750;text-align:left;padding:.65rem .75rem;cursor:pointer}.kecb-project-chooser p{margin:.75rem 0 0;color:#67707a;font-size:max(var(--kecb-type-meta), .8rem)}.kecb-pending-project-item{margin:0 0 1rem;padding:.75rem .9rem;border-left:3px solid #8d7458;background:#f8f5ef;display:flex;justify-content:space-between;gap:.75rem;align-items:center}.kecb-pending-project-item p{margin:0;display:grid;gap:.12rem}.kecb-pending-project-item p span{font-size:max(var(--kecb-type-meta), .68rem);text-transform:uppercase;letter-spacing:.08em;color:#69717a}.kecb-pending-project-item p strong{font-size:max(var(--kecb-type-meta), var(--kecb-type-small))}.kecb-pending-project-item p small{color:#69717a}.kecb-pending-project-item [data-kecb-pending-actions]{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.kecb-pending-project-item [data-kecb-pending-actions] small{max-width:32rem;color:#5d6670}.kecb-handoff button[data-kecb-handoff-add]{border-style:dashed}@media(max-width:760px){.kecb-handoff-inner{align-items:flex-start;flex-direction:column}.kecb-handoff nav{justify-content:flex-start;width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:.1rem}.kecb-handoff a,.kecb-handoff button{white-space:nowrap;min-height:40px}.kecb-pending-project-item{align-items:flex-start;flex-direction:column}.kecb-pending-project-item [data-kecb-pending-actions]{justify-content:flex-start;width:100%}}@media(prefers-color-scheme:dark){.kecb-handoff{background:#151a20;color:#f4efe7;border-color:#343b43}.kecb-handoff p span{color:#aeb6c0}.kecb-handoff a,.kecb-handoff button{background:#1d242c;color:#f4efe7;border-color:#49525c}.kecb-handoff a:hover,.kecb-handoff button:hover{background:#252e37}.kecb-project-chooser{background:#171d24;color:#f4efe7;border-color:#49525c}.kecb-project-choices button,.kecb-pending-project-item button{background:#1d242c;color:#f4efe7;border-color:#49525c}.kecb-pending-project-item{background:#1a2027;color:#f4efe7}.kecb-project-chooser p,.kecb-pending-project-item p small,.kecb-pending-project-item p span{color:#b6bdc6}}

.kecb-handoff-editorial{margin:.55rem 0 1rem;border-block:1px solid color-mix(in srgb,currentColor 10%,transparent);background:color-mix(in srgb,#fff 98%,#d8c7a5 2%)}.kecb-handoff-editorial .kecb-handoff-inner{padding:.5rem .9rem}.kecb-handoff-editorial p strong{font-size:max(var(--kecb-type-meta), var(--kecb-type-micro))}.kecb-handoff-editorial a,.kecb-handoff-editorial button{font-size:max(var(--kecb-type-meta), .74rem);min-height:34px;padding:.38rem .58rem}@media(max-width:760px){.kecb-handoff-editorial{margin:.4rem 0 .8rem}.kecb-handoff-editorial .kecb-handoff-inner{padding:.5rem .75rem}}

.kecb-handoff-recent{max-width:1180px;margin:.28rem auto .72rem;padding:0 1rem;display:flex;align-items:baseline;gap:.45rem;min-width:0;font-size:max(var(--kecb-type-meta), .76rem);color:#5f6872}.kecb-handoff-recent span{font-size:max(var(--kecb-type-meta), .66rem);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.kecb-handoff-recent a{color:#314a65;font-weight:750;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kecb-handoff-recent a:hover{text-decoration:underline}.kecb-handoff-recent a:focus-visible{outline:3px solid #7c3b2a;outline-offset:2px}
@media(prefers-color-scheme:dark){.kecb-handoff-editorial{background:color-mix(in srgb,#151a20 96%,#d8c7a5 4%);color:#f4efe7;border-color:#343b43}.kecb-handoff-editorial p span{color:#aeb6c0}.kecb-handoff-recent{color:#aeb6c0}.kecb-handoff-recent a{color:#d7e3ef}}


/* DEPLOY-674: default continuity rail must remain legible in dark mode. */
@media(prefers-color-scheme:dark){
  html:root body .kecb-handoff-editorial.kecb-handoff-unprimed{
    background:color-mix(in srgb,#151a20 96%,#d8c7a5 4%);
    color:#f4efe7;
    border-color:#343b43;
  }
}
/* The book-source label is presentation text, not a document heading. */
.book-source-copy .book-source-title{
  margin:.1rem 0 .25rem;
  font-family:Georgia,"Times New Roman",serif;
  font-size:max(var(--kecb-type-meta), clamp(var(--kecb-type-subhead),2vw,1.4rem));
  font-weight:900;
  line-height:1.12;
  color:inherit;
}
.kecb-cross-craft-bridge{margin:.7rem 0 0;font-size:max(var(--kecb-type-meta), max(14px,var(--kecb-type-micro)));line-height:1.45}
.kecb-cross-craft-bridge a{font-weight:800}

/* DEPLOY-675 source-asset hygiene: runtime styling unchanged; versioned source asset is current and provenance-clean. */

/* DEPLOY 686: centralized site-header-v3 brand color ownership for handoff-covered stacks. */
html:root body .site-header-v3 .brand strong{color:#fff}
html:root body .site-header-v3 .brand small{color:#ded8ce}

/* DEPLOY 687: centralized brand-mark color ownership for handoff-covered stacks. */
html:root body .brand-mark{color:#fff}
/* KECB immersive cross-surface continuity — DEPLOY 699 */
.kecb-handoff-immersive .kecb-handoff-inner>p>span{letter-spacing:.09em}.kecb-story-doors{display:flex;gap:.38rem;flex-wrap:wrap;align-items:center;margin:.48rem 0 .18rem}.kecb-story-doors a{display:inline-flex;align-items:center;min-height:34px;padding:.36rem .58rem;border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:var(--kecb-radius-pill);background:color-mix(in srgb,#fff 97%,#d8c7a5 3%);color:#243448;font-size:max(var(--kecb-type-meta), .76rem);font-weight:760;line-height:1.1;text-decoration:none}.kecb-story-doors a:hover{border-color:#8d7458;background:#fbf8f3}.kecb-story-doors a:focus-visible,.kecb-exploration-thread a:focus-visible,.kecb-search-context a:focus-visible{outline:3px solid #7c3b2a;outline-offset:2px}.kecb-exploration-thread{max-width:1180px;margin:.3rem auto .7rem;padding:0 1rem;display:flex;align-items:baseline;gap:.42rem;min-width:0;color:#5f6872;font-size:max(var(--kecb-type-meta), .76rem)}.kecb-exploration-thread span,.kecb-search-context span{font-size:max(var(--kecb-type-meta), .66rem);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.kecb-exploration-thread a,.kecb-search-context a{color:#314a65;font-weight:760;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kecb-search-context{max-width:1180px;margin:.6rem auto .45rem;padding:.5rem .8rem;border-left:3px solid #8d7458;background:#f8f5ef;display:flex;align-items:baseline;gap:.45rem;color:#5f6872}.tonight-card>.tonight-main>.kecb-story-doors{margin-top:.42rem}.sh-detail>.kecb-story-doors{margin-top:.55rem}@media(max-width:760px){.kecb-story-doors{overflow-x:auto;flex-wrap:nowrap;padding-bottom:.08rem}.kecb-story-doors a{white-space:nowrap;min-height:40px}.kecb-exploration-thread,.kecb-search-context{align-items:flex-start;flex-direction:column;gap:.18rem}.kecb-search-context{margin:.4rem .75rem}}@media(prefers-color-scheme:dark){.kecb-story-doors a{background:#1d242c;color:#f4efe7;border-color:#49525c}.kecb-story-doors a:hover{background:#252e37}.kecb-exploration-thread,.kecb-search-context{color:#aeb6c0}.kecb-exploration-thread a,.kecb-search-context a{color:#d7e3ef}.kecb-search-context{background:#1a2027}}


/* ---------- DEPLOY 705: cross-surface immersion ---------- */
@view-transition{navigation:auto}
::view-transition-old(root){animation:120ms ease both kecb-page-out}
::view-transition-new(root){animation:180ms cubic-bezier(.2,.7,.2,1) 20ms both kecb-page-in}
@keyframes kecb-page-out{to{opacity:.92;transform:translateY(-2px)}}
@keyframes kecb-page-in{from{opacity:.94;transform:translateY(5px)}to{opacity:1;transform:none}}
.kecb-journey-bridge{max-width:1180px;margin:clamp(1.6rem,4vw,3rem) auto 0;padding:1rem 0;border-top:1px solid var(--kecb-line,#d8d0c4);border-bottom:1px solid var(--kecb-line,#d8d0c4)}
.kecb-journey-bridge>p{display:flex;align-items:baseline;gap:.55rem;margin:0 0 .72rem;color:var(--kecb-ink,#171717)}
.kecb-journey-bridge>p span{font-size:max(var(--kecb-type-meta), .72rem);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--kecb-brass-deep,#866523)}
.kecb-journey-bridge>p strong{font-family:var(--kecb-serif,Georgia,serif);font-size:max(var(--kecb-type-meta), 1rem)}
.kecb-journey-bridge>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}
.kecb-journey-bridge a{display:flex;flex-direction:column;justify-content:center;min-height:64px;padding:.62rem .7rem;border:1px solid var(--kecb-line,#d8d0c4);border-radius:var(--kecb-radius-card);background:#fff;color:var(--kecb-ink,#171717);text-decoration:none;box-shadow:var(--kecb-shadow-none)}
.kecb-journey-bridge a:hover{border-color:var(--kecb-brass,#b28b3c);background:var(--kecb-paper-warm,#faf6ed)}
.kecb-journey-bridge a small{font-size:max(var(--kecb-type-meta), .68rem);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--kecb-ink-soft,#625c55)}
.kecb-journey-bridge a strong{margin-top:.18rem;font:700 .92rem/1.25 var(--kecb-serif,Georgia,serif)}
@media(max-width:760px){.kecb-journey-bridge{margin-top:1.35rem;padding:.85rem 0}.kecb-journey-bridge>div{grid-template-columns:1fr}.kecb-journey-bridge a{min-height:48px}.kecb-journey-bridge>p{display:block}.kecb-journey-bridge>p strong{display:block;margin-top:.1rem}}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}.kecb-journey-bridge a{transition:none}}
@media(prefers-color-scheme:dark){.kecb-journey-bridge a{background:var(--kecb-low-panel,#182738);color:var(--kecb-low-text,#eef2f4);border-color:var(--kecb-low-line,#36485d)}.kecb-journey-bridge a:hover{background:#1d2d3f}.kecb-journey-bridge a small{color:var(--kecb-low-muted,#b9c5cf)}}

/* ---------- DEPLOY 728 connected-learning card contrast global closure ---------- */
/*
   The light editorial connected-learning band must own the complete card surface.
   Earlier book CSS can still declare .academy-link-card as a dark/navy card with. Scope the correction to connected-learning only so academy dark
   components elsewhere keep their intended surface ownership.
*/
html:root body:not(.reader-low-light) main .chapter-connected-learning .academy-link-card{
  background:var(--kecb-white,#fff);
  background-image:none;
  color:var(--kecb-ink,#17191a);
  border-color:var(--kecb-line-strong,#c7b9a5);
  box-shadow:var(--kecb-shadow-none);
}
html:root body:not(.reader-low-light) main .chapter-connected-learning .academy-link-card :is(strong,b){
  color:var(--kecb-ink,#17191a);
}
html:root body:not(.reader-low-light) main .chapter-connected-learning .academy-link-card :is(span,p,small){
  color:var(--kecb-ink-soft,#50565a);
  opacity:1;
}
html:root body:not(.reader-low-light) main .chapter-connected-learning .academy-link-card:is(:hover,:focus-visible){
  background:var(--kecb-paper,#fffdf9);
  border-color:var(--kecb-brass,#b88a48);
  color:var(--kecb-ink,#17191a);
}
/* Keep the reader's explicit low-light mode internally consistent and legible. */
html:root body.reader-low-light main .chapter-connected-learning .academy-link-card{
  background:#111a24;
  background-image:none;
  color:var(--kecb-low-text,#eef2f4);
  border-color:var(--kecb-low-line,#425160);
  box-shadow:var(--kecb-shadow-none);
}
html:root body.reader-low-light main .chapter-connected-learning .academy-link-card :is(strong,b,span,p,small){
  color:var(--kecb-low-text,#eef2f4);
  opacity:1;
}

/* DEPLOY-732 — continuity text floor */
html:root body .kecb-handoff p span,html:root body .kecb-handoff a,html:root body .kecb-handoff button,html:root body .kecb-handoff-editorial a,html:root body .kecb-handoff-editorial button,html:root body .kecb-handoff-recent,html:root body .kecb-handoff-recent span,html:root body .kecb-handoff-recent a,html:root body .kecb-story-doors a,html:root body .kecb-exploration-thread,html:root body .kecb-exploration-thread span,html:root body .kecb-exploration-thread a,html:root body .kecb-search-context,html:root body .kecb-search-context span,html:root body .kecb-search-context a{font-size:max(var(--kecb-type-meta), max(14px,.8125rem));line-height:1.25}


/* ---------- DEPLOY 733: section rhythm system ---------- */
/*
   Repeated content families share three spacing tokens. This intentionally does
   not flatten heroes, live-event controls, venue maps, or dense operational UI.
*/
html:root{
  --kecb-rhythm-compact:clamp(1.1rem,2.2vw,1.6rem);
  --kecb-rhythm-standard:clamp(1.75rem,3.5vw,2.6rem);
  --kecb-rhythm-major:clamp(2.35rem,4.6vw,3.6rem);
}
html:root body main > :is(
  .fs-section,.bartender-section,.k2-section,.bar2-section,.spx-section,
  .edu-section,.upgrade-section,.dt-section,.discovery-section,.system-section,
  .kitchen-section,.food-truck-section,.topic-section,.si-section
){padding-block:var(--kecb-rhythm-standard)}
html:root body main > :is(
  .legal-section,.tool-editorial-brief,.tool-guide-bridge,.tool-legal-ack,
  .tool-workspace,.tool-source,.tool-use-policy
){padding-block:var(--kecb-rhythm-compact)}
html:root body main > :is(
  .kecb-related,.kecb-related-links,.tool-related-next,.kecb-semantic-related
){margin-block-start:var(--kecb-rhythm-standard)}
html:root body main > :is(
  .book-source-banner,.working-numbers,.sensory-standard,.service-execution
){margin-block-start:var(--kecb-rhythm-compact)}
html:root body main > :is(
  .master-reference,.role-reading-path,.role-guided-paths,.role-field-centers
){padding-block:var(--kecb-rhythm-major)}
@media(max-width:650px){
  html:root body main > :is(
    .fs-section,.bartender-section,.k2-section,.bar2-section,.spx-section,
    .edu-section,.upgrade-section,.dt-section,.discovery-section,.system-section,
    .kitchen-section,.food-truck-section,.topic-section,.si-section
  ){padding-block:var(--kecb-rhythm-standard)}
}
}
