/* theme-core v1.0.1 sha256:9b8991d44aff — copied in at build time; edit theme-core/core.css, not this file */
/* theme-core: shared type + spacing + safe tokens. NO colors, NO fonts-family, NO backgrounds here:
   each site keeps its own color layer (aicep.ai keeps its locked look). Built from Maps type.css v1 + site type-v1.css (2026-10-27). v1.0.1: build stamp carries no machine path. */
:root{
  /* type scale */
  --fs-body:1.28125rem;      /* ~20.5px */
  --lh-body:1.6;
  --fs-h1:2.5rem;--fs-h2:1.875rem;--fs-h3:1.5rem;--fs-h4:1.25rem;
  --fs-min:1rem;             /* 16px floor for any small UI text */
  --fs-label:1.0625rem;      /* small-caps / eyebrow labels, enlarged from ~12-13px */
  --ls-label:.06em;
  /* spacing scale */
  --sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;
  --measure:72ch;
  /* contrast-safe token NAMES for site color layers to fill (not applied here) */
  --tc-min-contrast-text:4.5;--tc-min-contrast-large:3;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-size:var(--fs-body)!important;line-height:var(--lh-body)!important;overflow-wrap:break-word}
h1{font-size:max(var(--fs-h1),1em)!important;line-height:1.2!important}
h2{font-size:var(--fs-h2)!important;line-height:1.25!important}
h3{font-size:var(--fs-h3)!important;line-height:1.3!important}
h4{font-size:var(--fs-h4)!important}
p,li,dd,dt,blockquote,td,th{font-size:max(var(--fs-min),1em)}
:is(small,caption,button,.btn,.button,label,select,input,textarea,footer,figcaption,summary,code,kbd,nav a,
  .tag,.chip,.pill,.badge,.meta,.prog,.draft,.back,.banner,.due,.ph,
  .cms-bar button,.cms-status,.cms-info,.tbtn,.pmb-btn,.pmb-status,time){font-size:max(var(--fs-min),1em)!important}
/* enlarged small-caps / eyebrow labels */
:is(.eyebrow,.kicker,.overline,.label,.section-label,[class*="smallcaps"],[class*="small-caps"]){
  font-size:max(var(--fs-label),1em)!important;letter-spacing:var(--ls-label)}
/* wrapping safety (prevents horizontal overflow) */
table{max-width:100%}td,th,code{overflow-wrap:anywhere}
pre{white-space:pre-wrap;overflow-wrap:anywhere}
.panel,.card,section,article{min-width:0;overflow-wrap:break-word}
.card h3{overflow-wrap:anywhere}
img,video,iframe,embed{max-width:100%}
input,select,textarea{min-width:0;max-width:100%}
.search{max-width:100%;box-sizing:border-box}
@media(max-width:600px){
  :root{--fs-body:1.1875rem;--fs-h1:2rem;--fs-h2:1.625rem;--fs-h3:1.375rem}
  nav,nav ul,.nav-links{flex-wrap:wrap;row-gap:.25rem}
}
