@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(/fonts/bricolage-latin.woff2) format("woff2")}:root{--bg:#f5f7fb;--surface:#fff;--sunken:#eef1f7;--ink:#0f1728;--muted:#5a6478;--faint:#8b94a7;--line:#e5e9f2;--line-strong:#cbd3e1;--brand:#2b44e7;--brand-strong:#1f33be;--brand-soft:#edf0ff;--amber:#b45309;--amber-soft:#fdf1e2;--ok:#067647;--ok-strong:#05603a;--ok-soft:#e7f5ee;--danger:#d92d20;--danger-soft:#feecea;--warn:#b54708;--warn-soft:#fef0e6;--font-display:"Bricolage Grotesque",system-ui,-apple-system,"Segoe UI",sans-serif;--font-body:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",sans-serif;--font-mono:ui-monospace,"SF Mono","Cascadia Mono",Menlo,Consolas,monospace;--maxw:64rem;--radius:14px;--radius-sm:10px;--shadow-sm:0 1px 2px rgba(16,24,40,.05);--shadow-md:0 6px 16px -4px rgba(16,24,40,.12)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.6}a{color:var(--brand);text-underline-offset:2px}a:hover{color:var(--brand-strong)}:focus-visible{outline:2.5px solid var(--brand);outline-offset:2px;border-radius:4px}h1,h2,h3{font-family:var(--font-display);line-height:1.12;margin:0 0 .5rem;letter-spacing:-.015em}h1{font-size:clamp(1.9rem,5vw,2.7rem);font-weight:800}h2{font-size:clamp(1.3rem,3vw,1.6rem);margin-top:2.4rem}h2,h3{font-weight:700}h3{font-size:1.08rem}p{margin:.4rem 0 .9rem}.mono,code{font-family:var(--font-mono);font-size:.88em}code{background:var(--sunken);padding:.08em .35em;border-radius:5px}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.1rem}.site-header{background:var(--surface);border-bottom:1px solid var(--line)}.site-header .wrap{display:flex;align-items:center;gap:1rem;min-height:3.7rem;flex-wrap:wrap;padding-top:.45rem;padding-bottom:.45rem}.wordmark{font-family:var(--font-display);font-size:1.35rem;font-weight:800;letter-spacing:-.02em;color:var(--ink);text-decoration:none}.wordmark:hover{color:var(--brand)}.site-nav{display:flex;gap:1.05rem;margin-left:auto;font-size:.93rem;font-weight:500;flex-wrap:wrap}.site-nav a{color:var(--muted);text-decoration:none}.site-nav a:hover{color:var(--brand)}.seal-badge{display:inline-flex;align-items:center;gap:.45rem;background:var(--ok-soft);color:var(--ok-strong);border:1px solid #bfe3cf;border-radius:999px;padding:.32rem .85rem;font-size:.8rem;font-weight:600;text-decoration:none;white-space:nowrap}.seal-badge:hover{border-color:var(--ok);color:var(--ok-strong)}.seal-dot{width:8px;height:8px;border-radius:50%;background:var(--ok)}.seal-note{display:flex;gap:.55rem;align-items:baseline;font-size:.9rem;color:var(--ok-strong);background:var(--ok-soft);border-radius:var(--radius-sm);padding:.65rem .9rem;margin:1rem 0 1.5rem}.seal-note a{color:var(--ok-strong);font-weight:600}.hero{padding:3rem 0 1.2rem;text-align:center}.hero .kicker{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brand);font-weight:600;margin-bottom:.7rem}.hero h1{max-width:24ch;margin-left:auto;margin-right:auto}.hero .lede{color:var(--muted);max-width:56ch;font-size:1.08rem;margin:.6rem auto .9rem}.hero .badges{justify-content:center}.badges{display:flex;flex-wrap:wrap;gap:.45rem .5rem;margin:.9rem 0 .4rem}.badges span{background:var(--surface);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow-sm);padding:.28rem .75rem;font-size:.82rem;font-weight:500;color:var(--muted);white-space:nowrap}.tool-section{margin-top:2.6rem}.tool-section>p{color:var(--muted);margin-top:-.2rem}.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr));grid-gap:.85rem;gap:.85rem;margin-top:1rem}.tool-card{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.05rem 1.1rem;text-decoration:none;color:var(--ink);transition:box-shadow .14s,border-color .14s,transform .14s}.tool-card:hover{border-color:var(--brand);box-shadow:var(--shadow-md);transform:translateY(-2px);color:var(--ink)}.tool-card b{display:block;font-family:var(--font-display);font-weight:700;font-size:1rem;letter-spacing:-.01em}.tool-card span:not(.tool-icon){display:block;color:var(--muted);font-size:.86rem;margin-top:.15rem}.tool-card .tool-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;background:var(--brand-soft);font-size:22px;line-height:1;margin:0 0 .6rem}.tool-card .spec{font-family:var(--font-mono);font-size:.74rem;color:var(--amber);background:var(--amber-soft);border-radius:6px;padding:.18rem .45rem;display:inline-block;margin-top:.45rem}.tool-head{padding-top:2.4rem}.tool-head .lede{color:var(--muted);max-width:62ch;font-size:1.05rem}.drop{border:2px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);padding:2.6rem 1.2rem;text-align:center;cursor:pointer;margin:.5rem 0;transition:border-color .14s,background .14s}.drop.over,.drop:hover{border-color:var(--brand);background:var(--brand-soft)}.drop b{display:block;font-family:var(--font-display);font-size:1.15rem;font-weight:700}.drop span{color:var(--muted);font-size:.9rem}.drop input{display:none}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.15rem 1.25rem;margin:1rem 0}.panel h3{margin-top:0}.controls{display:flex;gap:.9rem 1.4rem;flex-wrap:wrap;align-items:flex-end;margin:.8rem 0}.field{display:flex;flex-direction:column;gap:.28rem;font-size:.88rem;color:var(--muted)}.field>span{font-weight:600;color:var(--ink)}input[type=number],input[type=text],select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;padding:.5rem .65rem;min-width:7rem}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.check{display:flex;gap:.45rem;align-items:center;font-size:.92rem;color:var(--ink)}.check input{accent-color:var(--brand);width:1.05rem;height:1.05rem}.btn{font:inherit;font-weight:600;border-radius:var(--radius-sm);border:1px solid transparent;padding:.6rem 1.25rem;cursor:pointer;background:var(--brand);color:#fff;box-shadow:var(--shadow-sm);transition:background .12s}.btn:hover{background:var(--brand-strong);color:#fff}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.btn.secondary:hover{border-color:var(--brand);color:var(--brand);background:var(--surface)}.btn.small{padding:.32rem .75rem;font-size:.85rem;font-weight:500}.file-chip{display:flex;align-items:center;gap:.6rem;background:var(--sunken);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:.9rem;margin:.35rem 0}.file-chip .size{font-family:var(--font-mono);font-size:.78rem;color:var(--muted);margin-left:auto;white-space:nowrap}.error-box,.warn-box{border-radius:var(--radius-sm);padding:.75rem .95rem;font-size:.92rem;margin:.8rem 0}.error-box{background:var(--danger-soft);color:var(--danger)}.warn-box{background:var(--warn-soft);color:var(--warn)}.progress{margin:1rem 0}.progress .bar{height:9px;border-radius:5px;background:var(--sunken);border:1px solid var(--line);overflow:hidden}.progress .fill{height:100%;background:var(--brand);border-radius:5px;transition:width .16s}.progress .label{font-size:.85rem;color:var(--muted);margin-top:.35rem;font-family:var(--font-mono)}.result{border:1px solid #bfe3cf;background:var(--ok-soft);border-radius:var(--radius);padding:1.1rem 1.25rem;margin:1rem 0}.result h3{margin:0 0 .4rem;color:var(--ok-strong)}.result .stat{font-family:var(--font-mono);font-size:.85rem;color:var(--muted)}.result .file-chip{background:var(--surface)}.page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));grid-gap:.75rem;gap:.75rem;margin:1rem 0}.page-tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);padding:.45rem;text-align:center;cursor:-webkit-grab;cursor:grab;position:relative}.page-tile.selected{border-color:var(--brand);box-shadow:0 0 0 2.5px var(--brand)}.page-tile.dragging{opacity:.4}.page-tile img{width:100%;height:auto;display:block;border:1px solid var(--line);background:#fff;border-radius:5px}.page-tile .num{font-family:var(--font-mono);font-size:.75rem;color:var(--muted);display:block;margin-top:.3rem}.page-tile .actions{display:flex;justify-content:center;gap:.3rem;margin-top:.3rem}.page-tile .actions button{font:inherit;font-size:.8rem;border:1px solid var(--line);background:var(--bg);color:var(--muted);border-radius:6px;padding:.12rem .5rem;cursor:pointer}.page-tile .actions button:hover{color:var(--brand);border-color:var(--brand)}.check-row{display:flex;gap:.6rem;align-items:baseline;padding:.4rem 0;border-bottom:1px solid var(--line);font-size:.93rem}.check-row:last-child{border-bottom:none}.check-row .mark{font-weight:700;font-family:var(--font-mono)}.check-row.pass .mark{color:var(--ok)}.check-row.fail .mark{color:var(--danger)}.check-row .detail{color:var(--muted);margin-left:auto;font-family:var(--font-mono);font-size:.8rem;text-align:right}.usecase-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));grid-gap:.75rem;gap:.75rem;margin:.9rem 0}.usecase{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:.85rem 1rem}.usecase b{display:block;font-size:.95rem;margin-bottom:.2rem;font-weight:650}.usecase span{color:var(--muted);font-size:.88rem}.tips{padding-left:1.2rem}.tips li{margin:.4rem 0}.tool-doc{max-width:46rem}.tool-doc ol{padding-left:1.25rem}.tool-doc li{margin:.4rem 0}.faq details{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.7rem .95rem;margin:.45rem 0}.faq details[open]{border-color:var(--line-strong)}.faq summary{cursor:pointer;font-weight:600}.faq p{color:var(--muted);margin-bottom:.2rem}.related{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.8rem}.related a{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:999px;padding:.3rem .85rem;font-size:.86rem;font-weight:500;text-decoration:none;color:var(--muted)}.related a:hover{border-color:var(--brand);color:var(--brand)}.spec-table{width:100%;border-collapse:collapse;font-size:.92rem;margin:.8rem 0;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.spec-table td,.spec-table th{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--line);vertical-align:top}.spec-table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:var(--faint)}.spec-table .mono{white-space:nowrap}.table-scroll{overflow-x:auto;border-radius:var(--radius)}.verified-line{font-family:var(--font-mono);font-size:.78rem;color:var(--faint)}.site-footer{background:var(--surface);border-top:1px solid var(--line);margin-top:4.5rem;padding:2.4rem 0 3rem;color:var(--muted);font-size:.9rem}.site-footer .cols{display:flex;gap:2.5rem;flex-wrap:wrap}.site-footer h3{font-family:var(--font-body);font-size:.78rem;text-transform:uppercase;letter-spacing:.09em;color:var(--faint);font-weight:700}.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li{margin:.3rem 0}.site-footer a{color:var(--muted);text-decoration:none}.site-footer a:hover{color:var(--brand)}@media (max-width:480px){.controls{gap:.7rem}input[type=number],input[type=text],select{min-width:5rem}.hero{padding-top:2rem;text-align:left}.hero .lede,.hero h1{margin-left:0}.hero .badges{justify-content:flex-start}}