@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Space+Mono:wght@400&display=swap";:root{color:#f5f3fa;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#0b0b10;font-family:DM Sans,sans-serif;font-weight:400}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{min-width:320px;margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent}button{background:0 0}button:focus-visible,a:focus-visible,summary:focus-visible{outline-offset:6px;outline:2px solid #d5b2ff}::selection{color:#fff;background:#7340ad}h1,h2,h3,p{margin:0}button{border:0}svg{width:100%;display:block}a,button,summary{touch-action:manipulation}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.shell{width:min(1280px,100% - 112px);margin-inline:auto}.site{background:radial-gradient(at 85% 12%,#22163433,#0000 28%);overflow:clip}.mono,.eyebrow,.hero-footnote,.concept-label{font-family:Space Mono,monospace}.header{z-index:5;justify-content:space-between;align-items:center;gap:32px;height:112px;display:flex;position:relative}.brand{letter-spacing:-1.5px;font-size:30px;font-weight:700}.brand span,.links-page h1 span{color:#9d67f8}.nav{gap:36px;font-size:14px;display:flex}.nav a{color:#c5c1ce;transition:color .2s}.nav a:hover{color:#d0a4ff}.header-pill{color:#c9b3eb;border:1px solid #554662;border-radius:24px;align-items:center;gap:12px;padding:12px 18px;font:10px Space Mono,monospace;display:flex}.header-pill i,.project-status i{background:#a068ff;border-radius:50%;width:6px;height:6px;display:inline-block}.menu-toggle{display:none}.hero{grid-template-columns:1.08fr 1fr;align-items:center;min-height:620px;padding-bottom:35px;display:grid;position:relative}.hero-copy{z-index:2;transition:opacity .8s,transform .8s;position:relative}.eyebrow{letter-spacing:1.8px;color:#b799de;font-size:10px;line-height:1.8}.hero .eyebrow{letter-spacing:1.5px;margin-bottom:28px;font-size:10px}h1{letter-spacing:-3px;font-size:clamp(42px,4.7vw,70px);font-weight:650;line-height:1.06}h1 span{color:#cfa4f6}.hero-description{color:#b9b6c5;max-width:450px;margin-top:25px;font-size:15px;line-height:1.85}.hero-buttons{gap:13px;margin-top:29px;display:flex}.button{border-radius:6px;justify-content:center;align-items:center;gap:23px;min-height:48px;padding:15px 23px;font-size:13px;font-weight:500;transition:transform .2s,box-shadow .2s,border-color .2s;display:inline-flex}.primary{background:linear-gradient(120deg,#8951fb,#6a3bef);border:1px solid #a475ff66;box-shadow:0 5px 25px #703dff16}.primary:hover{transform:translateY(-2px);box-shadow:0 5px 30px #8951fb55}.secondary{background:#0c0b1299;border:1px solid #5a5269}.secondary:hover{border-color:#c2a0f7;transform:translateY(-2px)}.hero-footnote{letter-spacing:1.2px;color:#9e93ae;align-items:center;gap:10px;margin-top:39px;font-size:8px;display:flex}.tiny-star{color:#b291db;font-size:22px}.hero-art{min-width:0;height:500px;position:relative}.hero-grid{background-image:linear-gradient(#a47af00b 1px,#0000 1px),linear-gradient(90deg,#a47af00b 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:15px -15px;-webkit-mask-image:radial-gradient(#000,#0000 69%);mask-image:radial-gradient(#000,#0000 69%)}.scene-container{z-index:1;position:absolute;inset:0 -40px;transform:translate(0,0)}.ground-glow{filter:blur(13px);background:radial-gradient(#9f54f85c,#0000 68%);height:42px;position:absolute;bottom:22px;left:15%;right:15%}.art-coordinate{letter-spacing:1.7px;color:#a68cc5;font-size:8px;line-height:1.7;position:absolute;bottom:58px;right:0}.small-line{background:#ab7be7;width:22px;height:1px;margin-top:14px;display:block}.motion-toggle{z-index:2;color:#a59ab5;padding:10px;font-size:10px;position:absolute;bottom:0;right:0}.motion-toggle span{margin-left:9px}.section{padding-top:35px;padding-bottom:70px;scroll-margin-top:15px}.section-title{border-top:1px solid #39313f;justify-content:space-between;align-items:center;padding:23px 0 28px;display:flex}.section-title>div{align-items:center;gap:25px;display:flex}.section-title .mono{color:#a18bbd;font-size:11px}.section-title h2{letter-spacing:-.6px;font-size:25px;font-weight:550}.section-note{letter-spacing:1.5px;color:#a393b6;font-size:8px}.project-grid{grid-template-columns:1fr 1fr;gap:25px;display:grid}.project-card{background:linear-gradient(140deg,#14111d,#0e0e14);border:1px solid #3d344b;border-radius:10px;transition:transform .3s,border-color .3s,box-shadow .3s;position:relative;overflow:hidden}.project-card:hover{border-color:#8664ac;transform:translateY(-5px);box-shadow:0 20px 45px #0005}.project-top{z-index:2;color:#c7b4e0;justify-content:space-between;font-size:10px;display:flex;position:absolute;top:19px;left:23px;right:23px}.project-status{align-items:center;gap:7px;font-size:9px;display:flex}.in-progress{border:1px solid #705788;border-radius:5px;margin-top:-5px;padding:6px 10px}.project-art{background:radial-gradient(at 50% 80%,#45227455,#0000 65%);height:260px;position:relative;overflow:hidden}.art-grid{background-image:linear-gradient(#8c63c725 1px,#0000 1px),linear-gradient(90deg,#8c63c725 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:40% -35% -80%;transform:perspective(230px)rotateX(55deg);-webkit-mask-image:linear-gradient(#0000,#000);mask-image:linear-gradient(#0000,#000)}.car-art svg{filter:drop-shadow(0 0 7px #a25ef966);height:245px;position:absolute;inset:18px 0 0}.concept-label{letter-spacing:1.5px;color:#a18daf;font-size:7px;position:absolute;bottom:12px;right:15px}.project-copy{padding:22px 25px 0}.project-copy .eyebrow{font-size:8px}.project-copy h3{letter-spacing:-.6px;margin:8px 0 12px;font-size:24px;font-weight:550}.project-copy>p:not(.eyebrow){color:#b4afbf;max-width:450px;font-size:14px;line-height:1.8}.tags{flex-wrap:wrap;gap:8px;margin:21px 0;display:flex}.tags span{color:#c1b3d3;background:#20172c66;border:1px solid #3e334f;border-radius:4px;padding:5px 9px;font-size:10px}details{border-top:1px solid #332b3e}summary{cursor:pointer;color:#c8bed5;justify-content:space-between;align-items:center;padding:18px 0;font-size:11px;list-style:none;display:flex}summary::-webkit-details-marker{display:none}summary span{color:#b28be3;font-size:20px}details[open] summary span{transform:rotate(45deg)}details p{color:#c1b7ce;padding-bottom:14px;font-size:13px;line-height:1.8}details>.mono{color:#a98ebd;padding-bottom:22px;font-size:9px;display:block}.portal-composition{position:absolute;inset:0}.portal-frame{background:linear-gradient(145deg,#9c74d11b,#47287822);border:2px solid #d3b2ff;width:126px;height:150px;position:absolute;top:52px;left:43%;box-shadow:0 0 9px #ad7dff,inset 0 0 12px #ad7dff66}.art-sphere{background:radial-gradient(circle at 32% 25%,#e2caff,#5d427a 20%,#18131f 54%,#060608 70%);border-radius:50%;width:68px;height:68px;position:absolute;top:170px;left:48%;box-shadow:10px 20px 18px #0009}.art-small-sphere{background:radial-gradient(circle at 32% 22%,#f0e4ff,#71539a 20%,#18131f 55%,#07060a 70%);border-radius:50%;width:36px;height:36px;position:absolute;top:140px;left:66%}.art-cube{background:linear-gradient(110deg,#2e223e,#0a080f);border-top:1px solid #c8a1ff;border-left:1px solid #816399;width:68px;height:68px;position:absolute;top:139px;left:20%;transform:skewY(9deg);box-shadow:20px 15px 30px #0006}.experience{border-bottom:1px solid #28232f;grid-template-columns:1fr 2fr 50px;gap:35px;padding:30px 0 38px;display:grid}.experience-date{color:#bca8d2;font-size:11px;line-height:2}.experience-date>span:last-child{color:#a398ae;margin-left:17px;font-size:10px;display:block}.current-dot,.past-dot{background:#a577ec;border-radius:50%;width:6px;height:6px;margin-right:11px;display:inline-block}.past-dot{background:#655970}.experience h3{letter-spacing:-.3px;font-size:21px;font-weight:500}.company{color:#b48fdc;margin-top:8px;font-size:13px}.experience ul{color:#aaa4b5;margin:18px 0 0;padding-left:17px;font-size:13px;line-height:1.9}.experience li{margin:4px 0;padding-left:5px}.experience li::marker{color:#765891}.experience-number{color:#9989ac;text-align:right;font-size:11px}.about-grid{grid-template-columns:1.1fr 1fr;gap:95px;padding-top:10px;display:grid}.about-grid h3{letter-spacing:-1px;font-size:33px;font-weight:500;line-height:1.25}.about-grid h3 span{color:#c19be5}.about-grid p{color:#aaa4b5;margin-top:20px;font-size:14px;line-height:1.9}.education{border-top:1px solid #332a3e;gap:19px;margin-top:20px;padding:24px 0;display:flex}.education>span{color:#b48cdd;font-size:24px}.education strong{font-size:15px;font-weight:500}.education p{margin-top:6px;font-size:12px}.education .mono{color:#ad92c5;margin-top:10px;font-size:9px;display:block}.skills-panel{background:linear-gradient(130deg,#19122099,#111015);border:1px solid #3b2e49;border-radius:10px;padding:30px}.skills-panel h3{margin-top:12px;font-size:24px}.skills-panel>p:not(.eyebrow){margin-top:10px;font-size:12px}.skills{grid-template-columns:1fr 1fr;column-gap:24px;margin-top:25px;display:grid}.skills>div{border-bottom:1px solid #33293e;align-items:center;gap:12px;padding:17px 0;font-size:13px;display:flex}.skills .mono{color:#ac8dc1;font-size:8px}.skills>div>span:last-child{color:#a184b7;margin-left:auto}.contact{border-top:1px solid #39313f;padding-block:65px 75px;position:relative;overflow:hidden}.contact h2{letter-spacing:-2px;margin:20px 0;font-size:clamp(36px,4.4vw,60px);font-weight:550;line-height:1.1}.contact h2 span{color:#c89ef0}.contact>p:not(.eyebrow){color:#b6abbe;max-width:430px;margin-bottom:27px;font-size:14px;line-height:1.8}.contact .button{z-index:1;position:relative}.resume-link{color:#c4b6d4;margin-left:27px;font-size:12px}.resume-link span{margin-left:9px}.contact-orbit{pointer-events:none;border:1px solid #76529555;border-radius:50%;width:450px;height:225px;position:absolute;top:100px;right:-65px;transform:rotate(-35deg);box-shadow:0 0 80px #8040c611}.contact-orbit:after{content:"";background:radial-gradient(circle at 25% 25%,#dec2ff,#4d2d72 40%,#0b0811 75%);border-radius:50%;width:21px;height:21px;position:absolute;top:20px;left:61px;box-shadow:0 0 18px #a86fe833}.footer{border-top:1px solid #342a40;align-items:center;gap:30px;padding-block:28px;display:flex}.footer>span{color:#aa9bb6;margin-right:auto;font-size:10px}.footer>a:not(.brand){color:#b6a9c4;font-size:11px}.footer .brand{font-size:23px}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(18px)}.reveal.visible{opacity:1;transform:none}.intro-controls{z-index:21;color:#c8b1e7;justify-content:space-between;align-items:center;font-size:10px;display:flex;position:fixed;inset:auto 35px 30px}.intro-controls button{background:#14101d;border:1px solid #766184;border-radius:5px;padding:12px 20px}.intro-active .hero-copy,.intro-active .header{animation:2.8s both reveal-intro}.intro-active .scene-container{z-index:20;animation:2.8s cubic-bezier(.45,0,.55,1) both scene-arrival}.intro-active:before{content:"";z-index:10;pointer-events:none;background:#0b0b10;animation:2.8s both curtain;position:fixed;inset:0}@keyframes reveal-intro{0%,40%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}@keyframes scene-arrival{0%{transform:translate(-44%)scale(1.35)}to{transform:translate(0,0)scale(1)}}@keyframes curtain{0%,30%{opacity:1}85%,to{opacity:0}}.fallback-monogram{place-items:center;height:100%;display:grid;position:relative}.fallback-monogram span{letter-spacing:-24px;color:#30253f;-webkit-text-stroke:1px #c39ef5;text-shadow:3px 3px #9d7eba,8px 8px #17101f,0 0 25px #9a4dff66;font-size:180px;font-weight:700;transform:rotate(-9deg)}.fallback-monogram i{border:1px solid #af7cec;border-radius:50%;width:88%;height:35%;position:absolute;transform:rotate(-25deg)}.skip-content{z-index:30;background:#814de0;padding:15px;position:fixed;top:-80px;left:20px}.skip-content:focus{top:15px}.links-page{text-align:center;background:radial-gradient(at 50% 35%,#602c9f20,#0000 60%);max-width:500px;min-height:100svh;margin:auto;padding:35px 25px 45px}.links-page>.brand{text-align:left;display:block}.links-avatar{color:#d5b5f8;background:linear-gradient(135deg,#342044,#100c18);border:1px solid #8f64be;border-radius:25px;place-items:center;width:95px;height:95px;margin:45px auto 30px;font-size:38px;font-weight:600;display:grid;transform:rotate(-5deg);box-shadow:0 0 60px #9754db22}.links-page h1{letter-spacing:-1.5px;margin:13px 0 16px;font-size:42px}.links-page>p:not(.eyebrow){color:#b3a5c2;font-size:14px;line-height:1.8}.links-list{gap:13px;margin:35px 0 40px;display:grid}.links-list a{background:#21162966;border:1px solid #614578;border-radius:8px;justify-content:space-between;padding:20px 23px;font-size:14px;transition:background .2s,transform .2s;display:flex}.links-list a:first-child{background:#7843e5;border-color:#a173f6}.links-list a:hover{background:#503371;transform:translateY(-2px)}.links-signoff{letter-spacing:3px;color:#ac8fc3;font-size:8px}@media (width>=1500px){.hero{min-height:700px}.hero-art{height:560px}}@media (width<=1000px){.shell{width:calc(100% - 64px)}.header-pill{display:none}.hero{grid-template-columns:1.15fr 1fr;min-height:590px}h1{letter-spacing:-2px;font-size:49px}.hero-art{height:430px}.hero-description{font-size:14px}.hero .eyebrow{font-size:8px}.hero-buttons{gap:10px}.button{gap:13px;padding:14px 17px}.about-grid{gap:40px}.project-art{height:225px}.car-art svg{height:215px}.portal-frame{height:130px;top:40px}.art-sphere{top:150px}.art-cube{top:120px}}@media (width<=700px){.shell{width:calc(100% - 40px)}.header{height:86px}.brand{font-size:28px}.menu-toggle{padding:12px 0 12px 15px;font-size:12px;display:block}.nav{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#13101bee;border:1px solid #4c3b60;border-radius:8px;flex-direction:column;gap:0;padding:12px 20px;display:none;position:absolute;top:73px;left:0;right:0}.nav.open{display:flex}.nav a{padding:14px 0}.hero{flex-direction:column;align-items:stretch;padding-top:25px;padding-bottom:20px;display:flex}.hero .eyebrow{letter-spacing:1px;margin-bottom:23px;font-size:8px}h1{letter-spacing:-1.8px;font-size:clamp(40px,9.5vw,64px)}.hero-description{max-width:440px;margin-top:22px;font-size:14px}.hero-buttons{margin-top:24px}.hero-buttons .button{flex:1;gap:12px;font-size:12px}.hero-footnote{letter-spacing:.8px;margin-top:24px;font-size:7px}.hero-art{height:340px;margin-top:4px}.scene-container{inset:0 -5px}.ground-glow{bottom:10px}.art-coordinate{font-size:7px;bottom:45px}.motion-toggle{font-size:9px;bottom:0}.section{padding-top:15px;padding-bottom:44px}.section-title{padding:23px 0}.section-title>div{gap:16px}.section-title h2{font-size:23px}.section-note{display:none}.project-grid{grid-template-columns:1fr;gap:22px}.project-art,.car-art svg{height:235px}.project-copy{padding:20px 21px 0}.project-copy h3{font-size:24px}.project-copy>p:not(.eyebrow){font-size:13px}.portal-frame{width:113px;height:135px;top:40px;left:43%}.art-sphere{top:163px}.experience{grid-template-columns:1fr;gap:15px;padding:23px 0 30px}.experience-date{font-size:10px}.experience-date>span:last-child{margin-left:15px;font-size:9px;display:inline}.experience-number{display:none}.experience h3{font-size:20px;line-height:1.4}.experience ul{margin-top:15px;font-size:13px}.about-grid{grid-template-columns:1fr;gap:22px}.about-grid h3{font-size:29px}.about-grid p{font-size:13px}.skills-panel{padding:25px}.skills-panel h3{font-size:24px}.contact{padding-block:40px 50px}.contact h2{letter-spacing:-1.5px;font-size:40px}.contact>p:not(.eyebrow){z-index:1;max-width:310px;font-size:13px;position:relative}.contact-orbit{top:40px;right:-300px}.footer{flex-wrap:wrap;gap:20px;padding-block:25px}.footer>span{font-size:9px}.footer>a:not(.brand){font-size:10px}.footer>a:last-child{margin-left:auto}.intro-controls{inset:auto 20px 20px}.intro-controls>.mono{max-width:140px;font-size:8px}.intro-active .scene-container{animation-name:mobile-arrival}@keyframes mobile-arrival{0%{transform:translateY(-240px)scale(1.15)}to{transform:translate(0,0)scale(1)}}.fallback-monogram span{font-size:150px}}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}.intro-active .scene-container{will-change:transform}.intro-waiting .scene-container,.intro-waiting .hero-copy,.intro-waiting .header,.intro-waiting:before{animation-play-state:paused}.project-card summary:after{content:"";cursor:pointer;border-radius:10px;position:absolute;inset:0}.project-card:has(summary:focus-visible){outline-offset:5px;border-color:#b890ed;outline:2px solid #d5b2ff}.project-card summary:focus-visible{outline:none}.project-card details[open]>p,.project-card details[open]>.mono,.project-card details>a{z-index:3;position:relative}.project-card details>a{border:1px solid #705788;border-radius:6px;gap:12px;margin-bottom:22px;padding:12px 16px;font-size:12px;display:inline-flex}.project-card:has(details[open]){background:linear-gradient(140deg,#1c1528,#100e17);border-color:#795798}.project-copy{flex-direction:column;flex:1;display:flex}.project-card{flex-direction:column;display:flex}.project-art{flex-shrink:0}.project-copy details{margin-top:auto}.project-card summary{min-height:58px;font-size:12px}.project-card:hover summary{color:#d9b5ff}.nav a{padding:12px 0;position:relative}.nav a:after{content:"";transform-origin:0;background:#b58ae9;height:1px;transition:transform .2s;position:absolute;bottom:5px;left:0;right:0;transform:scaleX(0)}.nav a:hover:after,.nav a:focus-visible:after{transform:scaleX(1)}.header-pill:hover{background:#24182e;border-color:#b58ae9}.contact-email{z-index:1;color:#d3b6ed;overflow-wrap:anywhere;border-bottom:1px solid #574068;align-items:center;gap:18px;margin:0 0 26px;padding:7px 0;font-size:clamp(15px,2vw,22px);display:inline-flex;position:relative}.contact-email:hover{color:#f0ddff;border-color:#c29ae8}.contact-actions{z-index:1;align-items:center;gap:14px;display:flex;position:relative}.resume-link,.resume-link span{margin-left:0}.skills>div{color:#c8bfd1}.footer a:hover{color:#d8b5fc}.links-list a{min-height:62px}.button:active,.links-list a:active{transform:translateY(1px)}@media (width<=700px){.hero-buttons{gap:12px}.button{min-height:50px}.project-copy{padding-inline:22px}.contact-actions{flex-wrap:wrap}.contact-email{gap:12px;font-size:17px}.footer>a:not(.brand){padding-block:10px}.motion-toggle{min-height:44px}.section-title h2{font-size:22px}}
