@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/sora-latin-700-normal.9waGdLWo.woff2)format("woff2"),url(/_astro/sora-latin-700-normal.BKPfQAnC.woff)format("woff")}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/sora-latin-800-normal.2tKLL3qT.woff2)format("woff2"),url(/_astro/sora-latin-800-normal.c3Huklug.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-latin-400-normal.C38fXH4l.woff2)format("woff2"),url(/_astro/inter-latin-400-normal.CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-latin-500-normal.Cerq10X2.woff2)format("woff2"),url(/_astro/inter-latin-500-normal.BL9OpVg8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-latin-600-normal.LgqL8muc.woff2)format("woff2"),url(/_astro/inter-latin-600-normal.CiBQ2DWP.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff")}:root{color-scheme:light;--font-display:"Sora", ui-sans-serif, system-ui, sans-serif;--font-body:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--bg:#f3f2ef;--bg-sunken:#eae8e4;--surface:#fff;--surface-2:#f8f7f5;--border:#dedbd5;--border-strong:#c4c0b8;--text:#1d1c1a;--text-muted:#57544e;--text-subtle:#6b675f;--accent:#c2410c;--accent-hover:#a5370a;--accent-contrast:#fff;--accent-soft:#fde9df;--focus-ring:#c2410c;--success:#13794b;--success-soft:#e1f4ea;--danger:#b4232a;--danger-soft:#fbe5e5;--cat-json:#955905;--cat-xml:#a23e7c;--cat-data:#776a0a;--cat-encode:#7750b1;--cat-code:#4e60b8;--cat-text:#087970;--cat-convert:#097689;--cat-web:#b13e06;--cat-dev:#4f7715;--cat-learn:#1f68bc;--cat-pdf:#b63132;--cat-image:#01729f;--cat-finance:#0a7e3a;--cat-tech-calc:#516c84;--cat-health:#af355c;--cat-education:#8e479d;--cat-business:#816339;--cat-media:#6353c5;--star:#b7791f;--code-key:#7a3fb0;--code-string:#18794e;--code-number:#b4460a;--code-literal:#1f5bc4;--warn:#9a6700;--radius-sm:8px;--radius:12px;--radius-lg:16px;--shadow-sm:0 1px 2px #1e19140f, 0 1px 1px #1e19140a;--shadow:0 1px 2px #1e19140f, 0 4px 12px #1e19140f;--shadow-lg:0 2px 4px #1e19140f, 0 12px 32px #1e19141f;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:72px;--gutter:16px;--content-max:1120px;--reading-max:70ch;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-fast:.15s;--dur-base:.25s;--dur-slow:.45s}@media (width>=720px){:root{--gutter:32px}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#111214;--bg-sunken:#0b0c0d;--surface:#1c1d21;--surface-2:#232429;--border:#2f3036;--border-strong:#45464d;--text:#ecebe8;--text-muted:#b3b1ab;--text-subtle:#9a978f;--accent:#ff8a5c;--accent-hover:#ffa47f;--accent-contrast:#1d0d05;--accent-soft:#3a2015;--focus-ring:#ff8a5c;--success:#5fd49a;--success-soft:#133325;--danger:#ff8d8d;--danger-soft:#3a1618;--cat-json:#df9a53;--cat-xml:#e08bbc;--cat-data:#baac5b;--cat-encode:#b699eb;--cat-code:#92a6f2;--cat-text:#5abfb3;--cat-convert:#59bad1;--cat-web:#ef8d6b;--cat-dev:#95b871;--cat-learn:#75aef5;--cat-pdf:#f5867f;--cat-image:#5cb6e7;--cat-finance:#74bf85;--cat-tech-calc:#96aec3;--cat-health:#ee87a0;--cat-education:#cc91da;--cat-business:#c0a684;--cat-media:#a29dfd;--star:#f2c14e;--code-key:#c9a2f2;--code-string:#7ed4a1;--code-number:#f0a072;--code-literal:#8db6ff;--warn:#e3b341;--shadow-sm:0 1px 2px #0006;--shadow:0 1px 2px #0006, 0 4px 12px #0000004d;--shadow-lg:0 2px 4px #0006, 0 12px 32px #00000073}}:root[data-theme=dark]{color-scheme:dark;--bg:#111214;--bg-sunken:#0b0c0d;--surface:#1c1d21;--surface-2:#232429;--border:#2f3036;--border-strong:#45464d;--text:#ecebe8;--text-muted:#b3b1ab;--text-subtle:#9a978f;--accent:#ff8a5c;--accent-hover:#ffa47f;--accent-contrast:#1d0d05;--accent-soft:#3a2015;--focus-ring:#ff8a5c;--success:#5fd49a;--success-soft:#133325;--danger:#ff8d8d;--danger-soft:#3a1618;--cat-json:#df9a53;--cat-xml:#e08bbc;--cat-data:#baac5b;--cat-encode:#b699eb;--cat-code:#92a6f2;--cat-text:#5abfb3;--cat-convert:#59bad1;--cat-web:#ef8d6b;--cat-dev:#95b871;--cat-learn:#75aef5;--cat-pdf:#f5867f;--cat-image:#5cb6e7;--cat-finance:#74bf85;--cat-tech-calc:#96aec3;--cat-health:#ee87a0;--cat-education:#cc91da;--cat-business:#c0a684;--cat-media:#a29dfd;--star:#f2c14e;--code-key:#c9a2f2;--code-string:#7ed4a1;--code-number:#f0a072;--code-literal:#8db6ff;--warn:#e3b341;--shadow-sm:0 1px 2px #0006;--shadow:0 1px 2px #0006, 0 4px 12px #0000004d;--shadow-lg:0 2px 4px #0006, 0 12px 32px #00000073}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes shake{0%,to{transform:none}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}@keyframes flash{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--success) 45%, transparent)}to{box-shadow:0 0 0 8px #0000}}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}html.js [data-reveal]>*{opacity:0;transform:translateY(14px)}html.js [data-reveal].is-revealed>*{opacity:1;transition:opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);transition-delay:calc(min(var(--i,0), 12) * 50ms);transform:none}.fade-in{animation:fade-in var(--dur-base) var(--ease-out)}.is-shaking{animation:shake .32s var(--ease-out)}.is-flashing{animation:flash .6s var(--ease-out)}::view-transition-old(root),::view-transition-new(root){animation-duration:var(--dur-base)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;transition-delay:0s!important;animation-duration:1ms!important;animation-iteration-count:1!important}html.js [data-reveal]>*{transform:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}html.js [data-reveal].is-revealed>*{transition:opacity var(--dur-base) linear!important}}.jt,.jt ul{margin:0;padding:0;list-style:none}.jt{font-family:var(--font-mono);font-size:.875rem;line-height:1.6}.jt ul{border-left:1px dashed var(--border);margin-left:7px;padding-left:18px}.jt-item:focus{outline:none}.jt-item:focus-visible>.jt-row{outline:2px solid var(--focus-ring);outline-offset:-1px}.jt-item[aria-expanded=false]>ul{display:none}.jt-row{cursor:pointer;white-space:nowrap;border-radius:6px;align-items:baseline;gap:2px;padding:1px 6px;display:flex}.jt-row:hover{background:var(--surface-2)}.jt-item[aria-selected=true]>.jt-row{background:var(--accent-soft)}.jt-caret{width:14px;color:var(--text-subtle);transition:transform var(--dur-fast) var(--ease-out);flex:none;display:inline-block}.jt-item[aria-expanded]>.jt-row>.jt-caret:before{content:"▸"}.jt-item[aria-expanded=true]>.jt-row>.jt-caret{transform:rotate(90deg)}.jt-key{color:var(--code-key)}.jt-index,.jt-colon{color:var(--text-subtle)}.jt-value{text-overflow:ellipsis;overflow:hidden}.jt-string{color:var(--code-string)}.jt-number{color:var(--code-number)}.jt-boolean,.jt-null{color:var(--code-literal);font-weight:600}.jt-object,.jt-array{color:var(--text-subtle)}.jt-item[aria-expanded=true]>.jt-row>.jt-object,.jt-item[aria-expanded=true]>.jt-row>.jt-array{opacity:.7}.jt-more{padding:4px 0 4px 20px}.jt-more-btn{min-height:30px;font-size:.8rem}.dv{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:.85rem;line-height:1.5}.dv td{vertical-align:top;padding:0 8px}.dv-num{text-align:right;width:1%;min-width:3ch;color:var(--text-subtle);user-select:none;white-space:nowrap}.dv-mark{text-align:center;user-select:none;width:1%;font-weight:700}.dv-code{white-space:pre-wrap;word-break:break-word}.dv-insert{background:var(--success-soft)}.dv-insert .dv-mark{color:var(--success)}.dv-delete{background:var(--danger-soft)}.dv-delete .dv-mark{color:var(--danger)}.dv-fold td{background:var(--surface-2);padding:2px 8px}.dv-fold-btn{color:var(--accent);font:600 .8rem var(--font-body);cursor:pointer;background:0 0;border:0;padding:4px 0}.dv-fold-btn:hover{text-decoration:underline}.dv-word{border-radius:3px;padding:0 1px;text-decoration:none}.dv-insert .dv-word{background:color-mix(in srgb, var(--success) 28%, transparent)}.dv-delete .dv-word{background:color-mix(in srgb, var(--danger) 28%, transparent)}.tu{gap:var(--space-4);display:grid}.tu-row{align-items:end;gap:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.tu-row>.field{flex:180px}.tu-two{gap:var(--space-4);display:grid}@media (width>=900px){.tu-two{grid-template-columns:1fr 1fr;align-items:start}}.tu-col{gap:var(--space-3);align-content:start;min-width:0;display:grid}.tu-check{align-items:center;gap:var(--space-2);cursor:pointer;min-height:40px;font-size:.9rem;font-weight:500;display:inline-flex}.tu-check input{width:18px;height:18px;accent-color:var(--accent)}.tu-out{gap:var(--space-1);min-width:0;display:grid}.tu-out-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.tu-out-head .btn{min-height:32px;padding:0 var(--space-3);font-size:.8rem}.tu-value{padding:var(--space-3);background:var(--surface);border:1px solid var(--border);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;border-radius:10px;min-height:2.8em;max-height:320px;margin:0;font-size:.85rem;line-height:1.5;overflow:auto}.tu-value:empty:before{content:"—";color:var(--text-subtle)}.tu-big{font-size:1.1rem;font-weight:600}.tu-kv{gap:var(--space-1) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);grid-template-columns:minmax(110px,max-content) 1fr;margin:0;font-size:.9rem;display:grid}.tu-kv dt{color:var(--text-subtle);font-weight:600}.tu-kv dd{word-break:break-word;min-width:0;margin:0}.tu-kv dd code{word-break:break-all}@media (width<=480px){.tu-kv{grid-template-columns:1fr}.tu-kv dd{margin-bottom:var(--space-2)}}.tu-meter{grid-template-columns:repeat(5,1fr);gap:4px;height:8px;display:grid}.tu-meter span{background:var(--surface-2);border:1px solid var(--border);transition:background-color var(--dur-base) var(--ease-out);border-radius:4px}.tu-meter[data-score="0"] span:nth-child(-n+1),.tu-meter[data-score="1"] span:nth-child(-n+2){background:var(--danger);border-color:#0000}.tu-meter[data-score="2"] span:nth-child(-n+3){background:var(--warn);border-color:#0000}.tu-meter[data-score="3"] span:nth-child(-n+4),.tu-meter[data-score="4"] span{background:var(--success);border-color:#0000}.tu-badge{background:var(--surface-2);color:var(--text-muted);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.8rem;font-weight:700;display:inline-flex}.tu-badge.ok{background:var(--success-soft);color:var(--success)}.tu-badge.bad{background:var(--danger-soft);color:var(--danger)}.tu-badge.warn{background:color-mix(in srgb, var(--warn) 18%, transparent);color:var(--warn)}.tu-progress{background:var(--surface-2);border-radius:3px;height:6px;overflow:hidden}.tu-progress span{background:var(--accent);transform-origin:0;height:100%;transition:transform var(--dur-fast) linear;display:block;transform:scaleX(0)}.tu-note{color:var(--text-subtle);margin:0;font-size:.85rem}.calc{gap:var(--space-5);display:grid}.calc>*{min-width:0}@media (width>=900px){.calc{grid-template-columns:minmax(300px,380px) 1fr;align-items:start}.calc-wide{grid-column:1/-1}}.calc-form{gap:var(--space-4);display:grid}.calc-pair{gap:var(--space-2);display:flex}.calc-pair>.input{flex:1;min-width:0}.calc-pair>.select{width:auto}.opt{color:var(--text-subtle);font-weight:400}.calc-err{color:var(--danger);margin:0;font-size:.825rem}.calc-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.calc-results{gap:var(--space-4);min-width:0;display:grid}.calc-hero{text-align:center}.calc-hero-label{color:var(--text-muted);margin:0;font-weight:600}.calc-hero-value{margin:var(--space-1) 0;font-family:var(--font-display);color:var(--cat,var(--accent));font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:clamp(2rem,1.5rem + 3vw,3.2rem);font-weight:800;line-height:1.1}.calc-hero-note{color:var(--text-subtle);margin:0;font-size:.9rem}.calc-figures{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0;display:grid}.calc-figures>div{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);min-width:0}.calc-figures dt{color:var(--text-subtle);font-size:.8rem;font-weight:600}.calc-figures dd{font-family:var(--font-display);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0;font-size:1.15rem;font-weight:700}.calc-bar{background:var(--surface-2);border-radius:7px;height:14px;display:flex;overflow:hidden}.calc-bar .seg{flex-basis:0}.seg-0{background:var(--cat,var(--accent))}.seg-1{background:var(--warn)}.seg-2{background:var(--code-literal)}.seg-3{background:var(--border-strong)}.seg-4{background:var(--cat-encode,var(--danger))}.seg-5{background:var(--cat-finance,var(--text-muted))}.calc-legend{gap:var(--space-2) var(--space-4);color:var(--text-muted);flex-wrap:wrap;margin:0;font-size:.875rem;display:flex}.calc-legend .dot{width:10px;height:10px;margin-right:var(--space-1);border-radius:3px;display:inline-block}.calc-section-head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.calc-section-head h2,.calc-section-head h3{margin:0;font-size:1.15rem}.calc-table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);max-height:420px;overflow:auto}.calc-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9rem}.calc-table th,.calc-table td{padding:var(--space-2) var(--space-3);text-align:right;white-space:nowrap;border-bottom:1px solid var(--border)}.calc-table th:first-child,.calc-table td:first-child{text-align:left}.calc-table thead th{background:var(--surface-2);color:var(--text-muted);font-size:.8rem;position:sticky;top:0}.calc-note{color:var(--text-subtle);margin:0;font-size:.875rem}.re-list{gap:var(--space-3);display:grid}.re-row{gap:var(--space-2);padding:var(--space-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:end;display:flex}.re-cell{gap:var(--space-1);flex:120px;min-width:0;display:grid}.re-cell .select{width:100%}.re-label{color:var(--text-subtle);font-size:.75rem;font-weight:600}.re-remove{flex:none;min-height:44px;font-size:1.1rem}.bf-units{gap:0 var(--space-4);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.bf-units legend{margin-bottom:var(--space-1)}[data-when][hidden]{display:none!important}.ib-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.ib-item{gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:56px 1fr auto;align-items:center;min-width:0;display:grid}.ib-item.is-selected{border-color:var(--cat,var(--accent));box-shadow:0 0 0 1px var(--cat,var(--accent))}.ib-thumb{object-fit:cover;border-radius:var(--radius-sm);background:var(--surface-2);width:56px;height:56px}.ib-info{gap:2px;min-width:0;display:grid}.ib-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.ib-meta{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.8rem}.ib-good{color:var(--success);font-weight:700}.ib-bad{color:var(--danger)}.ib-actions{gap:var(--space-1);display:flex}.ib-actions .btn{min-height:36px;padding:0 var(--space-3)}.ib-summary{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.ib-summary p{margin:0;font-weight:600}.cmp{border-radius:var(--radius);background:repeating-conic-gradient(var(--surface-2) 0 25%, var(--surface) 0 50%) 0 0 / 20px 20px;border:1px solid var(--border);line-height:0;position:relative;overflow:hidden}.cmp img{width:100%;height:auto;display:block}.cmp .cmp-after{object-fit:contain;height:100%;clip-path:inset(0 0 0 var(--cmp,50%));position:absolute;inset:0}.cmp .cmp-line{top:0;bottom:0;left:var(--cmp,50%);pointer-events:none;background:#fff;width:2px;position:absolute;box-shadow:0 0 0 1px #0000004d}.cmp-labels{color:var(--text-muted);justify-content:space-between;font-size:.8rem;display:flex}.cmp-range{width:100%;accent-color:var(--cat,var(--accent))}.stage{background:repeating-conic-gradient(var(--surface-2) 0 25%, var(--surface) 0 50%) 0 0 / 20px 20px;border:1px solid var(--border);border-radius:var(--radius);touch-action:none;place-items:center;min-height:240px;display:grid;position:relative;overflow:hidden}.stage canvas,.stage img{max-width:100%;max-height:70vh;display:block}.range-row{gap:var(--space-3);grid-template-columns:1fr auto;align-items:center;display:grid}.range-row input[type=range]{width:100%;accent-color:var(--cat,var(--accent))}.range-row output{text-align:right;font-variant-numeric:tabular-nums;min-width:3.5ch;font-weight:600}.pg-list{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin:0;padding:0;list-style:none;display:grid}.pg-tile{gap:var(--space-1);padding:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:grab;display:grid}.pg-tile.is-selected{border-color:var(--cat,var(--accent));box-shadow:0 0 0 2px var(--cat,var(--accent))}.pg-tile.is-dragging{opacity:.5}.pg-thumb{aspect-ratio:1;background:var(--surface-2);border-radius:var(--radius-sm);place-items:center;display:grid;overflow:hidden}.pg-thumb canvas{max-width:100%;max-height:100%;box-shadow:0 1px 3px #00000040}.pg-label{align-items:center;gap:var(--space-1);min-height:32px;font-size:.85rem;font-weight:600;display:flex}.pg-label input{width:18px;height:18px;accent-color:var(--cat,var(--accent))}.pg-tools{gap:2px;display:flex}.pg-tools .pg-btn{flex:1 1 0;min-width:0;min-height:32px;padding:0 4px}.pdf-status{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:.875rem;display:flex}.pdf-status progress{flex:1;max-width:240px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:80px}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;margin:0;font-size:1rem;line-height:1.6;display:flex}main{flex:1}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.015em;margin:0 0 var(--space-3);line-height:1.2}h1{font-size:clamp(1.75rem,1.2rem + 2.4vw,2.75rem);font-weight:800}h2{font-size:clamp(1.3rem,1.1rem + .9vw,1.7rem);font-weight:700}h3{font-size:1.125rem;font-weight:700}p{margin:0 0 var(--space-4)}a{color:var(--accent);text-underline-offset:.18em}a:hover{color:var(--accent-hover)}code,kbd,pre,textarea.mono{font-family:var(--font-mono);font-size:.92em}:not(pre)>code{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:.05em .35em}pre{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);line-height:1.5;overflow-x:auto}kbd{border:1px solid var(--border-strong);background:var(--surface);border-bottom-width:2px;border-radius:5px;padding:0 .4em;font-size:.8em}img,svg{max-width:100%}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}::selection{background:var(--accent-soft)}.container{width:100%;max-width:var(--content-max);padding-inline:var(--gutter);margin-inline:auto}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{left:var(--space-4);z-index:100;background:var(--accent);color:var(--accent-contrast);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);position:absolute;top:-100px}.skip-link:focus{top:var(--space-4)}.btn{--btn-bg:var(--surface);--btn-fg:var(--text);--btn-border:var(--border-strong);justify-content:center;align-items:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-4);border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-fg);font:600 .9rem/1 var(--font-body);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);border-radius:10px;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--text-subtle);color:var(--btn-fg)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{--btn-bg:var(--accent);--btn-fg:var(--accent-contrast);--btn-border:var(--accent)}.btn-primary:hover{--btn-bg:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{--btn-bg:transparent;--btn-border:transparent}.btn-ghost:hover{background:var(--surface-2);border-color:#0000}.btn svg{flex:none;width:18px;height:18px}.field{gap:var(--space-1);flex-direction:column;display:flex}.field>label,.label{color:var(--text-muted);font-size:.875rem;font-weight:600}.input,.select,.textarea{width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);transition:border-color var(--dur-fast) var(--ease-out);border-radius:10px;padding:.6em .8em}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);outline:2px solid color-mix(in srgb, var(--accent) 25%, transparent);outline-offset:0}.textarea{resize:vertical;tab-size:2;min-height:240px;line-height:1.5}.input[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--danger)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}@media (width<=480px){.panel{padding:var(--space-4)}}.toolbar{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.toolbar .spacer{flex:1}.message{border-radius:var(--radius);padding:var(--space-3) var(--space-4);font-size:.925rem}.message:empty{display:none}.message.is-error{background:var(--danger-soft);color:var(--danger)}.message.is-success{background:var(--success-soft);color:var(--success)}.prose{max-width:var(--reading-max)}.prose h2{margin-top:var(--space-7)}.prose h3{margin-top:var(--space-5)}.prose ul,.prose ol{margin:0 0 var(--space-4);padding-left:1.3em}.prose li+li{margin-top:var(--space-1)}.section-heading{text-align:center;text-transform:uppercase;letter-spacing:.06em;margin:0 0 var(--space-6);font-size:clamp(1.35rem,1.1rem + 1vw,1.85rem);font-weight:800}.section-heading:after{content:"";background:var(--border-strong);width:48px;height:3px;margin:var(--space-3) auto 0;border-radius:2px;display:block}[hidden]{display:none!important}.search-results{max-width:760px;margin-inline:auto}.results-heading{text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);margin-top:var(--space-6);font-size:.85rem}.results-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.result{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4) var(--space-5);animation:fade-up var(--dur-base) var(--ease-out) both}.result-title{font-family:var(--font-display);margin-right:var(--space-2);font-size:1.1rem;font-weight:700;text-decoration:none}.result-meta{color:var(--text-subtle);font-size:.8rem}.result-desc{margin:var(--space-1) 0 0;color:var(--text-muted);font-size:.925rem}.top-ad{z-index:1;padding:var(--space-4) var(--gutter) var(--space-5);position:relative}@media (width>=1500px){.page-frame{grid-template-columns:minmax(0, 1fr) minmax(0, var(--content-max)) minmax(0, 1fr);display:grid}.page-frame>.page{grid-column:2}}.card-grid{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (width>=720px){.card-grid{gap:var(--space-5);grid-template-columns:repeat(2,1fr)}}@media (width>=1500px){.card-grid--wide{grid-template-columns:repeat(3,1fr)}}.tool-card{--cat:var(--accent);height:120px;padding:var(--space-4) var(--space-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--text);transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);justify-content:center;align-items:center;gap:14px;text-decoration:none;display:flex;position:relative;overflow:hidden;container-type:inline-size}@media (width>=720px){.tool-card{height:200px}}.tool-card:after{content:"";background:var(--cat);transform-origin:0;height:4px;transition:transform var(--dur-slow) var(--ease-out);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.tool-card:hover,.tool-card:focus-visible{box-shadow:var(--shadow-lg);border-color:var(--border-strong);color:var(--text);transform:translateY(-4px)}.tool-card:hover:after,.tool-card:focus-visible:after{transform:scaleX(1)}.tool-card:active{transform:translateY(-1px)scale(.99)}.tool-card__word{font-family:var(--font-display);font-weight:800;font-size:clamp(1.05rem, calc(68cqi / var(--len,6)), 2.9rem);letter-spacing:-.01em;color:var(--cat);text-transform:uppercase;white-space:nowrap;transition:transform var(--dur-base) var(--ease-spring);line-height:1}.tool-card:hover .tool-card__word,.tool-card:focus-visible .tool-card__word{transform:scaleX(1.04)}.tool-card__label{font-family:var(--font-display);letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase;overflow-wrap:anywhere;flex-direction:column;min-width:0;max-width:42cqi;font-size:clamp(.7rem,.62rem + .35vw,.85rem);font-weight:700;line-height:1.3;display:flex}.tool-card--compact{height:96px}.tool-card--compact .tool-card__word{font-size:1.6rem}@media (width>=720px){.tool-card--compact{height:120px}}@container (width<=520px){.tool-card--long{flex-direction:column;gap:6px}.tool-card--long .tool-card__word{font-size:clamp(1.05rem, calc(120cqi / var(--len,6)), 2.6rem)}.tool-card--long .tool-card__label{text-align:center;align-items:center;max-width:90cqi}}.mini-grid{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));max-width:960px;margin:0 auto;padding:0;list-style:none;display:grid}.mini-grid>*{min-width:0}@media (width<=640px){.mini-grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr))}}.tool-card--mini{height:72px;padding:var(--space-3) var(--space-4);flex-direction:column;justify-content:center;align-items:flex-start;gap:4px}.tool-card--mini:hover,.tool-card--mini:focus-visible{transform:translateY(-2px)}.tool-card--mini:after{height:3px}.tool-card--mini .tool-card__word{max-width:100%;font-size:clamp(.95rem, calc(80cqi / var(--len,6)), 1.45rem);transform-origin:0}.tool-card--mini .tool-card__label{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.68rem;display:block;overflow:hidden}.tool-card--mini .tool-card__label>span+span:before{content:" "}@media (width<=640px){.tool-card--mini{padding:var(--space-2) var(--space-3);gap:3px}.tool-card--mini .tool-card__word{font-size:clamp(.95rem, calc(80cqi / var(--len,6)), 1.25rem)}.tool-card--mini .tool-card__label{-webkit-line-clamp:2;line-clamp:2;white-space:normal;overflow-wrap:normal;-webkit-box-orient:vertical;font-size:.62rem;line-height:1.25;display:-webkit-box}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.logo[data-astro-cid-f7espo7c]{align-items:center;gap:10px;display:inline-flex}.logo-mark[data-astro-cid-f7espo7c]{transition:transform var(--dur-base) var(--ease-spring);flex:none}a:hover>.logo[data-astro-cid-f7espo7c] .logo-mark[data-astro-cid-f7espo7c]{transform:rotate(-6deg)scale(1.06)}.logo-word[data-astro-cid-f7espo7c]{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);font-size:1.25rem;font-weight:800}.theme-toggle[data-astro-cid-l6lhmie6]{width:40px;padding:0}.theme-icon[data-astro-cid-l6lhmie6]{width:22px;height:22px;transition:transform var(--dur-slow) var(--ease-spring)}.theme-core[data-astro-cid-l6lhmie6]{transform-origin:50%;transition:transform var(--dur-slow) var(--ease-spring)}.theme-moon-cut[data-astro-cid-l6lhmie6]{transition:transform var(--dur-slow) var(--ease-out);transform:translate(8px,-8px)}.theme-rays[data-astro-cid-l6lhmie6]{transform-origin:50%;transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-slow) var(--ease-spring)}[data-theme-resolved=dark] .theme-icon[data-astro-cid-l6lhmie6]{transform:rotate(-40deg)}[data-theme-resolved=dark] .theme-core[data-astro-cid-l6lhmie6]{transform:scale(1.6)}[data-theme-resolved=dark] .theme-moon-cut[data-astro-cid-l6lhmie6]{transform:none}[data-theme-resolved=dark] .theme-rays[data-astro-cid-l6lhmie6]{opacity:0;transform:scale(.5)rotate(45deg)}.cat-menu[data-astro-cid-pfmnb22i]{position:relative}.cat-menu-button[data-astro-cid-pfmnb22i] svg[data-astro-cid-pfmnb22i]{width:16px;height:16px}.cat-menu-panel[data-astro-cid-pfmnb22i]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(640px,100vw - 32px);box-shadow:var(--shadow-lg);padding:var(--space-2);z-index:50;animation:menu-in var(--dur-base) var(--ease-out);transform-origin:0 0;position:absolute;top:calc(100% + 8px);left:0}.cat-menu-top[data-astro-cid-pfmnb22i]{display:none}ul[data-astro-cid-pfmnb22i]{gap:0 var(--space-2);grid-template-columns:1fr 1fr;margin:0;padding:0;list-style:none;display:grid}a[data-astro-cid-pfmnb22i]{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--text);font-weight:500;text-decoration:none;display:flex}a[data-astro-cid-pfmnb22i]:hover,a[data-astro-cid-pfmnb22i]:focus-visible{background:var(--surface-2);color:var(--text)}.cat-dot[data-astro-cid-pfmnb22i]{background:var(--cat,var(--border-strong));border-radius:3px;flex:none;width:10px;height:10px}.cat-name[data-astro-cid-pfmnb22i]{flex:1}.cat-count[data-astro-cid-pfmnb22i]{color:var(--text-subtle);font-size:.8rem}.cat-menu-extra[data-astro-cid-pfmnb22i]{border-top:1px solid var(--border);margin-top:var(--space-2);padding-top:var(--space-2);grid-column:1/-1}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px)scale(.98)}}@media (width<=719px){.cat-menu-label[data-astro-cid-pfmnb22i]{display:none}.cat-menu-button[data-astro-cid-pfmnb22i]{width:40px;padding:0}.cat-menu-panel[data-astro-cid-pfmnb22i]{width:auto;padding:var(--space-4) var(--gutter);transform-origin:top;border:0;border-radius:0;position:fixed;inset:0;overflow-y:auto}.cat-menu-top[data-astro-cid-pfmnb22i]{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.cat-menu-title[data-astro-cid-pfmnb22i]{font-family:var(--font-display);font-size:1.25rem;font-weight:800}ul[data-astro-cid-pfmnb22i]{grid-template-columns:1fr}.cat-menu-close[data-astro-cid-pfmnb22i]{width:44px;padding:0}a[data-astro-cid-pfmnb22i]{padding:var(--space-4) var(--space-3);font-size:1.1rem}}.search-trigger{align-items:center;gap:var(--space-2);min-width:40px;height:40px;padding:0 var(--space-3);border:1px solid var(--border);background:var(--surface);color:var(--text-subtle);transition:border-color var(--dur-fast) var(--ease-out);border-radius:10px;font-size:.9rem;text-decoration:none;display:inline-flex}.search-trigger:hover{border-color:var(--border-strong);color:var(--text-muted)}.search-trigger svg{flex:none;width:18px;height:18px}.search-trigger-text{min-width:140px}.search-trigger-kbd{font-size:.75rem}@media (width<=719px){.search-trigger{background:0 0;border-color:#0000;justify-content:center;padding:0}.search-trigger-text,.search-trigger-kbd{display:none}}.palette{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:min(640px,100vw - 24px);max-height:min(70vh,640px);color:var(--text);box-shadow:var(--shadow-lg);margin:10vh auto auto;padding:0;overflow:hidden}.palette[open]{animation:palette-in var(--dur-base) var(--ease-out)}.palette::backdrop{backdrop-filter:blur(3px);animation:fade-in var(--dur-base) var(--ease-out);background:#0a0a0c73}@keyframes palette-in{0%{opacity:0;transform:translateY(-8px)scale(.97)}}.palette-inner{flex-direction:column;max-height:min(70vh,640px);display:flex}.palette-search{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);display:flex}.palette-search svg{width:20px;height:20px;color:var(--text-subtle);flex:none}.palette-input{min-width:0;color:var(--text);font:500 1.05rem/1.4 var(--font-body);padding:var(--space-2) 0;background:0 0;border:0;flex:1}.palette-input:focus{outline:none}.palette-input::-webkit-search-cancel-button{display:none}.palette-esc{border:1px solid var(--border);background:var(--surface-2);color:var(--text-subtle);cursor:pointer;border-radius:6px;padding:2px 8px;font-size:.75rem}.palette-results{padding:var(--space-2);flex:1;position:relative;overflow-y:auto}.palette-highlight{left:var(--space-2);right:var(--space-2);border-radius:var(--radius);background:var(--accent-soft);transition:transform var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out);pointer-events:none;opacity:0;position:absolute;top:0}.palette-group{text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);padding:var(--space-3) var(--space-3) var(--space-1);font-size:.75rem;font-weight:600}.palette-option{gap:0 var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius);cursor:pointer;animation:palette-option-in var(--dur-base) var(--ease-out) both;animation-delay:calc(min(var(--i,0), 8) * 25ms);grid-template-columns:1fr auto;display:grid;position:relative}@keyframes palette-option-in{0%{opacity:0;transform:translateY(4px)}}.palette-option-title{font-weight:600}.palette-option-meta{color:var(--text-subtle);align-self:center;font-size:.8rem}.palette-option-desc{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;font-size:.85rem;overflow:hidden}.palette-status,.palette-empty{color:var(--text-muted);padding:var(--space-3);margin:0}.palette-cats{gap:var(--space-2);padding:var(--space-3);flex-wrap:wrap;display:flex}.palette-cats a{padding:var(--space-1) var(--space-3);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;font-size:.85rem;text-decoration:none}.palette-footer{gap:var(--space-4);padding:var(--space-2) var(--space-4);border-top:1px solid var(--border);color:var(--text-subtle);font-size:.75rem;display:flex}@media (width<=480px){.palette{max-height:calc(100vh - 24px);margin-top:12px}.palette-inner{max-height:calc(100vh - 24px)}.palette-footer{display:none}}.breadcrumbs[data-astro-cid-vx4iavld]{color:var(--text-subtle);margin-bottom:var(--space-4);font-size:.875rem}ol[data-astro-cid-vx4iavld]{gap:var(--space-1) var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}li[data-astro-cid-vx4iavld]+li[data-astro-cid-vx4iavld]:before{content:"›";margin-right:var(--space-2);color:var(--border-strong)}a[data-astro-cid-vx4iavld]{color:var(--text-muted);text-decoration:none}a[data-astro-cid-vx4iavld]:hover{color:var(--accent);text-decoration:underline}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.toast-region{left:50%;bottom:var(--space-5);align-items:center;gap:var(--space-2);z-index:200;pointer-events:none;width:max-content;max-width:calc(100vw - 2 * var(--gutter));flex-direction:column;display:flex;position:fixed;transform:translate(-50%)}.toast{background:var(--text);color:var(--bg);padding:var(--space-3) var(--space-5);box-shadow:var(--shadow-lg);animation:toast-in var(--dur-base) var(--ease-spring);border-radius:999px;font-size:.925rem;font-weight:500}.toast-error{background:var(--danger);color:#fff}.toast.is-leaving{animation:toast-out var(--dur-base) var(--ease-out) forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)}}@keyframes toast-out{to{opacity:0;transform:translateY(8px)}}.ad-slot[data-astro-cid-ygkiugat]{justify-items:center;gap:4px;width:100%;margin-inline:auto;display:grid}.ad-label[data-astro-cid-ygkiugat]{letter-spacing:.08em;text-transform:uppercase;color:var(--text-subtle);font-size:.7rem}.ad-box[data-astro-cid-ygkiugat]{width:min(100%, var(--ad-w));height:var(--ad-h);text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius);background:repeating-linear-gradient(-45deg, var(--surface), var(--surface) 10px, var(--surface-2,var(--bg)) 10px, var(--surface-2,var(--bg)) 20px);color:var(--text-muted);place-content:center;gap:2px;display:grid}.ad-sample[data-astro-cid-ygkiugat]{font-family:var(--font-display);font-size:.95rem;font-weight:700}.ad-meta[data-astro-cid-ygkiugat]{font-size:.75rem}.ad-size-sm[data-astro-cid-ygkiugat]{display:none}@media (width<=727px){.ad-box[data-astro-cid-ygkiugat]{width:min(100%, var(--ad-w-sm));height:var(--ad-h-sm)}.ad-size-lg[data-astro-cid-ygkiugat]{display:none}.ad-size-sm[data-astro-cid-ygkiugat]{display:inline}}.ad-slot--sidebar[data-astro-cid-ygkiugat]{top:calc(var(--header-h,64px) + var(--space-4));align-self:start;position:sticky}@media (width<=1199px),(width>=1500px){.ad-slot--sidebar[data-astro-cid-ygkiugat]{display:none}}.ad-slot--rail[data-astro-cid-ygkiugat]{top:calc(var(--header-h,64px) + var(--space-5));margin-top:var(--space-6);align-self:start;position:sticky}@media (width<=1499px){.ad-slot--rail[data-astro-cid-ygkiugat]{display:none}}.site-header[data-astro-cid-z4jru4n3]{z-index:40;background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0}.header-inner[data-astro-cid-z4jru4n3]{align-items:center;gap:var(--space-2);min-height:64px;display:flex}.home-link[data-astro-cid-z4jru4n3]{margin-right:var(--space-3);border-radius:var(--radius-sm);text-decoration:none}.header-spacer[data-astro-cid-z4jru4n3]{flex:1}.page[data-astro-cid-z4jru4n3]{padding-block:var(--space-6) var(--space-8)}.site-footer[data-astro-cid-z4jru4n3]{border-top:1px solid var(--border);background:var(--surface);padding-block:var(--space-7) var(--space-5);font-size:.925rem}.footer-inner[data-astro-cid-z4jru4n3]{gap:var(--space-6);grid-template-columns:1fr;display:grid}@media (width>=720px){.footer-inner[data-astro-cid-z4jru4n3]{grid-template-columns:2fr 1fr 1fr}}.footer-tagline[data-astro-cid-z4jru4n3]{font-family:var(--font-display);margin:var(--space-3) 0 var(--space-1);font-weight:700}.footer-sub[data-astro-cid-z4jru4n3]{color:var(--text-muted)}.footer-heading[data-astro-cid-z4jru4n3]{text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);font-size:.8rem}.footer-col[data-astro-cid-z4jru4n3] ul[data-astro-cid-z4jru4n3]{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.footer-col[data-astro-cid-z4jru4n3] a[data-astro-cid-z4jru4n3]{color:var(--text-muted);text-decoration:none}.footer-col[data-astro-cid-z4jru4n3] a[data-astro-cid-z4jru4n3]:hover{color:var(--accent)}.footer-legal[data-astro-cid-z4jru4n3]{margin-top:var(--space-6);color:var(--text-subtle);font-size:.85rem}
