:root{--paper: #faf9f5;--paper-2: #f2f0e9;--surface: #ffffff;--ink: #1a1a17;--ink-2: #55524a;--ink-3: #8a867b;--line: #e4e1d6;--line-2: #d6d2c4;--accent: #2438e0;--accent-ink: #1b2bb0;--accent-wash: #eef0fe;--good: #167d52;--good-wash: #e7f4ed;--warn: #9a5b00;--danger: #b42318;--radius: 10px;--radius-sm: 7px;--maxw: 1060px;--sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, "SF Mono", SFMono-Regular, "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:root{--paper: #15140f;--paper-2: #1d1c16;--surface: #1b1a14;--ink: #f3f1e9;--ink-2: #c1bcab;--ink-3: #8c897b;--line: #312f26;--line-2: #3e3b30;--accent: #8a97ff;--accent-ink: #aab2ff;--accent-wash: #1c1f3a;--good: #4ec48a;--good-wash: #14241b}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0 0 .5em;line-height:1.1;letter-spacing:-.021em;font-weight:680;text-wrap:balance}h1{font-size:clamp(2rem,5vw,3.2rem);letter-spacing:-.03em}h2{font-size:clamp(1.4rem,2.6vw,1.9rem)}h3{font-size:1.16rem;font-weight:660}p{margin:0 0 1rem}a{color:var(--accent);text-decoration:none;text-underline-offset:2px}a:hover{text-decoration:underline}code,kbd{font-family:var(--mono);font-size:.88em}.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:22px}.narrow{max-width:680px}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.center{text-align:center}.mono{font-family:var(--mono)}section{padding-block:clamp(36px,6vw,72px)}.section-tight{padding-block:clamp(24px,4vw,44px)}.eyebrow{font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0 0 14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font:inherit;font-weight:580;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);border-radius:var(--radius-sm);padding:.62em 1.05em;cursor:pointer;transition:border-color .12s,background .12s,color .12s;text-decoration:none}.btn:hover{border-color:var(--ink-3);text-decoration:none}.btn-primary{background:var(--ink);border-color:var(--ink);color:var(--paper)}.btn-primary:hover{background:#000;border-color:#000}@media(prefers-color-scheme:dark){.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:#fff;border-color:#fff;color:#000}}.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-accent:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.btn-lg{padding:.8em 1.4em;font-size:1.02rem}.btn[disabled]{opacity:.45;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.pad{padding:clamp(18px,3.4vw,30px)}.grid{display:grid;gap:1px}.rule{border:none;border-top:1px solid var(--line);margin:0}@media(min-width:720px){.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}}.features{display:grid;gap:0;border-top:1px solid var(--line)}@media(min-width:760px){.features{grid-template-columns:repeat(3,1fr)}}.feature{padding:26px 0;border-bottom:1px solid var(--line)}@media(min-width:760px){.feature{padding:8px 28px 8px 0;border-bottom:none}.feature+.feature{border-left:1px solid var(--line);padding-left:28px}}.feature h3{margin-bottom:6px}.feature p{margin:0;color:var(--ink-2);font-size:.96rem}.dropzone{border:1.5px dashed var(--line-2);border-radius:var(--radius);background:var(--paper-2);padding:clamp(26px,5vw,48px);text-align:center;transition:border-color .12s,background .12s;cursor:pointer}.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:var(--accent-wash)}.dropzone input[type=file]{display:none}.filelist{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px}.fileitem{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:9px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.fileitem .thumb{width:40px;height:40px;border-radius:5px;object-fit:cover;background:var(--paper-2)}.fileitem .meta{min-width:0}.fileitem .name{font-weight:560;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fileitem .sizes{font-family:var(--mono);font-size:.8rem;color:var(--ink-2)}.save{color:var(--good);font-weight:600}.controls{display:flex;flex-wrap:wrap;gap:16px;align-items:end;margin-top:16px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.field select,.field input[type=number],.field input[type=text]{font:inherit;padding:.5em .65em;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink)}input[type=range]{accent-color:var(--accent)}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.spread{justify-content:space-between}.notice{font-size:.92rem;padding:9px 13px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--paper-2);color:var(--ink-2)}.notice-pro{border-color:var(--line-2);background:var(--accent-wash);color:var(--ink)}.hidden,[hidden]{display:none!important}details{border-bottom:1px solid var(--line);padding:2px 0}details summary{font-weight:580;cursor:pointer;padding:14px 0;list-style:none;display:flex;justify-content:space-between;gap:12px}details summary::-webkit-details-marker{display:none}details summary:after{content:"+";color:var(--ink-3);font-family:var(--mono)}details[open] summary:after{content:"−"}details>*:not(summary){margin:0 0 16px;color:var(--ink-2)}.prose{max-width:660px}.prose h2{margin-top:1.7em}.prose ul,.prose ol{padding-left:1.25em}.prose li{margin-bottom:.4em}.prose strong{font-weight:620}.prose table{width:100%;border-collapse:collapse;margin:1.6em 0;font-size:.93rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);padding:8px 12px;text-align:left;vertical-align:top}.prose thead th{background:var(--paper-2);font-weight:620;white-space:nowrap}.prose td:first-child,.prose th:first-child{font-weight:560}.prose blockquote{border-left:3px solid var(--line-2);margin:1.2em 0;padding:2px 0 2px 16px;color:var(--ink-2)}.toolgrid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.toolcard{display:block;padding:15px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:inherit;transition:border-color .12s,background .12s}.toolcard:hover{text-decoration:none;border-color:var(--ink-3);background:var(--paper-2)}.toolcard .t{font-weight:600;margin-bottom:3px}.toolcard .d{font-size:.88rem;color:var(--ink-2)}.skiplink{position:absolute;left:-999px}.skiplink:focus{left:12px;top:12px;background:var(--surface);padding:8px 12px;border-radius:8px;z-index:50}.site-header[data-astro-cid-3ef6ksr2]{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper) 85%,transparent);backdrop-filter:saturate(140%) blur(6px);position:sticky;top:0;z-index:20}.bar[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;height:58px}.brand[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:9px;color:var(--ink)}.brand[data-astro-cid-3ef6ksr2]:hover{text-decoration:none}.mark[data-astro-cid-3ef6ksr2]{width:13px;height:13px;border:2px solid var(--ink);border-radius:3px;position:relative}.mark[data-astro-cid-3ef6ksr2]:after{content:"";position:absolute;inset:3px 3px auto auto;width:4px;height:4px;background:var(--accent);border-radius:1px}.wordmark[data-astro-cid-3ef6ksr2]{font-weight:660;font-size:1.04rem;letter-spacing:-.02em}nav[data-astro-cid-3ef6ksr2]{display:flex;gap:22px}nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{color:var(--ink-2);font-size:.94rem;font-weight:520}nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{color:var(--ink);text-decoration:none}.site-footer[data-astro-cid-sz7xmlte]{border-top:1px solid var(--line);background:var(--paper-2);padding-block:40px 24px;margin-top:56px;font-size:.92rem}.cols[data-astro-cid-sz7xmlte]{display:grid;gap:26px;grid-template-columns:1.6fr 1fr 1fr}.about[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]{margin-top:6px;color:var(--ink-2);max-width:34ch}.cols[data-astro-cid-sz7xmlte] h4[data-astro-cid-sz7xmlte]{font-family:var(--mono);font-size:.7rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);margin:0 0 10px;font-weight:600}.cols[data-astro-cid-sz7xmlte] nav[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{display:block;color:var(--ink-2);padding:3px 0}.cols[data-astro-cid-sz7xmlte] nav[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--ink)}.base[data-astro-cid-sz7xmlte]{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:28px;padding-top:16px;border-top:1px solid var(--line);color:var(--ink-3)}.base[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--ink-3)}@media(max-width:620px){.cols[data-astro-cid-sz7xmlte]{grid-template-columns:1fr 1fr}.about[data-astro-cid-sz7xmlte]{grid-column:1 / -1}}
