@font-face{
  font-family:"Bricolage Grotesque";
  font-style:normal; font-display:swap; font-weight:200 800;
  src:url("/assets/fonts/bricolage-grotesque-latin-wght.woff2") format("woff2-variations"), url("/assets/fonts/bricolage-grotesque-latin-wght.woff2") format("woff2");
}

:root{
  --paper:#F4F5F2; --surface:#FFFFFF; --ink:#16202B; --muted:#5A6570; --line:#D5D9D4;
  --tape:#F2C230; --tape-ink:#1B1A12; --tape-soft:#FBEFC4; --over:#B93A26; --ok:#2C7A4B;
  --focus:#1D5FD0;
  color-scheme:light;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#11161C; --surface:#19212A; --ink:#ECEFEA; --muted:#9AA4AE; --line:#2D3742;
    --tape:#F2C230; --tape-ink:#1B1A12; --tape-soft:#3A3318; --over:#E5674F; --ok:#5DB57F;
    --focus:#7FA8FF; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#11161C; --surface:#19212A; --ink:#ECEFEA; --muted:#9AA4AE; --line:#2D3742;
  --tape:#F2C230; --tape-ink:#1B1A12; --tape-soft:#3A3318; --over:#E5674F; --ok:#5DB57F;
  --focus:#7FA8FF; color-scheme:dark;
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:"Bricolage Grotesque", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size:17px; line-height:1.55; font-variant-numeric:tabular-nums;
}
a{color:inherit}
:focus-visible{outline:3px solid var(--focus); outline-offset:2px; border-radius:4px}
.wrap{max-width:760px; margin:0 auto; padding:0 20px}
header.top{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px 20px; padding:16px 0; border-bottom:1px solid var(--line)}
.brand{font-weight:800; font-size:19px; letter-spacing:-.01em; display:flex; align-items:center; gap:10px}
.brand-mark{width:22px; height:22px; border-radius:4px; background:var(--tape); position:relative; flex:none}
.brand-mark::after{content:""; position:absolute; left:4px; right:4px; top:10px; height:2px; background:var(--tape-ink)}
.private{font-size:14px; color:var(--muted); display:flex; align-items:center; gap:6px}
.private svg{flex:none}

h1{font-size:clamp(38px,7vw,60px); line-height:1.02; letter-spacing:-.035em; font-weight:800; margin:40px 0 12px}
.promise{font-size:19px; color:var(--muted); margin:0 0 28px; max-width:56ch}

.tabs{display:inline-flex; border:1px solid var(--line); border-radius:8px; padding:3px; background:var(--surface); margin-bottom:18px}
.tab{appearance:none; border:0; background:none; color:var(--muted); font:inherit; font-size:15px; font-weight:600; padding:8px 14px; border-radius:6px; cursor:pointer}
.tab[aria-selected="true"]{background:var(--ink); color:var(--paper)}

.opts{margin:0 0 18px}
.opts legend{font-weight:600; font-size:15px; margin-bottom:8px; padding:0}
fieldset{border:0; margin:0; padding:0}
.chips{display:flex; flex-wrap:wrap; gap:8px}
.chip{position:relative}
.chip input{position:absolute; opacity:0; inset:0; margin:0; cursor:pointer}
.chip span{display:inline-flex; align-items:baseline; gap:6px; padding:8px 14px; border:1px solid var(--line); border-radius:999px; background:var(--surface); font-size:15px; font-weight:600}
.chip span small{font-weight:400; color:var(--muted); font-size:14px}
.chip input:checked + span{background:var(--tape); border-color:var(--tape); color:var(--tape-ink)}
.chip input:checked + span small{color:var(--tape-ink)}
.chip input:focus-visible + span{outline:3px solid var(--focus); outline-offset:2px}
.custom{display:none; align-items:center; gap:8px; margin-top:10px; font-size:15px}
.custom.show{display:flex}
.custom input{width:90px; font:inherit; padding:6px 10px; border:1px solid var(--line); border-radius:6px; background:var(--surface); color:var(--ink)}
.check{display:flex; align-items:center; gap:10px; margin-top:12px; font-size:15px; cursor:pointer}
.check input{width:18px; height:18px; accent-color:var(--ink)}

.drop{
  display:block; border:2px dashed var(--line); border-radius:10px; background:var(--surface);
  padding:38px 20px; text-align:center; cursor:pointer; transition:border-color .15s, background .15s;
}
.drop:hover,.drop.over{border-color:var(--ink)}
.drop.over{background:var(--tape-soft)}
.drop strong{display:block; font-size:21px; font-weight:700; letter-spacing:-.01em}
.drop span{display:block; color:var(--muted); font-size:15px; margin-top:4px}
.drop .btnlike{display:inline-block; margin-top:16px; padding:10px 18px; border-radius:6px; background:var(--ink); color:var(--paper); font-weight:600; font-size:15px}
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}

.panel{background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:20px; margin-top:16px}
.fname{font-weight:700; font-size:18px; word-break:break-all; margin:0}
.fmeta{color:var(--muted); font-size:15px; margin:2px 0 0}

/* The tape gauge */
.gauge{margin:22px 0 6px}
.g-row{display:grid; grid-template-columns:88px 1fr; align-items:center; gap:12px; margin:10px 0}
.g-label{font-size:14px; color:var(--muted); text-align:right}
.g-track{position:relative; height:26px}
.g-bar{position:absolute; left:0; top:0; bottom:0; border-radius:4px; display:flex; align-items:center; justify-content:flex-end; padding:0 8px; font-size:13px; font-weight:700; white-space:nowrap; min-width:2px; transition:width .4s ease}
.g-bar.src{background:var(--ink); color:var(--paper)}
.g-bar.src.over{background:repeating-linear-gradient(135deg,var(--ink) 0 8px,color-mix(in srgb,var(--ink) 82%,var(--over)) 8px 16px)}
.g-bar.out{background:var(--tape); color:var(--tape-ink)}
.g-bar.ghost{background:transparent; border:2px dashed var(--line); color:var(--muted)}
.g-bar.tiny{justify-content:flex-start}
.g-bar.tiny span{position:absolute; left:calc(100% + 6px); color:var(--ink)}
.g-ruler{position:relative; height:26px; margin-left:100px; border-top:2px solid var(--ink)}
.g-tick{position:absolute; top:-2px; width:2px; height:8px; background:var(--ink)}
.g-tick.minor{height:5px; width:1px; background:var(--muted)}
.g-tick b{position:absolute; top:10px; left:50%; transform:translateX(-50%); font-size:12px; font-weight:500; color:var(--muted); white-space:nowrap}
.g-area{position:relative}
.g-limit{position:absolute; top:-6px; bottom:-4px; width:0; border-left:2px solid var(--over); z-index:2; pointer-events:none}
.g-limit b{position:absolute; top:-22px; left:6px; font-size:12px; font-weight:700; color:var(--over); white-space:nowrap}
.g-limit.flip b{left:auto; right:6px}

.estimate{font-size:16px; margin:18px 0 0}
.estimate .q{display:inline-block; font-size:13px; font-weight:700; padding:1px 8px; border-radius:999px; border:1px solid currentColor; margin-left:4px}
.q.good{color:var(--ok)} .q.ok{color:var(--muted)} .q.low{color:var(--over)}
.note{color:var(--muted); font-size:15px; margin:6px 0 0}

.actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:20px}
.btn{appearance:none; font:inherit; font-size:16px; font-weight:700; border-radius:6px; padding:12px 20px; cursor:pointer; border:2px solid transparent}
.btn.primary{background:var(--tape); color:var(--tape-ink); border-color:var(--tape)}
.btn.primary:hover{filter:brightness(.96)}
.btn.secondary{background:none; color:var(--ink); border-color:var(--line)}
.btn:disabled{opacity:.5; cursor:not-allowed}

.progress{margin-top:6px}
.p-track{height:14px; border-radius:4px; background:var(--paper); border:1px solid var(--line); overflow:hidden}
.p-fill{height:100%; width:0; background:var(--tape); transition:width .25s linear}
.p-text{display:flex; justify-content:space-between; font-size:15px; margin-top:8px}
.p-text span:last-child{color:var(--muted)}

.result-head{font-size:clamp(26px,4.5vw,34px); font-weight:800; letter-spacing:-.02em; line-height:1.15; margin:0}
.result-sub{color:var(--muted); margin:6px 0 0; font-size:15px}
video{display:block; width:100%; max-height:360px; background:#000; border-radius:8px; margin-top:16px}
.status{font-size:15px; margin-top:10px; min-height:1.4em}

.error{border-color:var(--over)}
.error h2{margin:0; font-size:19px; color:var(--over)}
.error p{margin:6px 0 0}

.banner{border:1px solid var(--over); border-radius:8px; padding:12px 16px; margin:0 0 18px; font-size:15px; background:var(--surface)}
.banner b{color:var(--over)}

.adslot{position:relative; border-radius:8px; color:var(--muted); font-size:12px; min-height:120px; margin-top:20px; background:color-mix(in srgb,var(--surface) 55%,transparent); border:1px solid var(--line); overflow:hidden}
.adslot > span{position:absolute; top:6px; left:10px; letter-spacing:.02em}
.adslot ins{margin-top:22px}

article{margin:48px 0 0; padding-top:28px; border-top:1px solid var(--line)}
article h2{font-size:26px; letter-spacing:-.02em; margin:0 0 10px; line-height:1.2}
article h3{font-size:19px; margin:26px 0 6px}
article p, article li{max-width:66ch}
article ol{padding-left:22px}
.limits{width:100%; border-collapse:collapse; font-size:15px; margin-top:8px}
.limits th,.limits td{text-align:left; padding:8px 10px; border-bottom:1px solid var(--line)}
.limits th{font-weight:600}
.tablewrap{overflow-x:auto}
footer{margin:56px 0 0; padding:20px 0 32px; border-top:1px solid var(--line); color:var(--muted); font-size:14px}
.thumbs{list-style:none; margin:16px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(112px,1fr)); gap:10px}
.thumb{position:relative; border:1px solid var(--line); border-radius:8px; overflow:hidden; background:var(--paper)}
.thumb .frame{position:relative; aspect-ratio:var(--ar,16/9); background:#000}
.thumb img{position:absolute; inset:0; width:100%; height:100%; object-fit:var(--fit,contain)}
.thumb img.bg{object-fit:cover; filter:blur(6px) brightness(.6); transform:scale(1.12)}
.thumbs.fill img.bg{display:none}
.thumb .num{position:absolute; top:6px; left:6px; background:var(--tape); color:var(--tape-ink); font-size:12px; font-weight:800; border-radius:4px; padding:0 6px; line-height:20px}
.thumb .ctrl{display:flex; justify-content:space-between; padding:4px}
.thumb .ctrl button{appearance:none; border:0; background:none; color:var(--ink); font:inherit; font-size:15px; font-weight:700; width:30px; height:28px; border-radius:4px; cursor:pointer}
.thumb .ctrl button:hover{background:var(--line)}
.thumb .ctrl button:disabled{opacity:.3; cursor:default; background:none}
.count{display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap}
.count .slots{font-size:14px; color:var(--muted)}
.cap{height:6px; border-radius:3px; background:var(--paper); border:1px solid var(--line); overflow:hidden; margin-top:8px}
.cap i{display:block; height:100%; background:var(--ink); width:0; transition:width .2s}
/* site chrome */
.skip{position:absolute; left:-9999px; top:8px; background:var(--ink); color:var(--paper); padding:8px 12px; border-radius:6px; z-index:10}
.skip:focus{left:12px}
.brand{text-decoration:none; color:var(--ink)}
.topnav{display:flex; gap:4px 18px; flex-wrap:wrap; font-size:15px}
.topnav a{text-decoration:none; color:var(--muted); font-weight:500; padding:4px 0}
.topnav a:hover,.topnav a[aria-current="page"]{color:var(--ink)}
.topnav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--tape)}
.private-strip{display:flex; align-items:center; gap:6px; font-size:14px; color:var(--muted); margin:18px 0 0}
.content{margin:48px 0 0; padding-top:28px; border-top:1px solid var(--line)}
.content h2{font-size:26px; letter-spacing:-.02em; margin:34px 0 10px; line-height:1.2}
.content h2:first-child{margin-top:0}
.content h3{font-size:19px; margin:24px 0 6px}
.content p,.content li{max-width:66ch}
.content ol,.content ul{padding-left:22px}
.content li{margin:4px 0}
.faq details{border-bottom:1px solid var(--line); padding:12px 0}
.faq summary{font-weight:600; cursor:pointer; list-style-position:outside}
.faq details p{margin:8px 0 0; color:var(--ink)}
.related{display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:10px; list-style:none; padding:0 !important}
.related a{display:block; border:1px solid var(--line); border-radius:8px; padding:12px 14px; text-decoration:none; background:var(--surface)}
.related a b{display:block}
.related a span{color:var(--muted); font-size:14px}
.related a:hover{border-color:var(--ink)}
.legal h1{font-size:clamp(34px,6vw,48px)}
.legal .updated{color:var(--muted); font-size:15px; margin-top:-4px}
.legal h2{font-size:22px; margin:30px 0 8px}
.legal p,.legal li{max-width:68ch}
footer.site{margin:64px 0 0; padding:28px 0 36px; border-top:1px solid var(--line); color:var(--muted); font-size:14px}
.fcols{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:18px}
.fcols h2{font-size:14px; color:var(--ink); margin:0 0 8px}
.fcols ul{list-style:none; padding:0; margin:0}
.fcols li{margin:4px 0}
.fcols a{text-decoration:none}
.fcols a:hover{text-decoration:underline; color:var(--ink)}
.fine{margin-top:22px}
.notfound{padding:40px 0}
[hidden]{display:none !important}
@media (max-width:520px){
  .g-row{grid-template-columns:64px 1fr; gap:8px}
  .g-ruler{margin-left:72px}
  .drop{padding:28px 16px}
  .tabs{display:flex}
  .tab{flex:1}
}
@media (prefers-reduced-motion:reduce){*{transition:none !important}}
