/* CrispKit site styles: design D1 (light, warm, bold), adopted 2026-10-26.
   One :root token block. Self-hosted Satoshi (ITF Free Font License, see fonts/Satoshi-LICENSE-FFL.txt).
   Icons are Lucide (ISC License, see /assets/lucide-LICENSE.txt), inlined as SVG in the pages.
   Replaces hub.css, video/video.css and qr/qr.css. No external requests. */
@font-face{font-family:"Satoshi";src:url("fonts/Satoshi-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Satoshi";src:url("fonts/Satoshi-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Satoshi";src:url("fonts/Satoshi-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Satoshi";src:url("fonts/Satoshi-900.woff2") format("woff2");font-weight:900;font-style:normal;font-display:swap}

:root{
  color-scheme:light;
  /* ground + surfaces */
  --bg:#FAF7F2; --bg-2:#F3EEE6; --card:#FFFFFF; --panel:#F6F2EC;
  /* text */
  --ink:#17141F; --ink-2:#3A3546; --muted:#665F70; --faint:#958E9E;
  /* lines */
  --line:#E9E2D8; --line-2:#F1ECE4; --line-hover:#D9D0C3;
  /* brand */
  --brand:#5B3DF5; --brand-ink:#4325D8; --brand-soft:#EEEAFF; --brand-2:#B53FD9;
  --pop:#FF6B4A; --pop-ink:#D9472A; --pop-soft:#FFEDE7;
  --grad:linear-gradient(100deg,#5B3DF5 0%,#B53FD9 55%,#FF6B4A 100%);
  --grad-btn:linear-gradient(180deg,#6A4EFF 0%,#4F31EA 100%);
  /* status */
  --ok:#147A49; --ok-soft:#E3F4EA; --warn:#9A5B00; --err:#B42318; --err-soft:#FDECEA;
  --checker-a:#ECE6DD; --checker-b:#FFFFFF;
  /* type + shape */
  --sans:"Satoshi",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --r-xl:28px; --r-lg:22px; --r-md:16px; --r-sm:11px;
  --sh-sm:0 1px 2px rgba(23,20,31,.05),0 2px 6px -2px rgba(23,20,31,.06);
  --sh-md:0 1px 2px rgba(23,20,31,.05),0 12px 30px -14px rgba(23,20,31,.18);
  --sh-lg:0 1px 0 rgba(255,255,255,.8) inset,0 30px 60px -28px rgba(40,25,110,.30),0 10px 24px -12px rgba(23,20,31,.12);
  --max:1200px;
  /* names used by the pre-D1 tool markup, mapped onto the D1 tokens */
  --text:var(--ink); --surface:var(--card); --surface-2:var(--panel); --border:var(--line);
  --accent:var(--brand); --accent-text:#fff; --focus:var(--brand); --qr-err:var(--err);
  --radius:var(--r-md); --radius-sm:var(--r-sm); --gap:18px;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16.5px/1.55 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--brand-ink)}
img,svg,canvas,video{max-width:100%}
code{font-family:var(--mono);font-size:.9em;background:var(--panel);padding:1px 5px;border-radius:6px}
:focus-visible{outline:2.5px solid var(--brand);outline-offset:3px;border-radius:8px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:99;padding:10px 14px;border-radius:10px;background:var(--ink);color:#fff;text-decoration:none}
.skip:focus{top:10px}
.ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(250,247,242,.8);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid rgba(233,226,216,.8)}
.site-header .wrap{display:flex;align-items:center;gap:28px;min-height:64px}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-weight:900;font-size:19px;letter-spacing:-.03em}
.brand svg{width:30px;height:30px;flex:none}
.site-nav{display:flex;gap:4px;flex-wrap:wrap}
.site-nav a{color:var(--ink-2);text-decoration:none;font-weight:500;font-size:15px;padding:7px 12px;border-radius:999px;transition:background .2s,color .2s}
.site-nav a:hover,.site-nav a[aria-current]{background:var(--card);color:var(--ink);box-shadow:var(--sh-sm)}
.hdr-note{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:500;color:var(--ok)}
.hdr-note .ic{width:16px;height:16px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:700 15.5px/1 var(--sans);cursor:pointer;text-decoration:none;box-shadow:var(--sh-sm);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,filter .2s}
.btn:hover{transform:translateY(-1px);border-color:var(--line-hover);box-shadow:var(--sh-md)}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.btn-primary{color:#fff;border-color:transparent;background:var(--grad-btn);box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 8px 18px -8px rgba(79,49,234,.65)}
.btn-primary:hover{border-color:transparent;filter:brightness(1.06);box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 12px 24px -10px rgba(79,49,234,.75)}
.btn-lg{min-height:52px;padding:0 24px;font-size:16.5px;border-radius:14px}
.btn-dl{width:100%;min-height:54px;font-size:17px;border-radius:14px}
.arrow{transition:transform .2s ease}
a:hover .arrow,.btn:hover .arrow{transform:translateX(3px)}

/* ---------- headings ---------- */
h1,h2,h3{letter-spacing:-.03em;line-height:1.05;font-weight:700;margin:0}
.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.trust{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 11px;margin:0;padding:0;list-style:none;font-size:14.5px;font-weight:700;letter-spacing:-.005em;color:var(--ink-2)}
.trust li{display:inline-flex;align-items:center;gap:7px}
.trust li+li::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--brand-2);opacity:.55;margin-right:4px}

/* ---------- footer ---------- */
.site-footer{margin-top:96px;border-top:1px solid var(--line);padding:56px 0 40px;color:var(--muted);font-size:15px}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.fgrid p{margin:12px 0 0;max-width:30ch}
.footer-h{margin:4px 0 12px;font-weight:700;color:var(--ink);font-size:15px}
.fgrid ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.site-footer a{color:var(--muted);text-decoration:none}
.site-footer a:hover,.site-footer a[aria-current="page"]{color:var(--ink)}
.footer-note{margin:40px 0 0;padding-top:20px;border-top:1px solid var(--line);font-size:13.5px}
.footer-note a{text-decoration:underline;text-underline-offset:2px}

/* ---------- tool page: head + 1-2-3 strip ---------- */
.tool-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px 32px;flex-wrap:wrap;padding:24px 0 18px}
.tool-head>div{flex:1 1 420px;min-width:0}
.tool-head h1{font-size:clamp(34px,4.2vw,52px);letter-spacing:-.035em}
.tool-head h1 .grad{padding-right:.04em}
.lede{color:var(--muted);margin:8px 0 0;max-width:62ch;font-size:17px}
.flow{flex:none;list-style:none;margin:0 0 4px;padding:5px;display:flex;gap:4px;background:var(--card);border:1px solid var(--line-2);border-radius:999px;box-shadow:var(--sh-sm);font-size:14.5px;font-weight:700;color:var(--ink-2)}
.flow li{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border-radius:999px;white-space:nowrap}
.flow li i{font-style:normal;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink);font-size:13px;font-weight:900;flex:none}
.flow li:last-child i{background:var(--grad);color:#fff}

/* ---------- tool page: cards ---------- */
.tool{display:grid;gap:18px;grid-template-columns:minmax(0,1fr);align-items:start}
@media (min-width:900px){
  .tool{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr)}
  .tool.even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .tool.wide-main{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
  .sticky{position:sticky;top:84px}
}
.main-col,.side-col{display:grid;gap:18px;min-width:0}
.card{background:var(--card);border:1px solid var(--line-2);border-radius:var(--r-lg);box-shadow:var(--sh-md);padding:18px;min-width:0}
.card-h{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:17px;font-weight:700;letter-spacing:-.015em;color:var(--ink);padding:0}
.card-h i{font-style:normal;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink);font-size:13.5px;font-weight:900;flex:none}
.result .card-h i{background:var(--grad);color:#fff}
.result-wait{display:grid;place-items:center;min-height:120px;border:2px dashed var(--line);border-radius:var(--r-md);color:var(--faint);background:var(--panel)}
.result-wait .ic{width:30px;height:30px}

/* ---------- tool page: drop areas + stages ---------- */
.stage-wrap{position:relative;width:100%;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);background:repeating-conic-gradient(var(--checker-a) 0 25%,var(--checker-b) 0 50%) 0 0/20px 20px}
.stage-wrap.dragover{outline:3px solid var(--brand);outline-offset:-3px}
.stage-wrap.dragover .empty{background:linear-gradient(160deg,#F1EDFF,#FFF0EA)}
.empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:20px;background:radial-gradient(420px 260px at 50% 30%,rgba(91,61,245,.08),transparent 70%),linear-gradient(180deg,#FFFFFF,#FBF8F4)}
.empty p{margin:0;color:var(--muted);font-size:14.5px;max-width:32ch}
.empty-art{position:relative;width:132px;height:96px;margin-bottom:4px}
.empty-art .sq{position:absolute;left:0;top:10px;width:96px;height:72px;border-radius:12px;overflow:hidden;box-shadow:var(--sh-md);transform:rotate(-6deg)}
.empty-art .rd{position:absolute;right:0;top:12px;width:72px;height:72px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 3px #fff,var(--sh-md)}
.empty-art img{width:100%;height:100%;object-fit:cover;display:block}
.empty .btns{display:flex;flex-direction:column;gap:8px;width:min(100%,240px)}
.empty .btns .btn{width:100%}
.ex-thumb{width:22px;height:22px;border-radius:50%;object-fit:cover}

/* video drop area (ids and classes used by /assets/video/video-ui.js) */
.vdrop{border:2px dashed var(--line);border-radius:var(--r-md);padding:28px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;min-height:240px;background:radial-gradient(420px 260px at 50% 30%,rgba(91,61,245,.08),transparent 70%),linear-gradient(180deg,#FFFFFF,#FBF8F4);transition:border-color .2s}
.vdrop.dragover{border-color:var(--brand);background:linear-gradient(160deg,#F1EDFF,#FFF0EA)}
.vdrop.loaded{min-height:0;padding:16px}
.vdrop p{margin:0;color:var(--muted);font-size:14.5px}
.vdrop-ic{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink)}
.vdrop-ic .ic{width:26px;height:26px}
.vdrop.loaded .vdrop-ic{display:none}
.vinfo{font-size:14.5px;color:var(--ink);overflow-wrap:anywhere}
.vinfo:empty{display:none}
.vest{font-size:14px;color:var(--ink);margin:0;font-family:var(--mono);overflow-wrap:anywhere;padding:10px 12px;border-radius:12px;background:var(--panel)}
.vest:empty{display:none}
progress{width:100%;height:10px;accent-color:var(--brand)}
.vresult{display:grid;gap:12px}
.vresult video{width:100%;max-height:360px;background:var(--ink);border-radius:var(--r-sm);display:block}

/* ---------- tool page: form controls ---------- */
.controls{display:grid;gap:14px;grid-template-columns:minmax(0,1fr);min-width:0}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;min-width:0}
.row>label{min-width:72px}
.row>select{flex:1 1 160px;min-width:0;max-width:100%}
.field{display:grid;gap:7px;grid-template-columns:minmax(0,1fr);min-width:0}
.grid2{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
.grid2 input[type="number"],.grid2 select{width:100%}
label{font-size:14.5px;color:var(--ink-2);font-weight:500}
select,input[type="number"],input[type="text"],input[type="tel"],input[type="url"],textarea{font:500 16px var(--sans);color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 12px;min-height:44px;box-shadow:var(--sh-sm);max-width:100%}
input[type="text"],input[type="tel"],input[type="url"],textarea{width:100%}
select:hover,input[type="number"]:hover,input[type="text"]:hover,input[type="tel"]:hover{border-color:var(--line-hover)}
textarea{min-height:84px;resize:vertical}
input[aria-invalid="true"]{border-color:var(--err)}
input[type="color"]{width:46px;height:42px;padding:3px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);cursor:pointer}
input[type="range"]{accent-color:var(--brand);width:100%}
input[type="checkbox"]{accent-color:var(--brand);width:17px;height:17px;vertical-align:-3px;margin:0 6px 0 0}
.seg{display:inline-flex;padding:3px;gap:3px;background:var(--panel);border-radius:12px;flex-wrap:wrap}
.seg button{border:0;background:transparent;color:var(--muted);font:700 15px var(--sans);padding:8px 18px;min-height:38px;border-radius:9px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--card);color:var(--ink);box-shadow:var(--sh-sm)}
.controls .btn{min-height:42px}
fieldset{border:0;padding:0;margin:0;display:grid;gap:12px;min-width:0}
legend{font-weight:700;font-size:15px;padding:0;margin-bottom:4px;color:var(--ink)}
.note{font-size:14px;color:var(--muted);margin:0}
.note.warn{color:var(--warn)}
.note.err{color:var(--err)}
.note.ok{color:var(--ok)}
.note:empty{display:none}
#status:not(:empty),#vstatus:not(:empty){padding:10px 12px;border-radius:12px;background:var(--panel);color:var(--ink-2)}
.privacy{font-size:14px;color:var(--ok);margin:12px 0 0;text-align:center;font-weight:500}

/* ---------- QR tools (classes set by the page scripts) ---------- */
.preview{display:grid;gap:14px;justify-items:center}
.qr-frame{width:100%;max-width:420px;aspect-ratio:1/1;border-radius:var(--r-md);border:1px solid var(--line);display:grid;place-items:center;padding:12px;background:repeating-conic-gradient(var(--checker-a) 0 25%,var(--checker-b) 0 50%) 0 0/20px 20px}
.qr-frame canvas{width:100%;height:auto;image-rendering:pixelated;display:block}
.check{width:100%;max-width:420px;border-radius:12px;border:1px solid var(--line);background:var(--panel);padding:10px 12px;font-size:15px}
.check strong{display:block}
.check.pass{border-color:var(--ok);background:var(--ok-soft)}
.check.fail{border-color:var(--err);background:var(--err-soft)}
.check.pass strong{color:var(--ok)}
.check.fail strong{color:var(--err)}
.check ul{margin:6px 0 0;padding-left:18px;color:var(--muted);font-size:14px}
.payload{font:14px var(--mono);word-break:break-all;color:var(--muted)}
.actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;width:100%;max-width:420px}
.actions .btn-primary{flex:1 1 100%;min-height:54px;font-size:17px;border-radius:14px}
.actions .btn:not(.btn-primary){flex:1 1 0}
.tool .swatches{display:flex;flex-wrap:wrap;gap:8px}
.tool .swatches button{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);cursor:pointer;padding:0;box-shadow:0 0 0 2px #fff,var(--sh-sm)}

/* ---------- before / after ---------- */
.ba{margin-top:72px}
.sec-h{font-size:clamp(28px,3.2vw,40px);margin:0}
.sec-p{color:var(--muted);margin:10px 0 0;max-width:62ch}
.ba-strip{margin-top:24px;display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center;background:var(--card);border:1px solid var(--line-2);border-radius:var(--r-xl);box-shadow:var(--sh-md);padding:22px}
.ba-strip.three{grid-template-columns:1fr auto 1fr auto 1.1fr}
.ba figure{margin:0;display:grid;gap:10px;justify-items:center;text-align:center;min-width:0}
.ba figcaption{font-size:13.5px;color:var(--muted)}
.ba figcaption b{display:block;color:var(--ink);font-size:14.5px}
.ba .shot{width:min(100%,320px);aspect-ratio:4/3;object-fit:cover;border-radius:14px;display:block}
.ba .chk{width:min(100%,200px);aspect-ratio:1;border-radius:16px;padding:10px;background:repeating-conic-gradient(var(--checker-a) 0 25%,var(--checker-b) 0 50%) 0 0/14px 14px}
.ba .chk img{width:100%;height:100%;display:block}
.ba-arrow{width:40px;height:40px;border-radius:50%;background:var(--grad);display:grid;place-items:center;box-shadow:0 8px 16px -8px rgba(91,61,245,.7)}
.ba-arrow svg{stroke:#fff;width:18px;height:18px;stroke-width:2.6}
.inuse{width:100%;display:grid;gap:10px}
.inuse .prof{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:var(--panel);text-align:left}
.inuse img{border-radius:50%;object-fit:cover;display:block;flex:none}
.inuse .ln{height:8px;border-radius:8px;background:var(--line);margin-top:6px}
.inuse .msg{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:14px;background:var(--panel);text-align:left}

/* ---------- guide + FAQ (existing page text, styled in place) ---------- */
.info{margin-top:72px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:20px 40px;align-items:start}
.info.single{grid-template-columns:minmax(0,1fr);max-width:860px}
.guide>h2,.guide>section>h2{font-size:clamp(26px,2.6vw,34px);margin:44px 0 0}
.guide>h2:first-child,.guide>section:first-child>h2:first-child{margin-top:0}
.guide p,.guide li{color:var(--ink-2);max-width:68ch}
.guide>p,.guide>section>p{margin:12px 0 0}
.guide ul,.guide ol{margin:14px 0 0;padding-left:22px;display:grid;gap:8px}
.guide li::marker{color:var(--brand)}
.guide strong{color:var(--ink)}
.guide .table-scroll{margin-top:18px;background:var(--card);border:1px solid var(--line-2);border-radius:var(--r-lg);box-shadow:var(--sh-md)}
.table-scroll{overflow-x:auto}
table.sizes,table.data{border-collapse:collapse;width:100%;font-size:15px}
table.sizes th,table.sizes td,table.data th,table.data td{text-align:left;padding:12px 18px;border-bottom:1px solid var(--line-2);vertical-align:top}
table.sizes tr:last-child td,table.data tr:last-child td{border-bottom:0}
table.sizes th,table.data th{color:var(--muted);font-weight:500;font-size:13.5px}
table.sizes td:first-child{font-weight:700}
.faq{margin-top:20px}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-of-type{border-top:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 2px;font-size:18px;font-weight:700;letter-spacing:-.015em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:30px;height:30px;border-radius:50%;background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2317141F' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/14px no-repeat;box-shadow:var(--sh-sm);transition:transform .25s ease}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 2px 18px;color:var(--ink-2);max-width:68ch}

/* ---------- more tools ---------- */
.more{margin-top:72px}
.more ul{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.more a{display:flex;align-items:center;gap:12px;height:100%;padding:14px 16px;border-radius:var(--r-md);background:var(--card);border:1px solid var(--line-2);box-shadow:var(--sh-sm);text-decoration:none;color:var(--ink);font-weight:700;transition:transform .25s ease,box-shadow .25s ease}
.more a:hover{transform:translateY(-3px);box-shadow:var(--sh-md)}
.more a small{display:block;font-weight:400;color:var(--muted);font-size:13.5px}
.more a .arrow{margin-left:auto;color:var(--brand-ink)}

/* ---------- plain pages (privacy, licenses, 404) ---------- */
.page{max-width:860px}
.page>h1{font-size:clamp(36px,4.6vw,56px);letter-spacing:-.035em;margin:40px 0 0}
.page>.lede{margin:12px 0 0;font-size:18px}
.page>h2{font-size:clamp(24px,2.4vw,30px);margin:44px 0 0}
.page>p,.page li{color:var(--ink-2);max-width:68ch}
.page>p{margin:14px 0 0}
.page>ul{margin:14px 0 0;padding-left:22px;display:grid;gap:6px}
.page li::marker{color:var(--brand)}
.page>.table-scroll{margin-top:28px;background:var(--card);border:1px solid var(--line-2);border-radius:var(--r-lg);box-shadow:var(--sh-md)}
.page .tool-group{margin-top:44px}
.page .tool-group h2{font-size:clamp(24px,2.4vw,30px)}
.tool-list{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.tool-list li{display:flex}
.tool-list a{display:flex;width:100%;text-decoration:none;color:var(--ink)}
.tool-list .card{width:100%;transition:transform .25s ease,box-shadow .25s ease}
.tool-list a:hover .card{transform:translateY(-3px);box-shadow:var(--sh-lg)}
.tool-list strong{font-size:19px;letter-spacing:-.02em}
.tool-list p{margin:6px 0 0;color:var(--muted);font-size:15px}

/* ---------- motion: content is visible without JS; only .js pages hide-then-reveal ---------- */
.js .rv{opacity:0;transform:translateY(18px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0ms)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv{opacity:1;transform:none;transition:none}
  *{transition:none!important;animation:none!important}
  .btn:hover,.tcard:hover,.more a:hover,.tool-list a:hover .card{transform:none}
}

@media (max-width:980px){
  .ba-strip.three{grid-template-columns:1fr auto 1fr}
  .ba-strip .inuse-fig,.ba-strip .a2{display:none}
  .info{grid-template-columns:minmax(0,1fr)}
  .more ul{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .fgrid{grid-template-columns:1fr 1fr}
  .fgrid>div:first-child{grid-column:1/-1}
  .hdr-note{display:none}
}
@media (max-width:640px){
  body{font-size:16px}
  .wrap{padding:0 16px}
  .site-header .wrap{flex-wrap:wrap;gap:4px 12px;min-height:0;padding-top:10px;padding-bottom:8px}
  .site-nav{gap:2px;margin:0 -10px}
  .site-nav a{font-size:14.5px;padding:6px 10px}
  .site-footer{margin-top:64px}
  .tool-head{padding:20px 0 14px}
  .tool-head h1{font-size:34px}
  .lede{font-size:16px}
  .flow{width:100%;justify-content:space-between;font-size:12.5px}
  .flow li{padding:4px 8px 4px 4px;gap:6px;white-space:normal;line-height:1.15}
  .flow li i{width:20px;height:20px;font-size:11.5px}
  .card{padding:14px;border-radius:18px}
  .empty-art{display:none}
  .grid2{grid-template-columns:minmax(0,1fr)}
  .ba,.info,.more{margin-top:56px}
  .ba-strip,.ba-strip.three{grid-template-columns:1fr;padding:16px}
  .ba-arrow{transform:rotate(90deg);justify-self:center}
  .ba-strip .inuse-fig,.ba-strip .a2{display:grid}
  .more ul{grid-template-columns:minmax(0,1fr)}
  .faq summary{font-size:16.5px}
  table.sizes th,table.sizes td,table.data th,table.data td{padding:10px 12px}
  .page>h1{margin-top:28px}
}
