@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer tokens{:root{--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--gutter:clamp(1rem, 4vw, 3rem);--text-xs:.75rem;--text-sm:.875rem;--text-base:clamp(1rem, .97rem + .15vw, 1.0625rem);--text-md:1.125rem;--text-lg:clamp(1.375rem, 1.2rem + .8vw, 1.875rem);--text-xl:clamp(2rem, 1.5rem + 2.2vw, 3rem);--text-h2:clamp(2rem, 1.4rem + 3vw, 3.5rem);--text-display:clamp(2.625rem, 1.6rem + 5vw, 5.25rem);--text-stat:clamp(2.375rem, 1.8rem + 2.5vw, 3.375rem);--text-readout:clamp(2.5rem, 1.7rem + 3.4vw, 4rem);--leading-display:.98;--leading-tight:1.1;--leading-snug:1.4;--leading-body:1.65;--tracking-display:-.035em;--tracking-tight:-.02em;--frame:70rem;--measure:38rem;--header-h:3.75rem;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-pill:999px;--rule-hair:1px;--control-h:2.75rem;--control-h-lg:3rem;--crop-size:10px;--crop-gap:4px;--accent-soft:color-mix(in srgb, var(--accent) 12%, transparent);--hatch:color-mix(in srgb, var(--ink) 7%, transparent);--grid-line:color-mix(in srgb, var(--ink) 8%, transparent);--crop-color:color-mix(in srgb, var(--ink) 42%, transparent);--glow:color-mix(in srgb, var(--accent) 16%, transparent);--paper:#fff;--shadow-overlay:0 12px 32px #00000038;--tap-pad:.2rem;--dur-fast:.12s;--dur-mid:.2s;--ease:cubic-bezier(.2, 0, 0, 1)}@media (pointer:coarse){:root{--tap-pad:.6rem}}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur-mid:0s}}:root{--bg:light-dark(#f6f4f1,#1b1918);--surface:light-dark(#fff,#232120);--raised:light-dark(#eeeae5,#2d2a28);--ink:light-dark(#1b1918,#f4f1ee);--muted:light-dark(#5f5853,#b4ada7);--dim:light-dark(#766e68,#8f8882);--line:light-dark(#ddd7d1,#393533);--line-strong:light-dark(#8e857e,#7a716c);--accent:light-dark(#c73a1c,#ff6f47);--accent-hover:light-dark(#a52f15,#ff8e6d);--accent-ink:light-dark(#fff,#1b0d08);--warn:light-dark(#8a5300,#e0a951);--font:"Geist Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}}@layer system{*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{color-scheme:light dark;text-size-adjust:100%}html[data-theme=light]{color-scheme:light}html[data-theme=dark]{color-scheme:dark}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);min-height:100vh;color:var(--ink);font-family:var(--font);font-size:var(--text-base);line-height:var(--leading-body);font-synthesis-weight:none;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;flex-direction:column;margin:0;display:flex}img,canvas{max-width:100%;height:auto}::selection{background:color-mix(in srgb, var(--accent) 28%, transparent)}a{color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}h1,h2,h3{color:var(--ink);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-wrap:balance}h1{font-size:var(--text-xl);margin:0 0 var(--space-3);font-weight:700}h2{font-size:var(--text-lg);margin:var(--space-7) 0 var(--space-3);font-weight:700}h3{font-size:var(--text-md);margin:var(--space-5) 0 var(--space-2);font-weight:600}:target,#tools{scroll-margin-top:calc(var(--header-h) + var(--space-4))}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}main,.site-header .inner,.site-footer .inner{width:min(var(--frame), 100% - 2rem);border-inline:var(--rule-hair) solid var(--line);margin-inline:auto}main{padding:var(--space-7) var(--gutter) var(--space-8);flex:1 0 auto}.band,.spec>section:not(.tool){margin-inline:calc(var(--gutter) * -1);padding:var(--space-8) var(--gutter);border-top:var(--rule-hair) solid var(--line)}.crop{position:relative}.crop:after{--reach:calc(var(--crop-gap) + var(--crop-size));content:"";inset:calc(var(--reach) * -1);pointer-events:none;background-image:linear-gradient(var(--crop-color), var(--crop-color)), linear-gradient(var(--crop-color), var(--crop-color)), linear-gradient(var(--crop-color), var(--crop-color)), linear-gradient(var(--crop-color), var(--crop-color)), linear-gradient(var(--crop-color), var(--crop-color)), linear-gradient(var(--crop-color), var(--crop-color)), linear-gradient(var(--crop-color), var(--crop-color)), linear-gradient(var(--crop-color), var(--crop-color));background-repeat:no-repeat;background-size:var(--crop-size) 1px, 1px var(--crop-size), var(--crop-size) 1px, 1px var(--crop-size), var(--crop-size) 1px, 1px var(--crop-size), var(--crop-size) 1px, 1px var(--crop-size);background-position:0 var(--reach), var(--reach) 0, 100% var(--reach), calc(100% - var(--reach)) 0, 0 calc(100% - var(--reach)), var(--reach) 100%, 100% calc(100% - var(--reach)), calc(100% - var(--reach)) 100%;position:absolute}.site-header{z-index:40;background:color-mix(in srgb, var(--bg) 86%, transparent);backdrop-filter:blur(14px);border-bottom:var(--rule-hair) solid var(--line);position:sticky;top:0}.site-header .inner{min-height:var(--header-h);align-items:stretch;display:flex}.logo{letter-spacing:-.02em;color:var(--ink);font-size:1.1875rem;font-weight:400;line-height:1;text-decoration:none}.logo b{color:var(--accent);font-weight:800}.site-header .logo{padding:0 var(--space-5);border-right:var(--rule-hair) solid var(--line);align-items:center;display:flex}.site-nav{padding:0 var(--space-2);border-right:var(--rule-hair) solid var(--line);align-items:center;gap:2px;display:flex}.site-nav a{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--muted);border-radius:var(--radius-sm);transition:color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);font-weight:500;text-decoration:none}.site-nav a:hover{color:var(--ink);background:var(--hatch)}.header-fill{background-image:repeating-linear-gradient(135deg, var(--hatch) 0 1px, transparent 1px 10px);flex:1}.header-actions{align-items:center;gap:var(--space-2);padding:0 var(--space-3);border-left:var(--rule-hair) solid var(--line);display:flex}.lang-switch,.theme-toggle{min-width:2.25rem;height:2.25rem;padding:0 var(--space-2);font-size:var(--text-xs);letter-spacing:.04em;color:var(--ink);border:var(--rule-hair) solid var(--line-strong);border-radius:var(--radius-md);background:0 0;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.lang-switch:hover,.theme-toggle:hover,.theme-toggle[aria-pressed]:hover{background:var(--hatch)}.theme-toggle[aria-pressed]{border-color:var(--line-strong);background:0 0}.theme-toggle svg{width:1.125rem;height:1.125rem;display:block}.theme-toggle .icon-sun{display:none}html[data-theme=dark] .theme-toggle .icon-sun{display:block}html[data-theme=dark] .theme-toggle .icon-moon{display:none}@media (prefers-color-scheme:dark){html:not([data-theme=light]) .theme-toggle .icon-sun{display:block}html:not([data-theme=light]) .theme-toggle .icon-moon{display:none}}.site-footer{font-size:var(--text-sm);color:var(--muted);border-top:var(--rule-hair) solid var(--line)}.footer-grid{background:var(--line);grid-template-columns:1fr;gap:1px;display:grid}.footer-grid>*{padding:var(--space-6) var(--gutter);background:var(--bg)}.footer-brand .logo{padding-block:var(--tap-pad);display:inline-block}.footer-brand p{max-width:34ch;margin:var(--space-3) 0 0}.footer-title{margin:0 0 var(--space-3);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);font-weight:600}.site-footer ul{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.site-footer ul a{padding-block:var(--tap-pad);color:var(--muted);text-decoration:none;display:inline-block}.site-footer ul a:hover{color:var(--ink)}@media (width>=48rem){.footer-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr)}}.hero{isolation:isolate;margin:calc(var(--space-7) * -1) calc(var(--gutter) * -1) 0;padding:clamp(4rem, 10vw, 8rem) var(--gutter) clamp(3.5rem, 7vw, 5.5rem);text-align:center;position:relative;overflow:hidden}.hero:before,.hero:after{content:"";z-index:-1;pointer-events:none;position:absolute;inset:0}.hero:before{background-image:linear-gradient(to right, var(--grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);background-position:50% 0;background-size:56px 56px;mask-image:radial-gradient(62% 72% at 50% 42%,#000 18%,#0000 74%)}.hero:after{background:radial-gradient(50% 42% at 50% 0, var(--glow), transparent 70%)}.hero h1{max-width:20ch;font-size:var(--text-h2);font-weight:700;line-height:var(--leading-display);letter-spacing:var(--tracking-display);margin:0 auto}.hero .display{max-width:none;font-size:var(--text-display)}.display .line{display:block}.display .dim{color:var(--dim)}.hero>p,.hero .lede{max-width:36rem;margin:var(--space-5) auto 0;color:var(--muted);font-size:clamp(1rem,.92rem + .45vw,1.1875rem);line-height:1.55}.checks{margin:var(--space-5) 0 0;flex-wrap:wrap;justify-content:center;padding:0;list-style:none;display:flex}.checks li{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--muted);padding:.375rem 1.125rem;font-weight:500;display:inline-flex;position:relative}.checks li+li:before{content:"";background:var(--line-strong);width:1px;height:1rem;position:absolute;top:50%;left:0;translate:0 -50%}.checks svg{width:1rem;height:1rem;color:var(--accent)}.actions{justify-content:center;gap:var(--space-3);margin-top:var(--space-7);flex-wrap:wrap;display:flex}.section-head{max-width:46rem;margin:0 auto var(--space-7);text-align:center}.kicker{font-size:var(--text-sm);color:var(--accent);align-items:center;gap:.875rem;margin:0;font-weight:500;display:inline-flex}.kicker:before,.kicker:after{content:"";opacity:.7;background:currentColor;width:1.75rem;height:1px}.section-head h2{margin:var(--space-4) 0 0;font-size:var(--text-h2);letter-spacing:-.03em;line-height:1.02}.section-head>p:not(.kicker){max-width:36rem;margin:var(--space-4) auto 0;color:var(--muted)}.cells,.tool-grid,.guide-list,.steps{gap:1px;margin:0;padding:1px;list-style:none;display:grid}.cells>*,.tool-grid>li,.guide-list>li,.steps>li{background:var(--surface);box-shadow:0 0 0 1px var(--line);position:relative}.cells--3{grid-template-columns:minmax(0,1fr)}.cells--4{grid-template-columns:repeat(2,minmax(0,1fr))}@media (width>=48rem){.cells--3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=56rem){.cells--4{grid-template-columns:repeat(4,minmax(0,1fr))}}.cells>.cell--accent{background:var(--accent)}.cells>.cell--ink{background:var(--ink)}.cells>.cell--raised{background:var(--raised)}.cells>.cell--hatch{background-image:repeating-linear-gradient(135deg, var(--hatch) 0 1px, transparent 1px 10px)}.cells>.cell--accent :is(b,span,h3,p){color:var(--accent-ink)}.cells>.cell--ink :is(b,span,h3,p){color:var(--bg)}.stat{justify-content:center;align-items:center;gap:var(--space-3);min-height:10rem;padding:var(--space-6) var(--space-4);text-align:center;flex-direction:column;display:flex}.stat b{font-size:var(--text-stat);letter-spacing:-.045em;color:var(--ink);font-weight:700;line-height:1}.stat span{font-size:var(--text-sm);color:var(--muted);font-weight:500}.feature{gap:var(--space-3);padding:var(--space-6) var(--space-5);flex-direction:column;display:flex}.feature h3{margin:var(--space-3) 0 0;letter-spacing:-.015em;font-size:1.25rem}.feature p{color:var(--muted);margin:0;font-size:.9375rem;line-height:1.6}.num,.steps>li:before{width:1.75rem;height:1.75rem;font-size:var(--text-xs);letter-spacing:0;color:var(--bg);background:var(--ink);border-radius:var(--radius-sm);place-items:center;font-weight:600;display:grid}.tool-search{max-width:34rem;margin:0 auto var(--space-7);position:relative}.tool-search svg{width:1.125rem;height:1.125rem;color:var(--muted);pointer-events:none;position:absolute;top:50%;left:.9rem;translate:0 -50%}.tool-search input[type=search]{width:100%;height:3.25rem;padding:0 3.25rem 0 2.75rem}.tool-search kbd{font:inherit;font-size:var(--text-xs);color:var(--muted);background:var(--raised);border:var(--rule-hair) solid var(--line-strong);border-radius:var(--radius-sm);padding:.125rem .5rem;font-weight:600;position:absolute;top:50%;right:.75rem;translate:0 -50%}.tool-search-empty{text-align:center;color:var(--muted);margin:0}@media (pointer:coarse){.tool-search kbd{display:none}}.tool-group+.tool-group{margin-top:var(--space-7)}.cat-head{align-items:center;gap:var(--space-3);margin:0 0 var(--space-4);font-size:var(--text-md);letter-spacing:-.01em;display:flex}.cat-head .count{font-size:var(--text-xs);color:var(--muted);border:var(--rule-hair) solid var(--line);border-radius:var(--radius-pill);padding:.0625rem .5rem;font-weight:600}.tool-grid,.guide-list{grid-template-columns:repeat(auto-fill,minmax(min(15rem,100%),1fr))}.tool-grid>li,.guide-list>li{display:grid}.tool-grid a,.guide-list a{gap:var(--space-1);padding:var(--space-5);color:var(--ink);transition:background-color var(--dur-mid) var(--ease);flex-direction:column;text-decoration:none;display:flex}.tool-grid a:hover,.guide-list a:hover{background:var(--raised)}.tool-grid strong,.guide-list strong{font-size:var(--text-base);font-weight:600;line-height:var(--leading-snug);letter-spacing:-.01em}.tool-grid a>span:not(.tool-icon),.guide-list a>span:not(.tool-icon){font-size:var(--text-sm);color:var(--muted);line-height:1.5}.tool-icon{width:2.25rem;height:2.25rem;margin-bottom:var(--space-3);color:var(--accent);background:var(--raised);border:var(--rule-hair) solid var(--line);border-radius:var(--radius-md);transition:background-color var(--dur-mid) var(--ease), color var(--dur-mid) var(--ease), border-color var(--dur-mid) var(--ease);flex:none;place-items:center;display:grid}.tool-icon svg{stroke-width:1.75px;width:1.25rem;height:1.25rem}a:hover>.tool-icon,.dropzone:hover .tool-icon,.dropzone.dragover .tool-icon{color:var(--accent-ink);background:var(--accent);border-color:#0000}.spec>h1{letter-spacing:-.03em;max-width:22ch}.lede{max-width:var(--measure);margin:0 0 var(--space-7);font-size:var(--text-md);line-height:var(--leading-snug);color:var(--muted)}.tool{margin:0 0 var(--space-7);padding:var(--space-4);background:var(--surface);border:var(--rule-hair) solid var(--line)}.dropzone{justify-content:center;align-items:center;gap:var(--space-1);min-height:14rem;padding:var(--space-6) var(--space-4);text-align:center;cursor:pointer;background-color:var(--bg);border:var(--rule-hair) solid var(--line);transition:border-color var(--dur-mid) var(--ease), background-color var(--dur-mid) var(--ease);flex-direction:column;display:flex}.dropzone:hover,.dropzone:focus-visible,.dropzone.dragover{background-color:var(--accent-soft);background-image:repeating-linear-gradient(135deg, var(--hatch) 0 1px, transparent 1px 10px);border-color:var(--accent);outline:none}.dropzone .tool-icon{width:3rem;height:3rem}.dropzone .tool-icon svg{width:1.5rem;height:1.5rem}.dropzone strong{font-size:var(--text-md);font-weight:600}.dropzone>span:not(.tool-icon){max-width:28rem;font-size:var(--text-sm);color:var(--muted)}.tool:has(>.tool-body:not([hidden])) .dropzone{gap:var(--space-3);min-height:0;padding:var(--space-3) var(--space-4);flex-direction:row}.tool:has(>.tool-body:not([hidden])) .dropzone .tool-icon{width:2.25rem;height:2.25rem;margin-bottom:0}.tool:has(>.tool-body:not([hidden])) .dropzone .tool-icon svg{width:1.25rem;height:1.25rem}.tool:has(>.tool-body:not([hidden])) .dropzone strong{font-size:var(--text-base)}.tool:has(>.tool-body:not([hidden])) .dropzone>span:not(.tool-icon){display:none}.privacy-note{align-items:center;gap:var(--space-2);margin:var(--space-3) 0 0;font-size:var(--text-sm);color:var(--muted);display:flex}.privacy-note:before{content:"";background:var(--accent);border-radius:50%;flex:none;width:.5rem;height:.5rem}.tool-body{margin-top:var(--space-4)}.tool-controls{align-items:end;gap:var(--space-3) var(--space-5);padding-bottom:var(--space-4);border-bottom:var(--rule-hair) solid var(--line);flex-wrap:wrap;display:flex}.tool-controls:empty{display:none}.field{gap:var(--space-1);font-size:var(--text-sm);color:var(--muted);flex-direction:column;font-weight:500;display:flex}.field-inline{align-items:center;gap:var(--space-2);flex-direction:row}input[type=number],input[type=text],input[type=search],input[type=password],select{height:var(--control-h);padding:0 var(--space-3);font:inherit;font-size:var(--text-base);color:var(--ink);background:var(--bg);border:var(--rule-hair) solid var(--line-strong);border-radius:var(--radius-md);transition:border-color var(--dur-fast) var(--ease);font-weight:400}input[type=number]:focus,input[type=text]:focus,input[type=search]:focus,input[type=password]:focus,select:focus{border-color:var(--accent)}input[type=color]{width:3rem;height:var(--control-h);background:var(--bg);border:var(--rule-hair) solid var(--line-strong);border-radius:var(--radius-md);padding:2px}input[type=range],input[type=checkbox],input[type=radio]{accent-color:var(--accent)}input[type=range]{width:11rem}button,.btn{justify-content:center;align-items:center;gap:var(--space-2);height:var(--control-h);padding:0 var(--space-4);font:inherit;font-size:var(--text-sm);white-space:nowrap;color:var(--ink);background:var(--surface);border:var(--rule-hair) solid var(--line-strong);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);font-weight:600;text-decoration:none;display:inline-flex}button:hover,.btn:hover{background:var(--raised)}button.primary,.btn-primary{color:var(--accent-ink);background:var(--accent);border-color:#0000;box-shadow:inset 0 1px #ffffff29}button.primary:hover,.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px)}button:disabled,button:disabled:hover{opacity:.45;cursor:not-allowed;transform:none}button.primary:disabled:hover{background:var(--accent)}button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}.btn-lg{height:var(--control-h-lg);padding:0 1.375rem}.btn svg{width:1rem;height:1rem;transition:transform var(--dur-fast) var(--ease)}.btn-primary:hover svg:last-child{transform:translate(3px)}.tool-status{margin:var(--space-4) 0 0;font-size:var(--text-sm);color:var(--muted)}.tool-hint{font-size:var(--text-sm);color:var(--muted)}.tool-actions{gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.tool-canvas-wrap{margin-top:var(--space-4);background:var(--bg);border:var(--rule-hair) solid var(--line);overflow:auto}.tool-output{margin-top:var(--space-5)}.results{flex-direction:column;display:flex}.result{align-items:center;gap:var(--space-4);padding:var(--space-4) 0;border-bottom:var(--rule-hair) solid var(--line);display:flex}.result:first-child{border-top:var(--rule-hair) solid var(--line)}.tool-controls:not(:empty)~.tool-output>.results:first-child>.result:first-child{border-top:0}.result img{border:var(--rule-hair) solid var(--line);border-radius:var(--radius-sm);flex:none}.result .meta{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.result .name{font-size:var(--text-sm);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.result .sizes{align-items:baseline;gap:var(--space-1);font-size:var(--text-sm);line-height:var(--leading-tight);color:var(--muted);flex-direction:column;display:flex}.result .sizes .saving,.result .sizes .growth{font-size:var(--text-readout);letter-spacing:-.04em;order:-1;font-weight:700;line-height:.95}.result .sizes .saving{color:var(--accent)}.result .sizes .growth{color:var(--warn)}.result button{flex:none}.spec{counter-reset:spec-section}.spec>section>h2{margin:0 0 var(--space-5)}.spec>section>h2:before{counter-increment:spec-section;content:counter(spec-section, decimal-leading-zero);margin-bottom:var(--space-2);font-size:var(--text-sm);letter-spacing:0;color:var(--accent);font-weight:600;display:block}.steps{counter-reset:step;grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr))}.steps>li{counter-increment:step;padding:var(--space-5)}.steps>li:before{content:counter(step, decimal-leading-zero);margin-bottom:var(--space-4)}.faq details{background:var(--surface);border:var(--rule-hair) solid var(--line);border-top-width:0}.faq details:first-of-type{border-top-width:1px}.faq summary{justify-content:space-between;align-items:center;gap:var(--space-4);letter-spacing:-.01em;cursor:pointer;transition:background-color var(--dur-fast) var(--ease);padding:1.125rem 1.25rem;font-size:1.0625rem;font-weight:600;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--muted);transition:transform var(--dur-mid) var(--ease), color var(--dur-mid) var(--ease);flex:none;font-size:1.5rem;font-weight:300;line-height:1}.faq summary:hover{background:var(--raised)}.faq details[open] summary:after{color:var(--accent);transform:rotate(45deg)}.faq details p{max-width:var(--measure);color:var(--muted);margin:0;padding:0 1.25rem 1.25rem}.related ul{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.related a{min-height:2.5rem;padding:0 var(--space-4);font-size:var(--text-sm);color:var(--ink);background:var(--surface);border:var(--rule-hair) solid var(--line-strong);border-radius:var(--radius-pill);transition:border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.related a:hover{color:var(--accent);border-color:var(--accent)}.more{margin:var(--space-5) 0 0}.more a{padding-block:var(--tap-pad);font-weight:500;display:inline-block}.content-section>p,.content-section>ul{max-width:var(--measure)}.content-section p{margin:0 0 var(--space-4)}.content-section ul{margin:0 0 var(--space-4);padding-left:var(--space-5)}.content-section li{margin-bottom:var(--space-2)}.notes>p{max-width:var(--measure);color:var(--muted)}.prose{max-width:var(--measure)}.content-section.prose,.notes.prose{max-width:none}.prose p,.prose li{color:var(--muted)}.prose h1,.prose h2,.prose h3,.prose strong{color:var(--ink)}.prose li{margin-bottom:var(--space-2)}.byline{margin-bottom:var(--space-5);padding-bottom:var(--space-4);font-size:var(--text-sm);color:var(--muted);border-bottom:var(--rule-hair) solid var(--line)}.prose table{width:100%;margin:var(--space-5) 0;font-size:var(--text-sm);border-collapse:collapse;display:block;overflow-x:auto}.prose th,.prose td{padding:var(--space-2) var(--space-3) var(--space-2) 0;text-align:left;vertical-align:top;border-bottom:var(--rule-hair) solid var(--line)}.prose th{color:var(--ink);white-space:nowrap;border-bottom-color:var(--line-strong);font-weight:600}.prose pre{padding:var(--space-3);font-size:var(--text-sm);background:var(--surface);border:var(--rule-hair) solid var(--line);border-radius:var(--radius-md);overflow-x:auto}.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.prose blockquote{margin:var(--space-5) 0;padding-left:var(--space-4);color:var(--muted);border-left:2px solid var(--accent)}.article{max-width:var(--measure)}.article .dek{font-size:var(--text-md);line-height:var(--leading-snug);color:var(--muted)}.article p,.article li{color:var(--muted)}.article li{margin-bottom:var(--space-2)}.article .meta{margin-bottom:var(--space-5);padding-bottom:var(--space-4);font-size:var(--text-sm);color:var(--muted);border-bottom:var(--rule-hair) solid var(--line)}.ad-slot{min-height:280px;margin:var(--space-7) 0;font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background-image:repeating-linear-gradient(135deg, var(--hatch) 0 1px, transparent 1px 10px);border:var(--rule-hair) solid var(--line);justify-content:center;align-items:center;font-weight:600;display:flex}.lang-suggest{bottom:var(--space-4);z-index:50;align-items:center;gap:var(--space-4);max-width:calc(100vw - var(--space-6));padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--ink);background:var(--surface);border:var(--rule-hair) solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);display:flex;position:fixed;left:50%;transform:translate(-50%)}.lang-suggest-cta{padding-block:var(--tap-pad);color:var(--accent);white-space:nowrap;border-bottom:var(--rule-hair) solid var(--accent);font-weight:600;text-decoration:none;display:inline-block}.lang-suggest-close{min-width:2.75rem;height:auto;min-height:2.75rem;margin:calc(var(--space-2) * -1) calc(var(--space-2) * -1) calc(var(--space-2) * -1) 0;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;font-size:1.25rem;display:flex}.lang-suggest-close:hover{color:var(--ink);background:0 0}@media (width<=30rem){.lang-suggest{right:var(--space-2);left:var(--space-2);flex-wrap:wrap;max-width:none;transform:none}.lang-suggest>span{flex:100%}.lang-suggest-cta{text-align:center;flex:auto}}@media (width<=40rem){main,.site-header .inner,.site-footer .inner{border-inline:0;width:100%}main{padding-top:var(--space-6)}.hero{margin-top:calc(var(--space-6) * -1)}.site-header{position:static}.site-header .inner{flex-wrap:wrap}.site-header .logo{min-height:3.25rem;padding:0 var(--gutter)}.site-nav{padding:var(--space-1) calc(var(--gutter) - var(--space-3));border-top:var(--rule-hair) solid var(--line);border-right:0;flex-basis:100%;order:3}.checks li+li:before{display:none}.tool{padding:var(--space-3)}.dropzone{min-height:11rem}.result{flex-wrap:wrap}}}@layer site{.page-grid{grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.75rem;margin:1rem 0;display:grid}.page-cell{background:var(--surface);border:var(--rule-hair) solid var(--line);border-radius:var(--radius-sm);text-align:center;padding:.4rem;position:relative}.page-cell .page-thumb canvas{border:var(--rule-hair) solid var(--line);background:var(--paper);max-width:100%;height:auto;margin:0 auto;display:block}.page-cell .page-num{background:var(--surface);border:var(--rule-hair) solid var(--line);color:var(--muted);border-radius:4px;padding:0 .35rem;font-size:.7rem;position:absolute;top:.55rem;left:.55rem}.page-cell-actions{justify-content:center;gap:.35rem;margin-top:.4rem;display:flex}.page-cell-actions button{min-width:2rem;height:2rem;padding:0 .4rem}.page-cell.dragging{opacity:.4}.page-cell[draggable=true]{cursor:grab}.page-cell.selectable{cursor:pointer}.page-cell.selected{border-color:var(--accent);background:var(--accent-soft)}.page-cell.deleted .page-thumb{opacity:.35}.page-cell.deleted:after{content:"✕";color:var(--warn);place-items:center;font-size:2rem;display:grid;position:absolute;inset:0}.file-list{margin:0;padding:0;list-style:none}.file-list .drag-handle{cursor:grab;color:var(--muted)}.file-list button{flex:none;min-width:2rem;padding:0 .4rem}.text-preview{resize:vertical;background:var(--surface);width:100%;min-height:18rem;color:var(--ink);border:var(--rule-hair) solid var(--line);border-radius:var(--radius-sm);font:inherit;padding:.75rem;font-size:.8rem;line-height:1.5}.sign-tabs{gap:.5rem;margin-bottom:.5rem;display:flex}.sign-pad{background:var(--paper);border:2px dashed var(--line);border-radius:var(--radius-sm);touch-action:none;cursor:crosshair;max-width:100%}.sign-nav{color:var(--muted);align-items:center;gap:.75rem;margin-bottom:.5rem;font-size:.85rem;display:flex}.sign-preview{position:relative;overflow:hidden}.sign-preview canvas{max-width:100%;height:auto}.sign-overlay{border:2px dashed var(--accent);cursor:move;touch-action:none;position:absolute}.sign-overlay img{pointer-events:none;width:100%;height:100%;display:block}.sign-handle{background:var(--accent);cursor:nwse-resize;border-radius:50%;width:14px;height:14px;position:absolute;bottom:-7px;right:-7px}.form-fields{gap:.6rem;margin:1rem 0;display:grid}.form-fields textarea{min-height:4rem;font:inherit;background:var(--surface);color:var(--ink);border:var(--rule-hair) solid var(--line);border-radius:var(--radius-sm);padding:.4rem .6rem;font-size:.85rem}.html-preview{background:var(--paper);border:var(--rule-hair) solid var(--line);border-radius:var(--radius-sm);width:100%;height:24rem}}
