/* News Evaluation: The Scorecard. A public rubric lab.
   Light paper, graph rules, dark ink. Dark only inside the instrument panels. */
:root{
  --paper:#FFFDFA; --tint:#F7EFE6; --tint2:#F1E4D6; --card:#FFFFFF;
  --ink:#2A1005; --ink2:#4A2E1F; --mut:#6B5443; --sand:#8A6A50;
  --accent:#C2410C; --accent-deep:#9A3209; --peach:#F2B58F; --line:#E7D9CA;
  --ochre:#A8701A; --olive:#4E6B12;
  --grid:rgba(138,106,80,.075);
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Public Sans",-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --cond:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --wrap:1240px; --r:6px; --ease:cubic-bezier(.2,.8,.2,1); --spring:cubic-bezier(.34,1.56,.64,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:70px}
body{margin:0;color:var(--ink);font:16.5px/1.62 var(--sans);-webkit-font-smoothing:antialiased;
  background-color:var(--paper);
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:28px 28px;overflow-x:hidden}
img,svg,video{max-width:100%;display:block}
a{color:inherit}
p a,li a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:var(--accent)}
p a:hover,li a:hover{color:var(--accent-deep)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;letter-spacing:-.015em;line-height:1.12;margin:0;color:var(--ink)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 22px}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:3px}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:12px 18px;z-index:200}
.skip:focus{left:8px;top:8px}

/* progress rule: the page as a rubric bar */
.progress{position:fixed;left:0;top:0;height:4px;width:100%;z-index:120;pointer-events:none;
  background:repeating-linear-gradient(90deg,var(--accent) 0 18px,var(--accent-deep) 18px 20px);
  transform:scaleX(var(--p,0));transform-origin:0 50%}

/* ---- top bar ---- */
.topbar{border-bottom:1px solid var(--line);background:var(--paper);font-size:13px;color:var(--mut);position:relative;z-index:80}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:14px;padding-block:8px}
.topbar .pub{font-family:var(--cond);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:13px}
.launch{position:relative}
.launch summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:8px;
  border:1.5px solid var(--ink);border-radius:999px;padding:5px 13px 5px 11px;color:var(--ink);
  font:700 12.5px/1 var(--sans);background:var(--card);transition:background .15s,color .15s}
.launch summary::before{content:"";width:12px;height:12px;background:
  radial-gradient(circle,var(--accent) 0 2px,transparent 2.5px) 0 0/6px 6px}
.launch summary::-webkit-details-marker{display:none}
.launch summary::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s}
.launch[open] summary,.launch summary:hover{background:var(--ink);color:#fff}
.launch[open] summary::after{transform:rotate(225deg) translateY(-1px)}
.launchpanel{position:absolute;right:0;top:calc(100% + 10px);z-index:90;background:var(--card);color:var(--ink);
  border:1.5px solid var(--ink);border-radius:var(--r);box-shadow:8px 8px 0 var(--tint2);padding:18px;width:min(calc(100vw - 32px),660px);
  display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:4px 16px}
.launchpanel h4{grid-column:1/-1;font:700 12px/1 var(--cond);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-deep);margin:10px 0 4px;padding-bottom:6px;border-bottom:1px dashed var(--line)}
.launchpanel h4:first-child{margin-top:0}
.launchpanel a{display:block;padding:6px 8px;border-radius:4px;font-size:14.5px;text-decoration:none}
.launchpanel a:hover{background:var(--tint)}
.launchpanel a[aria-current="page"]{background:var(--tint);font-weight:700;color:var(--accent-deep)}

/* ---- masthead ---- */
.mast{background:color-mix(in srgb,var(--paper) 92%,transparent);border-bottom:2px solid var(--ink);position:sticky;top:0;z-index:70;
  -webkit-backdrop-filter:saturate(1.2) blur(6px);backdrop-filter:saturate(1.2) blur(6px)}
.mast .wrap{display:flex;align-items:center;gap:22px;min-height:66px;padding-block:7px}
.brand{display:inline-flex;align-items:center;flex:none;text-decoration:none}
.brand img{width:96px;height:auto}
.mast .strap{margin:0;font:italic 500 15px/1.3 var(--serif);color:var(--mut);max-width:30ch;border-left:1px solid var(--line);padding-left:18px}
nav.sections{margin-left:auto;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
nav.sections::-webkit-scrollbar{display:none}
nav.sections a{white-space:nowrap;text-decoration:none;font:600 15px/1 var(--cond);letter-spacing:.1em;text-transform:uppercase;padding:9px 10px;border-radius:4px;color:var(--ink2);position:relative}
nav.sections a::after{content:"";position:absolute;left:10px;right:10px;bottom:3px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:0 50%;transition:transform .25s var(--ease)}
nav.sections a:hover::after,nav.sections a[aria-current]::after{transform:scaleX(1)}
nav.sections a[aria-current]{color:var(--accent-deep)}
@media(max-width:1600px){.mast .strap{display:none}}
@media(max-width:760px){
  .mast .wrap{flex-wrap:wrap;gap:6px 14px;padding-block:8px}
  .brand img{width:78px}
  nav.sections{margin-left:0;width:100%;order:3}
  .topbar .pub{font-size:11.5px;letter-spacing:.08em}
}

/* ---- shared furniture ---- */
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:700 13px/1 var(--cond);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-deep)}
.eyebrow::before{content:"";width:22px;height:2px;background:currentColor}
.btn{display:inline-flex;align-items:center;gap:10px;border-radius:4px;padding:13px 20px;font:700 15px/1 var(--sans);text-decoration:none;border:2px solid var(--ink);cursor:pointer;transition:transform .15s var(--ease),box-shadow .15s var(--ease),background .15s}
.btn svg{width:18px;height:18px}
.btn-p{background:var(--ink);color:#fff;box-shadow:4px 4px 0 var(--accent)}
.btn-p:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--accent)}
.btn-s{background:var(--card);color:var(--ink)}
.btn-s:hover{background:var(--tint)}
.mark{background:linear-gradient(transparent 62%,color-mix(in srgb,var(--accent) 26%,transparent) 62% 92%,transparent 92%) no-repeat 0 0/0% 100%;transition:background-size 1.1s var(--ease) .2s}
.in .mark,.mark.in{background-size:100% 100%}

.sec{padding:84px 0 0;position:relative}
.sechead{display:grid;grid-template-columns:150px 1fr;gap:0 28px;align-items:end;margin-bottom:34px}
.sechead .num{font:800 64px/.8 var(--cond);color:transparent;-webkit-text-stroke:1.5px var(--accent);letter-spacing:-.01em;border-right:2px solid var(--ink);padding-right:20px;text-align:right}
.sechead .num small{display:block;font-size:12px;letter-spacing:.24em;-webkit-text-stroke:0;color:var(--mut);margin-bottom:10px;font-weight:700}
.sechead h2{font-size:clamp(30px,4.2vw,48px)}
.sechead .dek{grid-column:2;color:var(--mut);margin:12px 0 0;max-width:64ch;font-size:17.5px}
@media(max-width:700px){
  .sechead{grid-template-columns:1fr}
  .sechead .num{text-align:left;border-right:0;border-bottom:2px solid var(--ink);padding:0 0 10px;margin-bottom:14px;font-size:46px;display:flex;align-items:flex-end;gap:12px}
  .sechead .num small{margin:0 0 4px}
  .sechead .dek{grid-column:1}
}

/* ---- hero ---- */
.hero{padding:46px 0 10px}
.hero .hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:46px;align-items:center}
.hero h1{font-size:clamp(38px,6vw,76px);line-height:1.02;font-weight:600;margin:16px 0 20px;letter-spacing:-.025em}
.hero h1 em{font-style:italic;color:var(--accent-deep)}
.hero .stand{font:400 20px/1.5 var(--serif);color:var(--ink2);max-width:46ch;margin:0 0 26px}
.hero .ctas{display:flex;gap:12px;flex-wrap:wrap}
.hero .meta{margin-top:26px;display:flex;gap:18px;flex-wrap:wrap;font:600 13.5px/1.2 var(--cond);letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.hero .meta span{display:inline-flex;align-items:center;gap:7px}
.hero .meta span::before{content:"";width:9px;height:9px;border:1.5px solid var(--accent);border-radius:50%}
@media(max-width:900px){.hero .hero-grid{grid-template-columns:1fr;gap:30px}}

.loupe-frame{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:16/11;background:#E8956A;isolation:isolate;border:2px solid var(--ink);box-shadow:10px 10px 0 var(--tint2);cursor:none;touch-action:pan-y}
.loupe-frame img.base{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.12) brightness(1.04);mix-blend-mode:multiply}
.loupe-frame::after{content:"";position:absolute;inset:0;background:var(--ink);mix-blend-mode:lighten;pointer-events:none;z-index:1}
.loupe{position:absolute;left:0;top:0;width:180px;height:180px;margin:-90px 0 0 -90px;border-radius:50%;z-index:3;pointer-events:none;
  border:3px solid #fff;box-shadow:0 0 0 2px var(--ink),0 18px 40px rgba(42,16,5,.45);background-repeat:no-repeat;will-change:transform}
.loupe::after{content:"";position:absolute;right:-30px;bottom:-30px;width:42px;height:12px;background:var(--ink);border-radius:6px;transform:rotate(45deg);transform-origin:0 50%}
.loupe-tag{position:absolute;left:14px;bottom:14px;z-index:4;background:var(--paper);color:var(--ink);font:700 12px/1 var(--cond);letter-spacing:.18em;text-transform:uppercase;padding:8px 10px;border-radius:3px;border:1.5px solid var(--ink)}
.grade-stamp{position:absolute;right:16px;top:16px;z-index:4;width:92px;height:92px;border-radius:50%;border:3px solid var(--paper);color:var(--paper);display:grid;place-items:center;text-align:center;font:800 13px/1.05 var(--cond);letter-spacing:.14em;text-transform:uppercase;transform:rotate(-12deg);background:rgba(42,16,5,.35)}
.grade-stamp b{display:block;font-size:30px;letter-spacing:0}
@media(hover:none){.loupe-frame{cursor:auto}}
@media(max-width:600px){.loupe{width:120px;height:120px;margin:-60px 0 0 -60px}.grade-stamp{width:74px;height:74px;font-size:11px}.grade-stamp b{font-size:24px}}
.launch summary{white-space:nowrap}
@media(max-width:420px){.topbar .pub{max-width:52vw;line-height:1.3}}

.bench{margin-top:46px;border-top:2px solid var(--ink);border-bottom:1px solid var(--line);display:grid;grid-template-columns:200px 1fr}
.bench h2{font:700 15px/1.2 var(--cond);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-deep);padding:18px 0}
.bench ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);counter-reset:b}
.bench li{padding:18px 16px;border-left:1px solid var(--line);font:500 15.5px/1.35 var(--serif);counter-increment:b;position:relative}
.bench li::before{content:counter(b,decimal-leading-zero);display:block;font:800 13px/1 var(--cond);letter-spacing:.14em;color:var(--sand);margin-bottom:8px}
@media(max-width:1000px){.bench{grid-template-columns:1fr}.bench h2{padding-bottom:4px}.bench ol{grid-template-columns:1fr}.bench li{border-left:0;border-top:1px dashed var(--line);padding:13px 0 13px 44px}.bench li::before{position:absolute;left:0;top:15px}}

/* ---- rubric lab ---- */
.lab{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:28px;align-items:start}
@media(max-width:960px){.lab{grid-template-columns:1fr}}
.sheet{background:var(--card);border:2px solid var(--ink);border-radius:var(--r);padding:8px 24px 18px;box-shadow:8px 8px 0 var(--tint2)}
.sheet .sheethead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 0;border-bottom:2px solid var(--ink)}
.sheet .sheethead b{font:700 14px/1 var(--cond);letter-spacing:.2em;text-transform:uppercase}
.seg{display:inline-flex;border:1.5px solid var(--ink);border-radius:4px;overflow:hidden}
.seg button{font:700 12.5px/1 var(--sans);border:0;background:var(--card);color:var(--ink);padding:8px 11px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--ink);color:#fff}
.crit{padding:16px 0 14px;border-bottom:1px dashed var(--line)}
.crit:last-of-type{border-bottom:0}
.crit .row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.crit label{font:600 19px/1.2 var(--serif)}
.crit .w{font:700 13px/1 var(--cond);letter-spacing:.14em;text-transform:uppercase;color:var(--mut);white-space:nowrap}
.crit .lvl{font:800 22px/1 var(--cond);color:var(--accent-deep);min-width:3.2ch;text-align:right}
.crit .desc{margin:8px 0 0;font-size:14.5px;color:var(--ink2);min-height:2.9em}
.range{position:relative;margin-top:12px;height:30px}
.range input{-webkit-appearance:none;appearance:none;width:100%;height:30px;background:transparent;margin:0;position:relative;z-index:2;cursor:pointer}
.range .track{position:absolute;left:0;right:0;top:12px;height:6px;border-radius:3px;background:var(--tint2)}
.range .fill{position:absolute;left:0;top:12px;height:6px;border-radius:3px;background:var(--accent);width:var(--f,50%);transition:width .2s var(--ease)}
.range .ticks{position:absolute;left:9px;right:9px;top:22px;display:flex;justify-content:space-between;pointer-events:none}
.range .ticks i{width:2px;height:8px;background:var(--sand);opacity:.5}
.range input::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--paper);border:3px solid var(--ink);box-shadow:2px 2px 0 var(--accent);transition:transform .15s var(--spring)}
.range input::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--paper);border:3px solid var(--ink);box-shadow:2px 2px 0 var(--accent)}
.range input:active::-webkit-slider-thumb{transform:scale(1.18)}
.range input::-webkit-slider-runnable-track{background:transparent}
.range input:focus-visible{outline:none}
.range input:focus-visible::-webkit-slider-thumb{outline:3px solid var(--accent);outline-offset:3px}
.range input:focus-visible::-moz-range-thumb{outline:3px solid var(--accent);outline-offset:3px}
.sheet .tools{display:flex;gap:10px;flex-wrap:wrap;padding-top:14px;border-top:2px solid var(--ink)}
.sheet .tools button{font:700 13.5px/1 var(--sans);padding:10px 14px;border-radius:4px;border:1.5px solid var(--ink);background:var(--card);color:var(--ink);cursor:pointer}
.sheet .tools button:hover{background:var(--tint)}

.panel{position:sticky;top:96px;background:var(--ink);color:#F7EDE4;border-radius:var(--r);overflow:hidden;isolation:isolate;border:2px solid var(--ink)}
.panel .bgv{position:absolute;inset:0;z-index:-2;opacity:.32}
.panel .bgv video,.panel .bgv img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) sepia(.6) hue-rotate(-18deg) saturate(2.4) contrast(1.1)}
.panel::before{content:"";position:absolute;inset:0;z-index:-1;background:
  repeating-linear-gradient(0deg,rgba(42,16,5,.55) 0 2px,transparent 2px 4px),
  radial-gradient(ellipse at 50% 30%,rgba(42,16,5,.2),rgba(42,16,5,.92) 75%);
  animation:scan 7s linear infinite}
@keyframes scan{to{background-position:0 40px,0 0}}
.panel .in-p{padding:26px 26px 24px}
.panel .ptitle{display:flex;justify-content:space-between;align-items:center;font:700 13px/1 var(--cond);letter-spacing:.22em;text-transform:uppercase;color:var(--peach)}
.dial{width:100%;max-width:420px;margin:12px auto 0;display:block;overflow:visible}
.dial .needle{transform-origin:200px 200px;transition:transform 1.1s var(--spring)}
.dial .prog{transition:stroke-dashoffset 1s var(--ease),stroke .4s}
.readout{text-align:center;margin-top:-6px}
.readout .score{font:800 76px/1 var(--cond);letter-spacing:-.01em;color:#fff;font-variant-numeric:tabular-nums}
.readout .score small{font-size:24px;color:var(--peach);margin-left:4px}
.readout .band{display:inline-block;margin-top:8px;font:700 14px/1 var(--cond);letter-spacing:.2em;text-transform:uppercase;padding:8px 12px;border-radius:3px;background:var(--band,var(--accent));color:#fff;transition:background .4s}
.readout .advice{margin:16px auto 0;max-width:42ch;font:400 16px/1.5 var(--serif);color:#F1DED0}
.readout .advice b{color:#fff}
.minibars{margin-top:20px;display:grid;gap:7px}
.minibars div{display:grid;grid-template-columns:118px 1fr 34px;gap:10px;align-items:center;font:600 13px/1 var(--cond);letter-spacing:.1em;text-transform:uppercase;color:#E9D3C2}
.minibars span.b{height:8px;background:rgba(255,255,255,.12);border-radius:4px;overflow:hidden}
.minibars span.b i{display:block;height:100%;width:var(--v,0%);background:var(--peach);transition:width .7s var(--ease)}
.minibars em{font-style:normal;text-align:right;color:#fff;font-variant-numeric:tabular-nums}
.panel .fine{font-size:12.5px;color:#D6BBA8;margin:18px 0 0;border-top:1px solid rgba(255,255,255,.14);padding-top:12px}

/* ---- field notes (explainer cards) ---- */
.notes{display:grid;grid-template-columns:repeat(12,1fr);gap:26px}
.note{grid-column:span 3;background:var(--card);border:1.5px solid var(--ink);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;scroll-margin-top:90px;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.note:nth-child(1),.note:nth-child(2){grid-column:span 6}
.note:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--accent)}
@media(max-width:960px){.note,.note:nth-child(1),.note:nth-child(2){grid-column:span 6}}
@media(max-width:640px){.note,.note:nth-child(1),.note:nth-child(2){grid-column:1/-1}}
.note .ph{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--tint2);clip-path:inset(0 100% 0 0);transition:clip-path 1.1s var(--ease)}
.note.in .ph{clip-path:inset(0 0 0 0)}
.note .ph img{width:100%;height:100%;object-fit:cover;filter:sepia(.55) saturate(.7) contrast(1.05);transform:scale(1.06);transition:filter .6s,transform 1.4s var(--ease)}
.note:hover .ph img,.note:focus-within .ph img{filter:none;transform:scale(1)}
.note .ph::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .16 0 0 0 0 .06 0 0 0 0 .02 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.note .ph .crit-tag{position:absolute;left:12px;top:12px;z-index:2;background:var(--paper);border:1.5px solid var(--ink);font:700 12px/1 var(--cond);letter-spacing:.18em;text-transform:uppercase;padding:7px 9px;border-radius:3px}
.note .body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:10px;flex:1}
.note h3{font-size:22px;line-height:1.2}
.note:nth-child(1) h3,.note:nth-child(2) h3{font-size:27px}
.note p{margin:0;color:var(--ink2);font-size:15.5px}
.note .checks{margin-top:auto;padding-top:12px;border-top:1px dashed var(--line);display:flex;gap:8px;flex-wrap:wrap}
.note .checks span{font:700 12px/1 var(--cond);letter-spacing:.12em;text-transform:uppercase;color:var(--mut);border:1px solid var(--line);border-radius:999px;padding:6px 9px}

/* ---- criteria accordion ---- */
.acc{border-top:2px solid var(--ink)}
.acc-item{border-bottom:1px solid var(--line)}
.acc-btn{width:100%;display:grid;grid-template-columns:54px minmax(0,1fr) minmax(120px,260px) 40px;gap:18px;align-items:center;background:none;border:0;padding:20px 0;text-align:left;color:var(--ink);cursor:pointer;font:inherit}
.acc-btn .n{font:800 30px/1 var(--cond);color:var(--sand)}
.acc-btn .t{font:600 clamp(20px,2.4vw,27px)/1.15 var(--serif)}
.acc-btn .t small{display:block;font:400 14.5px/1.4 var(--sans);color:var(--mut);margin-top:5px}
.wbar{display:grid;gap:6px}
.wbar .lbl{display:flex;justify-content:space-between;font:700 12.5px/1 var(--cond);letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.wbar .lbl b{color:var(--accent-deep);font-size:15px}
.wbar .track{height:12px;border:1.5px solid var(--ink);border-radius:2px;background:var(--card);overflow:hidden}
.wbar .track i{display:block;height:100%;width:0;background:repeating-linear-gradient(135deg,var(--accent) 0 6px,var(--accent-deep) 6px 9px);transition:width 1.2s var(--ease)}
.acc.in .wbar .track i{width:var(--w)}
.acc-btn .pm{width:34px;height:34px;border:1.5px solid var(--ink);border-radius:50%;position:relative;justify-self:end;transition:background .2s,transform .3s var(--ease)}
.acc-btn .pm::before,.acc-btn .pm::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;background:currentColor;transform:translate(-50%,-50%)}
.acc-btn .pm::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .3s var(--ease)}
.acc-btn[aria-expanded="true"] .pm{background:var(--ink);color:#fff}
.acc-btn[aria-expanded="true"] .pm::after{transform:translate(-50%,-50%) rotate(0)}
.acc-btn:hover .t{color:var(--accent-deep)}
.acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}
.acc-panel>div{overflow:hidden}
.acc-item.open .acc-panel{grid-template-rows:1fr}
.acc-panel .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding:0 0 26px 72px}
.acc-panel h4{font:700 13px/1 var(--cond);letter-spacing:.2em;text-transform:uppercase;margin:0 0 10px;color:var(--accent-deep)}
.acc-panel .cols>div{border-top:2px solid var(--ink);padding-top:12px}
.acc-panel p,.acc-panel li{font-size:15px;color:var(--ink2);margin:0}
.acc-panel ul{margin:0;padding-left:18px}
.acc-panel li{margin-bottom:6px}
.acc-panel .strong h4{color:var(--olive)}
@media(max-width:820px){
  .acc-btn{grid-template-columns:40px minmax(0,1fr) 36px;gap:12px}
  .acc-btn .wbar{grid-column:2/3;grid-row:2}
  .acc-btn .pm{grid-column:3;grid-row:1}
  .acc-panel .cols{grid-template-columns:1fr;padding-left:0}
}

/* ---- format scorecards (flip cards) ---- */
.flips{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:1080px){.flips{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.flips{grid-template-columns:1fr}}
.flip{perspective:1400px;min-height:390px;position:relative}
.flip .inner{position:relative;height:100%;min-height:390px;transform-style:preserve-3d;transition:transform .8s var(--spring)}
.flip.on .inner{transform:rotateY(180deg)}
.face{position:absolute;inset:0;border-radius:var(--r);border:2px solid var(--ink);-webkit-backface-visibility:hidden;backface-visibility:hidden;padding:20px;display:flex;flex-direction:column}
.face.front{background:var(--card);box-shadow:6px 6px 0 var(--tint2)}
.face.back{background:var(--ink);color:#F6E9DE;transform:rotateY(180deg);overflow:auto}
.face .kind{display:flex;justify-content:space-between;align-items:center;font:700 12px/1 var(--cond);letter-spacing:.2em;text-transform:uppercase;color:var(--mut)}
.face .kind i{font-style:normal;border:1.5px solid currentColor;border-radius:3px;padding:4px 6px}
.face h3{font-size:25px;margin:14px 0 8px}
.face .what{font-size:14.5px;color:var(--ink2);margin:0}
.scrut{margin:auto 0 0;padding-top:14px;border-top:2px solid var(--ink);display:grid;gap:8px}
.scrut .h{font:700 12px/1 var(--cond);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-deep)}
.scrut div{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;font:600 14px/1 var(--sans)}
.dots{display:inline-flex;gap:4px}
.dots i{width:12px;height:12px;border:1.5px solid var(--ink);border-radius:50%}
.dots i.f{background:var(--accent);border-color:var(--accent-deep)}
.flip-btn{position:absolute;inset:0;width:100%;height:100%;background:transparent;border:0;cursor:pointer;border-radius:var(--r);z-index:2}
.flip-btn:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.face .turn{margin-top:14px;align-self:flex-start;font:700 12.5px/1 var(--cond);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-deep);display:inline-flex;align-items:center;gap:6px}
.face.back h3{color:#fff;font-size:21px;margin:0 0 10px}
.face.back ol{margin:0;padding-left:20px;font-size:14.5px;line-height:1.5}
.face.back li{margin-bottom:6px}
.face.back .trap{margin:12px 0 0;padding:10px 12px;border-left:3px solid var(--peach);background:rgba(255,255,255,.06);font-size:14px}
.face.back .trap b{display:block;font:700 12px/1 var(--cond);letter-spacing:.18em;text-transform:uppercase;color:var(--peach);margin-bottom:5px}
.face.back .back-btn{margin-top:14px;align-self:flex-start;background:transparent;color:#fff;border:1.5px solid #fff;border-radius:4px;padding:8px 12px;font:700 13px/1 var(--sans);cursor:pointer}
.flip:not(.on) .face.back{visibility:hidden;transition:visibility 0s .4s}
.flip.on .face.front{visibility:hidden;transition:visibility 0s .4s}
.flip.on .flip-btn{display:none}

/* ---- classroom ---- */
.class{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center}
@media(max-width:900px){.class{grid-template-columns:1fr}}
.halftone{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;border:2px solid var(--ink);background:var(--tint2);isolation:isolate}
.halftone video,.halftone img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.25) brightness(1.08)}
.halftone::before{content:"";position:absolute;inset:0;z-index:1;background:#F2B58F;mix-blend-mode:multiply;pointer-events:none}
.halftone::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:multiply;opacity:.55;
  background:radial-gradient(circle at 50% 50%,var(--ink) 0 1.4px,transparent 1.9px) 0 0/6px 6px}
.vctl{position:absolute;right:12px;bottom:12px;z-index:5;width:42px;height:42px;border-radius:50%;border:2px solid #fff;background:rgba(42,16,5,.7);color:#fff;cursor:pointer;display:grid;place-items:center}
.vctl svg{width:16px;height:16px}
.vctl[hidden]{display:none}
.vctl.inline{position:static;width:30px;height:30px;border-width:1.5px;border-color:var(--peach);color:var(--peach);background:transparent}
.vctl.inline svg{width:12px;height:12px}
.flip,.flip .inner{min-height:430px}
.steps{list-style:none;margin:0;padding:0;counter-reset:s;border-top:2px solid var(--ink)}
.steps li{counter-increment:s;display:grid;grid-template-columns:52px 1fr;gap:14px;padding:16px 0;border-bottom:1px dashed var(--line)}
.steps li::before{content:counter(s);width:40px;height:40px;border:2px solid var(--ink);border-radius:50%;display:grid;place-items:center;font:800 20px/1 var(--cond);background:var(--card)}
.steps b{display:block;font:600 19px/1.25 var(--serif);margin-bottom:3px}
.steps span{color:var(--ink2);font-size:15px}
.steps li.ticked::before{content:"";background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/22px no-repeat;border-color:var(--accent-deep)}
.steps button{all:unset;cursor:pointer;display:block;border-radius:3px}
.steps button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}

/* ---- sourcing note band ---- */
.noteband{margin-top:84px}
.noteband .frame{position:relative;border-radius:var(--r);overflow:hidden;background:var(--ink);color:#fff;isolation:isolate;min-height:360px;display:grid;align-items:center;border:2px solid var(--ink)}
.noteband .vid{position:absolute;inset:0;z-index:-2;clip-path:circle(var(--iris,18%) at 78% 50%);transition:clip-path .1s linear}
.noteband .vid video,.noteband .vid img{width:100%;height:100%;object-fit:cover;filter:sepia(.8) saturate(1.8) hue-rotate(-14deg) brightness(.75)}
.noteband .frame::before{content:"";position:absolute;inset:0;z-index:-1;background:
  linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px) 0 0/28px 28px,
  linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px) 0 0/28px 28px,
  linear-gradient(90deg,rgba(42,16,5,.96) 30%,rgba(42,16,5,.35))}
.noteband .copy{padding:44px;max-width:620px}
.noteband h2{color:#fff;font-size:clamp(30px,4vw,46px);margin:12px 0 12px}
.noteband .eyebrow{color:var(--peach)}
.noteband p{color:#F0DCCD;margin:0 0 24px;font:400 18px/1.55 var(--serif)}
.noteband .btn-p{background:var(--paper);color:var(--ink);border-color:var(--paper);box-shadow:4px 4px 0 var(--accent)}
@media(max-width:640px){.noteband .copy{padding:28px 22px}}

/* ---- how it works + faq ---- */
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:2px solid var(--ink);border-radius:var(--r);background:var(--card)}
.cols3>div{padding:24px 24px 26px;border-left:1px solid var(--line)}
.cols3>div:first-child{border-left:0}
.cols3 h3{font-size:23px;margin:0 0 12px;display:flex;align-items:center;gap:10px}
.cols3 h3::before{content:"";width:14px;height:14px;border:2px solid var(--accent);transform:rotate(45deg)}
.cols3 p{margin:0;color:var(--ink2);font-size:15.5px}
@media(max-width:960px){.cols3{grid-template-columns:1fr}.cols3>div{border-left:0;border-top:1px solid var(--line)}.cols3>div:first-child{border-top:0}}
.faq{border-top:2px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:20px 50px 20px 0;font:600 21px/1.3 var(--serif);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"?";position:absolute;right:0;top:16px;width:32px;height:32px;border:1.5px solid var(--ink);border-radius:50%;display:grid;place-items:center;font:800 16px/1 var(--cond);transition:background .2s,color .2s}
.faq details[open] summary::after{content:"\2713";background:var(--accent);color:#fff;border-color:var(--accent-deep)}
.faq p{margin:0 0 20px;color:var(--ink2);max-width:76ch}

/* ---- inner pages ---- */
.doc-wrap{display:grid;grid-template-columns:230px minmax(0,1fr);gap:48px;padding:50px 0 0}
.toc{position:sticky;top:100px;align-self:start;border-top:2px solid var(--ink);padding-top:14px}
.toc b{display:block;font:700 13px/1 var(--cond);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:12px}
.toc ol{list-style:none;margin:0;padding:0;counter-reset:t}
.toc li{counter-increment:t}
.toc a{display:grid;grid-template-columns:30px 1fr;padding:7px 0;text-decoration:none;font-size:14.5px;color:var(--ink2);border-bottom:1px dashed var(--line)}
.toc a::before{content:counter(t,decimal-leading-zero);font:700 13px/1.6 var(--cond);color:var(--sand)}
.toc a:hover,.toc a.on{color:var(--accent-deep)}
.doc{background:var(--card);border:2px solid var(--ink);border-radius:var(--r);padding:38px 44px 40px;box-shadow:10px 10px 0 var(--tint2);max-width:860px;counter-reset:h}
.doc h1{font-size:clamp(34px,5vw,56px);margin:0 0 12px}
.doc .lede{font:italic 400 21px/1.45 var(--serif);color:var(--ink2);margin:0 0 10px;padding-bottom:22px;border-bottom:2px solid var(--ink)}
.doc h2{font-size:26px;margin:34px 0 10px;counter-increment:h;display:flex;gap:14px;align-items:baseline;scroll-margin-top:90px}
.doc h2::before{content:"C." counter(h,decimal-leading-zero);font:800 15px/1 var(--cond);letter-spacing:.1em;color:var(--accent-deep);border:1.5px solid var(--accent);border-radius:3px;padding:5px 6px;flex:none;transform:translateY(-3px)}
.doc p,.doc li{color:var(--ink2);font-size:17px;max-width:70ch}
.doc ul{padding-left:20px}
.doc li{margin-bottom:8px}
.doc li::marker{color:var(--accent)}
@media(max-width:900px){.doc-wrap{grid-template-columns:1fr;gap:20px}.toc{position:static}.doc{padding:26px 20px 28px;box-shadow:6px 6px 0 var(--tint2)}}

/* ---- footer ---- */
.foot{margin-top:96px;background:var(--tint);border-top:2px solid var(--ink);padding:48px 0 30px;font-size:14.5px;color:var(--ink2)}
.foot .cols{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:30px}
@media(max-width:860px){.foot .cols{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.foot .cols{grid-template-columns:1fr}}
.foot .brand img{width:150px}
.foot h2{font:700 13px/1 var(--cond);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-deep);margin:0 0 14px}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin-bottom:8px}
.foot a{text-decoration:none}
.foot a:hover{color:var(--accent-deep);text-decoration:underline}
.foot .pubd{margin:16px 0 0;line-height:1.6}
.foot .legal{border-top:1px solid var(--line);margin-top:34px;padding-top:20px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--mut)}

/* reveal */
.rv{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}
.no-js .rv{opacity:1;transform:none}
.no-js .note .ph{clip-path:none}
.acc-item:not(.open) .acc-panel>div{visibility:hidden;transition:visibility 0s .45s}
.no-js .acc-panel{grid-template-rows:1fr}
.no-js .acc-item .acc-panel>div{visibility:visible}
.no-js .acc .wbar .track i{width:var(--w)}
.no-js .flip .inner{transform:none;min-height:0}
.no-js .flip .face{position:relative}
.no-js .flip .face.back{visibility:visible;transform:none;margin-top:12px}
.no-js .flip-btn,.no-js .back-btn,.no-js .face .turn{display:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:.001ms!important;transition-delay:0s!important}
  .rv{opacity:1;transform:none}
  .note .ph{clip-path:none}
  .flip .inner{transform:none!important}
  .flip .face.back{transform:none}
  .flip.on .face.front{visibility:hidden}
  .noteband .vid{clip-path:none}
  .mark{background-size:100% 100%}
}
