@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a342834df7752944-s.3hd2l7bm32o7k.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.1l2zhvq5eocqf.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.2vhvl9vrvk-va.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.173xwsdme27n8.woff2)format("woff2");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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.13hnt-xgp82zk.woff2)format("woff2");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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.1sj6eobyi31rd.woff2)format("woff2");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:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.manrope_7878db25-module__0eKFlW__className{font-family:Manrope,Manrope Fallback;font-style:normal}.manrope_7878db25-module__0eKFlW__variable{--font-sans:"Manrope", "Manrope Fallback"}
@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/a5a3076f5a3c2968-s.09mqwf_zjnrdf.woff2)format("woff2");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:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/23f1a98b08006014-s.0s5mkn35-hrc5.woff2)format("woff2");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:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/54fc36028e2bb174-s.p.20jfceqj9zyw9.woff2)format("woff2");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:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.fraunces_db7d5d72-module___8COtG__className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.fraunces_db7d5d72-module___8COtG__variable{--font-display:"Fraunces", "Fraunces Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.0rgnxg2b64rzs.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/59b15b4bcd7b1eb5-s.2vemzm0itqzfy.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/e532fa1b9921e1cd-s.3cb5lpr2l6xud.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/2fe89d53234c61d4-s.1u30mmyq6lnsd.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/99e609270109b47d-s.p.40sczeszzbjw1.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/5e05ae5b48faa55e-s.1yd4_i3e35931.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/a7afbb44bec2bb18-s.1qc6dx89jd2qv.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/02263ebadd758ea4-s.29yke99gs9qpn.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/68757d6cddeff913-s.1i-sca43-qwng.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/effe91970fc4db64-s.p.0oace-s_gkfks.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.ibm_plex_mono_1056f34-module__sJl92a__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_1056f34-module__sJl92a__variable{--font-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
:root{--bg-primary:#05060a;--bg-secondary:#0a0c14;--bg-tertiary:#11131f;--text-primary:#f5f6fb;--text-secondary:#aab0c6;--text-muted:#7d82a0;--accent:#7c5cff;--accent-2:#22d3ee;--accent-3:#f472b6;--accent-strong:#9d83ff;--on-accent:#fff;--accent-gradient:linear-gradient(120deg, #7c5cff 0%, #22d3ee 55%, #f472b6 110%);--accent-gradient-soft:linear-gradient(120deg, #7c5cffe6, #22d3eee6);--border-color:#ffffff14;--border-strong:#ffffff2e;--glass-bg:#ffffff09;--glass-bg-strong:#ffffff0f;--glass-border:#ffffff1a;--glass-blur:16px;--surface:#ffffff06;--surface-hover:#ffffff0d;--grid-line:#ffffff07;--glow-accent:0 0 40px #7c5cff59;--glow-cyan:0 0 40px #22d3ee4d;--success:#34d399;--warning:#fbbf24;--danger:#f87171;--accent-mocha-accounting:#8b7bff;--accent-mocha-manage:#6f9bff;--accent-my-flood-policy:#4fc3d9;--accent-mocha-snap:#b28dff;--accent-odyssey-nova:#3ddba3;--font-sans-stack:var(--font-sans), system-ui, -apple-system, sans-serif;--font-display-stack:var(--font-display), Georgia, "Times New Roman", serif;--font-mono-stack:var(--font-mono), ui-monospace, "SF Mono", monospace;--space-xs:.5rem;--space-sm:1rem;--space-md:2rem;--space-lg:4rem;--space-xl:7rem;--max-width:1200px;--nav-height:72px;--radius-xs:6px;--radius-sm:12px;--radius-md:20px;--radius-lg:28px;--transition-fast:.18s cubic-bezier(.4, 0, .2, 1);--transition-normal:.32s cubic-bezier(.34, 1.2, .4, 1);--transition-slow:.6s cubic-bezier(.22, 1, .36, 1)}[data-theme=light]{--bg-primary:#f4f5fb;--bg-secondary:#fff;--bg-tertiary:#eceef6;--text-primary:#14141f;--text-secondary:#4a4d63;--text-muted:#5f6380;--accent:#6d3bff;--accent-2:#0891b2;--accent-3:#db2777;--accent-strong:#5a27e6;--on-accent:#fff;--accent-gradient:linear-gradient(120deg, #6d3bff 0%, #0891b2 55%, #db2777 110%);--border-color:#1414231a;--border-strong:#14142338;--glass-bg:#ffffff8c;--glass-bg-strong:#ffffffbf;--glass-border:#14142314;--surface:#14142305;--surface-hover:#1414230b;--grid-line:#1414230a;--glow-accent:0 0 40px #6d3bff38;--glow-cyan:0 0 40px #0891b233;--success:#059669;--warning:#b45309;--danger:#dc2626;--accent-mocha-accounting:#6d3bff;--accent-mocha-manage:#3f6fe0;--accent-my-flood-policy:#0c8fae;--accent-mocha-snap:#7c3aed;--accent-odyssey-nova:#0e9d70}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}html,body{max-width:100vw;overflow-x:hidden}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans-stack);line-height:1.6;transition:background-color .5s,color .5s}body:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(60vw 60vw at 12% 8%,#7c5cff29,#0000 60%),radial-gradient(55vw 55vw at 88% 18%,#22d3ee1f,#0000 60%),radial-gradient(50vw 50vw at 70% 95%,#f472b61a,#0000 60%);animation:24s ease-in-out infinite alternate auroraDrift;position:fixed;inset:0}body:after{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(to right, var(--grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);background-size:64px 64px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(90% 70% at 50% 35%,#000,#0000 95%);mask-image:radial-gradient(90% 70% at 50% 35%,#000,#0000 95%)}@keyframes auroraDrift{0%{transform:translate(0,0)scale(1)}50%{transform:translate(-3%,2%)scale(1.08)}to{transform:translate(2%,-2%)scale(1.04)}}::selection{background:var(--accent);color:var(--on-accent)}a{color:inherit;transition:color var(--transition-fast);text-decoration:none}:focus-visible{outline:2px solid var(--accent-strong);outline-offset:3px;box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 25%, transparent)}.skip-link{z-index:10001;border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);font-family:var(--font-mono-stack);letter-spacing:.1em;text-transform:uppercase;transition:transform var(--transition-fast);padding:.75rem 1.25rem;font-size:.75rem;font-weight:600;position:fixed;top:.75rem;left:.75rem;transform:translateY(calc(-100% - 1.5rem))}.skip-link:focus-visible{transform:translateY(0)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button{font-family:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-display-stack);color:var(--text-primary);letter-spacing:-.01em;font-weight:600;line-height:1.08}p{color:var(--text-secondary)}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 2rem}.section{padding:var(--space-xl) 0;position:relative}section[id]{scroll-margin-top:calc(var(--nav-height) + 1rem)}.gradient-text{background:var(--accent-gradient);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text}.skill-chip{white-space:nowrap;font-family:var(--font-mono-stack);letter-spacing:.04em;color:var(--text-primary);background:var(--glass-bg-strong);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(10px)saturate(140%);backdrop-filter:blur(10px)saturate(140%);-webkit-user-select:none;user-select:none;pointer-events:none;border-radius:100px;align-items:center;gap:.5rem;padding:.5rem .9rem;font-size:.8rem;font-weight:500;display:inline-flex;box-shadow:0 8px 28px #00000047}.skill-chip svg{flex-shrink:0;width:1.05em;height:1.05em}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(140%);backdrop-filter:blur(var(--glass-blur)) saturate(140%);border-radius:var(--radius-md)}.mono-label{font-family:var(--font-mono-stack);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-size:.75rem;font-weight:500}.section-head{margin-bottom:var(--space-lg);align-items:baseline;gap:1.25rem;display:flex}.section-index{font-family:var(--font-mono-stack);letter-spacing:.1em;background:var(--accent-gradient);-webkit-text-fill-color:transparent;background-size:220% 220%;-webkit-background-clip:text;background-clip:text;font-size:.85rem;font-weight:600;animation:5s infinite indexShimmer}@keyframes indexShimmer{0%,to{background-position:0%}50%{background-position:100%}}.section-heading{text-transform:uppercase;letter-spacing:-.01em;white-space:nowrap;font-size:clamp(1.9rem,3.5vw,2.9rem)}.section-rule{background:linear-gradient(to right, var(--border-strong), transparent);flex:1;height:1px;transform:translateY(-.4em)}.btn{border-radius:var(--radius-xs);font-family:var(--font-mono-stack);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:transform var(--transition-normal), box-shadow var(--transition-normal), border-color var(--transition-normal), color var(--transition-normal);border:1px solid #0000;justify-content:center;align-items:center;gap:.6rem;padding:.9rem 1.8rem;font-size:.8rem;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn-solid{background:var(--accent-gradient);color:var(--on-accent);box-shadow:var(--glow-accent);background-size:180% 180%;animation:6s infinite gradientShift}.btn-solid:hover{transform:translateY(-2px);box-shadow:0 8px 34px #7c5cff80}@keyframes gradientShift{0%,to{background-position:0%}50%{background-position:100%}}.btn-outline{background:var(--glass-bg);color:var(--text-primary);border-color:var(--border-strong);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-outline:hover{border-color:var(--accent);color:var(--accent-strong);transform:translateY(-2px)}.chip{font-family:var(--font-mono-stack);letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);border:1px solid var(--border-color);background:var(--glass-bg);transition:color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);border-radius:100px;padding:.35rem .7rem;font-size:.68rem;font-weight:500;display:inline-block}.chip:hover{color:var(--text-primary);border-color:var(--accent)}.scroll-progress-bar{background:var(--accent-gradient);transform-origin:0;z-index:9999;pointer-events:none;will-change:transform;width:100%;height:3px;position:fixed;top:0;left:0;transform:scaleX(0);box-shadow:0 0 12px #7c5cff99}.cursor-glow{border:1px solid var(--accent);pointer-events:none;z-index:9998;will-change:transform;mix-blend-mode:difference;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:width .25s cubic-bezier(.34,1.2,.4,1),height .25s cubic-bezier(.34,1.2,.4,1),background .25s,border-color .25s,opacity .3s;display:flex;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}@media (hover:none){.cursor-glow{display:none}}.cursor-dot{background:var(--accent);pointer-events:none;z-index:10000;will-change:left, top;width:6px;height:6px;box-shadow:0 0 10px var(--accent);border-radius:50%;transition:width .15s,height .15s;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cursor-dot.clicking{width:13px;height:13px}@media (hover:none){.cursor-dot{display:none}}.cursor-glow.hovering{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);mix-blend-mode:normal;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);width:64px;height:64px}.cursor-label{font-family:var(--font-mono-stack);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-strong);opacity:0;white-space:nowrap;pointer-events:none;font-size:.55rem;font-weight:600;transition:opacity .18s,transform .18s;transform:scale(.6)}.cursor-glow.show-label .cursor-label{opacity:1;transform:scale(1)}@keyframes marquee{to{transform:translate(-50%)}}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:9999}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}body:before{animation:none}.cursor-glow,.cursor-dot{display:none}}
