/* Remint home, part A: hero, two ways, wholesale, grading. Owner: A1. Uses base.css tokens. */

/* ---------- hero ---------- */
.hero{position:relative;display:flex;flex-direction:column;overflow:hidden;min-height:min(100svh,1000px);padding-top:clamp(96px,11.5vh,140px)}
.hero__bg{position:absolute;inset:0;pointer-events:none}
.hero__grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse 78% 72% at 64% 42%,#000 14%,transparent 78%);mask-image:radial-gradient(ellipse 78% 72% at 64% 42%,#000 14%,transparent 78%)}
.hero__wrap{position:relative;flex:1;display:flex;flex-direction:column}
.hero__inner{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:center;padding-bottom:clamp(24px,4vh,44px)}
.hero__copy{container-type:inline-size;min-width:0}
.hero__label{color:var(--fg-muted);margin-bottom:18px}

/* the switch */
.hero__switch{position:relative;isolation:isolate;display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:5px;border-radius:14px;background-color:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px var(--line)}
.hero__switch-thumb{position:absolute;z-index:0;top:5px;bottom:5px;left:5px;width:calc(50% - 5px);border-radius:10px;background-color:var(--mint);transition:transform .45s var(--ease-out),background-color .35s}
html[data-mode=sell] .hero__switch-thumb{transform:translateX(100%);background-color:var(--violet)}
.hero__switch-btn{position:relative;z-index:1;min-height:48px;padding:0 22px;border-radius:10px;color:var(--fg-muted);font-size:.98rem;font-weight:640;font-stretch:104%;letter-spacing:-.005em;white-space:nowrap;-webkit-tap-highlight-color:transparent;transition:color .3s,transform .35s var(--ease-spring)}
.hero__switch-btn:active{transform:scale(.97)}
.hero__switch-btn[aria-pressed=true]{color:var(--ink)}
html[data-mode=sell] .hero__switch-btn[aria-pressed=true]{color:#fff}
@media (hover:hover) and (pointer:fine){.hero__switch-btn[aria-pressed=false]:hover{color:#fff}}
html:not(.js) .hero__switch{display:none}

/* headline and sub: sized from the column so the longest line always fits */
.hero__title{margin-top:clamp(18px,3vh,30px);font-size:clamp(2rem,11.2cqw,5.1rem);font-weight:820;font-stretch:108%;line-height:.99;letter-spacing:-.03em;color:#fff;text-wrap:balance}
.hero__title .hero-line{display:block}
.hero__sub{margin-top:clamp(14px,2.2vh,22px);max-width:52ch;font-size:clamp(1rem,.93rem + .28vw,1.18rem);line-height:1.5;color:var(--fg-muted);text-wrap:pretty}
.hero__cta{margin-top:clamp(20px,3vh,30px);max-width:600px}
.hero__note{margin-top:12px;color:var(--fg-muted)}

/* selling starter */
.hero__starter-label{margin-bottom:12px;color:var(--fg-muted)}
.hero__starter{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:540px}
.hero-chip{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:20px;min-height:100px;padding:16px;border-radius:var(--r-md);background-color:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1.5px var(--line);color:#fff;font-size:1.05rem;font-weight:650;font-stretch:104%;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:background-color .25s,box-shadow .25s,transform .4s var(--ease-spring)}
.hero-chip .ico{width:30px;height:30px;color:var(--mint);transition:color .25s}
.hero-chip:active{transform:scale(.97)}
@media (hover:hover) and (pointer:fine){.hero-chip:hover{transform:translateY(-4px);background-color:var(--violet);box-shadow:none}.hero-chip:hover .ico{color:#fff}}
.hero__quote-btn{margin-top:18px}

/* trust strip */
.trust{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.trust li{display:grid;align-content:start;gap:7px;padding:20px 20px 26px 24px;border-left:1px solid var(--line)}
.trust li:first-child{border-left:0;padding-left:0}
.trust .label{color:var(--fg-muted)}
.trust strong{font-size:clamp(1rem,.86rem + .52vw,1.3rem);font-weight:680;font-stretch:104%;letter-spacing:-.01em;line-height:1.2;color:#fff}

/* stage: the 3D phone (hero3d.js) or the HTML phone below it */
.hero__stage{position:relative;align-self:stretch;min-height:min(640px,72vh);container-type:size}
.hero__glow{position:absolute;left:50%;top:50%;width:min(520px,96%);aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;transition:opacity .5s var(--ease-out)}
.hero__glow--mint{background:radial-gradient(circle closest-side,color-mix(in srgb,var(--mint) 46%,transparent) 0,color-mix(in srgb,var(--mint) 14%,transparent) 58%,transparent 100%)}
.hero__glow--violet{opacity:0;background:radial-gradient(circle closest-side,color-mix(in srgb,var(--violet) 66%,transparent) 0,color-mix(in srgb,var(--violet) 20%,transparent) 58%,transparent 100%)}
html[data-mode=sell] .hero__glow--mint{opacity:0}
html[data-mode=sell] .hero__glow--violet{opacity:1}
.hero3d{position:absolute;inset:0;opacity:0;transition:opacity .6s var(--ease-out)}
.hero3d canvas{display:block;width:100%;height:100%;touch-action:pan-y}
.hero-phone{position:absolute;inset:0;display:grid;place-items:center;transition:opacity .6s var(--ease-out),visibility 0s}
.hero__stage.is-3d .hero3d{opacity:1}
.hero__stage.is-3d .hero-phone{opacity:0;visibility:hidden;transition:opacity .6s var(--ease-out),visibility 0s .6s}

/* phones: copy first, then the stage */
@media (max-width:899.98px){
  .hero{min-height:0;padding-top:calc(64px + env(safe-area-inset-top,0px) + 30px)}
  .hero__inner{grid-template-columns:minmax(0,1fr);gap:20px;padding-bottom:12px}
  .hero__stage{min-height:0;height:clamp(400px,113vw,540px)}
  .hero__switch{display:grid;width:100%}
  .hero__switch-btn{padding:0 8px;font-size:.93rem;white-space:normal;line-height:1.15}
  .hero__starter{max-width:none}
  .trust{grid-template-columns:repeat(2,minmax(0,1fr))}
  .trust li{padding:16px 14px 18px}
  .trust li:nth-child(odd){border-left:0;padding-left:0}
  .trust li:nth-child(n+3){border-top:1px solid var(--line)}
  .hero__grid{-webkit-mask-image:radial-gradient(ellipse 90% 60% at 50% 70%,#000 10%,transparent 80%);mask-image:radial-gradient(ellipse 90% 60% at 50% 70%,#000 10%,transparent 80%)}
}
@media (max-width:420px){
  .hero-chip{min-height:88px;padding:12px;font-size:.98rem}
  .hero-chip .ico{width:26px;height:26px}
  .trust strong{font-size:1.02rem}
}

/* entrance: hidden only until hero JS is ready; a pure CSS timer shows everything if the script never arrives */
html.motion .hero:not(.is-ready) :is(.hero__label,.hero__switch,.hero__title,.hero__sub,.hero__cta,.trust li,.hp-device){opacity:0;animation:hero-failsafe .01s 2.6s forwards}
@keyframes hero-failsafe{to{opacity:1}}

/* laptops with short screens: tighten the hero so the trust strip stays in the first screen */
@media (min-width:900px) and (max-height:860px){
  .hero{padding-top:clamp(84px,10vh,100px)}
  .hero__label{margin-bottom:12px}
  .hero__switch-btn{min-height:44px}
  .hero__title{margin-top:16px}
  .hero__sub{margin-top:12px;font-size:1rem}
  .hero__cta{margin-top:18px}
  .lead-form .phone-field,.lead-form .phone-field select,.lead-form .phone-field input,.lead-form .field{min-height:52px}
  .lead-form .check{margin-top:10px}
  .lead-form .btn{margin-top:10px;min-height:52px}
  .hero__note{margin-top:8px}
  .hero__inner{padding-bottom:20px}
  .trust li{padding-top:14px;padding-bottom:18px}
}

/* ---------- HTML phone (fallback and first paint). Everything scales from --u (1% of the phone's width) ---------- */
.hp-device{--ph:520px;position:relative;will-change:transform;height:var(--ph);aspect-ratio:9/19.5;padding:calc(var(--u)*4.3);border-radius:calc(var(--u)*14.5);background-color:#10152A;box-shadow:inset 0 0 0 calc(var(--u)*.8) #4A5380,inset 0 0 0 calc(var(--u)*2.4) #05070D,0 34px 60px -18px rgba(0,0,0,.6)}
@supports (height:1cqh){.hp-device{--ph:min(88cqh,640px)}}
.hp-device{--u:calc(var(--ph)*.004615)}
.hp-btn{position:absolute;width:calc(var(--u)*1.2);border-radius:99px;background-color:#39416B}
.hp-btn--a{left:calc(var(--u)*-1);top:calc(var(--u)*30);height:calc(var(--u)*7)}
.hp-btn--b{left:calc(var(--u)*-1);top:calc(var(--u)*42);height:calc(var(--u)*13)}
.hp-btn--c{left:calc(var(--u)*-1);top:calc(var(--u)*58);height:calc(var(--u)*13)}
.hp-btn--p{right:calc(var(--u)*-1);top:calc(var(--u)*46);height:calc(var(--u)*20)}
.hp-screen{position:relative;height:100%;overflow:hidden;border-radius:calc(var(--u)*10.4);background-color:#ECEFF3;font-size:calc(var(--u)*4.2)}
.hp-island{position:absolute;z-index:4;top:calc(var(--u)*2.6);left:50%;width:calc(var(--u)*24);height:calc(var(--u)*7);margin-left:calc(var(--u)*-12);border-radius:99px;background-color:#05070D}
.hp-head{position:absolute;z-index:3;left:0;right:0;top:0;display:flex;align-items:center;gap:calc(var(--u)*2.4);padding:calc(var(--u)*12) calc(var(--u)*4) calc(var(--u)*3);background-color:#fff;box-shadow:0 1px 0 rgba(8,11,20,.08)}
.hp-head img{width:calc(var(--u)*9);height:calc(var(--u)*9)}
.hp-head__name{font-size:calc(var(--u)*4.8);font-weight:760;letter-spacing:-.01em;color:#121626}
.hp-head__sub{margin-left:auto;font-family:var(--font-mono);font-size:calc(var(--u)*2.9);font-stretch:87.5%;letter-spacing:.04em;text-transform:uppercase;color:#4A5068}
.hp-chat{position:absolute;left:0;right:0;top:calc(var(--u)*25.5);bottom:0;display:flex;flex-direction:column;gap:calc(var(--u)*2.6);padding:calc(var(--u)*3.4) calc(var(--u)*3.4) 0;opacity:0;visibility:hidden;transition:opacity .4s,visibility 0s .4s}
html:not([data-mode=sell]) .hp-chat--wholesale,html[data-mode=sell] .hp-chat--sell{opacity:1;visibility:visible;transition-delay:0s}
.hp-msg{max-width:84%;padding:calc(var(--u)*2.6) calc(var(--u)*3.4);border-radius:calc(var(--u)*3.8);font-size:calc(var(--u)*4.2);line-height:1.34;color:#121626;background-color:#fff;box-shadow:0 1px 1px rgba(8,11,20,.08)}
.hp-msg--in{align-self:flex-start;border-bottom-left-radius:calc(var(--u)*1.2)}
.hp-msg--out{align-self:flex-end;border-bottom-right-radius:calc(var(--u)*1.2);background-color:var(--mint);color:var(--ink);font-weight:560}
html.motion:not(.no-gsap) .hp-msg{opacity:0}
.hp-card{width:92%;max-width:none;padding:0;overflow:hidden}
.hp-card__head{display:flex;align-items:center;justify-content:space-between;padding:calc(var(--u)*2.8) calc(var(--u)*3.4);border-bottom:1px solid #E6E9F0;font-size:calc(var(--u)*4.4)}
.hp-tag{padding:calc(var(--u)*.9) calc(var(--u)*2);border-radius:calc(var(--u)*1.2);background-color:#ECEFF6;color:#4A5068;font-family:var(--font-mono);font-size:calc(var(--u)*2.8);font-stretch:87.5%;letter-spacing:.06em;text-transform:uppercase}
.hp-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:calc(var(--u)*2);padding:calc(var(--u)*2.3) calc(var(--u)*3.4);border-bottom:1px solid #F0F2F7;font-size:calc(var(--u)*3.8)}
.hp-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hp-row .grade{min-width:calc(var(--u)*6.6);height:calc(var(--u)*6.6);padding:0;border-radius:calc(var(--u)*1.5);font-size:calc(var(--u)*3.3);font-style:normal}
.hp-row em{white-space:nowrap;min-width:calc(var(--u)*13);font-family:var(--font-mono);font-size:calc(var(--u)*3.1);font-stretch:87.5%;font-style:normal;color:#4A5068;text-align:right}
.hp-card__foot{padding:calc(var(--u)*2.6) calc(var(--u)*3.4);background-color:#F6F7FA;font-size:calc(var(--u)*3.5);color:#4A5068}
.hp-quote{padding:calc(var(--u)*3) calc(var(--u)*3.4) 0;font-family:var(--font-mono);font-size:calc(var(--u)*14);font-weight:700;font-stretch:87.5%;letter-spacing:-.03em;line-height:1.1;color:#121626}
.hp-quote__sub{padding:calc(var(--u)*1.4) calc(var(--u)*3.4) calc(var(--u)*3.4);font-size:calc(var(--u)*3.7);color:#4A5068}

/* ---------- two ways ---------- */
.two-ways__title{max-width:15ch}
.two-ways__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px);margin-top:clamp(30px,4vw,56px);align-items:start}
.tw{--pad:clamp(22px,3.2vw,48px);display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);column-gap:clamp(16px,2.2vw,30px);min-height:clamp(500px,44vw,620px);padding:var(--pad);will-change:auto}
.tw--trade{grid-template-areas:"body img"}
.tw--sell{grid-template-areas:"img body";grid-template-columns:minmax(0,1fr) minmax(0,1.55fr);margin-top:clamp(0px,4.4vw,64px)}
.tw__body{grid-area:body;position:relative;z-index:1;min-width:0}
.tw--trade .tw__body{align-self:start}
.tw--sell .tw__body{align-self:end}
.tw__img{grid-area:img;position:relative;z-index:1;width:auto}
.tw--trade .tw__img{align-self:end;margin:0 calc(var(--pad)*-1) calc(var(--pad)*-1) 0;border-radius:var(--r-lg) 0 0 0}
.tw--sell .tw__img{align-self:start;margin:calc(var(--pad)*-1) 0 0 calc(var(--pad)*-1);border-radius:0 0 var(--r-lg) 0}
.on-mint .slot{background-color:rgba(8,11,20,.1);background-image:repeating-linear-gradient(135deg,rgba(8,11,20,.14) 0 1px,transparent 1px 13px)}
.on-mint .slot .slot__tag{background-color:rgba(255,255,255,.9)}
.tw .label{opacity:.9}
.tw__title{margin-top:12px;font-size:clamp(2rem,1.25rem + 2.3vw,3.3rem);font-weight:790;font-stretch:106%;line-height:1;letter-spacing:-.025em}
.tw__text{margin-top:16px;max-width:44ch;color:var(--fg-muted);text-wrap:pretty}
.ticks{display:grid;gap:10px;margin:22px 0 28px;padding:0;list-style:none}
.ticks li{display:flex;align-items:center;gap:12px;font-weight:620;font-stretch:102%}
.ticks .ico{width:24px;height:24px;padding:5px;border-radius:6px;background-color:var(--mint);color:var(--ink)}
.on-mint .ticks .ico{background-color:var(--ink);color:var(--mint)}
.tw__deco{position:absolute;pointer-events:none}
.tw__deco--rings{right:-110px;top:-110px;width:380px;height:380px;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 26px,rgba(255,255,255,.14) 26px 27px)}
.tw__deco--hatch{left:0;bottom:0;width:38%;height:34%;background:repeating-linear-gradient(135deg,rgba(8,11,20,.16) 0 1px,transparent 1px 12px)}
html.motion .tw .ticks li{opacity:0;transform:translateX(-12px)}
html.motion .tw.in .ticks li{opacity:1;transform:none;transition:opacity .35s var(--ease-out),transform .35s var(--ease-out);transition-delay:calc(.2s + var(--i,0)*.08s)}
.tw .ticks li:nth-child(2){--i:1}.tw .ticks li:nth-child(3){--i:2}
html.motion .tw.reveal.in{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:opacity .3s var(--ease-out),transform .35s var(--ease-out)}
@media (max-width:899.98px){
  .two-ways__grid{grid-template-columns:minmax(0,1fr)}
  .tw,.tw--sell{min-height:0;margin-top:0;grid-template-columns:minmax(0,1fr)}
  .tw--trade{grid-template-areas:"body" "img"}
  .tw--sell{grid-template-areas:"img" "body";row-gap:24px}
  .tw--trade .tw__img{margin:24px 0 calc(var(--pad)*-1) auto;width:min(60%,250px);border-radius:var(--r-lg) 0 0 0}
  .tw--sell .tw__img{margin:calc(var(--pad)*-1) auto 0 calc(var(--pad)*-1);width:min(60%,250px);border-radius:0 0 var(--r-lg) 0}
  .tw--sell .tw__body{align-self:start}
  .tw__deco--rings{right:-150px;top:-150px}
  .tw__deco--hatch{display:none}
}

/* ---------- wholesale ---------- */
.wh-head{max-width:860px}
.wh-head .label{color:var(--violet)}
.wh-head .h2{margin-top:14px}
.wh-head .lead{margin-top:20px}
.wh-points{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(12px,1.6vw,20px);margin:clamp(34px,5vw,64px) 0 0;padding:0;list-style:none}
.wh-point{position:relative;display:flex;flex-direction:column;gap:12px;min-height:270px;padding:clamp(22px,2.4vw,34px);border-radius:var(--r-lg);overflow:hidden}
.wh-point--1{grid-column:span 5}.wh-point--2{grid-column:span 4}.wh-point--3{grid-column:span 3}
.wh-point--4{grid-column:span 3}.wh-point--5{grid-column:span 4}.wh-point--6{grid-column:span 5}
.wh-point--white{background-color:#fff;background-image:none;--fg:var(--text);--fg-muted:var(--text-muted);--heading:var(--heading-light);color:var(--fg);box-shadow:var(--shadow-1)}
.wh-point__icon{display:grid;place-items:center;width:54px;height:54px;border-radius:var(--r-md);background-color:var(--ic-bg,var(--mint));color:var(--ic-fg,var(--ink))}
.wh-point__icon .ico{width:26px;height:26px}
.wh-point--1{--ic-bg:var(--mint);--ic-fg:var(--ink)}.wh-point--2{--ic-bg:var(--violet);--ic-fg:#fff}
.wh-point--3{--ic-bg:var(--amber);--ic-fg:var(--ink)}.wh-point--4{--ic-bg:var(--ink);--ic-fg:var(--amber)}
.wh-point--5{--ic-bg:var(--ink);--ic-fg:var(--mint)}.wh-point--6{--ic-bg:var(--mint);--ic-fg:var(--ink)}
.wh-point h3{margin-top:auto;padding-top:28px;color:var(--heading,currentColor)}
.wh-point p{max-width:38ch;color:var(--fg-muted);text-wrap:pretty}
.wh-point--1 h3{font-size:var(--step-2)}
.wh-deco{position:absolute;pointer-events:none}
.wh-deco--rings{right:-80px;top:-80px;width:300px;height:300px;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 22px,rgba(255,255,255,.15) 22px 23px)}
.wh-deco--grades{right:24px;top:28px;display:flex;gap:6px}
.wh-deco--grades .grade{min-width:28px;height:28px;font-style:normal}
.wh-deco--five{right:26px;top:32px;display:flex;gap:5px}
.wh-deco--five i{width:13px;height:13px;border:2px solid var(--ink);border-radius:3px}
.wh-deco--five i:first-child{background-color:var(--ink)}
.wh-point--3::after{content:"";position:absolute;right:24px;top:24px;width:30px;height:30px;border-top:2px solid var(--mint);border-right:2px solid var(--mint);border-radius:0 8px 0 0}
html.motion .wh-point.reveal{transition-delay:var(--d,0s)}
@media (hover:hover) and (pointer:fine){
  .wh-point{transition:transform .45s var(--ease-spring),box-shadow .3s}
  html:not(.motion) .wh-point:hover,html.motion .wh-point.reveal.in:hover{transform:translateY(-5px);box-shadow:0 18px 40px -16px rgba(8,11,20,.4);transition-delay:0s}
}
@media (max-width:999.98px){
  .wh-point--1,.wh-point--6{grid-column:span 12}
  .wh-point--2,.wh-point--3,.wh-point--4,.wh-point--5{grid-column:span 6}
  .wh-point{min-height:230px}
}
@media (max-width:599.98px){
  .wh-points{grid-template-columns:minmax(0,1fr)}
  .wh-point,.wh-point--1,.wh-point--2,.wh-point--3,.wh-point--4,.wh-point--5,.wh-point--6{grid-column:auto;min-height:0}
  .wh-point h3{padding-top:18px}
}

/* film */
.wh-film{max-width:1040px;margin:clamp(44px,7vw,92px) auto 0}
.film{border-radius:var(--r-lg);background-color:var(--ink-2);background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.07) 0 1px,transparent 1px 13px);box-shadow:0 34px 60px -26px rgba(8,11,20,.5),0 0 0 1px rgba(8,11,20,.1)}
.film .slot__tag{left:68px}
.film:not(.has-img) .film__btn{visibility:hidden}
.film:not(.has-img) .slot__tag{left:12px}
.film__btn{position:absolute;left:12px;bottom:12px;z-index:2;display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-md);background-color:var(--ink);color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.2);-webkit-tap-highlight-color:transparent;transition:transform .4s var(--ease-spring),background-color .2s}
.film__btn .ico{width:20px;height:20px}
.film__btn:active{transform:scale(.94)}
@media (hover:hover) and (pointer:fine){.film__btn:hover{background-color:var(--violet)}}
.film.is-error .film__btn{display:none}
.film__ico-pause{display:none}
.film.is-playing .film__ico-play{display:none}
.film.is-playing .film__ico-pause{display:block}
.film__bar{position:absolute;left:0;right:0;bottom:0;height:4px;background-color:rgba(255,255,255,.18);pointer-events:none}
.film__bar i{position:absolute;inset:0;background-color:var(--mint);transform:scaleX(0);transform-origin:left center}
.wh-film__cap{display:flex;align-items:center;gap:12px;margin-top:16px;font-weight:640;font-stretch:104%;color:var(--heading)}
.wh-film__cap::before{content:"";width:10px;height:10px;border-radius:3px;background-color:var(--mint)}

/* example stock list */
.wh-list{margin-top:clamp(56px,8vw,112px)}
.wh-list__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 32px;margin-bottom:22px}
.wh-list__head .h3{font-size:clamp(1.65rem,1.15rem + 1.8vw,2.6rem);max-width:24ch;line-height:1.04}
.wh-list__head .small{max-width:36ch}
.wh-list__card{padding:clamp(14px,2vw,26px);border-radius:var(--r-lg);background-color:#fff;background-image:none;box-shadow:var(--shadow-1)}
.wh-filters{display:flex;flex-wrap:wrap;gap:12px 32px;margin-bottom:12px}
.wh-filter{display:flex;flex-wrap:wrap;gap:8px}
.dot{display:inline-block;width:9px;height:9px;border-radius:2px}
.dot--a{background-color:var(--grade-a)}.dot--b{background-color:var(--grade-b)}.dot--c{background-color:var(--grade-c)}.dot--f{background-color:var(--grade-f)}
.wh-table-wrap{position:relative;overflow:hidden}
.wh-table{width:100%;border-collapse:collapse;font-size:var(--step-0)}
.wh-table th,.wh-table td{padding:15px 16px;text-align:left;vertical-align:middle}
.wh-table thead th{padding-top:12px;padding-bottom:12px;border-bottom:1.5px solid var(--ink);font-family:var(--font-mono);font-size:.7rem;font-weight:500;font-stretch:87.5%;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
.wh-table tbody tr{border-bottom:1px solid var(--line)}
.wh-table tbody tr:last-child{border-bottom:0}
.wh-table .c-device{font-weight:680;font-stretch:102%;white-space:nowrap}
.wh-table .c-spec{font-family:var(--font-mono);font-size:.8rem;font-stretch:87.5%;color:var(--text-muted);white-space:nowrap}
.wh-table .c-units{text-align:right;font-family:var(--font-mono);font-weight:600;font-stretch:87.5%}
.wh-table thead .c-units{font-weight:500}
.wh-table .c-notes{color:var(--text-muted)}
.wh-table .grade{font-style:normal}
.wh-table tbody tr.is-gone{display:none!important}
.wh-empty{padding:30px 16px;text-align:center;color:var(--text-muted)}
@media (hover:hover) and (pointer:fine){.wh-table tbody tr{transition:background-color .2s}.wh-table tbody tr:hover{background-color:rgba(91,61,245,.07)}}
@media (max-width:699.98px){
  .wh-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .wh-table,.wh-table tbody{display:block}
  .wh-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:15px 2px}
  .wh-table th,.wh-table td{padding:0;border:0}
  .wh-table .c-device{grid-column:1;grid-row:1;font-size:1.06rem;white-space:normal}
  .wh-table .c-grade{grid-column:2;grid-row:1;justify-self:end}
  .wh-table .c-spec{grid-column:1;grid-row:2}
  .wh-table tbody .c-units{grid-column:2;grid-row:2;font-size:.8rem}
  .wh-table tbody .c-units::after{content:" units";font-weight:500;color:var(--text-muted)}
  .wh-table .c-notes{grid-column:1/-1;grid-row:3;margin-top:5px;font-size:.95rem}
}

/* margin calculator */
.wh-calc{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);margin-top:clamp(26px,3.6vw,44px);padding:clamp(24px,4vw,56px)}
.calc__inputs .h3{font-size:clamp(1.65rem,1.15rem + 1.8vw,2.6rem);line-height:1.04}
.calc-field{margin-top:22px}
.calc-field label{display:block;margin-bottom:6px;font-weight:620;font-stretch:102%}
.calc-field__row{display:grid;grid-template-columns:minmax(0,1fr) 124px;gap:18px;align-items:center}
.calc-num{width:100%;min-height:52px;padding:0 14px;border-radius:var(--r-md);border:1.5px solid var(--line);background-color:var(--field-bg);color:var(--fg);font-family:var(--font-mono);font-size:1.05rem;font-weight:600;font-stretch:87.5%;text-align:right;transition:border-color .2s,box-shadow .2s}
.calc-num:focus{outline:none;border-color:var(--mint);box-shadow:0 0 0 3px color-mix(in srgb,var(--mint) 32%,transparent)}
.calc-field input[type=range]{--p:0%;-webkit-appearance:none;appearance:none;width:100%;height:44px;margin:0;background:transparent;cursor:pointer}
.calc-field input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(90deg,var(--mint) var(--p),rgba(255,255,255,.2) var(--p))}
.calc-field input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:26px;height:26px;margin-top:-10px;border:0;border-radius:8px;background-color:#fff;box-shadow:0 0 0 4px var(--mint),0 4px 10px rgba(0,0,0,.4);transition:transform .3s var(--ease-spring)}
.calc-field input[type=range]:active::-webkit-slider-thumb{transform:scale(1.12)}
.calc-field input[type=range]::-moz-range-track{height:6px;border-radius:3px;background-color:rgba(255,255,255,.2)}
.calc-field input[type=range]::-moz-range-progress{height:6px;border-radius:3px;background-color:var(--mint)}
.calc-field input[type=range]::-moz-range-thumb{width:22px;height:22px;border:0;border-radius:8px;background-color:#fff;box-shadow:0 0 0 4px var(--mint)}
.calc-field input[type=range]:focus-visible{outline:2px solid var(--mint);outline-offset:2px;border-radius:6px}
.calc__outputs{display:flex;flex-direction:column;justify-content:center;min-width:0}
.calc__stats{margin:0;display:grid}
.calc-stat{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:18px 0;border-top:1px solid var(--line)}
.calc-stat:first-child{border-top:0;padding-top:0}
.calc-stat dt{color:var(--fg-muted)}
.calc-stat dd{margin:0;min-width:0;font-family:var(--font-mono);font-size:clamp(1.5rem,1rem + 1.6vw,2.2rem);font-weight:700;font-stretch:87.5%;letter-spacing:-.03em;line-height:1;color:#fff;text-align:right;overflow-wrap:anywhere}
.calc-stat--main dd{font-size:clamp(2.5rem,1.2rem + 4.6vw,4.9rem);color:var(--mint)}
.calc-stat output{display:inline}
.calc__warn{margin-top:2px;color:var(--coral);font-weight:650}
.calc__note{margin:16px 0 22px;color:var(--fg-muted)}
.calc__outputs .btn{align-self:flex-start}
@media (max-width:899.98px){
  .wh-calc{grid-template-columns:minmax(0,1fr)}
  .calc__outputs .btn{align-self:stretch;white-space:normal;text-align:center;min-height:56px;padding-block:10px}
  .calc-field__row{grid-template-columns:minmax(0,1fr) 108px;gap:12px}
}

/* ---------- grading explorer ---------- */
.gx-head{max-width:760px;margin-bottom:clamp(28px,4vw,56px)}
.gx-head .lead{margin-top:18px}
.grade-explorer{--gx:var(--grade-a);display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);grid-template-areas:"stage tabs" "stage panels";grid-template-rows:auto 1fr;gap:clamp(22px,3vw,36px) clamp(26px,5vw,72px);align-items:start}
.grade-explorer[data-grade=b]{--gx:var(--grade-b)}
.grade-explorer[data-grade=c]{--gx:var(--grade-c)}
.grade-explorer[data-grade=f]{--gx:var(--grade-f)}
.gx-tabs{grid-area:tabs;display:flex;flex-wrap:wrap;gap:8px}
.gx-tab{--c:var(--grade-a);display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 20px;border-radius:var(--r-md);background-color:#fff;box-shadow:inset 0 0 0 1.5px var(--line);color:var(--text);font-family:var(--font-mono);font-size:.9rem;font-weight:600;font-stretch:87.5%;letter-spacing:.04em;text-transform:uppercase;-webkit-tap-highlight-color:transparent;transition:background-color .3s,color .3s,box-shadow .3s,transform .4s var(--ease-spring)}
.gx-tab[data-grade=b]{--c:var(--grade-b)}.gx-tab[data-grade=c]{--c:var(--grade-c)}.gx-tab[data-grade=f]{--c:var(--grade-f)}
.gx-tab__dot{width:12px;height:12px;border-radius:3px;background-color:var(--c);transition:background-color .3s}
.gx-tab[aria-selected=true]{background-color:var(--c);box-shadow:none;color:var(--ink)}
.gx-tab[data-grade=b][aria-selected=true]{color:#fff}
.gx-tab[aria-selected=true] .gx-tab__dot{background-color:currentColor}
.gx-tab:active{transform:scale(.97)}
@media (hover:hover) and (pointer:fine){.gx-tab:hover{transform:translateY(-2px)}.gx-tab:active{transform:scale(.97)}}

.gx-stage{grid-area:stage;position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(18px,3vw,40px);min-height:clamp(380px,46vw,560px);padding:clamp(22px,3vw,44px);border-radius:var(--r-lg);overflow:hidden}
.gx-tile{position:relative;z-index:1;padding:clamp(14px,1.8vw,24px);border-radius:var(--r-lg);background-color:color-mix(in srgb,var(--gx) 30%,transparent);transition:background-color .35s}
.gx-phone{position:relative;height:clamp(290px,34vw,448px);width:auto;aspect-ratio:180/390}
.gx-phone svg{position:absolute;left:0;top:0;width:100%;height:100%;display:block}
.gx-layer{opacity:0;transition:opacity .35s ease;will-change:opacity}
.gx-body{fill:#1A2138;stroke:var(--gx);stroke-width:2;transition:stroke .35s}
.gx-bezel{fill:none;stroke:rgba(255,255,255,.12);stroke-width:1}
.grade-explorer[data-grade=b] .gx-b,.grade-explorer[data-grade=c] .gx-b,.grade-explorer[data-grade=c] .gx-c,.grade-explorer[data-grade=f] .gx-f{opacity:1}
.gx-photos{position:relative;z-index:1;display:grid;align-self:center;min-width:0}
.gx-photo{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .35s,visibility 0s .35s}
.gx-photo.is-on{opacity:1;visibility:visible;transition-delay:0s}
.gx-badge{position:absolute;left:12px;top:12px;display:none;padding:7px 9px;border-radius:5px;background-color:var(--gx);color:var(--ink);font-family:var(--font-mono);font-size:.64rem;font-stretch:87.5%;letter-spacing:.06em;line-height:1.2;text-transform:uppercase}
.grade-explorer[data-grade=b] .gx-badge{color:#fff}
.gx-photo.has-img .gx-badge{display:block}

.gx-panels{grid-area:panels;min-width:0}
.gx-panel:focus-visible{outline-offset:8px}
.gx-panel:not([hidden]){animation:gx-in .38s var(--ease-out)}
@keyframes gx-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
html:not(.js) .gx-panel[hidden]{display:block}
.gx-panel__title{padding-left:18px;border-left:6px solid var(--gx);font-size:var(--step-3);line-height:1.02;transition:border-color .35s}
.gx-panel__text{max-width:44ch;margin-top:18px;font-size:var(--step-1);line-height:1.45;color:var(--text-muted);text-wrap:pretty}
.gx-points{display:grid;gap:12px;margin:26px 0 0;padding:0;list-style:none}
.gx-points li{display:flex;align-items:center;gap:14px;font-weight:620;font-stretch:102%}
.gx-points .ico{width:30px;height:30px;padding:6px;border-radius:7px;background-color:var(--gx);color:var(--ink);transition:background-color .35s}
.grade-explorer[data-grade=b] .gx-points .ico{color:#fff}
.gx-link{margin-top:20px;color:var(--heading-light)}

@media (max-width:899.98px){
  .grade-explorer{grid-template-columns:minmax(0,1fr);grid-template-areas:"tabs" "stage" "panels";grid-template-rows:none}
  .gx-tabs{display:grid;grid-template-columns:repeat(4,auto);justify-content:start}
  .gx-tab{padding:0 16px}
  .gx-stage{grid-template-columns:auto minmax(0,1fr);min-height:0}
  .gx-phone{height:clamp(250px,60vw,360px)}
  }
@media (max-width:420px){
  .gx-tab{padding:0 12px;gap:8px;font-size:.84rem}
  .gx-stage{padding:18px;gap:14px}
  .gx-phone{height:236px}
}
