@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/Geist-Variable.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/JetBrainsMono-Variable.woff2) format("woff2")}:root{color-scheme:light;--brand-700: #005136;--brand-600: #006c49;--brand-500: #0a8159;--brand-100: #cdeede;--brand-50: #e6f3ec;--on-brand: #ffffff;--ink-900: #1b1b1b;--ink-700: #333333;--ink-600: #4c4c4c;--ink-500: #5f5f5f;--ink-400: #7e7e7e;--ink-300: #b0b0b0;--line-strong: #767676;--line: #dadada;--line-soft: #e8e8e8;--border-card: 1px solid rgba(17, 17, 17, .05);--border-list: 1px solid rgba(17, 17, 17, .08);--surface: #eef1f4;--surface-low: #e7ebf0;--surface-container: #e0e4e9;--card: #ffffff;--scrim: rgba(40, 40, 40, .45);--busy-600: #b87500;--busy-700: #8a5a00;--busy-50: #fbf0db;--busy-ink: #6b4600;--error-600: #ba1a1a;--error-700: #93000a;--error-100: #fbdcd9;--error-50: #fdecea;--on-error: #ffffff;--shadow-0: 0 1px 2px rgba(17, 17, 17, .06);--shadow-1: 0 1px 2px rgba(17, 17, 17, .04), 0 6px 16px -4px rgba(17, 17, 17, .06);--shadow-2: 0 4px 12px rgba(17, 17, 17, .06), 0 1px 2px rgba(17, 17, 17, .04);--shadow-3: 0 10px 30px rgba(17, 17, 17, .1), 0 3px 8px rgba(17, 17, 17, .06);--r-xs: 4px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px;--r-full: 9999px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--font-sans: "Geist", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Consolas, Menlo, monospace;--focus-ring: 0 0 0 1px var(--brand-600);--focus-ring-error: 0 0 0 1px var(--error-600);--motion-fast: .12s;--motion: .2s;--motion-slow: .32s;--ease: cubic-bezier(.2, .8, .2, 1);--paper: var(--card);--wash: var(--surface);--sunk: var(--surface-container);--ink: var(--ink-900);--ink-2: var(--ink-600);--ink-3: var(--ink-500);--brand: var(--brand-600);--brand-hover: var(--brand-700);--brand-tint: var(--brand-50);--ok: var(--brand-600);--ok-tint: var(--brand-50);--bad: var(--error-600);--bad-tint: var(--error-50);--warn-bg: var(--busy-50);--warn-ink: var(--busy-ink);--edge: var(--line-strong);--focus: var(--brand-600);--group: var(--ink-600);--fs-2xs: .75rem;--fs-xs: .8125rem;--fs-sm: .875rem;--fs-md: .9375rem;--fs-base: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: clamp(2rem, 1.25rem + 2.6vw, 2.75rem);--s1: var(--sp-1);--s2: var(--sp-2);--s3: var(--sp-3);--s4: var(--sp-4);--s5: var(--sp-6);--s6: var(--sp-8);--s7: var(--sp-12);--s8: var(--sp-16);--s9: 6rem;--target: 44px;--target-gap: 8px;--page: 1140px;--page-wide: 1440px;--read: 46rem;--gutter: clamp(1rem, 4vw, 2rem);--measure: 68ch;--measure-mid: 54ch;--measure-tight: 46ch;--measure-head: 24ch;--rhythm-label: var(--s2);--rhythm-title: var(--s3);--rhythm-block: var(--s5);--rhythm-head: var(--s6);--rhythm-section: clamp(var(--s6), 4vw, var(--s7));--radius-lg: var(--r-lg);--radius: var(--r-md);--radius-sm: var(--r-sm);--radius-xs: var(--r-xs);--sans: var(--font-sans);--mono: var(--font-mono);--shadow-sm: var(--shadow-0);--shadow: var(--shadow-1);--shadow-lg: var(--shadow-3);--step: var(--motion-fast);--step-2: var(--motion)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;interpolate-size:allow-keywords}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--fs-base);line-height:1.6;font-synthesis-weight:none;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}h1,h2,h3{margin:0;line-height:1.25}h1,.lede{text-wrap:balance}h1{font-size:var(--fs-2xl);font-weight:600;letter-spacing:-.022em;line-height:1.08}h2{font-size:var(--fs-xl);font-weight:600;letter-spacing:-.02em}h3{font-size:var(--fs-lg);font-weight:600;letter-spacing:-.01em}p,ul,ol,dl{margin:0}a{color:var(--brand);text-underline-offset:2px}a:hover{color:var(--brand-hover)}code,kbd{font-family:var(--mono);font-size:.875em}kbd{border:1px solid var(--edge);border-radius:var(--radius-xs);padding:1px var(--s1);white-space:nowrap;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-xs)}.icon{width:1.25em;height:1.25em;flex:none;display:block;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.icon-sprite{display:none}.container,.reading{width:100%;margin-inline:auto;padding-inline:max(var(--gutter),env(safe-area-inset-left),env(safe-area-inset-right))}.container{max-width:var(--page)}.container.wide{max-width:var(--page-wide)}.reading{max-width:calc(var(--read) + var(--gutter) * 2)}.measure{max-width:var(--measure)}main>*+*{margin-top:var(--rhythm-head)}.section{margin-top:var(--rhythm-section)}.stack>*+*{margin-top:var(--gap, var(--rhythm-block))}.stack-tight{--gap: var(--s2)}h2+.chips{margin-top:var(--rhythm-block)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:absolute;inset-inline-start:var(--s2);inset-block-start:var(--s2);z-index:60;background:var(--brand);color:var(--on-brand);display:inline-flex;align-items:center;min-height:var(--target);padding:var(--s2) var(--s4);border-radius:var(--radius-sm);text-decoration:none;transform:translateY(calc(-100% - var(--s5)));transition:transform var(--step-2) var(--ease)}.skip-link:focus{transform:none;color:var(--on-brand)}main{flex:1 0 auto;padding-block:clamp(var(--s5),3vw,var(--s6))}.lede{font-size:var(--fs-lg);color:var(--ink-2);letter-spacing:-.01em;line-height:1.5}.page-head{display:grid;gap:var(--rhythm-title);justify-items:start;text-align:start;max-width:var(--read);margin-inline:auto}.page-head h1{max-width:var(--measure-head)}.page-head .lede{max-width:var(--measure-mid)}.page-head+*{margin-top:var(--rhythm-head)}.page-head .promise{display:inline-flex;align-items:flex-start;gap:var(--s2);color:var(--ink-3);font-size:var(--fs-md);margin-top:var(--s1);text-align:start}.page-head .promise .icon{color:var(--ink-400);width:18px;height:18px;margin-top:.15em}.prose{text-align:start}.prose>*+*{margin-top:var(--rhythm-title)}.prose>*+h2{margin-top:var(--s7)}.prose>*+h3{margin-top:var(--rhythm-block)}.prose p,.prose ul,.prose ol{color:var(--ink-2)}.prose li+li{margin-top:var(--s1)}.prose ul,.prose ol{padding-inline-start:var(--s5)}.prose strong{color:var(--ink);font-weight:600}ol.steps{padding-inline-start:var(--s5)}ol.steps li+li{margin-top:var(--s2)}.group-head{margin:0;font-size:var(--fs-xs);font-weight:600;letter-spacing:.02em;color:var(--ink-3)}.site-head{position:sticky;inset-block-start:0;z-index:40;background:var(--paper);border-bottom:1px solid var(--line)}.nav{position:relative;z-index:1;display:flex;align-items:center;gap:var(--s4);max-width:var(--page-wide);margin-inline:auto;padding-inline:max(var(--gutter),env(safe-area-inset-left),env(safe-area-inset-right));padding-block:var(--s2)}.brand{display:inline-flex;align-items:center;gap:var(--s2);min-height:var(--target);font-weight:600;font-size:var(--fs-lg);letter-spacing:-.02em;text-decoration:none;color:var(--ink);flex:none}.brand:hover{color:var(--ink)}.brand-mark{width:28px;height:28px;flex:none;display:block}.nav-links{display:flex;align-items:center;gap:var(--s1);list-style:none;margin:0 0 0 auto;padding:0;flex:none;white-space:nowrap}.nav-item{position:relative}.nav-link,.nav-trigger{font:inherit;font-size:var(--fs-md);font-weight:500;color:var(--ink-2);text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;gap:var(--s1);min-height:var(--target);padding-inline:var(--s3);border:0;background:none;cursor:pointer;border-radius:var(--radius-sm);transition:color var(--step-2) var(--ease),background var(--step-2) var(--ease)}.nav-link:hover,.nav-trigger:hover{color:var(--ink);background:var(--wash)}.nav-link[aria-current=page],.nav-trigger.is-here{color:var(--ink);font-weight:600}.nav-trigger[aria-expanded=true]{color:var(--ink);background:var(--wash)}.nav-trigger .icon{width:1em;height:1em;color:var(--ink-3);transition:transform var(--step-2) var(--ease)}.nav-trigger[aria-expanded=true] .icon{transform:rotate(180deg)}.nav-panel{position:absolute;inset-block-start:calc(100% + var(--s2));inset-inline-start:0;z-index:50;width:22rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--s3);transform:translate(var(--shift, 0));animation:panel-in var(--step-2) var(--ease);white-space:normal}@keyframes panel-in{0%{opacity:0;transform:translate(var(--shift, 0),-4px)}to{opacity:1;transform:translate(var(--shift, 0))}}.panel-summary{font-size:var(--fs-sm);color:var(--ink-3);text-wrap:pretty;padding:var(--s1) var(--s3) var(--s2)}.panel-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.panel-all{display:flex;align-items:center;min-height:var(--target);margin-top:var(--s2);padding-inline:var(--s3);border-top:1px solid var(--line);font-size:var(--fs-sm);font-weight:600;text-decoration:none}.nav-panel-more{width:24rem;max-height:calc(100dvh - 6rem);overflow-y:auto}.more-group+.more-group{margin-top:var(--s3);border-top:1px solid var(--line);padding-top:var(--s2)}.more-head{font-size:var(--fs-xs);font-weight:600;letter-spacing:.02em;color:var(--ink-3);padding:var(--s1) var(--s3)}.rich{display:flex;gap:var(--s3);align-items:center;min-height:var(--target);padding:var(--s2) var(--s3);border-radius:var(--radius);text-decoration:none;color:var(--ink);transition:background var(--step) var(--ease)}.rich:hover,.rich:focus-visible{background:var(--wash);color:var(--ink)}.rich[aria-current=page]{background:var(--brand-tint)}.rich .tile{width:36px;height:36px}.rich .tile .icon{width:20px;height:20px}.rich-text{display:grid;gap:1px;min-width:0}.rich-text b{font-size:var(--fs-md);font-weight:600}.rich-text em{font-style:normal;font-size:var(--fs-sm);color:var(--ink-3);line-height:1.4}.pane-empty{color:var(--ink-3);font-size:var(--fs-md);padding-block:var(--s3)}.nav-find{position:relative;margin-bottom:var(--rhythm-block)}.nav-find>.icon{position:absolute;inset-inline-start:var(--s3);inset-block-start:50%;transform:translateY(-50%);color:var(--ink-3);width:18px;height:18px;pointer-events:none}.nav .nav-toggle{display:none;margin-inline-start:auto}.sheet{position:fixed;inset:0;z-index:60;background:var(--paper);display:flex;flex-direction:column;animation:sheet-in var(--step-2) var(--ease);padding-bottom:env(safe-area-inset-bottom)}@keyframes sheet-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.sheet-head{display:flex;align-items:center;gap:var(--s2);padding:var(--s2) max(var(--gutter),env(safe-area-inset-left),env(safe-area-inset-right));padding-top:max(var(--s2),env(safe-area-inset-top));border-bottom:1px solid var(--line);flex:none}#sheetClose{margin-inline-start:auto}.sheet-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:var(--s4) max(var(--gutter),env(safe-area-inset-left),env(safe-area-inset-right)) var(--s7)}.sheet-row{display:flex;align-items:center;gap:var(--s3);min-height:52px;padding-inline:var(--s1);font-size:var(--fs-base);font-weight:600;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);cursor:pointer;list-style:none}.sheet-row::-webkit-details-marker{display:none}.sheet-link:hover{color:var(--ink);background:var(--wash)}.sheet-link[aria-current=page]{color:var(--brand)}.sheet-plus{margin-inline-start:auto}.sheet-list{list-style:none;margin:0;padding:var(--s2) 0 var(--s3);display:grid;gap:2px;border-bottom:1px solid var(--line)}@media (max-width: 899px){.nav-links{display:none}.nav .nav-toggle{display:inline-flex}}@media (min-width: 900px){.sheet{display:none}}body.nav-locked{overflow:hidden}.site-foot{border-top:1px solid var(--line);margin-top:var(--rhythm-section);background:var(--wash);padding-block:var(--s7) var(--s6);padding-bottom:max(var(--s6),env(safe-area-inset-bottom));font-size:var(--fs-sm);color:var(--ink-3)}.foot-grid{display:grid;gap:var(--s6);grid-template-columns:minmax(0,1fr)}@media (min-width: 900px){.foot-grid{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}}.foot-brand{display:grid;gap:var(--s3);align-content:start;justify-items:start}.foot-promise{color:var(--ink-2);font-size:var(--fs-md);max-width:var(--measure-tight);margin:0}.foot-cols{display:grid;gap:var(--s5) var(--s7);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr))}@media (min-width: 900px){.foot-cols{grid-template-columns:repeat(3,minmax(0,1fr))}}.foot-head{font-size:var(--fs-xs);font-weight:600;letter-spacing:.02em;color:var(--ink-3);margin-bottom:var(--s1)}.foot-cols ul{list-style:none;margin:0;padding:0}.site-foot .foot-cols a{color:var(--ink-2);text-decoration:none;display:inline-flex;align-items:center;min-height:var(--target);min-width:var(--target);font-size:var(--fs-md)}.site-foot .foot-cols a:hover{color:var(--ink);text-decoration:underline}.btn{font:inherit;font-weight:600;font-size:var(--fs-base);border-radius:var(--radius-sm);padding:var(--s2) var(--s5);min-height:var(--target);border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);text-decoration:none;text-align:center;white-space:nowrap;transition:background var(--step) var(--ease),border-color var(--step) var(--ease),color var(--step) var(--ease)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--brand);color:var(--on-brand)}.btn.primary:hover:not(:disabled){background:var(--brand-hover);color:var(--on-brand)}.btn.ghost{background:var(--paper);color:var(--ink);border-color:var(--edge)}.btn.ghost:hover:not(:disabled){background:var(--wash);color:var(--ink)}.btn.quiet{background:none;color:var(--ink-2);padding-inline:var(--s3)}.btn.quiet:hover:not(:disabled){background:var(--wash);color:var(--ink)}.btn.small{padding:var(--s1) var(--s3);font-size:var(--fs-sm);min-height:var(--target);min-width:var(--target)}.btn.block{width:100%}.btn .icon{width:1.125em;height:1.125em}.btn-row{display:flex;flex-wrap:wrap;gap:var(--s3)}.icon-btn{font:inherit;cursor:pointer;background:var(--paper);color:var(--ink-2);border:1px solid var(--edge);border-radius:var(--radius-sm);min-height:var(--target);min-width:var(--target);display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);font-size:var(--fs-md);font-weight:500;padding-inline:var(--s3);transition:background var(--step-2) var(--ease),color var(--step-2) var(--ease)}.icon-btn:hover{background:var(--wash);color:var(--ink)}label{font-size:var(--fs-md);font-weight:500;color:var(--ink-2);display:block;margin-bottom:var(--rhythm-label)}input[type=text],input[type=number],input[type=password],input[type=search],select,textarea{font:inherit;width:100%;color:var(--ink);background:var(--paper);border:1px solid var(--edge);border-radius:var(--radius-sm);font-size:var(--fs-base);min-height:var(--target);padding:var(--s2) var(--s3);transition:border-color var(--step-2) var(--ease),box-shadow var(--step-2) var(--ease)}input::placeholder{color:var(--ink-3);font-style:italic}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--focus)}input[type=range]{width:100%;accent-color:var(--brand);min-height:var(--target)}.with-unit{position:relative;display:block}.with-unit input{padding-inline-end:var(--s7)}.with-unit .unit{position:absolute;inset-inline-end:var(--s3);inset-block-start:50%;transform:translateY(-50%);color:var(--ink-3);font-size:var(--fs-md);pointer-events:none}.field-top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3)}.field-top label{margin-bottom:0}.field-value{font-size:var(--fs-md);font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.field-top+input[type=range]{margin-top:var(--rhythm-label)}.nav-find input{padding-inline-start:var(--s7)}input[type=radio],input[type=checkbox]{accent-color:var(--brand);width:22px;height:22px;flex:none;margin:0}.field+.field{margin-top:var(--rhythm-block)}.options-fields .field+.field{margin-top:var(--s4)}.hint{font-size:var(--fs-xs);color:var(--ink-3);margin-top:var(--s2)}#status{min-height:1.5em;margin-top:var(--s2)}.hint.ok{color:var(--ok);font-weight:600}.hint.warn{color:var(--bad);font-weight:600}.hint.busy{color:var(--ink-2);font-weight:500}fieldset{border:0;padding:0;margin:0}legend{font-size:var(--fs-md);font-weight:500;padding:0;color:var(--ink-2);margin-bottom:var(--rhythm-label)}.choice{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-md);color:var(--ink);min-height:var(--target)}.choice label{margin:0;font-weight:400;color:var(--ink);font-size:var(--fs-md);display:flex;align-items:center;flex:1;min-height:var(--target);cursor:pointer}.segmented{display:flex;flex-wrap:wrap;gap:2px;padding:3px;background:var(--sunk);border-radius:var(--radius-sm)}.segmented input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.segmented label{flex:1 1 auto;margin:0;cursor:pointer;text-align:center;display:flex;align-items:center;justify-content:center;min-height:var(--target);padding-inline:var(--s3);border-radius:var(--radius-xs);font-size:var(--fs-md);font-weight:500;color:var(--ink-2);white-space:nowrap;transition:background var(--step) var(--ease),color var(--step) var(--ease)}.segmented label:hover{color:var(--ink)}.segmented input:checked+label{background:var(--paper);color:var(--ink);font-weight:600;box-shadow:var(--shadow-sm)}.segmented input:focus-visible+label{outline:2px solid var(--focus);outline-offset:1px}.position-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:1fr .9fr 1fr;gap:2px;width:11rem;aspect-ratio:11 / 14;padding:3px;background:var(--sunk);border-radius:var(--radius-sm)}.position-grid:before{content:"";grid-column:1 / -1;grid-row:2;background:var(--paper);border-radius:var(--radius-xs);background-image:linear-gradient(var(--line) 1px,transparent 1px);background-size:100% 11px;background-position:0 11px;background-repeat:repeat-y;background-clip:content-box;padding-inline:18%}.position-grid label:nth-of-type(-n+3){grid-row:1}.position-grid label:nth-last-of-type(-n+3){grid-row:3}.position-grid input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.position-grid label{margin:0;cursor:pointer;border-radius:var(--radius-xs);display:grid;place-items:center;background:var(--paper);transition:background var(--step) var(--ease)}.position-grid .spot{width:10px;height:3px;border-radius:2px;background:var(--ink-3)}.position-grid label:hover{background:var(--wash)}.position-grid input:checked+label{background:var(--brand-tint)}.position-grid input:checked+label .spot{background:var(--brand);height:4px;width:14px}.position-grid input:focus-visible+label{outline:2px solid var(--focus);outline-offset:1px}.panel{background:var(--wash);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(var(--s4),3vw,var(--s5))}.tool-grid{list-style:none;margin:0;padding:0;display:grid;gap:var(--s3);grid-template-columns:minmax(0,1fr);grid-auto-rows:1fr}@media (min-width: 560px){.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 900px){.tool-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1200px){.tool-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.tool-cell{display:grid;min-width:0}.tool-card{display:grid;align-content:start;gap:var(--s3);min-height:7.5rem;text-decoration:none;color:inherit;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s4);transition:border-color var(--step-2) var(--ease),background var(--step-2) var(--ease)}.tool-card:hover{border-color:var(--line-strong);color:inherit}.tool-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}.tool-card:hover .tile{background:var(--brand-tint);border-color:var(--brand-100);color:var(--brand)}.tool-card-text{display:grid;gap:var(--s1);min-width:0}.tool-card-text b{color:var(--ink);font-size:var(--fs-base);font-weight:600;letter-spacing:-.01em}.tool-card-text em{font-style:normal;font-size:var(--fs-sm);color:var(--ink-3);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.9em}.tool-card-cat{font-family:var(--mono);font-size:var(--fs-2xs);font-weight:500;letter-spacing:.04em;color:var(--ink-3);white-space:nowrap}.tile{width:40px;height:40px;border-radius:var(--radius-sm);flex:none;display:grid;place-items:center;background:color-mix(in srgb,var(--group, var(--brand)) 10%,var(--paper));border:1px solid color-mix(in srgb,var(--group, var(--brand)) 24%,var(--paper));color:var(--group, var(--brand));transition:background var(--step-2) var(--ease),border-color var(--step-2) var(--ease),color var(--step-2) var(--ease)}.tile .icon{width:22px;height:22px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s3) var(--s4);padding-bottom:var(--s4);margin-bottom:var(--s5);border-bottom:1px solid var(--line)}.filters{display:flex;flex-wrap:wrap;gap:2px;padding:3px;background:var(--sunk);border-radius:var(--radius-sm)}.filters.pending{visibility:hidden}.filter{font:inherit;font-size:var(--fs-md);font-weight:500;cursor:pointer;min-height:var(--target);padding-inline:var(--s4);border:1px solid transparent;border-radius:var(--radius-xs);background:none;color:var(--ink-2);transition:background var(--step) var(--ease),color var(--step) var(--ease)}.filter:hover{color:var(--ink)}.filter[aria-pressed=true]{background:var(--paper);border-color:var(--line);color:var(--ink);font-weight:600}.note{border-radius:var(--radius-sm);padding:var(--s3) var(--s4);font-size:var(--fs-md);border-inline-start:3px solid transparent}.note.warn{background:var(--warn-bg);color:var(--warn-ink);border-inline-start-color:var(--warn-ink)}.note.warn a{color:inherit}.note.info{background:var(--brand-tint);color:var(--ink);border-inline-start-color:var(--brand)}.work{display:grid;gap:var(--rhythm-block);align-items:start;max-width:60rem;margin-inline:auto}#stage{margin-top:var(--rhythm-block)}#stage .work{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:clamp(var(--s4),3vw,var(--s5))}.container.wide #stage .work{max-width:none}@media (min-width: 900px){.work.has-options{grid-template-columns:minmax(0,1fr) 21rem;gap:var(--s6)}}.container.wide .work{max-width:none}.work-main{min-width:0;display:grid;gap:var(--rhythm-block);align-content:start}.work-side{min-width:0}.work-bar{display:flex;align-items:center;gap:var(--s3);justify-content:space-between;flex-wrap:wrap}.work-bar .group-head{margin:0}.options-panel{background:var(--wash);border:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;border-bottom:0;padding:var(--s5) var(--s5) var(--s5)}.options-head{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--rhythm-block)}.options-head .group-head{margin:0}.options-close{margin-inline-start:auto}.runbar{display:grid;gap:var(--s3);background:var(--wash);border:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);padding:var(--s5);border-top:1px solid var(--line)}.work-side>.runbar:first-child{border-radius:var(--radius);border-top-width:1px}.work:not(.has-options) .work-side>.runbar:first-child{background:none;border:0;padding:0}.runbar .btn{width:100%}@media (min-width: 700px){.work:not(.has-options) .work-side{justify-self:end}.work:not(.has-options) .runbar{justify-items:end}.work:not(.has-options) .runbar .btn{width:auto;min-width:13rem}.work:not(.has-options) .runbar #status{text-align:end}}@media (min-width: 700px){.options-open,.options-close{display:none}}@media (max-width: 699px){[data-readonly=false] .work-side{position:fixed;inset-inline:0;inset-block-end:0;z-index:30;background:var(--paper);border-top:1px solid var(--line);box-shadow:var(--shadow-lg)}[data-readonly=false] .runbar{display:flex;flex-wrap:wrap;align-items:center;border:0;border-radius:0;background:var(--paper);padding:var(--s3) max(var(--gutter),env(safe-area-inset-left));padding-bottom:max(var(--s3),env(safe-area-inset-bottom));gap:var(--s2) var(--s3)}[data-readonly=false] .runbar .btn{flex:1 1 0;width:auto;min-width:0}[data-readonly=false] .runbar #status{flex:1 0 100%;text-align:center;margin:0}[data-readonly=false] #stage{padding-bottom:var(--s9)}.options-panel{position:absolute;inset-inline:0;inset-block-end:100%;max-height:60dvh;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line);border-bottom:0;border-radius:var(--radius) var(--radius) 0 0;background:var(--paper);visibility:hidden;transform:translateY(100%);transition:transform var(--step-2) var(--ease),visibility var(--step-2)}.options-sheet-open .options-panel{visibility:visible;transform:none}}.tool-head+#tool{margin-top:var(--rhythm-block)}.intake{display:grid;justify-items:center;gap:var(--s4)}.upload-card{width:min(100%,var(--read));background:var(--wash);border:1px solid var(--line);border-radius:var(--radius-lg);padding:calc(var(--s6) + var(--s1)) calc(var(--s5) + var(--s1));text-align:center}.upload-icon{width:46px;height:46px;margin:0 auto var(--s4);display:grid;place-items:center;border-radius:var(--radius);background:color-mix(in srgb,var(--group, var(--brand)) 12%,var(--paper));color:var(--group, var(--brand))}.upload-icon .icon{width:24px;height:24px}.upload-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s3);max-width:28rem;margin-inline:auto}.upload-actions label{margin:0;flex:1 1 0;min-width:11rem}@media (pointer: coarse){#folderInput,#folderInput+label{display:none}}.upload-actions input:focus-visible+label,.work-bar input:focus-visible+label{outline:2px solid var(--focus);outline-offset:2px}.upload-hint{margin-top:var(--s4);color:var(--ink-2);font-size:var(--fs-md)}.upload-formats{margin-top:var(--s2);color:var(--ink-3);font-size:var(--fs-xs);font-family:var(--mono);letter-spacing:.02em}.upload-note{margin:var(--s2) auto 0;color:var(--ink-3);font-size:var(--fs-sm);line-height:1.5;max-width:var(--measure-tight)}.upload-error{margin-top:var(--s4);padding:var(--s2) var(--s3);background:var(--bad-tint);color:var(--bad);border-radius:var(--radius-sm);font-size:var(--fs-md);font-weight:500}.trust{list-style:none;margin:0;padding:0;width:min(100%,var(--read));display:flex;flex-wrap:wrap;justify-content:flex-start;gap:var(--s2) var(--s4)}.trust li{display:inline-flex;align-items:center;gap:var(--s1);font-size:var(--fs-sm);font-weight:500;color:var(--ink-2)}.trust .icon{width:16px;height:16px;color:var(--ink-400)}.drop-overlay{position:fixed;inset:0;z-index:70;pointer-events:none;display:grid;place-items:center;padding:var(--s5);background:color-mix(in srgb,var(--brand-tint) 88%,transparent);outline:3px dashed var(--brand);outline-offset:-12px;animation:overlay-in var(--step) var(--ease)}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.drop-overlay-card{display:grid;justify-items:center;gap:var(--s3);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--s6) var(--s7)}.drop-overlay-card .upload-icon{margin:0}.drop-overlay-card p{font-size:var(--fs-xl);font-weight:600;color:var(--ink);letter-spacing:-.02em}.drop-notice{position:fixed;z-index:70;inset-inline:var(--gutter);inset-block-end:max(var(--s5),env(safe-area-inset-bottom));margin-inline:auto;max-width:34rem;display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;justify-content:space-between;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--s3) var(--s4);font-size:var(--fs-md);color:var(--ink)}.drop-notice p{flex:1 1 16rem}.files{list-style:none;padding:0;margin:0;display:grid;gap:var(--s2)}.frow{display:grid;gap:var(--s2) var(--s3);align-items:center;grid-template-columns:auto auto minmax(0,1fr) auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--s3);transition:border-color var(--step) var(--ease),box-shadow var(--step) var(--ease)}.frow.no-grip{grid-template-columns:auto minmax(0,1fr) auto}@media (max-width: 559px){.frow{grid-template-columns:auto auto minmax(0,1fr)}.frow.no-grip{grid-template-columns:auto minmax(0,1fr)}.frow .factions{grid-column:1 / -1;justify-content:flex-start}}.frow .grip{cursor:grab;color:var(--ink-3);display:grid;place-items:center;width:var(--target);min-height:var(--target);flex:none;border:0;background:none;border-radius:var(--radius-xs)}.frow .grip:active{cursor:grabbing}.frow .grip .icon{width:20px;height:20px}.frow[draggable=true]:hover{border-color:var(--edge)}.frow.dragging{opacity:.4}.frow.drop-before{box-shadow:0 -3px 0 0 var(--brand)}.frow.drop-after{box-shadow:0 3px 0 0 var(--brand)}.fthumb{width:44px;height:58px;flex:none;border-radius:var(--radius-xs);background:var(--sunk);border:1px solid var(--line);display:grid;place-items:center;overflow:hidden}.fthumb canvas,.fthumb img{max-width:100%;max-height:100%;display:block}.ftext{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:2px}.frow .fname{font-weight:500;font-size:var(--fs-md);overflow-wrap:anywhere}.frow .fmeta{font-size:var(--fs-xs);color:var(--ink-3);overflow-wrap:anywhere}.frow .factions{display:flex;gap:var(--target-gap);flex-wrap:wrap;justify-content:flex-end}.frow.err{border-color:var(--bad);background:var(--bad-tint)}.frow.done{border-color:var(--ok)}.frow .fstate{font-size:var(--fs-xs);font-weight:600;display:inline-flex;align-items:center;gap:var(--s1)}.frow.done .fstate{color:var(--ok)}.frow.err .fstate{color:var(--bad)}.progress{height:6px;background:var(--sunk);border:1px solid var(--line);border-radius:99px;overflow:hidden;margin-top:var(--s4)}.progress>i{display:block;height:100%;width:0;background:var(--brand);transition:width var(--step-2) var(--ease)}.verifying{display:flex;align-items:center;gap:var(--s3);margin-top:var(--s4);padding:var(--s3) var(--s4);background:var(--brand-tint);border-radius:var(--radius-sm);color:var(--ink);font-size:var(--fs-md);font-weight:500}.verifying .spin{width:18px;height:18px;flex:none;border-radius:50%;border:2px solid var(--brand);border-top-color:transparent;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.checks{list-style:none;padding:0;margin:var(--s4) 0 0;display:grid;gap:var(--s2)}.check{display:flex;gap:var(--s3);align-items:flex-start;font-size:var(--fs-md);padding:var(--s3) var(--s4);border-radius:var(--radius-sm);border-inline-start:3px solid transparent}.check .icon{flex:none;width:20px;height:20px;margin-top:2px}.check.pass{background:var(--ok-tint);color:var(--ok);border-inline-start-color:var(--ok)}.check.fail{background:var(--bad-tint);color:var(--bad);border-inline-start-color:var(--bad)}.check .what{color:inherit}.result{margin-top:var(--s6)}.result.pending{min-height:13rem;display:grid;place-items:center}.result h2{display:flex;align-items:center;gap:var(--s3)}.result h2 .icon{width:28px;height:28px;flex:none}.result-actions{margin-top:var(--rhythm-block);display:flex;flex-wrap:wrap;gap:var(--s3)}.result-actions .btn{white-space:normal;overflow-wrap:anywhere;max-width:100%}.result.good h2 .icon{color:var(--ok)}.result.bad h2 .icon{color:var(--bad)}.thumbs{list-style:none;padding:0;margin:0;display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(min(100%,10.5rem),1fr))}.thumb{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);padding:var(--s2);text-align:center;content-visibility:auto;contain-intrinsic-size:auto 312px}.thumb .tbox{display:grid;place-items:center;height:190px}.thumb.selected{border-color:var(--brand);background:var(--brand-tint)}.thumb.removed{opacity:.45;border-style:dashed}.thumb canvas,.thumb img{max-width:100%;height:auto;display:block;margin-inline:auto;background:#fff;border-radius:2px}.thumb .tshell{width:134px;height:190px;display:block;background:var(--sunk);border-radius:var(--radius-xs)}.thumb .tlabel{font-size:var(--fs-xs);color:var(--ink-3);margin-top:var(--s1);display:block}.thumb .tctl{display:flex;gap:var(--target-gap);justify-content:center;margin-top:var(--s2);flex-wrap:wrap}.kv{display:grid;grid-template-columns:minmax(7rem,auto) 1fr;gap:var(--s2) var(--s4);font-size:var(--fs-md);margin:var(--rhythm-block) 0 0}.kv dt{color:var(--ink-3)}.kv dd{margin:0;overflow-wrap:anywhere}.scroll-x{max-width:100%;margin-block:var(--rhythm-block)}table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}th,td{text-align:start;padding:var(--s3);border-bottom:1px solid var(--line)}th{color:var(--ink-3);font-weight:600}.scroll-x{overflow-x:auto}.eyebrow{display:block;margin:0 0 var(--s2);border-top:1px solid var(--line);padding-top:var(--s3);font-family:var(--mono);font-size:var(--fs-2xs);font-weight:500;letter-spacing:.04em;color:var(--ink-3)}.faq-section h2{margin-bottom:var(--rhythm-title)}.faq{border-bottom:1px solid var(--line)}.faq-item{border-top:1px solid var(--line)}.faq-item>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--s4);min-height:var(--target);padding-block:var(--s4);font-weight:600;font-size:var(--fs-base);color:var(--ink);line-height:1.4}.faq-item>summary::-webkit-details-marker{display:none}.faq-item>summary:hover .faq-q{color:var(--brand)}.faq-item>summary:focus-visible{outline-offset:4px}.faq-icon,.sheet-plus{position:relative;width:20px;height:20px;flex:none;color:var(--ink-3);font-family:var(--mono);font-size:var(--fs-xl);font-weight:400}.faq-icon:before,.faq-icon:after,.sheet-plus:before,.sheet-plus:after{position:absolute;inset:0;display:grid;place-items:center;line-height:1;transition:transform var(--step-2) var(--ease),opacity var(--step-2) var(--ease)}.faq-icon:before,.sheet-plus:before{content:"+"}.faq-icon:after,.sheet-plus:after{content:"\2212";opacity:0;transform:rotate(-90deg)}.faq-item[open] .faq-icon:before,.sheet-group[open] .sheet-plus:before{opacity:0;transform:rotate(90deg)}.faq-item[open] .faq-icon:after,.sheet-group[open] .sheet-plus:after{opacity:1;transform:none}.faq-a{padding-bottom:var(--s5)}.faq-a p{color:var(--ink-2);max-width:var(--measure)}@supports (interpolate-size: allow-keywords) and selector(::details-content){.faq-item::details-content{block-size:0;overflow:clip;transition:block-size var(--step-2) var(--ease)}.faq-item[open]::details-content{block-size:auto}}.band{margin-top:var(--rhythm-section);padding-block:var(--rhythm-section);background:var(--wash);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.flow{list-style:none;margin:var(--s5) 0 0;padding:0;display:grid;gap:var(--s5);grid-template-columns:repeat(3,minmax(0,1fr))}.flow li{padding-top:var(--s3);border-top:2px solid var(--ink)}.flow .n{display:block;color:var(--ink-3);font-family:var(--mono);font-size:var(--fs-xs);font-weight:500;letter-spacing:.08em}.flow h3{margin:var(--s2) 0 var(--s1)}.flow p{margin:0;max-width:44ch;color:var(--ink-2);font-size:var(--fs-md)}@media (max-width: 700px){.flow{grid-template-columns:minmax(0,1fr);gap:var(--s4)}}.cta{display:flex;align-items:center;justify-content:space-between;gap:var(--s4) var(--s5);margin-top:var(--rhythm-section);padding-top:var(--s5);border-top:1px solid var(--line)}.cta p{margin:0;flex:1 1 auto;min-width:0;color:var(--ink-2)}.cta .btn{flex:none}.faq-section+.cta,.faq+.cta{border-top:0;padding-top:0}@media (max-width: 559px){.cta{flex-wrap:wrap}.cta .btn{width:100%}}.chips{display:flex;flex-wrap:wrap;gap:var(--s2)}.chip{display:inline-flex;align-items:center;gap:var(--s2);min-height:var(--target);padding-inline:var(--s4);border:1px solid var(--edge);border-radius:99px;background:var(--paper);color:var(--ink);text-decoration:none;font-size:var(--fs-md);font-weight:500;transition:background var(--step-2) var(--ease),border-color var(--step-2) var(--ease)}.chip:hover{background:var(--wash);border-color:var(--group, var(--brand));color:var(--ink)}.chip .icon{width:18px;height:18px;color:var(--group, var(--brand))}.hero h1{max-width:20ch}.hero .lede{max-width:var(--measure-mid)}.centered{text-align:center}.centered-row{justify-content:center}@media (max-height: 460px){.site-head{position:static}[data-readonly=false] .work-side{position:static;box-shadow:none;border-top:0}[data-readonly=false] .runbar{border:1px solid var(--line);border-radius:var(--radius);padding:var(--s4)}[data-readonly=false] #stage{padding-bottom:0}.options-panel{position:static;visibility:visible;transform:none;max-height:none;border:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;border-bottom:0}.options-open,.options-close{display:none}}@media (forced-colors: active){.btn.primary{background:Highlight;color:HighlightText;border-color:Highlight}.btn.ghost,.icon-btn{background:ButtonFace;color:ButtonText;border-color:ButtonBorder}.btn:disabled{opacity:1;color:GrayText;border-color:GrayText}.progress{border:1px solid CanvasText;background:Canvas;forced-color-adjust:none}.progress>i{background:Highlight;forced-color-adjust:none}.check{border-inline-start-width:6px;border-inline-start-style:solid}.check.pass{border-inline-start-color:CanvasText}.check.fail{border-inline-start-color:CanvasText;border-style:dashed;border-width:1px;border-inline-start-width:6px}.upload-card,.drop-overlay-card,.drop-notice,.nav-panel{border:1px solid CanvasText}.drop-overlay{outline-color:Highlight;background:Canvas;forced-color-adjust:none}.filter[aria-pressed=true]{background:Highlight;color:HighlightText;border-color:Highlight;forced-color-adjust:none}.thumb.selected{outline:3px solid Highlight}.nav-link[aria-current=page],.rich[aria-current=page]{text-decoration:underline}.nav-trigger[aria-expanded=true]{border:1px solid Highlight;background:Canvas}.nav-trigger.is-here{text-decoration:underline}.sheet,.tile{border:1px solid CanvasText}.segmented input:checked+label{border:1px solid Highlight;background:Canvas}.position-grid input:checked+label{border:2px solid Highlight}.position-grid .spot{background:CanvasText;forced-color-adjust:none}.verifying{border:1px solid CanvasText}:focus-visible{outline-color:Highlight}}.page-meta{font-size:var(--fs-sm);color:var(--ink-3)}.contact-mail{font-size:var(--fs-lg);color:var(--ink)}.contact-mail a{font-weight:600}ul.benefits{list-style:none;padding-inline-start:0;display:grid;gap:var(--s3)}ul.benefits li+li{margin-top:0}.legal-list{list-style:none;margin-bottom:0;padding:0;border-bottom:1px solid var(--line)}.legal-list li{border-top:1px solid var(--line)}.legal-list a{display:grid;gap:2px;padding-block:var(--s4);min-height:var(--target);text-decoration:none;color:var(--ink)}.legal-list a:hover b{color:var(--brand)}.legal-list b{font-weight:600}.legal-list span{font-size:var(--fs-md);color:var(--ink-3)}.legal-list+.prose{margin-top:var(--rhythm-block)}.prose+.faq-section{margin-top:var(--rhythm-section)}.scroll-x+.prose{margin-top:var(--rhythm-block)}.ad-slot{margin-block:var(--rhythm-section);text-align:center}.ad-label{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:var(--s1)}.ad-slot ins.adsbygoogle{display:block;min-height:280px;background:var(--wash);border-radius:var(--radius)}@media (max-width: 559px){.stack-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.stack-table,.stack-table tbody,.stack-table tr,.stack-table td{display:block;width:100%}.stack-table tr{border-bottom:1px solid var(--line);padding-block:var(--s3)}.stack-table td{border:0;padding:var(--s1) 0;display:grid;grid-template-columns:8rem minmax(0,1fr);gap:var(--s3)}.stack-table td:before{content:attr(data-label);color:var(--ink-3);font-weight:600}}.result h3{margin-top:var(--rhythm-block)}.result h3+.kv{margin-top:var(--rhythm-title)}@supports (animation-timeline: view()){@media (prefers-reduced-motion: no-preference){.tool-grid,.trust,.faq-section,.cta{animation:settle linear both;animation-timeline:view();animation-range:entry 10% entry 60%}}}@keyframes settle{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@supports (transition-behavior: allow-discrete){@media (prefers-reduced-motion: no-preference){.result:not([hidden]){transition:opacity var(--motion) var(--ease)}@starting-style{.result:not([hidden]){opacity:0}}}}main{background-repeat:no-repeat;background-position:top center;background-size:100% clamp(180px,24vw,300px)}body.bd-404 main{background-image:url(/backdrops/404.svg)}body.bd-about main{background-image:url(/backdrops/about.svg)}body.bd-add-page-numbers main{background-image:url(/backdrops/add-page-numbers.svg)}body.bd-contact main{background-image:url(/backdrops/contact.svg)}body.bd-cookies main{background-image:url(/backdrops/cookies.svg)}body.bd-crop-pdf main{background-image:url(/backdrops/crop-pdf.svg)}body.bd-extract-pdf-images main{background-image:url(/backdrops/extract-pdf-images.svg)}body.bd-extract-pdf-pages main{background-image:url(/backdrops/extract-pdf-pages.svg)}body.bd-home main{background-image:url(/backdrops/home.svg)}body.bd-how-it-works main{background-image:url(/backdrops/how-it-works.svg)}body.bd-jpg-to-pdf main{background-image:url(/backdrops/jpg-to-pdf.svg)}body.bd-legal main{background-image:url(/backdrops/legal.svg)}body.bd-licenses main{background-image:url(/backdrops/licenses.svg)}body.bd-merge-pdf main{background-image:url(/backdrops/merge-pdf.svg)}body.bd-offline main{background-image:url(/backdrops/offline.svg)}body.bd-organize-pdf main{background-image:url(/backdrops/organize-pdf.svg)}body.bd-pdf-inspector main{background-image:url(/backdrops/pdf-inspector.svg)}body.bd-pdf-to-jpg main{background-image:url(/backdrops/pdf-to-jpg.svg)}body.bd-privacy main{background-image:url(/backdrops/privacy.svg)}body.bd-protect-pdf main{background-image:url(/backdrops/protect-pdf.svg)}body.bd-remove-pages-from-pdf main{background-image:url(/backdrops/remove-pages-from-pdf.svg)}body.bd-remove-pdf-metadata main{background-image:url(/backdrops/remove-pdf-metadata.svg)}body.bd-rotate-pdf main{background-image:url(/backdrops/rotate-pdf.svg)}body.bd-security main{background-image:url(/backdrops/security.svg)}body.bd-split-pdf main{background-image:url(/backdrops/split-pdf.svg)}body.bd-terms main{background-image:url(/backdrops/terms.svg)}body.bd-unlock-pdf main{background-image:url(/backdrops/unlock-pdf.svg)}body.bd-watermark-pdf main{background-image:url(/backdrops/watermark-pdf.svg)}@media (forced-colors: active){main{background-image:none}}@media print{main{background-image:none}}
