:root,:root[data-theme=light]{--color-rosewater:#dc8a78;--color-flamingo:#dd7878;--color-pink:#ea76cb;--color-mauve:#8839ef;--color-red:#d20f39;--color-maroon:#e64553;--color-peach:#fe640b;--color-yellow:#df8e1d;--color-green:#40a02b;--color-teal:#179299;--color-sky:#04a5e5;--color-sapphire:#209fb5;--color-blue:#1e66f5;--color-lavender:#7287fd;--color-text:#4c4f69;--color-subtext1:#5c5f77;--color-subtext0:#6c6f85;--color-overlay2:#7c7f93;--color-overlay1:#8c8fa1;--color-overlay0:#9ca0b0;--color-surface2:#acb0be;--color-surface1:#bcc0cc;--color-surface0:#ccd0da;--color-base:#fff;--color-mantle:#f8f8fc;--color-crust:#eff1f5;--color-bg:var(--color-base);--color-accent:#04a5e5;--color-on-accent:#fff;--shadow-card:0 8px 24px #0f172a14;--shadow-card-hover:0 16px 40px #0f172a24;--glass-bg:#ffffffa6;--glass-border:#9ca0b059}:root[data-theme=dark]{--color-rosewater:#f5e0dc;--color-flamingo:#f2cdcd;--color-pink:#f5c2e7;--color-mauve:#cba6f7;--color-red:#f38ba8;--color-maroon:#eba0ac;--color-peach:#fab387;--color-yellow:#f9e2af;--color-green:#a6e3a1;--color-teal:#94e2d5;--color-sky:#89dceb;--color-sapphire:#74c7ec;--color-blue:#89b4fa;--color-lavender:#b4befe;--color-text:#cdd6f4;--color-subtext1:#bac2de;--color-subtext0:#a6adc8;--color-overlay2:#9399b2;--color-overlay1:#7f849c;--color-overlay0:#6c7086;--color-surface2:#585b70;--color-surface1:#45475a;--color-surface0:#313244;--color-base:#1e1e2e;--color-mantle:#181825;--color-crust:#11111b;--color-bg:var(--color-base);--color-accent:#4568c9;--color-on-accent:#fff;--shadow-card:0 10px 30px #00000059;--shadow-card-hover:0 18px 48px #00000080;--glass-bg:#1e1e2e8c;--glass-border:#6c708666}@property --color-accent{syntax:"<color>";inherits:true;initial-value:#04a5e5}@property --color-base{syntax:"<color>";inherits:true;initial-value:#fff}@property --color-text{syntax:"<color>";inherits:true;initial-value:#4c4f69}@property --color-subtext0{syntax:"<color>";inherits:true;initial-value:#6c6f85}@property --color-subtext1{syntax:"<color>";inherits:true;initial-value:#5c5f77}@property --glass-bg{syntax:"<color>";inherits:true;initial-value:#ffffffa6}@property --glass-border{syntax:"<color>";inherits:true;initial-value:#9ca0b059}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}html{scroll-behavior:smooth}html.theme-fading{transition:--color-accent .9s,--color-base .9s,--color-text .9s,--color-subtext0 .9s,--color-subtext1 .9s,--glass-bg .9s,--glass-border .9s}body{background:var(--color-base);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}a{color:inherit;text-decoration:none}button{font-family:inherit}::selection{background:color-mix(in srgb, var(--color-accent) 35%, transparent);color:var(--color-text)}#bg-grid{z-index:-2;pointer-events:none;filter:blur(16px);grid-template-columns:repeat(var(--grid-columns,5), 1fr);width:100%;height:100%;display:grid;position:fixed;top:0;left:0;transform:scale(1.05)}#bg-grid div{background:var(--color-bg);opacity:1;transition:background 75ms linear,opacity .1s ease-out;animation:1.3s forwards fadeAway}@keyframes fadeAway{0%{opacity:1}60%{opacity:.9}to{opacity:0}}.click-counter{z-index:0;border:1px solid var(--glass-border);background:var(--glass-bg);width:min(100%,18rem);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(12px);border-radius:.75rem;margin:0 auto;padding:1rem;position:relative}.click-counter-info{position:absolute;top:.75rem;right:.75rem}.click-counter-info-button{color:var(--color-subtext1);cursor:pointer;background:0 0;border:none;padding:0;transition:color .15s;display:flex}.click-counter-info:hover .click-counter-info-button,.click-counter-info-button:hover{color:var(--color-accent)}.click-counter-info-icon{width:1rem;height:1rem}.click-counter-info-tooltip{z-index:10;border:1px solid color-mix(in srgb, var(--color-accent) 25%, var(--glass-border));background:color-mix(in srgb, var(--color-base) 70%, transparent);width:9rem;color:var(--color-subtext0);letter-spacing:.02em;text-align:center;box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(10px);opacity:0;visibility:hidden;pointer-events:none;border-radius:.5rem;padding:.6rem .75rem;font-size:.72rem;font-weight:600;transition:opacity .2s,visibility .2s;position:absolute;top:1.5rem;right:0}.click-counter-info:hover .click-counter-info-tooltip,.click-counter-info-button:focus-visible+.click-counter-info-tooltip{opacity:1;visibility:visible}.click-counter-body{flex-direction:column;justify-content:center;align-items:center;display:flex}.click-counter-value{color:var(--color-accent);margin-bottom:.75rem;font-size:2.25rem;font-weight:700;display:inline-block;position:relative}.click-counter-value>span{transition:transform .3s;display:inline-block}.click-counter-value-glow>span{transform:scale(1.1)}.click-counter-sparkle{pointer-events:none;color:var(--color-accent);font-size:.875rem;font-weight:700;animation:2s ease-out forwards sparkle;position:absolute}.click-counter-sparkle svg{width:.9rem;height:.9rem}.click-counter-button{background:var(--color-accent);color:var(--color-base);font:inherit;letter-spacing:.02em;text-transform:uppercase;cursor:pointer;border:none;border-radius:.75rem;align-items:center;gap:.4rem;padding:.65rem 1.25rem;font-size:.95rem;font-weight:600;transition:transform .15s,background-color .15s,scale .15s;display:inline-flex}.click-counter-button svg{width:1rem;height:1rem}.click-counter-button:hover{background:color-mix(in srgb, var(--color-accent) 90%, white);scale:1.05}.click-counter-button:active{background:color-mix(in srgb, var(--color-accent) 80%, black);scale:.95}.click-counter-compact{border:1px solid var(--glass-border);background:color-mix(in srgb, var(--color-base) 50%, transparent);-webkit-backdrop-filter:blur(10px);color:var(--color-subtext0);letter-spacing:.02em;cursor:pointer;border-radius:999px;align-items:center;gap:.5rem;padding:.45rem .85rem;font-size:.78rem;font-weight:500;transition:color .2s,border-color .2s,background-color .2s,transform .15s,box-shadow .2s;display:inline-flex;position:relative}.click-counter-compact:hover{color:var(--color-accent);border-color:color-mix(in srgb, var(--color-accent) 35%, var(--glass-border));box-shadow:0 6px 18px color-mix(in srgb, var(--color-accent) 15%, transparent)}.click-counter-compact:active{transform:scale(.97)}.click-counter-compact-icon{width:.95rem;height:.95rem;color:color-mix(in srgb, var(--color-accent) 90%, var(--color-subtext0));flex-shrink:0}.click-counter-compact-label{color:var(--color-subtext0)}.click-counter-compact-value{font-variant-numeric:tabular-nums;color:var(--color-subtext1);font-weight:600;transition:color .2s}.click-counter-compact:hover .click-counter-compact-value{color:var(--color-accent)}.click-counter-compact-glow{color:var(--color-accent);border-color:color-mix(in srgb, var(--color-accent) 40%, var(--glass-border))}.click-counter-compact-sparkle{pointer-events:none;color:var(--color-accent);animation:2s ease-out forwards sparkle;position:absolute}.click-counter-compact-sparkle svg{width:.7rem;height:.7rem;display:block}@keyframes sparkle{0%{opacity:0;transform:translateY(0)scale(0)}20%{opacity:1;transform:translateY(-10px)scale(1)}to{opacity:0;transform:translateY(-40px)scale(.5)}}.nav{z-index:50;background:0 0;justify-content:space-between;align-items:center;padding:.5rem 1.25rem;display:flex;position:fixed;top:0;left:0;right:0}.nav:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(to bottom, color-mix(in srgb, var(--color-base) 70%, transparent) 0%, color-mix(in srgb, var(--color-base) 30%, transparent) 50%, transparent 100%);-webkit-backdrop-filter:blur(14px)saturate(140%);position:absolute;inset:0 0 -2rem;-webkit-mask-image:linear-gradient(#000 0% 35%,#0000 100%);mask-image:linear-gradient(#000 0% 35%,#0000 100%)}.nav-icon-button{border:1px solid var(--glass-border);background:var(--glass-bg);width:2rem;height:2rem;color:var(--color-subtext1);cursor:pointer;border-radius:.65rem;justify-content:center;align-items:center;padding:0;transition:color .15s,background-color .15s,border-color .15s,transform .15s;display:inline-flex}.nav-icon-button:hover{color:var(--color-accent);border-color:color-mix(in srgb, var(--color-accent) 40%, var(--glass-border))}.nav-icon-button:active{transform:scale(.96)}.nav-icon-button svg{width:1.05rem;height:1.05rem}.nav-menu{position:relative}.nav-menu-trigger[aria-expanded=true]{color:var(--color-accent);border-color:color-mix(in srgb, var(--color-accent) 40%, var(--glass-border))}.nav-hamburger-icon line{transform-origin:50%;transition:transform .2s,opacity .2s}.nav-hamburger-icon-open line:first-child{transform:translateY(5px)rotate(45deg)}.nav-hamburger-icon-open line:nth-child(2){opacity:0}.nav-hamburger-icon-open line:nth-child(3){transform:translateY(-5px)rotate(-45deg)}.nav-menu-panel{border:1px solid var(--glass-border);background:color-mix(in srgb, var(--color-base) 75%, transparent);-webkit-backdrop-filter:blur(18px)saturate(160%);min-width:9.5rem;box-shadow:var(--shadow-card);opacity:0;visibility:hidden;transform-origin:0 0;border-radius:.75rem;flex-direction:column;padding:.4rem;transition:opacity .18s,visibility .18s,transform .18s;display:flex;position:absolute;top:calc(100% + .5rem);left:0;transform:translateY(-6px)scale(.98)}.nav-menu-open .nav-menu-panel{opacity:1;visibility:visible;transform:translateY(0)scale(1)}.nav-menu-item{color:var(--color-subtext1);cursor:pointer;border-radius:.5rem;padding:.55rem .75rem;font-size:.9rem;font-weight:500;transition:background-color .12s,color .12s,transform .12s;display:block}.nav-menu-item:hover,.nav-menu-item:focus-visible{background:color-mix(in srgb, var(--color-accent) 12%, transparent);color:var(--color-text);outline:none;transform:translate(2px)}@media (width<=640px){.nav{padding:.45rem .9rem}}.about{justify-content:center;padding:6rem 0 3rem;scroll-margin-top:5rem;display:flex}.about-card{border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(20px)saturate(160%);width:100%;box-shadow:var(--shadow-card);border-radius:1.25rem;padding:2.25rem 2.25rem 2rem}.about-eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent);margin:0 0 .75rem;font-size:.75rem;font-weight:600}.about-name{letter-spacing:-.02em;color:var(--color-text);margin:0 0 .4rem;font-size:clamp(1.9rem,4.5vw,2.6rem);font-weight:700;line-height:1.15}.about-name-accent{color:var(--color-accent)}.about-location{color:var(--color-subtext0);align-items:center;gap:.35rem;margin:0 0 1rem;font-size:.95rem;font-weight:500;display:inline-flex}.about-location svg{width:1rem;height:1rem;color:var(--color-accent);flex-shrink:0}.about-role{color:var(--color-subtext0);margin:0 0 1rem;font-size:.95rem;font-weight:500}.about-taglines{max-width:36rem;margin:0 0 1.75rem}.about-tagline{color:var(--color-subtext1);margin:0;font-size:1rem;line-height:1.5}.about-tagline+.about-tagline{margin-top:.25rem}.about-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.about-links{gap:.4rem;display:inline-flex}.about-link{border:1px solid var(--glass-border);background:color-mix(in srgb, var(--color-base) 50%, transparent);width:2.4rem;height:2.4rem;color:var(--color-subtext1);border-radius:.65rem;justify-content:center;align-items:center;transition:color .15s,border-color .15s,background-color .15s,transform .15s;display:inline-flex}.about-link svg{width:1.05rem;height:1.05rem}.about-link:hover{color:var(--color-accent);border-color:color-mix(in srgb, var(--color-accent) 40%, var(--glass-border));transform:translateY(-1px)}.about-link-labeled{gap:.45rem;width:auto;height:2.4rem;padding:0 .85rem;font-size:.9rem;font-weight:600}@media (width<=640px){.about{padding:5.5rem 0 2rem}.about-card{border-radius:1rem;padding:1.75rem 1.5rem 1.5rem}}.projects{padding:3rem 0;scroll-margin-top:5rem}.section-header{text-align:left;margin:0 0 2rem}.section-eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent);margin:0 0 .5rem;font-size:.75rem;font-weight:600}.section-title{letter-spacing:-.015em;color:var(--color-text);margin:0 0 .4rem;font-size:clamp(1.5rem,3.2vw,1.9rem);font-weight:700}.section-subtitle{color:var(--color-subtext0);margin:0;font-size:.95rem}.section-subtitle code{background:color-mix(in srgb, var(--color-overlay0) 18%, transparent);color:var(--color-subtext1);border-radius:.35rem;padding:.1rem .35rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85em}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}@media (width<=640px){.projects-grid{grid-template-columns:minmax(0,1fr)}}.project-card{border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(16px)saturate(150%);box-shadow:var(--shadow-card);border-radius:1rem;flex-direction:column;gap:.75rem;padding:1.25rem 1.25rem 1.1rem;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative}.project-card:hover{box-shadow:var(--shadow-card-hover);border-color:color-mix(in srgb, var(--color-accent) 30%, var(--glass-border));transform:translateY(-3px)}.project-card-head{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.project-card-title{letter-spacing:-.01em;color:var(--color-text);margin:0;font-size:1.05rem;font-weight:600}.project-card-year{color:var(--color-subtext0);font-variant-numeric:tabular-nums;font-size:.75rem}.project-card-description{color:var(--color-subtext1);margin:0;font-size:.92rem;line-height:1.55}.project-card-tags{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.project-card-tag{letter-spacing:.01em;color:var(--color-subtext1);background:color-mix(in srgb, var(--color-overlay0) 18%, transparent);border:1px solid color-mix(in srgb, var(--color-overlay0) 25%, transparent);border-radius:999px;padding:.18rem .55rem;font-size:.72rem;font-weight:500}.project-card-links{gap:.5rem;margin-top:.25rem;display:flex}.project-card-link{color:var(--color-subtext1);border:1px solid var(--glass-border);background:color-mix(in srgb, var(--color-base) 40%, transparent);border-radius:.55rem;align-items:center;gap:.35rem;padding:.4rem .7rem;font-size:.82rem;font-weight:500;transition:color .15s,border-color .15s,background-color .15s,transform .15s;display:inline-flex}.project-card-link:hover{color:var(--color-accent);border-color:color-mix(in srgb, var(--color-accent) 40%, var(--glass-border));transform:translateY(-1px)}.project-card-link svg{width:.95rem;height:.95rem}.experience{padding:3rem 0;scroll-margin-top:5rem}.experience-list{margin:0;padding:0;list-style:none;position:relative}.experience-list:before{content:"";background:linear-gradient(180deg, transparent 0%, var(--glass-border) 12%, var(--glass-border) 88%, transparent 100%);width:1px;position:absolute;top:.5rem;bottom:.5rem;left:-.5rem}.experience-item{margin-bottom:1rem;position:relative}.experience-item:last-child{margin-bottom:0}.experience-dot{justify-content:center;align-items:center;width:.9rem;height:.9rem;display:flex;position:absolute;top:1.15rem;left:-.95rem}@media (width<=640px){.experience-list:before{left:-.35rem}.experience-dot{left:-.8rem}}.experience-dot-inner{background:var(--color-accent);width:.55rem;height:.55rem;box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 20%, transparent);border-radius:999px}.experience-dot-pulse{animation:2.4s ease-in-out infinite experience-pulse}@keyframes experience-pulse{0%,to{box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 20%, transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--color-accent) 8%, transparent)}}.experience-card{border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(16px)saturate(150%);box-shadow:var(--shadow-card);border-radius:1rem;padding:1.1rem 1.25rem 1rem;transition:transform .2s,box-shadow .2s,border-color .2s}.experience-card:hover{box-shadow:var(--shadow-card-hover);border-color:color-mix(in srgb, var(--color-accent) 25%, var(--glass-border));transform:translateY(-2px)}.experience-card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;margin-bottom:.6rem;display:flex}.experience-card-role{letter-spacing:-.01em;color:var(--color-text);margin:0;font-size:1.05rem;font-weight:600}.experience-card-company{color:var(--color-subtext1);margin:.15rem 0 0;font-size:.9rem;font-weight:500}.experience-card-company a{color:var(--color-subtext1);border-bottom:1px dashed color-mix(in srgb, var(--color-subtext0) 50%, transparent);transition:color .15s,border-color .15s}.experience-card-company a:hover{color:var(--color-accent);border-color:var(--color-accent)}.experience-card-location{color:var(--color-subtext0);font-weight:400}.experience-card-dates{color:var(--color-subtext0);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.78rem;font-weight:500}.experience-card-bullets{flex-direction:column;gap:.35rem;margin:0;padding-left:1.1rem;display:flex}.experience-card-bullets li{color:var(--color-subtext1);font-size:.92rem;line-height:1.55}.experience-card-bullets li::marker{color:color-mix(in srgb, var(--color-accent) 70%, transparent)}.theme-orb{pointer-events:none;z-index:-1;will-change:transform;width:22rem;height:22rem;margin-top:-11rem;position:fixed;top:50%}.theme-orb-to-dark{animation:.9s cubic-bezier(.5,0,.5,1) forwards theme-orb-slide-right}.theme-orb-to-light{animation:.9s cubic-bezier(.5,0,.5,1) forwards theme-orb-slide-left}@keyframes theme-orb-slide-right{0%{left:-24rem}to{left:calc(100vw + 2rem)}}@keyframes theme-orb-slide-left{0%{left:calc(100vw + 2rem)}to{left:-24rem}}.theme-orb-glow{filter:blur(48px);border-radius:50%;position:absolute;inset:0}.theme-orb-core{filter:blur(8px);border-radius:50%;position:absolute;inset:22%}.theme-orb-to-dark .theme-orb-glow{background:radial-gradient(circle,#dce6fff2 10%,#aabee68c 40%,#0000 72%)}.theme-orb-to-dark .theme-orb-core{background:radial-gradient(circle,#f5f8ff,#d2e1fa99 55%,#0000 80%)}.theme-orb-to-light .theme-orb-glow{background:radial-gradient(circle,#ffdc64 10%,#faaf3299 40%,#0000 72%)}.theme-orb-to-light .theme-orb-core{background:radial-gradient(circle,#fff5c8,#ffd764b3 55%,#0000 80%)}.page{z-index:0;flex-direction:column;min-height:100vh;display:flex;position:relative}.page-inner{flex:1;width:100%;max-width:56rem;margin:0 auto;padding:0 1.5rem 4.75rem}.page-footer{z-index:50;background:0 0;flex-direction:row;justify-content:space-between;align-items:center;gap:.6rem;width:100%;padding:.5rem 1.25rem .75rem;display:flex;position:fixed;bottom:0;left:0;right:0}.page-footer:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(to top, color-mix(in srgb, var(--color-base) 70%, transparent) 0%, color-mix(in srgb, var(--color-base) 30%, transparent) 50%, transparent 100%);-webkit-backdrop-filter:blur(10px);position:absolute;inset:-2rem 0 0;-webkit-mask-image:linear-gradient(#0000 0%,#000 65% 100%);mask-image:linear-gradient(#0000 0%,#000 65% 100%)}.page-footer-meta{color:var(--color-subtext0);letter-spacing:.02em;margin:0;font-size:.78rem}.page-footer .click-counter-compact{padding:.35rem .75rem;font-size:.74rem}@media (width<=640px){.page-inner{padding:0 1rem 4.75rem}.page-footer{padding:.5rem .9rem .75rem}}
