@font-face{font-family:Inter;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2");font-style:normal;font-weight:100 900;font-display:swap}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f5f3f8;background:var(--page-surface);font-synthesis:none;font-weight:400;--green: #82dfaa;--muted: #c1b9cc;--line: #3d2a51;--page-surface: #0b0716;--hero-surface: #080512;--section-tint: #171121}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;min-width:320px;-webkit-font-smoothing:antialiased}::selection{background:var(--green);color:#0b0716}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{border:0;background:none;padding:0}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:7px;border-radius:4px}button:disabled{cursor:default}h1,h2,h3,p{margin:0}em{font-style:normal;color:var(--green)}.page-width{width:86.8%;max-width:1480px;margin-inline:auto}.skip-link{position:fixed;z-index:10;left:20px;top:-60px;background:var(--green);color:#110b1b;padding:12px 20px;border-radius:5px}.skip-link:focus{top:14px}.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--hero-surface)}.hero:before{content:"";position:absolute;inset:auto 0 0;height:112px;z-index:-1;background:linear-gradient(180deg,#08051200,var(--hero-surface));pointer-events:none}.hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(180deg,#080512 74px,#08051200 154px),linear-gradient(90deg,#080512 10%,#080512ef 36%,#080512a6 58%,transparent 84%);pointer-events:none}.hero-scene{position:absolute;z-index:-2;pointer-events:none;width:clamp(720px,67vw,960px);aspect-ratio:1;right:-5%;bottom:-290px}.hero-canvas,.hero-form-fallback{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.hero-canvas{visibility:hidden}.hero-scene.is-ready .hero-canvas{visibility:visible}.hero-scene.is-ready .hero-form-fallback{visibility:hidden}.motion-toggle{position:absolute;right:4.9%;bottom:18px;z-index:1;width:44px;height:44px;display:grid;place-items:center;color:#ded8e4;background:#130c20;border:1px solid #6a587f;border-radius:8px;transition:color .18s,background .18s}.motion-toggle:hover{color:var(--green);background:#241631}.site-header{height:74px;width:90.2%;max-width:1540px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:3}.wordmark{font-size:19px;letter-spacing:-.65px}.main-navigation{display:flex;align-items:center;gap:53px;padding-right:9px;font-size:14px;color:#ded8e4}.main-navigation a,.main-navigation button{display:inline-flex;align-items:center;min-height:44px;transition:color .18s,font-weight .18s}.main-navigation a:hover,.main-navigation button:hover,.main-navigation a:focus-visible,.main-navigation button:focus-visible{color:var(--green);font-weight:700}.nav-label{display:inline-grid}.nav-label>span{grid-area:1 / 1}.nav-label-width{visibility:hidden;font-weight:700}.main-navigation button{display:inline-flex;align-items:center;gap:7px}.icon-button{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%}.icon-button:hover{background:#ffffff0c}.menu-toggle{display:none}.hero-copy{padding-block:48px 64px}.hero h1{font-size:clamp(2.5rem,5.3vw,4.5rem);font-weight:400;line-height:1.08;letter-spacing:-.035em;max-width:780px;text-wrap:balance}.hero h1>span{display:block}.hero-description{max-width:30rem;font-size:1.125rem;line-height:1.55;color:#d0c9da;margin-top:18px;letter-spacing:-.2px}.hero-context{margin-top:14px;color:var(--green);font-size:1rem;line-height:1.5}.hero-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:24px}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:13px;min-height:46px;background:var(--green);color:#0c1710;border-radius:99px;padding:12px 29px;font-size:16px;letter-spacing:-.3px;transition:background .18s,transform .18s}.primary-button:hover{background:#b2edc5;transform:translateY(-2px)}.primary-button:active{transform:translateY(0)}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:11px 23px;border:1px solid #9c82bd;border-radius:99px;background:#211433;color:#f5f3f8;font-size:16px;font-weight:500;line-height:1.5;letter-spacing:-.25px;box-shadow:0 4px 18px #08051240;transition:background .2s,border-color .2s,transform .2s}.secondary-button svg{flex:none;color:var(--green);transition:transform .2s}.secondary-button:hover{background:#35204e;border-color:#cbb3e7;transform:translateY(-2px)}.secondary-button:hover svg{transform:translate(3px)}.secondary-button:active{transform:translateY(0)}.primary-button:focus-visible,.secondary-button:focus-visible{border-radius:99px}.text-action{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding-block:10px;color:var(--green);font-size:1rem;line-height:1.5;letter-spacing:-.25px}.text-action svg{flex:none;transition:transform .18s}.text-action:hover svg{transform:translate(3px)}.text-action[target=_blank]:hover svg{transform:translate(2px,-2px)}.site-footer .text-action:hover svg{transform:translateY(-3px)}.text-action:hover{color:#c2f0d0}.selected-work{background:linear-gradient(180deg,var(--hero-surface),var(--section-tint) 38%,var(--page-surface));padding:40px 0 44px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:24px}.section-heading h2{font-size:1.75rem;font-weight:500;letter-spacing:-.03em}.focus-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8%;margin-top:28px}.focus-item{text-align:left;display:flex;flex-direction:column;align-items:flex-start;position:relative;border-radius:6px;min-width:0;padding:0}.focus-item h3{color:var(--green);font-size:1.5rem;font-weight:500;line-height:1.3;letter-spacing:-.025em;transition:color .18s}.focus-item p{color:var(--muted);font-size:1rem;line-height:1.55;margin-top:12px;max-width:48ch;letter-spacing:-.12px}.focus-item .project-context{font-size:.875rem;margin-top:8px}.focus-item .project-outcome{color:#f5f3f8;font-weight:500}.project-action{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding-block:10px;margin-top:14px;color:var(--green);font-size:1rem}.focus-arrow{color:var(--green);transition:transform .2s}.focus-item:hover .focus-arrow{transform:translate(6px)}.focus-item:hover h3{color:#c3f5d3}.about-section{position:relative;isolation:isolate;padding-block:64px}.about-section:before{content:"";position:absolute;z-index:-1;top:12px;left:-7%;width:min(560px,100%);height:300px;background:radial-gradient(ellipse at 40% 50%,#8b739b14,transparent 70%);pointer-events:none}.about-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:8%}.about-grid h2,.contact-section h2{font-size:clamp(2rem,3.2vw,3rem);font-weight:400;line-height:1.12;letter-spacing:-.03em}.about-spark{display:block;flex:none;width:24px;height:24px;background:linear-gradient(135deg,#c7b1ff,var(--green));clip-path:polygon(50% 0,63% 37%,100% 50%,63% 63%,50% 100%,37% 63%,0 50%,37% 37%)}.about-grid .about-title{margin-top:18px;font-size:clamp(2rem,3vw,2.75rem);line-height:1.18;letter-spacing:-.03em;font-weight:450}.about-title-line{display:block;overflow:hidden;padding-block:.06em;margin-block:-.06em}.about-title-line>*{display:block}.curiosity-accent{color:#cab4ff}.about-rule{display:block;width:88px;height:2px;margin-top:20px;background:linear-gradient(90deg,var(--green),#a582db);transform-origin:left}.about-copy{padding-top:0}.about-copy p{font-size:18px;line-height:1.6;color:#ded8e5;max-width:530px}.about-copy p+p{margin-top:14px}.about-copy .muted{color:var(--muted);font-size:16px}.about-copy .text-action{margin-top:18px}.contact-section{background:linear-gradient(180deg,var(--page-surface),var(--section-tint) 45%,var(--page-surface));padding-block:56px}.contact-content{display:flex;flex-direction:column;align-items:center;gap:24px;text-align:center}.contact-word{display:inline-block}.contact-action{display:flex;flex-direction:column;align-items:center;gap:16px}.contact-invitation{max-width:440px;color:var(--muted);font-size:16px;line-height:1.65}.site-footer{padding-block:28px;display:flex;align-items:center;justify-content:space-between;gap:22px;font-size:13px;color:var(--muted)}.site-footer>.text-action{font-size:1rem}.preview-dialog{width:min(620px,calc(100% - 36px));max-height:calc(100dvh - 44px);padding:0;border:1px solid #493059;border-radius:20px;color:#f5f3f8;background:#190f29;overflow:auto;scrollbar-color:#705286 #190f29;box-shadow:0 32px 100px #0007}.preview-dialog::backdrop{background:#080311ba;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dialog-content{padding:8px 44px 36px}.dialog-toolbar{position:sticky;top:0;z-index:2;display:flex;justify-content:flex-end;height:56px;margin-bottom:-12px;padding:6px 12px;background:#190f29}.dialog-close{position:static}.dialog-content h2{font-size:39px;line-height:1.15;letter-spacing:-.03em;font-weight:400;margin-top:8px}.dialog-intro{font-size:17px;line-height:1.6;color:var(--muted);margin-top:15px}.preview-content,.resume-sections{margin-top:30px;border-top:1px solid var(--line);padding-top:25px}.dialog-content h3{font-size:17px;color:var(--green);font-weight:500;margin-bottom:9px}.dialog-content p{line-height:1.6}.preview-content p,.resume-sections p{font-size:1rem;color:#d3cadf}.resume-sections section+section{margin-top:24px}.resume-location{margin-top:8px;font-size:14px;color:var(--muted)}.resume-downloads{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:22px}.resume-downloads .primary-button{font-size:1rem;padding-inline:22px}.resume-downloads .text-action{font-size:1rem}.resume-job{margin-top:22px}.resume-sections h4{margin:0 0 6px;font-size:16px;font-weight:500;line-height:1.5}.resume-sections .resume-meta{color:var(--muted);font-size:13px;margin-top:5px}.resume-sections section>p+p{margin-top:10px}.resume-sections section+section{border-top:1px solid var(--line);padding-top:25px;margin-top:28px}.detail-list{padding-left:19px;margin:18px 0 0;color:#d3cadf;font-size:1rem;line-height:1.65}.detail-list li+li{margin-top:12px}.detail-list li::marker{color:var(--green)}.preview-content .project-stack,.resume-job .project-stack{color:var(--green);font-size:14px}.skill-list{margin:0;font-size:1rem;line-height:1.6}.skill-list div+div{margin-top:15px}.skill-list dt{color:#f5f3f8;font-weight:500}.skill-list dd{margin:4px 0 0;color:var(--muted)}.contact-email{overflow-wrap:anywhere;max-width:100%}.contact-links{display:flex;flex-wrap:wrap;justify-content:center;column-gap:24px;row-gap:4px}@media(max-width:1100px){.hero:after{background:linear-gradient(90deg,#080512 22%,#080512ef 48%,#080512ba 66%,#08051226 86%,transparent)}.hero-scene{right:-16%;bottom:-260px}.hero h1{font-size:clamp(2.75rem,6.4vw,4rem)}.hero-copy{padding-block:44px 64px}.main-navigation{gap:34px}}@media(max-width:700px){html{scroll-padding-top:20px}.hero:before{height:72px}.page-width{width:calc(100% - 44px)}.hero:after{background:linear-gradient(180deg,#080512 0%,#080512f5 48%,#080512b3 64%,transparent 86%)}.site-header{height:70px;width:calc(100% - 40px)}.wordmark{font-size:18px}.menu-toggle{display:flex}.main-navigation{display:none;position:absolute;top:69px;right:-1px;left:-1px;flex-direction:column;align-items:stretch;gap:0;background:#170e26;border:1px solid var(--line);padding:8px 16px;border-radius:0 0 12px 12px;font-size:17px}.main-navigation.is-open{display:flex}.main-navigation a,.main-navigation button{padding:15px 10px}.hero-copy{padding-block:32px 176px}.hero h1{font-size:clamp(2rem,9.8vw,2.8rem);line-height:1.12}.hero h1>span:last-child{max-width:500px}.hero-description{font-size:1rem;line-height:1.55;margin-top:18px;max-width:340px}.hero-actions{gap:12px;margin-top:22px}.primary-button{font-size:14px;padding:12px 23px;min-height:45px}.hero-actions .secondary-button{font-size:14px;gap:7px;min-height:45px;padding:11px 20px}.hero-scene{width:560px;left:50%;right:auto;bottom:-295px;transform:translate(-50%)}.motion-toggle{right:22px;bottom:14px}.selected-work{padding:28px 0 32px}.section-heading h2{font-size:1.5rem}.focus-grid{grid-template-columns:1fr;gap:0;margin-top:24px}.focus-item{padding:0 0 24px;border-radius:0}.focus-item+.focus-item{border-top:1px solid var(--line);padding-top:24px}.focus-item:last-child{padding-bottom:0}.focus-item h3{font-size:1.375rem}.about-section{padding-block:40px}.about-grid{grid-template-columns:1fr;gap:22px}.about-grid h2,.contact-section h2{font-size:2rem}.about-grid .about-title{font-size:1.875rem}.about-copy{padding-top:0}.about-copy p,.about-copy .muted{font-size:1rem}.contact-section{padding-block:40px}.contact-content{gap:20px}.contact-invitation{font-size:1rem}.site-footer{flex-wrap:wrap;font-size:12px;padding-block:24px}.site-footer span:nth-child(2){display:none}.dialog-content{padding:8px 25px 28px}.dialog-content h2{font-size:33px}.preview-dialog{border-radius:16px}.dialog-intro{font-size:16px}}@media(max-width:370px){.hero-actions{gap:10px}.hero-actions .primary-button,.hero-actions .secondary-button{flex:1;padding-inline:8px;font-size:.875rem}}@keyframes rise-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes dialog-in{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:no-preference){.hero-copy>*{animation:rise-in .7s cubic-bezier(.2,.7,.2,1) both}.hero-copy>h1{animation-delay:.12s}.hero-description{animation-delay:.2s}.hero-context{animation-delay:.24s}.hero-actions{animation-delay:.28s}[data-reveal]{transition:opacity .65s ease var(--reveal-delay, 0ms),transform .65s cubic-bezier(.2,.7,.2,1) var(--reveal-delay, 0ms)}.reveal-pending{opacity:0;transform:translateY(20px)}[data-reveal]:focus-within{opacity:1;transform:none;transition:none}.contact-copy[data-reveal]{opacity:1;transform:none;transition:none}.contact-word{transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}.contact-word{transition-delay:calc(var(--word-index) * 80ms + 60ms)}.contact-copy.reveal-pending .contact-word{opacity:0;transform:translateY(18px)}.about-intro[data-reveal]{opacity:1;transform:none;transition:none}.about-title-line>*{transition:opacity .8s ease,transform .85s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--line-index) * .1s + 80ms)}.about-spark{transition:opacity .7s ease,transform .9s cubic-bezier(.2,.7,.2,1)}.about-rule{transition:transform .8s cubic-bezier(.2,.7,.2,1) .3s}.about-intro.reveal-pending .about-title-line>*{opacity:0;transform:translateY(110%)}.about-intro.reveal-pending .about-spark{opacity:0;transform:rotate(-90deg) scale(.55)}.about-intro.reveal-pending .about-rule{transform:scaleX(0)}.preview-dialog[open]{animation:dialog-in .24s cubic-bezier(.2,.7,.2,1) both}.preview-dialog[open]::backdrop{animation:backdrop-in .2s ease both}.main-navigation.is-open{animation:rise-in .22s ease both}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.reveal-pending{opacity:1;transform:none}.primary-button:hover,.secondary-button:hover,.secondary-button:hover svg,.text-action:hover svg,.focus-item:hover .focus-arrow{transform:none}}@media(forced-colors:active){.curiosity-accent{background:none;-webkit-text-fill-color:currentColor}.about-spark,.about-rule{background:CanvasText}}
