/* base.css — typography and global element defaults */
body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--fs-300);transition:background-color .3s var(--ease),color .3s var(--ease)}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.08;letter-spacing:-.01em}
h1{font-size:clamp(2.6rem,6.2vw,4.6rem);font-weight:800}
h2{font-size:clamp(1.9rem,3.6vw,3rem);font-weight:800}
h3{font-size:var(--fs-500)}
h4{font-size:var(--fs-400)}
p{color:var(--muted);max-width:64ch}
p+p{margin-top:var(--sp-4)}
strong{color:var(--text);font-weight:600}
a{transition:color .15s var(--ease)}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;border-radius:6px}
::selection{background:var(--primary);color:var(--on-primary)}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:var(--sp-4);top:-120px;z-index:1000;background:var(--cyan);color:#04101f;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);font-weight:700}
.skip-link:focus{top:var(--sp-3)}
.no-scroll{overflow:hidden}
.text-grad{background:var(--grad-hot);-webkit-background-clip:text;background-clip:text;color:transparent}

/* rhythm between headings, copy and buttons */
h2+p,h3+p{margin-top:var(--sp-4)}
p+.btn-row,.fine+.btn-row{margin-top:var(--sp-5)}
h2+.chips,h2+.tick-list{margin-top:var(--sp-5)}
