@layer reset{*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body,h1,h2,h3,p,ol,ul{margin:0}ol,ul{padding:0;list-style:none}button,a{color:inherit}button{font:inherit;border:0}img,svg{max-width:100%;display:block}}@layer base{:root{--ink:#11131a;--ink-soft:#5f6470;--ink-faint:#9095a1;--paper:#f7f7f5;--paper-bright:#fdfdfc;--line:#11131a1f;--line-light:#11131a13;--accent:#405ee8;--accent-deep:#2d47c7;--accent-soft:#e9edff;--max-width:1240px;--header-height:76px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-smooth:cubic-bezier(.65, 0, .35, 1);--spring:cubic-bezier(.2, 1.35, .38, 1);color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,Geist,SF Pro Display,SF Pro Text,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{background:var(--paper);min-width:320px;min-height:100vh}body::selection{color:#fff;background:var(--accent)}a{text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}.app{--pointer-x:50vw;--pointer-y:50vh;background:var(--paper);min-height:100vh;overflow:clip}[data-parallax]{transform:translate3d(0, var(--parallax-y,0), 0);will-change:transform;transition:transform .18s cubic-bezier(.22,.61,.36,1)}.page-shell{width:min(calc(100% - 64px), var(--max-width));margin-inline:auto}.skip-link{z-index:200;color:#fff;background:var(--ink);border-radius:8px;padding:10px 14px;transition:transform .18s;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:50;width:min(calc(100% - 64px), var(--max-width));height:var(--header-height);transition:top .6s var(--ease-out), width .6s var(--ease-out), height .6s var(--ease-out), padding .6s var(--ease-out), border-color .4s ease, border-radius .6s var(--ease-out), background .4s ease, box-shadow .5s var(--ease-out), backdrop-filter .4s ease;animation:header-enter .85s var(--ease-out) 80ms both;border-bottom:1px solid #11131a1a;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:fixed;top:0;left:50%;transform:translate(-50%)}.site-header--scrolled{-webkit-backdrop-filter:blur(18px)saturate(1.2);backdrop-filter:blur(18px)saturate(1.2);background:#f9f9f7d1;border:1px solid #11131a17;border-radius:14px;width:min(100% - 32px,1180px);height:58px;padding-inline:18px;top:10px;box-shadow:0 12px 34px #1e233612,inset 0 1px #fffc}.wordmark{letter-spacing:-.06em;transition:transform .4s var(--spring);justify-self:start;font-size:19px;font-weight:760}.wordmark:hover{transform:scale(1.06)rotate(-1deg)}.wordmark__dot{color:var(--accent)}.site-nav{align-items:center;gap:30px;display:flex;position:relative}.site-nav a{letter-spacing:.01em;z-index:1;color:#3e424d;padding-block:12px;font-size:12px;font-weight:580;transition:color .3s;position:relative}.site-nav a:hover,.site-nav a[aria-current=location]{color:var(--ink)}.site-nav__indicator{width:var(--indicator-width,0);background:var(--accent);opacity:0;height:1px;transform:translate3d(var(--indicator-x,0), 0, 0) scaleX(.55);transform-origin:50%;transition:width .5s var(--spring), transform .5s var(--spring), opacity .22s ease;pointer-events:none;border-radius:99px;position:absolute;bottom:6px;left:0}.site-nav__indicator--visible{opacity:1;transform:translate3d(var(--indicator-x,0), 0, 0) scaleX(1)}.linkedin-link{width:40px;height:40px;color:var(--ink-soft);transition:color .22s ease, border-color .22s ease, background .22s ease, box-shadow .3s ease, transform .42s var(--spring);border:1px solid #0000;border-radius:50%;justify-self:end;place-items:center;display:grid}.linkedin-link svg{fill:currentColor;width:23px;height:23px;transition:transform .42s var(--spring)}.linkedin-link:hover{color:var(--accent);background:#405ee80f;border-color:#405ee82e;transform:translateY(-2px)scale(1.03);box-shadow:0 8px 20px #405ee81a}.linkedin-link:hover svg{transform:scale(1.06)}.menu-button{display:none}.hero-section{isolation:isolate;background:#f9f9f7;height:100svh;min-height:810px;max-height:980px;position:relative}.ambient-background{z-index:-1;position:absolute;inset:0;overflow:hidden}.ambient-background__grid{background-image:linear-gradient(#1f28470b 1px,#0000 1px),linear-gradient(90deg,#1f28470b 1px,#0000 1px);background-position:50%;background-size:72px 72px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000000b3,#0000 84%);mask-image:linear-gradient(#000000b3,#0000 84%)}.ambient-background__grid:after{content:"";background:radial-gradient(circle at var(--pointer-x) var(--pointer-y), #405ee817, transparent 260px);transition:opacity .5s;position:absolute;inset:0}.ambient-background__orbit{top:52%;right:max(-170px, calc((100vw - var(--max-width)) / 2 - 300px));color:#34447c21;width:min(68vw,900px);animation:16s ease-in-out infinite alternate orbit-drift;position:absolute;transform:translateY(-50%)}.ambient-background__orbit circle,.ambient-background__orbit path{fill:none;stroke:currentColor;stroke-width:.7px}.ambient-background__orbit>path{stroke-dasharray:9 13;animation:24s linear infinite topology-flow}.ambient-background__orbit .orbit-node{fill:var(--accent);stroke:#fff;stroke-width:3px;transform-box:fill-box;transform-origin:50%;animation:3s ease-in-out infinite node-pulse}.ambient-background__orbit .orbit-node--two{animation-delay:-1.5s}.ambient-background__glow{filter:blur(100px);background:#7991ff1a;border-radius:50%;width:520px;height:520px;animation:12s ease-in-out infinite alternate diffusion-drift;position:absolute;top:10%;left:56%}.ambient-background__noise{opacity:.035;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");position:absolute;inset:0}.hero-section__content{height:100%;padding-top:var(--header-height);grid-template-columns:minmax(0,1.1fr) minmax(340px,.62fr);align-items:center;gap:clamp(48px,8vw,132px);display:grid;position:relative}.hero-copy{z-index:2;padding-top:8px;position:relative}.eyebrow{color:var(--ink-soft);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:12px;font-size:11px;font-weight:650;line-height:1;display:flex}.eyebrow__line{background:var(--accent);width:28px;height:1px}.hero-title{letter-spacing:-.072em;margin-top:30px;font-size:clamp(70px,8.3vw,126px);font-weight:510;line-height:.82}.hero-title__line{margin:-.08em 0 -.09em;padding:.08em 0 .09em;display:block;overflow:hidden}.hero-title__line>span{color:var(--ink);transform-origin:0 100%;animation:title-line-enter 1.05s var(--ease-out) .22s forwards;display:block;transform:translateY(115%)rotate(1.2deg)}.hero-title__line:nth-child(2)>span{color:var(--accent);animation-delay:.3s}.hero-statement{color:#3f434d;letter-spacing:-.025em;clip-path:inset(0 100% 0 0);animation:hero-enter .9s var(--ease-out) .32s forwards, statement-wipe .9s var(--ease-out) .41s forwards;margin-top:38px;font-size:clamp(19px,1.65vw,25px);font-weight:410;line-height:1.35}.token-statement{cursor:default;isolation:isolate;outline:none;display:inline-grid;position:relative}.token-statement:after{content:"";opacity:0;background:linear-gradient(90deg,#0000,#405ee894,#0000);height:1px;position:absolute;bottom:-5px;left:0;right:0;transform:scaleX(.12)}.token-statement:focus-visible{outline-offset:7px;border-radius:2px;outline:1px solid #405ee89e}.token-statement__original,.token-statement__fragments{grid-area:1/1}.token-statement__original{white-space:nowrap}.token-statement__word,.token-statement__character{display:inline-block}.token-statement__character{transform-origin:50%;will-change:transform, opacity, filter}.token-statement__fragments{color:var(--accent);letter-spacing:-.035em;white-space:nowrap;opacity:0;pointer-events:none;align-items:center;gap:.42em;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.58em;font-weight:540;display:flex;position:absolute;top:50%;left:0;transform:translateY(-50%)}.token-statement__fragments>span{opacity:0;background:#f7f7f5cc;border:1px solid #405ee82b;border-radius:3px;padding:.12em .3em;display:inline-block;transform:translateY(7px)scale(.94);box-shadow:0 4px 14px #2336850f}.token-statement--active:after{animation:token-scan 1.25s var(--ease-smooth) forwards}.token-statement--active .token-statement__character{animation:character-tokenize 1.28s var(--ease-smooth) both;animation-delay:calc(var(--character-index) * 4ms)}.token-statement--active .token-statement__fragments{opacity:1}.token-statement--active .token-statement__fragments>span{animation:code-fragment 1.05s var(--ease-out) both;animation-delay:calc(.22s + var(--fragment-index) * 48ms)}.button{letter-spacing:.01em;min-height:50px;transition:color .26s ease, background .26s ease, border-color .26s ease, box-shadow .26s ease, transform .42s var(--spring);border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:18px;padding:0 20px;font-size:12px;font-weight:650;display:inline-flex}.button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4px;width:17px;transition:transform .26s var(--ease-out)}.button:hover{transform:translateY(-3px)scale(1.015)}.button:hover svg{transform:translate(3px)}.button:active{transform:translateY(0)scale(.98)}.hero-portrait{justify-self:end;width:min(100%,405px)}.portrait-shell{--portrait-x:0px;--portrait-y:0px;--portrait-gutter:20px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform .18s cubic-bezier(.22, .61, .36, 1), border-color .45s ease, box-shadow .65s var(--ease-out), background .45s ease;will-change:transform;background:#ffffff75;border:1px solid #323c5b1f;padding:42px 20px 34px;position:relative;box-shadow:0 30px 80px #2c365814}.portrait-shell:hover{background:#ffffff94;border-color:#405ee833;box-shadow:0 38px 100px #2c365821}.portrait-shell:before,.portrait-shell:after{content:"";width:10px;height:10px;transition:width .5s var(--spring), height .5s var(--spring);position:absolute}.portrait-shell:hover:before,.portrait-shell:hover:after{width:22px;height:22px}.portrait-shell:before{border-top:1px solid var(--accent);border-left:1px solid var(--accent);top:-1px;left:-1px}.portrait-shell:after{border-right:1px solid var(--accent);border-bottom:1px solid var(--accent);bottom:-1px;right:-1px}.portrait-shell__meta{color:var(--ink-faint);letter-spacing:.09em;text-transform:uppercase;justify-content:space-between;font-family:SFMono-Regular,Consolas,monospace;font-size:8px;display:flex;position:absolute;left:20px;right:20px}.portrait-shell__meta--top{top:17px}.portrait-shell__meta--bottom{bottom:13px}.portrait{aspect-ratio:4/5;transform:translate(var(--portrait-x), var(--portrait-y));transition:transform .5s var(--ease-out);background:#e9ecf5;position:relative;overflow:hidden}.portrait:after{content:"";pointer-events:none;border:1px solid #ffffff8c;position:absolute;inset:0}.fuse-canvas{z-index:4;top:42px;right:var(--portrait-gutter);bottom:34px;left:var(--portrait-gutter);width:calc(100% - var(--portrait-gutter) * 2);mix-blend-mode:plus-lighter;pointer-events:none;height:calc(100% - 76px);position:absolute;overflow:visible}.portrait img{object-fit:cover;object-position:center;filter:saturate(.86)contrast(1.03);width:100%;height:100%;transition:filter .7s ease, transform .9s var(--ease-out);transform:scale(1)}.portrait-shell:hover .portrait img{filter:saturate(.94)contrast(1.025);transform:scale(1.02)}.scroll-cue{color:var(--ink-faint);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:12px;font-size:9px;font-weight:650;display:flex;position:absolute;bottom:28px;left:0}.scroll-cue__track{background:#11131a29;width:36px;height:1px;position:relative;overflow:hidden}.scroll-cue__track span{background:var(--accent);animation:scroll-cue 2.2s var(--ease-smooth) infinite;position:absolute;inset:0}.hero-entrance{opacity:0;animation:hero-enter .95s var(--ease-out) forwards}.hero-entrance--one{animation-delay:.12s}.hero-entrance--two{animation-delay:.2s}.hero-entrance--three,.hero-entrance--portrait{animation-delay:.32s}.hero-entrance--five{animation-delay:.62s}.hero-statement.hero-entrance{animation:hero-enter .9s var(--ease-out) .32s forwards, statement-wipe .9s var(--ease-out) .41s forwards}.section{padding-block:clamp(120px,13vw,190px);scroll-margin-top:76px;position:relative}.section:after{z-index:0;content:"";opacity:.45;pointer-events:none;background:linear-gradient(#11131a05,#0000);height:80px;position:absolute;top:0;left:0;right:0}.section>.page-shell{z-index:1;position:relative}.section-heading{border-bottom:1px solid var(--line);grid-template-columns:minmax(160px,.42fr) 1fr;padding-bottom:clamp(62px,8vw,108px);display:grid}.section-heading__label{color:var(--ink-soft);letter-spacing:.13em;text-transform:uppercase;opacity:0;transition:opacity .65s ease calc(var(--reveal-delay,0s) + 80ms), transform .8s var(--ease-out) calc(var(--reveal-delay,0s) + 80ms);align-items:flex-start;gap:18px;padding-top:9px;font-size:10px;font-weight:660;display:flex;transform:translateY(12px)}.section-heading__label span{color:var(--accent);font-family:SFMono-Regular,Consolas,monospace;font-size:9px}.section-heading__copy{justify-content:space-between;align-items:flex-end;gap:60px;display:flex}.section-heading h2{letter-spacing:-.06em;clip-path:inset(0 0 105%);max-width:680px;transition:clip-path .95s var(--ease-out) calc(var(--reveal-delay,0s) + .13s), transform .95s var(--ease-out) calc(var(--reveal-delay,0s) + .13s);font-size:clamp(48px,6vw,86px);font-weight:490;line-height:.98;transform:translateY(24px)}.section-heading__copy>p{max-width:280px;color:var(--ink-soft);padding-bottom:6px;font-size:13px;line-height:1.65}.reveal{opacity:0;filter:blur(3px);transition:opacity .85s ease var(--reveal-delay,0s), filter .85s ease var(--reveal-delay,0s), transform 1s var(--ease-out) var(--reveal-delay,0s);will-change:transform, opacity, filter;transform:translateY(28px)scale(.995)}.reveal[data-visible=true]{opacity:1;filter:blur();transform:translate(0,0)scale(1)}.section-heading.reveal[data-visible=true] .section-heading__label{opacity:1;transform:translateY(0)}.section-heading.reveal[data-visible=true] h2{clip-path:inset(0 0 -8%);transform:translateY(0)}.section--about{background:var(--paper-bright)}.about-layout{grid-template-columns:minmax(0,.42fr) minmax(0,.58fr);column-gap:clamp(70px,10vw,150px);padding-top:clamp(70px,9vw,120px);display:grid}.about-lead{grid-column:2}.about-lead p{letter-spacing:-.046em;opacity:0;max-width:730px;transition:opacity .85s ease calc(var(--reveal-delay,0s) + .1s), transform 1s var(--ease-out) calc(var(--reveal-delay,0s) + .1s);font-size:clamp(28px,3vw,44px);font-weight:430;line-height:1.16;transform:translateY(18px)}.about-lead.reveal[data-visible=true] p{opacity:1;transform:translateY(var(--parallax-y,0))}.section--experience{color:#f3f4f7;background:#11131a}.section--experience:after{background:linear-gradient(#ffffff06,#0000);height:140px}.section--experience .section-heading{border-color:#ffffff24}.section--experience .section-heading__label,.section--experience .section-heading__copy>p{color:#ebedf48f}.experience-list{padding-top:36px;position:relative}.experience-list:before{content:"";background:linear-gradient(to bottom, var(--accent), #7389ee1a);opacity:0;transform-origin:top;width:1px;transition:opacity .5s ease .18s, transform 1.2s var(--ease-out) .18s;position:absolute;top:94px;bottom:61px;left:3px;transform:scaleY(0)}.experience-list.reveal[data-visible=true]:before{opacity:.65;transform:scaleY(1)}.experience-item{opacity:0;transition:opacity .7s ease, border-color .35s ease, transform .85s var(--ease-out);isolation:isolate;border-bottom:1px solid #ffffff1f;position:relative;transform:translateY(18px)}.experience-item:before{z-index:-1;content:"";opacity:0;transition:opacity .32s ease, border-color .35s ease, transform .5s var(--spring), background .35s ease;background:#ffffff06;border:1px solid #0000;border-radius:10px;position:absolute;inset:5px -18px;transform:scale(.985)}.experience-list.reveal[data-visible=true] .experience-item{opacity:1;transform:translateY(0)}.experience-list.reveal[data-visible=true] .experience-item:first-child{transition-delay:.12s}.experience-list.reveal[data-visible=true] .experience-item:nth-child(2){transition-delay:.18s}.experience-list.reveal[data-visible=true] .experience-item:nth-child(3){transition-delay:.24s}.experience-list.reveal[data-visible=true] .experience-item:nth-child(4){transition-delay:.3s}.experience-list.reveal[data-visible=true] .experience-item:nth-child(5){transition-delay:.36s}.experience-list.reveal[data-visible=true] .experience-item:nth-child(6){transition-delay:.42s}.experience-item:hover:before,.experience-item--open:before{opacity:1;background:#ffffff08;border-color:#8095f41a;transform:scale(1)}.experience-item__trigger{width:100%;min-height:122px;color:inherit;text-align:left;cursor:pointer;transition:transform .45s var(--spring);background:0 0;grid-template-columns:70px minmax(250px,1fr) minmax(180px,.42fr) minmax(150px,.34fr) 38px;align-items:center;padding:0;display:grid}.experience-item__trigger:active{transform:scale(.994)}.experience-item__marker{color:#7389ee;align-items:center;gap:13px;font-family:SFMono-Regular,Consolas,monospace;font-size:9px;display:flex}.experience-item__marker>span{z-index:1;width:7px;height:7px;transition:background .35s ease, box-shadow .45s ease, transform .5s var(--spring);background:#11131a;border:1px solid #7389ee;border-radius:50%;position:relative;box-shadow:0 0 0 4px #11131a}.experience-item:hover .experience-item__marker>span,.experience-item--open .experience-item__marker>span{background:#8095f4;transform:scale(1.18);box-shadow:0 0 0 4px #11131a,0 0 0 6px #8095f429}.experience-item__role{flex-direction:column;gap:8px;display:flex}.experience-item__role strong{letter-spacing:-.035em;transition:color .3s ease, transform .5s var(--spring);font-size:clamp(19px,2vw,27px);font-weight:470}.experience-item__company{color:#ebedf4ab;transition:transform .5s var(--spring);flex-direction:column;gap:7px;font-size:13px;display:flex}.experience-item__company strong{color:#f3f4f7c7;font-size:12px;font-weight:520}.experience-item__company>span{color:#ebedf457;font-size:9px;line-height:1.35}.experience-item__period{color:#ebedf480;letter-spacing:.06em;text-transform:uppercase;transition:color .3s ease, transform .5s var(--spring);font-family:SFMono-Regular,Consolas,monospace;font-size:8px;line-height:1.5}.experience-item__toggle{width:34px;height:34px;transition:border-color .24s ease, background .24s ease, transform .4s var(--ease-out);border:1px solid #ffffff2e;border-radius:50%;justify-self:end;position:relative}.experience-item__toggle span{width:9px;height:1px;transition:transform .35s var(--ease-out);background:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.experience-item__toggle span:last-child{transform:translate(-50%,-50%)rotate(90deg)}.experience-item__trigger:hover .experience-item__role strong{color:#8095f4;transform:translate(4px)}.experience-item__trigger:hover .experience-item__company,.experience-item__trigger:hover .experience-item__period{transform:translate(2px)}.experience-item__trigger:hover .experience-item__period,.experience-item--open .experience-item__period{color:#ebedf4b8}.experience-item__trigger:hover .experience-item__toggle{border-color:var(--accent);background:var(--accent);transform:scale(1.06)}.experience-item--open .experience-item__toggle{color:#fff;border-color:var(--accent);background:var(--accent)}.experience-item--open .experience-item__toggle span:last-child{transform:translate(-50%,-50%)rotate(0)}.experience-item__panel{opacity:0;transition:grid-template-rows .65s var(--spring), opacity .4s ease;grid-template-rows:0fr;display:grid}.experience-item__panel>div{grid-template-columns:70px minmax(250px,1fr) minmax(180px,.42fr) minmax(150px,.34fr) 38px;display:grid;overflow:hidden}.experience-item__panel p{color:#ebedf494;opacity:0;max-width:590px;transition:opacity .42s ease, transform .6s var(--ease-out);grid-column:2;padding:0 40px 38px 0;font-size:13px;line-height:1.75;transform:translateY(-8px)}.experience-item__note{color:#ebedf452;letter-spacing:.1em;text-transform:uppercase;opacity:0;transition:opacity .42s ease, transform .6s var(--ease-out);grid-column:3/span 2;padding-top:3px;font-family:SFMono-Regular,Consolas,monospace;font-size:8px;transform:translateY(-6px)}.experience-item--open .experience-item__panel{opacity:1;grid-template-rows:1fr}.experience-item--open .experience-item__panel p,.experience-item--open .experience-item__note{opacity:1;transition-delay:.18s;transform:translateY(0)}.section--education{background:#f0f1ef}.education-grid{grid-template-columns:1fr;gap:18px;padding-top:clamp(70px,8vw,104px);display:grid}.university-card{--education-x:75%;--education-y:40%;border:1px solid var(--line);color:#fff;isolation:isolate;background:#171a23;grid-template-columns:auto 1fr auto;align-items:end;gap:clamp(40px,8vw,110px);min-height:520px;padding:clamp(28px,4vw,54px);display:grid;position:relative;overflow:hidden}.university-card:before{z-index:-1;content:"";background:radial-gradient(circle 380px at var(--education-x) var(--education-y), #5c77eb29, transparent 72%);opacity:0;pointer-events:none;transition:opacity .65s;position:absolute;inset:0}.university-card:hover:before{opacity:1}.university-card:after{z-index:-1;content:"";width:500px;height:500px;transition:border-color .6s ease, transform 1s var(--ease-out);border:1px solid #768def47;border-radius:50%;position:absolute;bottom:-35%;right:-15%;box-shadow:0 0 0 70px #768def0a,0 0 0 140px #768def06}.university-card:hover:after{border-color:#768def6b;transform:translate(-8px,-8px)scale(1.025)}.university-card__seal{opacity:0;width:84px;height:84px;transition:opacity .7s ease calc(var(--reveal-delay,0s) + .12s), transform .9s var(--spring) calc(var(--reveal-delay,0s) + .12s), border-color .35s ease;border:1px solid #ffffff26;border-radius:50%;place-items:center;display:grid;position:relative;transform:translateY(14px)rotate(-8deg)}.university-card.reveal[data-visible=true] .university-card__seal{opacity:1;transform:translateY(0)rotate(0)}.university-card:hover .university-card__seal{border-color:#8095f45c;transform:translateY(0)rotate(0)scale(1.04)}.university-card__seal>span{color:#8095f4;font-family:Georgia,serif;font-size:25px}.university-card__seal svg{position:absolute;inset:8px;overflow:visible}.university-card__seal path{fill:none}.university-card__seal text{fill:#ffffff6b;letter-spacing:2px;font-family:SFMono-Regular,Consolas,monospace;font-size:8px}.card-kicker{color:inherit;letter-spacing:.13em;text-transform:uppercase;font-size:10px;font-weight:650}.university-card__content h3{letter-spacing:-.055em;margin-top:22px;font-size:clamp(38px,4.5vw,62px);font-weight:450;line-height:1.04}.university-card__content{opacity:0;transition:opacity .75s ease calc(var(--reveal-delay,0s) + .18s), transform .18s cubic-bezier(.22, .61, .36, 1)}.university-card.reveal[data-visible=true] .university-card__content{opacity:1}.university-card__graduation{opacity:0;transition:opacity .7s ease calc(var(--reveal-delay,0s) + .28s), transform .9s var(--ease-out) calc(var(--reveal-delay,0s) + .28s);flex-direction:column;align-self:end;gap:9px;padding-bottom:3px;display:flex;transform:translateY(14px)}.university-card.reveal[data-visible=true] .university-card__graduation{opacity:1;transform:translateY(0)}.university-card__graduation span{color:#ffffff6b;letter-spacing:.12em;text-transform:uppercase;font-size:8px;font-weight:650}.university-card__graduation strong{letter-spacing:-.04em;font-size:28px;font-weight:450}.university-card__location{color:#ffffff75;margin-top:26px;font-size:11px}.university-card__index{color:#ffffff52;letter-spacing:.1em;font-family:SFMono-Regular,Consolas,monospace;font-size:8px;position:absolute;top:32px;right:34px}.section--skills{background:var(--paper-bright)}.skills-grid{grid-template-columns:repeat(6,1fr);grid-auto-rows:minmax(280px,auto);gap:12px;padding-top:clamp(70px,8vw,104px);display:grid}.skill-card article{--card-x:50%;--card-y:50%;--card-rotate-x:0deg;--card-rotate-y:0deg;border:1px solid var(--line);isolation:isolate;height:100%;min-height:280px;transition:border-color .35s ease, transform .65s var(--spring), box-shadow .6s var(--ease-out);transform:perspective(1000px) rotateX(var(--card-rotate-x)) rotateY(var(--card-rotate-y)) translateY(0);transform-style:preserve-3d;will-change:transform;background:#f5f5f2;flex-direction:column;padding:clamp(25px,3.4vw,44px);display:flex;position:relative;overflow:hidden}.skill-card article:hover{transform:perspective(1000px) rotateX(var(--card-rotate-x)) rotateY(var(--card-rotate-y)) translateY(-5px);border-color:#405ee847;box-shadow:0 24px 70px #232c4917}.skill-card__glow{z-index:-1;opacity:0;background:radial-gradient(circle 230px at var(--card-x) var(--card-y), #5d77f026, transparent 70%);transition:opacity .45s;position:absolute;inset:0}.skill-card article:hover .skill-card__glow{opacity:1}.skill-card__header{color:var(--ink-faint);letter-spacing:.1em;opacity:0;transition:opacity .6s ease calc(var(--reveal-delay,0s) + .11s), transform .75s var(--ease-out) calc(var(--reveal-delay,0s) + .11s);justify-content:space-between;align-items:center;font-family:SFMono-Regular,Consolas,monospace;font-size:8px;display:flex;transform:translateY(8px)}.skill-card__signal{width:18px;height:18px;transition:border-color .35s ease, transform .5s var(--spring);border:1px solid #405ee83d;border-radius:50%;place-items:center;display:grid}.skill-card__signal span{background:var(--accent);width:4px;height:4px;transition:box-shadow .45s ease, transform .5s var(--spring);border-radius:50%;box-shadow:0 0 0 3px #405ee81a}.skill-card article:hover .skill-card__signal{border-color:#405ee87a;transform:scale(1.08)}.skill-card article:hover .skill-card__signal span{transform:scale(1.15);box-shadow:0 0 0 5px #405ee817}.skill-card__copy{opacity:0;transition:opacity .7s ease calc(var(--reveal-delay,0s) + .17s), transform .85s var(--ease-out) calc(var(--reveal-delay,0s) + .17s);margin-top:auto;padding-top:50px;transform:translateY(14px)}.skill-card__copy h3{letter-spacing:-.05em;font-size:clamp(28px,2.5vw,38px);font-weight:480}.skill-card--featured .skill-card__copy h3{font-size:clamp(34px,3.5vw,48px)}.skill-card__copy p{max-width:270px;color:var(--ink-soft);margin-top:12px;font-size:12px;line-height:1.55}.skill-card ul{opacity:0;transition:opacity .7s ease calc(var(--reveal-delay,0s) + .24s), transform .85s var(--ease-out) calc(var(--reveal-delay,0s) + .24s);flex-wrap:wrap;gap:7px;margin-top:30px;display:flex;transform:translateY(10px)}.skill-card.reveal[data-visible=true] .skill-card__header,.skill-card.reveal[data-visible=true] .skill-card__copy,.skill-card.reveal[data-visible=true] ul{opacity:1;transform:translateY(0)}.skill-card li{border:1px solid var(--line);color:#454954;transition:color .28s ease, border-color .28s ease, background .28s ease, transform .45s var(--spring);background:#ffffff8a;border-radius:100px;padding:7px 10px;font-size:9px;font-weight:590}.skill-card article:hover li{border-color:#405ee838}.skill-card article:hover li:hover{color:var(--accent-deep);background:#fff;transform:translateY(-2px)}.skill-card{grid-column:span 2}.skill-card--featured{grid-column:span 6}.skill-card--featured article{color:#fff;background:#171a23;min-height:420px}.skill-card--featured .skill-card__copy p,.skill-card--featured .skill-card__header{color:#ffffff7a}.skill-card--featured li{color:#ffffffc2;background:#ffffff0a;border-color:#ffffff21}.skill-card--featured article:after{z-index:-1;content:"";width:490px;height:490px;transition:border-color .5s ease, transform 1.1s var(--ease-out);border:1px solid #7089f529;border-radius:50%;position:absolute;top:13%;right:-30%;box-shadow:0 0 0 56px #7089f508,0 0 0 112px #7089f505}.skill-card--featured article:hover:after{border-color:#7089f545;transform:translate(-10px,-7px)scale(1.025)}.section--projects{background:#f0f1ef;padding-block:clamp(92px,9vw,132px)}.section--projects .section-heading{padding-bottom:clamp(42px,5vw,66px)}.section--projects .section-heading h2{font-size:clamp(44px,5vw,68px)}.projects-grid{grid-template-columns:repeat(2,1fr);gap:12px;padding-top:clamp(48px,6vw,76px);display:grid}.project-card{border:1px solid var(--line);min-height:250px;transition:opacity .85s ease var(--reveal-delay,0s), filter .85s ease var(--reveal-delay,0s), border-color .35s ease, background .35s ease, box-shadow .55s var(--ease-out), transform .6s var(--spring);background:#ffffff61;flex-direction:column;justify-content:space-between;padding:clamp(26px,3.5vw,42px);display:flex;position:relative}.project-card:hover{background:#ffffffb8;border-color:#405ee838;transform:translateY(-4px);box-shadow:0 22px 60px #232c4912}.project-card__meta{color:var(--ink-faint);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:center;font-family:SFMono-Regular,Consolas,monospace;font-size:8px;display:flex}.project-card__meta span:first-child{color:var(--accent)}.project-card__content{max-width:470px;padding-top:48px}.project-card__content h3{letter-spacing:-.045em;font-size:clamp(25px,2.5vw,35px);font-weight:490}.project-card__content p{max-width:430px;color:var(--ink-soft);margin-top:15px;font-size:12px;line-height:1.65}.project-card__mark{width:24px;height:24px;transition:border-color .35s ease, background .35s ease, transform .5s var(--spring);border:1px solid #405ee833;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:clamp(26px,3.5vw,42px);right:clamp(26px,3.5vw,42px)}.project-card__mark>span{background:var(--accent);border-radius:50%;width:4px;height:4px}.project-card:hover .project-card__mark{border-color:var(--accent);background:#405ee80f;transform:scale(1.08)}.section--contact{background:var(--paper-bright);overflow:hidden}.section--contact:before{top:44%;right:max(-180px, calc((100vw - var(--max-width)) / 2 - 210px));filter:blur(90px);content:"";pointer-events:none;background:#5d77f017;border-radius:50%;width:min(54vw,720px);height:min(54vw,720px);position:absolute}.contact-layout{grid-template-columns:minmax(290px,.6fr) minmax(0,1fr);align-items:start;gap:clamp(52px,7vw,104px);margin-top:clamp(64px,8vw,104px);display:grid;position:relative}.contact-layout.reveal{transition:opacity .48s ease var(--reveal-delay,0s), filter .48s ease var(--reveal-delay,0s), transform .56s var(--ease-out) var(--reveal-delay,0s)}.contact-intro{flex-direction:column;justify-content:flex-start;min-height:590px;padding-block:34px 12px;display:flex}.contact-intro__copy,.contact-channels,.contact-form__heading,.contact-form__grid,.contact-form__footer{opacity:0;transition:opacity .36s ease, transform .42s var(--ease-out);transform:translateY(10px)}.contact-layout.reveal[data-visible=true] .contact-intro__copy{opacity:1;transition-delay:calc(var(--reveal-delay,0s) + 40ms);transform:translateY(0)}.contact-layout.reveal[data-visible=true] .contact-channels{opacity:1;transition-delay:calc(var(--reveal-delay,0s) + .13s);transform:translateY(0)}.contact-layout.reveal[data-visible=true] .contact-form__heading{opacity:1;transition-delay:calc(var(--reveal-delay,0s) + 90ms);transform:translateY(0)}.contact-layout.reveal[data-visible=true] .contact-form__grid{opacity:1;transition-delay:calc(var(--reveal-delay,0s) + .16s);transform:translateY(0)}.contact-layout.reveal[data-visible=true] .contact-form__footer{opacity:1;transition-delay:calc(var(--reveal-delay,0s) + .23s);transform:translateY(0)}.contact-intro__copy .card-kicker{color:var(--accent)}.contact-intro__copy h3{letter-spacing:-.052em;max-width:390px;margin-top:24px;font-size:clamp(32px,3.1vw,44px);font-weight:470;line-height:1.06}.contact-intro__copy>p:last-child{max-width:410px;color:var(--ink-soft);margin-top:28px;font-size:13px;line-height:1.78}.contact-availability{color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase;flex-wrap:wrap;gap:9px 18px;margin-top:40px;font-family:SFMono-Regular,Consolas,monospace;font-size:8px;display:flex}.contact-availability span{align-items:center;gap:8px;display:flex}.contact-availability i{background:var(--accent);border-radius:50%;width:5px;height:5px;box-shadow:0 0 0 4px #405ee814}.contact-channels{gap:10px;margin-top:46px;display:grid}.contact-channel{border:1px solid var(--line-light);min-height:72px;transition:border-color .26s ease, background .26s ease, box-shadow .32s var(--ease-out), transform .32s var(--spring);background:#ffffff75;border-radius:9px;grid-template-columns:42px 1fr 18px;align-items:center;gap:14px;padding:9px 15px 9px 10px;display:grid}.contact-channel:hover,.contact-channel:focus-visible{background:#ffffffd1;border-color:#405ee833;transform:translateY(-2px);box-shadow:0 12px 34px #232c4912}.contact-channel__icon{width:42px;height:42px;color:var(--accent);background:var(--accent-soft);transition:color .26s ease, border-color .26s ease, background .26s ease, transform .32s var(--spring);border:1px solid #405ee824;border-radius:9px;place-items:center;display:grid}.contact-channel__icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.45px;width:17px;height:17px}.contact-channel__icon--fill svg{fill:currentColor;stroke:none}.contact-channel:hover .contact-channel__icon,.contact-channel:focus-visible .contact-channel__icon{color:var(--accent-deep);background:#fff;border-color:#405ee83d;transform:rotate(-2deg)scale(1.04)}.contact-channel>span:nth-child(2){flex-direction:column;gap:5px;display:flex}.contact-channel strong{color:var(--ink);font-size:12px;font-weight:590}.contact-channel small{color:var(--ink-faint);letter-spacing:.07em;text-transform:uppercase;font-size:8px}.contact-channel>svg{fill:none;width:16px;height:16px;stroke:var(--ink-faint);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4px;transition:stroke .26s ease, transform .32s var(--spring)}.contact-channel:hover>svg,.contact-channel:focus-visible>svg{stroke:#8095f4;transform:translate(2px,-2px)}.contact-form{-webkit-backdrop-filter:blur(18px)saturate(1.06);backdrop-filter:blur(18px)saturate(1.06);isolation:isolate;background:#fdfdfce0;border:1px solid #405ee81f;border-radius:12px;flex-direction:column;min-width:0;min-height:660px;padding:clamp(38px,4.6vw,58px);display:flex;position:relative;box-shadow:0 34px 90px #1f26401a,inset 0 1px #ffffffe6}.contact-form:before{z-index:-1;border-radius:inherit;content:"";pointer-events:none;background:linear-gradient(145deg,#405ee83d,#ffffffbf 42%,#405ee814);padding:1px;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.contact-form__heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:48px;padding-bottom:34px;display:flex}.contact-form__heading>div>span{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;font-family:SFMono-Regular,Consolas,monospace;font-size:8px}.contact-form__heading h3{letter-spacing:-.05em;margin-top:12px;font-size:clamp(28px,2.6vw,36px);font-weight:480}.contact-form__heading p{max-width:230px;color:var(--ink-soft);padding-top:4px;font-size:11px;line-height:1.65}.contact-form__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-top:34px;display:grid}.contact-field{position:relative}.contact-field--wide{grid-column:1/-1}.contact-field label{z-index:1;color:var(--ink-faint);pointer-events:none;transition:top .24s var(--ease-out), color .22s ease, font-size .24s var(--ease-out), letter-spacing .24s var(--ease-out), transform .24s var(--ease-out);font-size:12px;line-height:1;position:absolute;top:50%;left:17px;transform:translateY(-50%)}.contact-field input,.contact-field textarea{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;transition:border-color .24s ease, background .24s ease, box-shadow .3s ease, transform .3s var(--spring);background:#f7f7f5a3;border-radius:8px;outline:none;font-size:13px}.contact-field input{height:60px;padding:22px 16px 7px}.contact-field textarea{resize:vertical;min-height:176px;padding:27px 16px 40px;line-height:1.6}.contact-field input::placeholder,.contact-field textarea::placeholder{color:#0000}.contact-field input:hover,.contact-field textarea:hover{background:#ffffffc2;border-color:#405ee83d}.contact-field input:focus,.contact-field textarea:focus{background:#fff;border-color:#405ee880;transform:translateY(-1px);box-shadow:0 0 0 3px #405ee813,0 10px 26px #232c490d}:-webkit-any(.contact-field input:focus+label,.contact-field input:not(:placeholder-shown)+label,.contact-field input:-webkit-autofill+label){color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:8px;font-weight:650;top:10px;transform:translateY(0)}:is(.contact-field input:focus+label,.contact-field input:not(:placeholder-shown)+label,.contact-field input:autofill+label){color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:8px;font-weight:650;top:10px;transform:translateY(0)}.contact-field--message label{top:21px;transform:translateY(0)}.contact-field textarea:focus+label,.contact-field textarea:not(:placeholder-shown)+label{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:8px;font-weight:650;top:10px}.contact-field__meta{color:var(--ink-faint);letter-spacing:.035em;pointer-events:none;background:#f7f7f5d6;border:1px solid #0000;border-radius:5px;align-items:center;gap:9px;padding:4px 7px;font-family:SFMono-Regular,Consolas,monospace;font-size:7px;line-height:1;transition:color .24s,border-color .24s,background .24s;display:flex;position:absolute;bottom:12px;right:14px}.contact-field__meta span+span{border-left:1px solid var(--line);padding-left:9px}.contact-field:focus-within .contact-field__meta{color:var(--accent-deep);background:#fff;border-color:#405ee81a}.contact-field__meta--limit{color:var(--accent-deep);border-color:#405ee829}.contact-turnstile{justify-content:center;min-height:0;display:flex}.contact-turnstile:not(:empty){margin-top:18px}.contact-form__footer{gap:13px;margin-top:auto;padding-top:28px;display:grid}.contact-submit{color:#fff;background:linear-gradient(135deg, var(--accent), #354fcf);cursor:pointer;isolation:isolate;width:100%;min-height:58px;transition:box-shadow .3s ease, transform .3s var(--spring);border-radius:8px;justify-content:space-between;align-items:center;padding:0 21px;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 12px 28px #405ee82e}.contact-submit:before{z-index:-1;content:"";opacity:0;background:#ffffff12;transition:opacity .26s;position:absolute;inset:0}.contact-submit:hover{transform:translateY(-2px);box-shadow:0 16px 34px #405ee83d}.contact-submit:hover:before{opacity:1}.contact-submit:active{transform:translateY(0)scale(.992);box-shadow:0 8px 20px #405ee82e}.contact-submit:disabled{cursor:wait;opacity:1;transform:none;box-shadow:0 9px 22px #405ee829}.contact-submit:disabled:before{opacity:.05}.contact-submit:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.contact-submit__states{flex:1;height:18px;position:relative}.contact-submit__state{letter-spacing:.02em;white-space:nowrap;transition:opacity .22s ease, transform .32s var(--ease-out);align-items:center;gap:9px;font-size:12px;font-weight:650;display:inline-flex;position:absolute;top:50%;left:0;transform:translateY(-50%)}.contact-submit__state--loading{opacity:0;transform:translateY(calc(8px - 50%))}.contact-submit--loading .contact-submit__state--idle{opacity:0;transform:translateY(calc(-50% - 8px))}.contact-submit--loading .contact-submit__state--loading{opacity:1;transform:translateY(-50%)}.contact-submit--loading{color:var(--accent-deep);box-shadow:none;background:#405ee80b;border:1px solid #405ee821}.contact-submit__spinner{border:1.5px solid #ffffff57;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite contact-spin}.contact-submit--loading .contact-submit__spinner{border-color:#405ee833;border-top-color:var(--accent-deep)}.contact-submit__arrow{transition:opacity .22s ease, transform .32s var(--spring);place-items:center;display:grid}.contact-submit__arrow svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;width:18px;height:18px;transition:transform .3s var(--spring)}.contact-submit:hover .contact-submit__arrow{transform:translate(4px)}.contact-submit--loading .contact-submit__arrow{opacity:0;transform:translate(-3px)}.contact-status{opacity:0;transition:grid-template-rows .32s var(--ease-out), opacity .22s ease, transform .34s var(--spring), border-color .26s ease, background .26s ease;border:1px solid #0000;border-radius:8px;grid-template-rows:0fr;display:grid;overflow:hidden;transform:translateY(-6px)}.contact-status--visible{opacity:1;grid-template-rows:1fr;transform:translateY(0)}.contact-status--visually-hidden{white-space:nowrap;clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.contact-status__content{min-height:0;animation:contact-status-enter .34s var(--ease-out) both;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:12px;padding:11px 13px;display:grid}.contact-status__icon{width:34px;height:34px;color:var(--accent-deep);background:#405ee813;border:1px solid #405ee824;border-radius:50%;place-items:center;display:grid}.contact-status__icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.55px;width:19px;height:19px}.contact-status__spinner{border:1.5px solid #405ee833;border-top-color:currentColor;border-radius:50%;width:15px;height:15px;animation:.7s linear infinite contact-spin}.contact-status__copy{flex-direction:column;gap:3px;min-width:0;display:flex}.contact-status__copy strong{color:var(--ink);letter-spacing:.015em;font-size:10px;font-weight:660}.contact-status__copy>span{color:var(--ink-soft);letter-spacing:.015em;font-size:9px;font-weight:520;line-height:1.45}.contact-status--loading{background:#405ee809;border-color:#405ee81a}.contact-status--success{background:#2677590b;border-color:#26775924}.contact-status--success .contact-status__icon{color:#267759;background:#26775913;border-color:#26775929}.contact-status--error{background:#8e34400a;border-color:#8e344024}.contact-status--error .contact-status__icon{color:#8e3440;background:#8e344012;border-color:#8e344029}@keyframes contact-spin{to{transform:rotate(360deg)}}@keyframes contact-status-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.contact-submit__state,.contact-submit__arrow,.contact-status{transition-duration:1ms}.contact-submit__spinner,.contact-status__spinner,.contact-status__content{animation:none}}.site-footer{color:#fff;background:#405ee8;padding-top:clamp(110px,13vw,180px)}.footer-callout{padding-bottom:clamp(100px,13vw,170px);position:relative}.site-footer .eyebrow{color:#ffffffa8}.site-footer .eyebrow__line{background:#fff}.footer-callout h2{letter-spacing:-.064em;clip-path:inset(0 0 100%);transition:clip-path 1.1s var(--ease-out) calc(var(--reveal-delay,0s) + .12s), transform .18s cubic-bezier(.22, .61, .36, 1);margin-top:34px;font-size:clamp(54px,8.4vw,112px);font-weight:450;line-height:.94}.footer-callout.reveal[data-visible=true] h2{clip-path:inset(0 0 -8%)}.button--light{color:var(--ink);background:#fff;position:absolute;bottom:clamp(106px,14vw,180px);right:0;box-shadow:0 12px 30px #23317f2e}.button--light:hover{color:#fff;background:0 0;border-color:#ffffff59;box-shadow:0 18px 40px #23317f3d}.button--light:hover svg{transform:translate(3px,-3px)}.footer-bottom{color:#ffffff9e;letter-spacing:.06em;text-transform:uppercase;border-top:1px solid #ffffff3d;grid-template-columns:1fr auto 1fr;align-items:center;min-height:76px;font-size:9px;font-weight:590;display:grid}.footer-bottom p:first-child span{color:#fff6;margin-left:8px}.footer-bottom a{justify-self:end}@keyframes hero-enter{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes header-enter{0%{opacity:0;transform:translate(-50%,-14px)}to{opacity:1;transform:translate(-50%)}}@keyframes title-line-enter{0%{transform:translateY(115%)rotate(1.2deg)}to{transform:translateY(0)rotate(0)}}@keyframes statement-wipe{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes character-tokenize{0%,12%{opacity:1;filter:blur();transform:translate(0,0)rotate(0)}30%,62%{opacity:0;filter:blur(1.5px);transform:translate3d(var(--token-x), var(--token-y), 0) rotate(var(--token-rotation))}82%{opacity:.6;filter:blur(.5px);transform:translate3d(var(--token-return-x), var(--token-return-y), 0) rotate(0)}to{opacity:1;filter:blur();transform:translate(0,0)rotate(0)}}@keyframes code-fragment{0%{opacity:0;transform:translateY(7px)scale(.94)}22%,56%{opacity:1;transform:translateY(0)scale(1)}82%,to{opacity:0;transform:translateY(-6px)scale(.97)}}@keyframes token-scan{0%,15%{opacity:0;transform:scaleX(.12)}32%,64%{opacity:1;transform:scaleX(1)}88%,to{opacity:0;transform:scaleX(.25)}}@keyframes orbit-drift{0%{transform:translateY(-50%)rotate(-2deg)}to{transform:translateY(-52%)rotate(2deg)}}@keyframes topology-flow{to{stroke-dashoffset:-220px}}@keyframes diffusion-drift{0%{opacity:.72;transform:translate(-12px,-8px)scale(.96)}to{opacity:1;transform:translate(18px,12px)scale(1.06)}}@keyframes node-pulse{0%,to{opacity:.5;transform:scale(.75)}50%{opacity:1;transform:scale(1.25)}}@keyframes scroll-cue{0%{transform:translate(-110%)}50%,to{transform:translate(110%)}}@media (width<=1024px){.hero-section{min-height:760px}.hero-section__content{grid-template-columns:minmax(0,1fr) minmax(280px,.6fr);gap:46px}.hero-title{font-size:clamp(63px,9vw,92px)}.portrait-shell{--portrait-gutter:15px;padding-inline:15px}.section-heading__copy{display:block}.section-heading__copy>p{margin-top:24px}.about-layout{column-gap:70px}.experience-item__trigger,.experience-item__panel>div{grid-template-columns:58px minmax(240px,1fr) minmax(150px,.42fr) minmax(135px,.34fr) 34px}.contact-layout{grid-template-columns:minmax(270px,.54fr) minmax(0,1fr);gap:42px}.contact-form{padding:38px}.contact-intro{padding-block:28px 10px}}@media (width<=760px){:root{--header-height:66px}.page-shell,.site-header{width:min(calc(100% - 40px), var(--max-width))}.site-header{grid-template-columns:1fr auto auto;gap:9px}.linkedin-link{width:38px;height:38px}.menu-button{z-index:3;background:0 0;flex-direction:column;justify-content:center;gap:5px;width:34px;height:34px;padding:8px;display:flex;position:relative}.menu-button span{background:var(--ink);width:18px;height:1px;transition:transform .3s var(--ease-out)}.menu-button--open span:first-child{transform:translateY(3px)rotate(45deg)}.menu-button--open span:last-child{transform:translateY(-3px)rotate(-45deg)}.site-nav{opacity:0;pointer-events:none;transition:opacity .26s ease, transform .35s var(--ease-out);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f9f9f7f7;flex-direction:column;align-items:flex-start;gap:7px;padding:92px 20px 30px;display:flex;position:fixed;top:0;left:-20px;right:-20px;transform:translateY(-16px);box-shadow:0 18px 35px #11131a14}.site-nav a{border-bottom:1px solid var(--line-light);width:100%;font-size:15px}.site-nav__indicator{display:none}.site-nav--open{opacity:1;pointer-events:auto;transform:translateY(0)}.hero-section{height:auto;min-height:100svh;max-height:none}.hero-section__content{grid-template-columns:1fr;gap:44px;height:auto;min-height:100svh;padding-block:128px 94px}.hero-title{margin-top:25px;font-size:clamp(61px,18vw,88px);line-height:.86}.hero-statement{margin-top:29px;font-size:18px}.hero-portrait{justify-self:center;width:min(86%,350px)}.ambient-background__orbit{width:670px;top:68%;right:-230px}.scroll-cue{display:none}.section{padding-block:104px}.section-heading{grid-template-columns:1fr;gap:34px;padding-bottom:62px}.section-heading h2{font-size:clamp(45px,13vw,64px)}.section-heading__copy>p{max-width:360px}.about-layout{grid-template-columns:1fr;gap:48px;padding-top:66px}.about-lead{grid-area:auto/1}.about-lead p{font-size:31px}.experience-list{padding-top:20px}.experience-item__trigger{grid-template-columns:32px 1fr 32px;min-height:0;padding-block:26px}.experience-item__marker{gap:6px;font-size:7px}.experience-item__company{grid-area:2/2;margin-top:7px;font-size:11px}.experience-item__company>span{max-width:220px;font-size:8px}.experience-item__period{grid-area:3/2;margin-top:10px;font-size:7px}.experience-item__role{padding-top:25px}.experience-item__role strong{font-size:18px}.experience-item__role>span{display:none}.experience-item__toggle{grid-area:1/3/span 3;width:30px;height:30px}.experience-item__panel>div{padding-left:32px;display:block}.experience-item__panel p{padding:0 40px 27px 0}.experience-item__note{display:none}.education-grid,.skills-grid,.projects-grid{grid-template-columns:1fr}.university-card{grid-template-columns:1fr auto;align-items:end;min-height:450px}.university-card__seal{grid-column:1/-1}.skills-grid{grid-template-rows:auto}.skill-card,.skill-card--featured{grid-area:auto/1}.skill-card article,.skill-card--featured article{min-height:340px}.project-card{min-height:230px}.contact-layout{grid-template-columns:1fr;gap:54px}.contact-intro{min-height:0;padding:0}.contact-channels{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:42px}.contact-form{min-height:640px}.footer-callout{padding-bottom:120px}.footer-callout h2{font-size:clamp(49px,13vw,72px)}.button--light{margin-top:44px;position:static}.footer-bottom{grid-template-columns:1fr 1fr;gap:8px;padding-block:24px}.footer-bottom p:nth-child(2){display:none}}@media (width<=440px){.page-shell,.site-header{width:min(calc(100% - 32px), var(--max-width))}.hero-section__content{padding-top:112px}.hero-title{font-size:clamp(54px,17.5vw,74px)}.hero-portrait{width:100%}.section-heading h2{font-size:43px}.about-lead p{font-size:28px}.education-grid{gap:10px}.university-card{min-height:410px}.footer-bottom{font-size:8px}.contact-layout{gap:44px;margin-top:52px}.contact-form{padding:26px 22px}.contact-intro{min-height:0;padding:0}.contact-intro__copy h3{font-size:32px}.contact-channels{grid-template-columns:1fr}.contact-form{min-height:0}.contact-form__heading{display:block}.contact-form__heading p{margin-top:16px}.contact-form__grid{grid-template-columns:1fr}.contact-field--wide{grid-column:auto}.contact-field textarea{min-height:164px}}
