:root{--bg:#08090c;--bg-elev:#0f1116;--surface:hsla(0,0%,100%,.035);--surface-hover:hsla(0,0%,100%,.06);--border:hsla(0,0%,100%,.08);--border-strong:hsla(0,0%,100%,.16);--text:#eceef3;--muted:#9097a6;--accent:#7c9cff;--accent-2:#b48cff;--accent-3:#4fd1c5;--spot:rgba(124,156,255,.12);--on-accent:#0b0d12;--radius:20px;--font:"Geist",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;color-scheme:dark}:root[data-theme=light]{--bg:#f7f7f9;--bg-elev:#fff;--surface:hsla(0,0%,100%,.75);--surface-hover:#fff;--border:rgba(10,14,30,.08);--border-strong:rgba(10,14,30,.18);--text:#0e1220;--muted:#5a6274;--accent:#3b5bdb;--accent-2:#7048e8;--accent-3:#0c8599;--spot:rgba(59,91,219,.08);--on-accent:#fff;color-scheme:light}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{-webkit-font-smoothing:antialiased;background:#08090c;background:var(--bg);color:#eceef3;color:var(--text);font-family:Geist,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font);line-height:1.6;transition:background .3s,color .3s}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}ol,ul{list-style:none}h1,h2,h3{font-weight:600;letter-spacing:-.02em;line-height:1.15}h2{font-size:clamp(1.75rem,1.2rem + 2vw,2.6rem)}h3{font-size:1.1rem}:focus-visible{border-radius:8px;outline:2px solid #7c9cff;outline:2px solid var(--accent);outline-offset:3px}.mono,.muted{color:#9097a6;color:var(--muted)}.mono{font-size:.8rem}.eyebrow,.mono{font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono)}.eyebrow{color:#7c9cff;color:var(--accent);font-size:.75rem;letter-spacing:.14em;margin-bottom:.75rem;text-transform:uppercase}.gradient-text{background:linear-gradient(100deg,#7c9cff,#b48cff 55%,#4fd1c5);background:linear-gradient(100deg,var(--accent),var(--accent-2) 55%,var(--accent-3));-webkit-background-clip:text;background-clip:text;color:transparent}.backdrop{background:radial-gradient(40rem 28rem at 85% -5%,color-mix(in srgb,#b48cff 22%,transparent),transparent 70%),radial-gradient(36rem 24rem at 5% 10%,color-mix(in srgb,#7c9cff 18%,transparent),transparent 70%);background:radial-gradient(40rem 28rem at 85% -5%,color-mix(in srgb,var(--accent-2) 22%,transparent),transparent 70%),radial-gradient(36rem 24rem at 5% 10%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 70%);inset:0;pointer-events:none;position:fixed;z-index:-1}.backdrop:after{background-image:linear-gradient(hsla(0,0%,100%,.08) 1px,transparent 0),linear-gradient(90deg,hsla(0,0%,100%,.08) 1px,transparent 0);background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:64px 64px;content:"";inset:0;-webkit-mask-image:radial-gradient(ellipse at 50% 0,#000 0,transparent 65%);mask-image:radial-gradient(ellipse at 50% 0,#000 0,transparent 65%);opacity:.6;position:absolute}.container{margin-inline:auto;width:min(1120px,100% - 2rem)}.section{padding-block:clamp(4rem,8vw,7rem)}.section__head{margin-bottom:2.5rem;max-width:40rem}.nav{padding:.75rem 1rem;position:-webkit-sticky;position:sticky;top:0;z-index:50}.nav__inner{align-items:center;backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);background:color-mix(in srgb,#08090c 70%,transparent);background:color-mix(in srgb,var(--bg) 70%,transparent);border:1px solid hsla(0,0%,100%,.08);border:1px solid var(--border);border-radius:999px;display:flex;gap:1rem;justify-content:space-between;margin-inline:auto;max-width:1120px;padding:.5rem .5rem .5rem 1.25rem}.nav__logo{font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:1.1rem;font-weight:500;letter-spacing:-.02em}.nav__cursor{-webkit-animation:cursor-blink 1.1s steps(1) infinite;animation:cursor-blink 1.1s steps(1) infinite;color:#7c9cff;color:var(--accent)}@-webkit-keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.nav__links{display:flex;gap:.25rem}.nav__links a{border-radius:999px;color:#9097a6;color:var(--muted);font-size:.9rem;padding:.4rem .9rem;transition:color .2s,background .2s}.nav__links a.is-active,.nav__links a:hover{background:hsla(0,0%,100%,.06);background:var(--surface-hover);color:#eceef3;color:var(--text)}.nav__actions{display:flex;gap:.4rem}.nav .nav__toggle{display:none}.btn,.icon-btn,.pill-link{align-items:center;background:hsla(0,0%,100%,.035);background:var(--surface);border:1px solid hsla(0,0%,100%,.16);border:1px solid var(--border-strong);border-radius:999px;color:#eceef3;color:var(--text);cursor:pointer;display:inline-flex;font:inherit;font-size:.95rem;gap:.45rem;justify-content:center;transition:background .2s,border-color .2s,-webkit-transform .2s;transition:transform .2s,background .2s,border-color .2s;transition:transform .2s,background .2s,border-color .2s,-webkit-transform .2s}.btn{font-weight:500;padding:.75rem 1.3rem}.icon-btn{font-size:1.2rem;height:2.6rem;width:2.6rem}.btn:hover,.icon-btn:hover,.pill-link:hover{background:hsla(0,0%,100%,.06);background:var(--surface-hover);border-color:#7c9cff;border-color:var(--accent);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.btn--primary{border-color:#eceef3;border-color:var(--text);color:#08090c;color:var(--bg)}.btn--primary,.btn--primary:hover{background:#eceef3;background:var(--text)}.btn--primary:hover{box-shadow:0 8px 30px -8px #7c9cff;box-shadow:0 8px 30px -8px var(--accent)}.btn:disabled{cursor:progress;opacity:.6}.hero{grid-gap:3rem;align-items:center;display:grid;gap:3rem;grid-template-columns:1.4fr 1fr;min-height:calc(100svh - 5rem);padding-block:3rem}.hero h1{font-size:clamp(3rem,1.5rem + 7vw,6.5rem);letter-spacing:-.045em;line-height:.95;margin:1.25rem 0}.hero__headline{color:#9097a6;color:var(--muted);font-size:clamp(1.1rem,1rem + .6vw,1.4rem);max-width:34rem}.hero__cta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2.25rem}.status-pill{align-items:center;background:hsla(0,0%,100%,.035);background:var(--surface);border:1px solid hsla(0,0%,100%,.08);border:1px solid var(--border);border-radius:999px;color:#9097a6;color:var(--muted);display:inline-flex;font-size:.85rem;gap:.55rem;padding:.4rem .9rem}.status-dot{-webkit-animation:pulse 2.4s infinite;animation:pulse 2.4s infinite;background:#34d399;border-radius:50%;box-shadow:0 0 0 0 rgba(52,211,153,.6);height:8px;width:8px}@-webkit-keyframes pulse{70%{box-shadow:0 0 0 8px rgba(52,211,153,0)}to{box-shadow:0 0 0 0 rgba(52,211,153,0)}}@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(52,211,153,0)}to{box-shadow:0 0 0 0 rgba(52,211,153,0)}}.hero__portrait{aspect-ratio:1;background:linear-gradient(140deg,#7c9cff,#b48cff,#4fd1c5);background:linear-gradient(140deg,var(--accent),var(--accent-2),var(--accent-3));border-radius:32px;box-shadow:0 30px 120px -30px color-mix(in srgb,#7c9cff 60%,transparent);box-shadow:0 30px 120px -30px color-mix(in srgb,var(--accent) 60%,transparent);justify-self:center;padding:6px;position:relative;width:min(100%,340px)}.hero__portrait img{border-radius:26px;height:100%;object-fit:cover;width:100%}.card{background:hsla(0,0%,100%,.035);background:var(--surface);border:1px solid hsla(0,0%,100%,.08);border:1px solid var(--border);border-radius:20px;border-radius:var(--radius);overflow:hidden;padding:1.6rem;position:relative;transition:border-color .3s,-webkit-transform .3s;transition:border-color .3s,transform .3s;transition:border-color .3s,transform .3s,-webkit-transform .3s}.card:before{background:radial-gradient(420px circle at -999px -999px,rgba(124,156,255,.12),transparent 60%);background:radial-gradient(420px circle at var(--mx,-999px) var(--my,-999px),var(--spot),transparent 60%);content:"";inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity .3s}.card:hover{border-color:hsla(0,0%,100%,.16);border-color:var(--border-strong)}.card:hover:before{opacity:1}.card h3+.muted,.card h3+p{margin-top:.5rem}.bento{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr)}.bento__wide{display:flex;flex-direction:column;gap:1rem;grid-column:span 2;grid-row:span 2;justify-content:center}.bento>.card:last-child{grid-column:1/-1}.lead{font-size:clamp(1.05rem,1rem + .35vw,1.25rem);line-height:1.55}.stat{display:flex;flex-direction:column;justify-content:flex-end;min-height:9rem}.stat__value{font-size:3rem;font-weight:600;letter-spacing:-.04em;line-height:1}.stat__label{color:#9097a6;color:var(--muted);font-size:.9rem;margin-top:.4rem}.timeline{grid-gap:1.25rem;display:grid;gap:1.25rem}.timeline__item{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:11rem 1fr}.timeline__meta{border-top:1px solid hsla(0,0%,100%,.08);border-top:1px solid var(--border);padding-top:1.7rem}.bullets{grid-gap:.6rem;color:#9097a6;color:var(--muted);display:grid;gap:.6rem;margin:1.1rem 0 1.3rem}.bullets li{padding-left:1.2rem;position:relative}.bullets li:before{background:#7c9cff;background:var(--accent);border-radius:2px;content:"";height:6px;left:0;position:absolute;top:.65em;width:6px}.tags{display:flex;flex-wrap:wrap;gap:.4rem}.tags li{background:hsla(0,0%,100%,.035);background:var(--surface);border:1px solid hsla(0,0%,100%,.08);border:1px solid var(--border);border-radius:999px;color:#9097a6;color:var(--muted);font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.75rem;padding:.25rem .6rem}.work-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr)}.work{display:flex;flex-direction:column;gap:.6rem;min-height:15rem}.work:hover{-webkit-transform:translateY(-3px);transform:translateY(-3px)}.work .tags{margin-top:auto;padding-top:.8rem}.work__org{align-items:center;display:inline-flex;gap:.5rem}.work__org .mono{color:#7c9cff;color:var(--accent)}.logo-tile{background:#fff;border:1px solid hsla(0,0%,100%,.08);border:1px solid var(--border);box-shadow:0 4px 14px -6px rgba(0,0,0,.4);display:inline-grid;flex:0 0 auto;place-items:center;transition:-webkit-transform .4s cubic-bezier(.2,.8,.2,1);transition:transform .4s cubic-bezier(.2,.8,.2,1);transition:transform .4s cubic-bezier(.2,.8,.2,1),-webkit-transform .4s cubic-bezier(.2,.8,.2,1);vertical-align:middle}.logo-tile img{height:62%;object-fit:contain;width:62%}.logo-tile--xs{border-radius:6px;box-shadow:none;height:1.25rem;width:1.25rem}.logo-tile--sm{border-radius:8px;height:1.75rem;width:1.75rem}.logo-tile--md{border-radius:14px;height:3rem;width:3rem}.card:hover .logo-tile{-webkit-transform:rotate(-6deg) scale(1.08);transform:rotate(-6deg) scale(1.08)}.job__head{align-items:center;display:flex;gap:1rem}.job__head p{margin-top:.15rem}.work--featured{background:linear-gradient(140deg,color-mix(in srgb,#7c9cff 12%,transparent),hsla(0,0%,100%,.035) 60%);background:linear-gradient(140deg,color-mix(in srgb,var(--accent) 12%,transparent),var(--surface) 60%);grid-column:span 2}.work--featured h3{font-size:1.5rem}.skills-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr)}.side-list{border-top:1px solid hsla(0,0%,100%,.08);border-top:1px solid var(--border)}.side-list a{grid-gap:1rem;align-items:center;border-bottom:1px solid hsla(0,0%,100%,.08);border-bottom:1px solid var(--border);display:grid;gap:1rem;grid-template-columns:12rem 1fr auto;padding:1.2rem .5rem;transition:background .2s,padding .2s}.side-list a:hover{background:hsla(0,0%,100%,.035);background:var(--surface);padding-inline:1rem}.side-list__title{font-weight:500}.side-list__arrow{color:#9097a6;color:var(--muted);font-size:1.3rem;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.photo-marquee{mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);overflow:hidden}.photo-marquee__track{-webkit-animation:marquee 60s linear infinite;animation:marquee 60s linear infinite;display:flex;width:-webkit-max-content;width:max-content}.photo-marquee:hover .photo-marquee__track{-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes marquee{to{-webkit-transform:translateX(-50%);transform:translateX(-50%)}}@keyframes marquee{to{-webkit-transform:translateX(-50%);transform:translateX(-50%)}}.photo-marquee figure{aspect-ratio:4/5;border:1px solid hsla(0,0%,100%,.08);border:1px solid var(--border);border-radius:20px;border-radius:var(--radius);flex:0 0 auto;margin-right:1.25rem;overflow:hidden;position:relative;transition:-webkit-transform .5s cubic-bezier(.2,.8,.2,1);transition:transform .5s cubic-bezier(.2,.8,.2,1);transition:transform .5s cubic-bezier(.2,.8,.2,1),-webkit-transform .5s cubic-bezier(.2,.8,.2,1);width:clamp(200px,22vw,280px)}.photo-marquee figure:hover{-webkit-transform:translateY(-6px);transform:translateY(-6px)}.photo-marquee img{height:100%;object-fit:cover;transition:-webkit-transform .8s cubic-bezier(.2,.8,.2,1);transition:transform .8s cubic-bezier(.2,.8,.2,1);transition:transform .8s cubic-bezier(.2,.8,.2,1),-webkit-transform .8s cubic-bezier(.2,.8,.2,1);width:100%}.photo-marquee figure:hover img{-webkit-transform:scale(1.06);transform:scale(1.06)}.photo-marquee figcaption{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:rgba(0,0,0,.45);border-radius:999px;bottom:.75rem;color:#fff;font-size:.8rem;left:.75rem;padding:.25rem .7rem;position:absolute}.insta-cta{display:flex;justify-content:center;margin-top:2.5rem}.insta-btn{--ig:linear-gradient(90deg,#f58529,#dd2a7b,#8134af,#515bd4,#dd2a7b,#f58529);align-items:center;-webkit-animation:ig-flow 6s linear infinite;animation:ig-flow 6s linear infinite;background:linear-gradient(#0f1116,#0f1116) padding-box,var(--ig) border-box;background:linear-gradient(var(--bg-elev),var(--bg-elev)) padding-box,var(--ig) border-box;background-size:100% 100%,300% 100%;border:1.5px solid transparent;border-radius:999px;display:inline-flex;font-weight:500;gap:.6rem;padding:.85rem 1.5rem;transition:box-shadow .35s,-webkit-transform .35s cubic-bezier(.2,.8,.2,1);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,-webkit-transform .35s cubic-bezier(.2,.8,.2,1)}@-webkit-keyframes ig-flow{to{background-position:0 0,300% 0}}@keyframes ig-flow{to{background-position:0 0,300% 0}}.insta-btn:hover{box-shadow:0 12px 40px -10px rgba(221,42,123,.6);-webkit-transform:translateY(-3px);transform:translateY(-3px)}.insta-btn__icon{background:var(--ig);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:1.35rem;transition:-webkit-transform .5s cubic-bezier(.2,.8,.2,1);transition:transform .5s cubic-bezier(.2,.8,.2,1);transition:transform .5s cubic-bezier(.2,.8,.2,1),-webkit-transform .5s cubic-bezier(.2,.8,.2,1)}.insta-btn:hover .insta-btn__icon{-webkit-transform:rotate(-12deg) scale(1.15);transform:rotate(-12deg) scale(1.15)}.insta-btn__arrow{font-size:1.2rem;margin-left:-.6rem;max-width:0;opacity:0;transition:max-width .35s,opacity .35s,margin .35s,-webkit-transform .35s;transition:max-width .35s,opacity .35s,margin .35s,transform .35s;transition:max-width .35s,opacity .35s,margin .35s,transform .35s,-webkit-transform .35s}.insta-btn:focus-visible .insta-btn__arrow,.insta-btn:hover .insta-btn__arrow{margin-left:0;max-width:1.5rem;opacity:1;-webkit-transform:translateX(2px);transform:translateX(2px)}.contact{grid-gap:3rem;background:linear-gradient(160deg,color-mix(in srgb,#b48cff 10%,transparent),hsla(0,0%,100%,.035) 55%);background:linear-gradient(160deg,color-mix(in srgb,var(--accent-2) 10%,transparent),var(--surface) 55%);border:1px solid hsla(0,0%,100%,.08);border:1px solid var(--border);border-radius:28px;display:grid;gap:3rem;grid-template-columns:1fr 1fr;padding:clamp(1.5rem,4vw,3rem)}.contact__title{font-size:clamp(1.8rem,1.2rem + 2.2vw,2.8rem);margin-bottom:1rem}.contact__links{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:2rem}.pill-link{font-size:.9rem;padding:.55rem 1rem;word-break:break-all}.contact__form{grid-gap:1rem;align-content:start;display:grid;gap:1rem}.contact__form label{grid-gap:.4rem;color:#9097a6;color:var(--muted);display:grid;font-size:.85rem;gap:.4rem}.contact__form input,.contact__form textarea{background:#0f1116;background:var(--bg-elev);border:1px solid hsla(0,0%,100%,.16);border:1px solid var(--border-strong);border-radius:14px;color:#eceef3;color:var(--text);font:inherit;font-size:1rem;padding:.8rem 1rem;resize:vertical;transition:border-color .2s,box-shadow .2s}.contact__form input:focus,.contact__form textarea:focus{border-color:#7c9cff;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,#7c9cff 20%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 20%,transparent);outline:none}.contact__form .btn{justify-self:start}.form-status{color:#9097a6;color:var(--muted);font-size:.9rem;min-height:1.5em}.footer{border-top:1px solid hsla(0,0%,100%,.08);border-top:1px solid var(--border);display:flex;flex-wrap:wrap;font-size:.9rem;gap:.5rem;justify-content:space-between;margin:2rem auto 0;padding:2rem 0 3rem;width:min(1120px,100% - 2rem)}.reveal{opacity:0}.reveal.is-visible{-webkit-animation:rise-in .8s cubic-bezier(.2,.8,.2,1) both;animation:rise-in .8s cubic-bezier(.2,.8,.2,1) both;-webkit-animation-delay:0ms;animation-delay:0ms;-webkit-animation-delay:calc(var(--i, 0)*90ms);animation-delay:calc(var(--i, 0)*90ms)}@-webkit-keyframes rise-in{0%{-webkit-filter:blur(6px);filter:blur(6px);opacity:0;translate:0 24px}to{-webkit-filter:none;filter:none;opacity:1;translate:0 0}}@keyframes rise-in{0%{-webkit-filter:blur(6px);filter:blur(6px);opacity:0;translate:0 24px}to{-webkit-filter:none;filter:none;opacity:1;translate:0 0}}.hero-in{-webkit-animation:rise-in .9s cubic-bezier(.2,.8,.2,1) both;animation:rise-in .9s cubic-bezier(.2,.8,.2,1) both;-webkit-animation-delay:80ms;animation-delay:80ms;-webkit-animation-delay:calc(var(--d, 0)*.12s + 80ms);animation-delay:calc(var(--d, 0)*.12s + 80ms)}.scroll-progress{background:linear-gradient(90deg,#7c9cff,#b48cff,#4fd1c5);background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent-3));box-shadow:0 0 12px #7c9cff;box-shadow:0 0 12px var(--accent);height:2px;left:0;position:fixed;right:0;top:0;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:left;transform-origin:left;z-index:60}@property --angle{syntax:"<angle>";inherits:false;initial-value:0deg}.hero__portrait{background:conic-gradient(from var(--angle),#7c9cff,#b48cff,#4fd1c5,#7c9cff);background:conic-gradient(from var(--angle),var(--accent),var(--accent-2),var(--accent-3),var(--accent));-webkit-transform:perspective(900px) rotateX(0deg) rotateY(0deg);transform:perspective(900px) rotateX(0deg) rotateY(0deg);-webkit-transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:-webkit-transform .4s cubic-bezier(.2,.8,.2,1);transition:transform .4s cubic-bezier(.2,.8,.2,1);transition:transform .4s cubic-bezier(.2,.8,.2,1),-webkit-transform .4s cubic-bezier(.2,.8,.2,1)}.hero__portrait.hero-in{-webkit-animation:rise-in .9s cubic-bezier(.2,.8,.2,1) both,ring-spin 8s linear infinite;animation:rise-in .9s cubic-bezier(.2,.8,.2,1) both,ring-spin 8s linear infinite;-webkit-animation-delay:80ms,0s;animation-delay:80ms,0s;-webkit-animation-delay:calc(var(--d, 0)*.12s + 80ms),0s;animation-delay:calc(var(--d, 0)*.12s + 80ms),0s}@-webkit-keyframes ring-spin{to{--angle:360deg}}@keyframes ring-spin{to{--angle:360deg}}.timeline__meta{align-items:flex-start;display:flex;gap:.6rem}.timeline__dot{background:hsla(0,0%,100%,.16);background:var(--border-strong);border-radius:50%;flex:0 0 auto;height:10px;margin-top:.3rem;width:10px}.timeline__dot.is-current{-webkit-animation:pulse 2.4s infinite;animation:pulse 2.4s infinite;background:#34d399}.photo-marquee__open{all:unset;cursor:zoom-in;display:block;height:100%;width:100%}.photo-marquee__open:focus-visible{outline:2px solid #7c9cff;outline:2px solid var(--accent);outline-offset:-4px}.photo-marquee img{-webkit-animation:ken-burns 16s ease-in-out infinite alternate;animation:ken-burns 16s ease-in-out infinite alternate;-webkit-animation-delay:0s;animation-delay:0s;-webkit-animation-delay:calc(var(--k, 0)*-2.7s);animation-delay:calc(var(--k, 0)*-2.7s);transition:-webkit-transform .8s cubic-bezier(.2,.8,.2,1),-webkit-filter .5s;transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .5s;transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .5s,-webkit-transform .8s cubic-bezier(.2,.8,.2,1),-webkit-filter .5s}@-webkit-keyframes ken-burns{0%{scale:1;translate:0 0}to{scale:1.14;translate:-3% -2%}}@keyframes ken-burns{0%{scale:1;translate:0 0}to{scale:1.14;translate:-3% -2%}}.photo-marquee__track:hover figure:not(:hover) img{-webkit-filter:grayscale(.7) brightness(.55);filter:grayscale(.7) brightness(.55)}.ride{height:760vh;position:relative;scroll-margin-top:-5rem}.ride__stage{background:#0f1116;background:var(--bg-elev);height:100svh;overflow:hidden;position:-webkit-sticky;position:sticky;top:0}.ride__canvas,.ride__stage:after{inset:0;position:absolute}.ride__stage:after{background:linear-gradient(#08090c,transparent 9%,transparent 91%,#08090c);background:linear-gradient(var(--bg),transparent 9%,transparent 91%,var(--bg));content:"";pointer-events:none}.ride__card,.ride__hud,.ride__intro,.ride__route{z-index:1}.ride__intro{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:color-mix(in srgb,#0f1116 78%,transparent);background:color-mix(in srgb,var(--bg-elev) 78%,transparent);border:1px solid hsla(0,0%,100%,.08);border:1px solid var(--border);border-radius:20px;border-radius:var(--radius);left:max(1rem,calc(50% - 560px));max-width:26rem;opacity:0;padding:1.4rem 1.6rem;position:absolute;top:6.5rem;transition:opacity .4s,translate .4s,visibility .4s;translate:0 -12px;visibility:hidden}.ride__intro.is-shown{opacity:1;translate:0 0;visibility:visible}.ride__intro .muted{margin-top:.5rem}.ride__intro a,.ride__link{color:#7c9cff;color:var(--accent)}.ride__intro a:hover,.ride__link:hover{text-decoration:underline}.ride__hud{align-items:center;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:color-mix(in srgb,#0f1116 78%,transparent);background:color-mix(in srgb,var(--bg-elev) 78%,transparent);border:1px solid hsla(0,0%,100%,.08);border:1px solid var(--border);border-radius:20px;border-radius:var(--radius);display:flex;gap:1rem;padding:.6rem 1.1rem .6rem .7rem;position:absolute;right:max(1rem,calc(50% - 560px));top:5.5rem}.ride__gauge{height:4.5rem;position:relative;width:4.5rem}.ride__gauge svg{height:100%;width:100%}.ride__gauge path{fill:none;stroke:hsla(0,0%,100%,.16);stroke:var(--border-strong);stroke-width:5;stroke-linecap:round}.ride__needle{background:#7c9cff;background:var(--accent);border-radius:2px;height:34%;left:calc(50% - 1px);position:absolute;top:16%;-webkit-transform:rotate(-120deg);transform:rotate(-120deg);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;width:2px}.ride__speed{color:#9097a6;color:var(--muted);font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.56rem;inset:auto 0 2%;line-height:1.1;position:absolute;text-align:center}.ride__speed b{color:#eceef3;color:var(--text);display:block;font-size:.9rem;font-weight:500}.ride__odo{grid-gap:.1rem;color:#9097a6;color:var(--muted);display:grid;font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.8rem;gap:.1rem}.ride__odo .mono{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase}.ride__odo b{color:#eceef3;color:var(--text);font-size:1.25rem;font-weight:500}.ride__card{align-items:center;-webkit-animation:rise-in .5s cubic-bezier(.2,.8,.2,1) both;animation:rise-in .5s cubic-bezier(.2,.8,.2,1) both;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:color-mix(in srgb,#0f1116 84%,transparent);background:color-mix(in srgb,var(--bg-elev) 84%,transparent);border:1px solid hsla(0,0%,100%,.08);border:1px solid var(--border);border-radius:20px;border-radius:var(--radius);bottom:5rem;display:flex;gap:1rem;padding:.85rem;position:absolute;right:max(1rem,calc(50% - 560px));width:min(25rem,100% - 2rem)}.ride__card>div{min-width:0;padding:.25rem .4rem}.ride__card h3{margin:.15rem 0 .25rem}.ride__card .muted{font-size:.88rem}.ride__link{align-items:center;display:inline-flex;font-size:.92rem;gap:.25rem}.ride-list__photo,.ride__card-photo{all:unset;border-radius:12px;cursor:zoom-in;display:block;overflow:hidden}.ride__card-photo{flex:0 0 auto;height:6.5rem;width:6.5rem}.ride-list__photo img,.ride__card-photo img{height:100%;object-fit:cover;transition:scale .5s cubic-bezier(.2,.8,.2,1);width:100%}.ride-list__photo:hover img,.ride__card-photo:hover img{scale:1.07}.ride-list__photo:focus-visible,.ride__card-photo:focus-visible{outline:2px solid #7c9cff;outline:2px solid var(--accent);outline-offset:2px}.ride__media-tile{background:linear-gradient(140deg,#3b5bdb,#7048e8);border-radius:12px;color:#fff;display:grid;font-size:2.4rem;overflow:hidden;place-items:center}.ride__media-tile--logo{background:#fff}.ride__media-tile img{height:66%;object-fit:contain;width:66%}.ride__media-tile--photo img{height:100%;object-fit:cover;width:100%}.ride__credit{color:#9097a6;color:var(--muted);display:block;font-size:.72rem;margin-top:.2rem}.ride__credit:hover{text-decoration:underline}.ride__card .ride__media-tile{flex:0 0 auto;height:6.5rem;width:6.5rem}.ride-list .ride__media-tile{aspect-ratio:4/3;margin-bottom:.9rem}.ride__route{background:hsla(0,0%,100%,.16);background:var(--border-strong);bottom:2.25rem;height:3px;left:50%;translate:-50% 0;width:min(30rem,100% - 3rem)}.ride__route,.ride__route-fill{border-radius:3px;position:absolute}.ride__route-fill{background:linear-gradient(90deg,#7c9cff,#b48cff,#4fd1c5);background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent-3));inset:0;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:left;transform-origin:left}.ride__route li{position:absolute;top:50%;translate:-50% -50%}.ride__route button{all:unset;border-radius:50%;cursor:pointer;display:grid;height:28px;place-items:center;width:28px}.ride__route button:before{background:#0f1116;background:var(--bg-elev);border:2px solid #7c9cff;border:2px solid var(--accent);border-radius:50%;content:"";height:11px;transition:scale .25s,background .25s;width:11px}.ride__route button.is-active:before,.ride__route button:hover:before{background:#7c9cff;background:var(--accent);scale:1.35}.ride__route button:focus-visible{outline:2px solid #7c9cff;outline:2px solid var(--accent)}.ride-list{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.ride-list__photo{aspect-ratio:4/3;margin-bottom:.9rem;width:100%}.lightbox{grid-gap:1rem;align-items:center;-webkit-animation:fade-in .3s ease both;animation:fade-in .3s ease both;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:rgba(5,6,10,.88);color:#fff;display:grid;gap:1rem;grid-template-columns:auto 1fr auto;inset:0;padding:4rem 1.5rem;position:fixed;z-index:100}@-webkit-keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.lightbox .icon-btn{background:hsla(0,0%,100%,.08);border-color:hsla(0,0%,100%,.2);color:#fff}.lightbox__close{position:absolute;right:1.25rem;top:1.25rem}.lightbox__figure{grid-gap:.9rem;-webkit-animation:zoom-in .45s cubic-bezier(.2,.8,.2,1) both;animation:zoom-in .45s cubic-bezier(.2,.8,.2,1) both;display:grid;gap:.9rem;justify-self:center}@-webkit-keyframes zoom-in{0%{-webkit-filter:blur(8px);filter:blur(8px);opacity:0;scale:.94}to{-webkit-filter:none;filter:none;opacity:1;scale:1}}@keyframes zoom-in{0%{-webkit-filter:blur(8px);filter:blur(8px);opacity:0;scale:.94}to{-webkit-filter:none;filter:none;opacity:1;scale:1}}.lightbox__figure img{border-radius:18px;box-shadow:0 30px 80px -20px rgba(0,0,0,.8);max-height:calc(100svh - 12rem);max-width:min(100%,1000px)}.lightbox__figure figcaption{display:flex;font-size:.95rem;gap:1rem;justify-content:space-between}.lightbox__figure .mono{color:hsla(0,0%,100%,.6)}@media (max-width:640px){.lightbox{grid-template-columns:1fr;padding:4.5rem 1rem 6rem}.lightbox__nav{bottom:1.5rem;position:absolute}.lightbox__nav--prev{left:calc(50% - 3.2rem)}.lightbox__nav--next{right:calc(50% - 3.2rem)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{-webkit-animation:none!important;animation:none!important;transition:none!important}.reveal{opacity:1}.hero__portrait{-webkit-transform:none;transform:none}.photo-marquee{mask-image:none;-webkit-mask-image:none;overflow-x:auto}.photo-marquee figure[aria-hidden]{display:none}}@media (max-width:900px){.hero{grid-template-columns:1fr;min-height:auto;padding-top:2rem}.hero__portrait{border-radius:24px;justify-self:start;order:-1;width:140px}.hero__portrait img{border-radius:20px}.skills-grid,.work-grid{grid-template-columns:repeat(2,1fr)}.contact,.timeline__item{grid-template-columns:1fr}.timeline__item{gap:.5rem}.timeline__meta{border-top:0;padding-top:0}}@media (max-width:760px){.nav .nav__toggle{display:inline-flex}.nav__links{background:#0f1116;background:var(--bg-elev);border:1px solid hsla(0,0%,100%,.08);border:1px solid var(--border);border-radius:20px;display:none;flex-direction:column;left:1rem;padding:.5rem;position:absolute;right:1rem;top:calc(100% + .25rem)}.nav__links.is-open{display:flex}.nav__links a{padding:.75rem 1rem}.ride{height:620vh}.ride__intro{padding:1.1rem 1.25rem;right:1rem;top:10.5rem}.ride__hud{gap:.75rem;padding:.35rem .9rem .35rem .45rem;right:1rem;top:4.75rem}.ride__gauge{height:3.75rem;width:3.75rem}.ride__card{bottom:4.25rem;right:1rem}.ride__card-photo,.ride__media-tile--photo img{height:100%;object-fit:cover;width:100%}.ride__credit{color:#9097a6;color:var(--muted);display:block;font-size:.72rem;margin-top:.2rem}.ride__credit:hover{text-decoration:underline}.ride__card .ride__media-tile{height:5rem;width:5rem}}@media (max-width:640px){.bento,.skills-grid,.work-grid{grid-template-columns:1fr}.bento>.card:last-child,.bento__wide,.work--featured{grid-column:auto;grid-row:auto}.side-list a{grid-template-columns:1fr auto}.side-list a .muted{grid-column:1}.side-list__arrow{grid-column:2;grid-row:1/span 2}}
/*# sourceMappingURL=main.5a0c284d.css.map*/