@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg:#0a0a0a;--surface:#111;--line:#1f1f1f;--line-strong:#333;--text:#e8e8e8;--text-soft:#c4c4c4;--text-dim:#a8a8a8;--muted:#7a7a7a;--accent:#4ade80;--font-body:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--font-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px}:root[data-theme=light]{--bg:#fafaf8;--surface:#fff;--line:#e6e6e1;--line-strong:#cfcfc8;--text:#151515;--text-soft:#3d3d3d;--text-dim:#5c5c5c;--muted:#75756f;--accent:#15803d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}body{min-height:100vh;margin:0;line-height:1.65;transition:background-color .25s,color .25s}::selection{background:var(--text);color:var(--bg)}a{color:inherit;text-decoration:none}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:500}p{margin:0}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.shiny-text{-webkit-text-fill-color:transparent;background-repeat:no-repeat;background-size:100% 100%;-webkit-background-clip:text;background-clip:text;display:inline-block;position:relative}.shiny-text__glow{filter:blur(.14em);pointer-events:none;-webkit-user-select:none;user-select:none;background-repeat:no-repeat;background-size:100% 100%;-webkit-background-clip:text;background-clip:text;position:absolute;inset:0}.star-border{isolation:isolate;border-radius:var(--star-border-radius);background:var(--star-border-surface);color:var(--star-border-text);font:inherit;-webkit-tap-highlight-color:transparent;border:0;justify-content:center;align-items:center;gap:.5rem;margin:0;padding:.875rem 1.5rem;font-weight:500;line-height:1.25;text-decoration:none;display:inline-flex;position:relative}.star-border:before{content:"";z-index:-1;border-radius:inherit;box-shadow:inset 0 0 0 var(--star-border-thickness) var(--star-border-track);pointer-events:none;position:absolute;inset:0}.star-border__light{z-index:-1;pointer-events:none;width:calc(100% + 96px);height:calc(100% + 96px);position:absolute;top:-48px;left:-48px}button.star-border,a.star-border{cursor:pointer}.star-border:focus-visible{outline:2px solid var(--star-border-track);outline-offset:3px}.star-border:disabled{cursor:not-allowed;opacity:.5}.gradual-blur-inner{width:100%;height:100%;position:relative}.gradual-blur-inner>div{-webkit-backdrop-filter:inherit;backdrop-filter:inherit}.gradual-blur{isolation:isolate}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.gradual-blur-inner>div{opacity:.5;background:#0000004d}}.gradual-blur-fixed{pointer-events:none;z-index:1000;inset:0;position:fixed!important}.lanyard{width:100%;height:100%;position:relative;overflow:hidden}.lanyard-canvas{width:100%;height:100%;display:block}.parallax{position:relative;overflow:hidden}.scroller{white-space:nowrap;text-align:center;letter-spacing:-.02em;filter:drop-shadow(0 1px 1px #0000001a);font-family:sans-serif;font-size:2.25rem;font-weight:700;display:flex}.scroller span{flex-shrink:0}@media (width>=768px){.scroller{font-size:5rem;line-height:5rem}}.focus-container{-webkit-user-select:none;user-select:none;outline:none;flex-wrap:wrap;justify-content:center;align-items:center;gap:1em;display:flex;position:relative}.focus-word{cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;font-size:3rem;font-weight:900;transition:filter .3s,color .3s;position:relative}.focus-word.active{filter:blur()}.focus-frame{pointer-events:none;box-sizing:content-box;border:none;position:absolute;top:0;left:0}.corner{border:3px solid var(--border-color,#fff);width:1rem;height:1rem;filter:drop-shadow(0px 0px 4px var(--border-color,#fff));border-radius:3px;transition:none;position:absolute}.top-left{border-bottom:none;border-right:none;top:-10px;left:-10px}.top-right{border-bottom:none;border-left:none;top:-10px;right:-10px}.bottom-left{border-top:none;border-right:none;bottom:-10px;left:-10px}.bottom-right{border-top:none;border-left:none;bottom:-10px;right:-10px}.border-glow-card{--edge-proximity:0;--cursor-angle:45deg;--edge-sensitivity:30;--color-sensitivity:calc(var(--edge-sensitivity) + 20);--border-radius:28px;--glow-padding:40px;--cone-spread:25;border-radius:var(--border-radius);isolation:isolate;background:var(--card-bg,#120f17);border:1px solid #ffffff26;display:grid;position:relative;overflow:visible;transform:translateZ(.01px);box-shadow:0 1px 2px #0000001a,0 2px 4px #0000001a,0 4px 8px #0000001a,0 8px 16px #0000001a,0 16px 32px #0000001a,0 32px 64px #0000001a}.border-glow-card--light{border-color:#18181b1f;box-shadow:0 1px 2px #18181b0a,0 8px 24px #18181b0d}.border-glow-card--light:after,.border-glow-card--light>.edge-light{mix-blend-mode:normal}.border-glow-card:before,.border-glow-card:after,.border-glow-card>.edge-light{content:"";border-radius:inherit;z-index:-1;transition:opacity .25s ease-out;position:absolute;inset:0}.border-glow-card:not(:hover):not(.sweep-active):before,.border-glow-card:not(:hover):not(.sweep-active):after,.border-glow-card:not(:hover):not(.sweep-active)>.edge-light{opacity:0;transition:opacity .75s ease-in-out}.border-glow-card:before{background:linear-gradient(var(--card-bg,#120f17) 0 100%) padding-box, linear-gradient(#fff0 0% 100%) border-box, var(--gradient-one,radial-gradient(at 80% 55%, #be85ff 0px, transparent 50%)) border-box, var(--gradient-two,radial-gradient(at 69% 34%, #ff7a93 0px, transparent 50%)) border-box, var(--gradient-three,radial-gradient(at 8% 6%, #8fffad 0px, transparent 50%)) border-box, var(--gradient-four,radial-gradient(at 41% 38%, #47daff 0px, transparent 50%)) border-box, var(--gradient-five,radial-gradient(at 86% 85%, #7af2ff 0px, transparent 50%)) border-box, var(--gradient-six,radial-gradient(at 82% 18%, #ffe74c 0px, transparent 50%)) border-box, var(--gradient-seven,radial-gradient(at 51% 4%, #ff8d70 0px, transparent 50%)) border-box, var(--gradient-base,linear-gradient(#c299ff 0 100%)) border-box;opacity:calc((var(--edge-proximity) - var(--color-sensitivity)) / (100 - var(--color-sensitivity)));-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center, black calc(var(--cone-spread) * 1%), transparent calc((var(--cone-spread) + 15) * 1%), transparent calc((100 - var(--cone-spread) - 15) * 1%), black calc((100 - var(--cone-spread)) * 1%));mask-image:conic-gradient(from var(--cursor-angle) at center, black calc(var(--cone-spread) * 1%), transparent calc((var(--cone-spread) + 15) * 1%), transparent calc((100 - var(--cone-spread) - 15) * 1%), black calc((100 - var(--cone-spread)) * 1%));border:1px solid #0000}.border-glow-card:after{background:var(--gradient-one,radial-gradient(at 80% 55%, #be85ff 0px, transparent 50%)) padding-box, var(--gradient-two,radial-gradient(at 69% 34%, #ff7a93 0px, transparent 50%)) padding-box, var(--gradient-three,radial-gradient(at 8% 6%, #8fffad 0px, transparent 50%)) padding-box, var(--gradient-four,radial-gradient(at 41% 38%, #47daff 0px, transparent 50%)) padding-box, var(--gradient-five,radial-gradient(at 86% 85%, #7af2ff 0px, transparent 50%)) padding-box, var(--gradient-six,radial-gradient(at 82% 18%, #ffe74c 0px, transparent 50%)) padding-box, var(--gradient-seven,radial-gradient(at 51% 4%, #ff8d70 0px, transparent 50%)) padding-box, var(--gradient-base,linear-gradient(#c299ff 0 100%)) padding-box;-webkit-mask-image:linear-gradient(to bottom, black, black), radial-gradient(ellipse at 50% 50%, black 40%, transparent 65%), radial-gradient(ellipse at 66% 66%, black 5%, transparent 40%), radial-gradient(ellipse at 33% 33%, black 5%, transparent 40%), radial-gradient(ellipse at 66% 33%, black 5%, transparent 40%), radial-gradient(ellipse at 33% 66%, black 5%, transparent 40%), conic-gradient(from var(--cursor-angle) at center, transparent 5%, black 15%, black 85%, transparent 95%);mask-image:linear-gradient(to bottom, black, black), radial-gradient(ellipse at 50% 50%, black 40%, transparent 65%), radial-gradient(ellipse at 66% 66%, black 5%, transparent 40%), radial-gradient(ellipse at 33% 33%, black 5%, transparent 40%), radial-gradient(ellipse at 66% 33%, black 5%, transparent 40%), radial-gradient(ellipse at 33% 66%, black 5%, transparent 40%), conic-gradient(from var(--cursor-angle) at center, transparent 5%, black 15%, black 85%, transparent 95%);opacity:calc(var(--fill-opacity,.5) * (var(--edge-proximity) - var(--color-sensitivity)) / (100 - var(--color-sensitivity)));mix-blend-mode:soft-light;border:1px solid #0000;-webkit-mask-composite:source-out,source-over,source-over,source-over,source-over,source-over;mask-composite:subtract,add,add,add,add,add}.border-glow-card>.edge-light{inset:calc(var(--glow-padding) * -1);pointer-events:none;z-index:1;-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center, black 2.5%, transparent 10%, transparent 90%, black 97.5%);mask-image:conic-gradient(from var(--cursor-angle) at center, black 2.5%, transparent 10%, transparent 90%, black 97.5%);opacity:calc((var(--edge-proximity) - var(--edge-sensitivity)) / (100 - var(--edge-sensitivity)));mix-blend-mode:plus-lighter}.border-glow-card>.edge-light:before{content:"";inset:var(--glow-padding);border-radius:inherit;box-shadow:inset 0 0 0 1px var(--glow-color,#f5daa3), inset 0 0 1px 0 var(--glow-color-60,#f5daa399), inset 0 0 3px 0 var(--glow-color-50,#f5daa380), inset 0 0 6px 0 var(--glow-color-40,#f5daa366), inset 0 0 15px 0 var(--glow-color-30,#f5daa34d), inset 0 0 25px 2px var(--glow-color-20,#f5daa333), inset 0 0 50px 2px var(--glow-color-10,#f5daa31a), 0 0 1px 0 var(--glow-color-60,#f5daa399), 0 0 3px 0 var(--glow-color-50,#f5daa380), 0 0 6px 0 var(--glow-color-40,#f5daa366), 0 0 15px 0 var(--glow-color-30,#f5daa34d), 0 0 25px 2px var(--glow-color-20,#f5daa333), 0 0 50px 2px var(--glow-color-10,#f5daa31a);position:absolute}.border-glow-inner{z-index:1;flex-direction:column;display:flex;position:relative;overflow:auto}.mono{font-family:var(--font-mono);letter-spacing:.01em;font-size:.8rem}.muted{color:var(--muted)}.hero-glitch{pointer-events:none;opacity:.75;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 65% at 76% 40%,#000 0%,#00000080 45%,#0000 90%);mask-image:radial-gradient(70% 65% at 76% 40%,#000 0%,#00000080 45%,#0000 90%)}.topbar{z-index:20;background:linear-gradient(to bottom, color-mix(in srgb, var(--bg) 55%, transparent), transparent);justify-content:space-between;align-items:center;gap:2rem;width:100%;padding:1.1rem max(1.5rem,50% - 520px);display:flex;position:sticky;top:0}.brand{font-size:.9rem}.topnav{color:var(--muted);gap:1.6rem;font-size:.85rem;display:flex}.topnav a,.cv-link{transition:color .2s}.topnav a:hover,.cv-link:hover{color:var(--text)}.topbar-actions{align-items:center;gap:.5rem;display:flex}.cv-link,.icon-btn{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:6px;align-items:center;gap:.4rem;padding:.35rem .75rem;transition:color .2s,border-color .2s;display:inline-flex}.icon-btn{cursor:pointer;padding:.35rem .5rem;font-size:.95rem;line-height:1}.icon-btn:hover,.cv-link:hover{color:var(--text);border-color:var(--line-strong)}.hero-section{position:relative}.hero{z-index:1;grid-template-columns:1.4fr 1fr;align-items:center;gap:4rem;width:min(1040px,100% - 3rem);min-height:calc(100svh - 70px);margin:0 auto;padding:3rem 0 4rem;display:grid;position:relative}.hero-name{letter-spacing:-.03em;font-size:clamp(2rem,4.2vw,2.9rem);font-weight:500;line-height:1.15}.hero-title{color:var(--muted);margin-top:.4rem;font-size:1.05rem}.hero-intro{max-width:460px;color:var(--text-soft);margin-top:1.6rem}.hero-links{flex-wrap:wrap;gap:.75rem;margin-top:2rem;font-size:.9rem;display:flex}.btn-static{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--text);border-radius:10px;justify-content:center;align-items:center;gap:.5rem;padding:.875rem 1.5rem;font-weight:500;line-height:1.25;transition:background-color .2s;display:inline-flex}.btn-static:hover{background:var(--line)}.hero-visual{width:100%;height:min(780px,100svh);margin:calc(-3rem - 70px) 0 -4rem;position:relative}.hero-lanyard{z-index:6;pointer-events:none;width:100%;position:absolute;left:0;-webkit-mask-image:linear-gradient(#0000 0,#000 64px);mask-image:linear-gradient(#0000 0,#000 64px)}.hero-lanyard .lanyard{height:100%}.hover-hint{pointer-events:none;font-size:.7rem;position:absolute;bottom:1.2rem;right:0}.stack-strip{border-block:1px solid var(--line);padding:1.1rem 0;overflow:hidden}.stack-text{color:var(--muted);font-family:var(--font-mono)!important;letter-spacing:.04em!important;filter:none!important;font-size:.85rem!important;font-weight:400!important;line-height:1.4!important}.section{grid-template-columns:150px 1fr;gap:2rem;width:min(1040px,100% - 3rem);margin:0 auto;padding:5.5rem 0 1rem;scroll-margin-top:3rem;display:grid}.section-label{align-self:start;gap:.8rem;font-size:.9rem;display:flex;position:sticky;top:5rem}.label-text{color:var(--text)}.lead{max-width:640px;color:var(--text-soft);font-size:1.05rem}.facts{grid-template-columns:repeat(2,1fr);gap:1.2rem 2rem;max-width:640px;margin:2.5rem 0 0;display:grid}.facts dt{margin-bottom:.2rem}.facts dd{margin:0}.rows{margin:0;padding:0;list-style:none}.row{border-top:1px solid var(--line);padding:1.8rem 0}.row:first-child{border-top:0;padding-top:0}.row-grid{grid-template-columns:210px 1fr;gap:1.5rem;display:grid}.row-meta{color:var(--text-dim);flex-direction:column;gap:.2rem;padding-top:.2rem;font-size:.75rem;display:flex}.row-meta .duration{color:var(--text-soft)}.row-meta .current{color:var(--accent)}.row-title{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.2rem 1.5rem;display:flex}.row-location{text-align:right;font-size:.75rem}.row-main h3{font-size:1.05rem}.points{color:var(--text-soft);margin:.9rem 0 0;padding-left:1rem}.points li{margin-bottom:.3rem}.points li::marker{color:var(--muted)}.inline-tags{color:var(--muted);margin-top:.9rem;font-size:.75rem}.project-inner{padding:1.6rem 1.8rem}.project-inner h3{margin:.5rem 0 .6rem;font-size:1.15rem}.focus-wrap{margin-bottom:2.5rem;display:flex}.focus-wrap .focus-container{justify-content:flex-start;gap:1.6rem}.focus-wrap .focus-word{letter-spacing:-.02em;font-size:clamp(1.3rem,3vw,1.9rem);font-weight:500}.focus-wrap .corner{filter:none;border-width:1.5px;width:.6rem;height:.6rem}.skills{margin:0}.skill-row{border-top:1px solid var(--line);grid-template-columns:210px 1fr;gap:1.5rem;padding:.9rem 0;display:grid}.skill-row dd{color:var(--text-soft);margin:0}.sub{margin:3.5rem 0 1.4rem;font-weight:400}.contact-list{margin:0;padding:0;list-style:none}.contact-list li{border-top:1px solid var(--line);grid-template-columns:210px 1fr;align-items:center;gap:1.5rem;padding:1rem 0;display:grid}.contact-list li:first-child{border-top:0}.contact-list a{align-items:center;gap:.4rem;width:fit-content;font-size:1.05rem;display:inline-flex}.contact-list .arrow{color:var(--muted);transition:transform .2s}.contact-list a:hover .arrow{color:var(--text);transform:translate(2px,-2px)}.footer{margin:5rem 0 2.5rem;font-size:.72rem}@media (width<=860px){.topnav{display:none}.hero{grid-template-columns:1fr;gap:3rem;min-height:auto;padding-top:4rem}.hero-visual{width:100%;max-width:420px;height:560px;margin:0 auto}.section{grid-template-columns:1fr;gap:1.6rem;padding-top:4rem}.section-label{position:static}.row-grid,.skill-row,.contact-list li{grid-template-columns:1fr;gap:.4rem}}
