/* Verdictly — broadsheet verdicts */
:root{
  --paper:#efebe2; --paper-2:#e6e0d3; --paper-3:#f6f3ec; --ink:#1b1a17; --ink-2:#3b3830; --muted:#6c665a; --hair:#c8c0ae; --hair-2:#d9d2c3;
  --stamp:#9e3b2e; --stamp-soft:#ecdcd3; --olive:#55603f;
  --serif:'Playfair Display',Georgia,'Times New Roman',serif; --sans:'Libre Franklin','Franklin Gothic Medium',Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --ease:cubic-bezier(.22,.7,.2,1);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.1 0 0 0 0 0.09 0 0 0 0 0.07 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper) var(--grain);color:var(--ink);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:var(--ink);text-decoration-color:var(--hair);text-underline-offset:3px}
a:hover{text-decoration-color:var(--stamp)}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--stamp);outline-offset:3px}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:10px;top:-60px;background:var(--ink);color:var(--paper);padding:10px 14px;z-index:100}
.skip:focus{top:10px}
code{font-family:var(--mono);font-size:.85em;background:var(--paper-2);padding:.05em .3em;overflow-wrap:anywhere}
.wrap{width:100%;max-width:1240px;margin:0 auto;padding:0 32px}

/* ---------- press / masthead ---------- */
.ear{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center;padding-top:16px;padding-bottom:12px;font:600 11.5px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.ear__c{text-align:center}
.ear__r{text-align:right;font-variant-numeric:tabular-nums}
.ear__dot{margin:0 8px;color:var(--muted)}
.mast{text-align:center;position:relative;padding-top:8px;padding-bottom:12px}
.mast__rule{display:block;height:0;transform-origin:center;animation:ruleIn 1.1s var(--ease) both}
.mast__rule--top{border-top:3px solid var(--ink);box-shadow:0 5px 0 -4px var(--ink);height:6px}
.mast__rule--bot{border-top:1px solid var(--ink);border-bottom:3px solid var(--ink);height:6px;margin-top:6px;animation-delay:.15s}
@keyframes ruleIn{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.mast__name{display:inline-block;text-decoration:none;color:var(--ink);margin:14px 0 2px}
.mast__letters{display:inline-block;font:900 clamp(56px,11vw,148px)/.95 var(--serif);letter-spacing:-.025em}
.mast__letters .l{display:inline-block;opacity:0;transform:translateY(.18em);animation:letter .8s var(--ease) forwards}
@keyframes letter{to{opacity:1;transform:none}}
.mast__tag{margin:6px 0 16px;font:400 17px/1.4 var(--serif);color:var(--ink-2)}
.mast__tag em{color:var(--stamp)}
.sections{position:relative;display:flex;align-items:center;justify-content:center;padding-top:2px;padding-bottom:2px}
.sections::after{content:"";position:absolute;left:32px;right:32px;bottom:0;border-bottom:1px solid var(--ink)}
.sections__btn{display:none}
.sections__list{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;margin:0;padding:0}
.sections__list li + li{border-left:1px solid var(--hair)}
.sections__list a{display:block;padding:10px 18px;font:700 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--ink-2);transition:color .2s}
.sections__list a:hover{color:var(--stamp)}
.xbtn{position:absolute;right:32px;top:50%;transform:translateY(-50%);width:32px;height:32px;display:grid;place-items:center;color:var(--ink)}
.xbtn svg{width:16px;height:16px}
.tape{overflow:hidden;border-bottom:3px double var(--ink);background:var(--paper-2);white-space:nowrap}
.tape__track{display:inline-flex;gap:0;padding:9px 0;font:600 12.5px/1 var(--sans);letter-spacing:.06em;color:var(--ink-2);animation:tape 70s linear infinite;will-change:transform}
.tape:hover .tape__track{animation-play-state:paused}
.tape__track span{padding:0 22px;border-right:1px solid var(--hair)}
.tape__track b{color:var(--ink);font-weight:800;margin-right:6px}
.tape__track em{font-style:normal;color:var(--stamp)}
@keyframes tape{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- front page ---------- */
.front{display:grid;grid-template-columns:minmax(0,3.1fr) minmax(0,5.6fr) minmax(0,3.3fr);gap:0;padding-top:30px;padding-bottom:60px;border-bottom:1px solid var(--ink)}
.col{min-width:0;padding:0 26px}
.col:first-child{padding-left:0}
.col:last-child{padding-right:0}
.col + .col{border-left:1px solid var(--hair)}
.colhead{border-top:3px solid var(--ink);border-bottom:1px solid var(--ink);padding:8px 0 7px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.colhead h2{font:800 19px/1.1 var(--serif);margin:0;letter-spacing:-.005em}
.colhead p{margin:0;font:700 10.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--stamp)}
.colnote{font:italic 400 13.5px/1.5 var(--serif);color:var(--muted);margin:0 0 12px}
.docket{list-style:none;margin:0;padding:0}
.dk{padding:12px 0;border-bottom:1px solid var(--hair-2);display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:4px 10px;align-items:start;opacity:0;transform:translateX(-10px);animation:slideIn .6s var(--ease) forwards}
@keyframes slideIn{to{opacity:1;transform:none}}
.dk__img{width:34px;height:34px;object-fit:cover;filter:grayscale(.85) contrast(1.05);border:1px solid var(--hair);background:var(--paper-2)}
.dk__id{min-width:0}
.dk__sym{display:block;font:800 15px/1.2 var(--serif);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dk__meta{display:block;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dk__mark{font:800 10.5px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:4px 6px;border:1.5px solid currentColor;white-space:nowrap;transform:rotate(-3deg)}
.mk-clean{color:var(--olive)}.mk-mixed{color:var(--ink-2)}.mk-red{color:var(--stamp)}
.dk__go{grid-column:2/-1;justify-self:start;border:0;background:none;padding:0;font:600 12.5px var(--sans);color:var(--stamp);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.dk--sk{height:58px;opacity:1;transform:none;animation:none;background:linear-gradient(90deg,transparent,var(--paper-2),transparent);background-size:200% 100%;animation:sk 1.4s linear infinite;border-bottom:1px solid var(--hair-2)}
@keyframes sk{from{background-position:200% 0}to{background-position:-200% 0}}
.textbtn{border:0;background:none;padding:0;margin-top:12px;font:700 12px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);cursor:pointer;text-decoration:underline;text-decoration-color:var(--hair);text-underline-offset:4px}
.textbtn:hover{text-decoration-color:var(--stamp)}
.kicker{font:700 11.5px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--stamp);margin:6px 0 14px}
.lead__title{font:800 clamp(36px,4.6vw,60px)/1.04 var(--serif);letter-spacing:-.02em;margin:0 0 14px}
.byline{font:600 12px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 18px;padding-bottom:14px;border-bottom:1px solid var(--hair)}
.lead__stamp{float:right;margin:4px 0 10px 18px;shape-outside:circle(50%)}
.lead__p{font:400 17px/1.7 var(--serif);color:var(--ink-2);margin:0 0 14px;text-align:justify;hyphens:auto}
.dropcap::first-letter{float:left;font:900 74px/.8 var(--serif);margin:6px 10px 0 0;color:var(--ink)}
.file{clear:both;margin-top:24px;border:1px solid var(--ink);padding:14px;background:var(--paper-3)}
.file__label{display:block;font:700 11px var(--sans);letter-spacing:.16em;text-transform:uppercase;margin-bottom:8px}
.file__row{display:flex;gap:8px}
.file input,.casebar input,.cmpbar input{flex:1;min-width:0;height:46px;border:0;border-bottom:2px solid var(--ink);background:transparent;padding:0 4px;font:400 16px var(--mono)}
.file input:focus,.casebar input:focus,.cmpbar input:focus{outline:0;border-bottom-color:var(--stamp)}
.file button,.casebar button,.cmpbar button{height:46px;padding:0 20px;border:0;background:var(--ink);color:var(--paper);font:700 13px var(--sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;white-space:nowrap;transition:background-color .2s}
.file button:hover,.casebar button:hover,.cmpbar button:hover{background:var(--stamp)}
button[disabled]{opacity:.65;cursor:progress}
.ca{display:flex;align-items:center;gap:10px;margin-top:16px;padding:8px 10px;border:1px dashed var(--ink-2);max-width:100%}
.ca__k{font:800 10.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--stamp);white-space:nowrap}
.ca code{background:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.ca button{border:1px solid var(--ink);background:none;padding:4px 10px;font:700 11px var(--sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}

/* digest */
.digest{margin-top:30px;border-top:3px solid var(--ink);padding-top:10px}
.digest__h{font:800 19px/1.1 var(--serif);margin:0 0 6px}
.digest__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 26px}
.digest__list li{padding:12px 0;border-bottom:1px solid var(--hair-2);min-width:0}
.dg__k{display:block;font:700 10.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--stamp);margin-bottom:2px}
.dg__sym{border:0;background:none;padding:0;font:800 22px/1.2 var(--serif);cursor:pointer;color:var(--ink);text-decoration:underline;text-decoration-color:var(--hair);text-underline-offset:4px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dg__sym:hover{text-decoration-color:var(--stamp)}
.dg__l{display:block;font:italic 14px/1.45 var(--serif);color:var(--ink-2)}
.dg--wait{font:italic 14px var(--serif);color:var(--muted);grid-column:1/-1}

/* stamp */
.stamp{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:150px;height:150px;border-radius:50%;border:3px solid var(--stamp);color:var(--stamp);position:relative;transform:rotate(-12deg);text-transform:uppercase;font-family:var(--sans);text-align:center;line-height:1.05}
.stamp::before{content:"";position:absolute;inset:6px;border-radius:50%;border:1.2px solid currentColor}
.stamp b{font-weight:800;font-size:18px;letter-spacing:.14em}
.stamp i{font:italic 400 16px var(--serif);text-transform:none;margin:2px 0}
.stamp--hero{opacity:0;animation:thud .7s .9s var(--ease) forwards}
.stamp--ghost{color:var(--hair);border-color:var(--hair);transform:rotate(-8deg)}
@keyframes thud{0%{opacity:0;transform:rotate(-24deg) scale(1.7)}60%{opacity:.95;transform:rotate(-10deg) scale(.96)}100%{opacity:.9;transform:rotate(-12deg) scale(1)}}

/* brief column */
.brief{list-style:none;margin:0 0 22px;padding:0;counter-reset:b}
.brief li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:7px 0;border-bottom:1px dotted var(--hair);font-size:14px}
.brief li span{min-width:0}
.brief li b{font:700 14px var(--serif);font-variant-numeric:tabular-nums}
.figures{border:1px solid var(--ink);padding:14px 16px;background:var(--paper-3)}
.figures h3{margin:0;font:800 17px var(--serif)}
.figures__sub{margin:2px 0 10px;font:italic 13px var(--serif);color:var(--muted)}
.figures dl{margin:0;display:grid;gap:8px}
.figures dl div{display:flex;justify-content:space-between;align-items:baseline;gap:10px;border-top:1px solid var(--hair-2);padding-top:8px}
.figures dt{font-size:13px;color:var(--ink-2)}
.figures dd{margin:0;font:800 20px var(--serif);font-variant-numeric:tabular-nums}

/* ---------- sections ---------- */
.sect{padding:84px 0;border-bottom:1px solid var(--ink)}
.sect--alt{background:var(--paper-2) var(--grain)}
.sect__head{max-width:820px;margin:0 0 34px;position:relative;padding-top:16px}
.sect__head::before{content:"";position:absolute;left:0;top:0;width:100%;max-width:820px;border-top:3px solid var(--ink);transform-origin:left;transform:scaleX(var(--r,1));transition:transform 1.1s var(--ease)}
.sect__head.pre::before{--r:0}
.sect__head--row{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.sect__head--row::before{max-width:none}
.sect__kicker{font:700 11.5px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--stamp);margin:0 0 12px}
.sect__head h2{font:800 clamp(32px,4vw,52px)/1.05 var(--serif);letter-spacing:-.018em;margin:0 0 12px}
.sect__dek{font:italic 400 18px/1.55 var(--serif);color:var(--ink-2);margin:0}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ---------- case ---------- */
.casebar{display:flex;gap:10px;max-width:820px;margin-bottom:30px}
.caseout{min-height:240px}
.blank{display:flex;align-items:center;gap:30px;padding:36px 0;color:var(--muted);font:italic 17px var(--serif);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.blank p{margin:0;max-width:440px}
.prog{display:grid;gap:10px;padding:26px 0}
.prog__line{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--muted)}
.prog__line i{width:14px;height:14px;border:1.5px solid var(--hair);border-radius:50%;flex:none;position:relative}
.prog__line.ok{color:var(--ink)}
.prog__line.ok i{border-color:var(--olive);background:var(--olive)}
.prog__line.bad{color:var(--stamp)}
.prog__line.bad i{border-color:var(--stamp)}
.prog__line.run i{border-color:var(--ink);border-right-color:transparent;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.err{border-left:3px solid var(--stamp);padding:12px 16px;background:var(--stamp-soft);color:var(--stamp);font-size:15px}

.verdict{display:grid;grid-template-columns:minmax(0,1fr) 330px;border:1px solid var(--ink);background:var(--paper-3);position:relative;animation:fadeUp .6s var(--ease) both}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.v__main{padding:28px 30px;min-width:0;border-right:1px solid var(--ink)}
.v__side{padding:28px 26px;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
.v__kick{font:700 11px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
.v__title{display:flex;align-items:center;gap:14px;margin:0 0 6px}
.v__title img{width:52px;height:52px;object-fit:cover;border:1px solid var(--ink);filter:grayscale(.6)}
.v__title h3{font:800 clamp(28px,3.4vw,42px)/1.05 var(--serif);margin:0;min-width:0;overflow-wrap:anywhere}
.v__sub{font:italic 15px var(--serif);color:var(--ink-2);margin:0 0 4px;overflow-wrap:anywhere}
.v__mint{font:12.5px var(--mono);color:var(--muted);overflow-wrap:anywhere;margin:0 0 18px}
.v__links{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;margin-bottom:20px}
.findings{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.f{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:8px 18px;padding:12px 0;border-bottom:1px solid var(--hair);opacity:0;transform:translateY(6px);animation:fadeUp .5s var(--ease) forwards}
.f__h{font:700 14.5px/1.35 var(--sans);margin:0;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.f__h small{font:600 11px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.f__ev{font:400 14.5px/1.5 var(--serif);color:var(--ink-2);margin:3px 0 0}
.f__src{font:600 11px var(--sans);letter-spacing:.06em;color:var(--muted);margin:4px 0 0;text-transform:uppercase}
.f__pts{text-align:right;font:800 18px/1.1 var(--serif);font-variant-numeric:tabular-nums}
.f__pts small{display:block;font:500 11.5px var(--sans);color:var(--muted)}
.f__bar{grid-column:1/-1;height:3px;background:var(--hair-2);overflow:hidden}
.f__bar span{display:block;height:100%;background:var(--ink);transform-origin:left;transform:scaleX(var(--p,0));transition:transform 1s var(--ease) .2s}
.f--hard .f__bar span{background:var(--stamp)}
.f--na{opacity:.55}
.f__flag{color:var(--stamp);font:800 10.5px var(--sans);letter-spacing:.12em;text-transform:uppercase}
.v__score{font:900 92px/.9 var(--serif);font-variant-numeric:tabular-nums;letter-spacing:-.03em;margin-top:8px}
.v__score small{display:block;font:600 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:8px}
.vstamp{width:200px;height:200px;margin:8px 0}
.vstamp b{font-size:21px}
.vstamp.clean{color:var(--olive);border-color:var(--olive)}
.vstamp.mixed{color:var(--ink-2);border-color:var(--ink-2)}
.vstamp.red{color:var(--stamp);border-color:var(--stamp)}
.vstamp.go{animation:thud .75s .35s var(--ease) both}
.v__cap{font:italic 14px/1.5 var(--serif);color:var(--ink-2);margin:0}
.v__btns{display:grid;gap:8px;width:100%;margin-top:auto}
.v__btns button{height:40px;border:1px solid var(--ink);background:transparent;font:700 11.5px var(--sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background-color .2s,color .2s}
.v__btns button:hover{background:var(--ink);color:var(--paper)}
.v__foot{grid-column:1/-1;border-top:1px solid var(--ink);padding:12px 30px;font-size:12.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 18px}
.holders{margin-top:18px}
.holders summary{cursor:pointer;font:700 12px var(--sans);letter-spacing:.12em;text-transform:uppercase}
.holders table{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px;table-layout:fixed}
.holders th,.holders td{text-align:left;padding:6px 6px;border-bottom:1px solid var(--hair-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.holders th{font:700 10.5px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.holders td.r,.holders th.r{text-align:right;font-variant-numeric:tabular-nums}
.holders td.x{color:var(--muted);font-style:italic}

/* ---------- weights ---------- */
.wgrid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px;align-items:start}
.wctl{display:grid;gap:4px;border-top:2px solid var(--ink)}
.wrow{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:2px 12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--hair)}
.wrow label{font:600 14px var(--sans)}
.wrow output{font:800 17px var(--serif);text-align:right;font-variant-numeric:tabular-nums}
.wrow input{grid-column:1/-1}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:20px;background:transparent;cursor:pointer}
input[type=range]::-webkit-slider-runnable-track{height:2px;background:var(--ink)}
input[type=range]::-moz-range-track{height:2px;background:var(--ink)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;margin-top:-6px;background:var(--paper);border:2px solid var(--ink);transform:rotate(45deg)}
input[type=range]::-moz-range-thumb{width:12px;height:12px;background:var(--paper);border:2px solid var(--ink);border-radius:0}
.wfig{margin:0;border:1px solid var(--ink);background:var(--paper-3);padding:18px 20px;position:sticky;top:20px}
.wfig figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:10px;border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:12px;font:800 20px var(--serif);min-width:0}
.wfig figcaption span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wfig__score{font:900 34px var(--serif);font-variant-numeric:tabular-nums}
.wfig svg{width:100%;height:auto}
.wfig .lbl{font:600 12.5px var(--sans);fill:var(--ink)}
.wfig .val{font:700 12px var(--sans);fill:var(--ink-2)}
.wfig .na{font:italic 12px var(--serif);fill:var(--muted)}
.wfig .avail{fill:none;stroke:var(--ink);stroke-width:1}
.wfig .earn{fill:var(--ink);transform-box:fill-box;transform-origin:left;transition:transform .5s var(--ease)}
.wfig .earn.hard{fill:var(--stamp)}
.wfig__note{font:italic 13.5px var(--serif);color:var(--muted);margin:10px 0 0}
.wfig__btns{display:flex;gap:16px}

/* ---------- compare ---------- */
.cmpbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;gap:16px;align-items:end;max-width:1000px}
.cmpbar label{display:block;font:700 11px var(--sans);letter-spacing:.16em;text-transform:uppercase;margin-bottom:4px}
.cmpbar input{width:100%}
.cmpbar__v{font:italic 600 28px var(--serif);padding-bottom:6px;color:var(--stamp)}
.cmphint{font:italic 14px var(--serif);color:var(--muted);margin:12px 0 26px;display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}
.cmphint button{border:1px solid var(--hair);background:var(--paper-3);padding:3px 8px;font:600 12px var(--sans);cursor:pointer;font-style:normal}
.cmphint button:hover{border-color:var(--ink)}
.cmpout{min-height:60px}
.ctab{width:100%;border-collapse:collapse;border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);table-layout:fixed;animation:fadeUp .6s var(--ease) both}
.ctab th,.ctab td{padding:12px 14px;border-bottom:1px solid var(--hair);text-align:left;vertical-align:top;font-size:14.5px;overflow-wrap:anywhere}
.ctab thead th{font:800 22px/1.15 var(--serif);border-bottom:2px solid var(--ink);padding-top:16px}
.ctab thead th small{display:block;font:500 12px var(--mono);color:var(--muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ctab tbody th{font:700 13px var(--sans);width:24%}
.ctab td .p{display:block;font:800 16px var(--serif);margin-top:2px}
.ctab td.win{background:linear-gradient(90deg,rgba(85,96,63,.08),transparent)}
.ctab td.win .p::after{content:" ✓";color:var(--olive)}
.ctab tfoot td,.ctab tfoot th{font:900 30px var(--serif);border-bottom:0;padding-top:16px}
.ctab tfoot .vs{font:800 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--stamp);display:block}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ---------- rulebook ---------- */
.rulecols{columns:3 300px;column-gap:40px;column-rule:1px solid var(--hair)}
.rule{break-inside:avoid;margin:0 0 22px;padding-bottom:18px;border-bottom:1px dotted var(--hair)}
.rule h3{font:800 18px/1.25 var(--serif);margin:0 0 6px}
.rule p{margin:0;font:400 15.5px/1.6 var(--serif);color:var(--ink-2)}
.rule em{color:var(--stamp);font-style:italic}
.rule--wide{column-span:all;border:1px solid var(--ink);padding:18px 20px;background:var(--paper-3);margin-top:8px}

/* ---------- case files ---------- */
.files{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.clip{position:relative;border:1px solid var(--ink);background:var(--paper-3);padding:14px 16px 12px;min-width:0;animation:fadeIn .5s var(--ease) both}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.clip:nth-child(3n+1){transform:rotate(-.4deg)}
.clip:nth-child(3n+2){transform:rotate(.35deg)}
.clip h3{margin:0;font:800 20px/1.2 var(--serif);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:64px}
.clip p{margin:2px 0 10px;font:italic 13px var(--serif);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.clip__score{position:absolute;right:12px;top:10px;font:900 26px var(--serif)}
.clip__mark{display:inline-block;font:800 10px var(--sans);letter-spacing:.12em;text-transform:uppercase;border:1.5px solid currentColor;padding:3px 6px;transform:rotate(-3deg)}
.clip button{display:block;margin-top:10px;border:0;background:none;padding:0;font:700 11.5px var(--sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.files__empty{font:italic 16px var(--serif);color:var(--muted);grid-column:1/-1;padding:20px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}

/* ---------- letters ---------- */
.letters{columns:2 380px;column-gap:44px}
.letters details{break-inside:avoid;border-top:1px solid var(--ink);padding:0 0 4px;margin-bottom:10px}
.letters summary{cursor:pointer;list-style:none;padding:14px 30px 10px 0;font:700 19px/1.35 var(--serif);position:relative}
.letters summary::-webkit-details-marker{display:none}
.letters summary::after{content:"+";position:absolute;right:2px;top:12px;font:400 24px var(--serif);color:var(--stamp);transition:transform .3s var(--ease)}
.letters details[open] summary::after{transform:rotate(45deg)}
.letters p{margin:0 0 14px;font:400 16px/1.65 var(--serif);color:var(--ink-2)}

/* ---------- colophon ---------- */
.colophon{padding:40px 0 30px}
.colophon__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr) minmax(0,1.4fr);gap:36px;padding-top:26px}
.colophon__name{font:900 36px/1 var(--serif);margin:0 0 8px}
.colophon p{margin:0 0 10px;font-size:14.5px;color:var(--ink-2)}
.colophon__coin{display:flex;gap:16px}
.colophon__coin a{font-weight:700}
.colophon__coin .textbtn{margin:0}
.colophon nav{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;align-content:start}
.colophon nav a{text-decoration:none;font:600 13px var(--sans);letter-spacing:.08em;text-transform:uppercase}
.colophon nav a:hover{color:var(--stamp)}
.colophon__note{border-left:3px solid var(--stamp);padding:6px 0 6px 16px;font:400 15px/1.6 var(--serif)!important}
.colophon__base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:30px 0 0!important;padding-top:14px;border-top:1px solid var(--ink);font:600 11.5px var(--sans)!important;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)!important}

.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,16px);opacity:0;background:var(--ink);color:var(--paper);padding:10px 16px;font:600 13.5px var(--sans);pointer-events:none;transition:opacity .3s,transform .3s var(--ease);z-index:90}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .front{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr)}
  .col--brief{grid-column:1/-1;border-left:0!important;padding:30px 0 0;margin-top:30px;border-top:1px solid var(--ink);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 30px}
  .col--brief .colhead{grid-column:1/-1}
  .col--lead{padding-right:0}
  .verdict{grid-template-columns:1fr}
  .v__main{border-right:0;border-bottom:1px solid var(--ink)}
  .wgrid{grid-template-columns:1fr}
  .wfig{position:static}
}
@media (max-width:760px){
  .wrap{padding:0 18px}
  .ear{grid-template-columns:1fr;gap:4px;text-align:center}
  .ear__l{display:none}
  .ear__r{text-align:center}
  .sections{justify-content:space-between;padding:6px 18px}
  .sections::after{left:18px;right:18px}
  .digest__list{grid-template-columns:1fr}
  .sections__btn{display:block;border:1px solid var(--ink);background:none;padding:8px 14px;font:700 12px var(--sans);letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
  .sections__list{position:absolute;left:0;right:0;top:100%;z-index:40;flex-direction:column;background:var(--paper);border-bottom:3px double var(--ink);padding:6px 18px 12px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .25s,transform .25s var(--ease),visibility 0s .25s}
  .sections__list.open{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .25s var(--ease)}
  .sections__list li + li{border-left:0;border-top:1px solid var(--hair)}
  .sections__list a{padding:13px 0;font-size:13px}
  .xbtn{position:static;transform:none}
  .front{grid-template-columns:1fr;padding-top:20px}
  .col{padding:0!important;border-left:0!important}
  .col--lead{order:-1;margin-bottom:34px}
  .col--docket{border-top:1px solid var(--ink)!important;padding-top:24px!important}
  .col--brief{grid-template-columns:1fr;gap:0}
  .lead__stamp{float:none;margin:0 0 14px}
  .stamp--hero{width:120px;height:120px}
  .lead__p{text-align:left}
  .file__row,.casebar{flex-direction:column}
  .file button,.casebar button{width:100%}
  .cmpbar{grid-template-columns:1fr}
  .cmpbar__v{padding:0}
  .v__main,.v__side{padding:22px 18px}
  .v__foot{padding:12px 18px}
  .f{grid-template-columns:minmax(0,1fr) 70px}
  .v__score{font-size:76px}
  .blank{flex-direction:column;align-items:flex-start}
  .sect{padding:62px 0}
  .sect__head--row{flex-direction:column;align-items:flex-start}
  .colophon__grid{grid-template-columns:1fr}
  .ctab{min-width:560px}
}
/* =====================================================================
   Polish layer: depth, drawings, motion (transform + opacity only)
   ===================================================================== */
:root{--spring:cubic-bezier(.34,1.45,.5,1);--lift:0 1px 0 var(--hair),0 24px 40px -32px rgba(27,26,23,.42)}

/* intro choreography */
.col--lead .kicker{animation:fadeUp .7s .35s var(--ease) both}
.lead__title{animation:fadeUp .9s .48s var(--ease) both}
.col--lead .lead__title{font-size:clamp(34px,3.7vw,50px)}
.lead__title em{font-style:italic;font-weight:600;color:var(--stamp)}
.byline{animation:fadeUp .7s .64s var(--ease) both}
.plate{animation:fadeUp .9s .76s var(--ease) both}
.col--docket{animation:fadeIn .9s .55s var(--ease) both}
.col--brief{animation:fadeIn .9s .8s var(--ease) both}
.sect__head h2 em,.run__title em{font-style:italic;font-weight:600;color:var(--stamp)}

/* scroll reveals */
.js-motion .rv{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease) var(--rv-d,0s),transform .8s var(--ease) var(--rv-d,0s)}
.js-motion .rv.in{opacity:1;transform:none}

/* depth */
.file,.figures,.verdict,.wfig,.ctab,.rule--wide,.curves{box-shadow:var(--lift)}
.front{position:relative}

/* Fig. 1 — the scales of the docket */
.plate{margin:0 0 22px;border:1px solid var(--ink);background:var(--paper-3) var(--grain);padding:8px 8px 0;position:relative}
.plate__svg{width:100%;height:auto;overflow:visible}
.plate__cap{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;border-top:1px solid var(--hair);padding:9px 4px 10px;font:italic 13.5px/1.45 var(--serif);color:var(--ink-2)}
.plate__cap b{font:800 10.5px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--stamp);font-style:normal}
.plate__go{border:0;background:none;padding:0;font:700 12px var(--sans);letter-spacing:.06em;color:var(--stamp);cursor:pointer;text-decoration:underline;text-underline-offset:3px;font-style:normal}
.pl-bg line{stroke:var(--hair-2);stroke-width:.6}
.pl-frame rect{fill:none;stroke:var(--hair)}
.pl-frame rect:first-child{stroke:var(--ink);stroke-width:1.2}
.pl-post path{fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round}
.pl-post .pl-base{fill:var(--paper-2);stroke-width:1.6}
.pl-post .pl-fin{fill:var(--stamp)}
.pl-beam path{stroke:var(--ink);stroke-width:3.2;stroke-linecap:round}
.pl-beam circle{fill:var(--ink)}
.pl-beam .pl-pivot{fill:var(--paper-3);stroke:var(--ink);stroke-width:2}
.pl-chain{fill:none;stroke:var(--ink-2);stroke-width:1;stroke-dasharray:2 2}
.pl-bowl{fill:var(--paper-2);stroke:var(--ink);stroke-width:1.6;stroke-linejoin:round}
.pl-lbl{font:700 9.5px var(--sans);letter-spacing:.16em;text-transform:uppercase;fill:var(--muted)}
.pl-name{font:800 26px var(--serif);fill:var(--ink)}
.pl-sub{font:italic 13px var(--serif);fill:var(--muted)}
.pl-sk{font:700 9.5px var(--sans);letter-spacing:.18em;text-transform:uppercase;fill:var(--stamp)}
.pl-score{font:900 46px var(--serif);fill:var(--ink);font-variant-numeric:tabular-nums}
.pl-blk{animation:blkDrop .6s var(--spring) both}
.pl-blk rect{fill:var(--ink)}
.pl-blk text{font:700 8.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;fill:var(--paper)}
.pl-blk.is-hard rect{fill:var(--stamp)}
.pl-blk.is-lost rect{fill:var(--stamp-soft);stroke:var(--stamp);stroke-width:1}
.pl-blk.is-lost text{fill:var(--stamp)}
@keyframes blkDrop{from{opacity:0;transform:translateY(-46px)}to{opacity:1;transform:none}}
.pl-stamp{opacity:0;color:var(--ink-2);transform-box:fill-box;transform-origin:center}
.pl-stamp circle{fill:none;stroke:currentColor;stroke-width:3}
.pl-stamp circle:first-child{fill:var(--paper-3);fill-opacity:.86}
.pl-stamp .pl-stamp__in{stroke-width:1.2}
.pl-stamp text{fill:currentColor;font:800 12.5px var(--sans);letter-spacing:.14em}
.pl-stamp .pl-stamp__i{font:italic 400 13px var(--serif);letter-spacing:0}
.pl-stamp.clean{color:var(--olive)}.pl-stamp.mixed{color:var(--ink-2)}.pl-stamp.red{color:var(--stamp)}.pl-stamp.none{color:var(--muted)}
.pl-stamp.go{animation:plThud .7s var(--ease) forwards}
@keyframes plThud{0%{opacity:0;transform:scale(1.7)}60%{opacity:.95;transform:scale(.95)}100%{opacity:.92;transform:scale(1)}}
.pl-stack,.pl-stamp-w,.pl-name,.pl-sub,.pl-score{transition:opacity .45s var(--ease)}
.plate__svg.is-out .pl-stack,.plate__svg.is-out .pl-stamp-w,.plate__svg.is-out .pl-name,.plate__svg.is-out .pl-sub,.plate__svg.is-out .pl-score{opacity:0}

/* special report — scroll-pinned "goes to press" */
.run{background:var(--paper-2) var(--grain);border-bottom:1px solid var(--ink);position:relative;overflow-x:clip}
.run__track{height:300vh;position:relative}
.run__stage{position:sticky;top:0;height:100vh;height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.run__grid{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:0 120px;align-items:center}
.run__title{font:800 clamp(34px,4.4vw,58px)/1.04 var(--serif);letter-spacing:-.02em;margin:0 0 14px}
.run__dek{font:italic 400 18px/1.55 var(--serif);color:var(--ink-2);margin:0;max-width:440px}
.srcs{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:10px;max-width:360px;position:relative;z-index:1}
.srcs li{position:relative;display:grid;padding:10px 14px;border:1px solid var(--hair);background:var(--paper-3);opacity:.42;transform:translateX(-8px);transition:opacity .5s var(--ease),transform .5s var(--ease),border-color .5s}
.srcs li.on{opacity:1;transform:none;border-color:var(--ink);box-shadow:var(--lift)}
.srcs li::after{content:"";position:absolute;right:-6px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--paper-3);border:1.5px solid var(--hair);transition:transform .4s var(--spring)}
.srcs li.on::after{background:var(--stamp);border-color:var(--stamp);transform:scale(1.15)}
.srcs b{font:800 17px/1.2 var(--serif)}
.srcs span{font:500 12.5px var(--sans);color:var(--muted)}
.run__wires{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.run__wires path{fill:none;stroke:var(--ink-2);stroke-width:1.3;stroke-dasharray:1;stroke-dashoffset:1}
.spec{position:relative;z-index:1;border:1px solid var(--ink);background:var(--paper-3);padding:18px 22px 16px;box-shadow:var(--lift)}
.spec__head{border-bottom:2px solid var(--ink);padding-bottom:8px;margin-bottom:4px}
.spec__k{font:700 10.5px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--stamp)}
.spec__head h3{font:800 28px/1.1 var(--serif);margin:2px 0 0}
.spec__rows{list-style:none;margin:0;padding:0}
.spec__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) 62px;gap:2px 12px;padding:6px 0 5px;border-bottom:1px solid var(--hair-2);align-items:baseline;opacity:.14;transform:translateY(4px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.spec__row.on{opacity:1;transform:none}
.spec__n{font:700 12.5px var(--sans);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spec__f{font:italic 13px/1.35 var(--serif);color:var(--ink-2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spec__p{text-align:right;font:800 13px var(--serif);font-variant-numeric:tabular-nums}
.spec__bar{grid-column:1/-1;height:2px;background:var(--hair-2);overflow:hidden}
.spec__bar span{display:block;height:100%;background:var(--ink);transform-origin:left;transform:scaleX(0);transition:transform .8s var(--ease) .12s}
.spec__row.on .spec__bar span{transform:scaleX(var(--p,0))}
.spec__foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:12px}
.spec__score span{display:block;font:900 64px/.9 var(--serif);font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.spec__score small{display:block;font:600 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.spec__stamp{width:118px;height:118px;flex:none;opacity:0;transform:rotate(-24deg) scale(1.6)}
.spec__stamp b{font-size:14px}.spec__stamp i{font-size:13px}
.spec__stamp.clean{color:var(--olive);border-color:var(--olive)}.spec__stamp.mixed{color:var(--ink-2);border-color:var(--ink-2)}.spec__stamp.red{color:var(--stamp);border-color:var(--stamp)}
.spec__stamp.go{animation:thud .6s var(--ease) forwards}
.run__bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--hair-2)}
.run__bar span{display:block;height:100%;background:var(--stamp);transform-origin:left;transform:scaleX(0)}
@media (max-height:760px) and (min-width:761px){.spec__row{padding:3px 0}.spec__score span{font-size:48px}.spec__stamp{width:96px;height:96px}.srcs{margin-top:16px}}

/* section drawings */
.sect > .wrap{position:relative}
.sect__art{position:absolute;right:32px;top:-4px;width:150px;height:auto;pointer-events:none;overflow:visible}
.sect__art .d{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}
.js-motion .sect__art .d{stroke-dashoffset:1;transition:stroke-dashoffset 1.5s var(--ease) .25s}
.js-motion .sect__art .d--2{transition-delay:.6s}
.js-motion .sect__art .d--3{transition-delay:.95s}
.js-motion .sect__art.in .d{stroke-dashoffset:0}
.sect__art .acc{stroke:var(--stamp)}
.sect__art .t{font:italic 600 22px var(--serif);fill:var(--stamp)}
.sect__art .pt{fill:var(--stamp)}
.sect__art .seal-dot{fill:var(--stamp);transform-box:fill-box;transform-origin:center}
.js-motion .sect__art .seal-dot{transform:scale(0);transition:transform .55s var(--spring) 1.6s}
.js-motion .sect__art.in .seal-dot{transform:scale(1)}
.sect__art .beam{transform-origin:80px 30px;animation:rock 6s ease-in-out 2s infinite}
.sect__art .gavel{transform-origin:118px 104px;animation:gavel 5s var(--ease) 2.2s infinite}
.sect__art.is-off .beam,.sect__art.is-off .gavel{animation-play-state:paused}
@keyframes rock{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes gavel{0%,70%,100%{transform:rotate(0)}78%{transform:rotate(-12deg)}86%{transform:rotate(2deg)}92%{transform:rotate(0)}}

/* Fig. 2 — scoring curves */
.curves{margin:0 0 36px;border:1px solid var(--ink);background:var(--paper-3);padding:16px 20px 18px}
.curves__cap{font:italic 14.5px/1.5 var(--serif);color:var(--ink-2);margin-bottom:14px;max-width:760px}
.curves__cap b{font:800 10.5px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--stamp);font-style:normal;margin-right:6px}
.curves__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 26px}
.cv{min-width:0;border-top:1px solid var(--hair);padding-top:8px}
.cv__n{margin:0 0 4px;font:700 11.5px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.cv svg{width:100%;height:auto;overflow:visible}
.cv-grid{fill:none;stroke:var(--hair-2);stroke-dasharray:2 3}
.cv-ax{fill:none;stroke:var(--ink);stroke-width:1}
.cv-area{fill:var(--ink);opacity:.06}
.cv-line{fill:none;stroke:var(--stamp);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}
.js-motion .cv-line{stroke-dashoffset:1;transition:stroke-dashoffset 1.6s var(--ease) calc(var(--rv-d,0s) + .25s)}
.js-motion .cv.in .cv-line{stroke-dashoffset:0}
.js-motion .cv-area{opacity:0;transition:opacity .9s var(--ease) calc(var(--rv-d,0s) + 1s)}
.js-motion .cv.in .cv-area{opacity:.06}
.cv-t{font:600 9.5px var(--sans);fill:var(--muted)}
.cv-t--y{fill:var(--stamp)}

/* shimmer instead of spinners */
.prog__line{position:relative;overflow:hidden}
.prog__line.run{color:var(--ink)}
.prog__line.run i{animation:pulseO .9s ease-in-out infinite alternate;border-color:var(--ink)}
.prog__line.run::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(239,235,226,.9),transparent);transform:translateX(-100%);animation:shim 1.3s linear infinite}
@keyframes pulseO{from{opacity:.3}to{opacity:1}}
@keyframes shim{to{transform:translateX(100%)}}
.dk--sk{animation:none;background:linear-gradient(var(--hair-2),var(--hair-2)) 0 12px/34px 34px no-repeat,linear-gradient(var(--hair-2),var(--hair-2)) 44px 14px/45% 11px no-repeat,linear-gradient(var(--hair-2),var(--hair-2)) 44px 33px/65% 8px no-repeat;position:relative;overflow:hidden}
.dk--sk::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(246,243,236,.85),transparent);transform:translateX(-100%);animation:shim 1.4s linear infinite}

/* blank state: the ghost stamp waits */
.blank .stamp--ghost{animation:ghost 4.5s ease-in-out infinite}
#caseOut.is-off .stamp--ghost{animation-play-state:paused}
@keyframes ghost{0%,100%{transform:rotate(-8deg) translateY(0);opacity:.75}50%{transform:rotate(-5deg) translateY(-5px);opacity:1}}

/* micro-interactions */
.file button,.casebar button,.cmpbar button{position:relative;overflow:hidden;transition:background-color .2s,transform .15s var(--ease)}
.file button::after,.casebar button::after,.cmpbar button::after{content:"";position:absolute;top:0;bottom:0;left:0;width:45%;background:linear-gradient(100deg,transparent,rgba(239,235,226,.3),transparent);transform:translateX(-130%);transition:transform .7s var(--ease);pointer-events:none}
.file button:hover::after,.casebar button:hover::after,.cmpbar button:hover::after{transform:translateX(260%)}
.file button:active,.casebar button:active,.cmpbar button:active,.v__btns button:active,.ca button:active,.cmphint button:active{transform:translateY(1px) scale(.98)}
.v__btns button,.ca button{transition:background-color .2s,color .2s,transform .15s var(--ease)}
.v__btns button.is-done,.ca button.is-done{background:var(--olive);border-color:var(--olive);color:var(--paper)}
.dk__go,.dg__sym,.textbtn,.plate__go{transition:transform .2s var(--ease)}
.dk__go:hover,.plate__go:hover{transform:translateX(3px)}
.dk{transition:background-color .2s}
.dk:hover{background:linear-gradient(90deg,transparent,var(--paper-2) 30%,transparent)}
.sections__list a{position:relative}
.sections__list a::after{content:"";position:absolute;left:18px;right:18px;bottom:4px;height:1.5px;background:var(--stamp);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.sections__list a:hover::after,.sections__list a:focus-visible::after{transform:scaleX(1)}
.clip{transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.clip:hover{transform:rotate(0) translateY(-3px);box-shadow:0 16px 26px -20px rgba(27,26,23,.55)}
.letters summary::before{content:"";position:absolute;left:0;bottom:4px;width:40px;height:1.5px;background:var(--stamp);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.letters summary:hover::before,.letters details[open] summary::before{transform:scaleX(1)}
input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg,var(--stamp) 0 var(--fill,0%),var(--ink) var(--fill,0%) 100%)}
input[type=range]::-moz-range-progress{height:2px;background:var(--stamp)}
input[type=range]::-webkit-slider-thumb{transition:transform .2s var(--spring)}
input[type=range]:active::-webkit-slider-thumb,input[type=range]:focus-visible::-webkit-slider-thumb{transform:rotate(45deg) scale(1.3)}

/* live values */
#earSlot,#earSol,.wfig__score{display:inline-block}
.tick{animation:tick .9s var(--ease)}
@keyframes tick{from{opacity:.25;transform:translateY(-4px)}to{opacity:1;transform:none}}
.bump{animation:bump .5s var(--ease)}
@keyframes bump{40%{transform:scale(1.1)}}
.tape.is-off .tape__track{animation-play-state:paused}
.digest__list li{animation:fadeUp .6s var(--ease) var(--rv-d,0s) both}
.ctab tr.row-in{animation:fadeUp .5s var(--ease) var(--rv-d,0s) both}

@media (max-width:1080px){
  .run__grid{gap:0 70px}
}
@media (max-width:900px){
  .sect__art{display:none}
}
@media (max-width:760px){
  .run__track{height:auto}
  .run__stage{position:relative;height:auto;padding:56px 0 64px;overflow:visible}
  .run__grid{grid-template-columns:minmax(0,1fr);gap:26px}
  .run__wires{display:none}
  .srcs{grid-template-columns:1fr 1fr;max-width:none;gap:8px}
  .srcs li{padding:8px 10px}
  .srcs li::after{display:none}
  .srcs b{font-size:15px}
  .spec{padding:16px 16px 14px}
  .spec__row{grid-template-columns:minmax(0,1fr) 58px;grid-template-areas:"n p" "f f" "b b"}
  .spec__n{grid-area:n}.spec__p{grid-area:p}.spec__f{grid-area:f;white-space:normal}.spec__bar{grid-area:b}
  .spec__score span{font-size:52px}
  .spec__stamp{width:100px;height:100px}
  .curves{padding:14px 14px 16px}
  .plate{padding:6px 6px 0}
}
@media (max-width:620px){
  .curves__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 16px}
}
@media (max-width:420px){
  .curves__grid{grid-template-columns:minmax(0,1fr)}
  .srcs{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0s!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .tape__track{animation:none!important}
  .reveal{opacity:1;transform:none}
  .mast__letters .l,.dk,.f{opacity:1;transform:none}
  .sect__head.pre::before{--r:1}
}
@media (prefers-reduced-motion:reduce){
  .run__track{height:auto}
  .run__stage{position:relative;height:auto;padding:70px 0}
  .run__wires path{stroke-dashoffset:0!important}
  .js-motion .rv{opacity:1;transform:none}
  .js-motion .sect__art .d,.js-motion .cv-line{stroke-dashoffset:0}
  .js-motion .sect__art .seal-dot{transform:none}
  .js-motion .cv-area{opacity:.06}
  .sect__art .beam,.sect__art .gavel,.blank .stamp--ghost,.prog__line.run i,.prog__line.run::after,.dk--sk::after{animation:none!important}
  .prog__line.run::after,.dk--sk::after{display:none}
}
@media (max-width:760px){
  .pl-lbl,.pl-sk{font-size:13px}
  .pl-sub{font-size:17px}
  .pl-name{font-size:30px}
  .pl-score{font-size:54px}
}
