@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-vietnamese-wdth-normal.rJmnGBSt.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-latin-ext-wdth-normal.7khWdh9v.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-latin-wdth-normal.DY7AcnAa.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light dark;--c-paper: #eef0f7;--c-sheet: #ffffff;--c-sheet-alt: #f3f4f9;--c-tint-band: #e2e6fa;--c-band: #191d5a;--c-band-deep: #10133f;--c-ink: #12163a;--c-ink-soft: #4a5072;--c-band-ink: #f4f5ff;--c-band-soft: #bcc0ee;--c-rule: #e3e6f0;--c-rule-strong: #6e74a8;--c-tint: #7076c9;--c-band-tint: #8d93ff;--c-accent: #3034a8;--c-accent-ink: #ffffff;--c-accent-hover: #24288a;--c-accent-soft: #eceefc;--c-on-band-accent: #ffd27a;--c-on-band-accent-ink: #1a1640;--c-on-band-accent-hover: #ffe1a3;--c-good: #146b45;--c-good-soft: #e3f4ea;--c-warn: #8a4b00;--c-warn-soft: #fcf1df;--c-bad: #b3261e;--c-bad-soft: #fcebe9;--c-focus: #b45309;--font: "Archivo Variable", "Archivo", "Helvetica Neue", Arial, system-ui, sans-serif;--wide: 118%;--normal: 100%;--narrow: 85%;--fs-micro: .6875rem;--fs-xs: .8125rem;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: clamp(1.625rem, 1.25rem + 1.3vw, 2.125rem);--fs-3xl: clamp(2.125rem, 1.35rem + 3vw, 3.5rem);--fs-denom: clamp(2.75rem, 2rem + 2.4vw, 3.5rem);--fw-body: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-black: 800;--lh-tight: 1.08;--lh-snug: 1.25;--lh-body: 1.6;--measure: 66ch;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 72px;--s-9: 104px;--r-sm: 6px;--r-md: 8px;--r-lg: 14px;--rule: 1px solid var(--c-rule);--frame: 1px solid var(--c-rule);--shadow-sm: 0 1px 2px rgb(18 22 58 / 6%);--shadow-doc: 0 1px 2px rgb(18 22 58 / 6%), 0 12px 32px -12px rgb(18 22 58 / 18%);--shadow-lift: 0 2px 4px rgb(18 22 58 / 6%), 0 18px 40px -16px rgb(18 22 58 / 26%);--ease: cubic-bezier(.2, .7, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.4, .64, 1);--t-fast: .15s;--t-med: .3s;--t-slow: .7s;--stagger: 80ms;--page-max: 1160px;--gutter: 16px}@media(min-width:760px){:root{--gutter: 32px}}@media(prefers-color-scheme:dark){:root{--c-paper: #0d0f20;--c-sheet: #151830;--c-sheet-alt: #1a1d3a;--c-tint-band: #12152e;--c-band: #1d2163;--c-band-deep: #090b22;--c-ink: #e8e9f7;--c-ink-soft: #a9adcf;--c-rule: #272b4f;--c-rule-strong: #7c82c8;--c-tint: #6d73d6;--c-accent: #aeb2ff;--c-accent-ink: #12143a;--c-accent-hover: #cdd0ff;--c-accent-soft: #22265a;--c-good: #7ad9a5;--c-good-soft: #12301f;--c-warn: #f2b866;--c-warn-soft: #33260f;--c-bad: #ff9a90;--c-bad-soft: #3b1a17;--c-focus: #ffd27a;--shadow-sm: 0 1px 2px rgb(0 0 0 / 30%);--shadow-doc: 0 1px 2px rgb(0 0 0 / 30%), 0 12px 32px -12px rgb(0 0 0 / 60%);--shadow-lift: 0 2px 4px rgb(0 0 0 / 30%), 0 18px 40px -16px rgb(0 0 0 / 70%)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:80px}body{margin:0;background:var(--c-paper);color:var(--c-ink);font-family:var(--font);font-stretch:var(--normal);font-size:var(--fs-md);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}a{color:var(--c-accent);text-underline-offset:.2em;text-decoration-thickness:1px;transition:color var(--t-fast)}a:hover{color:var(--c-accent-hover)}:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}h1,h2,h3,h4{margin:0;line-height:var(--lh-snug);font-weight:var(--fw-bold)}h2{font-size:var(--fs-2xl);letter-spacing:-.022em;text-wrap:balance}h3{font-size:var(--fs-lg);letter-spacing:-.01em}p{margin:0 0 var(--s-4)}[hidden]{display:none!important}.wrap{max-width:var(--page-max);margin:0 auto;padding:0 var(--gutter)}.muted{color:var(--c-ink-soft)}.small{font-size:var(--fs-xs);color:var(--c-ink-soft)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip{position:absolute;left:-9999px}.skip:focus{left:var(--s-4);top:var(--s-2);z-index:30;background:var(--c-sheet);color:var(--c-ink);padding:var(--s-2) var(--s-3)}.guilloche,.wave,.micro,.conv-micro,.corner{display:none!important}.top{background:var(--c-band-deep);color:var(--c-band-ink);position:sticky;top:0;z-index:10;border-bottom:1px solid color-mix(in srgb,var(--c-band-tint) 22%,transparent)}.top-in{display:flex;align-items:center;gap:var(--s-5);height:64px}.logo{display:flex;align-items:center;gap:10px;color:var(--c-band-ink);text-decoration:none;font-weight:var(--fw-black);font-stretch:var(--wide);font-size:1.0625rem;letter-spacing:-.01em}.logo:hover{color:var(--c-band-ink)}.logo svg{width:30px;height:30px;flex:none}.logo .mark-l{display:none}.top-in>nav{display:flex;gap:2px;margin-left:auto}.top-in>nav a{color:var(--c-band-soft);text-decoration:none;font-size:var(--fs-sm);font-weight:var(--fw-medium);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);transition:color var(--t-fast),background-color var(--t-fast)}.top-in>nav a:hover{color:var(--c-band-ink);background:color-mix(in srgb,var(--c-band-ink) 8%,transparent)}.top-in>nav a.on{color:var(--c-band-ink);background:color-mix(in srgb,var(--c-band-ink) 13%,transparent)}.menu{display:none}.top details.menu{border:0}.menu summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:var(--s-2);min-width:44px;min-height:44px;padding:0 var(--s-2);color:var(--c-band-ink);cursor:pointer;border:1px solid color-mix(in srgb,var(--c-band-tint) 45%,transparent);border-radius:var(--r-md)}.menu summary::-webkit-details-marker{display:none}.menu summary:after{content:none}.menu summary span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.menu[open] summary{background:color-mix(in srgb,var(--c-band-ink) 12%,transparent)}.menu nav{position:absolute;left:0;right:0;top:64px;background:var(--c-band-deep);border-bottom:1px solid color-mix(in srgb,var(--c-band-tint) 25%,transparent);padding:var(--s-2) var(--s-4) var(--s-4);display:grid;box-shadow:0 16px 32px #0000004d}.menu nav>a{display:flex;align-items:center;min-height:48px;color:var(--c-band-ink);text-decoration:none;font-weight:var(--fw-semibold);border-bottom:1px solid color-mix(in srgb,var(--c-band-tint) 22%,transparent)}.menu nav>a.on{color:var(--c-on-band-accent)}.menu-langs{display:flex;flex-wrap:wrap;gap:var(--s-2);padding-top:var(--s-3)}.menu-langs a{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:44px;color:var(--c-band-soft);text-decoration:none;font-size:var(--fs-sm);font-weight:var(--fw-semibold);border:1px solid color-mix(in srgb,var(--c-band-tint) 40%,transparent);border-radius:var(--r-sm)}.menu-langs a.on{color:var(--c-on-band-accent-ink);background:var(--c-on-band-accent);border-color:var(--c-on-band-accent)}@media(max-width:860px){.top-in>nav{display:none}.top .btn{margin-left:auto}.menu{display:block}.top-in{gap:var(--s-3)}}.top .btn{white-space:nowrap}@media(max-width:400px){.top-in{gap:var(--s-2)}.logo{font-size:.875rem;font-stretch:112%;gap:6px}.logo svg{width:24px;height:24px}.top .btn.sm{padding:0 var(--s-3)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:46px;padding:0 var(--s-5);border:1px solid var(--c-accent);border-radius:var(--r-md);background:var(--c-accent);color:var(--c-accent-ink);font:var(--fw-semibold) var(--fs-sm)/1 var(--font);letter-spacing:.005em;text-decoration:none;cursor:pointer;box-shadow:var(--shadow-sm);transition:background-color var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast) var(--ease)}.btn:hover{background:var(--c-accent-hover);border-color:var(--c-accent-hover);color:var(--c-accent-ink);box-shadow:var(--shadow-doc);transform:translateY(-1px)}.btn:active{transform:translateY(0);box-shadow:none}.btn.sm{min-height:38px;padding:0 var(--s-4)}.btn.ghost{background:var(--c-sheet);color:var(--c-ink);border-color:var(--c-rule-strong);box-shadow:none}.btn.ghost:hover{background:var(--c-accent-soft);color:var(--c-ink)}.btn.foil,.top .btn{background:var(--c-on-band-accent);border-color:var(--c-on-band-accent);color:var(--c-on-band-accent-ink)}.btn.foil:hover,.top .btn:hover{background:var(--c-on-band-accent-hover);border-color:var(--c-on-band-accent-hover);color:var(--c-on-band-accent-ink)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.band{position:relative;overflow:hidden;color:var(--c-band-ink);background:radial-gradient(55% 90% at 85% 15%,color-mix(in srgb,var(--c-band-tint) 30%,transparent),transparent 70%),linear-gradient(160deg,var(--c-band) 0%,var(--c-band-deep) 100%)}.band:before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(to bottom,transparent 0 39px,color-mix(in srgb,var(--c-band-tint) 22%,transparent) 39px 40px);-webkit-mask-image:linear-gradient(to right,transparent 35%,#000 85%);mask-image:linear-gradient(to right,transparent 35%,#000 85%)}.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:var(--s-7);align-items:center;padding-bottom:calc(var(--s-8) + var(--s-5))}.hero{position:relative;z-index:1;padding:var(--s-8) 0 calc(var(--s-8) + var(--s-5))}.hero-grid .hero{padding-bottom:0}.hero h1{font-size:var(--fs-3xl);font-weight:var(--fw-black);line-height:var(--lh-tight);letter-spacing:-.035em;max-width:15ch;text-wrap:balance;margin-bottom:var(--s-5);overflow-wrap:break-word}.hero .lead{font-size:var(--fs-lg);color:var(--c-band-soft);max-width:50ch;margin-bottom:var(--s-5)}.hero.short{padding-bottom:calc(var(--s-8) + var(--s-6))}.hero.solo{padding-bottom:var(--s-8)}.proof{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);margin:0;padding:0;list-style:none;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--c-band-ink)}.proof li{display:flex;align-items:center;gap:var(--s-2)}.proof li:before{content:"";flex:none;width:18px;height:18px;border-radius:50%;background:color-mix(in srgb,var(--c-on-band-accent) 18%,transparent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='m5.5 9.3 2.3 2.3 4.7-5' fill='none' stroke='%23ffd27a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 18px no-repeat}.sample{margin:var(--s-7) 0 0;min-width:0}.sample-cap{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--c-band-soft);margin:0 0 var(--s-2) var(--s-1)}.sample-card{color:var(--c-ink);background:var(--c-sheet);border:var(--frame);border-radius:var(--r-lg);box-shadow:0 24px 60px -20px #0000008c;overflow:hidden}.sample-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2);padding:var(--s-3) var(--s-4);border-bottom:var(--rule)}.sample-file{display:inline-flex;align-items:center;gap:var(--s-2);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--c-ink)}.sample-file svg{color:var(--c-accent)}.sample-chips{display:flex;gap:var(--s-1)}.sample-table{width:100%;border-collapse:collapse;font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.sample-table th,.sample-table td{padding:9px var(--s-4);text-align:left;white-space:nowrap;border-bottom:var(--rule)}.sample-table th{font-weight:var(--fw-semibold);color:var(--c-ink-soft);background:var(--c-sheet-alt)}.sample-table td:nth-child(2){white-space:normal}.sample-table .num{text-align:right}.sample-table td:last-child{font-weight:var(--fw-semibold)}.sample-check{display:flex;align-items:center;gap:var(--s-2);margin:0;padding:var(--s-3) var(--s-4);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--c-good);background:var(--c-good-soft)}.sample-check svg{flex:none}@media(max-width:960px){.hero-grid{grid-template-columns:1fr;gap:0;padding-bottom:0}.hero-grid .hero{padding-bottom:calc(var(--s-8) + var(--s-5))}.sample{display:none}}@media(max-width:600px){.hero,.hero-grid .hero{padding-top:var(--s-6);padding-bottom:calc(var(--s-8) + var(--s-2))}.hero.short{padding-bottom:calc(var(--s-8) + var(--s-4))}}.conv{position:relative;margin:calc(-1 * var(--s-8)) 0 0;background:var(--c-sheet);box-shadow:var(--shadow-lift);border:var(--frame);border-radius:var(--r-lg);z-index:1}.conv-frame{position:relative}.conv-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-4);padding:var(--s-5) var(--s-6) 0}.conv-head h2{font-size:var(--fs-xl);letter-spacing:-.015em}.conv-head .lock{display:inline-flex;align-items:center;gap:6px;margin-left:auto;color:var(--c-good);background:var(--c-good-soft);font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:5px var(--s-3);border-radius:999px}.conv-body{padding:var(--s-4) var(--s-6) var(--s-6)}.drop{position:relative;display:grid;place-items:center;gap:var(--s-1);text-align:center;cursor:pointer;overflow:hidden;padding:var(--s-7) var(--s-4);border:1.5px dashed var(--c-rule-strong);border-radius:var(--r-md);background:var(--c-sheet-alt);transition:background-color var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast)}.drop:before{content:"";width:44px;height:44px;margin-bottom:var(--s-2);border-radius:12px;background:var(--c-accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233034a8' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15V4M7.5 8.5 12 4l4.5 4.5'/%3E%3Cpath d='M4 14v4.5A1.5 1.5 0 0 0 5.5 20h13a1.5 1.5 0 0 0 1.5-1.5V14'/%3E%3C/svg%3E") center / 24px no-repeat;transition:transform var(--t-fast) var(--ease)}@media(prefers-color-scheme:dark){.drop:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23aeb2ff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15V4M7.5 8.5 12 4l4.5 4.5'/%3E%3Cpath d='M4 14v4.5A1.5 1.5 0 0 0 5.5 20h13a1.5 1.5 0 0 0 1.5-1.5V14'/%3E%3C/svg%3E")}}.drop:hover,.drop.over{background-color:var(--c-accent-soft);border-color:var(--c-accent)}.drop:hover:before,.drop.over:before{transform:translateY(-3px)}.drop.over{border-style:solid;box-shadow:0 0 0 4px color-mix(in srgb,var(--c-accent) 14%,transparent)}.drop:focus-within{outline:3px solid var(--c-focus);outline-offset:2px}.drop strong{font-size:var(--fs-xl);font-weight:var(--fw-bold);letter-spacing:-.015em}.drop input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.opts{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-5);align-items:center;margin-top:var(--s-4);font-size:var(--fs-sm)}.opts label{display:inline-flex;align-items:center;gap:var(--s-2);max-width:100%;flex-wrap:wrap}.opts select{font:inherit;min-height:40px;padding:0 var(--s-3);border-radius:var(--r-sm);border:1px solid var(--c-rule-strong);background:var(--c-sheet);color:var(--c-ink);max-width:100%}.opts input[type=checkbox]{width:18px;height:18px;accent-color:var(--c-accent);margin:0}.quota{margin-left:auto;color:var(--c-ink-soft);font-variant-numeric:tabular-nums}@media(max-width:600px){.conv{margin-top:calc(-1 * var(--s-8))}.conv-head,.conv-body{padding-left:var(--s-4);padding-right:var(--s-4)}.conv-head .lock{margin-left:0}.drop{padding:var(--s-6) var(--s-3)}.quota{margin-left:0}}.result{border-top:var(--rule);margin-top:var(--s-5);padding-top:var(--s-5)}.result h3{margin:0 0 var(--s-3);font-size:var(--fs-lg);word-break:break-all}.result>p.muted{font-size:var(--fs-sm)}.chips{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-bottom:var(--s-3);align-items:center}.chip{font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:3px var(--s-2);border:var(--rule);border-radius:999px;color:var(--c-ink-soft);background:var(--c-sheet);font-variant-numeric:tabular-nums;white-space:nowrap}.chip.good,.chip.bad{display:inline-flex;align-items:center;gap:6px;font-weight:var(--fw-bold);padding:4px var(--s-3);border:1px solid currentColor}.chip.good{color:var(--c-good);background:var(--c-good-soft)}.chip.bad{color:var(--c-bad);background:var(--c-bad-soft)}.chip.warn{background:var(--c-warn-soft);color:var(--c-warn);border-color:transparent}.note{padding:var(--s-3) var(--s-4);font-size:var(--fs-sm);margin:var(--s-2) 0;border-left:3px solid;border-radius:0 var(--r-sm) var(--r-sm) 0}.note.warn{background:var(--c-warn-soft);color:var(--c-warn)}.note.bad{background:var(--c-bad-soft);color:var(--c-bad)}.note a{color:inherit}.actions{display:flex;flex-wrap:wrap;gap:var(--s-2);margin:var(--s-4) 0;align-items:center}.tablebox{overflow:auto;max-height:460px;border:var(--frame);border-radius:var(--r-md)}table.preview{border-collapse:collapse;width:100%;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.preview th,.preview td{padding:8px var(--s-3);border-bottom:var(--rule);text-align:left;white-space:nowrap}.preview th{position:sticky;top:0;background:var(--c-band);color:var(--c-band-ink);font-weight:var(--fw-semibold);font-size:var(--fs-xs);letter-spacing:.01em}.preview tbody tr:nth-child(2n) td{background:var(--c-sheet-alt)}.preview tbody tr:last-child td{border-bottom:0}.preview td.num{text-align:right}.preview tr.badrow td{background:var(--c-bad-soft)!important;color:var(--c-bad)}.preview tr.badrow td.idx{box-shadow:inset 4px 0 0 var(--c-bad)}.preview td.idx{color:var(--c-ink-soft);text-align:right;width:1%}.fields{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);font-size:var(--fs-sm);margin:var(--s-2) 0 var(--s-3)}.fields b{color:var(--c-ink-soft);font-weight:var(--fw-medium)}.paywall{background:var(--c-accent-soft);padding:var(--s-4) var(--s-5);margin-top:var(--s-4);border-left:3px solid var(--c-accent);border-radius:0 var(--r-md) var(--r-md) 0}section.block{padding:var(--s-8) 0 0}section.block>h2{margin-bottom:var(--s-6);max-width:28ch}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-6);counter-reset:s;padding:0;margin:0;list-style:none}.steps li{counter-increment:s;position:relative;padding-top:var(--s-6);color:var(--c-ink-soft)}.steps li:before{content:counter(s);position:absolute;top:0;left:0;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--c-accent-soft);color:var(--c-accent);font-weight:var(--fw-bold);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.steps li:after{content:"";position:absolute;top:17px;left:46px;right:calc(-1 * var(--s-6) + 12px);border-top:1px dashed var(--c-rule-strong);opacity:.5}.steps li:last-child:after{content:none}.steps li{padding-top:calc(34px + var(--s-3))}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-6)}.point{padding-top:var(--s-4);border-top:var(--rule);position:relative}.point:before{content:"";position:absolute;top:-1px;left:0;width:40px;height:2px;background:var(--c-accent)}.point h3{margin-bottom:var(--s-2)}.point p{color:var(--c-ink-soft);margin:0}@media(max-width:820px){.steps,.grid3{grid-template-columns:1fr;gap:var(--s-5)}.steps li:after{content:none}}body{overflow-x:clip}section.trust,section.block:has(>.steps){position:relative;isolation:isolate;padding-bottom:var(--s-8);margin-top:var(--s-8);padding-top:var(--s-8)}section.trust:before,section.block:has(>.steps):before{content:"";position:absolute;inset:0 calc(50% - 50vw);z-index:-1;background:var(--c-tint-band)}section.block:has(>.steps){color:var(--c-band-ink)}section.block:has(>.steps):before{background:linear-gradient(160deg,var(--c-band) 0%,var(--c-band-deep) 100%)}section.block:has(>.steps)+section.block{padding-top:var(--s-8)}section.block:has(>.steps) .steps li{color:var(--c-band-soft)}section.block:has(>.steps) .steps li:before{background:var(--c-on-band-accent);color:var(--c-on-band-accent-ink)}section.block:has(>.steps) .steps li:after{border-color:var(--c-band-soft)}.trust-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--c-sheet);border:var(--frame);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}.trust-grid li{padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-2)}.trust-grid li+li{border-left:var(--rule)}.trust-ico{width:40px;height:40px;padding:8px;border-radius:10px;background:var(--c-accent-soft);color:var(--c-accent);margin-bottom:var(--s-2)}.trust-grid h3{font-size:var(--fs-md)}.trust-grid p{margin:0;color:var(--c-ink-soft);font-size:var(--fs-sm)}.trust-grid a{font-size:var(--fs-sm);font-weight:var(--fw-semibold);margin-top:auto;padding-top:var(--s-1)}@media(max-width:980px){.trust-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trust-grid li:nth-child(3){border-left:0}.trust-grid li:nth-child(n+3){border-top:var(--rule)}}@media(max-width:560px){.trust-grid{grid-template-columns:1fr}.trust-grid li+li{border-left:0;border-top:var(--rule)}}.faq{max-width:780px}details{border-bottom:var(--rule)}details:first-of-type{border-top:var(--rule)}summary{font-weight:var(--fw-semibold);cursor:pointer;padding:var(--s-4) var(--s-7) var(--s-4) 0;list-style:none;position:relative;transition:color var(--t-fast)}summary:hover{color:var(--c-accent)}summary::-webkit-details-marker{display:none}summary:after{content:"";position:absolute;right:var(--s-2);top:50%;width:9px;height:9px;margin-top:-7px;border:solid var(--c-accent);border-width:0 2px 2px 0;transform:rotate(45deg);transition:transform var(--t-fast) var(--ease)}details[open] summary:after{transform:translateY(4px) rotate(-135deg)}details p{color:var(--c-ink-soft);margin:0 0 var(--s-4);max-width:var(--measure)}.index{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);column-gap:var(--s-6)}.index a{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-4);padding:var(--s-4) 0;border-bottom:var(--rule);text-decoration:none;color:var(--c-ink)}.index a span{color:var(--c-ink-soft);font-size:var(--fs-xs);font-weight:var(--fw-medium);text-align:right}.index a strong{transition:color var(--t-fast)}.index a:hover strong{color:var(--c-accent)}@media(max-width:700px){.index{grid-template-columns:1fr}}.cmpbox{overflow-x:auto;background:var(--c-sheet);border:var(--frame);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.cmp{width:100%;border-collapse:collapse;font-size:var(--fs-sm);min-width:560px}.cmp th,.cmp td{padding:var(--s-3) var(--s-4);border-bottom:var(--rule);text-align:left;vertical-align:top}.cmp td+td,.cmp th+th{border-left:var(--rule)}.cmp thead th{background:var(--c-sheet-alt);color:var(--c-ink-soft);font-size:var(--fs-xs)}.cmp thead th.us{color:var(--c-accent)}.cmp tbody td:first-child{font-weight:var(--fw-semibold)}.cmp td.us{background:var(--c-accent-soft)}.cmp tbody tr:last-child td{border-bottom:0}.notes{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5);margin-top:calc(-1 * var(--s-8));position:relative;z-index:1}.note-card{position:relative;background:var(--c-sheet);border:var(--frame);border-radius:var(--r-lg);box-shadow:var(--shadow-doc)}.note-card>.in{padding:var(--s-6);height:100%;display:flex;flex-direction:column}.note-card .denoms{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-4)}.note-card .denom{font-size:var(--fs-denom);font-weight:var(--fw-black);line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.note-card .denom small{font-size:var(--fs-md);font-weight:var(--fw-medium);letter-spacing:0;margin-left:var(--s-1);color:var(--c-ink-soft)}.note-card h2{font-size:var(--fs-xl);margin:var(--s-4) 0 var(--s-1)}.note-card .sub{color:var(--c-ink-soft);font-size:var(--fs-sm);margin-bottom:var(--s-3)}.note-card ul{list-style:none;padding:var(--s-3) 0 0;margin:0 0 var(--s-5);flex:1;border-top:var(--rule)}.note-card li{padding:var(--s-2) 0 var(--s-2) var(--s-6);position:relative;font-size:var(--fs-sm)}.note-card li:before{content:"";position:absolute;left:3px;top:14px;width:10px;height:5px;border:solid var(--c-good);border-width:0 0 2px 2px;transform:rotate(-45deg)}.note-card .actions{margin:0}.note-card.pro{background:var(--c-band);border-color:var(--c-band);color:var(--c-band-ink);box-shadow:var(--shadow-lift)}.note-card.pro .denom small,.note-card.pro .sub{color:var(--c-band-soft)}.note-card.pro ul{border-color:color-mix(in srgb,var(--c-band-soft) 30%,transparent)}.note-card.pro li:before{border-color:var(--c-on-band-accent)}.note-card.pro .btn.ghost{background:transparent;color:var(--c-band-ink);border-color:var(--c-band-soft)}.note-card.pro .btn.ghost:hover{background:color-mix(in srgb,var(--c-band-ink) 12%,transparent)}.note-card.pro .small{color:var(--c-band-soft)}.note-card.pro .small a{color:var(--c-on-band-accent)}@media(max-width:760px){.notes{grid-template-columns:1fr}.note-card>.in{padding:var(--s-5)}}body{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}body>main{flex:1 0 auto;display:flex;flex-direction:column}body>main>.wrap{width:100%}.band-fill{flex:1 0 auto;display:flex;align-items:center}.band-fill>.wrap{width:100%}.band .btn.ghost{background:transparent;color:var(--c-band-ink);border-color:var(--c-band-soft)}.band .btn.ghost:hover{background:color-mix(in srgb,var(--c-band-ink) 12%,transparent);color:var(--c-band-ink)}.hero .actions{margin:var(--s-5) 0 0}.prose.doc{position:relative;z-index:1;max-width:820px;margin-top:calc(-1 * var(--s-8));padding:var(--s-7) var(--s-8);background:var(--c-sheet);border:var(--frame);border-radius:var(--r-lg);box-shadow:var(--shadow-lift)}.prose.doc>:first-child{margin-top:0}.prose.doc{margin-left:0;margin-right:0}main:has(.band-fill)+.foot{margin-top:0}.prose.doc h2{padding-top:var(--s-4);border-top:var(--rule)}@media(max-width:760px){.prose.doc{padding:var(--s-5) var(--s-4)}}@media(prefers-reduced-motion:no-preference){.prose.doc{animation:lift .9s var(--ease-out) .16s backwards}}.prose{max-width:var(--measure);padding-top:var(--s-7);padding-bottom:var(--s-7)}.prose h1{font-size:clamp(2rem,1.4rem + 2.4vw,3rem);font-weight:var(--fw-black);letter-spacing:-.03em;line-height:var(--lh-tight);margin-bottom:var(--s-5);text-wrap:balance}.prose h2{font-size:var(--fs-xl);margin:var(--s-6) 0 var(--s-3)}.prose ul{padding-left:1.2em}.prose li{margin-bottom:var(--s-2)}.prose li::marker{color:var(--c-accent)}.foot{flex:none;margin-top:var(--s-9);background:var(--c-band-deep);color:var(--c-band-soft);position:relative}.foot-in{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:var(--s-5);padding-top:var(--s-7);padding-bottom:var(--s-6);font-size:var(--fs-sm)}.foot-in strong{color:var(--c-band-ink);font-stretch:var(--wide);font-weight:var(--fw-black)}.foot-in p{margin-top:var(--s-2);max-width:40ch}.foot-in h4{margin:0 0 var(--s-2);font-size:var(--fs-sm);color:var(--c-band-ink)}.foot-in a{display:block;color:var(--c-band-soft);text-decoration:none;padding:3px 0}.foot-in a:hover{color:var(--c-band-ink);text-decoration:underline}.foot-in a.on{color:var(--c-on-band-accent)}.foot .small{color:var(--c-band-soft);padding-top:var(--s-4);padding-bottom:var(--s-6);border-top:1px solid color-mix(in srgb,var(--c-band-soft) 18%,transparent)}@media(max-width:700px){.foot-in{grid-template-columns:1fr 1fr}.foot-in>div:first-child{grid-column:1 / -1}}.act-form label{display:block;font-weight:var(--fw-semibold);margin-bottom:var(--s-2)}.act-row{display:flex;flex-wrap:wrap;gap:var(--s-2)}.act-row input{flex:1 1 280px;min-width:0;min-height:46px;padding:0 var(--s-3);font:var(--fs-md) var(--font);border:1px solid var(--c-rule-strong);border-radius:var(--r-md);background:var(--c-sheet);color:var(--c-ink)}#msg.ok{color:var(--c-good);font-weight:var(--fw-semibold)}#msg.err{color:var(--c-bad);font-weight:var(--fw-semibold)}.ledger{border:var(--rule);border-left:3px solid var(--c-accent);border-radius:0 var(--r-md) var(--r-md) 0;background:var(--c-sheet-alt);padding:var(--s-3) var(--s-4);margin:0 0 var(--s-4)}.ledger-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3)}.ledger-row+.ledger-row{margin-top:var(--s-2)}.ledger-row strong{font-size:var(--fs-sm);margin-right:var(--s-2)}.ledger-row label{display:inline-flex;align-items:center;gap:var(--s-2)}.ledger-row select{font:inherit;min-height:32px;border:1px solid var(--c-rule-strong);border-radius:var(--r-sm);background:var(--c-sheet);color:var(--c-ink)}.ledger-row input[type=checkbox]{accent-color:var(--c-accent)}.preview td.cat{color:var(--c-accent);font-weight:var(--fw-medium)}@media(pointer:coarse),(max-width:860px){.btn.sm,.logo,.opts select,.ledger-row select,input[type=text],input[type=email]{min-height:44px}.opts label,.ledger label{min-height:44px;display:inline-flex;align-items:center;gap:var(--s-2)}.foot-in a{display:flex;align-items:center;min-height:44px;padding:0}.faq summary{min-height:44px}.trust-grid a{display:inline-flex;align-items:center;min-height:44px}}@media(max-width:600px){.cmp{min-width:0}.cmp thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.cmp,.cmp tbody,.cmp tr,.cmp td{display:block}.cmp tr{border-bottom:var(--rule);padding:var(--s-3) var(--s-4)}.cmp tbody tr:last-child{border-bottom:0}.cmp td,.cmp td+td{border:0;padding:var(--s-1) 0}.cmp tbody td:first-child{font-size:var(--fs-xs);color:var(--c-ink-soft);padding-bottom:var(--s-2)}.cmp td.us{background:var(--c-accent-soft);padding:var(--s-2) var(--s-3);margin-bottom:var(--s-1);border-radius:var(--r-sm)}.cmp td.us:before,.cmp td:last-child:before{display:block;font-size:var(--fs-xs);font-weight:var(--fw-semibold);opacity:.75;content:attr(data-label)}}.filelist{list-style:none;margin:var(--s-4) 0 0;padding:0;display:grid;gap:var(--s-2);counter-reset:fl}.filelist li{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);background:var(--c-sheet);border:var(--rule);border-radius:var(--r-md);counter-increment:fl}.filelist li:before{content:counter(fl);min-width:1.5em;font-variant-numeric:tabular-nums;font-weight:var(--fw-bold);color:var(--c-ink-soft)}.filelist img{width:40px;height:40px;object-fit:cover;border:var(--rule);border-radius:var(--r-sm)}.fl-ico{display:inline-grid;place-items:center;width:40px;height:40px;font-size:var(--fs-micro);font-weight:var(--fw-black);color:var(--c-accent-ink);background:var(--c-accent);border-radius:var(--r-sm)}.fl-name{flex:1;min-width:0;overflow-wrap:anywhere;font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.fl-name small{display:block;font-weight:var(--fw-body);color:var(--c-ink-soft);font-size:var(--fs-xs)}.fl-btn{min-width:44px;min-height:44px;font:inherit;font-size:1.1rem;background:var(--c-sheet);color:var(--c-ink);border:1px solid var(--c-rule-strong);border-radius:var(--r-sm);cursor:pointer;transition:background-color var(--t-fast)}.fl-btn:hover:not(:disabled){background:var(--c-accent-soft)}.fl-btn:disabled{opacity:.35;cursor:default}.opts input[type=text]{font:inherit;min-height:40px;padding:0 var(--s-3);border-radius:var(--r-sm);border:1px solid var(--c-rule-strong);background:var(--c-sheet);color:var(--c-ink);width:12em;max-width:100%}.tool .actions{margin-top:var(--s-4);align-items:center}.tool-note{margin-top:var(--s-3);color:var(--c-ink-soft);max-width:70ch}.tool-out{margin-top:var(--s-4);padding:var(--s-4);border:var(--rule);border-left:3px solid var(--c-good);border-radius:0 var(--r-md) var(--r-md) 0;background:var(--c-good-soft)}.tool-out .actions{margin-top:var(--s-3)}.tool-ok{font-weight:var(--fw-semibold);color:var(--c-good)}.tool-warn{font-weight:var(--fw-semibold);color:var(--c-warn)}.tool-out:has(.tool-warn){border-left-color:var(--c-warn);background:var(--c-warn-soft)}.tool-err{margin-top:var(--s-4);padding:var(--s-3) var(--s-4);background:var(--c-bad-soft);color:var(--c-bad);font-weight:var(--fw-semibold);border-left:3px solid var(--c-bad);border-radius:0 var(--r-md) var(--r-md) 0}.tool-files{list-style:none;padding:0;margin:var(--s-3) 0 0;display:grid;gap:var(--s-1);font-size:var(--fs-sm)}.tool-files a{display:inline-flex;align-items:center;min-height:32px;overflow-wrap:anywhere}.tool-files small{color:var(--c-ink-soft);font-size:var(--fs-xs)}.tool-fname{font-size:var(--fs-sm);color:var(--c-ink-soft);overflow-wrap:anywhere;min-width:0}@media(pointer:coarse),(max-width:860px){.opts input[type=text],.tool-files a{min-height:44px}}@media(max-width:600px){.filelist li{flex-wrap:wrap;row-gap:var(--s-2)}.filelist .fl-name{flex:1 1 calc(100% - 120px)}.filelist .fl-name+.fl-btn{margin-left:auto}}.promo{position:relative;overflow:hidden;margin-top:var(--s-7);background:var(--c-band);color:var(--c-band-ink);border-radius:var(--r-lg);background-image:radial-gradient(70% 140% at 100% 0%,color-mix(in srgb,var(--c-band-tint) 28%,transparent),transparent 70%)}.promo-in{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-4) var(--s-6);padding:var(--s-6)}.promo-in>div{flex:1 1 320px;min-width:0}.promo h2{margin:0;font-size:var(--fs-xl);color:var(--c-band-ink)}.promo p{margin:var(--s-2) 0 0;color:var(--c-band-soft);max-width:60ch}@media(max-width:600px){.promo-in{padding:var(--s-5) var(--s-4)}.promo .btn{width:100%}}.toolgrid{list-style:none;padding:0;margin:var(--s-6) 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--s-3)}.toolgrid a{display:flex;flex-direction:column;gap:var(--s-2);height:100%;padding:var(--s-5);background:var(--c-sheet);border:var(--frame);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);text-decoration:none;color:var(--c-ink);transition:border-color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast) var(--ease)}.band+.wrap>.toolgrid:first-child{margin-top:calc(-1 * var(--s-8));position:relative;z-index:1}.toolgrid strong{font-size:var(--fs-md);font-weight:var(--fw-bold)}.toolgrid span{color:var(--c-ink-soft);font-size:var(--fs-sm)}.toolgrid a:hover{border-color:var(--c-accent);box-shadow:var(--shadow-lift);transform:translateY(-2px)}.toolgrid a:hover strong{color:var(--c-accent)}@media(prefers-reduced-motion:no-preference){.hero>*,.hero>div>*{animation:rise var(--t-slow) var(--ease-out) backwards}.hero>:nth-child(2),.hero>div>:nth-child(2){animation-delay:calc(var(--stagger) * 1)}.hero>:nth-child(3),.hero>div>:nth-child(3){animation-delay:calc(var(--stagger) * 2)}.hero>:nth-child(4),.hero>div>:nth-child(4){animation-delay:calc(var(--stagger) * 3)}.proof li{animation:rise var(--t-slow) var(--ease-out) backwards}.proof li:nth-child(1){animation-delay:.24s}.proof li:nth-child(2){animation-delay:.3s}.proof li:nth-child(3){animation-delay:.36s}.proof li:nth-child(4){animation-delay:.42s}.conv,.notes,.band+.wrap>.toolgrid:first-child{animation:lift .9s var(--ease-out) .16s backwards}.sample{animation:card-in .9s var(--ease-out) .2s backwards}.sample-table tbody tr{animation:row-in .5s var(--ease-out) backwards}.sample-table tbody tr:nth-child(1){animation-delay:.65s}.sample-table tbody tr:nth-child(2){animation-delay:.76s}.sample-table tbody tr:nth-child(3){animation-delay:.87s}.sample-table tbody tr:nth-child(4){animation-delay:.98s}.sample-check{animation:stamp .55s var(--ease-spring) 1.25s backwards}.sample-check svg circle{stroke-dasharray:44;animation:draw .6s var(--ease-out) 1.35s backwards}.sample-check svg path{stroke-dasharray:12;animation:draw-sm .35s var(--ease-out) 1.8s backwards}@supports (animation-timeline: view()){section.block>h2,.trust-grid,.cmpbox,.grid3>*,.faq,.index,.promo,.note-card{animation:reveal linear both;animation-timeline:view();animation-range:entry 5% cover 28%}.trust-grid li,.steps li,.toolgrid li{animation:reveal linear both;animation-timeline:view();animation-range:entry 0% cover 30%}.trust-grid li:nth-child(2),.steps li:nth-child(2),.toolgrid li:nth-child(2){animation-range:entry 6% cover 34%}.trust-grid li:nth-child(3),.steps li:nth-child(3),.toolgrid li:nth-child(3){animation-range:entry 12% cover 38%}.trust-grid li:nth-child(4),.toolgrid li:nth-child(4){animation-range:entry 18% cover 42%}.toolgrid li:nth-child(5){animation-range:entry 24% cover 46%}.trust-grid{animation:none}}.btn.foil,.top .btn{position:relative;overflow:hidden;isolation:isolate}.btn.foil:after,.top .btn:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgb(255 255 255 / .55) 50%,transparent 65%);transform:translate(-120%)}.btn.foil:hover:after,.top .btn:hover:after{transition:transform .7s var(--ease-out);transform:translate(120%)}.trust-ico{transition:transform var(--t-med) var(--ease-spring),background-color var(--t-med)}.trust-grid li:hover .trust-ico{transform:translateY(-3px) scale(1.06)}.drop.over{background-image:linear-gradient(90deg,var(--c-accent) 50%,transparent 0),linear-gradient(90deg,var(--c-accent) 50%,transparent 0),linear-gradient(0deg,var(--c-accent) 50%,transparent 0),linear-gradient(0deg,var(--c-accent) 50%,transparent 0);background-size:14px 2px,14px 2px,2px 14px,2px 14px;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-position:0 0,0 100%,0 0,100% 0;border-color:transparent;animation:march .6s linear infinite}.result,.tool-out,.tool-err{animation:rise .5s var(--ease-out) backwards}.result .chip.good,.result .chip.bad{animation:stamp .5s var(--ease-spring) .25s backwards}.preview tbody tr{animation:row-in .4s var(--ease-out) backwards}.preview tbody tr:nth-child(2){animation-delay:30ms}.preview tbody tr:nth-child(3){animation-delay:60ms}.preview tbody tr:nth-child(4){animation-delay:90ms}.preview tbody tr:nth-child(5){animation-delay:.12s}.preview tbody tr:nth-child(6){animation-delay:.15s}.preview tbody tr:nth-child(7){animation-delay:.18s}.preview tbody tr:nth-child(8){animation-delay:.21s}.preview tbody tr:nth-child(n+9){animation-delay:.24s}.filelist li{animation:rise .35s var(--ease-out) backwards}@supports (interpolate-size: allow-keywords){:root{interpolate-size:allow-keywords}details::details-content{block-size:0;overflow:hidden;opacity:0;transition:block-size var(--t-med) var(--ease-out),opacity var(--t-med),content-visibility var(--t-med) allow-discrete}details[open]::details-content{block-size:auto;opacity:1}}details[open]>:not(summary){animation:appear var(--t-med) var(--ease-out) backwards}@keyframes rise{0%{opacity:0;transform:translateY(16px)}}@keyframes lift{0%{opacity:0;transform:translateY(28px) scale(.985)}}@keyframes card-in{0%{opacity:0;transform:translateY(24px) scale(.97)}}@keyframes row-in{0%{opacity:0;transform:translate(-10px)}}@keyframes stamp{0%{opacity:0;transform:scale(1.12)}60%{opacity:1}}@keyframes draw{0%{stroke-dashoffset:44}}@keyframes draw-sm{0%{stroke-dashoffset:12}}@keyframes reveal{0%{opacity:0;transform:translateY(28px)}}@keyframes appear{0%{opacity:0;transform:translateY(4px)}}@keyframes march{to{background-position:14px 0,-14px 100%,0 -14px,100% 14px}}@view-transition{navigation:auto}.top{view-transition-name:site-header}::view-transition-old(root){animation:vt-out .18s var(--ease) both}::view-transition-new(root){animation:vt-in .32s var(--ease-out) both}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0;transform:translateY(8px)}}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
