@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_246ccd{font-family:Geist,Geist Fallback;font-style:normal}.__variable_246ccd{--font-geist:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/013b72fa676f92e0-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b9408752a0c24fb9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/65f03d54ccadf4a8-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e038a29029a234f2-s.woff2) format("woff2");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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/2b5b02fc7e511755-s.woff2) format("woff2");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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/7d4881bb7e1bf84d-s.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_c29908{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_c29908{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}@font-face{font-family:Anuphan;font-style:normal;font-weight:100 700;font-display:swap;src:url(/_next/static/media/b86b71495302ed8f-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Anuphan;font-style:normal;font-weight:100 700;font-display:swap;src:url(/_next/static/media/28ed2746e72fcf41-s.woff2) format("woff2");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:Anuphan;font-style:normal;font-weight:100 700;font-display:swap;src:url(/_next/static/media/ce8d4b74114316ca-s.woff2) format("woff2");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:Anuphan;font-style:normal;font-weight:100 700;font-display:swap;src:url(/_next/static/media/d877add5adc7a711-s.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:Anuphan Fallback;src:local("Arial");ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.00%;size-adjust:101.17%}.__className_e82757{font-family:Anuphan,Anuphan Fallback;font-style:normal}.__variable_e82757{--font-anuphan:"Anuphan","Anuphan Fallback"}:root{--bg:#d7d6d0;--panel:#dcdbd5;--card:#e2e1db;--ink:#272727;--muted:#6f6d66;--line:rgba(39,39,39,0.16);--soft:rgba(39,39,39,0.09);--btn:#1f1f1f;--btn-text:#e9e8e2;--gold:#9a7b3f;--up:#5a7d5a;--down:#9d5a4f;--max:1000px;--sans:var(--font-geist),var(--font-anuphan),system-ui,-apple-system,sans-serif;--thai:var(--font-anuphan),var(--font-geist),system-ui,sans-serif;--mono:var(--font-geist-mono),var(--font-anuphan),ui-monospace,monospace;--ease:cubic-bezier(0.16,1,0.3,1);--nav-bg:rgba(220,219,213,0.85);--type-floor:0px;--type-read:0px;--w-soft:300}@media (max-width:480px){:root{--type-floor:14px;--type-read:15.5px;--w-soft:400}}[data-theme=dark]{--bg:#1c1c1c;--panel:#242424;--card:#2f2f2f;--ink:#e9e8e2;--muted:#96948c;--line:rgba(233,232,226,0.16);--soft:rgba(233,232,226,0.09);--btn:#e9e8e2;--btn-text:#1c1c1c;--nav-bg:rgba(36,36,36,0.85)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--thai);font-weight:400;line-height:1.7;-webkit-font-smoothing:antialiased;padding:32px clamp(12px,3.5vw,40px) 64px}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}::selection{background:var(--ink);color:var(--bg)}.mono{font-family:var(--mono)}.up{color:var(--up)}.down{color:var(--down)}.page{max-width:var(--max);margin:0 auto;background:var(--panel);border:1px solid var(--soft);min-height:82vh;display:flex;flex-direction:column}main{flex:1 1}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:14px;height:60px;padding:0 22px;border-bottom:1px solid var(--soft);background:var(--nav-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);overflow-x:auto}.nav>*{flex:none}.brand{display:flex;align-items:center;gap:9px;font-weight:500;font-size:16px;letter-spacing:-.02em}.logo-mark{width:22px;height:22px;display:block;flex:none;color:var(--ink)}.dot{width:9px;height:9px;background:var(--ink);flex:none}.brand-suffix{font-size:max(var(--type-floor),11px);color:var(--gold);letter-spacing:.15em}.brand-suffix,.nl{font-family:var(--mono)}.nl{font-size:max(var(--type-floor),12.5px);color:var(--muted);padding:4px 9px;border:1px solid transparent;transition:color .25s;white-space:nowrap}.nl.on,.nl:hover{color:var(--ink)}.nl.on{background:var(--card);border-color:var(--line)}.nav-lang{margin-left:auto;display:inline-flex;gap:2px}.nav-lang button{font-family:var(--mono);font-size:max(var(--type-floor),11px);color:var(--muted);padding:3px 7px;border:1px solid var(--line);background:transparent;cursor:pointer;border-radius:3px}.nav-lang button:hover{color:var(--ink)}.nav-lang button.active{color:var(--ink);border-color:var(--ink)}.avatar{margin-left:auto;font-family:var(--mono);font-size:max(var(--type-floor),12px);border:1px solid var(--line);background:var(--card);padding:4px 10px}section{padding:28px 22px}.eyebrow{display:inline-block;font-family:var(--mono);font-size:max(var(--type-floor),11.5px);letter-spacing:.08em;color:var(--muted);border:1px solid var(--line);background:var(--card);padding:3px 10px}.big-number{font-family:var(--sans);font-weight:300;font-size:clamp(34px,6vw,46px);letter-spacing:-.03em;margin:12px 0 2px}.sub{font-size:max(var(--type-floor),12px);margin-bottom:24px}.section-label,.sub{font-family:var(--mono);color:var(--muted)}.section-label{font-size:max(var(--type-floor),11.5px);letter-spacing:.1em}.btn{display:inline-flex;align-items:center;gap:8px;background:var(--btn);color:var(--btn-text);font-family:var(--mono);font-size:max(var(--type-floor),12px);padding:8px 16px;border:1px solid var(--btn);border-radius:2px;transition:transform .25s var(--ease),opacity .25s}.btn:hover{transform:translateY(-2px);opacity:.88}table{width:100%;border-collapse:collapse}th{font-family:var(--mono);font-size:max(var(--type-floor),11.5px);color:var(--muted);font-weight:400;text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);letter-spacing:.05em}td{font-size:14px;padding:11px 6px;border-bottom:1px solid var(--soft)}.num-cell{font-family:var(--mono);font-size:max(var(--type-floor),12.5px)}.ta-r{text-align:right}.alloc{margin-top:34px}.alloc-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.alloc-lede{font-size:max(var(--type-floor),13px);color:var(--muted)}.alloc-lede b{color:var(--ink);font-weight:500}.alloc-bar{display:flex;gap:2px;height:20px;margin-top:12px}.alloc-seg{position:relative;min-width:3px;display:flex;align-items:center;justify-content:center;transition:opacity .18s ease}.alloc-seg:first-child{border-radius:4px 0 0 4px}.alloc-seg:last-child{border-radius:0 4px 4px 0}.alloc-seg.is-dim{opacity:.32}.alloc-seg-label{font-family:var(--mono);font-size:max(var(--type-floor),10.5px);font-weight:600;letter-spacing:.02em;pointer-events:none}.alloc-list{list-style:none;margin:14px 0 0;padding:0}.alloc-row{display:grid;grid-template-columns:10px 1fr auto auto;grid-gap:10px;gap:10px;align-items:center;padding:7px 4px;border-bottom:1px solid var(--line);font-size:max(var(--type-floor),13px);transition:background .18s ease}.alloc-row.is-active{background:var(--line-soft,rgba(128,128,128,.08))}.alloc-row:last-child{border-bottom:0}.alloc-swatch{width:10px;height:10px;border-radius:2px}.alloc-swatch.is-empty{background:transparent}.alloc-name{color:var(--ink)}.alloc-pct{color:var(--muted);min-width:52px}.alloc-pct,.alloc-value{font-family:var(--mono);font-size:max(var(--type-floor),12px);text-align:right}.alloc-value{color:var(--ink);min-width:92px}.alloc-total{border-top:1px solid var(--line);margin-top:2px}.alloc-total .alloc-name,.alloc-total .alloc-pct,.alloc-total .alloc-value,.legend{color:var(--muted)}.legend{font-family:var(--mono);font-size:max(var(--type-floor),11.5px);margin-top:9px}.sq{display:inline-block;width:8px;height:8px;vertical-align:0;margin-right:5px}@media (max-width:560px){.alloc-row{grid-template-columns:10px 1fr auto;row-gap:2px}.alloc-value{grid-column:2/-1;text-align:left;min-width:0}}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:14px;gap:14px;margin:18px 0 14px}.card{background:var(--card);border:1px solid var(--line);padding:16px 18px}.card-head{display:flex;align-items:baseline}.goal-title{font-weight:500;font-size:15px}.goal-year{margin-left:auto;font-family:var(--mono);font-size:max(var(--type-floor),11.5px);color:var(--muted)}.goal-sub{font-size:max(var(--type-floor),13px);color:var(--muted);margin:6px 0 10px}.goal-foot{font-family:var(--mono);font-size:max(var(--type-floor),11.5px);color:var(--muted);margin-top:8px}.progress{height:6px;background:var(--soft)}.progress>div{height:6px;background:var(--gold)}.chip{margin-left:auto;font-family:var(--mono);font-size:max(var(--type-floor),11.5px);color:var(--muted);border:1px solid var(--line);padding:2px 8px}.whatif-row{display:flex;align-items:center;gap:14px;margin-bottom:14px}.whatif-result{border-top:1px solid var(--soft);padding-top:12px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.whatif-pmt{font-family:var(--sans);font-weight:500;font-size:26px;letter-spacing:-.02em}input[type=range]{flex:1 1;accent-color:var(--ink)}.form-card{margin:10px 0 16px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px}.field label{display:block;font-family:var(--mono);font-size:max(var(--type-floor),11px);letter-spacing:.06em;color:var(--muted);margin-bottom:4px}.field input,.field select{width:100%;background:var(--panel);border:1px solid var(--line);padding:7px 9px;font:inherit;font-size:max(var(--type-floor),13.5px);color:var(--ink);border-radius:2px}.field input:focus,.field select:focus{outline:1px solid var(--ink)}.form-actions{display:flex;gap:10px;align-items:center;margin-top:14px;flex-wrap:wrap}.btn.ghost{background:transparent;color:var(--ink);border:1px dashed var(--line)}.btn.ghost:hover{border-color:var(--ink);opacity:1}.btn:disabled{opacity:.55;transform:none;cursor:default}.form-error{font-family:var(--mono);font-size:max(var(--type-floor),12.5px);color:var(--down)}.presets{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.pill{border:1px solid var(--line);background:var(--panel);font-family:var(--mono);font-size:max(var(--type-floor),12px);padding:4px 12px;color:var(--ink);border-radius:2px}.pill.on,.pill:hover{border-color:var(--ink)}.pill.on{background:var(--card);font-weight:500}.mini{background:transparent;border:1px solid var(--line);font-family:var(--mono);font-size:max(var(--type-floor),11px);padding:2px 8px;border-radius:2px}.mini.up{color:var(--up)}.mini.down{color:var(--down)}.mini:hover{border-color:currentColor}.tx-row{display:flex;gap:12px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--soft);flex-wrap:wrap}.x-btn{background:transparent;border:1px solid transparent;color:var(--muted);font-size:15px;line-height:1;padding:2px 7px}.x-btn:hover{color:var(--down);border-color:var(--line)}.foot{border-top:1px solid var(--soft);padding:18px 22px;font-family:var(--mono);font-size:max(var(--type-floor),11px);color:var(--muted);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}@media (max-width:640px){body{padding:16px 8px 40px}.hide-sm{display:none}.nav{padding:0 14px;gap:10px}section{padding:22px 14px}}@keyframes spin{to{transform:rotate(1turn)}}.spin{animation:spin 1s linear infinite}