@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(../media/dm-sans-latin-ext-400-normal.0fqyy_rzir8wk.woff2)format("woff2"),url(../media/dm-sans-latin-ext-400-normal.2wgrmp5e19scw.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:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(../media/dm-sans-latin-400-normal.0471snlmja818.woff2)format("woff2"),url(../media/dm-sans-latin-400-normal.40quu04grbhf8.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:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(../media/dm-sans-latin-ext-500-normal.3kt-ux4qy_ne2.woff2)format("woff2"),url(../media/dm-sans-latin-ext-500-normal.3exo923874x5t.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:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(../media/dm-sans-latin-500-normal.0brn-8r9pdr2e.woff2)format("woff2"),url(../media/dm-sans-latin-500-normal.0jcw8phz0eanr.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:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(../media/dm-sans-latin-ext-600-normal.2h9q_0618j3sz.woff2)format("woff2"),url(../media/dm-sans-latin-ext-600-normal.2uv0s9c16r-jh.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:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(../media/dm-sans-latin-600-normal.0oone78si629l.woff2)format("woff2"),url(../media/dm-sans-latin-600-normal.40ad7xuawyzt9.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:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(../media/dm-sans-latin-ext-700-normal.2hzb0w6rbfwop.woff2)format("woff2"),url(../media/dm-sans-latin-ext-700-normal.3l0fp675b56tl.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:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(../media/dm-sans-latin-700-normal.1a6kzvi7en7g-.woff2)format("woff2"),url(../media/dm-sans-latin-700-normal.33in7pwjke59p.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{--font-sans:"DM Sans","Noto Sans",system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.6}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:0 0;border:0}button:disabled{cursor:default;opacity:.55}a{color:inherit;text-decoration:none}input,textarea{min-width:0}h1,h2,h3,h4,p{margin:0}svg{vertical-align:middle;flex-shrink:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--fp-accent);outline-offset:4px}::selection{background:var(--fp-accent-wash);color:var(--fp-text)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:1000;background:var(--fp-button);color:var(--fp-button-text);border-radius:10px;padding:12px 18px;position:fixed;top:10px;left:10px;transform:translateY(-160%)}.skip-link:focus{transform:none}.modal{background:var(--fp-surface);color:var(--fp-text);border:1px solid var(--fp-border);border-radius:18px;width:min(740px,100% - 32px);max-height:calc(100dvh - 40px);padding:0;overflow:auto}.modal-wide{width:min(1100px,100% - 32px)}.modal::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#10121a88}.modal-header{z-index:2;background:var(--fp-surface);border-bottom:1px solid var(--fp-border);justify-content:space-between;align-items:center;gap:20px;padding:20px 26px;display:flex;position:sticky;top:0}.modal-header h2{font-size:20px;font-weight:500}.icon-button{border-radius:10px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.icon-button:hover{background:var(--fp-hover)}.github-dialog{padding:24px}.button{border-radius:10px;justify-content:center;align-items:center;gap:10px;min-height:44px;padding:11px 18px;font-weight:500;display:inline-flex}.tag{border:1px solid var(--fp-border);border-radius:8px;padding:4px 8px;font-size:12px;display:inline-flex}@media (max-width:600px){.modal-header{padding:16px 18px}.modal-header h2{font-size:18px}.modal{width:calc(100% - 20px);max-height:calc(100dvh - 24px)}.github-dialog{padding:18px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--fp-bg:#f7f8fa;--fp-surface:#fff;--fp-hover:#eff2f6;--fp-text:#141820;--fp-secondary:#525c6c;--fp-muted:#687486;--fp-border:#dce1e9;--fp-accent:#185bd8;--fp-accent-wash:#edf3ff;--fp-button:#2563eb;--fp-button-text:#fff;--fp-error-bg:#fff0e9;--fp-error:#963e24;--fp-control-height:48px;--fp-control-radius:10px;--fp-control-font:14px;--fp-panel-radius:16px}body{background:var(--fp-bg);color:var(--fp-text)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--fp-bg:#090b10;--fp-surface:#11141b;--fp-hover:#1a1f29;--fp-text:#f3f5fa;--fp-secondary:#b2bac9;--fp-muted:#8f9bae;--fp-border:#292f3b;--fp-accent:#80adff;--fp-accent-wash:#122449;--fp-button:#2563eb;--fp-button-text:#fff;--fp-error-bg:#3a2521;--fp-error:#ffba9f}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--fp-bg:#090b10;--fp-surface:#11141b;--fp-hover:#1a1f29;--fp-text:#f3f5fa;--fp-secondary:#b2bac9;--fp-muted:#8f9bae;--fp-border:#292f3b;--fp-accent:#80adff;--fp-accent-wash:#122449;--fp-button:#2563eb;--fp-button-text:#fff;--fp-error-bg:#3a2521;--fp-error:#ffba9f}}:root[data-accent=coral]{--fp-accent:#b76840;--fp-accent-wash:#fbeadd;--fp-button:#ad603b;--fp-button-text:#fff}:root[data-accent=lime]{--fp-accent:#48751b;--fp-accent-wash:#edf3e6;--fp-button:#48751b;--fp-button-text:#fff}:root[data-theme=dark][data-accent=coral]{--fp-accent:#ffb58c;--fp-accent-wash:#35251e;--fp-button:#ffb58c;--fp-button-text:#452619}:root[data-theme=dark][data-accent=lime]{--fp-accent:#c4e897;--fp-accent-wash:#2c3a26;--fp-button:#c4e897;--fp-button-text:#1b2a13}@media (prefers-color-scheme:dark){:root:not([data-theme=light])[data-accent=coral]{--fp-accent:#ffb58c;--fp-accent-wash:#35251e;--fp-button:#ffb58c;--fp-button-text:#452619}:root:not([data-theme=light])[data-accent=lime]{--fp-accent:#c4e897;--fp-accent-wash:#2c3a26;--fp-button:#c4e897;--fp-button-text:#1b2a13}}.home-theme{--ink:var(--fp-text);--body:var(--fp-secondary);--muted:var(--fp-muted);--green:var(--fp-accent);--line:var(--fp-border);--wash:var(--fp-surface);background:var(--fp-bg);color:var(--fp-text);color-scheme:inherit}:root[data-motion=reduced] *,:root[data-motion=reduced] :before,:root[data-motion=reduced] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
