@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");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}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");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}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-vietnamese-600-normal-BjlAJixd.woff2) format("woff2"),url(/assets/fraunces-vietnamese-600-normal-DlAl5EAR.woff) format("woff");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:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-ext-600-normal-BtzmzP0X.woff2) format("woff2"),url(/assets/fraunces-latin-ext-600-normal-B0Dy4lqi.woff) format("woff");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:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-600-normal-BFCDtZfi.woff2) format("woff2"),url(/assets/fraunces-latin-600-normal-DL5QCzvS.woff) format("woff");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}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");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{--bg: #f5f1e8;--surface: #fcfaf4;--ink: #17150f;--ink-2: #5c574b;--line: #e3dccb;--board: #dcae58;--seal: #b8402e;--positive: #3e6b4f;--focus: #2c3a64;--stone-black: #1c1a17;--stone-white: #f4efe4;--scrim: rgba(23, 21, 15, .4);--font-display: "Fraunces", "Noto Serif", georgia, serif;--font-ui: "Inter", "Noto Sans", system-ui, sans-serif;--font-data: "IBM Plex Mono", ui-monospace, monospace;--fs-caption: 12px;--fs-body-s: 14px;--fs-body: 16px;--fs-title-s: 20px;--fs-title: 25px;--fs-display-s: 31px;--fs-display: 39px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-6: 24px;--sp-8: 32px;--sp-12: 48px;--sp-16: 64px;--gutter: 16px;--r-input: 6px;--r-card: 10px;--r-sheet: 16px;--elev-raised: 0 1px 2px rgba(23, 21, 15, .08);--elev-overlay: 0 8px 24px rgba(23, 21, 15, .16);--t-micro: .12s;--t-small: .16s;--t-structural: .24s;--ease-std: cubic-bezier(.2, 0, 0, 1);--ease-exit: cubic-bezier(.3, 0, .6, 1);color-scheme:light}[data-theme=midnight]{--bg: #121110;--surface: #1b1a18;--ink: #ede8dc;--ink-2: #a8a294;--line: #2a2824;--board: #c89b4b;--seal: #c94f3c;--positive: #5e8b6f;--focus: #8fa0ce;--scrim: rgba(0, 0, 0, .55);--elev-raised: 0 1px 2px rgba(0, 0, 0, .4);--elev-overlay: 0 8px 24px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-body);line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior:none}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;cursor:pointer}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:0ms!important;transition-duration:0ms!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);border-radius:var(--r-input);font-weight:600;font-size:var(--fs-body);padding:10px 20px;transition:transform var(--t-micro) var(--ease-std),opacity var(--t-micro) var(--ease-std);-webkit-user-select:none;user-select:none;min-height:44px}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.4;cursor:default}.btn-primary{background:var(--ink);color:var(--bg)}.btn-secondary{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}.btn-ghost{background:transparent;color:var(--ink-2)}.btn-ghost:hover{color:var(--ink)}.btn-small{min-height:36px;padding:6px 14px;font-size:var(--fs-body-s)}@media(hover:hover){.btn-primary:hover{background:color-mix(in srgb,var(--ink) 86%,var(--bg))}.btn-secondary:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}}.card{background:var(--surface);border-radius:var(--r-card);box-shadow:var(--elev-raised);border:1px solid var(--line)}.card-tap{cursor:pointer;transition:transform var(--t-small) var(--ease-std),box-shadow var(--t-small) var(--ease-std),border-color var(--t-small) var(--ease-std)}@media(hover:hover){.card-tap:hover{transform:translateY(-1px);box-shadow:0 3px 10px #17150f1a;border-color:color-mix(in srgb,var(--ink-2) 40%,var(--line))}}.card-tap:active{transform:translateY(0) scale(.995)}.overline{font-size:11px;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}.mode-card{display:flex;align-items:center;gap:12px;padding:12px 14px;text-align:left}.mode-card svg{flex-shrink:0;color:var(--ink-2)}.seg{display:flex;gap:2px;background:color-mix(in srgb,var(--ink) 6%,transparent);border-radius:8px;padding:3px}.seg button{flex:1;min-height:40px;border-radius:6px;font-weight:600;font-size:var(--fs-body-s);color:var(--ink-2);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2;transition:background var(--t-small) var(--ease-std),color var(--t-small) var(--ease-std),box-shadow var(--t-small) var(--ease-std);-webkit-tap-highlight-color:transparent}.seg button .caption{font-size:11px;color:inherit;opacity:.75}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--elev-raised)}.seg button:active{transform:scale(.97)}.input{width:100%;min-height:46px;padding:10px 14px;border-radius:var(--r-input);border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:inherit}.input::placeholder{color:var(--ink-2);opacity:.8}.input:focus{outline:2px solid var(--focus);outline-offset:1px;border-color:transparent}.chip-soon{font-size:10px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:color-mix(in srgb,var(--seal) 12%,transparent);color:var(--seal);white-space:nowrap}.display{font-family:var(--font-display);font-weight:600;line-height:1.2}.data{font-family:var(--font-data);font-variant-numeric:tabular-nums}.caption{font-size:var(--fs-caption);color:var(--ink-2)}.hairline{border:none;border-top:1px solid var(--line)}.toast-wrap{position:fixed;bottom:calc(72px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);z-index:100;display:flex;flex-direction:column;gap:var(--sp-2);align-items:center;pointer-events:none}@media(min-width:760px){.toast-wrap{bottom:auto;left:auto;top:20px;right:20px;transform:none;align-items:flex-end}}.toast{background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:var(--r-card);box-shadow:var(--elev-overlay);font-size:var(--fs-body-s);max-width:340px;animation:toast-in var(--t-small) var(--ease-std);pointer-events:auto}.toast.error{background:var(--seal);color:#fff}.toast.success{background:var(--positive);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:90;animation:fade-in var(--t-structural) var(--ease-std)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.sheet{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(480px,100%);background:var(--surface);border-radius:var(--r-sheet) var(--r-sheet) 0 0;box-shadow:var(--elev-overlay);z-index:95;padding:var(--sp-6) var(--sp-4) calc(var(--sp-6) + env(safe-area-inset-bottom));animation:sheet-in var(--t-structural) var(--ease-std)}@media(min-width:760px){.sheet{bottom:auto;top:50%;transform:translate(-50%,-50%);border-radius:var(--r-sheet)}}@keyframes sheet-in{0%{opacity:0;transform:translate(-50%) translateY(24px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(min-width:760px){@keyframes sheet-in{0%{opacity:0;transform:translate(-50%,calc(-50% + 16px))}to{opacity:1;transform:translate(-50%,-50%)}}}.app-shell{height:100%;display:flex;flex-direction:column}.app-main{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.tabbar{display:flex;border-top:1px solid var(--line);background:var(--surface);padding-bottom:env(safe-area-inset-bottom);flex-shrink:0;position:relative}.tabbar .tab-gap{flex:1;pointer-events:none}.tabbar .go-fab{position:absolute;left:50%;top:0;transform:translate(-50%,-52%);width:64px;height:64px;padding:0;border-radius:50%;background:radial-gradient(circle at 34% 26%,#ffffff80,#fff0 36%),radial-gradient(circle at 42% 34%,#ecc98a 0%,var(--board) 52%,#b07c26 100%);color:#17150f;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:18px;letter-spacing:.1em;box-shadow:0 1px 2px #17150f40,0 6px 18px color-mix(in srgb,var(--board) 40%,transparent),inset 0 1px 1px #ffffff73,inset 0 -3px 6px #6e480c47;z-index:4;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow var(--t-small) var(--ease-std);-webkit-tap-highlight-color:transparent}@media(hover:hover){.tabbar .go-fab:hover{transform:translate(-50%,-58%);box-shadow:0 2px 4px #17150f40,0 10px 24px color-mix(in srgb,var(--board) 50%,transparent),inset 0 1px 1px #ffffff73,inset 0 -3px 6px #6e480c47}}.tabbar .go-fab:active{transform:translate(-50%,-46%) scale(.9);transition:transform 70ms var(--ease-exit),box-shadow 70ms var(--ease-exit);box-shadow:0 1px 1px #17150f4d,0 3px 8px color-mix(in srgb,var(--board) 28%,transparent),inset 0 1px 1px #ffffff59,inset 0 -2px 5px #6e480c59}.go-fab:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid #ecc98a;opacity:0;pointer-events:none}.go-fab.pressed:after{animation:go-pop .48s var(--ease-std)}@keyframes go-pop{0%{opacity:.85;transform:scale(.9)}to{opacity:0;transform:scale(1.6)}}.tabbar button:not(.go-fab){flex:1;position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 6px;color:var(--ink-2);font-size:var(--fs-caption);font-weight:600;transition:color var(--t-small) var(--ease-std)}.tabbar button:not(.go-fab):after{content:"";position:absolute;top:-1px;left:50%;width:20px;height:3px;border-radius:0 0 3px 3px;background:var(--ink);transform:translate(-50%) scaleX(0);transition:transform var(--t-small) var(--ease-std)}.tabbar button.active{color:var(--ink)}.tabbar button.active:after{transform:translate(-50%) scaleX(1)}.tabbar button svg{display:block}.screen{max-width:720px;margin:0 auto;padding:var(--sp-4) var(--gutter) var(--sp-8)}.spinner{width:28px;height:28px;position:relative;animation:spin 1.2s steps(4) infinite}.spinner i{position:absolute;width:4px;height:8px;border-radius:2px;background:var(--ink-2);left:12px;top:0}.spinner i:nth-child(2){transform:rotate(90deg) translateY(-10px) translate(10px)}.spinner i:nth-child(3){top:auto;bottom:0}.spinner i:nth-child(4){transform:rotate(90deg) translateY(10px) translate(10px)}@keyframes spin{to{transform:rotate(360deg)}}
