/* Base layout from the original Scayl prototype (structure unchanged). Style C overrides live in theme-c.css. */

/* Concept: a retail shelf-edge label. One loud object (the yellow grade tag), everything else is quiet cool grey.
   Palette: concrete ground, ink blue-black, tag yellow, five grade colours. Type: Archivo (condensed to expanded) + Courier Prime for what machines read. */
:root{
  --ground:#E8EBEE; --panel:#F4F6F7; --raised:#FFFFFF; --ink:#13171D; --ink2:#454D59; --ink3:#66707C; --rule:#C7CDD4;
  --tag:#FFD21F; --tagink:#14110A;
  --gA:#17794A; --gB:#3F7F14; --gC:#8F6200; --gD:#BF520C; --gF:#BA2229; --gU:#66707C;
  --s1:#2F5DD8; --s2:#0E8A84; --s3:#B0357F;
  --stage:#10141A; --stage2:#1A2028; --stageink:#E8ECF0; --stage3:#98A3B1; --stagerule:#2C343E;
  --font:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif; --mono:"Courier Prime","Courier New",monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --ground:#0F1318; --panel:#171C23; --raised:#1D232B; --ink:#EEF1F4; --ink2:#B4BDC8; --ink3:#8E98A5; --rule:#2E3641;
  --gA:#4CC38A; --gB:#8CCB4A; --gC:#E8B63A; --gD:#F08A45; --gF:#F36B70; --gU:#8E98A5;
  --s1:#7A9CFF; --s2:#3FCBC4; --s3:#E67DB9; color-scheme:dark;}}
:root[data-theme="dark"]{
  --ground:#0F1318; --panel:#171C23; --raised:#1D232B; --ink:#EEF1F4; --ink2:#B4BDC8; --ink3:#8E98A5; --rule:#2E3641;
  --gA:#4CC38A; --gB:#8CCB4A; --gC:#E8B63A; --gD:#F08A45; --gF:#F36B70; --gU:#8E98A5;
  --s1:#7A9CFF; --s2:#3FCBC4; --s3:#E67DB9; color-scheme:dark;}
*{box-sizing:border-box}
body{background:var(--ground);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.5;padding-inline:16px}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--s1);outline-offset:2px}
.wrap{max-width:1180px;margin-inline:auto}
section{padding-block:56px}
h2{font-stretch:100%;font-weight:760;font-size:clamp(1.6rem,3.4vw,2.3rem);line-height:1.08;letter-spacing:-.01em;text-wrap:balance}
.sub{color:var(--ink2);max-width:62ch;margin-top:10px}
.num{font-variant-numeric:tabular-nums}

/* top bar */
.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--ground);border-bottom:1px solid var(--rule);margin-inline:-16px;padding:10px 16px}
.bar-in{max-width:1180px;margin-inline:auto;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.mark{font-weight:900;font-stretch:75%;font-size:1.45rem;letter-spacing:-.02em;text-decoration:none}
.mark i{font-style:normal;color:var(--ink3);font-weight:500}
.bar-t{color:var(--ink2);font-size:.9rem}
.bar nav{margin-left:auto;display:flex;gap:4px;flex-wrap:wrap}
.bar nav a{font-size:.88rem;text-decoration:none;padding:4px 10px;border-radius:99px;color:var(--ink2)}
.bar nav a:hover{background:var(--panel);color:var(--ink)}

/* hero */
.hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:48px;align-items:center;padding-block:48px 28px}
h1{font-stretch:118%;font-weight:850;font-size:clamp(2.2rem,5.6vw,4.2rem);line-height:.98;letter-spacing:-.03em;text-wrap:balance}
.lede{font-size:1.15rem;color:var(--ink2);max-width:56ch;margin-top:20px}
.scan{display:flex;gap:0;margin-top:28px;max-width:640px;border:3px solid var(--ink);background:var(--raised)}
.scan input{flex:1;min-width:0;border:0;background:transparent;padding:16px 16px;font-size:1.05rem;outline:none}
.scan:focus-within{outline:3px solid var(--s1);outline-offset:2px}
.scan button{border:0;background:var(--ink);color:var(--ground);padding:0 24px;font-weight:700;cursor:pointer;font-size:1rem;white-space:nowrap}
.scan button:hover{background:var(--s1);color:#fff}
.note{min-height:1.5em;margin-top:10px;font-size:.92rem;color:var(--ink2)}
.samples{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px}
.samples>span{font-size:.9rem;color:var(--ink3);margin-right:4px}
.chip{border:1.5px solid var(--rule);background:var(--raised);padding:6px 12px;border-radius:99px;cursor:pointer;font-size:.9rem;display:inline-flex;gap:8px;align-items:center}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:var(--ground)}
.chip b{font-weight:800;font-stretch:75%;font-size:1rem}
.proto{background:var(--tag);color:var(--tagink);padding:10px 16px;margin-inline:-16px;font-size:.92rem}
.proto p{max-width:1180px;margin-inline:auto}
.stat{padding-block:22px;border-bottom:1px solid var(--rule);color:var(--ink2);font-size:.98rem;max-width:80ch}

/* the tag */
.tagwrap{display:grid;justify-items:center;gap:14px}
.tag{position:relative;width:min(100%,300px);background:var(--tag);color:var(--tagink);border:3px solid var(--tagink);padding:26px 24px 0;clip-path:polygon(0 0,calc(100% - 26px) 0,100% 26px,100% 100%,0 100%);box-shadow:none;filter:drop-shadow(8px 8px 0 color-mix(in srgb,var(--ink) 18%,transparent))}
.tag-hole{position:absolute;top:12px;left:14px;width:14px;height:14px;border-radius:50%;background:var(--ground);border:2px solid var(--tagink)}
.tag-top{font-size:.9rem;font-weight:600;padding-left:22px}
.tag-letter{font-stretch:62%;font-weight:900;font-size:min(14rem,52vw);line-height:.82;letter-spacing:-.04em;margin-top:6px;transform-origin:30% 70%}
.tag-letter.stamp{animation:stamp .5s cubic-bezier(.2,.9,.3,1.1)}
@keyframes stamp{0%{transform:scale(1.7) rotate(-9deg);opacity:0}55%{transform:scale(.94) rotate(1deg);opacity:1}100%{transform:none}}
.tag-score{font-size:1.35rem;margin-top:8px;font-weight:700}
.tag-score span{font-weight:400;opacity:.7}
.tag-band{margin:16px -24px 0;padding:8px 24px;color:#fff;font-weight:700;font-size:1rem;border-top:3px solid var(--tagink)}
.tag-code{height:30px;margin:12px -4px 12px;background:repeating-linear-gradient(90deg,var(--tagink) 0 2px,transparent 2px 4px,var(--tagink) 4px 5px,transparent 5px 8px,var(--tagink) 8px 11px,transparent 11px 12px,var(--tagink) 12px 13px,transparent 13px 15px);opacity:.85}
.tag-cap{text-align:center;font-size:.92rem;color:var(--ink2)}
.tag-cap b{color:var(--ink);font-weight:700}
.scanning .tag-letter{animation:none;opacity:.25}
.tag-prog{height:6px;background:color-mix(in srgb,var(--tagink) 20%,transparent);margin-top:12px;overflow:hidden}
.tag-prog i{display:block;height:100%;width:0;background:var(--tagink);transition:width .35s linear}
.tag-live{font-size:.9rem;min-height:2.6em;margin-top:8px}
.dim{opacity:.45;transition:opacity .2s}

/* grade colours */
.g-A{--g:var(--gA)}.g-B{--g:var(--gB)}.g-C{--g:var(--gC)}.g-D{--g:var(--gD)}.g-F{--g:var(--gF)}

/* categories */
.cats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:28px}
.cat{background:var(--raised);border:2px solid var(--rule);padding:16px;text-align:left;cursor:pointer;display:grid;gap:10px;align-content:start}
.cat:hover{border-color:var(--ink2)}
.cat[aria-pressed="true"]{border-color:var(--ink);box-shadow:5px 5px 0 var(--ink)}
.cat h3{font-size:1.15rem;font-weight:800;font-stretch:90%}
.cat .q{font-size:.85rem;color:var(--ink2);min-height:3.6em}
.cat .sc{display:flex;align-items:baseline;gap:8px}
.cat .sc b{font-size:2.2rem;line-height:1;font-weight:850;font-stretch:80%;color:var(--g)}
.cat .sc span{font-size:.85rem;color:var(--ink3)}
.meter{position:relative;height:10px;background:color-mix(in srgb,var(--ink) 10%,transparent)}
.meter i{position:absolute;inset:0 auto 0 0;background:var(--g);transition:width .4s}
.meter u{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--ink);text-decoration:none}
.cat small{font-size:.82rem;color:var(--ink3)}
.cat.lock{background:repeating-linear-gradient(135deg,var(--panel) 0 10px,var(--raised) 10px 20px);cursor:default}
.cat.lock:hover{border-color:var(--rule)}
.blur{filter:blur(6px);user-select:none}
.lockbtn{border:0;background:var(--ink);color:var(--ground);padding:8px 12px;font-weight:700;cursor:pointer;font-size:.88rem}
.lockbtn:hover{background:var(--s1);color:#fff}
.legend{margin-top:14px;font-size:.88rem;color:var(--ink3);display:flex;gap:18px;flex-wrap:wrap}
.legend u{display:inline-block;width:2px;height:12px;background:var(--ink);vertical-align:-2px;margin-right:6px}

/* checks */
.checks{margin-top:22px;background:var(--raised);border:2px solid var(--rule)}
.checks-h{padding:16px 20px;border-bottom:1px solid var(--rule);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.checks-h h3{font-size:1.25rem;font-weight:800;font-stretch:90%}
.checks-h p{color:var(--ink2);font-size:.92rem}
.ck{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:14px;padding:14px 20px;border-bottom:1px solid var(--rule);align-items:start}
.ck:last-child{border-bottom:0}
.st{width:24px;height:24px;display:grid;place-items:center;font-weight:900;font-size:.85rem;color:#fff;margin-top:1px}
.st-p{background:var(--gA);border-radius:50%}.st-w{background:var(--gC);clip-path:polygon(50% 0,100% 100%,0 100%);padding-top:7px;font-size:.7rem}.st-f{background:var(--gF)}.st-u{background:transparent;border:2px dashed var(--gU);color:var(--gU);border-radius:50%}.st-i{background:transparent;border:2px solid var(--rule);color:var(--ink3);border-radius:50%}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .st{color:#0F1318}}
:root[data-theme="dark"] .st{color:#0F1318}
.ck h4{font-size:1rem;font-weight:700}
.ck p{font-size:.92rem;color:var(--ink2)}
.ck .w{font-size:.82rem;color:var(--ink3);white-space:nowrap}

/* replay */
.replay{background:var(--stage);color:var(--stageink);margin-inline:-16px;padding-inline:16px}
.replay h2{color:var(--stageink)}
.replay .sub{color:var(--stage3)}
.task{margin-top:22px;border:1px solid var(--stagerule);padding:14px 18px;display:flex;gap:16px;align-items:baseline;flex-wrap:wrap}
.task span{color:var(--stage3);font-size:.9rem}
.task b{font-weight:600;font-size:1.05rem}
.rp{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:24px;margin-top:24px;align-items:start}
.screen{position:relative;background:#F7F8F9;color:#14181F;border:1px solid var(--stagerule);overflow:hidden;min-height:430px}
.m-top{display:flex;gap:6px;align-items:center;background:#E3E7EB;padding:9px 12px}
.m-top i{width:9px;height:9px;border-radius:50%;background:#B3BBC5}
.m-url{margin-left:10px;background:#fff;padding:3px 12px;font-size:.78rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#4b5563}
.m-nav{display:flex;gap:18px;padding:12px 18px;border-bottom:1px solid #DDE2E7;font-size:.85rem;align-items:center}
.m-nav b{font-weight:850;font-stretch:80%;font-size:1.1rem;margin-right:auto}
.m-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:18px}
.m-card{display:grid;gap:6px}
.m-img{aspect-ratio:4/5;background:linear-gradient(160deg,hsl(var(--hue) 45% 72%),hsl(var(--hue) 40% 52%))}
.m-img.big{aspect-ratio:auto;min-height:300px;height:100%}
.m-t{height:8px;width:70%;background:#CFD5DB}.m-p{height:8px;width:30%;background:#B5BDC6}
.m-prod{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:18px}
.m-info{display:grid;gap:12px;align-content:start}
.m-title{font-weight:800;font-size:1.3rem;font-stretch:90%}
.m-price{font-size:1.2rem;font-weight:700;width:max-content}
.m-sizes{display:flex;gap:6px;flex-wrap:wrap;width:max-content;max-width:100%}
.m-sizes span{border:1.5px solid #14181F;padding:3px 10px;font-size:.82rem}
.m-del,.m-ret{font-size:.85rem;color:#3b4350;width:max-content;max-width:100%}
.m-btn{background:#14181F;color:#fff;text-align:center;padding:10px;font-weight:700;font-size:.9rem}
.m-cart{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:18px}
.m-bag,.m-co{border:1.5px solid #CBD2D9;padding:14px;display:grid;gap:10px;align-content:start;font-size:.88rem}
.m-bag b,.m-co b{font-size:1rem}
.m-line{display:flex;gap:10px;align-items:center}.m-line .m-img{width:46px;aspect-ratio:1;flex:none}
.m-steps{display:flex;gap:6px;font-size:.75rem;color:#6b7480}.m-steps span{padding:2px 6px;background:#E8ECEF}.m-steps .on{background:#14181F;color:#fff}
.m-field{border:1.5px solid #B8C0C8;padding:7px 10px;color:#6b7480}
.m-cap{display:flex;gap:10px;align-items:center;border:1.5px solid #B8C0C8;padding:10px;background:#F1F3F5}
.m-cap i{width:20px;height:20px;border:2px solid #7a8591;background:#fff}
.m-over{position:absolute;inset:36px 0 0 0;background:rgba(244,246,247,.92);display:grid;place-items:center;text-align:center;padding:20px}
.m-over div{max-width:300px;display:grid;gap:10px}.m-over b{font-size:1.15rem}
.dimr [data-r],.dimr .m-grid{opacity:.45}
[data-r].hl{outline:3px solid var(--tag);outline-offset:4px;position:relative;opacity:1}
[data-r].hl.ok{outline-color:#1F9A5F}[data-r].hl.warn{outline-color:#E8B63A}[data-r].hl.fail{outline-color:#E5484D}
.badge{position:absolute;top:-14px;right:-14px;width:24px;height:24px;display:grid;place-items:center;color:#fff;font-weight:900;font-size:.8rem;background:#E5484D;z-index:3}
.badge.ok{background:#1F9A5F;border-radius:50%}.badge.warn{background:#C48A00;clip-path:polygon(50% 0,100% 100%,0 100%);padding-top:6px}
.cursor{position:absolute;width:22px;height:22px;pointer-events:none;z-index:5;transition:left .7s cubic-bezier(.3,.8,.3,1),top .7s cubic-bezier(.3,.8,.3,1);left:50%;top:50%}
.cursor::before{content:"";position:absolute;inset:0;background:var(--tag);clip-path:polygon(0 0,100% 55%,55% 62%,40% 100%);filter:drop-shadow(1px 1px 0 #14110A)}
.ctrl{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;align-items:center}
.btn{border:2px solid var(--stageink);background:transparent;color:var(--stageink);padding:7px 14px;cursor:pointer;font-weight:700;font-size:.92rem}
.btn:hover{background:var(--stageink);color:var(--stage)}
.btn.solid{background:var(--tag);color:var(--tagink);border-color:var(--tag)}
.btn.solid:hover{background:#fff;border-color:#fff}
.stepper{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:0;margin-top:22px;overflow-x:auto;min-width:0}
.sn{background:none;border:0;color:var(--stage3);cursor:pointer;display:grid;gap:8px;justify-items:center;padding:6px 2px;position:relative;min-width:68px;text-align:center}
.sn::before{content:"";position:absolute;top:21px;left:-50%;width:100%;height:2px;background:var(--stagerule)}
.sn:first-child::before{display:none}
.sn .d{position:relative;z-index:1;width:30px;height:30px;border-radius:50%;border:2px solid var(--stagerule);background:var(--stage);display:grid;place-items:center;font-weight:800;font-size:.85rem}
.sn.p .d{background:#1F9A5F;border-color:#1F9A5F;color:#08150E}.sn.w .d{background:#E8B63A;border-color:#E8B63A;color:#1A1300}.sn.f .d{background:#E5484D;border-color:#E5484D;color:#1A0506;border-radius:0}.sn.s .d{border-style:dashed}
.sn.cur .d{box-shadow:0 0 0 4px color-mix(in srgb,var(--tag) 70%,transparent)}
.sn span:last-child{font-size:.76rem;line-height:1.2}
.sn.cur span:last-child{color:var(--stageink);font-weight:700}
.log{display:grid;gap:0;border:1px solid var(--stagerule);max-height:540px;overflow:auto}
.lg{padding:14px 16px;border-bottom:1px solid var(--stagerule);display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;cursor:pointer}
.lg:last-child{border-bottom:0}
.lg.cur{background:var(--stage2)}
.lg.off{opacity:.35}
.lg h4{font-size:.95rem;font-weight:700}
.lg p{font-size:.93rem;color:var(--stage3);font-style:italic;margin-top:3px}
.lg.cur p{color:var(--stageink)}
.verdict{margin-top:18px;border:2px solid var(--v,var(--tag));padding:16px 18px;display:grid;gap:4px}
.verdict b{font-size:1.2rem;font-weight:800;font-stretch:95%}
.verdict span{color:var(--stage3);font-size:.93rem}

/* wipe */
.wipe{position:relative;margin-top:26px;border:2px solid var(--ink);background:var(--raised);overflow:hidden;--x:50%}
.wl{padding:0;min-height:360px}
.wl.agent{position:absolute;inset:0;background:#0D1117;color:#C9D4DF;font-family:var(--mono);font-size:.95rem;padding:20px 22px;clip-path:inset(0 0 0 var(--x));overflow:hidden}
.wl.human{background:#F7F8F9;color:#14181F}
.wl.human .m-prod{padding:22px}
.ag-h{color:#7ee0a7;margin-bottom:12px}
.ag-l{display:grid;grid-template-columns:7.5em minmax(0,1fr);gap:10px;padding:4px 0;border-bottom:1px dashed #243040}
.ag-l b{color:#7f93a8;font-weight:400}
.gap{display:inline-block;background:repeating-linear-gradient(135deg,#3b1218 0 6px,#2a0d12 6px 12px);color:#ff9aa0;padding:0 8px}
.handle{position:absolute;top:0;bottom:0;left:var(--x);width:4px;background:var(--tag);transform:translateX(-2px);pointer-events:none}
.handle::after{content:"drag";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--tag);color:var(--tagink);font-size:.75rem;font-weight:800;padding:5px 7px}
.wipe input[type=range]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.wcap{display:flex;justify-content:space-between;margin-top:8px;font-size:.88rem;color:var(--ink2);gap:12px}

/* fixes */
.fx{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:32px;align-items:start;margin-top:26px}
.receipt{background:var(--raised);font-family:var(--mono);color:#14181F;padding:28px 26px 34px;position:relative;border:1px solid var(--rule);-webkit-mask:radial-gradient(circle 9px at 9px 100%,#0000 98%,#000) bottom/18px 100% repeat-x,linear-gradient(#000 0 0);-webkit-mask-composite:source-over}
:root{--rc:#FBFAF4;--rcink:#1a1a1a}
.receipt{background:var(--rc);color:var(--rcink)}
.rc-h{text-align:center;border-bottom:2px dashed var(--rcink);padding-bottom:14px;margin-bottom:10px}
.rc-h b{display:block;font-size:1.25rem;letter-spacing:.04em}
.rc-h span{font-size:.85rem;opacity:.75}
.fxi{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;padding:10px 0;border-bottom:1px dashed #b9b5a6;align-items:start}
.fxi input{width:18px;height:18px;margin:3px 0 0;accent-color:#14181F}
.fxi h4{font-size:.98rem;font-weight:700;line-height:1.25}
.fxi p{font-size:.86rem;opacity:.8;line-height:1.35;margin-top:2px}
.fxi .pts{font-weight:700;white-space:nowrap}
.fxi .ef{display:inline-block;border:1.5px solid currentColor;padding:0 6px;font-size:.78rem;margin-right:6px}
.fxi.done h4{text-decoration:line-through;opacity:.6}
.fxi details{margin-top:6px}
.fxi summary{cursor:pointer;font-size:.84rem;text-decoration:underline}
.fxi pre{margin:8px 0 0;background:#14181F;color:#d8e1ea;padding:12px;overflow:auto;font-size:.8rem;line-height:1.4;font-family:var(--mono)}
.cp{margin-top:6px;border:1.5px solid #14181F;background:transparent;font-family:var(--mono);font-size:.8rem;padding:3px 10px;cursor:pointer;color:#14181F}
.cp:hover{background:#14181F;color:#fff}
.rc-t{display:flex;justify-content:space-between;font-weight:700;padding-top:12px;font-size:1.05rem}
.rc-f{text-align:center;font-size:.8rem;opacity:.7;margin-top:18px}
.fx-side{display:grid;gap:18px;position:sticky;top:76px}
.proj{background:var(--raised);border:2px solid var(--ink);padding:20px;display:grid;gap:12px}
.proj .pr{display:flex;align-items:center;gap:14px}
.mini{width:62px;height:62px;display:grid;place-items:center;background:var(--tag);color:var(--tagink);border:3px solid var(--tagink);font-weight:900;font-stretch:62%;font-size:2.8rem;line-height:1}
.proj .arrow{font-size:1.6rem;color:var(--ink3)}
.proj p{font-size:.92rem;color:var(--ink2)}
.btn2{border:2px solid var(--ink);background:transparent;padding:8px 14px;cursor:pointer;font-weight:700;font-size:.92rem}
.btn2:hover{background:var(--ink);color:var(--ground)}
.btn2.solid{background:var(--ink);color:var(--ground)}.btn2.solid:hover{background:var(--s1);border-color:var(--s1);color:#fff}

/* compare */
.cmp-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;align-items:center}
.cmp{display:grid;gap:22px;margin-top:22px;background:var(--raised);border:2px solid var(--rule);padding:24px}
.cmp-top{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.cmp-s{border-top:6px solid var(--c);padding-top:10px;display:flex;gap:12px;align-items:center}
.cmp-s .mini{width:46px;height:46px;font-size:2rem}
.cmp-s b{display:block;font-weight:750}.cmp-s span{font-size:.85rem;color:var(--ink3)}
.cmp-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;align-items:center}
.cmp-row>b{font-weight:750;font-stretch:90%}
.cmp-bars{display:grid;gap:6px}
.cb{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:10px;align-items:center;font-size:.85rem}
.cb i{display:block;height:14px;background:var(--c);transition:width .4s}
.cb em{font-style:normal;text-align:right}

/* portfolio */
.pf{margin-top:24px;background:var(--raised);border:2px solid var(--rule);overflow-x:auto}
.pf table{border-collapse:collapse;width:100%;min-width:720px;font-size:.92rem}
.pf th,.pf td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--rule)}
.pf th{background:var(--panel);font-weight:700;font-size:.85rem;white-space:nowrap}
.pf th button{border:0;background:none;cursor:pointer;font-weight:700;padding:0}
.pf th button[aria-sort] ::after{content:" ↓"}
.pf td.c{text-align:center;font-variant-numeric:tabular-nums;font-weight:700;background:color-mix(in srgb,var(--g) 16%,transparent)}
.pf td.c small{font-weight:400;opacity:.8;margin-left:4px}
.pf td button{border:0;background:none;text-decoration:underline;cursor:pointer;font-weight:600;text-align:left;padding:0}
.pf .gl{display:inline-grid;place-items:center;width:30px;height:30px;font-weight:900;font-stretch:62%;font-size:1.4rem;background:var(--g);color:#fff}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .pf .gl{color:#0F1318}}
:root[data-theme="dark"] .pf .gl{color:#0F1318}
.gaps{margin-top:18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.gap-c{background:var(--raised);border:2px solid var(--rule);padding:16px;display:grid;gap:6px}
.gap-c b{font-size:2rem;line-height:1;font-weight:850;font-stretch:80%}
.gap-c span{font-size:.9rem;color:var(--ink2)}
.paste{margin-top:16px;display:grid;gap:8px;max-width:640px}
.paste textarea{min-height:76px;background:var(--panel);border:2px dashed var(--rule);padding:10px;resize:vertical}

/* share */
.shr{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:32px;margin-top:26px;align-items:start}
.card{aspect-ratio:1200/630;background:var(--stage);color:var(--stageink);padding:clamp(14px,3vw,34px);display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(14px,3vw,34px);align-items:center;border:1px solid var(--rule)}
.card .mini{width:clamp(70px,16vw,150px);height:clamp(90px,20vw,190px);font-size:clamp(3rem,10vw,7.5rem)}
.card h3{font-stretch:110%;font-weight:800;font-size:clamp(1rem,2.6vw,1.8rem);line-height:1.1}
.card p{color:var(--stage3);font-size:clamp(.72rem,1.4vw,.95rem);margin-top:6px}
.card .cb2{display:grid;gap:5px;margin-top:12px}
.cb2 div{display:grid;grid-template-columns:5.5em minmax(0,1fr) 2em;gap:8px;align-items:center;font-size:clamp(.66rem,1.3vw,.85rem)}
.cb2 i{display:block;height:7px;background:var(--tag)}
.card small{display:block;margin-top:12px;color:var(--stage3);font-size:clamp(.62rem,1.2vw,.8rem)}
.post{width:100%;min-height:210px;background:var(--raised);border:2px solid var(--rule);padding:14px;line-height:1.5;resize:vertical}

/* gate + rubric */
.offers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:26px}
.of{background:var(--raised);border:2px solid var(--rule);padding:20px;display:grid;gap:8px;align-content:start}
.of h3{font-size:1.2rem;font-weight:800;font-stretch:90%}.of p{color:var(--ink2);font-size:.95rem}
.gate{margin-top:22px;border:3px solid var(--ink);background:var(--raised);padding:22px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:12px;align-items:end}
.gate label{display:grid;gap:4px;font-size:.88rem;font-weight:600}
.gate input,.gate select{border:2px solid var(--rule);background:var(--panel);padding:10px;font-weight:400}
.gate button{border:0;background:var(--ink);color:var(--ground);padding:12px 22px;font-weight:700;cursor:pointer}
.gate button:hover{background:var(--s1);color:#fff}
.gate-note{margin-top:10px;font-size:.92rem;color:var(--ink2);min-height:1.4em}
.rub{margin-top:26px;background:var(--raised);border:2px solid var(--rule)}
.rub summary{padding:16px 20px;cursor:pointer;font-weight:750;font-size:1.05rem}
.rub-b{padding:0 20px 20px;display:grid;gap:14px}
.rub table{border-collapse:collapse;width:100%;font-size:.9rem}
.rub th,.rub td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--rule);vertical-align:top}
.rub .scroll{overflow-x:auto}
.rub p{color:var(--ink2);font-size:.95rem;max-width:80ch}
footer{border-top:1px solid var(--rule);padding-block:28px 48px;color:var(--ink3);font-size:.88rem;margin-bottom:0}

.scan2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:18px}
.scan2 label{display:grid;gap:5px;font-weight:700;font-size:.85rem}
.scan2 input{font:inherit;font-weight:400;padding:12px 14px;border:2px solid var(--ink);background:var(--raised);color:var(--ink);min-width:0;width:100%}
.scan2 button{font:inherit;font-weight:800;padding:14px 20px;border:2px solid var(--ink);background:var(--tag);color:#14181F;cursor:pointer;white-space:nowrap}
.scan2 button:hover{background:var(--ink);color:var(--ground)}
.flow{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:22px;padding:0;counter-reset:f}
.flow li{border-top:4px solid var(--ink);padding:8px 14px 0 0;display:grid;gap:2px;align-content:start;font-size:.86rem;color:var(--ink2)}
.flow li:nth-child(2){border-top-color:var(--tag)}
.flow b{color:var(--ink);font-size:.95rem}
.ok-card{margin-top:14px;border:3px solid var(--ink);background:var(--raised);padding:14px 18px;max-width:62ch}
.ok-card b{display:block;font-size:1.05rem;margin-bottom:4px}
.fr.you .fr-n::after{content:"  your store stopped here";color:var(--tag);font-weight:600;font-size:.78rem}
.plans{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:26px}
.pl{border:2px solid var(--rule);background:var(--raised);padding:18px;display:grid;gap:8px;align-content:start}
.pl.hi{border-color:var(--ink);box-shadow:6px 6px 0 var(--tag)}
.pl h3{font-size:1.1rem}.pl .pr{font-weight:800;font-size:1.5rem}.pl p{color:var(--ink2);font-size:.9rem}
.pl ul{margin:0;padding-left:1.1em;color:var(--ink2);font-size:.88rem;display:grid;gap:3px}
@media (max-width:980px){.plans{grid-template-columns:repeat(2,minmax(0,1fr))}.scan2{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){.plans,.flow{grid-template-columns:minmax(0,1fr)}.flow li{padding-bottom:8px}}

.fn{background:var(--stage);color:var(--stageink);margin-inline:-16px;padding-inline:16px}
.fn h2{color:var(--stageink)}.fn .sub{color:var(--stage3)}
.fn-head{display:flex;gap:28px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;margin-top:22px}
.fn-big{font-weight:860;font-stretch:75%;font-size:clamp(3rem,9vw,6rem);line-height:.9;letter-spacing:-.02em}
.fn-big small{font-size:.32em;font-weight:600;font-stretch:100%;color:var(--stage3);letter-spacing:0;margin-left:.3em}
.fn-big em{font-style:normal;color:var(--gF)}
.fn-sw{display:flex;gap:8px;flex-wrap:wrap}
.fn-sw .btn[aria-pressed=true]{background:var(--tag);border-color:var(--tag);color:#14181F}
.fn-rows{margin-top:26px;display:grid;gap:6px}
.fr{display:grid;grid-template-columns:minmax(120px,190px) minmax(0,1fr) minmax(90px,150px);gap:14px;align-items:center}
.fr-n{font-weight:700;font-size:.92rem}
.fr-bar{display:flex;height:34px;background:repeating-linear-gradient(90deg,var(--stagerule) 0 1px,transparent 1px calc(100%/12));border:1px solid var(--stagerule)}
.fr-bar i{display:block;height:100%;transition:width .6s cubic-bezier(.2,.7,.2,1)}
.fr-bar .ok{background:var(--gA)}.fr-bar .gu{background:var(--gC)}.fr-bar .no{background:var(--gF)}
.fr-x{font-size:.85rem;color:var(--stage3)}.fr-x b{color:var(--gF)}
.fr.kill .fr-n{color:var(--gF)}
.fn-key{display:flex;gap:18px;flex-wrap:wrap;margin-top:16px;font-size:.85rem;color:var(--stage3)}
.fn-key span::before{content:"";display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-1px;background:var(--c)}
.fn-note{margin-top:18px;border-left:4px solid var(--tag);padding:4px 14px;color:var(--stageink);max-width:70ch}
@media (max-width:600px){.fr{grid-template-columns:minmax(0,1fr);gap:4px;margin-bottom:10px}}
@media (prefers-reduced-motion:reduce){.fr-bar i{transition:none}}

@media (max-width:980px){
  .hero{grid-template-columns:minmax(0,1fr);gap:34px}
  .cats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rp,.fx,.shr{grid-template-columns:minmax(0,1fr)}
  .fx-side{position:static}
  .offers,.cmp-top,.gaps{grid-template-columns:minmax(0,1fr)}
  .gate{grid-template-columns:minmax(0,1fr)}
  .m-prod,.m-cart{grid-template-columns:minmax(0,1fr)}
  .m-img.big{min-height:160px}
  .stepper{display:flex}
  .bar nav{margin-left:0}
}
@media (max-width:520px){
  section{padding-block:40px}
  .cats{grid-template-columns:1fr}
  .cmp-row{grid-template-columns:1fr;gap:6px}
  .scan{flex-direction:column}.scan button{padding:14px}
  .ck{grid-template-columns:28px minmax(0,1fr)}.ck .w{grid-column:2}
  .m-grid{grid-template-columns:repeat(2,1fr)}
}
@media (prefers-reduced-motion:reduce){
  .tag-letter.stamp{animation:none}.cursor{transition:none}.meter i,.cb i,.tag-prog i{transition:none}
}
