/* Metric-matched fallback so the Fraunces swap does not shift layout */
@font-face{font-family:"Fraunces Fallback";src:local("Times New Roman"),local("Times");size-adjust:90%;ascent-override:96%;descent-override:26%;line-gap-override:0%}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:300;line-height:1.02;margin:0 0 var(--space-4);letter-spacing:-.015em;font-variation-settings:"opsz" 144,"SOFT" 30}
h1{font-size:var(--text-hero)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl);font-weight:400}
h1 em,h2 em{font-style:italic;font-weight:300;color:var(--accent-soft)}
p{margin:0 0 var(--space-4)}
a{color:inherit;text-decoration:none;transition:color var(--duration-fast)}
a:hover{color:var(--accent-soft)}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--accent);color:var(--accent-ink)}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.container--narrow{max-width:900px}
.eyebrow{display:inline-flex;align-items:center;gap:.7rem;font-size:var(--text-xs);letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-6);font-weight:500}
.eyebrow::before{content:"";width:32px;height:1px;background:currentColor;opacity:.7}
.muted{color:var(--text-2)}.dim{color:var(--text-3)}.serif{font-family:var(--font-display);font-weight:400}.italic{font-style:italic}
.lede{font-size:var(--text-lg);color:var(--text-2);line-height:1.5;max-width:56ch}
.section{padding:var(--space-section) 0}.section--tight{padding:calc(var(--space-section)*.55) 0}
.divider{height:1px;background:var(--line)}
.grid{display:grid;gap:var(--space-6)}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.stack{display:flex;flex-direction:column;gap:var(--space-4)}.row{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center}.between{justify-content:space-between}.center{text-align:center}
.mt-8{margin-top:var(--space-8)}.mt-12{margin-top:var(--space-12)}.mb-8{margin-bottom:var(--space-8)}
.hidden{display:none!important}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.plain{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem;color:var(--text-2)}
.plain li{padding-left:1.4rem;position:relative}.plain li::before{content:"";position:absolute;left:0;top:.7em;width:.7rem;height:1px;background:var(--accent)}
.plain b{color:var(--text);font-weight:500}
.faq dt{font-family:var(--font-display);font-size:1.35rem;font-weight:400;margin-top:var(--space-6)}.faq dd{margin:.4rem 0 0;color:var(--text-2)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{
  body{background:#fff;color:#111}
  .nav,.footer,.no-print,.skip,.toast{display:none!important}
  .panel,.feature{border:1px solid #ddd;background:#fff}
  .muted,.dim,.plain,.faq dd,.step p{color:#333}
  a{color:#111}h1,h2,h3{color:#000}
}
