@font-face{font-family:"IBM Plex Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/plex-serif-400.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Serif";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/plex-serif-600.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/plex-sans-400.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/plex-sans-500.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/plex-mono-400.woff2) format("woff2")}
:root{--paper:#F4E9D0;--ink:#12110C;--muted:#5A5146;--navy:#1A365D;--red:#9B1B1E;--good:#1F6B3A;--card:#FFF8E8;--shadow:#12110C;--disp:"IBM Plex Serif",Georgia,serif;--sans:"IBM Plex Sans",sans-serif;--mono:"IBM Plex Mono",ui-monospace,monospace}
[data-theme=dark]{--paper:#12141A;--ink:#F4E9D0;--muted:#C7BBA8;--card:#1C2230;--shadow:#000;--navy:#9DB7E0}
*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 var(--sans)}
a{color:var(--navy)}:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
.post{height:16px;background:var(--navy);color:var(--paper);font:500 11px var(--mono);letter-spacing:.12em;display:flex;align-items:center;justify-content:center;text-transform:uppercase}
.wrap{width:min(1100px,calc(100% - 32px));margin:0 auto}
header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:16px 0;flex-wrap:wrap}
.brand{display:flex;gap:10px;align-items:center;color:inherit;text-decoration:none;font-family:var(--disp);font-weight:600;font-size:26px}
.brand img{width:40px;height:40px}
nav{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
nav a{color:var(--ink);text-decoration:none;font-weight:500}
.iconbtn,.btn{appearance:none;border:1.5px solid var(--ink);background:var(--card);color:var(--ink);border-radius:12px;min-height:44px;padding:8px 14px;font:500 15px var(--sans);cursor:pointer;box-shadow:0 4px 0 var(--shadow)}
.btn:active,.iconbtn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--shadow)}
.btn.pri{background:var(--navy);color:#F4E9D0}
h1{font-family:var(--disp);font-weight:600;font-size:clamp(42px,6.5vw,84px);line-height:.95;letter-spacing:-.03em;margin:8px 0 12px}
.lede{font-size:18px;max-width:38em}
.meta{color:var(--muted);font:14px var(--mono)}
.drop{border:2px dashed var(--navy);border-radius:18px;background:var(--card);min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;position:relative;box-shadow:0 6px 0 var(--shadow);cursor:pointer}
.drop.hot{background:#e8d9b0}
.drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
table{width:100%;border-collapse:collapse;margin:16px 0;background:var(--card)}
th,td{border:1px solid var(--ink);padding:8px 10px;text-align:left;font:14px var(--mono)}
th{background:var(--navy);color:#F4E9D0;font-weight:500}
tr.fail td{background:color-mix(in srgb, var(--red) 12%, var(--card))}
tr.pass td{background:color-mix(in srgb, var(--good) 10%, var(--card))}
.stats{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.stat{background:var(--card);border:1.5px solid var(--ink);border-radius:12px;padding:10px 14px;box-shadow:0 3px 0 var(--shadow)}
.stat b{display:block;font:600 28px var(--disp)}
.stamp{display:inline-block;border:3px solid var(--good);color:var(--good);padding:4px 8px;font:600 20px var(--disp);transform:rotate(-8deg);animation:thump .45s cubic-bezier(.34,1.56,.64,1)}
@keyframes thump{from{transform:scale(2.2) rotate(-12deg);opacity:0}to{transform:rotate(-8deg);opacity:1}}
#out{display:none}#out.on{display:block}
footer{background:var(--navy);color:#F4E9D0;margin-top:40px;padding:28px 0 40px}
footer a{color:#F4E9D0}
.plans{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:700px){.plans{grid-template-columns:1fr}}
.plan{background:var(--card);border:2px solid var(--ink);border-radius:16px;padding:18px;box-shadow:0 6px 0 var(--shadow)}
.plan.feat{background:var(--navy);color:#F4E9D0}
.article{max-width:720px;padding:8px 0 48px}
.toast{position:fixed;bottom:16px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--ink);color:var(--paper);padding:12px 16px;border-radius:999px;opacity:0;z-index:20;transition:transform .35s,opacity .3s}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* related-tools strip — added 12 Nov 2026 for the tool network */
nav.related-tools{margin-top:1.25rem;padding-top:1.1rem;border-top:1px solid color-mix(in srgb, currentColor 35%, transparent)}
nav.related-tools .related-tools-h{margin:0 0 .55rem;font-weight:650;letter-spacing:.01em}
nav.related-tools ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem 1.35rem}
nav.related-tools li{margin:0}
nav.related-tools a{text-decoration:underline;text-underline-offset:3px}
nav.related-tools .rt-tag{opacity:.8}

