@font-face{font-family:Russo One;src:url(../fonts/RussoOne-Regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Bebas Neue;src:url(../fonts/BebasNeue-Regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:DM Sans;src:url(../fonts/DM-Sans.ttf)format("truetype");font-weight:100 1000;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#f5f2ff;--lilac:#ceb7ff;--cyan:#7cdbe9;background:#090910;font-family:DM Sans,system-ui,sans-serif;line-height:1.45}*{box-sizing:border-box}body{margin:0}a{color:inherit}button,summary{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button,a,summary{-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--cyan);outline-offset:7px;border-radius:4px}main:focus{outline:none}.skip-link{z-index:100;color:#101323;background:var(--cyan);padding:12px 18px;position:fixed;top:12px;left:16px;transform:translateY(-180%)}.skip-link:focus{transform:none}.stage{isolation:isolate;height:100svh;min-height:720px;position:relative;overflow:clip}.art-layer,.scene-host{pointer-events:none;position:absolute;inset:0}.background-layer{z-index:-4}.background-layer img{object-fit:cover;width:100%;height:100%;display:block}.scene-host{z-index:-2}.scene-host canvas{width:100%;height:100%;display:block}.earth-layer{z-index:-1;pointer-events:none;width:100%;position:absolute;top:32.6%;left:0}.earth-layer img{width:100%;height:auto;display:block}.landing .earth-layer img{transform-origin:50% 100%;animation:16s ease-in-out infinite earth-drift}@keyframes earth-drift{0%,to{transform:rotate(-.3deg)}50%{transform:rotate(.3deg)scale(1.006)}}.headline-frame{text-align:center;width:min(78%,1450px);position:absolute;top:12.9%;left:50%;transform:translate(-50%)}.outline-type{color:#24133d;-webkit-text-stroke:1.5px var(--lilac);text-shadow:0 0 5px #b377ff,0 0 11px #b377ff88;font-family:Russo One,sans-serif;font-weight:400}h1{white-space:nowrap;letter-spacing:-.025em;margin:14px -3% 18px;font-size:clamp(30px,2.87vw,56px);line-height:1.1}.heading-rule{border:1.5px solid var(--lilac);width:68%;height:17px;margin:auto;display:block;box-shadow:0 0 4px #b377ff,inset 0 0 4px #b377ff}.identity{white-space:nowrap;margin:0;font-size:clamp(36px,3.35vw,64px);position:absolute;top:32.7%;left:50%;transform:translate(-50%)}.astronaut-position{pointer-events:none;width:5.9%;position:absolute;top:49.8%;left:50%;transform:translate(-50%)}.astronaut{width:100%;height:auto;animation:5s ease-in-out infinite float;display:block}@keyframes float{0%,to{transform:translateY(0)rotate(-1deg)}50%{transform:translateY(-7px)rotate(1deg)}}.contact-link{z-index:30;padding:8px 0;font:clamp(28px,2.37vw,42px)/1.15 Bebas Neue,sans-serif;text-decoration:none;position:fixed;top:4.8%;right:3.5%}.contact-link:hover{color:var(--cyan)}.social-links{z-index:30;flex-direction:column;gap:clamp(20px,4.2vh,48px);display:flex;position:fixed;top:35.2%;left:3.9%}.social-links a{color:var(--lilac);place-items:center;width:clamp(38px,2.7vw,48px);height:clamp(38px,2.7vw,48px);transition:transform .2s,color .2s;display:grid}.social-links a:hover{color:var(--cyan);transform:translateY(-3px)}svg{display:block}.social-links svg{fill:currentColor;width:100%;height:100%}.stroke-icon{stroke:currentColor;stroke-width:1.7px;fill:none!important}.intro-disclosure{z-index:4;width:48.15%;position:absolute;top:70%;left:50%;transform:translate(-50%)}.intro-disclosure summary{text-align:center;border:none;place-content:center;width:254px;height:178px;margin:22px auto 0;list-style:none;display:grid;position:relative}.intro-disclosure summary::-webkit-details-marker{display:none}.intro-disclosure:not([open]) summary:before,.intro-disclosure:not([open]) summary:after{content:"";filter:drop-shadow(0 0 3px #b377ff);border:3px solid #eee8ff;width:60px;height:50px;position:absolute}.intro-disclosure:not([open]) summary:before{border-bottom:none;border-right:none;top:0;left:0}.intro-disclosure:not([open]) summary:after{border-top:none;border-left:none;bottom:0;right:0}.closed-label{-webkit-text-stroke:1.3px #f9f5ff;font-size:clamp(27px,2.1vw,38px);line-height:1.25}.intro-disclosure:not([open]) summary:hover .closed-label{text-shadow:0 0 8px #b377ff,0 0 22px #ceb7ff}.open-label{display:none}.intro-disclosure[open] summary{z-index:2;width:auto;min-width:55px;height:32px;margin:0;padding:4px 8px;position:absolute;top:5px;right:12px}.intro-disclosure[open] .closed-label{display:none}.intro-disclosure[open] .open-label{color:var(--lilac);align-items:center;gap:7px;font-size:11px;display:flex}.open-label span{font-size:24px;line-height:1}.summary-panel{text-align:center;transform-origin:50%;background:#101323;border:1px solid #32324b;border-radius:22px;padding:30px 42px 25px;box-shadow:0 15px 35px #0005}.summary-panel h2{color:var(--lilac);margin:0 25px 18px;font:clamp(25px,1.85vw,34px)/1.15 Bebas Neue,sans-serif}.summary-panel p{max-width:690px;margin:0 auto 20px;font-size:clamp(17px,1.28vw,24px);line-height:1.4}.continue-link{min-height:44px;color:var(--cyan);text-transform:uppercase;align-items:center;gap:12px;font-size:clamp(15px,1.16vw,22px);font-weight:600;text-decoration:none;display:inline-flex}.continue-link span{font-size:26px;transition:transform .2s}.continue-link:hover span{transform:translateY(4px)}.keyboard-hint,.scroll-cue{color:var(--lilac);justify-items:center;gap:12px;font:clamp(26px,2.2vw,40px)/1 Bebas Neue,sans-serif;text-decoration:none;display:grid;position:absolute;bottom:4.5%}.keyboard-hint{left:3.6%}.scroll-cue{right:3.7%}.keyboard-hint svg,.scroll-cue svg{fill:none;stroke:currentColor;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;width:clamp(48px,4.4vw,76px);height:76px}.motion-toggle{z-index:40;letter-spacing:.03em;color:#e2d6ff;background:#101323e8;border:1px solid #ceb7ff66;border-radius:20px;padding:8px 10px;font-size:11px;position:fixed;bottom:10px;left:16px}.motion-toggle:disabled{opacity:.75;cursor:default}.skills{min-height:900px}.skills-heading{width:310px;top:12.5%}.skills-heading .heading-rule,.experience-heading .heading-rule,.contact-heading .heading-rule{width:100%}.headline-frame h2{margin:14px -15px 18px;font-size:clamp(36px,3.35vw,60px);line-height:1.1}.skills-panel{background:#101323;border:1px solid #46445f;border-radius:28px;width:59.5%;max-width:1200px;padding:clamp(28px,2.6vw,50px) clamp(28px,2.6vw,50px) clamp(40px,5.2vw,90px);position:absolute;top:31.5%;left:50%;transform:translate(-50%);box-shadow:0 16px 36px #0003}.eyebrow{color:var(--cyan);margin:-11px 0 14px;font-size:clamp(13px,1.04vw,20px);font-weight:600}.skills-panel h3{border-bottom:1px solid #46445f;margin:0 0 36px;padding-bottom:28px;font-size:clamp(24px,2.08vw,40px);font-weight:600;line-height:1.2}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px;display:grid}.skills-grid article{background:#191e34;border:1px solid #373d56;border-radius:16px;padding:24px 22px 28px}.skills-grid h4{color:var(--lilac);margin:0 0 30px;padding-left:19px;font:clamp(22px,1.79vw,34px)/1.1 Bebas Neue,sans-serif;position:relative}.skills-grid h4:before{content:"";background:var(--cyan);border-radius:3px;width:5px;position:absolute;top:0;bottom:0;left:0}.skills-grid p{margin:0;font-size:clamp(15px,1.21vw,23px);line-height:1.65}.section-next,.back-link{color:var(--lilac);padding:10px;font-size:14px;text-decoration:none;position:absolute;bottom:20px;right:3.5%}.experience{height:auto;min-height:100svh;padding:325px 0 90px}.experience-heading{width:min(48%,760px);top:11.5%}.experience-heading h2{white-space:nowrap;font-size:clamp(32px,3.1vw,54px)}.experience-panel{background:#101323;border:1px solid #46445f;border-radius:28px;width:69.5%;max-width:1300px;margin:auto;padding:38px 42px;position:relative}.experience-list{margin:22px 0 0;padding:0;list-style:none}.experience-list li{border-top:1px solid #34364d;grid-template-columns:32% 1fr;gap:35px;padding:24px 0;display:grid}.experience-list li:first-child{border-top:0;padding-top:10px}.job-company h3{margin:0 0 10px;font:clamp(25px,1.8vw,32px)/1.15 Bebas Neue,sans-serif}.job-company p{color:#b9b8ce;margin:0;font-size:15px}.job-detail h4{color:var(--lilac);margin:0 0 6px;font-size:clamp(18px,1.28vw,23px);font-weight:600}.job-detail p{color:#d0cede;margin:10px 0 0;font-size:clamp(16px,1.12vw,20px);line-height:1.5}.job-detail .job-location{color:#b9b8ce;margin:0;font-size:14px}.contact-heading{width:min(23%,440px)}.contact-content{text-align:center;width:min(88%,1050px);position:absolute;top:54.7%;left:50%;transform:translate(-50%)}.contact-prompt{margin:0 0 12px;font-size:clamp(28px,2.25vw,42px);font-weight:500}.contact-subtitle{color:var(--lilac);margin:0 0 52px;font-size:clamp(20px,1.45vw,28px)}.contact-buttons{justify-content:center;gap:30px;display:flex}.contact-button{background:#131c33;border:1px solid #8477a8;border-radius:24px;justify-content:center;align-items:center;gap:24px;width:280px;min-width:0;min-height:92px;padding:20px 30px;font-size:28px;font-weight:600;text-decoration:none;transition:transform .2s,border-color .2s;display:flex}.contact-button svg{fill:currentColor;flex-shrink:0;width:36px;height:36px}.contact-button:hover{border-color:var(--cyan);transform:translateY(-5px)}.email-address{color:#b9b8ce;margin-top:36px;font-size:22px;text-decoration:none;display:inline-block}.contact .back-link{white-space:nowrap;font-size:18px;bottom:4.5%;left:50%;right:auto;transform:translate(-50%)}@media (min-width:761px) and (max-height:850px){.intro-disclosure{width:55%;top:66%}.summary-panel{padding-block:28px 18px}.summary-panel h2{margin-bottom:12px}.summary-panel p{margin-bottom:10px}.experience{padding-top:280px}}@media (max-width:1100px) and (min-width:761px){h1{font-size:2.8vw}.intro-disclosure{width:67%}.skills-panel{width:74%}.skills-grid{gap:20px}.skills-grid article{padding:22px 16px}.experience-panel{width:78%}.experience-heading{width:60%}.contact-button{gap:16px;padding:20px;font-size:23px}.contact-heading{width:30%}}@media (max-width:760px){.stage{height:100svh;min-height:900px}.contact-link{font-size:28px;position:absolute;top:22px;right:24px}.social-links{flex-direction:row;gap:24px;position:absolute;top:82px;left:50%;transform:translate(-50%)}.social-links a{width:34px;height:34px}.headline-frame{width:91%;top:17.3%}h1{white-space:normal;margin:10px -1% 12px;font-size:clamp(26px,6.8vw,42px);line-height:1.2}.heading-rule{width:90%;height:10px}.identity{font-size:36px;top:33%}.astronaut-position{width:90px;top:42%}.earth-layer{width:900px;top:39%;left:calc(50% - 450px)}.intro-disclosure{width:calc(100% - 32px);top:62%}.intro-disclosure summary{width:234px;height:155px;margin-top:8px}.intro-disclosure[open]{top:59%}.summary-panel{border-radius:20px;padding:43px 20px 20px}.summary-panel h2{margin:0 0 16px;font-size:26px}.summary-panel p{margin-bottom:12px;font-size:17px;line-height:1.5}.continue-link{font-size:15px}.keyboard-hint{display:none}.scroll-cue{gap:4px;font-size:24px;bottom:24px;right:23px}.scroll-cue svg{width:32px;height:44px}.landing:has(.intro-disclosure[open]) .scroll-cue{display:none}.skills{height:auto;min-height:1160px;padding:190px 16px 90px}.skills-heading{width:225px;top:55px}.skills-heading h2{font-size:40px}.skills-heading .heading-rule{height:11px}.skills-panel{border-radius:22px;width:100%;padding:30px 22px;position:relative;top:auto;left:auto;transform:none}.eyebrow{margin:0 0 14px;font-size:12px}.skills-panel h3{margin-bottom:24px;padding-bottom:24px;font-size:27px}.skills-grid{grid-template-columns:1fr;gap:18px}.skills-grid article{padding:22px 17px}.skills-grid h4{margin-bottom:20px;font-size:25px}.skills-grid p{font-size:16px}.skills .earth-layer,.experience .earth-layer{top:auto;bottom:-50px}.experience{height:auto;min-height:100svh;padding:185px 16px 90px}.experience-heading{width:86%;top:55px}.experience-heading h2{white-space:normal;font-size:clamp(23px,6.1vw,40px)}.experience-panel{border-radius:22px;width:100%;padding:28px 24px}.experience-list li{grid-template-columns:1fr;gap:16px;padding:25px 0}.job-company h3{font-size:29px}.job-detail h4{font-size:19px}.job-detail p{font-size:16px}.contact{min-height:900px}.contact-heading{width:260px;top:55px}.contact-heading h2{font-size:40px}.contact-content{width:calc(100% - 40px);top:40%}.contact-prompt{font-size:27px}.contact-subtitle{margin-bottom:28px;font-size:19px}.contact-buttons{flex-direction:column;align-items:center;gap:14px}.contact-button{border-radius:20px;width:100%;max-width:330px;min-height:70px;padding:16px 24px;font-size:23px}.contact-button svg{width:30px;height:30px}.email-address{margin-top:24px;font-size:18px}.contact .back-link{font-size:15px;bottom:35px}.section-next{bottom:18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}:root[data-motion=paused] *,:root[data-motion=paused] :before,:root[data-motion=paused] :after{transition:none!important;animation:none!important}html{scroll-behavior:smooth}.stage[data-visible=false] .earth-layer img,.stage[data-visible=false] .astronaut,:root[data-document-hidden] .astronaut,:root[data-document-hidden] .earth-layer img{animation-play-state:paused}:root[data-motion=paused]{scroll-behavior:auto}@media (max-width:760px){.landing{min-height:1000px}}@media (max-width:360px){.landing{min-height:1120px}.intro-disclosure[open]{top:56%}}.earth-layer,.earth-glow{top:auto;bottom:0}.earth-glow{z-index:-2;pointer-events:none;mix-blend-mode:lighten;width:100%;position:absolute;left:0}.earth-glow img{width:100%;height:auto;display:block}.earth-layer img{clip-path:ellipse(37.56% 75.3% at 50% 121.6%)}.landing .earth-glow img{transform-origin:50% 100%;animation:16s ease-in-out infinite earth-drift}.stage[data-visible=false] .earth-glow img,:root[data-document-hidden] .earth-glow img{animation-play-state:paused}.skip-link{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden}.skip-link:focus-visible{clip-path:none;width:auto;height:auto;overflow:visible;transform:none}:root[data-active-section=experience] .social-links,:root[data-active-section=contact] .social-links,:root[data-active-section=contact] .contact-link{visibility:hidden}@media (max-width:760px){.earth-layer,.earth-glow{width:900px;top:32.5%;bottom:auto;left:calc(50% - 450px)}.skills .earth-layer,.skills .earth-glow,.experience .earth-layer,.experience .earth-glow{top:auto;bottom:-50px}.motion-toggle{max-width:160px;font-size:10px;top:24px;bottom:auto;left:16px}}@media (min-width:761px){.experience{padding-top:326px;padding-bottom:60px}.experience-panel{padding:30px 42px}.experience-list li{padding:20px 0}.experience-heading{top:11.5%}}@media (max-width:760px){.social-links a{width:44px;height:44px}.social-links svg{width:34px;height:34px}.social-links{gap:14px}}.resume-callout{background:#101323;border:1px solid #46445f;border-radius:24px;justify-content:space-between;align-items:center;gap:24px;width:69.5%;max-width:1300px;margin:28px auto 0;padding:28px 36px;display:flex}.resume-callout h3{color:var(--lilac);margin:0 0 8px;font:32px/1.1 Bebas Neue,sans-serif}.resume-callout p{color:#d0cede;margin:0}.resume-download{color:#f5f2ff;white-space:nowrap;background:#191e34;border:1px solid #8477a8;border-radius:14px;align-items:center;gap:18px;min-height:54px;padding:14px 22px;font-weight:600;text-decoration:none;display:inline-flex}.resume-download span{color:var(--cyan);font-size:13px}.resume-download:hover{border-color:var(--cyan)}@media (max-width:760px){.resume-callout{flex-direction:column;align-items:flex-start;width:100%;padding:26px 24px}.resume-download{justify-content:space-between;width:100%;font-size:16px}}.contact:has([data-artwork-state=ready][data-rendering=active])>.background-layer{opacity:0}
