@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/libre-franklin-cyrillic-ext-400-normal-B9g9xgcO.woff2)format("woff2"),url(/assets/libre-franklin-cyrillic-ext-400-normal-D5jvQp33.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/libre-franklin-cyrillic-400-normal-BxQnOlOp.woff2)format("woff2"),url(/assets/libre-franklin-cyrillic-400-normal-T4bKsRTj.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/libre-franklin-vietnamese-400-normal-BejjGN4K.woff2)format("woff2"),url(/assets/libre-franklin-vietnamese-400-normal-DVbyimmf.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:Libre Franklin;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/libre-franklin-latin-ext-400-normal-BlKPGRwu.woff2)format("woff2"),url(/assets/libre-franklin-latin-ext-400-normal-CEHJ3Zjr.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:Libre Franklin;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/libre-franklin-latin-400-normal-DNAyL8lK.woff2)format("woff2"),url(/assets/libre-franklin-latin-400-normal-B5qoBLOl.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:Libre Franklin;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/libre-franklin-cyrillic-ext-500-normal-CEScqsDp.woff2)format("woff2"),url(/assets/libre-franklin-cyrillic-ext-500-normal-DNjvXlO5.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/libre-franklin-cyrillic-500-normal-DmkkefNM.woff2)format("woff2"),url(/assets/libre-franklin-cyrillic-500-normal-BbpetOLr.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/libre-franklin-vietnamese-500-normal-RIIoSqy6.woff2)format("woff2"),url(/assets/libre-franklin-vietnamese-500-normal-r-ir2lkU.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:Libre Franklin;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/libre-franklin-latin-ext-500-normal-B0aoLQ4L.woff2)format("woff2"),url(/assets/libre-franklin-latin-ext-500-normal-BEjoZNRk.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:Libre Franklin;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/libre-franklin-latin-500-normal-Cbta7Jiu.woff2)format("woff2"),url(/assets/libre-franklin-latin-500-normal-BQKhRarp.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:Libre Franklin;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/libre-franklin-cyrillic-ext-600-normal-Drvu5lSS.woff2)format("woff2"),url(/assets/libre-franklin-cyrillic-ext-600-normal-DzWQ5Djp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/libre-franklin-cyrillic-600-normal-B9QZ7Zqf.woff2)format("woff2"),url(/assets/libre-franklin-cyrillic-600-normal-BDh_aE24.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/libre-franklin-vietnamese-600-normal-B9bGnPdK.woff2)format("woff2"),url(/assets/libre-franklin-vietnamese-600-normal-BRdbLLo3.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:Libre Franklin;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/libre-franklin-latin-ext-600-normal-CSmGWxVI.woff2)format("woff2"),url(/assets/libre-franklin-latin-ext-600-normal-BbCuItST.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:Libre Franklin;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/libre-franklin-latin-600-normal-BBKMvfE-.woff2)format("woff2"),url(/assets/libre-franklin-latin-600-normal-DjS29Py2.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,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:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.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: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+460-52F,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+301,U+400-45F,U+490-491,U+4B0-4B1,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+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: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+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: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+??,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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ds-text-xs:12px;--ds-text-sm:13px;--ds-text-md:14px;--ds-text-base:15px;--ds-text-lg:17px;--ds-text-xl:22px;--ds-text-2xl:28px;--ds-space-1:4px;--ds-space-2:8px;--ds-space-3:12px;--ds-space-4:16px;--ds-space-5:24px;--ds-space-6:32px;--ds-space-7:48px;--ds-space-8:64px;--ds-radius-sm:6px;--ds-radius-md:10px;--ds-radius-lg:13px;--ds-radius-pill:999px;--ds-motion-fast:.15s;--ds-motion-base:.22s;--ds-motion-slow:.32s;--ds-motion-reveal:.56s;--ds-ease-out:cubic-bezier(.23, 1, .32, 1);--ds-ease-in-out:cubic-bezier(.65, 0, .35, 1);--ds-ease-spring:linear(0, .009, .035 2.1%, .141 4.4%, .723 12.9%, .938 16.7%, 1.017 19.4%, 1.067 22.2%, 1.088 25.5%, 1.083 28.1%, 1.061 31.3%, 1.003 39.3%, .985 44.4%, .981 49.6%, .999 69.6%, 1);--ds-font-ui:"Libre Franklin", system-ui, -apple-system, "Segoe UI", sans-serif;--ds-font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--ds-tap:44px;--ds-sidebar-width:232px;--ds-content-max:920px;--ds-bottom-nav-height:60px;--ds-color-bg:#faf9f7;--ds-color-bg-page:#f3f1ed;--ds-color-surface:#fff;--ds-color-surface-raised:#f0ede8;--ds-color-surface-muted:#fcfbf9;--ds-color-border:#e6e2dc;--ds-color-border-soft:#f0ede8;--ds-color-text:#1e1c19;--ds-color-text-secondary:#55504a;--ds-color-text-tertiary:#6f685f;--ds-color-text-disabled:#a8a199;--ds-color-accent:#2f6b4f;--ds-color-accent-hover:#21503b;--ds-color-accent-soft:#eaf2ed;--ds-color-accent-border:#d6e6dc;--ds-color-accent-tint:#f4f8f5;--ds-color-on-accent:#fff;--ds-color-scrim:#14131173;--ds-color-focus:#2f6b4f;--ds-color-paid:#2f6b4f;--ds-color-paid-soft:#eaf2ed;--ds-color-pending:#8f877c;--ds-color-due-soon:#8a6520;--ds-color-due-soon-mark:#b07e22;--ds-color-due-soon-soft:#fdf6e9;--ds-color-overdue:#b4462a;--ds-color-overdue-soft:#fbede8;--ds-color-overdue-border:#ebc9bc;--ds-color-on-overdue:#fff;--ds-color-skipped:#948c81;--ds-color-skipped-soft:#f0ede8;--ds-shadow-overlay:0 12px 32px #1e1c1929}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ds-color-bg:#141311;--ds-color-bg-page:#0f0e0d;--ds-color-surface:#1c1a17;--ds-color-surface-raised:#262320;--ds-color-surface-muted:#191714;--ds-color-border:#332f2a;--ds-color-border-soft:#262320;--ds-color-text:#ece8e1;--ds-color-text-secondary:#b5aea4;--ds-color-text-tertiary:#8f887e;--ds-color-text-disabled:#6b655c;--ds-color-accent:#6fb08f;--ds-color-accent-hover:#86c2a3;--ds-color-accent-soft:#1e2b24;--ds-color-accent-border:#2e4a3b;--ds-color-accent-tint:#1a231e;--ds-color-on-accent:#141311;--ds-color-scrim:#0009;--ds-color-focus:#6fb08f;--ds-color-paid:#6fb08f;--ds-color-paid-soft:#1e2b24;--ds-color-pending:#8f887e;--ds-color-due-soon:#d9a24a;--ds-color-due-soon-mark:#d9a24a;--ds-color-due-soon-soft:#2a2416;--ds-color-overdue:#e07b5c;--ds-color-overdue-soft:#2e1e19;--ds-color-overdue-border:#4a2c23;--ds-color-on-overdue:#141311;--ds-color-skipped:#6b655c;--ds-color-skipped-soft:#262320;--ds-shadow-overlay:0 12px 32px #00000080}.ds-mono{font-family:var(--ds-font-mono);font-variant-numeric:tabular-nums}.ds-visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ds-skeleton-4WTt-{background:var(--ds-color-surface-raised);animation-name:ds-skeleton-pulse-3M7OH;animation-timing-function:ease-in-out;animation-iteration-count:infinite}@keyframes ds-skeleton-pulse-3M7OH{0%,to{opacity:1}50%{opacity:.5}}@media (prefers-reduced-motion:reduce){.ds-skeleton-4WTt-{animation:none}}.ds-line-t13cp,.ds-block--E8qW{border-radius:var(--ds-radius-sm)}.ds-card-G8jvg{border-radius:var(--ds-radius-md)}.ds-group-fTJBp{gap:var(--ds-space-3);flex-direction:column;display:flex}.ds-groupCard-vEs65{background:var(--ds-color-surface);border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-md);padding:var(--ds-space-4)}.ds-wrap-Me7YE{align-items:center;gap:var(--ds-space-2);display:inline-flex}.ds-ring-POgju{border-radius:var(--ds-radius-pill);border:2px solid var(--ds-color-border);border-top-color:var(--ds-color-accent);animation:.7s linear infinite ds-spin-7GshG;display:inline-block}.ds-md-DYIll{width:20px;height:20px}.ds-sm-Tiggy{border-width:1.5px;width:14px;height:14px}@keyframes ds-spin-7GshG{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ds-ring-POgju{animation-duration:2s}}.ds-text-3xRq3{font-family:var(--ds-font-ui);margin:0;line-height:1.45}.ds-mono--4JMF{font-family:var(--ds-font-mono);font-variant-numeric:tabular-nums}.ds-clamp-Y76Li{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ds-size-xs-cFEV6{font-size:var(--ds-text-xs)}.ds-size-sm-Vwb0B{font-size:var(--ds-text-sm)}.ds-size-md-SheYV{font-size:var(--ds-text-md)}.ds-size-base-F5oKF{font-size:var(--ds-text-base)}.ds-size-lg-V3uXA{font-size:var(--ds-text-lg)}.ds-size-xl-DcTTv{font-size:var(--ds-text-xl);line-height:1.3}.ds-size-2xl-e2ZOG{font-size:var(--ds-text-2xl);line-height:1.25}.ds-tone-default-UvspA{color:var(--ds-color-text)}.ds-tone-secondary-B8D36{color:var(--ds-color-text-secondary)}.ds-tone-tertiary-1WTOA{color:var(--ds-color-text-tertiary)}.ds-tone-disabled-9-Sw5{color:var(--ds-color-text-disabled)}.ds-tone-accent-oYDfo{color:var(--ds-color-accent)}.ds-tone-danger-a-Ziw{color:var(--ds-color-overdue)}.ds-weight-regular-f8fUL{font-weight:400}.ds-weight-medium-n9ul3{font-weight:500}.ds-weight-semibold-ofq6I{font-weight:600}.ds-panel-CJhG6{gap:var(--ds-space-2);padding:var(--ds-space-3);background:var(--ds-color-surface-muted);border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-md);flex-direction:column;display:flex}.ds-dashed-ZVsuF{border-style:dashed}.ds-header-rKoFO{justify-content:space-between;align-items:center;gap:var(--ds-space-2);display:flex}.ds-busy-FEkDG{align-items:center;gap:var(--ds-space-2);display:flex}.ds-exclaim-GwqEv{color:var(--ds-color-text-tertiary)}.ds-action-TgweX{align-items:center;gap:var(--ds-space-2);min-height:var(--ds-tap);padding:0 var(--ds-space-1);cursor:pointer;background:0 0;border:none;display:inline-flex}.ds-action-TgweX:disabled{cursor:not-allowed;opacity:.55}.ds-action-TgweX:focus-visible{outline:2px solid var(--ds-color-focus);outline-offset:2px}.ds-dot-5lHQH{border:1.5px solid var(--ds-color-accent);border-radius:var(--ds-radius-pill);flex:none;width:6px;height:6px}.ds-card-b7MD7{gap:var(--ds-space-2);padding:var(--ds-space-3);border-radius:var(--ds-radius-md);border:1px solid;flex-direction:column;display:flex}.ds-open-fGEhz{background:var(--ds-color-surface);border-color:var(--ds-color-accent-border)}.ds-closed-bhKTV,.ds-plain-mJ4Ib{background:var(--ds-color-surface-muted);border-color:var(--ds-color-border)}.ds-disclosure-hS7re{gap:var(--ds-space-2);font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;padding:0;display:flex}.ds-disclosure-hS7re:focus-visible{outline:2px solid var(--ds-color-focus);outline-offset:2px}.ds-source-wVSzk{padding-top:var(--ds-space-2);border-top:1px solid var(--ds-color-border-soft);flex-direction:column;gap:2px;display:flex}.ds-hint-Qs5XG{align-items:center;gap:var(--ds-space-1);display:flex}.ds-chevron-fJkUK{font-size:var(--ds-text-sm);line-height:1}.ds-actions-ovKvm{gap:var(--ds-space-2);display:flex}.ds-banner-ucGel{align-items:flex-start;gap:var(--ds-space-3);padding:var(--ds-space-3);border-radius:var(--ds-radius-md);border:1px solid;display:flex}.ds-icon-kN-DF{flex:none;padding-top:1px;display:inline-flex}.ds-main-KEg59{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ds-actions-xD2CS{gap:var(--ds-space-1);margin-top:var(--ds-space-1);flex-wrap:wrap;display:flex}.ds-tone-warning-VTBWc{border-color:var(--ds-color-due-soon-mark);background:var(--ds-color-due-soon-soft)}.ds-tone-warning-VTBWc .ds-icon-kN-DF{color:var(--ds-color-due-soon)}.ds-tone-neutral-wPf3p{border-color:var(--ds-color-border);background:var(--ds-color-surface-raised)}.ds-tone-neutral-wPf3p .ds-icon-kN-DF{color:var(--ds-color-text-secondary)}.ds-tone-danger-9Bmon{border-color:var(--ds-color-overdue-border);background:var(--ds-color-overdue-soft)}.ds-tone-danger-9Bmon .ds-icon-kN-DF{color:var(--ds-color-overdue)}.ds-wrap-7uMVo{align-items:center;display:inline-flex}.ds-chip-FJNLw{border-radius:var(--ds-radius-pill);font-family:var(--ds-font-ui);font-size:var(--ds-text-xs);white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:3px 10px;font-weight:500;display:inline-flex}.ds-control-7m5EV{min-height:var(--ds-tap);font-size:var(--ds-text-md);padding:8px 16px}.ds-interactive-YFcvI{cursor:pointer;transition:background var(--ds-motion-fast), border-color var(--ds-motion-fast)}.ds-interactive-YFcvI:disabled{cursor:not-allowed;opacity:.55}.ds-interactive-YFcvI:focus-visible{outline:2px solid var(--ds-color-focus);outline-offset:2px}.ds-selected-NO1-M{box-shadow:inset 0 0 0 1px}.ds-tone-neutral-oho9m{background:var(--ds-color-surface-raised);color:var(--ds-color-text-secondary);border-color:var(--ds-color-border)}.ds-tone-accent-Mk1hi{background:var(--ds-color-accent-soft);color:var(--ds-color-accent);border-color:var(--ds-color-accent-border)}.ds-tone-success-vn91q{background:var(--ds-color-paid-soft);color:var(--ds-color-paid);border-color:var(--ds-color-accent-border)}.ds-tone-pending-W7fiQ{background:var(--ds-color-surface);color:var(--ds-color-text-secondary);border-color:var(--ds-color-pending);border-style:dashed}.ds-tone-warning-DPhfJ{background:var(--ds-color-due-soon-soft);color:var(--ds-color-due-soon);border-color:var(--ds-color-due-soon-mark)}.ds-tone-danger-nwVgH{background:var(--ds-color-overdue-soft);color:var(--ds-color-overdue);border-color:var(--ds-color-overdue-border)}.ds-tone-muted-c33AM{background:var(--ds-color-skipped-soft);color:var(--ds-color-skipped);border-color:var(--ds-color-border)}.ds-icon-XT5m-{align-items:center;display:inline-flex}.ds-label-PsF8q{display:inline-block}.ds-remove-r3wIX{border-radius:var(--ds-radius-pill);width:20px;height:20px;color:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin-left:-6px;font-size:14px;line-height:1;display:inline-flex}.ds-remove-r3wIX:hover{background:var(--ds-color-surface-raised)}.ds-remove-r3wIX:focus-visible{outline:2px solid var(--ds-color-focus);outline-offset:1px}@media (width<=879px){.ds-interactive-YFcvI,.ds-remove-r3wIX{min-height:32px}}.ds-mark-9-0xj{flex:none;display:inline-block}.ds-mark-9-0xj path{stroke-dasharray:1;stroke-dashoffset:0}.ds-animate-xhaWn path{animation:ds-ds-check-draw-gh9yw var(--ds-motion-base) var(--ds-ease-out) 60ms both}@keyframes ds-ds-check-draw-gh9yw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.ds-animate-xhaWn path{animation:none}}.ds-row-AuQDC{align-items:center;gap:var(--ds-space-3);min-height:60px;padding:var(--ds-space-2) 0;display:flex}.ds-main-Ekh0-{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ds-name-jLAjX{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ds-metaRow-wU20P{align-items:center;gap:var(--ds-space-2);flex-wrap:wrap;display:flex}.ds-amount-hjRbS{white-space:nowrap;text-align:right;flex:none}.ds-action-M3j4S{width:var(--ds-tap);height:var(--ds-tap);border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-sm);background:var(--ds-color-surface);cursor:pointer;flex:none;justify-content:center;align-items:center;display:inline-flex}.ds-action-M3j4S:hover:not(:disabled){background:var(--ds-color-surface-raised)}.ds-action-M3j4S.ds-done-osijX{background:var(--ds-color-paid-soft);border-color:var(--ds-color-accent-border)}.ds-action-M3j4S:disabled{cursor:not-allowed;opacity:.55}.ds-action-M3j4S:focus-visible{outline:2px solid var(--ds-color-focus);outline-offset:2px}.ds-glyph-0eDsM{color:var(--ds-color-accent);font-size:var(--ds-text-lg);line-height:1}.ds-muted--C-sm .ds-name-jLAjX,.ds-muted--C-sm .ds-amount-hjRbS{color:var(--ds-color-text-secondary)}.ds-button-7BLGt{justify-content:center;align-items:center;gap:var(--ds-space-2);border-radius:var(--ds-radius-sm);cursor:pointer;white-space:nowrap;transition:background var(--ds-motion-fast), border-color var(--ds-motion-fast), color var(--ds-motion-fast);border:1px solid #0000;font-weight:500;display:inline-flex}.ds-button-7BLGt:disabled{cursor:not-allowed;opacity:.55}.ds-button-7BLGt:focus-visible{outline:2px solid var(--ds-color-focus);outline-offset:2px}.ds-md-6RWRp{min-height:38px;padding:0 var(--ds-space-4);font-size:var(--ds-text-md)}.ds-sm-Hgcwj{min-height:32px;padding:0 var(--ds-space-3);font-size:var(--ds-text-sm)}.ds-block-DCevS{width:100%}.ds-primary-TrzCx{background:var(--ds-color-accent);color:var(--ds-color-on-accent);border-color:var(--ds-color-accent)}.ds-primary-TrzCx:hover:not(:disabled){background:var(--ds-color-accent-hover);border-color:var(--ds-color-accent-hover)}.ds-secondary-QaWL8{background:var(--ds-color-surface);color:var(--ds-color-text);border-color:var(--ds-color-border)}.ds-secondary-QaWL8:hover:not(:disabled){background:var(--ds-color-surface-raised)}.ds-ghost-1s5-r{color:var(--ds-color-text-secondary);background:0 0}.ds-ghost-1s5-r:hover:not(:disabled){background:var(--ds-color-surface-raised);color:var(--ds-color-text)}.ds-danger-I9Avm{background:var(--ds-color-overdue);color:var(--ds-color-on-overdue);border-color:var(--ds-color-overdue)}.ds-icon-mbFTQ,.ds-label-447Ll{align-items:center;display:inline-flex}@media (width<=879px){.ds-md-6RWRp,.ds-sm-Hgcwj{min-height:var(--ds-tap)}}.ds-spinner-0n6Qa{border-radius:var(--ds-radius-pill);opacity:.8;border:2px solid;border-top-color:#0000;flex:none;width:13px;height:13px;animation:.7s linear infinite ds-button-spin---cik}@keyframes ds-button-spin---cik{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ds-spinner-0n6Qa{animation-duration:2s}}.ds-card--PlHa{border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-md);padding:var(--ds-space-4)}.ds-flush-RJKn-{padding:0;overflow:hidden}.ds-tone-default-Cyoqd{background:var(--ds-color-surface)}.ds-tone-raised-IQckT{background:var(--ds-color-surface-raised)}.ds-tone-muted-X8u6C{background:var(--ds-color-surface-muted)}.ds-wrap--t3JG{gap:var(--ds-space-1);flex-direction:column;display:flex}.ds-row-s1PCo{align-items:flex-start;display:flex}.ds-disabled-TKr3J{opacity:.55}.ds-input-XnCmS{opacity:0;width:1px;height:1px;margin:0;position:absolute}.ds-control-8yUGr{align-items:flex-start;gap:var(--ds-space-3);cursor:pointer;display:flex}.ds-disabled-TKr3J .ds-control-8yUGr{cursor:not-allowed}.ds-box-08d-a{border:1px solid var(--ds-color-pending);border-radius:var(--ds-radius-sm);background:var(--ds-color-surface);width:20px;height:20px;transition:background var(--ds-motion-fast), border-color var(--ds-motion-fast);flex:none;justify-content:center;align-items:center;margin-top:2px;display:inline-flex}.ds-mark-zCSSU{color:#0000;font-size:13px;font-weight:600;line-height:1}.ds-pop-bIPrG{color:var(--ds-color-on-accent);display:inline-flex}.ds-popIn-5Y85p{animation:ds-ds-box-pop-rvG1u var(--ds-motion-slow) var(--ds-ease-spring) both}@keyframes ds-ds-box-pop-rvG1u{0%{transform:scale(.85)}to{transform:scale(1)}}.ds-input-XnCmS:checked+.ds-control-8yUGr .ds-box-08d-a,.ds-input-XnCmS:indeterminate+.ds-control-8yUGr .ds-box-08d-a{background:var(--ds-color-accent);border-color:var(--ds-color-accent)}.ds-input-XnCmS:indeterminate+.ds-control-8yUGr .ds-mark-zCSSU{color:var(--ds-color-on-accent)}.ds-input-XnCmS:focus-visible+.ds-control-8yUGr .ds-box-08d-a{outline:2px solid var(--ds-color-focus);outline-offset:2px}.ds-invalid-Gqncl{border-color:var(--ds-color-overdue)}.ds-labels-sox0-{flex-direction:column;gap:2px;display:flex}.ds-error-phaxK{margin-left:calc(20px + var(--ds-space-3))}@media (prefers-reduced-motion:reduce){.ds-box-08d-a{transition:none}.ds-popIn-5Y85p{animation:none}}@media (width<=879px){.ds-control-8yUGr{min-height:var(--ds-tap)}}.ds-strip-tgX2t{align-items:center;gap:var(--ds-space-1);display:flex}.ds-days-Wsfi8{flex:1;gap:2px;min-width:0;display:flex}.ds-day-VoyrA{border-radius:var(--ds-radius-sm);cursor:pointer;background:0 0;border:none;flex:1 0;justify-content:center;align-items:center;min-width:0;height:52px;display:flex}.ds-day-VoyrA:hover:not(.ds-on-FR5Ad){background:var(--ds-color-surface-raised)}.ds-day-VoyrA:focus-visible{outline:2px solid var(--ds-color-focus);outline-offset:2px}.ds-cell-KDDUs{flex-direction:column;align-items:center;gap:2px;display:flex}.ds-on-FR5Ad{background:var(--ds-color-accent)}.ds-day-VoyrA .ds-weekday-pzxhQ{color:var(--ds-color-text-tertiary)}.ds-on-FR5Ad .ds-weekday-pzxhQ{color:var(--ds-color-on-accent)}.ds-day-VoyrA .ds-number-4YZ9M{color:var(--ds-color-text)}.ds-on-FR5Ad .ds-number-4YZ9M{color:var(--ds-color-on-accent)}.ds-dot-YxLsG{border-radius:var(--ds-radius-pill);width:4px;height:4px}.ds-marked-XsDmf{background:var(--ds-color-text-tertiary)}.ds-on-FR5Ad .ds-marked-XsDmf{background:var(--ds-color-on-accent)}.ds-step-5-7r7{width:32px;height:var(--ds-tap);border-radius:var(--ds-radius-sm);cursor:pointer;color:var(--ds-color-text-secondary);font-size:var(--ds-text-xl);background:0 0;border:none;flex:none;justify-content:center;align-items:center;line-height:1;display:flex}.ds-step-5-7r7:hover:not(:disabled){background:var(--ds-color-surface-raised)}.ds-step-5-7r7:disabled{cursor:not-allowed;opacity:.4}.ds-step-5-7r7:focus-visible{outline:2px solid var(--ds-color-focus);outline-offset:2px}.ds-divider-XLgPB{background:var(--ds-color-border);flex:none;display:block}.ds-horizontal-c4gI9{width:100%;height:1px}.ds-vertical-6-PzH{align-self:stretch;width:1px;min-height:1em}.ds-empty-BP6GS{align-items:flex-start;gap:var(--ds-space-2);padding:var(--ds-space-5) var(--ds-space-4);border:1px dashed var(--ds-color-border);border-radius:var(--ds-radius-md);flex-direction:column;display:flex}.ds-error-qldJB{border-style:solid;border-color:var(--ds-color-overdue-border);background:var(--ds-color-overdue-soft)}.ds-actions-0ycXo{gap:var(--ds-space-2);margin-top:var(--ds-space-1);flex-wrap:wrap;display:flex}.ds-eyebrow-KO8Lp{font-family:var(--ds-font-mono);font-size:var(--ds-text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ds-color-text-tertiary);align-items:center;gap:8px;margin:0;line-height:1.5;display:flex}.ds-dot-2Ahpk{border-radius:var(--ds-radius-pill);background:var(--ds-color-accent);flex:none;width:6px;height:6px}.ds-index-RvxWc{color:var(--ds-color-accent)}.ds-field-WJ5eo{gap:var(--ds-space-1);flex-direction:column;display:flex}.ds-label-zPkg2{display:block}.ds-row-lnoji{align-items:center;gap:var(--ds-space-3);width:100%;min-height:52px;padding:var(--ds-space-2) 0;font:inherit;color:inherit;text-align:left;background:0 0;border:none;display:flex}.ds-interactive-qhI-w{cursor:pointer;transition:background var(--ds-motion-fast)}.ds-interactive-qhI-w:hover:not(:disabled){background:var(--ds-color-surface-raised)}.ds-interactive-qhI-w:focus-visible{outline:2px solid var(--ds-color-focus);outline-offset:2px}.ds-row-lnoji:disabled,.ds-disabled-aTFkB{cursor:not-allowed;opacity:.55}.ds-split-qiEGc{align-items:center;gap:var(--ds-space-2);display:flex}.ds-split-qiEGc>.ds-row-lnoji{flex:1;min-width:0}.ds-trailing-MrAed{flex:none;align-items:center;display:inline-flex}.ds-icon-EXhly{background:var(--ds-color-surface-raised);border-radius:var(--ds-radius-sm);flex:none;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.ds-main-8KjlY{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ds-meta-tM-oD{flex:none}.ds-chevron-XwjYW{color:var(--ds-color-text-tertiary);font-size:var(--ds-text-lg);flex:none;line-height:1}.ds-list-RzyyM>*+*{border-top:1px solid var(--ds-color-border-soft)}.ds-scrim-6uYd4{z-index:60;padding:var(--ds-space-4);background:var(--ds-color-scrim);animation:ds-ds-scrim-in-03O8u var(--ds-motion-base) var(--ds-ease-out) both;place-items:center;display:grid;position:fixed;inset:0}.ds-dialog-EAcvC{gap:var(--ds-space-3);width:100%;max-width:440px;padding:var(--ds-space-5);background:var(--ds-color-surface);border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-overlay);animation:ds-ds-dialog-in-3-kDr var(--ds-motion-base) var(--ds-ease-out) both;flex-direction:column;display:flex}@keyframes ds-ds-scrim-in-03O8u{0%{opacity:0}to{opacity:1}}@keyframes ds-ds-dialog-in-3-kDr{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:none}}@keyframes ds-ds-scrim-out-mNWw5{to{opacity:0}}@keyframes ds-ds-dialog-out-AQ1tg{to{opacity:0;transform:scale(.98)}}.ds-closing-M3I7G{pointer-events:none;animation-timing-function:var(--ds-ease-out);animation-duration:var(--ds-motion-fast)}.ds-scrim-6uYd4.ds-closing-M3I7G{animation-name:ds-ds-scrim-out-mNWw5}.ds-dialog-EAcvC.ds-closing-M3I7G{animation-name:ds-ds-dialog-out-AQ1tg}@media (prefers-reduced-motion:reduce){.ds-scrim-6uYd4,.ds-dialog-EAcvC{animation-name:ds-ds-scrim-in-03O8u;animation-duration:var(--ds-motion-fast)}.ds-scrim-6uYd4.ds-closing-M3I7G,.ds-dialog-EAcvC.ds-closing-M3I7G{animation-name:ds-ds-scrim-out-mNWw5}}.ds-body-OhLb0{gap:var(--ds-space-2);flex-direction:column;display:flex}.ds-actions-SzSYl{justify-content:flex-end;gap:var(--ds-space-2);margin-top:var(--ds-space-2);flex-wrap:wrap;display:flex}@media (width<=479px){.ds-actions-SzSYl{flex-direction:column-reverse}.ds-actions-SzSYl>*{width:100%}}.ds-frame-iuU1u{align-items:center;gap:var(--ds-space-2);background:var(--ds-color-surface);border-radius:var(--ds-radius-sm);padding:0 var(--ds-space-3);display:flex;position:relative}.ds-md-GaBpV{--_lift:34px;min-height:56px}.ds-sm-U21DJ{--_lift:30px;min-height:48px}.ds-disabled-0aCqC{background:var(--ds-color-surface-raised)}.ds-outline-V0OBA{padding:0 var(--ds-space-2);pointer-events:none;border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-sm);transition:border-color var(--ds-motion-fast);margin:0;position:absolute;inset:-6px 0 0}.ds-legend-Ao2Vo{width:auto;max-width:.01px;height:var(--ds-text-xs);font-size:var(--ds-text-xs);visibility:hidden;white-space:nowrap;transition:max-width var(--ds-motion-fast);padding:0}.ds-legend-Ao2Vo>span{padding:0 4px}.ds-input-3WNd2{min-width:0;font-family:var(--ds-font-ui);font-size:var(--ds-text-base);color:var(--ds-color-text);background:0 0;border:none;flex:1;padding:0}.ds-input-3WNd2:focus{outline:none}.ds-input-3WNd2::placeholder{color:#0000}.ds-input-3WNd2:focus::placeholder{color:var(--ds-color-text-tertiary)}.ds-mono-He-G3{font-family:var(--ds-font-mono);font-variant-numeric:tabular-nums}.ds-right-ZdtUG{text-align:right}.ds-label-sbQWU{left:var(--ds-space-3);transform-origin:0 0;pointer-events:none;max-width:calc(100% - var(--ds-space-5));text-overflow:ellipsis;white-space:nowrap;font-family:var(--ds-font-ui);font-size:var(--ds-text-base);color:var(--ds-color-text-tertiary);transition:transform var(--ds-motion-fast), font-size var(--ds-motion-fast), color var(--ds-motion-fast);position:absolute;top:50%;overflow:hidden;transform:translateY(-50%)}.ds-hasPrefix-Afv8x .ds-label-sbQWU{transform:translateY(calc(-50% - var(--_lift)));font-size:var(--ds-text-xs);background:inherit;margin-left:-4px;padding:0 4px}.ds-hasPrefix-Afv8x .ds-legend-Ao2Vo{max-width:100%}:is(.ds-input-3WNd2:focus~.ds-label-sbQWU,.ds-input-3WNd2:not(:placeholder-shown)~.ds-label-sbQWU,.ds-input-3WNd2:autofill~.ds-label-sbQWU){transform:translateY(calc(-50% - var(--_lift)));font-size:var(--ds-text-xs);left:var(--ds-space-3);background:inherit;margin-left:-4px;padding:0 4px}.ds-input-3WNd2:focus~.ds-label-sbQWU{color:var(--ds-color-accent)}.ds-input-3WNd2:not(:focus)~.ds-outline-V0OBA{border-color:var(--ds-color-border)}.ds-input-3WNd2:focus~.ds-outline-V0OBA{border-color:var(--ds-color-accent);padding:0 calc(var(--ds-space-2) - 1px);border-width:2px}:is(.ds-input-3WNd2:not(:placeholder-shown):not(:focus)~.ds-outline-V0OBA,.ds-input-3WNd2:autofill:not(:focus)~.ds-outline-V0OBA){border-color:var(--ds-color-border)}:is(.ds-input-3WNd2:focus~.ds-outline-V0OBA>.ds-legend-Ao2Vo,.ds-input-3WNd2:not(:placeholder-shown)~.ds-outline-V0OBA>.ds-legend-Ao2Vo,.ds-input-3WNd2:autofill~.ds-outline-V0OBA>.ds-legend-Ao2Vo){max-width:100%}.ds-frame-iuU1u:hover .ds-input-3WNd2:not(:focus)~.ds-outline-V0OBA{border-color:var(--ds-color-text-tertiary)}.ds-invalid-KGPb1 .ds-label-sbQWU{color:var(--ds-color-overdue)}.ds-invalid-KGPb1 .ds-outline-V0OBA,.ds-invalid-KGPb1 .ds-input-3WNd2:focus~.ds-outline-V0OBA{border-color:var(--ds-color-overdue)}.ds-affix-gW-9t{color:var(--ds-color-text-tertiary);font-size:var(--ds-text-md);align-items:center;display:inline-flex}@media (prefers-reduced-motion:reduce){.ds-label-sbQWU,.ds-outline-V0OBA,.ds-legend-Ao2Vo{transition:none}}.ds-reveal-TpFW1{border-radius:var(--ds-radius-sm);width:32px;height:32px;color:var(--ds-color-text-tertiary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.ds-reveal-TpFW1:hover{background:var(--ds-color-surface-raised);color:var(--ds-color-text)}.ds-reveal-TpFW1:focus-visible{outline:2px solid var(--ds-color-focus);outline-offset:2px}@media (width<=879px){.ds-reveal-TpFW1{width:var(--ds-tap);height:var(--ds-tap)}}.ds-tile-kgHCz{align-items:center;gap:var(--ds-space-2);min-height:64px;padding:var(--ds-space-2) var(--ds-space-3);border-radius:var(--ds-radius-md);cursor:pointer;font:inherit;color:inherit;text-align:left;background:0 0;border:1px solid;display:flex}.ds-tile-kgHCz:hover:not(:disabled){opacity:.85}.ds-tile-kgHCz:disabled{cursor:not-allowed;opacity:.55}.ds-tile-kgHCz:focus-visible{outline:2px solid var(--ds-color-focus);outline-offset:2px}.ds-mark-jLDwR{border:1.5px solid var(--ds-color-text-tertiary);border-radius:var(--ds-radius-pill);flex:none;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex;position:relative;overflow:hidden}.ds-fill-L4Wic{font-size:var(--ds-text-xs);justify-content:center;align-items:center;font-weight:600;display:flex;position:absolute;inset:0}.ds-half-CYfJe{width:12px;position:absolute;top:0;bottom:0;left:0}.ds-popIn-W0Di0{animation:ds-ds-tile-pop-raI4U var(--ds-motion-slow) var(--ds-ease-spring) both}@keyframes ds-ds-tile-pop-raI4U{0%{transform:scale(.85)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.ds-popIn-W0Di0{animation:none}}.ds-labels-9CZ-m{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ds-state-idle-AX8Aa{background:var(--ds-color-surface);border-color:var(--ds-color-border)}.ds-state-idle-AX8Aa .ds-mark-jLDwR{border-color:var(--ds-color-text-tertiary)}.ds-state-done-Fd7lA{background:var(--ds-color-accent-soft);border-color:var(--ds-color-accent-border)}.ds-state-done-Fd7lA .ds-mark-jLDwR{border-color:var(--ds-color-accent)}.ds-state-done-Fd7lA .ds-fill-L4Wic{background:var(--ds-color-accent);color:var(--ds-color-on-accent)}.ds-state-partial-HQddG{background:var(--ds-color-surface);border-color:var(--ds-color-border)}.ds-state-partial-HQddG .ds-mark-jLDwR{border-color:var(--ds-color-accent)}.ds-state-partial-HQddG .ds-half-CYfJe{background:var(--ds-color-accent)}.ds-state-muted--IEps{background:var(--ds-color-surface-raised);border-color:var(--ds-color-border);border-style:dashed}.ds-state-muted--IEps .ds-mark-jLDwR{border-color:var(--ds-color-skipped)}.ds-state-muted--IEps .ds-fill-L4Wic{background:var(--ds-color-skipped);color:var(--ds-color-on-accent)}.ds-grid-V2vfE{gap:var(--ds-space-2);grid-template-columns:repeat(2,1fr);display:grid}.ds-bar-C9hGQ{background:var(--ds-color-surface-raised);border-radius:var(--ds-radius-pill);display:block;overflow:hidden}.ds-size-md-Pzm6a{height:8px}.ds-size-sm-msKfp{height:4px}.ds-tone-accent-o6fU2{background:var(--ds-color-accent)}.ds-tone-muted-bWYdL{background:var(--ds-color-text-tertiary)}.ds-tone-danger-cLy-e{background:var(--ds-color-overdue)}.ds-fill-JY-3j{border-radius:var(--ds-radius-pill);height:100%;transform:scaleX(var(--ds-progress));transform-origin:0;animation-name:ds-ds-progress-fill-kVduT;animation-timing-function:var(--ds-ease-out);transition:transform var(--ds-motion-slow) var(--ds-ease-out);animation-fill-mode:backwards;display:block}@keyframes ds-ds-progress-fill-kVduT{0%{transform:scaleX(0)}to{transform:scaleX(var(--ds-progress))}}@media (prefers-reduced-motion:reduce){.ds-fill-JY-3j{transition:none;animation:none}}.ds-group-E-eMb{gap:var(--ds-space-2);border:none;flex-direction:column;min-width:0;margin:0;padding:0;display:flex}.ds-group-E-eMb:disabled{opacity:.55}.ds-legend-4w--w{padding:0}.ds-options-A507n{gap:var(--ds-space-2);flex-direction:column;display:flex}.ds-inline-jEPyR{gap:var(--ds-space-4);flex-flow:wrap}.ds-row-9Kgij{align-items:flex-start;display:flex}.ds-input-w1Rr3{opacity:0;width:1px;height:1px;margin:0;position:absolute}.ds-control-jWXfr{align-items:flex-start;gap:var(--ds-space-3);cursor:pointer;display:flex}.ds-input-w1Rr3:disabled+.ds-control-jWXfr{cursor:not-allowed;opacity:.55}.ds-dot-K5Mq5{border-radius:var(--ds-radius-pill);border:1px solid var(--ds-color-pending);background:var(--ds-color-surface);width:20px;height:20px;transition:border-color var(--ds-motion-fast);flex:none;margin-top:2px;position:relative}.ds-dot-K5Mq5:after{content:"";border-radius:var(--ds-radius-pill);background:var(--ds-color-accent);transition:transform var(--ds-motion-fast);position:absolute;inset:4px;transform:scale(0)}.ds-input-w1Rr3:checked+.ds-control-jWXfr .ds-dot-K5Mq5{border-color:var(--ds-color-accent)}.ds-input-w1Rr3:checked+.ds-control-jWXfr .ds-dot-K5Mq5:after{transform:scale(1)}.ds-input-w1Rr3:focus-visible+.ds-control-jWXfr .ds-dot-K5Mq5{outline:2px solid var(--ds-color-focus);outline-offset:2px}.ds-invalid-er3aQ{border-color:var(--ds-color-overdue)}.ds-labels-Sm53L{flex-direction:column;gap:2px;display:flex}@media (prefers-reduced-motion:reduce){.ds-dot-K5Mq5,.ds-dot-K5Mq5:after{transition:none}}@media (width<=879px){.ds-control-jWXfr{min-height:var(--ds-tap)}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.ds-reveal-Cxv9s{animation:linear both ds-ds-reveal-T-puw;animation-timeline:view();animation-range:entry entry 60%}}}@keyframes ds-ds-reveal-T-puw{0%{opacity:0;transform:translateY(16px)}}.ds-section--kaD4{gap:var(--ds-space-3);flex-direction:column;display:flex}.ds-header-qnqcp{justify-content:space-between;align-items:baseline;gap:var(--ds-space-3);flex-wrap:wrap;display:flex}.ds-heading-sRMW3{align-items:baseline;gap:var(--ds-space-2);min-width:0;display:flex}.ds-action-XMZ3O{align-items:center;gap:var(--ds-space-2);display:flex}.ds-plain-FMuGP{padding-top:var(--ds-space-5);border-top:1px solid var(--ds-color-border)}.ds-plainTitle-H8XB2{letter-spacing:-.02em}.ds-root-FOXKb{position:relative}.ds-frame-MAALi{justify-content:space-between;align-items:center;gap:var(--ds-space-2);width:100%;min-height:56px;padding:0 var(--ds-space-3);border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-sm);background:var(--ds-color-surface);cursor:pointer;text-align:left;transition:border-color var(--ds-motion-fast);display:flex}.ds-frame-MAALi:hover:not(:disabled){border-color:var(--ds-color-text-tertiary)}.ds-frame-MAALi:focus-visible{border-color:var(--ds-color-accent);padding:0 calc(var(--ds-space-3) - 1px);border-width:2px;outline:none}.ds-invalid--ghvf{border-color:var(--ds-color-overdue)}.ds-disabled-qvF9B{background:var(--ds-color-surface-raised);cursor:not-allowed;opacity:.55}.ds-value-woeKo{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ds-chevron-L2z6W{color:var(--ds-color-text-tertiary);transition:transform var(--ds-motion-fast)}.ds-chevronOpen-1X-ku{transform:rotate(180deg)}.ds-list-U16fA{z-index:40;padding:var(--ds-space-1);background:var(--ds-color-surface);border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-md);max-height:280px;box-shadow:var(--ds-shadow-overlay);margin:0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.ds-row-DWEIR{justify-content:space-between;align-items:center;gap:var(--ds-space-2);min-height:36px;padding:0 var(--ds-space-2);border-radius:var(--ds-radius-sm);cursor:pointer;display:flex}.ds-active-F5QcO{background:var(--ds-color-surface-raised)}.ds-rowDisabled-xVRtz{opacity:.55;cursor:not-allowed}.ds-check-LHz66{color:var(--ds-color-accent);font-weight:600}@media (prefers-reduced-motion:reduce){.ds-chevron-L2z6W{transition:none}}.ds-row-xiWsL{align-items:flex-start;display:flex}.ds-disabled-e-cSZ{opacity:.55}.ds-input-B2sXs{opacity:0;width:1px;height:1px;margin:0;position:absolute}.ds-control-b-4Kl{align-items:flex-start;gap:var(--ds-space-3);cursor:pointer;display:flex}.ds-disabled-e-cSZ .ds-control-b-4Kl{cursor:not-allowed}.ds-track-yyISA{border-radius:var(--ds-radius-pill);background:var(--ds-color-surface-raised);border:1px solid var(--ds-color-border);width:40px;height:24px;transition:background var(--ds-motion-fast), border-color var(--ds-motion-fast);flex:none;margin-top:1px;position:relative}.ds-thumb-1tTim{border-radius:var(--ds-radius-pill);background:var(--ds-color-surface);border:1px solid var(--ds-color-border);width:18px;height:18px;transition:transform var(--ds-motion-fast);position:absolute;top:2px;left:2px}.ds-input-B2sXs:checked+.ds-control-b-4Kl .ds-track-yyISA{background:var(--ds-color-accent);border-color:var(--ds-color-accent)}.ds-input-B2sXs:checked+.ds-control-b-4Kl .ds-thumb-1tTim{border-color:var(--ds-color-accent);transform:translate(16px)}.ds-input-B2sXs:focus-visible+.ds-control-b-4Kl .ds-track-yyISA{outline:2px solid var(--ds-color-focus);outline-offset:2px}.ds-labels-sqdfG{flex-direction:column;gap:2px;display:flex}@media (prefers-reduced-motion:reduce){.ds-track-yyISA,.ds-thumb-1tTim{transition:none}}@media (width<=879px){.ds-control-b-4Kl{min-height:var(--ds-tap);align-items:center}}.ds-frame-nV-Ck{background:var(--ds-color-surface);border-radius:var(--ds-radius-sm);display:flex;position:relative}.ds-disabled-WP-eP{background:var(--ds-color-surface-raised)}.ds-outline-7EpV-{padding:0 var(--ds-space-2);pointer-events:none;border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-sm);transition:border-color var(--ds-motion-fast);margin:0;position:absolute;inset:-6px 0 0}.ds-legend-C5AvI{width:auto;max-width:.01px;height:var(--ds-text-xs);font-size:var(--ds-text-xs);visibility:hidden;white-space:nowrap;transition:max-width var(--ds-motion-fast);padding:0}.ds-legend-C5AvI>span{padding:0 4px}.ds-input-ZZVlI{resize:vertical;min-width:0;padding:12px var(--ds-space-3);font-family:var(--ds-font-ui);font-size:var(--ds-text-base);color:var(--ds-color-text);background:0 0;border:none;flex:1;line-height:22px}.ds-input-ZZVlI:focus{outline:none}.ds-input-ZZVlI::placeholder{color:#0000}.ds-input-ZZVlI:focus::placeholder{color:var(--ds-color-text-tertiary)}.ds-label-ESohG{left:var(--ds-space-3);transform-origin:0 0;pointer-events:none;max-width:calc(100% - var(--ds-space-5));text-overflow:ellipsis;white-space:nowrap;font-family:var(--ds-font-ui);font-size:var(--ds-text-base);color:var(--ds-color-text-tertiary);transition:transform var(--ds-motion-fast), font-size var(--ds-motion-fast), color var(--ds-motion-fast);position:absolute;top:12px;overflow:hidden}.ds-input-ZZVlI:focus~.ds-label-ESohG,.ds-input-ZZVlI:not(:placeholder-shown)~.ds-label-ESohG{font-size:var(--ds-text-xs);background:inherit;margin-left:-4px;padding:0 4px;transform:translateY(-18px)}.ds-input-ZZVlI:focus~.ds-label-ESohG{color:var(--ds-color-accent)}.ds-input-ZZVlI:not(:focus)~.ds-outline-7EpV-{border-color:var(--ds-color-border)}.ds-input-ZZVlI:focus~.ds-outline-7EpV-{border-color:var(--ds-color-accent);padding:0 calc(var(--ds-space-2) - 1px);border-width:2px}.ds-input-ZZVlI:focus~.ds-outline-7EpV->.ds-legend-C5AvI,.ds-input-ZZVlI:not(:placeholder-shown)~.ds-outline-7EpV->.ds-legend-C5AvI{max-width:100%}.ds-invalid-P1qVT .ds-label-ESohG{color:var(--ds-color-overdue)}.ds-frame-nV-Ck:hover .ds-input-ZZVlI:not(:focus)~.ds-outline-7EpV-{border-color:var(--ds-color-text-tertiary)}.ds-invalid-P1qVT .ds-outline-7EpV-,.ds-invalid-P1qVT .ds-input-ZZVlI:focus~.ds-outline-7EpV-{border-color:var(--ds-color-overdue)}@media (prefers-reduced-motion:reduce){.ds-label-ESohG,.ds-outline-7EpV-,.ds-legend-C5AvI{transition:none}}.ds-region-b2wm2{z-index:70;left:var(--ds-space-5);bottom:var(--ds-space-5);gap:var(--ds-space-2);flex-direction:column;max-width:420px;display:flex;position:fixed}.ds-toast-W8zgW{align-items:center;gap:var(--ds-space-3);padding:var(--ds-space-3) var(--ds-space-4);background:var(--ds-color-text);color:var(--ds-color-bg);border-radius:var(--ds-radius-md);box-shadow:var(--ds-shadow-overlay);animation:ds-ds-toast-in--lYNn var(--ds-motion-base) var(--ds-ease-out) both;display:flex}@keyframes ds-ds-toast-in--lYNn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.ds-toast-W8zgW{animation-name:ds-ds-toast-fade-TbD4i;animation-duration:var(--ds-motion-fast)}}@keyframes ds-ds-toast-fade-TbD4i{0%{opacity:0}to{opacity:1}}.ds-error-HMPj3{background:var(--ds-color-overdue);color:var(--ds-color-on-overdue)}.ds-message-jrKD-{min-width:0;color:inherit;flex:1}.ds-action-PgLIr{color:inherit;cursor:pointer;font:inherit;font-size:var(--ds-text-md);text-underline-offset:3px;white-space:nowrap;background:0 0;border:none;padding:4px 0;font-weight:600;text-decoration:underline}.ds-dismiss-jLHWq{border-radius:var(--ds-radius-sm);width:24px;height:24px;color:inherit;cursor:pointer;opacity:.8;background:0 0;border:none;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.ds-dismiss-jLHWq:hover{opacity:1}.ds-action-PgLIr:focus-visible,.ds-dismiss-jLHWq:focus-visible{outline-offset:2px;outline:2px solid}@media (width<=879px){.ds-region-b2wm2{left:var(--ds-space-4);right:var(--ds-space-4);max-width:none}}*,:before,:after{box-sizing:border-box}body{background:var(--ds-color-bg);color:var(--ds-color-text);font-family:var(--ds-font-ui);font-size:var(--ds-text-base);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}a{color:var(--ds-color-accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--ds-color-accent);outline-offset:2px;border-radius:var(--ds-radius-sm)}.ds-mono{font-family:var(--ds-font-mono)}.ds-visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@view-transition{navigation:auto}::view-transition-old(root){animation-duration:var(--ds-motion-base)}::view-transition-new(root){animation-duration:var(--ds-motion-base)}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}}:root{--site-max:1184px;--site-gutter:clamp(20px, 4vw, 56px)}html{scroll-behavior:smooth;scroll-padding-top:96px}body{font-size:16px}button,summary,a{-webkit-tap-highlight-color:transparent}button{font:inherit}img{max-width:100%;height:auto;display:block}figure,h1,h2,h3,h4,p{margin:0}.page{max-width:calc(var(--site-max) + var(--site-gutter) * 2);padding-inline:var(--site-gutter);margin-inline:auto}.site-header{border-bottom:1px solid var(--ds-color-border);align-items:center;gap:32px;min-height:100px;display:flex}.site-name{color:var(--ds-color-text);white-space:nowrap;align-items:center;gap:14px;min-height:44px;font-size:14px;font-weight:600;display:flex}.site-name:hover{text-decoration:none}.name-mark{letter-spacing:-4px;padding-right:5px;font-size:34px;font-weight:600;line-height:1}.name-mark span{color:var(--ds-color-accent)}.site-nav{align-items:center;gap:28px;margin-left:auto;display:flex;position:relative}.site-nav a{min-height:44px;color:var(--ds-color-text-secondary);align-items:center;font-size:13px;display:inline-flex}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--ds-color-accent)}.header-tools{align-items:center;gap:4px;display:flex}.language-switch,.theme-toggle{width:44px;height:44px;color:var(--ds-color-text-secondary);font-family:var(--ds-font-mono);justify-content:center;align-items:center;font-size:12px;display:inline-flex}.theme-toggle{cursor:pointer;background:0 0;border:0;border-radius:50%}.theme-toggle:hover{background:var(--ds-color-surface-raised)}.mobile-menu{display:none}.skip-link{top:-100px;left:var(--site-gutter);background:var(--ds-color-accent);color:var(--ds-color-on-accent);z-index:20;padding:12px 20px;position:absolute}.skip-link:focus{top:12px}.column{min-width:0}.column:focus{outline:none}.eyebrow{font:400 10px/1.6 var(--ds-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ds-color-text-tertiary);align-items:center;gap:10px;display:flex}h1,h2{letter-spacing:-.055em;text-wrap:balance;font-weight:500;line-height:1.12}h2{font-size:clamp(32px,3.5vw,43px)}h3{letter-spacing:-.035em;font-size:20px;font-weight:500;line-height:1.35}.hero{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:center;gap:clamp(40px,7vw,100px);padding:88px 0 72px;display:grid}.hero h1{margin:26px 0;font-size:clamp(44px,4.65vw,64px)}.hero h1 .hero-accent{color:var(--ds-color-accent)}.hero-intro{max-width:540px;color:var(--ds-color-text-secondary);font-size:17px;line-height:1.85}.status-dot{background:var(--ds-color-accent);border-radius:50%;flex-shrink:0;width:6px;height:6px}.hero-actions{flex-wrap:wrap;align-items:center;gap:24px;margin-top:32px;display:flex}.button{border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;gap:24px;min-height:48px;padding:12px 20px;font-size:13px;font-weight:500;transition:background .2s,transform .2s;display:inline-flex}.button-primary{background:var(--ds-color-accent);color:var(--ds-color-on-accent)}.button-primary:hover{background:var(--ds-color-accent-hover);text-decoration:none;transform:translateY(-2px)}.text-link{min-height:44px;color:var(--ds-color-text);align-items:center;gap:14px;font-size:13px;font-weight:500;display:inline-flex}.text-link>span{color:var(--ds-color-accent)}.hero-current{color:var(--ds-color-text-tertiary);align-items:flex-start;gap:14px;margin-top:44px;display:flex}.hero-current p{gap:3px;font-size:11px;display:grid}.hero-current strong{color:var(--ds-color-text-secondary);font-weight:500}.current-mark{color:var(--ds-color-accent);font-size:22px;line-height:1.2}.hero-portrait{margin-top:4px;position:relative}.portrait-frame{padding:14px 14px 0 0;position:relative}.portrait-frame:before{content:"";border:1px solid var(--ds-color-accent-border);z-index:-1;position:absolute;inset:0 0 32px 32px}.portrait-frame img{aspect-ratio:4/4.6;object-fit:cover;object-position:52% 50%;filter:saturate(.7);border-radius:120px 3px 3px;width:100%}.portrait-index{font:10px var(--ds-font-mono);color:var(--ds-color-text-tertiary);position:absolute;top:-15px;right:3px}.portrait-cross{color:#fff;font-size:24px;font-weight:400;position:absolute;bottom:14px;right:26px}.hero-portrait figcaption{font:10px/1.8 var(--ds-font-mono);color:var(--ds-color-text-tertiary);align-items:center;gap:10px;margin-top:16px;display:flex}.hero-portrait figcaption span{color:var(--ds-color-accent);font-size:16px}.expertise-strip{border-block:1px solid var(--ds-color-border);grid-template-columns:repeat(4,1fr);gap:20px;margin:0;padding:24px 0;list-style:none;display:grid}.expertise-strip li{color:var(--ds-color-text-secondary);align-items:center;gap:12px;font-size:12px;display:flex}.expertise-strip li>span{font:10px var(--ds-font-mono);color:var(--ds-color-accent)}.section{border-bottom:1px solid var(--ds-color-border);padding:88px 0}.section-heading{grid-template-columns:1fr 2.2fr;gap:40px;margin-bottom:40px;display:grid}.section-heading>.eyebrow{align-self:start;margin-top:9px}.section-heading h2{margin-bottom:16px}.section-heading>div>p,.experience-intro>p:not(.eyebrow),.about-prose p{color:var(--ds-color-text-secondary);font-size:15px;line-height:1.85}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:28px;display:grid}.project{min-width:0}.project-visual{background:var(--ds-color-bg-page);border:1px solid var(--ds-color-border-soft);height:244px;position:relative;overflow:hidden}.visual-caption{font:8px var(--ds-font-mono);letter-spacing:.09em;color:var(--ds-color-text-tertiary);position:absolute;top:17px;left:20px}.phone{background:#f7f7ed;border:4px solid #435f52;border-radius:22px;width:115px;height:210px;padding:38px 11px 10px;position:absolute;box-shadow:6px 12px 18px #1e281e1a}.phone-back{background:#e2e9df;top:71px;left:calc(50% - 105px);transform:rotate(-12deg)}.phone-front{top:53px;left:calc(50% - 6px);transform:rotate(10deg)}.phone-island{background:#435f52;border-radius:20px;width:38px;height:9px;position:absolute;top:9px;left:calc(50% - 19px)}.phone-line{background:#bbcabb;border-radius:5px;height:5px;margin-bottom:8px;display:block}.phone-line.short{width:58%}.phone-grid{grid-template-columns:1fr 1fr;gap:6px;margin-top:20px;display:grid}.phone-grid i{background:#c8d7c7;border-radius:5px;height:28px}.phone-greeting{font:26px var(--ds-font-ui);color:#2f6b4f;letter-spacing:-2px;display:block}.route-line{border-top:1px dashed #729178;margin:13px 0 20px;display:block}.phone-button{background:#2f6b4f;border-radius:4px;height:16px;margin-top:20px;display:block}.visual-system{background:var(--ds-color-accent-soft)}.system-sample{border:1px solid var(--ds-color-accent-border);background:var(--ds-color-surface);width:208px;padding:16px 20px;position:absolute;top:48px;left:calc(50% - 104px);transform:rotate(-5deg)}.sample-type{letter-spacing:-3px;color:var(--ds-color-accent);justify-content:space-between;align-items:center;font-size:50px;font-weight:500;line-height:1;display:flex}.sample-type>span{font:8px var(--ds-font-mono);letter-spacing:0;color:var(--ds-color-text-tertiary)}.swatches{margin:16px 0;display:flex}.swatches i{background:#234e3d;flex:1;height:20px}.swatches i:nth-child(2){background:#749583}.swatches i:nth-child(3){background:#b8c8b7}.swatches i:nth-child(4){background:#e1e7d8}.sample-controls{justify-content:space-between;align-items:center;display:flex}.sample-controls>span:first-child{color:var(--ds-color-on-accent);background:var(--ds-color-accent);border-radius:3px;padding:5px 9px;font-size:9px}.sample-toggle{background:var(--ds-color-accent);border-radius:16px;width:28px;height:16px;position:relative}.sample-toggle:after{content:"";background:var(--ds-color-surface);border-radius:50%;width:10px;height:10px;position:absolute;top:3px;right:3px}.visual-platforms{text-align:center;font:8px var(--ds-font-mono);letter-spacing:.1em;color:var(--ds-color-text-secondary);position:absolute;bottom:15px;left:0;right:0}.visual-platforms>span{color:var(--ds-color-accent);padding:0 8px}.visual-factory{background:var(--ds-color-surface-raised)}.factory-orbit{border:1px solid var(--ds-color-text-tertiary);border-radius:50%;width:158px;height:158px;position:absolute;top:46px;left:calc(50% - 79px)}.factory-orbit:before{content:"";border:1px solid var(--ds-color-border);border-radius:50%;position:absolute;inset:15px -20px;transform:rotate(-35deg)}.orbit-center{height:100%;font:500 52px var(--ds-font-ui);letter-spacing:-4px;color:var(--ds-color-accent);flex-direction:column;justify-content:center;align-items:center;display:flex}.orbit-center span{font:7px var(--ds-font-mono);letter-spacing:.14em;color:var(--ds-color-text-secondary);margin-top:1px}.orbit-dot{background:var(--ds-color-accent);border:2px solid var(--ds-color-surface-raised);border-radius:50%;width:9px;height:9px;position:absolute}.dot-one{top:17px;left:19px}.dot-two{top:80px;right:-3px}.dot-three{bottom:4px;left:40px}.project-body{padding:24px 0 0}.project-body .eyebrow{letter-spacing:.03em;margin-bottom:10px;font-size:9px}.project h3{min-height:54px;margin-bottom:14px;font-size:23px}.project-description{color:var(--ds-color-text-secondary);min-height:100px;font-size:13px;line-height:1.9}.project-tags{font:9px/1.7 var(--ds-font-mono);color:var(--ds-color-text-tertiary);flex-wrap:wrap;gap:6px 12px;margin:20px 0 22px;padding:0;list-style:none;display:flex}.project-details{border-top:1px solid var(--ds-color-border)}.project-details summary{cursor:pointer;min-height:48px;color:var(--ds-color-accent);justify-content:space-between;align-items:center;gap:8px;font-size:12px;list-style:none;display:flex}.project-details summary::-webkit-details-marker{display:none}.mobile-menu summary::-webkit-details-marker{display:none}.project-details summary>span{font-size:20px;transition:transform .2s}.project-details[open] summary>span{transform:rotate(45deg)}.project-details h4{margin:16px 0 8px;font-size:12px;font-weight:600}.project-details>div>p{color:var(--ds-color-text-secondary);font-size:13px;line-height:1.8}.about{grid-template-columns:1.1fr 1fr;gap:100px;display:grid}.preserve-lines{white-space:pre-line}.about h2{margin:24px 0}.about-prose p{margin-bottom:18px}.principles{padding-top:50px}.principles article{border-bottom:1px solid var(--ds-color-border);gap:22px;padding:30px 0;display:flex}.principles article:last-child{border-bottom:0}.principle-number{font:12px var(--ds-font-mono);color:var(--ds-color-accent);padding-top:5px}.principles h3{margin-bottom:12px;font-size:20px}.principles p{color:var(--ds-color-text-secondary);font-size:14px;line-height:1.9}.experience{grid-template-columns:1fr 1.2fr;gap:100px;display:grid}.experience h2{margin:24px 0 20px}.experience-intro .text-link{margin-top:20px}.experience-intro>.education{font-family:var(--ds-font-mono);border-top:1px solid var(--ds-color-border);margin-top:36px;padding-top:18px;color:var(--ds-color-text-tertiary)!important;font-size:11px!important}.timeline{margin:8px 0 0;padding:0;list-style:none;position:relative}.timeline li{--site-dot-fill:var(--ds-color-accent);padding:0 0 36px 32px;position:relative}.timeline li:last-child{padding-bottom:0}.timeline li:before{content:"";border:1px solid var(--ds-color-accent);background-color:var(--site-dot-fill,var(--ds-color-accent));border-radius:50%;width:9px;height:9px;position:absolute;top:5px;left:-5px}.timeline-date{font:10px var(--ds-font-mono);color:var(--ds-color-accent);margin-bottom:12px}.timeline h3{margin-bottom:4px}.timeline-role{color:var(--ds-color-text-tertiary);margin-bottom:12px;font-size:11px}.timeline li>p:last-child{color:var(--ds-color-text-secondary);font-size:13px;line-height:1.9}.lab-grid{grid-template-columns:1fr 1fr;gap:56px;margin-left:calc(31.25% + 27.5px);display:grid}.lab-grid article+article{border-left:1px solid var(--ds-color-border);padding-left:32px}.lab-mark{font:24px var(--ds-font-mono);color:var(--ds-color-accent);margin-bottom:20px;display:block}.lab-grid h3{margin-bottom:14px;font-size:20px}.lab-grid p{color:var(--ds-color-text-secondary);font-size:13px;line-height:1.9}.lab>.text-link{margin-top:26px;margin-left:calc(31.25% + 27.5px)}.contact-section{background:var(--ds-color-accent-soft);border-radius:3px;grid-template-columns:1.2fr 1fr;gap:80px;margin-block:80px;padding:56px;display:grid}.contact-section h2{margin-top:24px}.contact-section .eyebrow{color:var(--ds-color-accent)}.contact-copy>p{color:var(--ds-color-text-secondary);margin-bottom:24px;font-size:14px;line-height:1.85}.contact-email{width:fit-content;font:11px var(--ds-font-mono);color:var(--ds-color-text-secondary);overflow-wrap:anywhere;margin-top:16px;padding-block:8px;display:block}.contact-social{flex-wrap:wrap;gap:6px 18px;margin-top:12px;display:flex}.contact-social a{min-height:44px;color:var(--ds-color-text-secondary);align-items:center;font-size:11px;display:inline-flex}.site-footer{border-top:1px solid var(--ds-color-border);justify-content:space-between;align-items:center;gap:30px;padding:32px 0;display:flex}.footer-name{color:var(--ds-color-text);font-size:13px;font-weight:500}.footer-name>span{color:var(--ds-color-accent)}.site-footer p{color:var(--ds-color-text-tertiary);margin-top:5px;font-size:11px}.footer-links{font:10px var(--ds-font-mono);align-items:center;gap:24px;display:flex}.footer-links a{color:var(--ds-color-text-secondary);align-items:center;min-height:44px;display:inline-flex}.footer-year{color:var(--ds-color-text-tertiary)}.page-cv{max-width:800px;margin:0 auto;padding:64px 0 80px}.prose h1{margin-bottom:12px;font-size:clamp(32px,4vw,46px)}.prose h2{border-top:1px solid var(--ds-color-border);margin:40px 0 18px;padding-top:24px;font-size:24px}.prose h1+h2{color:var(--ds-color-text-secondary);letter-spacing:-.02em;border:0;margin:0 0 24px;padding:0;font-size:16px;font-weight:400}.prose h1+h2+hr{display:none}.prose h3{margin:28px 0 10px}.prose h4{margin:22px 0 10px;font-size:14px}.prose p,.prose li{color:var(--ds-color-text-secondary);font-size:14px;line-height:1.9}.prose p{margin-bottom:16px}.prose ul{margin:0 0 20px;padding-left:20px}.prose li{margin-bottom:8px}.prose li::marker{color:var(--ds-color-accent)}.prose strong{color:var(--ds-color-text);font-weight:600}.prose code{font:12px var(--ds-font-mono);background:var(--ds-color-surface-raised);overflow-wrap:anywhere;border-radius:3px;padding:1px 4px}.prose table{border-collapse:collapse;table-layout:fixed;width:100%;margin-bottom:20px}.prose td,.prose th{text-align:left;vertical-align:top;border-bottom:1px solid var(--ds-color-border);overflow-wrap:anywhere;padding:12px 10px;font-size:12px;line-height:1.8}.prose td:first-child{width:25%}.prose th{color:var(--ds-color-text-tertiary);font-weight:500}.prose hr{border:0;border-top:1px solid var(--ds-color-border);margin:24px 0}.prose .cv-date{font:11px/1.8 var(--ds-font-mono);color:var(--ds-color-text-tertiary)}.cv-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:40px;display:flex}.download{background:var(--ds-color-accent);min-height:44px;color:var(--ds-color-on-accent);border-radius:3px;justify-content:center;align-items:center;padding:10px 20px;font-size:12px;display:inline-flex}.download:hover{background:var(--ds-color-accent-hover);text-decoration:none}.not-found{max-width:720px;min-height:65vh;padding:100px 0}.not-found h1{margin:24px 0;font-size:clamp(40px,5vw,60px)}.not-found>p:not(.eyebrow){color:var(--ds-color-text-secondary);line-height:1.9}@media (width>=1500px){.hero h1{font-size:66px}}@media (width<=1000px){.hero{gap:36px;padding:64px 0}.hero h1{font-size:48px}.hero-intro{font-size:15px}.hero-actions{gap:14px}.hero-actions .text-link{font-size:11px}.site-nav{gap:18px}.site-header{gap:20px}.site-name{gap:10px}.about,.experience{gap:48px}.project-grid{gap:20px}.project h3{font-size:20px}.project-description{min-height:125px}.contact-section{gap:36px;padding:40px}}@media (width<=760px){html{scroll-padding-top:24px}.site-header{min-height:80px}.site-name{font-size:13px}.site-nav{display:none}.header-tools{margin-left:auto}.mobile-menu{display:block;position:relative}.mobile-menu summary{cursor:pointer;flex-direction:column;justify-content:center;gap:5px;width:36px;height:44px;padding:8px;list-style:none;display:flex}.mobile-menu summary>span{background:var(--ds-color-text);width:20px;height:1px}.mobile-menu nav{z-index:10;border:1px solid var(--ds-color-border);background:var(--ds-color-surface);width:210px;box-shadow:var(--ds-shadow-overlay);padding:12px;position:absolute;top:52px;right:0}.mobile-menu nav a{min-height:44px;color:var(--ds-color-text-secondary);align-items:center;padding:8px 12px;font-size:14px;display:flex}.hero{grid-template-columns:minmax(0,1fr) 190px;gap:26px;padding:48px 0}.hero h1{font-size:39px}.hero .eyebrow{letter-spacing:.03em;font-size:8px}.hero-intro{font-size:14px}.hero-current{margin-top:24px}.hero-portrait figcaption{font-size:8px}.hero-actions{margin-top:24px}.button{gap:14px;font-size:12px}.expertise-strip{grid-template-columns:1fr 1fr;row-gap:18px}.expertise-strip li{font-size:11px}.section{padding:56px 0}.section-heading{grid-template-columns:1fr;gap:16px;margin-bottom:30px}.section-heading>.eyebrow{margin-top:0}.section-heading h2{max-width:520px}.project-grid{grid-template-columns:1fr;gap:40px}.project{grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:24px;display:grid}.project-visual{height:250px}.project-body{padding-top:0}.project h3,.project-description{min-height:0}.project h3{margin-bottom:10px}.project-description{font-size:12px}.project-tags{margin:14px 0}.about,.experience{grid-template-columns:1fr;gap:30px}.about-story{max-width:540px}.principles{padding-top:0}.principles article{padding:24px 0}.experience-intro{max-width:490px}.timeline{margin-left:5px}.lab-grid,.lab>.text-link{margin-left:0}.lab-grid{gap:30px}.lab-grid article+article{padding-left:24px}.contact-section{grid-template-columns:1fr;gap:24px;margin-block:48px;padding:32px}.contact-section h2{margin-top:18px}.contact-copy>p{max-width:450px}.contact-social{margin-top:4px}.site-footer{align-items:flex-start}.footer-links{flex-wrap:wrap;gap:16px}}@media (width<=520px){.hero{grid-template-columns:1fr;gap:36px}.hero h1{margin:22px 0;font-size:clamp(40px,9.7vw,52px)}.hero .eyebrow{font-size:9px}.hero-intro{font-size:15px}.hero-actions{gap:8px 18px}.hero-actions .text-link{font-size:12px}.hero-portrait{width:80%;max-width:310px;margin:0 auto}.portrait-frame img{aspect-ratio:1.12;object-position:50% 40%;border-top-left-radius:90px}.hero-portrait figcaption{font-size:9px}.hero-current p{font-size:10px}.expertise-strip{gap:16px 12px;padding-block:22px}.expertise-strip li{gap:8px;font-size:10px}.expertise-strip li>span{font-size:9px}.project{display:block}.project-visual{height:244px}.project-body{padding-top:22px}.project h3{font-size:23px}.project-description{font-size:14px}.project-tags{margin-block:20px;font-size:10px}.project-body .eyebrow{font-size:10px}.project-details summary{font-size:13px}h2{font-size:34px}.about h2{margin:20px 0}.principles h3{font-size:19px}.lab-grid{grid-template-columns:1fr;gap:24px}.lab-grid article+article{border-left:0;border-top:1px solid var(--ds-color-border);padding:24px 0 0}.lab-mark{margin-bottom:14px}.contact-section{padding:28px 22px}.contact-section h2{font-size:31px}.site-footer{flex-direction:column;gap:12px}.footer-links{width:100%}.footer-year{margin-left:auto}.page-cv{padding-top:40px}.prose h1{font-size:32px}.prose h1+h2{font-size:14px}.prose td,.prose th{padding:10px 5px;font-size:11px}.prose td:first-child{width:30%}.not-found{padding-block:64px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button-primary:hover{transform:none}}.project-featured{border-bottom:1px solid var(--ds-color-border);grid-column:1/-1;grid-template-columns:1.15fr 1fr;align-items:center;gap:48px;margin-bottom:12px;padding-bottom:40px;display:grid}.project-featured .project-body{padding-top:0}.project-featured h3{min-height:0;margin-bottom:18px;font-size:34px}.project-featured .project-description{min-height:0;font-size:15px}.project-featured .project-tags{font-size:10px}.project-repository{color:var(--ds-color-accent);margin-top:4px}.visual-planner{background:var(--ds-color-accent-soft);height:362px}.planner-window{border:1px solid var(--ds-color-accent-border);background:var(--ds-color-bg);border-radius:8px;width:min(84%,430px);position:absolute;top:49%;left:50%;overflow:hidden;transform:translate(-50%,-46%)rotate(-3deg);box-shadow:8px 15px 26px #1e281e12}.planner-window-bar{border-bottom:1px solid var(--ds-color-border);align-items:center;gap:4px;height:25px;padding:0 10px;display:flex}.planner-window-bar>span{background:var(--ds-color-border);border-radius:50%;width:4px;height:4px}.planner-window-bar b{font:8px var(--ds-font-mono);color:var(--ds-color-text-tertiary);margin-left:auto;font-weight:400}.planner-window-body{display:flex}.planner-sidebar{border-right:1px solid var(--ds-color-border);flex-shrink:0;width:43px;padding:12px 11px}.planner-logo{letter-spacing:-2px;margin-bottom:16px;font-size:23px;font-weight:500;line-height:1;display:block}.planner-logo>span{color:var(--ds-color-accent)}.planner-sidebar>i{background:var(--ds-color-border);border-radius:2px;height:5px;margin-bottom:12px;display:block}.planner-sidebar>i.selected{background:var(--ds-color-accent)}.planner-sidebar-divider{height:20px;display:block}.planner-dashboard{flex:1;min-width:0;padding:18px 20px 14px}.planner-greeting{letter-spacing:-.04em;color:var(--ds-color-text);margin-bottom:16px;font-size:16px;font-weight:500;display:block}.planner-module-label{font:7px var(--ds-font-mono);color:var(--ds-color-text-tertiary);letter-spacing:.1em;justify-content:space-between;margin-bottom:7px;display:flex}.planner-module-label>span{color:var(--ds-color-accent)}.planner-finance{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:15px;display:grid}.planner-finance>div{border:1px solid var(--ds-color-border);background:var(--ds-color-surface);padding:8px}.planner-finance>div>span,.planner-daily>div>span{color:var(--ds-color-text-secondary);font-size:8px}.planner-finance i{background:var(--ds-color-accent-border);border-radius:2px;width:70%;height:4px;margin-top:7px;display:block}.planner-finance i+i{background:var(--ds-color-border);width:45%}.planner-daily{grid-template-columns:1.2fr 1fr;gap:10px;display:grid}.planner-journal>i{background:var(--ds-color-border);width:90%;height:3px;margin-top:5px;display:block}.planner-journal>i:last-child{width:65%}.planner-routine>div{gap:5px;margin-top:8px;display:flex}.planner-routine i{width:16px;height:16px;color:var(--ds-color-accent);background:var(--ds-color-accent-soft);border:1px solid var(--ds-color-accent-border);border-radius:50%;justify-content:center;align-items:center;font-size:9px;font-style:normal;display:flex}.planner-ai{border-top:1px solid var(--ds-color-border);color:var(--ds-color-text-secondary);align-items:center;gap:7px;margin-top:15px;padding-top:8px;font-size:8px;display:flex}.planner-ai>span{color:var(--ds-color-accent);font-size:12px}.planner-illustration-note{font:8px var(--ds-font-mono);color:var(--ds-color-text-tertiary);position:absolute;bottom:15px;right:20px}.travel-grid{grid-template-columns:1.85fr 1fr;align-items:center;gap:60px;display:grid}.travel-photo{min-width:0}.travel-photo img{aspect-ratio:1.8;object-fit:cover;object-position:center;filter:saturate(.8);border-radius:3px;width:100%}.travel-photo figcaption{color:var(--ds-color-text-tertiary);font:11px/1.7 var(--ds-font-mono);align-items:center;gap:10px;margin-top:14px;display:flex}.travel-photo figcaption>span{color:var(--ds-color-accent)}.travel-compass{width:75px;color:var(--ds-color-accent);margin-bottom:28px;display:block}.travel-compass svg{stroke:currentColor;stroke-width:1px;width:100%}.compass-needle{fill:var(--ds-color-accent-soft)}.travel-note h3{margin-bottom:18px;font-size:26px}.travel-note p{color:var(--ds-color-text-secondary);font-size:14px;line-height:1.9}.travel-note .text-link{margin-top:18px}.personal{grid-template-columns:1.1fr 1fr;gap:100px;display:grid}.personal-intro h2{margin:24px 0}.personal-intro>p:not(.eyebrow){color:var(--ds-color-text-secondary);font-size:16px;line-height:1.9}.personal-intro>.text-link{margin-top:20px}.personal-interests{padding-top:28px}.personal-interests article{border-bottom:1px solid var(--ds-color-border);gap:24px;padding:24px 0;display:flex}.personal-interests article:last-child{border:0}.personal-interests article>span{color:var(--ds-color-accent);font:24px var(--ds-font-mono);flex:0 0 26px}.personal-interests h3{margin-bottom:10px;font-size:20px}.personal-interests p{color:var(--ds-color-text-secondary);font-size:14px;line-height:1.85}@media (width<=1000px){.project-featured{gap:32px}.project-featured h3{font-size:30px}.travel-grid{gap:32px}.personal{gap:48px}}@media (width<=760px){.project-featured{grid-template-columns:1fr;gap:24px}.project-featured .project-body{max-width:560px}.project-featured h3{font-size:32px}.visual-planner{height:350px}.planner-window{width:min(84%,430px)}.travel-grid{grid-template-columns:1fr;gap:32px}.travel-note{grid-template-columns:68px 1fr;gap:0 24px;display:grid}.travel-compass{grid-row:1/4;width:60px;margin:0}.travel-note h3,.travel-note p,.travel-note .text-link{grid-column:2}.travel-note h3{font-size:24px}.personal{grid-template-columns:1fr;gap:12px}.personal-interests{padding:0}}@media (width<=520px){.visual-planner{height:300px}.planner-window{width:90%}.planner-dashboard{padding:14px 12px 12px}.planner-greeting{font-size:14px}.visual-planner .visual-caption{font-size:7px}.project-featured .project-description{font-size:14px}.project-featured{margin-bottom:0;padding-bottom:28px}.travel-photo img{aspect-ratio:1.3;object-position:58% center}.travel-note{grid-template-columns:1fr}.travel-note h3,.travel-note p,.travel-note .text-link{grid-column:1}.travel-compass{grid-row:auto;width:50px;margin-bottom:20px}.personal-intro>p:not(.eyebrow){font-size:15px}}.hero-line{display:block}@media (prefers-reduced-motion:no-preference){.hero .eyebrow,.hero-line,.hero-intro,.hero-actions,.hero-current{animation:site-hero-rise var(--ds-motion-reveal) var(--ds-ease-out) both;animation-delay:calc(var(--i,0) * 70ms)}.hero .eyebrow{--i:0}.hero-line:first-of-type{--i:1}.hero-line:nth-of-type(2){--i:2}.hero-intro{--i:3}.hero-actions{--i:4}.hero-current{--i:5}.portrait-frame img{animation:site-portrait-reveal .8s var(--ds-ease-in-out) .12s both}.expertise-strip{animation:site-fade-in var(--ds-motion-reveal) var(--ds-ease-out) .5s both}}@keyframes site-hero-rise{0%{opacity:0;transform:translateY(14px)}}@keyframes site-portrait-reveal{0%{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}@keyframes site-fade-in{0%{opacity:0}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.reveal{animation:linear both site-section-reveal;animation-timeline:view();animation-range:entry entry 60%}.reveal-stagger{animation-range:entry 5% entry 65%}}}@keyframes site-section-reveal{0%{opacity:0;transform:translateY(16px)}}@property --site-timeline-scale{syntax:"<number>";inherits:true;initial-value:1}@property --site-dot-fill{syntax:"<color>";inherits:true;initial-value:#2f6b4f}.timeline:before{content:"";background:var(--ds-color-border);width:1px;transform:scaleY(var(--site-timeline-scale,1));transform-origin:top;position:absolute;top:5px;bottom:0;left:0}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.timeline{animation:linear both site-timeline-draw;animation-timeline:view();animation-range:entry 20% cover 60%}.timeline li{animation:linear both site-dot-light;animation-timeline:view();animation-range:entry 40% entry 80%}}}@keyframes site-timeline-draw{0%{--site-timeline-scale:0}}@keyframes site-dot-light{0%{--site-dot-fill:var(--ds-color-bg)}}@supports selector(::details-content) and (interpolate-size:allow-keywords){@media (prefers-reduced-motion:no-preference){.project-details{interpolate-size:allow-keywords}.project-details::details-content{height:0;transition:height var(--ds-motion-slow) var(--ds-ease-out), content-visibility var(--ds-motion-slow) var(--ds-ease-out) allow-discrete;overflow:clip}.project-details[open]::details-content{height:auto}}}.routine-check svg{width:10px;height:10px;display:block}.routine-check path{stroke-dasharray:1;stroke-dashoffset:0}.orbit-dots{position:absolute;inset:0}@media (prefers-reduced-motion:no-preference){.project-visual.is-live .planner-finance i,.project-visual.is-live .planner-journal>i{transform-origin:0;animation:site-bar-fill .6s var(--ds-ease-out) both}.project-visual.is-live .planner-finance>div i+i{animation-delay:80ms}.project-visual.is-live .planner-finance>div:nth-child(2) i{animation-delay:.16s}.project-visual.is-live .planner-finance>div:nth-child(2) i+i{animation-delay:.24s}.project-visual.is-live .planner-journal>i{animation-duration:.4s;animation-delay:.32s}.project-visual.is-live .planner-journal>i:nth-child(2){animation-delay:.4s}.project-visual.is-live .planner-journal>i:nth-child(3){animation-delay:.48s}.project-visual.is-live .routine-check path{animation:site-check-draw .4s var(--ds-ease-out) .24s both}.project-visual.is-live .phone-front{animation:site-phone-front .7s var(--ds-ease-out) both}.project-visual.is-live .phone-back{animation:site-phone-back .7s var(--ds-ease-out) both}.project-visual.is-live .route-line{transform-origin:0;animation:site-bar-fill .6s var(--ds-ease-out) .3s both}.project-visual.is-live .swatches i{transform-origin:bottom;animation:site-swatch-rise .5s var(--ds-ease-out) both}.project-visual.is-live .swatches i:nth-child(2){animation-delay:80ms}.project-visual.is-live .swatches i:nth-child(3){animation-delay:.16s}.project-visual.is-live .swatches i:nth-child(4){animation-delay:.24s}.project-visual.is-live .sample-toggle:after{animation:site-toggle-slide .4s var(--ds-ease-out) .4s both}.project-visual.is-live .orbit-dots{animation:site-orbit-spin 2.4s var(--ds-ease-in-out) both}.project-visual,.planner-window{transition:transform var(--ds-motion-slow) var(--ds-ease-out)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.project:hover .project-visual{transform:translateY(-4px)}.project:hover .planner-window{transform:translate(-50%,-46%)rotate(-2deg)}}@keyframes site-bar-fill{0%{transform:scaleX(0)}}@keyframes site-check-draw{0%{stroke-dashoffset:1px}}@keyframes site-phone-front{0%{transform:rotate(10deg)translateY(6px)}}@keyframes site-phone-back{0%{transform:rotate(-12deg)translateY(-4px)}}@keyframes site-swatch-rise{0%{transform:scaleY(0)}}@keyframes site-toggle-slide{0%{transform:translate(-12px)}}@keyframes site-orbit-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.nav-underline{background:var(--ds-color-accent);opacity:0;pointer-events:none;width:0;height:2px;transition:transform var(--ds-motion-slow) var(--ds-ease-out), width var(--ds-motion-slow) var(--ds-ease-out), opacity var(--ds-motion-base) var(--ds-ease-out);position:absolute;bottom:12px;left:0}.site-nav a[aria-current=true]{color:var(--ds-color-text)}@media (width<=760px){.nav-underline{display:none}}html.vt-theme::view-transition-old(root){mix-blend-mode:normal;animation:none}html.vt-theme::view-transition-new(root){mix-blend-mode:normal;animation:none}html.vt-theme::view-transition-new(root){animation:site-theme-reveal var(--ds-motion-reveal) var(--ds-ease-in-out)}@keyframes site-theme-reveal{0%{clip-path:circle(0px at var(--vt-x,50%) var(--vt-y,50%))}to{clip-path:circle(var(--vt-r,150vmax) at var(--vt-x,50%) var(--vt-y,50%))}}.text-link>span,.button>span{transition:transform var(--ds-motion-fast) var(--ds-ease-out)}.button:active{transform:scale(.97)}h3,h4{text-wrap:balance}p{text-wrap:pretty}@media (prefers-reduced-motion:no-preference){.text-link:hover>span.arrow-up-right,.button:hover>span.arrow-up-right{transform:translate(2px,-2px)}.text-link:hover>span.arrow-down{transform:translateY(2px)}}@media (prefers-reduced-motion:reduce){.button:active,.text-link:hover>span,.button:hover>span{transform:none}}
