.score-page { --score-dark:#1b2117; --score-lime:#bed45c; --score-rule:#777f70; background:var(--paper); }
.official-descriptor-page { --descriptor-index-offset:128px; }
.score-hero { position:relative; overflow:hidden; height:auto; min-height:var(--editorial-hero-height); border-bottom:var(--border-strong); background:var(--score-dark); color:#f6f5ed; }
.score-hero::before { content:""; position:absolute; inset:0; opacity:.1; pointer-events:none; background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px); background-size:68px 68px; }
.score-hero .container { position:relative; z-index:1; }
.score-hero .breadcrumbs ol { color:#aeb6a7; }
.score-hero .breadcrumbs [aria-current="page"] { color:#e2e5de; }
.score-hero .breadcrumbs a:hover { color:var(--score-lime); }
.score-hero-grid { height:auto; min-height:calc(var(--editorial-hero-height) - 35px); display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); align-items:end; gap:54px; padding:30px 0 38px; }
.score-hero-copy { animation:score-rise 480ms var(--ease) both; }
.score-hero-copy .kicker { color:var(--score-lime); }
.score-hero-copy h1 { max-width:18ch; margin:16px 0 20px; overflow-wrap:anywhere; color:#fff; font-size:clamp(3rem,4.5vw,4.5rem); font-weight:620; line-height:.9; letter-spacing:-.065em; }
.score-hero-copy > p:not(.kicker) { max-width:61ch; margin:0; color:#cbd1c6; font-size:var(--step-1); line-height:1.65; }
.score-resource-links { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.score-resource-links a { min-height:46px; display:inline-flex; align-items:center; justify-content:space-between; gap:25px; padding:0 14px; border:1px solid #5e6857; color:#fff; font-size:13px; font-weight:650; text-decoration:none; transition:background var(--duration),border-color var(--duration),color var(--duration); }
.score-resource-links a:hover,.score-resource-links a.is-primary { border-color:var(--score-lime); background:var(--score-lime); color:var(--score-dark); }
.score-resource-links a.is-primary:hover { background:#d2e783; }
.score-hero-mark { justify-self:end; width:min(100%,410px); padding:20px 0 17px; border-top:1px solid #626d5a; border-bottom:1px solid #626d5a; text-align:right; animation:score-rise 540ms 80ms var(--ease) both; }
.score-hero-mark > span { display:block; color:var(--score-lime); font:600 12px/1 var(--font-mono); letter-spacing:.14em; text-transform:uppercase; }
.score-hero-mark strong { display:block; margin:8px 0 11px; color:transparent; -webkit-text-stroke:1px #87917e; font:500 11rem/.7 var(--font-mono); letter-spacing:-.14em; }
.score-hero-mark small { color:#fff; font:600 11px/1.35 var(--font-mono); letter-spacing:.12em; text-transform:uppercase; }
.official-descriptor-hero { min-height:320px; }
.official-descriptor-hero .score-hero-grid { min-height:285px; padding-block:26px 30px; }
.official-descriptor-hero .score-hero-copy h1 { max-width:22ch; font-size:clamp(2.7rem,4vw,4rem); }
.official-descriptor-range strong { font-size:clamp(6rem,10vw,8rem); letter-spacing:-.12em; }
@keyframes score-rise { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
.score-section-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(290px,.55fr); align-items:end; gap:var(--space-6); padding-bottom:28px; border-bottom:var(--border-strong); }
.score-section-heading h2 { max-width:18ch; margin:10px 0 0; color:var(--ink); font-size:var(--step-3); font-weight:650; line-height:1.03; letter-spacing:-.04em; }
.score-section-heading > p { max-width:50ch; justify-self:end; margin:0; color:var(--muted); font-size:var(--step-0); line-height:1.65; }
.descriptor-workbench { padding:var(--space-7) 0 var(--space-8); }
.calculator-workbench { padding:var(--space-8) 0; }
.official-task-section { scroll-margin-top:calc(var(--descriptor-index-offset) + 12px); }
.official-task-section + .official-task-section { margin-top:58px; }
.official-descriptor-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.6fr); align-items:end; gap:var(--space-6); padding-bottom:26px; border-bottom:var(--border-strong); }
.official-descriptor-heading > * { min-width:0; overflow-wrap:anywhere; }
.official-descriptor-heading h2 { max-width:24ch; margin:9px 0 0; overflow-wrap:anywhere; color:var(--ink); font-size:var(--step-3); font-weight:650; line-height:1.04; letter-spacing:-.04em; }
.official-descriptor-heading > p { max-width:52ch; justify-self:end; margin:0; overflow-wrap:anywhere; color:var(--muted); }
.official-descriptor-key { padding:18px 0; border-bottom:var(--border-strong); background:var(--surface-quiet); }
.official-descriptor-key p { max-width:82ch; margin:0; color:var(--muted); font-size:var(--step-0); line-height:1.6; }
.official-descriptor-key strong { color:var(--ink); }
.criteria-input-grid fieldset { min-width:0; margin:0; padding:0; border:0; }
.criteria-input-grid legend { margin:0 0 11px; color:var(--muted); font:600 11px/1.4 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; }
.official-band-section { scroll-margin-top:calc(var(--descriptor-index-offset) + 12px); border-bottom:var(--border-strong); }
.official-band-heading { min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:18px 0; border-bottom:var(--border); }
.official-band-heading span { color:var(--muted); font:600 .6875rem/1.4 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; }
.official-band-heading h3 { margin:0; color:var(--ink); font-size:var(--step-2); line-height:1; letter-spacing:-.035em; }
.official-descriptor-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.official-descriptor-cell { min-width:0; overflow-wrap:anywhere; padding:24px 23px 30px; border-left:var(--border); }
.official-descriptor-cell:first-child { padding-left:0; border-left:0; }
.official-descriptor-cell h4 { margin:0 0 20px; color:var(--accent); font:700 .75rem/1.35 var(--font-mono); letter-spacing:.07em; text-transform:uppercase; }
.official-descriptor-cell p,.official-descriptor-span p { margin:0; color:var(--text); font-size:1.125rem; line-height:1.68; }
.official-descriptor-cell strong,.official-descriptor-span strong { font-weight:750; }
.official-descriptor-cell p + p,.official-descriptor-span p + p { margin-top:16px; }
.official-descriptor-span { overflow-wrap:anywhere; padding:30px 0 34px; }
.official-descriptor-span p { max-width:92ch; }
.score-source { padding:22px 0 24px; border-top:var(--border-strong); background:var(--paper); }
.score-source-inner { display:grid; grid-template-columns:max-content minmax(0,1fr); align-items:start; gap:30px; }
.score-source-label { color:var(--muted); font:600 .75rem/1.4 var(--font-mono); letter-spacing:.05em; text-transform:uppercase; }
.score-source-list { min-width:0; display:grid; justify-items:end; gap:6px; margin:0; padding:0; list-style:none; text-align:right; }
.score-source-list li { min-width:0; max-width:100%; margin:0; padding:0; border:0; }
.score-source-list a { color:var(--ink); font:650 1rem/1.45 var(--font-sans); overflow-wrap:anywhere; text-underline-offset:4px; }
.score-faq h2 { margin:10px 0 0; color:var(--ink); font-size:var(--step-3); line-height:1.03; letter-spacing:-.04em; }
.score-faq { padding:var(--space-8) 0; }
.score-faq { border-bottom:var(--border-strong); }
.score-faq-grid { display:grid; grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr); gap:var(--space-7); }
.score-faq details { border-top:var(--border-strong); }
.score-faq details:last-child { border-bottom:var(--border-strong); }
.score-faq summary { min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:24px; color:var(--ink); font-weight:650; cursor:pointer; list-style:none; }
.score-faq summary::-webkit-details-marker { display:none; }
.score-faq summary span { color:var(--accent); font:500 1.4rem/1 var(--font-mono); transition:transform var(--duration); }
.score-faq details[open] summary span { transform:rotate(45deg); }
.score-faq details p { max-width:66ch; margin:-3px 0 22px; color:var(--muted); }
.score-hero-formula { justify-self:end; width:min(100%,430px); display:grid; grid-template-columns:1fr auto; align-items:end; border-top:1px solid #616b58; color:#fff; animation:score-rise 540ms 80ms var(--ease) both; }
.score-hero-formula span,.score-hero-formula b { min-height:64px; display:flex; align-items:center; padding:0 16px; border-bottom:1px solid #616b58; }
.score-hero-formula span { color:#bdc4b7; font:600 12px/1.4 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; }
.score-hero-formula b { justify-content:flex-end; color:var(--score-lime); font:550 2.8rem/1 var(--font-mono); }
.score-hero-formula i { display:none; }
.score-hero-formula strong { grid-column:1/-1; padding-top:18px; color:transparent; -webkit-text-stroke:1px #87917e; font:500 6rem/.8 var(--font-mono); text-align:right; }
.calculator-mode { width:max-content; margin:28px 0 0; }
.calculator-panel { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr); min-height:470px; margin-top:18px; border:var(--border-strong); background:var(--surface); box-shadow:var(--shadow-offset); }
.calculator-inputs { display:grid; align-content:start; grid-template-columns:1fr 1fr; gap:22px; padding:42px; }
.calculator-weight-note { grid-column:1/-1; margin-top:8px; padding:24px 0 0; border-top:var(--border); }
.calculator-weight-note span { color:var(--muted); font:600 10px/1.4 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; }
.calculator-weight-note b { display:block; margin-top:5px; color:var(--ink); font:600 2rem/1 var(--font-mono); }
.calculator-weight-note p { margin:8px 0 0; color:var(--muted); font-size:var(--step-0); line-height:1.55; }
.calculator-result { min-width:0; display:flex; flex-direction:column; justify-content:center; padding:42px; border-left:var(--border-strong); background:var(--ink); color:#fff; }
.calculator-result > span { color:var(--accent-bright); font:600 11px/1.4 var(--font-mono); letter-spacing:.1em; text-transform:uppercase; }
.calculator-result > .calculator-score { margin:22px 0 18px; color:transparent; -webkit-text-stroke:1px #a7ad9f; font:500 clamp(7rem,12vw,11rem)/.7 var(--font-mono); letter-spacing:-.12em; }
.calculator-result > p { margin:0; color:#c8cdc3; font-size:var(--step-0); line-height:1.65; }
.criteria-input-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; padding:34px; }
.criteria-input-grid fieldset { display:grid; align-content:start; gap:14px; }
.detailed-result dl { margin:5px 0 20px; border-top:1px solid #565a52; }
.detailed-result dl div { display:flex; justify-content:space-between; gap:20px; padding:10px 0; border-bottom:1px solid #565a52; }
.detailed-result dt { color:#aeb5aa; font-size:12px; }
.detailed-result dd { margin:0; font:600 13px/1.4 var(--font-mono); }
.score-examples { padding:var(--space-8) 0; border-top:var(--border-strong); }
.score-example-table-wrap { margin-top:28px; overflow-x:auto; overscroll-behavior-inline:contain; }
.score-example-table-wrap table { width:100%; min-width:680px; border-collapse:collapse; color:var(--text); }
.score-example-table-wrap caption { padding:0 0 12px; color:var(--muted); font:600 11px/1.4 var(--font-mono); letter-spacing:.07em; text-align:left; text-transform:uppercase; }
.score-example-table-wrap th,.score-example-table-wrap td { padding:16px 18px; border-bottom:var(--border); text-align:left; }
.score-example-table-wrap th { border-top:var(--border-strong); color:var(--muted); font:600 11px/1.35 var(--font-mono); letter-spacing:.06em; text-transform:uppercase; }
.score-example-table-wrap td { font:550 1rem/1.4 var(--font-mono); }
.score-example-table-wrap tbody tr:last-child td { border-bottom:var(--border-strong); }
.score-example-table-wrap td:last-child strong { color:var(--accent); font-size:1.2rem; }
.score-example-note { max-width:70ch; margin:16px 0 0; color:var(--muted); font-size:var(--step-0); line-height:1.6; }
.calculation-explained { padding:var(--space-8) 0; border-top:var(--border-strong); background:var(--surface-quiet); }
.formula-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-bottom:var(--border-strong); }
.formula-steps article { min-width:0; padding:30px 28px 36px; border-left:var(--border); }
.formula-steps article:first-child { padding-left:0; border-left:0; }
.formula-steps article > span { color:var(--accent); font:600 11px/1.4 var(--font-mono); }
.formula-steps h3 { margin:30px 0 10px; color:var(--ink); font-size:var(--step-2); line-height:1.15; }
.formula-steps p { margin:0; color:var(--muted); font-size:var(--step-0); line-height:1.6; }
.formula-steps code { display:block; margin-top:24px; padding:13px; background:var(--surface); color:var(--ink); font:600 12px/1.4 var(--font-mono); white-space:normal; }
.score-closing-nav { padding:30px 0; }
.score-closing-nav .container { display:flex; justify-content:flex-end; gap:8px; }
@media (max-width: 1050px) {
  .score-hero-grid { grid-template-columns:minmax(0,1.25fr) minmax(270px,.75fr); gap:44px; padding:22px 0 28px; }
  .score-hero-copy h1 { font-size:clamp(2.25rem,5vw,3.5rem); }
  .score-hero-mark strong { font-size:min(11rem,28vw); }
  .score-hero-formula b { font-size:min(2.8rem,8vw); }
  .score-hero-formula strong { font-size:min(6rem,13vw); }
  .calculator-result > .calculator-score { font-size:min(7rem,18vw); }
  .calculator-panel { grid-template-columns:minmax(0,1fr) minmax(300px,.78fr); }
  .calculator-inputs { padding:34px; }
  .criteria-input-grid { grid-template-columns:1fr; }
}
@media (max-width: 820px) {
  .score-hero { height:auto; min-height:0; }
  .score-hero-grid { height:auto; min-height:0; grid-template-columns:1fr; align-items:start; padding:42px 0 52px; }
  .score-hero-mark,.score-hero-formula { justify-self:start; width:100%; text-align:left; }
  .score-hero-mark strong { max-width:max-content; font-size:9rem; }
  .score-hero-formula strong { text-align:left; }
  .score-section-heading,.score-faq-grid { grid-template-columns:1fr; gap:28px; }
  .score-source-inner { grid-template-columns:1fr; gap:8px; }
  .score-source-list { justify-items:start; text-align:left; }
  .score-section-heading > p { justify-self:start; }
  .official-descriptor-hero { min-height:0; }
  .official-descriptor-hero .score-hero-grid { min-height:0; }
  .official-descriptor-heading { grid-template-columns:1fr; gap:18px; }
  .official-descriptor-heading > p { justify-self:start; }
  .official-descriptor-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .official-descriptor-cell { border-top:var(--border); }
  .official-descriptor-cell:nth-child(odd) { padding-left:17px; border-left:0; }
  .official-descriptor-cell:nth-child(-n+2) { border-top:0; }
  .calculator-panel { grid-template-columns:1fr; }
  .calculator-result { min-height:370px; border-top:var(--border-strong); border-left:0; }
  .formula-steps { grid-template-columns:1fr; }
  .formula-steps article { padding-left:0; border-top:var(--border); border-left:0; }
}
@media (max-width: 680px) {
  .score-hero-grid { gap:36px; padding-top:34px; }
  .score-hero-copy h1 { max-width:11ch; font-size:clamp(2.8rem,13vw,4.4rem); }
  .score-resource-links { display:grid; }
  .score-resource-links a { width:100%; }
  .score-hero-mark strong { font-size:7.7rem; }
  .official-descriptor-range strong { font-size:6rem; }
  .descriptor-workbench,.calculator-workbench,.score-examples,.score-faq,.calculation-explained { padding-block:var(--space-7); }
  .calculator-mode { width:100%; }
  .calculator-inputs { grid-template-columns:1fr; padding:24px 18px; }
  .calculator-weight-note { grid-column:1; }
  .calculator-result { min-height:330px; padding:32px 22px; }
  .criteria-input-grid { padding:24px 18px; }
  .score-closing-nav .container { flex-direction:column; }
  .score-closing-nav .action-link { width:100%; }
}
@media (max-width: 679px) {
  .official-descriptor-grid { display:block; }
  .official-descriptor-cell,.official-descriptor-cell:first-child,.official-descriptor-cell:nth-child(odd) { padding:22px 17px 26px; border-top:var(--border); border-left:0; }
  .official-descriptor-cell:first-child { border-top:0; }
  .official-descriptor-span { padding-inline:17px; }
}
@media (prefers-reduced-motion: reduce) {
  .score-hero-copy,.score-hero-mark,.score-hero-formula { animation:none; }
  .score-faq summary span { transition:none; }
}
