/* Strive self-hosted fonts — Fontsource (same files Google Fonts serves).
   Families/weights match the previous Google Fonts <link> tags exactly. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/static/fonts/inter-latin-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/static/fonts/inter-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 100 1000;
  src: url(/static/fonts/dm-sans-latin-ext-opsz-normal.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 100 1000;
  src: url(/static/fonts/dm-sans-latin-opsz-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/static/fonts/hanken-grotesk-latin-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/static/fonts/hanken-grotesk-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'DM Serif Display';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/static/fonts/dm-serif-display-latin-ext-400-normal.woff2) format('woff2'), url(/static/fonts/dm-serif-display-latin-ext-400-normal.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'DM Serif Display';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/static/fonts/dm-serif-display-latin-400-normal.woff2) format('woff2'), url(/static/fonts/dm-serif-display-latin-400-normal.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'DM Serif Display';
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src: url(/static/fonts/dm-serif-display-latin-ext-400-italic.woff2) format('woff2'), url(/static/fonts/dm-serif-display-latin-ext-400-italic.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'DM Serif Display';
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src: url(/static/fonts/dm-serif-display-latin-400-italic.woff2) format('woff2'), url(/static/fonts/dm-serif-display-latin-400-italic.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* ===== Tap polish — touch devices only; desktop rendering unchanged ===== */
*{-webkit-tap-highlight-color:transparent}
button,a,[role=button],input[type=submit],input[type=button],label,summary,select{touch-action:manipulation}
@media (hover:none){
  button:active,a:active,[role=button]:active,.btn:active,.cta:active{opacity:.72;transition:opacity .04s ease}
}


/* ===== Skeleton loading (light surfaces; honors reduced-motion) ===== */
.sk{position:relative;overflow:hidden;background:#e9e9e6;border-radius:8px}
.sk::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);animation:sk-shine 1.25s ease-in-out infinite}
.sk-ln{height:12px;border-radius:6px}
@keyframes sk-shine{100%{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){.sk::after{animation:none}}


/* ===== Score-history chart (crisp HTML-overlay labels) ===== */
.sc-plot{position:relative;height:200px;margin-top:14px}
.sc-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.sc-grid{stroke:#eeeeec;stroke-width:1;vector-effect:non-scaling-stroke}
.sc-dot{position:absolute;width:10px;height:10px;border-radius:50%;background:#2055d6;border:2.5px solid #fff;box-shadow:0 1px 4px rgba(32,85,214,.4);transform:translate(-50%,-50%);z-index:2}
.sc-dot.lo{background:#64748b;box-shadow:0 1px 4px rgba(100,116,139,.4)}
.sc-val{position:absolute;transform:translate(-50%,-175%);font-size:13px;font-weight:800;color:#1a1a18;white-space:nowrap;z-index:3}
.sc-yax span{position:absolute;left:0;transform:translateY(-50%);font-size:11px;font-weight:600;color:#b4b4af;background:linear-gradient(90deg,var(--card,#fff) 68%,transparent);padding-right:10px;z-index:1}
.sc-xax{position:relative;height:16px;margin-top:10px}
.sc-xax span{position:absolute;transform:translateX(-50%);font-size:11px;color:#9a9a95;white-space:nowrap}
.sc-best{position:absolute;top:-6px;right:0;font-size:11.5px;font-weight:700;color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:9px;padding:4px 11px}
