/* Base reset + typography + element defaults */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-ui);
  font-size:var(--fs-14);
  line-height:var(--lh-body);
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-variant-numeric:tabular-nums;
  overscroll-behavior-y:none;
}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:var(--lh-tight);margin:0;color:var(--ink);letter-spacing:-.01em}
h1{font-size:var(--fs-36)} h2{font-size:var(--fs-28)} h3{font-size:var(--fs-22)} h4{font-size:var(--fs-18)}
p{margin:0}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
small{font-size:var(--fs-12)}
button{font-family:inherit}
img{max-width:100%;display:block}
::selection{background:var(--accent-tint);color:var(--ink)}

/* Section / overline labels (small caps premium touch) */
.overline{font-size:var(--fs-12);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;display:flex;align-items:center;gap:6px}
.overline>svg{width:13px;height:13px;flex:none;opacity:.85}
.muted{color:var(--ink-muted)} .faint{color:var(--ink-faint)}
.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.amount{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.serif{font-family:var(--font-display)}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Focus ring */
:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--r-sm)}

/* Scrollbar (subtle) */
*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px;border:3px solid transparent;background-clip:content-box}

/* Utility flex/grid */
.row{display:flex;align-items:center;gap:var(--s3)}
.row.wrap{flex-wrap:wrap}
.col{display:flex;flex-direction:column;gap:var(--s3)}
.between{justify-content:space-between}
.center{justify-content:center;align-items:center}
.grow{flex:1 1 auto;min-width:0}
.gap2{gap:var(--s2)} .gap4{gap:var(--s4)} .gap6{gap:var(--s6)}
.hide{display:none!important}
.spacer{flex:1 1 auto}
.mt2{margin-top:var(--s2)} .mt4{margin-top:var(--s4)} .mt6{margin-top:var(--s6)}
.w-full{width:100%}
.text-right{text-align:right} .text-center{text-align:center}
