@font-face{font-family:Alfa Slab One;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/alfa-slab-one-vietnamese-400-normal.C0oZnEo7.woff2)format("woff2"),url(/_astro/alfa-slab-one-vietnamese-400-normal.BeSfPuN6.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Alfa Slab One;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/alfa-slab-one-latin-ext-400-normal.DZhSYPC8.woff2)format("woff2"),url(/_astro/alfa-slab-one-latin-ext-400-normal.Dg9tQUb7.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Alfa Slab One;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/alfa-slab-one-latin-400-normal.CbTZiZTW.woff2)format("woff2"),url(/_astro/alfa-slab-one-latin-400-normal.UIGeWgec.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/figtree-latin-ext-400-normal.CXAzuTZb.woff2)format("woff2"),url(/_astro/figtree-latin-ext-400-normal.Gbh-3PTk.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/figtree-latin-400-normal.g7Dtegnw.woff2)format("woff2"),url(/_astro/figtree-latin-400-normal.BD4aNku5.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/figtree-latin-ext-500-normal.Du0rIuHj.woff2)format("woff2"),url(/_astro/figtree-latin-ext-500-normal.BOEJvrb_.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/figtree-latin-500-normal.BWnGEVsr.woff2)format("woff2"),url(/_astro/figtree-latin-500-normal.B_yy1phn.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/figtree-latin-ext-600-normal.DJlfifZj.woff2)format("woff2"),url(/_astro/figtree-latin-ext-600-normal.CQqsimlV.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/figtree-latin-600-normal.Cv_xCTDl.woff2)format("woff2"),url(/_astro/figtree-latin-600-normal.BM_oTo4n.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/figtree-latin-ext-700-normal.CS4sQkGV.woff2)format("woff2"),url(/_astro/figtree-latin-ext-700-normal.BoDi4KL2.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/figtree-latin-700-normal.th6qEP7c.woff2)format("woff2"),url(/_astro/figtree-latin-700-normal.BCCt2T1q.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f3f6f0;--surface:#fff;--ink:#17251c;--muted:#56685c;--line:#d3dcd0;--pre:#2d6942;--on-pre:#fff;--pre-soft:#e2eee4;--paille:#d6961b;--paille-soft:#f7e8c6;--danger:#b03e2c;--f-display:"Alfa Slab One", "Rockwell", "Roboto Slab", Georgia, serif;--f-body:"Figtree", "Segoe UI", system-ui, -apple-system, sans-serif;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#111913;--surface:#18231c;--ink:#e6eee7;--muted:#9aac9f;--line:#2c3a30;--pre:#74b98b;--on-pre:#0e1a12;--pre-soft:#1e3326;--paille:#e8b04a;--paille-soft:#3b2f15;--danger:#e5826e;color-scheme:dark}}:root[data-theme=dark]{--paper:#111913;--surface:#18231c;--ink:#e6eee7;--muted:#9aac9f;--line:#2c3a30;--pre:#74b98b;--on-pre:#0e1a12;--pre-soft:#1e3326;--paille:#e8b04a;--paille-soft:#3b2f15;--danger:#e5826e;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--f-body);margin:0;font-size:16px;line-height:1.5}[hidden]{display:none!important}a{color:var(--pre);font-weight:600}a:focus-visible{outline:2px solid var(--paille);outline-offset:2px;border-radius:4px}.wrap{max-width:880px;padding-block:24px 72px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));gap:24px;margin:0 auto;display:grid}.wrap.wide{max-width:1040px}.topbar{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;font-size:.9rem;display:flex}.topbar form{margin:0}.linkbtn{font:inherit;color:var(--pre);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.linkbtn:focus-visible{outline:2px solid var(--paille);outline-offset:2px;border-radius:4px}header.hero{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;display:grid}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--pre);font-size:.78rem;font-weight:700}h1{font-family:var(--f-display);text-wrap:balance;margin:.3rem 0 .6rem;font-size:clamp(1.9rem,5.2vw,2.9rem);font-weight:400;line-height:1.08}.lede{color:var(--muted);max-width:62ch;margin:0}.stamp{background:var(--paille);color:#1e1708;text-align:center;width:108px;height:108px;box-shadow:0 0 0 5px var(--paper), 0 0 0 7px var(--paille);border-radius:50%;place-items:center;display:grid;transform:rotate(-9deg)}.stamp span{letter-spacing:.14em;text-transform:uppercase;font-size:.7rem;font-weight:700;display:block}.stamp b{font-family:var(--f-display);font-size:1.9rem;font-weight:400;line-height:1;display:block}@media (width<=520px){.stamp{width:80px;height:80px}.stamp b{font-size:1.35rem}.stamp span{font-size:.58rem}}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:6px;display:flex}.tab{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;margin-right:16px;padding:10px 4px;font-weight:600;text-decoration:none}.tab[aria-current=page]{color:var(--ink);border-bottom-color:var(--paille)}.tab:focus-visible{outline:2px solid var(--pre);outline-offset:2px;border-radius:4px}.count{background:var(--pre-soft);min-width:1.6em;color:var(--pre);text-align:center;font-variant-numeric:tabular-nums;border-radius:999px;margin-left:6px;padding:0 .4em;font-size:.8rem;display:inline-block}.notice{border:1px solid var(--line);background:var(--paille-soft);border-radius:12px;padding:12px 16px;font-size:.92rem}.notice.err{border-color:var(--danger)}.block{background:var(--surface);border:1px solid var(--line);border-radius:14px;gap:20px;min-width:0;padding:24px;display:grid}@media (width<=520px){.block{padding:18px}}.block h2{font-family:var(--f-display);text-wrap:balance;margin:.2rem 0 0;font-size:1.4rem;font-weight:400;line-height:1.2}.block h3{margin:0;font-size:1rem}.hint{color:var(--muted);max-width:66ch;margin:0;font-size:.92rem}.section-hint{margin-top:6px}.sub{gap:10px;min-width:0;display:grid}fieldset.form-body{border:0;gap:24px;min-width:0;margin:0;padding:0;display:grid}.legend{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;gap:12px;font-size:.78rem;display:flex}.matrix{display:grid}.lk{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding-block:14px;display:grid}.lk-text{min-width:0;font-weight:600}.scale{gap:6px;display:flex}.scale label{border:1.5px solid var(--line);cursor:pointer;font-variant-numeric:tabular-nums;background:var(--surface);border-radius:10px;place-items:center;width:44px;height:44px;font-weight:700;transition:background .12s,border-color .12s;display:grid;position:relative}.scale label.ns{width:auto;color:var(--muted);margin-left:6px;padding:0 10px;font-size:.85rem;font-weight:500}.scale label:hover{border-color:var(--pre)}.scale input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.scale label:has(input:checked){background:var(--pre);border-color:var(--pre);color:var(--on-pre)}.scale label.ns:has(input:checked){background:var(--muted);border-color:var(--muted);color:var(--surface)}.scale label:has(input:focus-visible){outline:2px solid var(--paille);outline-offset:2px}@media (width<=640px){.lk{grid-template-columns:1fr;gap:10px}.scale{flex-wrap:wrap}.scale label{flex:1;width:auto;min-width:40px}.scale label.ns{flex-basis:100%;height:38px;margin-left:0}}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1.5px solid var(--line);cursor:pointer;background:var(--surface);border-radius:999px;align-items:center;padding:8px 14px;font-weight:500;transition:background .12s,border-color .12s,opacity .12s;display:inline-flex;position:relative}.chip:hover{border-color:var(--pre)}.chip input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.chip:has(input:checked){background:var(--pre-soft);border-color:var(--pre);color:var(--ink);font-weight:700}.chip:has(input:checked):before{content:"✓";color:var(--pre);margin-right:6px}.chip:has(input:focus-visible){outline:2px solid var(--paille);outline-offset:2px}.chip:has(input:disabled:not(:checked)){opacity:.45;cursor:not-allowed}.chip:has(input:disabled) input{cursor:not-allowed}.field{gap:6px;min-width:0;display:grid}.field>label,.qlabel{font-size:.98rem;font-weight:600}.two{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.three{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}@media (width<=640px){.two,.three{grid-template-columns:1fr}}input[type=text],input[type=email],input[type=password],textarea{font:inherit;color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:10px;width:100%;padding:10px 12px}textarea{resize:vertical;min-height:96px}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,textarea:focus{outline:2px solid var(--pre);outline-offset:1px;border-color:var(--pre)}::placeholder{color:var(--muted);opacity:.75}fieldset:disabled input,fieldset:disabled textarea{opacity:.8}.complete{background:var(--paper);border:1.5px dashed var(--line);border-radius:12px;gap:8px;padding:16px 18px;display:grid}.complete label{font-family:var(--f-display);font-size:1.15rem;font-weight:400;line-height:1.3}.complete textarea{background:var(--surface);min-height:64px}.portraits{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}@media (width<=720px){.portraits{grid-template-columns:1fr}}.pcard{border:1.5px dashed var(--line);background:var(--paper);border-radius:12px;gap:14px;min-width:0;padding:18px;display:grid}.pcard-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.pcard-head b{font-family:var(--f-display);font-size:1.15rem;font-weight:400}.pcard-head span{color:var(--muted);font-size:.8rem}.pcard textarea{background:var(--surface);min-height:70px}.pcard input[type=text]{background:var(--surface)}.bipolar{display:grid}.bp{border-top:1px solid var(--line);gap:8px;padding-block:14px;display:grid}.bp-head{justify-content:space-between;gap:12px;font-weight:700;display:flex}.bp-head span:last-child{text-align:right}.bp-row{grid-template-columns:7.5em minmax(0,1fr);align-items:center;gap:12px;display:grid}.bp-tag{color:var(--muted);font-size:.85rem;font-weight:600}.bp .scale{justify-content:space-between}.bp .scale label{flex:1;width:auto;max-width:64px}.bp-row.want .scale label:has(input:checked){background:var(--paille);border-color:var(--paille);color:#1e1708}@media (width<=520px){.bp-row{grid-template-columns:1fr;gap:6px}}.actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.btn{font:inherit;cursor:pointer;border:1.5px solid var(--pre);border-radius:10px;padding:12px 20px;font-weight:700;text-decoration:none;display:inline-block}.btn-primary{background:var(--pre);color:var(--on-pre)}.btn-ghost{color:var(--pre);background:0 0}.btn-danger{color:var(--danger);border-color:var(--danger);background:0 0}.btn-small{border-radius:8px;padding:6px 12px;font-size:.88rem}.btn:disabled{opacity:.5;cursor:wait}.btn:focus-visible{outline:2px solid var(--paille);outline-offset:2px}.status{font-size:.92rem}.status.ok{color:var(--pre);font-weight:600}.status.err{color:var(--danger);font-weight:600}.errors{color:var(--danger);margin:0;padding-left:20px;font-size:.92rem}.fallback{width:100%;min-height:160px;font-size:.85rem}.part-head{gap:6px;padding:28px 4px 0;scroll-margin-top:16px;display:grid}.part-head .lede{max-width:66ch}.part-title{font-family:var(--f-display);text-wrap:balance;margin:0;font-size:clamp(1.6rem,4vw,2.1rem);font-weight:400;line-height:1.1}.toc{gap:10px;margin:0;padding-left:1.4em;display:grid}.toc li::marker{font-family:var(--f-display);color:var(--pre)}.toc strong{display:block}.toc-inline{flex-wrap:wrap;gap:6px 16px;margin-top:14px;font-size:.9rem;display:flex}.thanks h2:focus{outline:none}.thanks p{margin:0}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.code-form{gap:12px;max-width:420px;display:grid}.code-form input{letter-spacing:.08em;text-transform:uppercase;font-size:1.3rem;font-weight:700}.res{gap:4px;display:grid}.res-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1.3fr) minmax(0,1.2fr) 4.5em 56px;align-items:center;gap:12px;padding-block:8px;display:grid}.res-row.counts{grid-template-columns:minmax(0,1.3fr) minmax(0,1.2fr) 4.5em}.res-label{min-width:0}.res-label small{color:var(--muted);display:block}.track{background:var(--pre-soft);border-radius:6px;height:12px;overflow:hidden}.fill{background:var(--pre);border-radius:6px;height:100%}.counts .fill{background:var(--paille)}.val{font-variant-numeric:tabular-nums;text-align:right;font-weight:700}.val small{color:var(--muted);font-weight:500}.histo{align-items:flex-end;gap:2px;height:26px;display:flex}.histo i{background:var(--pre);opacity:.75;border-radius:2px 2px 0 0;flex:1;min-height:2px}@media (width<=640px){.res-row,.res-row.counts{grid-template-columns:minmax(0,1fr) 4.5em}.res-row .track{grid-area:2/1/auto/-1}.histo{display:none}}.words{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.word{background:var(--pre-soft);color:var(--ink);overflow-wrap:anywhere;border-radius:999px;align-items:baseline;gap:6px;padding:4px 12px;font-weight:600;display:inline-flex}.word sup{color:var(--pre);font-variant-numeric:tabular-nums;font-size:.75rem}.words.neg .word{background:var(--paille-soft)}.words.neg .word sup{color:var(--ink)}.kpi{flex-wrap:wrap;align-items:baseline;gap:8px 24px;display:flex}.kpi b{font-family:var(--f-display);font-variant-numeric:tabular-nums;font-size:2.4rem;font-weight:400;line-height:1}.quotes{gap:10px;margin:0;padding:0;list-style:none;display:grid}.quotes li{background:var(--paper);border-left:3px solid var(--paille);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:0 8px 8px 0;padding:10px 14px}.empty{color:var(--muted);text-align:center;padding:28px 12px}.empty b{color:var(--ink);margin-bottom:4px;font-size:1.05rem;display:block}.rcards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.rcard{background:var(--paper);border:1px solid var(--line);overflow-wrap:anywhere;border-radius:12px;align-content:start;gap:8px;min-width:0;padding:14px;display:grid}.rcard .tag{letter-spacing:.06em;text-transform:uppercase;background:var(--pre-soft);color:var(--pre);border-radius:999px;justify-self:start;padding:2px 10px;font-size:.75rem;font-weight:700}.rcard .tag.alt{background:var(--paille-soft);color:var(--ink)}.rcard b{font-size:1rem}.rcard p{margin:0;font-size:.92rem}.rcard p span{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:700;display:block}.bp-res{border-top:1px solid var(--line);gap:6px;padding-block:12px;display:grid}.bp-axis{height:22px;position:relative}.bp-axis:before{content:"";background:var(--line);height:2px;position:absolute;top:10px;left:0;right:0}.bp-axis .gap{background:var(--paille);opacity:.5;border-radius:2px;height:4px;position:absolute;top:9px}.bp-axis .dot{border-radius:50%;width:16px;height:16px;margin-left:-8px;position:absolute;top:3px}.bp-axis .dot.now{border:3px solid var(--pre);background:var(--surface)}.bp-axis .dot.want{background:var(--paille);border:3px solid var(--paille)}.bp-vals{color:var(--muted);flex-wrap:wrap;gap:4px 16px;font-size:.85rem;display:flex}.bp-vals b{color:var(--ink);font-variant-numeric:tabular-nums}.bp-key{color:var(--muted);flex-wrap:wrap;align-items:center;gap:16px;font-size:.85rem;display:flex}.bp-key i{vertical-align:-1px;border-radius:50%;width:12px;height:12px;margin-right:6px;display:inline-block}.bp-key i.now{border:3px solid var(--pre)}.bp-key i.want{background:var(--paille)}.state{letter-spacing:.04em;text-transform:uppercase;background:var(--pre-soft);color:var(--pre);border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:700}.state.closed{background:var(--paper);color:var(--muted);border:1px solid var(--line)}.inline-form{margin:0;display:inline}.rtable{display:grid}.rrow{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px 16px;padding-block:10px;display:grid}.remail{overflow-wrap:anywhere;min-width:0;font-weight:600}@media (width<=520px){.rrow{grid-template-columns:minmax(0,1fr) auto}.rrow .hint{grid-row:2}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
