.scan-hero{padding-top:72px}
.scan-title{font-size:clamp(36px,5vw,58px);line-height:1.08;max-width:820px}
.scan-hero .lead{max-width:640px}
.scan-form{max-width:640px;margin-top:8px}
.scan-form label{display:block;font-size:14px;color:var(--ink-2);margin-bottom:8px}
.form-error{color:#9B2C1F;font-size:14px;min-height:20px;margin:8px 0 0}
.fineprint{font-size:14px;color:var(--ink-3);max-width:640px;margin-top:20px}
.results[hidden],#report[hidden]{display:none}
.score-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:40px;align-items:center;margin-bottom:48px}
.score-ring{position:relative;width:150px;height:150px}
.score-ring svg{width:150px;height:150px;transform:rotate(-90deg)}
.score-ring .track{fill:none;stroke:var(--rule);stroke-width:6}
.score-ring .bar{fill:none;stroke:var(--ink);stroke-width:6;stroke-linecap:round;stroke-dasharray:326.7;stroke-dashoffset:326.7;transition:stroke-dashoffset 1.2s cubic-bezier(.2,.7,.2,1)}
.score-num{position:absolute;inset:0;display:flex;align-items:baseline;justify-content:center;padding-top:52px;font-family:var(--serif);font-size:44px;line-height:1}
.score-num small{font-family:var(--sans);font-size:14px;color:var(--ink-3);margin-left:2px}
.score-row h2{font-size:clamp(28px,3.2vw,38px);margin-bottom:10px}
.checks{list-style:none;padding:0;margin:0 0 24px;border-top:1px solid var(--rule)}
.check{display:grid;grid-template-columns:110px minmax(0,1fr) 70px;gap:20px;padding:22px 0;border-bottom:1px solid var(--rule);align-items:start}
.badge{display:inline-block;font-size:12px;letter-spacing:.06em;padding:4px 10px;border-radius:999px;border:1px solid currentColor;white-space:nowrap}
.badge.pass{color:#2F5D4E}
.badge.warn{color:#8A5A12}
.badge.fail{color:#9B2C1F}
.badge.info{color:var(--ink-3)}
.check h3{font-size:20px;margin-bottom:6px}
.check p{margin:0 0 6px;color:var(--ink-2);font-size:15px}
.check .why{color:var(--ink-3);font-size:14px}
.check code{font-size:13px;background:var(--paper);border:1px solid var(--rule);border-radius:3px;padding:2px 6px;word-break:break-all}
.pts{font-size:13px;color:var(--ink-3);text-align:right;white-space:nowrap}
.loading .btn{opacity:.6;pointer-events:none}
@media (max-width:700px){
  .score-row{grid-template-columns:minmax(0,1fr);gap:20px}
  .check{grid-template-columns:minmax(0,1fr);gap:8px}
  .pts{text-align:left}
}
