html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}:root{--white:#fff;color:var(--white);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#07090c;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.5}*{box-sizing:border-box}html{height:100%}body{min-width:320px;height:100%;margin:0;overflow:hidden}#root{height:100%}button,input,textarea,select{font:inherit}img,svg{display:block}a{text-underline-offset:3px}:focus-visible{outline-offset:3px;outline:3px solid #d8d7cf6b}.portfolio-app{--blue:#87a9c2;--ink:#080a0e;--ivory:#d8d7cf;--rust:#c95f4b;--teal:#6f9f96;background-color:var(--ink);color:#f5f5f1;background-image:url(/media/gargantua-poster.webp);background-position:50%;background-size:cover;min-height:100svh;position:fixed;inset:0;overflow:hidden}.background-media{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.background-video{object-fit:cover;object-position:center;opacity:0;width:100%;height:100%;transition:opacity .9s;position:absolute;inset:0}.background-media.is-playing .background-video{opacity:1}.portfolio-app:before{content:"";pointer-events:none;z-index:1;background:#03070c61;position:fixed;inset:0}.window-frame{z-index:2;border-radius:clamp(24px,3.8vw,38px);position:absolute;inset:clamp(24px,7.5vh,56px) clamp(18px,5.6vw,56px) clamp(24px,9.2vh,69px);overflow:hidden}.site-shell{opacity:0;overscroll-behavior:none;scroll-behavior:auto;scrollbar-width:none;visibility:hidden;width:100%;height:100%;scroll-padding-top:0;transition:opacity .88s,transform .88s;position:relative;overflow:hidden auto;transform:translateY(10px);container:portfolio-scroll/size}.site-content{width:100%;min-height:100%}.site-shell::-webkit-scrollbar{width:0;height:0;display:none}.portfolio-app.is-ready .site-shell{opacity:1;visibility:visible;transform:translateY(0)}.section-width{width:min(1120px,100% - 80px);margin-left:auto;margin-right:auto}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.loader-frame{pointer-events:none;z-index:40;position:absolute;inset:0}.loader-frame svg{width:100%;height:100%;overflow:visible}.loader-progress{fill:none;stroke:#d8d7cfe6;stroke-dasharray:100 100;stroke-dashoffset:100px;stroke-linecap:round;stroke-linejoin:round;stroke-width:3.8px;vector-effect:non-scaling-stroke;animation:1.5s cubic-bezier(.65,0,.35,1) forwards draw-frame}@keyframes draw-frame{to{stroke-dashoffset:0}}.brand-logo{opacity:0;pointer-events:none;visibility:hidden;z-index:30;justify-content:center;align-items:center;width:88px;height:68px;transition:opacity .6s .18s,transform .6s .18s;display:inline-flex;position:absolute;top:20px;left:clamp(30px,4vw,48px);transform:translateY(-8px)}.portfolio-app.is-ready .brand-logo{opacity:.9;pointer-events:auto;visibility:visible;transform:translateY(0)}.portfolio-app.is-ready .brand-logo.is-hidden{opacity:0;pointer-events:none;visibility:hidden;transition:opacity .36s,transform .36s,visibility 0s linear .36s;transform:translateY(-10px)}.brand-logo img{filter:drop-shadow(0 4px 18px #d8d7cf26);object-fit:contain;width:100%;height:100%}.brand-logo:hover,.brand-logo:focus-visible{opacity:1}.section-kicker{color:#f5f5f194;letter-spacing:0;text-transform:uppercase;margin:0 0 18px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem}.hero-scroll-stage{height:145%;position:relative}.hero-section{transform-origin:top;flex-direction:column;justify-content:center;align-items:flex-start;height:100%;padding:116px 0 72px;display:flex;position:sticky;top:0}@supports (height:100cqh){.hero-scroll-stage{height:145cqh}.hero-section{height:100cqh}}.hero-section h1{color:#f7f7f3;letter-spacing:0;margin:0 0 34px;font-size:6.8rem;font-weight:300;line-height:.88}.role-animation{width:100%;min-height:4.3rem}.role-animated-word{flex-wrap:wrap;align-items:center;min-height:1.2em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:3.35rem;font-weight:600;line-height:1;display:flex}.role-token{margin-right:.48em;display:inline-flex}.role-token:last-child{margin-right:0}.role-letter{width:.68em;height:1em;display:inline-block;position:relative}.role-letter-slice{position:absolute;inset:0}.role-letter-top{clip-path:inset(0 0 49%);color:#f7f7f3}.role-letter-bottom{clip-path:inset(50% 0 0);color:#d8d7cfe6}.role-letter-accent{background:var(--rust);transform-origin:0;width:52%;height:3px;position:absolute;top:49%;left:8%}.role-letter:nth-child(3n) .role-letter-accent{background:var(--blue);width:38%;left:auto;right:5%}.role-static{color:var(--ivory);margin:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.1rem}.hero-introduction{color:#f5f5f1b8;max-width:590px;margin:30px 0 0;font-size:1rem;line-height:1.65}.hero-actions{gap:28px;margin-top:28px;display:flex}.hero-actions a{color:#f7f7f3;border-bottom:1px solid #d8d7cf8c;padding:8px 0;font-size:.82rem;text-decoration:none;transition:border-color .18s,color .18s}.hero-actions a:hover,.hero-actions a:focus-visible{border-color:var(--rust);color:var(--ivory)}.resume-section{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#070a0fdb;position:relative;overflow:clip}.resume-overview{grid-template-columns:.9fr 1.1fr;align-content:center;gap:48px 70px;min-height:100%;padding:100px 0 82px;display:grid}@supports (min-height:100cqh){.resume-overview{min-height:100cqh}}.resume-overview h2,.projects-heading h2,.contact-copy h2{letter-spacing:0;margin:0;font-size:4.5rem;font-weight:300;line-height:.94}.resume-lead{color:#f5f5f1d1;max-width:610px;margin:0;font-size:1.45rem;line-height:1.48}.resume-facts{border-top:1px solid #d8d7cf33;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:14px 0 0;padding-top:24px;display:grid}.resume-facts div{gap:5px;display:grid}.resume-facts dt{color:#f5f5f16b;text-transform:uppercase;font-size:.68rem}.resume-facts dd{margin:0;font-size:.88rem}.resume-detail-band{background:var(--ivory);color:#111318;padding:86px 0 74px}.resume-detail-band h3,.resume-credentials h3{letter-spacing:0;text-transform:uppercase;margin:0 0 32px;font-size:.82rem;font-weight:700}.experience-row{border-top:1px solid #11131838;grid-template-columns:minmax(210px,.72fr) 1.28fr;gap:44px;padding:34px 0 40px;display:grid}.experience-row:last-child{border-bottom:1px solid #11131838}.experience-heading{align-content:start;gap:6px;display:grid}.experience-heading p,.experience-heading span{color:#1113189e;margin:0;font-size:.72rem}.experience-heading h4{letter-spacing:0;margin:5px 0;font-size:1.8rem;font-weight:500}.experience-row ul{gap:16px;margin:0;padding:0;list-style:none;display:grid}.experience-row li{padding-left:22px;font-size:.96rem;line-height:1.55;position:relative}.experience-row li:before{background:var(--rust);content:"";width:6px;height:6px;position:absolute;top:.62em;left:0}.resume-credentials{grid-template-columns:repeat(2,minmax(0,1fr));gap:92px;padding:102px 0 110px;display:grid}.education-list,.skill-groups{display:grid}.education-list article,.skill-groups>div{border-top:1px solid #d8d7cf33;padding:22px 0 25px}.education-list span,.skill-groups h4{color:#f5f5f17a;text-transform:uppercase;margin:0 0 8px;font-size:.69rem;font-weight:500}.education-list h4{margin:0 0 5px;font-size:1rem;font-weight:600}.education-list p,.skill-groups p{color:#f5f5f1ab;margin:0;font-size:.82rem;line-height:1.55}.certification-list{flex-wrap:wrap;gap:8px 18px;margin:25px 0 0;padding:0;list-style:none;display:flex}.certification-list li{color:var(--blue);font-size:.72rem}.resume-ticker-stage{background:#090c11;height:500px;position:relative;overflow:hidden}.resume-ticker-sticky{align-content:center;gap:10px;height:100%;padding:56px 0;display:grid;position:relative;overflow:hidden}@supports (height:100cqh){.resume-ticker-stage{height:clamp(400px,76cqh,620px)}.resume-ticker-sticky{height:100%}}.resume-ticker-line{letter-spacing:0;white-space:nowrap;will-change:transform;width:max-content;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:5.25rem;font-weight:700;line-height:.95}.resume-ticker-line.is-ivory{color:var(--ivory)}.resume-ticker-line.is-rust{color:var(--rust)}.resume-ticker-line.is-blue{color:var(--blue)}.projects-scroll-stage{background:#0a0d12;height:320%;position:relative}.projects-sticky{height:100%;position:sticky;top:0;overflow:hidden}@supports (height:100cqh){.projects-scroll-stage{height:320cqh}.projects-sticky{height:100cqh}}.projects-heading{z-index:3;position:absolute;top:106px;left:0;right:0}.projects-heading h2{font-size:3.9rem}.projects-track{will-change:transform;width:400%;height:100%;display:flex}.project-panel{border-right:1px solid #d8d7cf24;flex:0 0 25%;align-items:flex-end;min-width:0;padding:170px 48px 72px;display:flex}.project-panel-1{background:#c95f4b14}.project-panel-2{background:#6f9f9617}.project-panel-3{background:#87a9c217}.project-panel-4{background:#d8d7cf12}.project-panel-content{gap:28px;width:100%;display:grid}.project-number{color:#f5f5f1e0;font-size:8rem;font-weight:300;line-height:.8}.project-empty-mark{gap:12px;width:min(360px,72%);display:grid}.project-empty-mark span{background:#d8d7cf4d;height:1px;display:block}.project-empty-mark span:last-child{width:64%}.project-panel p{color:#f5f5f180;text-transform:uppercase;margin:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem}.contact-section{background:#080b10ed;flex-direction:column;justify-content:space-between;min-height:100%;padding:76px 0 34px;display:flex}@supports (min-height:100cqh){.contact-section{min-height:100cqh}}.contact-layout{grid-template-columns:.9fr 1.1fr;align-items:center;gap:90px;display:grid}.contact-copy h2{margin-bottom:28px}.contact-copy>p:not(.section-kicker){color:#f5f5f1a8;max-width:430px;margin:0 0 24px;font-size:.96rem;line-height:1.65}.contact-form{gap:24px;display:grid;position:relative}.form-honeypot{clip-path:inset(50%);pointer-events:none;white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;display:grid}.contact-form label{gap:8px;display:grid}.contact-form label>span{color:#f5f5f185;text-transform:uppercase;font-size:.68rem}.contact-form input,.contact-form textarea{color:#f7f7f3;font:inherit;resize:vertical;background:0 0;border:0;border-bottom:1px solid #d8d7cf4d;border-radius:0;outline:0;width:100%;padding:8px 0 12px;transition:border-color .18s}.contact-form textarea{min-height:112px}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--rust)}.form-footer{justify-content:space-between;align-items:center;gap:20px;display:flex}.form-footer button{background:var(--ivory);color:#111318;cursor:pointer;border:0;border-radius:4px;min-height:42px;padding:0 24px;font-size:.8rem;font-weight:700;transition:background .18s,transform .18s}.form-footer button:hover,.form-footer button:focus-visible{background:#f4f0e8;transform:translateY(-2px)}.form-footer button:disabled{cursor:wait;opacity:.62;transform:none}.form-footer>span{color:var(--teal);min-height:1em;font-size:.7rem}.form-footer>span[data-state=error]{color:var(--rust)}.form-footer>span[data-state=success]{color:var(--teal)}.portfolio-footer{color:#f5f5f16b;border-top:1px solid #d8d7cf2e;justify-content:space-between;margin-top:70px;padding-top:20px;font-size:.68rem;display:flex}.bottom-scrollbar{opacity:0;pointer-events:none;z-index:35;height:4px;transition:opacity .22s;position:absolute;bottom:12px;left:clamp(18px,4.4vw,42px);right:clamp(18px,4.4vw,42px)}.bottom-scrollbar.is-visible{opacity:1}.bottom-scrollbar-track,.bottom-scrollbar-thumb{border-radius:999px;height:100%;display:block}.bottom-scrollbar-track{background:#d8d7cf21;width:100%;position:relative}.bottom-scrollbar-thumb{background:#d8d7cfad;transition:width .16s;position:absolute;top:0;left:0}body.has-character-cursor,body.has-character-cursor a,body.has-character-cursor button,body.has-character-cursor [role=button]{cursor:none}body.has-character-cursor input,body.has-character-cursor textarea{cursor:text}.character-cursor{opacity:0;pointer-events:none;z-index:100;transition:opacity .14s;position:fixed;inset:0}.character-cursor.is-visible{opacity:1}.cursor-point{background:var(--ivory);border:1px solid #080a0eb3;border-radius:50%;width:7px;height:7px;position:fixed;translate:-50% -50%}.cursor-character{width:48px;height:66px;margin-top:12px;margin-left:16px;position:fixed}.cursor-girl{width:100%;height:100%;overflow:visible}.girl-arm,.girl-leg{transform-box:view-box}.girl-arm-left{transform-origin:24px 42px;transition:transform .18s}.girl-arm-right{transform-origin:40px 42px;transition:transform .18s}.girl-leg-left,.girl-leg-right{transform-origin:32px 64px}.cursor-character.is-moving:not(.is-lifting) .girl-leg-left{animation:.24s ease-in-out infinite alternate walk-left}.cursor-character.is-moving:not(.is-lifting) .girl-leg-right{animation:.24s ease-in-out infinite alternate walk-right}.cursor-character.is-lifting .girl-arm-left{transform:rotate(78deg)}.cursor-character.is-lifting .girl-arm-right{transform:rotate(-78deg)}.cursor-cargo{background:var(--ivory);color:#111318;text-overflow:ellipsis;white-space:nowrap;border:1px solid #080a0e59;border-radius:3px;max-width:170px;padding:6px 9px;font-size:.62rem;font-weight:700;position:absolute;bottom:61px;left:50%;overflow:hidden;translate:-50%}@keyframes walk-left{0%{transform:rotate(12deg)}to{transform:rotate(-12deg)}}@keyframes walk-right{0%{transform:rotate(-12deg)}to{transform:rotate(12deg)}}@media (height<=720px) and (width>=781px){.hero-section{padding-top:84px;padding-bottom:54px}.hero-section h1{margin-bottom:24px;font-size:5.4rem}.role-animation{min-height:3.4rem}.role-animated-word{font-size:2.75rem}.hero-introduction{margin-top:20px;font-size:.88rem}.hero-actions{margin-top:17px}.resume-overview{padding-top:82px;padding-bottom:60px}.resume-overview h2,.contact-copy h2{font-size:3.7rem}.contact-section{padding-top:76px}}@media (width<=900px){.resume-overview,.contact-layout{grid-template-columns:1fr;gap:42px}.resume-lead{max-width:680px}.resume-credentials{gap:60px}.contact-section{padding-top:96px}.contact-copy h2{margin-bottom:18px}}@media (width<=780px){.section-width{width:min(100% - 48px,620px)}.brand-logo{width:80px;height:62px;top:14px;left:22px}.hero-section{padding-top:104px;padding-bottom:60px}.hero-section h1{font-size:5rem}.role-animation{min-height:6.4rem}.role-animated-word{row-gap:10px;font-size:2.7rem}.resume-overview h2,.contact-copy h2{font-size:3.5rem}.resume-facts{grid-template-columns:1fr 1fr}.experience-row{grid-template-columns:1fr;gap:28px}.resume-credentials{grid-template-columns:1fr}.resume-ticker-line{font-size:4rem}.projects-heading h2{font-size:3.25rem}.project-panel{padding-left:28px;padding-right:28px}.project-number{font-size:6.5rem}}@media (width<=560px){.window-frame{border-radius:24px;inset:16px 12px 18px}.section-width{width:calc(100% - 32px)}.brand-logo{width:68px;height:52px;top:8px;left:12px}.hero-section{padding-top:84px;padding-bottom:44px}.hero-section h1{margin-bottom:24px;font-size:3.7rem}.role-animation{min-height:5.2rem}.role-animated-word{row-gap:8px;font-size:2.15rem}.hero-introduction{margin-top:24px;font-size:.86rem;line-height:1.55}.hero-actions{flex-direction:column;gap:4px;margin-top:18px}.hero-actions a{width:max-content}.resume-overview{gap:32px;padding-top:80px;padding-bottom:60px}.resume-overview h2,.contact-copy h2{font-size:2.7rem}.resume-lead{font-size:1.1rem}.resume-facts{grid-template-columns:1fr;gap:18px}.resume-detail-band{padding:66px 0 54px}.experience-heading h4{font-size:1.5rem}.experience-row li{font-size:.86rem}.resume-credentials{gap:54px;padding-top:74px;padding-bottom:76px}.resume-ticker-line{font-size:3.1rem}.projects-heading{top:84px}.projects-heading h2{font-size:2.55rem}.project-panel{padding:145px 20px 58px}.project-number{font-size:5.2rem}.contact-section{padding-top:82px;padding-bottom:28px}.contact-layout{gap:46px}.form-row{grid-template-columns:1fr;gap:24px}.form-footer{flex-direction:column;align-items:flex-start}.portfolio-footer{gap:8px;margin-top:60px}.portfolio-footer span:nth-child(2){display:none}.bottom-scrollbar{height:3px;bottom:9px;left:20px;right:20px}}@media (width<=380px){.hero-section h1{font-size:3.15rem}.role-animated-word{font-size:1.85rem}.resume-overview h2,.contact-copy h2{font-size:2.35rem}}@media (prefers-reduced-motion:reduce){.background-media{display:none}.brand-logo,.site-shell{transition:none}.loader-progress{stroke-dashoffset:0;animation:none}.hero-scroll-stage,.resume-ticker-stage,.projects-scroll-stage{height:auto}.hero-section,.resume-ticker-sticky,.projects-sticky{height:auto;position:relative}.hero-section{min-height:100cqh}.resume-ticker-sticky{padding:100px 0}.resume-ticker-line,.projects-track{transform:none!important}.projects-heading{padding-top:72px;position:relative;top:auto}.projects-track{width:100%;display:grid}.project-panel{width:100%;min-height:58cqh}.contact-section{min-height:100cqh}}
