@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans Fallback;src:local("Arial");ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.00%;size-adjust:101.17%}.__className_db9b1d{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.__variable_db9b1d{--font-body:"IBM Plex Sans","IBM Plex Sans Fallback"}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/37e2d5c72304c4e3-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/495b76260b7d577d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/62a6b0fff08b59dc-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/f3bd7e38ce097e28-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/a52c09a9678829ff-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/d247e61e77c874ed-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ca244e0a71c1827d-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/fd89c2519bdbefb3-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans Condensed Fallback;src:local("Arial");ascent-override:112.27%;descent-override:30.12%;line-gap-override:0.00%;size-adjust:91.30%}.__className_a6e6d1{font-family:IBM Plex Sans Condensed,IBM Plex Sans Condensed Fallback;font-style:normal}.__variable_a6e6d1{--font-display:"IBM Plex Sans Condensed","IBM Plex Sans Condensed Fallback"}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/73cb51aac9c97f90-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d26bbd13d6b70f89-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/20535187d867b7b9-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5356a6a4f2c8c8d8-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/db96af6b531dc71f-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono Fallback;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_72a06b{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.__variable_72a06b{--font-mono:"IBM Plex Mono","IBM Plex Mono Fallback"}:root{--paper:#fafaf7;--ink:#1d2127;--ink-soft:#5a6069;--line:#d9dbd4;--surface:#ffffff;--form:#eef1f6;--form-line:#b9c4d8;--accent:#d63a2f;--accent-dark:#b02c23;--ok:#2e7d4f;--ad-bg:#f4f1e4;--ad-line:#c9bd8b;--radius:4px;--shadow:4px 4px 0 0 var(--line)}*{box-sizing:border-box}html{scroll-padding-top:70px}.noscript-banner{padding:10px 16px;background:var(--ad-bg);border-bottom:1px solid var(--ad-line);font-size:14px;text-align:center}.noscript-banner,body{margin:0;color:var(--ink)}body{background:var(--paper);font-family:var(--font-body),"Segoe UI",sans-serif;line-height:1.6;font-size:16px}h1,h2,h3{font-family:var(--font-display),var(--font-body),sans-serif;text-transform:uppercase;letter-spacing:.03em;line-height:1.15;text-wrap:balance}.mono{font-family:var(--font-mono),monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}a{color:var(--accent-dark);text-decoration-thickness:1px;text-underline-offset:2px}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:var(--ink);color:var(--paper);border-bottom:3px solid var(--accent)}.header-inner{max-width:1100px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:16px}.lang,.menu-btn{background:none;border:1px solid rgba(250,250,247,.35);color:var(--paper);font:inherit;font-size:14px;padding:5px 12px;border-radius:var(--radius);cursor:pointer}.lang:hover,.menu-btn:hover{border-color:var(--paper)}.lang{margin-left:auto;font-family:var(--font-mono),monospace}.brand{color:var(--paper);text-decoration:none;font-size:17px;letter-spacing:.02em}.brand b{color:var(--accent);font-weight:600}.header-current{font-size:13px;color:rgba(250,250,247,.65);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mega-menu{background:var(--ink);border-top:1px solid rgba(250,250,247,.15)}.mega-grid{max-width:1100px;margin:0 auto;padding:18px 16px 22px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:22px;gap:22px}.mega-cat .mega-cat-title{font-weight:700;font-size:13px;letter-spacing:.1em;color:var(--accent);margin:0 0 8px}.mega-cat ul{list-style:none;margin:0;padding:0}.mega-cat li{padding:3px 0;font-size:14.5px}.mega-cat a{color:var(--paper);text-decoration:none}.mega-cat a:hover{color:var(--accent);text-decoration:underline}.mega-cat .soon{color:rgba(250,250,247,.45)}.mega-cat .soon span{font-size:11px;border:1px solid rgba(250,250,247,.3);border-radius:99px;padding:0 7px;margin-left:6px}.page{max-width:1100px;margin:0 auto;padding:0 16px 64px}.breadcrumbs{padding-top:18px;font-size:12.5px;color:var(--ink-soft)}.breadcrumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap}.breadcrumbs li{display:inline-flex;align-items:center}.breadcrumbs a{color:var(--ink-soft);text-decoration:none}.breadcrumbs a:hover{color:var(--accent-dark);text-decoration:underline}.breadcrumbs [aria-current=page]{color:var(--ink)}.breadcrumbs-sep{margin:0 6px;color:var(--line)}.banner{padding:34px 0 6px}.banner h1{font-size:clamp(26px,4.5vw,38px);margin:0 0 8px}.banner p{max-width:70ch;color:var(--ink-soft);margin:0}.hero{padding:44px 0 10px}.hero h1{font-size:clamp(28px,5vw,44px);margin:0 0 10px}.hero p{max-width:62ch;color:var(--ink-soft);font-size:17px;margin:0}.content-cols{display:grid;grid-template-columns:minmax(0,1fr) 260px;grid-gap:28px;gap:28px;align-items:start}.content-side{position:-webkit-sticky;position:sticky;top:76px}@media (max-width:1023px){.content-cols{grid-template-columns:1fr}.content-side{position:static}}.home-generator{margin-top:10px}.home-generator-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:2px solid var(--ink);padding-bottom:6px}.home-generator-head h2{font-size:17px;margin:0}.home-generator-head a{font-size:14px;white-space:nowrap}.catalog-section{margin-top:36px}.catalog-section h2{font-size:17px;border-bottom:2px solid var(--ink);padding-bottom:6px;margin:0 0 14px}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));grid-gap:12px;gap:12px}.tile{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 12px 14px;text-decoration:none;color:var(--ink);transition:transform .12s ease,box-shadow .12s ease}a.tile:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 0 var(--accent)}.tile-soon{opacity:.55}.tile-icon{width:64px;height:30px;margin-bottom:6px}.icon-1d{background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 5px,var(--ink) 5px 9px,transparent 9px 11px,var(--ink) 11px 12px,transparent 12px 16px)}.icon-2d{width:30px;background:linear-gradient(var(--ink),var(--ink)) 0 0 /9px 9px no-repeat,linear-gradient(var(--ink),var(--ink)) 100% 0 /9px 9px no-repeat,linear-gradient(var(--ink),var(--ink)) 0 100% /9px 9px no-repeat,linear-gradient(var(--ink),var(--ink)) 65% 65% /6px 6px no-repeat}.icon-tool{width:30px;border:2px solid var(--ink);border-radius:50%;background:linear-gradient(var(--ink),var(--ink)) 50% 50% /12px 2px no-repeat}.tile-name{font-weight:600;font-size:15.5px}.tile-desc{font-size:12.5px;color:var(--ink-soft)}.accordion{margin-top:26px}.accordion h2{font-size:15px;margin:0 0 8px}.accordion details{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:6px}.accordion summary{cursor:pointer;padding:10px 14px;font-weight:600;font-size:14.5px}.accordion summary:hover{color:var(--accent-dark)}.accordion-body{padding:0 14px 12px;font-size:14.5px;color:var(--ink-soft)}.info-panel{margin-top:20px;font-size:15px;border-left:3px solid var(--accent);padding:4px 0 4px 16px}.info-toggle{margin-top:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.info-toggle>summary{cursor:pointer;padding:10px 14px;font-weight:600;font-size:14.5px}.info-toggle>summary:hover{color:var(--accent-dark)}.info-toggle .info-panel{margin:0 14px 12px}.info-panel ul{margin:8px 0 0;padding-left:20px}.info-panel li{margin:3px 0}.info-panel code{font-family:var(--font-mono),monospace;background:var(--form);padding:1px 5px;border-radius:3px;font-size:13.5px}.prose{border-left:none;padding-left:0;max-width:72ch}.article-updated{font-size:12.5px;color:var(--ink-soft);margin:0}.article-body{margin-top:24px}.article-body h2{font-size:19px;margin:34px 0 10px}.article-body h2:first-child{margin-top:0}.article-body ol,.article-body p,.article-body ul{margin:12px 0}.article-body ol{padding-left:22px}.article-body ol li{margin:4px 0}.checksum-example td,.checksum-example th{text-align:center;padding:5px 8px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.checksum-example th{background:var(--form);color:var(--ink);font-family:var(--font-mono),monospace;font-size:13px}.gen{margin-top:26px}.gen-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.gen-loading{min-height:420px;display:flex;align-items:center;justify-content:center;color:var(--ink-soft);font-size:14.5px}.gen-label{display:block;font-weight:600;font-size:14px;margin-bottom:4px}.hint{font-weight:400;font-size:12.5px;color:var(--ink-soft)}input[type=number],input[type=text],select,textarea{font:inherit;font-family:var(--font-mono),monospace;font-size:14.5px;color:var(--ink);background:var(--paper);border:1px solid var(--form-line);border-radius:var(--radius);padding:8px 10px}textarea{width:100%;resize:vertical}input[type=number]{width:90px}input[type=color]{border:1px solid var(--form-line);border-radius:var(--radius);width:40px;height:26px;padding:1px;background:var(--paper);vertical-align:middle;margin-left:8px}.check{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;margin:10px 0 4px;cursor:pointer}.check input,.radio input{accent-color:var(--accent)}.label-preview{width:100%;max-width:420px;height:auto;border:1px dashed var(--line,#c8c4bb);background:#fff}.caption-row{display:flex;gap:8px;align-items:stretch}.caption-row input{flex:1 1;min-width:0}.caption-row select{flex:0 0 auto}.param-cols{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;margin-top:14px}@media (max-width:767px){.param-cols{grid-template-columns:1fr}}fieldset{border:1px solid var(--form-line);border-radius:var(--radius);background:var(--form);padding:12px 14px 14px;margin:0;min-width:0}legend{font-family:var(--font-display),sans-serif;text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:700;padding:0 8px;background:var(--ink);color:var(--paper);border-radius:3px}.param{margin-top:10px}.radio-row{display:flex;flex-wrap:wrap;gap:4px 14px}.radio{display:inline-flex;align-items:center;gap:5px;font-size:14px;cursor:pointer}.margin-grid{display:grid;grid-template-columns:repeat(4,minmax(70px,1fr));grid-gap:8px;gap:8px;margin-top:8px}.margin-grid input{width:100%}@media (max-width:480px){.margin-grid{grid-template-columns:repeat(2,1fr)}}.color-pick{display:flex;align-items:center;gap:8px}.swatch-box{width:22px;height:22px;flex:none;border:1px solid var(--ink);border-radius:3px}.swatch-transparent{background:linear-gradient(45deg,#ccc 25%,transparent 0,transparent 75%,#ccc 0) 0 0 /10px 10px,linear-gradient(45deg,#ccc 25%,#fff 0,#fff 75%,#ccc 0) 5px 5px /10px 10px}.dims{margin-top:12px;font-size:13.5px;color:var(--ink-soft);border-top:1px dashed var(--form-line);padding-top:10px}.dims b{color:var(--ink)}.cta-row{text-align:center;margin-top:18px}.cta{font-family:var(--font-display),sans-serif;text-transform:uppercase;letter-spacing:.08em;font-size:17px;font-weight:700;color:#fff;background:var(--accent);border:none;border-radius:var(--radius);padding:13px 54px;cursor:pointer;box-shadow:4px 4px 0 0 var(--ink);transition:transform .1s ease,box-shadow .1s ease}.cta:hover{background:var(--accent-dark)}.cta:active{transform:translate(2px,2px);box-shadow:1px 1px 0 0 var(--ink)}.scanner-video{position:relative;background:var(--ink);border-radius:var(--radius);min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--paper);text-align:center;padding:16px;overflow:hidden}.scanner-video video{display:none;max-width:100%;border-radius:var(--radius)}.scanner-video.live video{display:block}.scanner-video.live p{display:none}.scanner-overlay{position:absolute;inset:14px;pointer-events:none}.scanner-overlay:after,.scanner-overlay:before{content:"";position:absolute;width:26px;height:26px;border:3px solid rgba(250,250,247,.85)}.scanner-overlay:before{top:0;left:0;border-right:none;border-bottom:none}.scanner-overlay:after{bottom:0;right:0;border-left:none;border-top:none}.scanner-laser{position:absolute;left:5%;right:5%;top:8%;height:2px;border-radius:2px;background:var(--accent);box-shadow:0 0 8px 2px rgba(214,58,47,.55);animation:scanner-laser-sweep 2.2s ease-in-out infinite alternate}@keyframes scanner-laser-sweep{0%{top:8%}to{top:calc(92% - 2px)}}@media (prefers-reduced-motion:reduce){.scanner-laser{animation:none;top:50%}}.scanner-error{color:#ffb4ab;max-width:46ch}.scanner-hit .hint{color:rgba(250,250,247,.7)}.scanner-value{font-size:20px;letter-spacing:.1em;word-break:break-all;color:var(--paper)}.scanner-engine{display:block;text-align:center;margin-top:8px}.scanner-cta-row{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px}.scanner-upload-btn{font-family:var(--font-mono),monospace;font-weight:600;font-size:14px;color:var(--ink);background:var(--paper);border:1.5px solid var(--ink);border-radius:var(--radius);padding:12px 24px;cursor:pointer}.scanner-upload-btn:hover{background:var(--ink);color:var(--paper)}.scanner-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.scanner-actions{display:flex;justify-content:center;align-items:stretch;flex-wrap:wrap;gap:10px;margin-top:10px;text-align:center}.scanner-actions .hint{flex-basis:100%;margin:2px 0 0}.scanner-cta-link{display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;padding-left:28px;padding-right:28px}.scanner-cta-link:hover{color:#fff}@media (max-width:600px){.scanner .cta,.scanner .scanner-cta-link,.scanner .scanner-upload-btn{width:100%;padding-left:16px;padding-right:16px}}#checksum-input{width:100%;max-width:380px;display:block}.checksum-result{margin-top:16px;border-radius:var(--radius);padding:12px 16px;font-size:14.5px;border:1px solid var(--line)}.checksum-result p{margin:4px 0}.checksum-full{font-size:16px;letter-spacing:.08em}.checksum-computed,.checksum-valid{border-color:var(--ok);background:#eef7f1}.checksum-invalid{border-color:var(--accent);background:#fdf0ee}.checksum-error{background:var(--form)}.gen-results{margin-top:18px;display:grid;grid-gap:14px;gap:14px}.empty{color:var(--ink-soft);text-align:center}.result-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;text-align:center}.result-card canvas{max-width:100%;height:auto}.result-value{font-size:15px;letter-spacing:.15em;margin:10px 0 2px}.result-region{font-size:14px;color:var(--ink-soft);margin:2px 0}.result-region b{color:var(--ok)}.result-notes{font-size:12.5px;color:var(--accent-dark);margin:2px 0}.dl-row{display:flex;justify-content:center;gap:8px;margin-top:12px;flex-wrap:wrap}.dl-row button{font-family:var(--font-mono),monospace;font-weight:600;font-size:13.5px;color:var(--ink);background:var(--paper);border:1.5px solid var(--ink);border-radius:var(--radius);padding:9px 18px;cursor:pointer}.dl-row button:hover{background:var(--ink);color:var(--paper)}.batch-toolbar{margin-top:10px}.batch-results{gap:14px}.batch-warning{color:var(--accent-dark);background:var(--ad-bg);border:1px solid var(--ad-line);border-radius:var(--radius);padding:10px 14px;font-size:13.5px}.batch-summary{font-size:14.5px}.batch-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:10px;gap:10px}.batch-card{padding:12px}.batch-card canvas{max-width:100%;height:auto}.batch-card .result-value{font-size:11.5px;letter-spacing:.04em;word-break:break-all;margin:8px 0 0}.batch-card-error{border-color:var(--accent)}.batch-card-error .scanner-error{font-size:12px}.batch-more{text-align:center}.batch-export-error{text-align:center;margin-top:10px}.related,.see-also{margin-top:30px}.related h2,.see-also h2{font-size:15px;margin:0 0 8px}.related ul,.see-also ul{margin:0;padding-left:20px;font-size:14.5px}.related li,.see-also li{margin:4px 0}.see-also{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-top:0}.see-also .soon{color:var(--ink-soft)}.see-also .soon span{font-size:11px;border:1px solid var(--line);border-radius:99px;padding:0 7px;margin-left:4px}.seo-block{margin-top:44px;max-width:76ch}.seo-block h2{font-size:19px}.seo-block p{color:var(--ink-soft)}.table-wrap{overflow-x:auto;margin-top:22px}.prefix-table{border-collapse:collapse;width:100%;max-width:640px;background:var(--surface);font-size:14.5px}.prefix-table td,.prefix-table th{border:1px solid var(--line);padding:7px 12px;text-align:left}.prefix-table th{background:var(--ink);color:var(--paper);font-family:var(--font-display),sans-serif;text-transform:uppercase;letter-spacing:.06em;font-size:12.5px}.prefix-table .highlight{background:#fdf0ee;font-weight:600}.ad-slot{display:flex;align-items:center;justify-content:center;background:var(--ad-bg);border:1.5px dashed var(--ad-line);border-radius:var(--radius);color:#a09155;font-family:var(--font-mono),monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase}.ad-slot.ad-blocked{font-family:var(--font-body),sans-serif;text-transform:none;letter-spacing:normal;color:var(--ink-soft);padding:14px 16px}.ad-blocked-inner{display:flex;align-items:center;gap:14px;max-width:62ch}.ad-blocked-face{width:38px;height:38px;flex:none;color:var(--ad-line)}.ad-blocked-inner p{margin:0;font-size:13.5px;line-height:1.5}.ad-blocked-inner b{color:var(--ink)}.ad-rail-left.ad-blocked .ad-blocked-inner,.ad-rail-right.ad-blocked .ad-blocked-inner,.ad-sidebar.ad-blocked .ad-blocked-inner{flex-direction:column;text-align:center;gap:10px}.ad-rail-left.ad-blocked,.ad-rail-right.ad-blocked{padding:12px 10px}.ad-rail-left.ad-blocked .ad-blocked-inner p,.ad-rail-right.ad-blocked .ad-blocked-inner p{font-size:12px}.ad-leaderboard{min-height:90px;margin:22px 0 4px}.ad-in-content{min-height:120px;margin:30px 0 0}.ad-sidebar{min-height:250px;margin-top:16px}.ad-rail-left,.ad-rail-right{display:none}@media (min-width:1440px){.ad-rail-left,.ad-rail-right{display:flex;position:fixed;top:90px;width:140px;height:600px;z-index:10}.ad-rail-left{left:calc((100vw - 1100px) / 2 - 168px)}.ad-rail-right{right:calc((100vw - 1100px) / 2 - 168px)}}.site-footer{margin-top:60px;background:var(--ink);color:rgba(250,250,247,.75);border-top:3px solid var(--accent)}.footer-inner{max-width:1100px;margin:0 auto;padding:26px 16px 34px;font-size:13px}.footer-inner a{color:var(--paper)}.footer-links{margin:6px 0}.disclaimer{max-width:90ch}@media (prefers-reduced-motion:reduce){*{transition:none!important}}