@font-face{font-family:Barlow;src:url('assets/barlow.ttf') format('truetype');font-weight:700 900;font-display:swap}@font-face{font-family:Barlow;src:url('assets/barlow-600.ttf') format('truetype');font-weight:100 600;font-display:swap}@font-face{font-family:DM;src:url('assets/dm-sans.ttf') format('truetype');font-weight:100 500;font-display:swap}@font-face{font-family:DM;src:url('assets/dm-sans-700.ttf') format('truetype');font-weight:600 900;font-display:swap}@font-face{font-family:Caveat;src:url('assets/caveat.ttf') format('truetype');font-weight:400 700;font-display:swap}
:root{--ink:#10151f;--ivory:#eee9df;--paper:#e4ded2;--red:#c73c2b;--red-light:#ec6551;--muted:#a6a9ac;--line:#ffffff26;--display:Barlow,'Arial Narrow',Impact,sans-serif;--body:DM,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--ink);color:var(--ivory);font:15px/1.6 var(--body);overflow-x:hidden}body.intro-playing,body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button{border:0;background:none}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--red-light);outline-offset:6px}input:focus-visible,textarea:focus-visible{outline:0;border-color:var(--red-light)}::selection{background:var(--red);color:var(--ivory)}p{margin:0 0 20px}h1,h2,h3{margin:0;font-family:var(--display);line-height:.9;font-weight:800}h2{font-size:clamp(58px,7.2vw,110px);letter-spacing:-.035em}h2 em{font-style:normal;color:var(--red-light)}.eyebrow{font-size:10px;letter-spacing:.13em;font-weight:600;line-height:1.5}.section-pad{padding:70px 6vw 100px}.section-top{display:flex;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:70px}.handwritten,.serif-note{font-family:Caveat,'Brush Script MT',cursive;font-weight:500}.handwritten{font-size:36px;display:block}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;font-size:11px;font-weight:700;letter-spacing:.05em;padding:14px 0;border-bottom:1px solid currentColor}.text-link:hover,.desktop-nav a:hover,.social-links a:hover{color:var(--red-light)}.solid-button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;background:var(--red);color:var(--ivory);font-size:10px;font-weight:700;letter-spacing:.08em;padding:19px 24px;min-height:54px;border:1px solid var(--red)}.solid-button span{font-size:22px;line-height:1}.solid-button:hover{background:var(--ink);border-color:var(--ivory);color:var(--ivory)}.skip-link{position:fixed;left:20px;top:-70px;z-index:2000;background:var(--ivory);color:var(--ink);padding:10px 20px}.skip-link:focus{top:15px}.site-header{position:absolute;top:0;left:0;width:100%;z-index:50;height:100px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;color:var(--ink);border-bottom:1px solid #10151f22;background:var(--ivory)}.wordmark{display:flex;gap:12px;align-items:center;font:900 42px/.8 var(--display);letter-spacing:-.08em}.wordmark-slash{color:var(--red);letter-spacing:-.19em;font-style:italic;margin-right:8px}.wordmark small{font:700 8px/1.25 var(--body);letter-spacing:.07em}.desktop-nav{display:flex;gap:30px;font-size:10px;font-weight:700;letter-spacing:.08em}.header-end{display:flex;gap:25px;align-items:center}.contact-nav{font-size:10px;font-weight:700;border-bottom:1px solid var(--ink);padding-bottom:4px}.contact-nav span{margin-left:18px}.menu-button{width:37px;height:35px;display:flex;justify-content:center;flex-direction:column;gap:6px;padding:4px}.menu-button span{display:block;width:27px;height:2px;background:currentColor}.menu-open .site-header{position:fixed;background:var(--ink);color:var(--ivory);border-color:var(--line)}.menu-open .contact-nav{border-color:var(--ivory)}.menu-open .menu-button span:first-child{transform:translateY(4px) rotate(45deg)}.menu-open .menu-button span:last-child{transform:translateY(-4px) rotate(-45deg)}.menu-overlay{position:fixed;inset:0;z-index:45;padding:130px 8vw 35px;background:var(--ink)}.menu-overlay[hidden]{display:none}.menu-overlay nav{display:flex;flex-direction:column;margin:30px 0}.menu-overlay nav a{font:700 clamp(38px,6.8vw,90px)/1.1 var(--display);letter-spacing:-.025em}.menu-overlay nav small{font:12px var(--body);color:var(--red-light);margin-right:30px}.menu-overlay nav a:hover{color:var(--red-light)}.menu-footer{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.08em;border-top:1px solid var(--line);padding-top:18px}.hero{position:relative;min-height:100svh;background:var(--ivory);color:var(--ink);padding:137px 4vw 0;overflow:hidden}.hero-kicker{display:flex;justify-content:space-between}.red-dot{display:inline-block;width:6px;height:6px;margin-left:8px;background:var(--red);border-radius:50%;vertical-align:middle}.hero-title{position:relative;z-index:2;margin-top:20px}.hero h1{font-size:clamp(110px,24.7vw,420px);letter-spacing:-.035em;line-height:.77;font-weight:800;position:relative;width:max-content;max-width:100%}.hero-number{font:600 12px var(--body);letter-spacing:0;position:absolute;right:-28px;top:6px;color:var(--red)}.hero-subtitle{display:flex;align-items:center;justify-content:space-between;padding:17px 0;border-bottom:1px solid #10151f40}.hero-subtitle>span:first-child{font:700 clamp(20px,3.1vw,47px)/1 var(--display);letter-spacing:.01em}.serif-note{font-size:clamp(28px,3.2vw,45px);color:var(--red);padding-right:10px}.hero-track{position:relative;height:200px;margin:12px -4vw -10px}.hero-track>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.hero-track>svg path{fill:none;stroke:#10151f18;stroke-width:2}.hero-car{position:absolute;width:min(720px,62vw);height:225px;object-fit:contain;top:-16px;left:50%;transform:translateX(-50%);will-change:transform}.car-caption{position:absolute;top:75px;left:4vw;font-size:9px;line-height:1.5;letter-spacing:.12em}.hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:30px}.hero-bottom>p{margin:0;font-size:12px}.contact-seal{position:relative;width:95px;height:95px;margin-top:-13px;flex-shrink:0}.contact-seal svg{width:100%;height:100%;fill:var(--ink);font:8.3px var(--body);letter-spacing:.85px}.contact-seal>span{position:absolute;inset:0;display:grid;place-items:center;font-size:35px}.hero-footer{border-top:1px solid #10151f40;display:flex;justify-content:space-between;padding:14px 0}.hero-footer button{font-size:9px;font-weight:700;letter-spacing:.08em;padding:0}.chapter-band{background:var(--red);display:flex;justify-content:space-between;align-items:center;gap:25px;padding:20px 6vw;font:600 clamp(16px,2.6vw,38px)/1 var(--display);letter-spacing:.02em}.band-signature{font:32px Caveat,cursive}.about{background:var(--ink)}.about-layout{display:grid;grid-template-columns: .9fr 1.1fr;gap:8vw;align-items:center}.portrait-scene{position:relative;height:650px;perspective:1100px;transform-style:preserve-3d;--rx:0deg;--ry:0deg}.portrait-backplate{position:absolute;inset:35px 12px 35px 5px;background:#222a36;overflow:hidden;transform:rotate(-4deg) translateZ(-20px)}.portrait-backplate>span{font:800 122px/.8 var(--display);letter-spacing:-.04em;color:#ffffff0d;position:absolute;top:25px;left:15px}.portrait-backplate svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--red);stroke-width:45}.portrait-scene>img{position:absolute;width:100%;height:100%;object-fit:contain;object-position:center bottom;transform:rotateX(var(--rx)) rotateY(var(--ry)) translateZ(35px);transition:transform .18s ease-out}.portrait-label{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:end;font-size:10px;letter-spacing:.08em;padding:20px 0;background:var(--ink);z-index:2;border-bottom:1px solid var(--line)}.portrait-label>span:first-child{font:700 45px/1 var(--display);color:var(--red-light)}.about-copy .handwritten{color:var(--red-light);margin-bottom:20px}.about-copy h2{font-size:clamp(52px,6.6vw,100px);margin-bottom:30px}.about-copy>p{font-size:13px;max-width:490px;color:#bbc0c7}.about-facts{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding-top:22px;margin-top:30px}.about-facts strong{display:block;font:600 42px/1 var(--display)}.about-facts span{font-size:8px;letter-spacing:.07em;color:var(--muted)}.about-copy .text-link{margin-top:28px}.expertise{background:#191f28}.expertise-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:9vw}.expertise h2{margin-bottom:30px}.expertise-layout>div>p{color:var(--muted);font-size:13px;max-width:330px}.engine-mark{display:flex;align-items:center;gap:20px;font:800 90px/1 var(--display);letter-spacing:-.05em;color:#46505d;margin-top:40px}.engine-mark span{font:9px/1.5 var(--body);letter-spacing:.08em}.skill-list details{border-top:1px solid #ffffff40}.skill-list details:last-child{border-bottom:1px solid #ffffff40}.skill-list summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:20px;padding:27px 0;font:600 clamp(20px,2.3vw,33px)/1.1 var(--display)}.skill-list summary::-webkit-details-marker{display:none}.skill-list summary small{font:10px var(--body);color:var(--red-light)}.skill-list summary b{font:300 25px var(--body);margin-left:auto}.skill-list details[open] summary b{transform:rotate(45deg)}.skill-list details>div{padding:0 36px 28px}.skill-list details p{font-size:13px;color:#b9bec6;margin-bottom:14px}.skill-list details div>span{font-size:9px;letter-spacing:.08em;color:var(--red-light)}.work{background:var(--ink)}.work-intro{padding-bottom:65px}.work-intro .section-top{margin-bottom:40px}.work-title{font-size:clamp(80px,17vw,250px);line-height:.8;letter-spacing:-.025em}.work-title>span{display:block;color:var(--red-light)}.work-caption{display:flex;justify-content:space-between;align-items:end;margin-top:35px}.work-caption p{font-size:11px;color:var(--muted);margin:0}.work-caption .handwritten{font-size:32px}.project{display:grid;grid-template-columns:1.1fr .9fr;min-height:650px;border-top:1px solid var(--line)}.project-visual{position:relative;min-height:650px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;background:var(--red);padding:30px 3vw;perspective:1000px;color:var(--ivory)}.project-visual-top,.visual-bottom{display:flex;justify-content:space-between;gap:20px;font-size:8px}.frontwing-logo{font:800 clamp(50px,7vw,105px)/1 var(--display);letter-spacing:-.045em;margin-top:15px;z-index:2}.frontwing-logo>span{-webkit-text-stroke:1px var(--ivory);color:transparent}.frontwing-logo i{display:inline-block;transform:skew(-25deg);width:14px;height:12px;border-top:3px solid var(--ivory);border-bottom:3px solid var(--ivory);margin-left:8px}.circuit-stage{position:relative;height:400px;margin:-40px -20px -5px;transform-style:preserve-3d;cursor:grab;touch-action:pan-y;--cx:40deg;--cy:-17deg}.circuit-stage:active{cursor:grabbing}.circuit-svg{width:100%;height:100%;transform:rotateX(var(--cx)) rotateZ(var(--cy));overflow:visible;will-change:transform}.circuit-svg path{fill:none;stroke-linecap:square;stroke-linejoin:round}.circuit-under{stroke:#8c201a;stroke-width:34;transform:translateY(18px)}.circuit-line{stroke:var(--ivory);stroke-width:17}.circuit-svg circle{fill:#10151f;stroke:#eee9df;stroke-width:3}.circuit-svg text{font:600 17px var(--display);fill:var(--ivory);text-anchor:middle;letter-spacing:.05em}.circuit-svg text.circuit-small{font:8px var(--body)}.track-axis,.track-label{position:absolute;font-size:8px;letter-spacing:.1em;bottom:15px}.track-axis{left:10px}.track-label{right:10px}.project-details{padding:55px 4vw;background:#171d27;display:flex;flex-direction:column;justify-content:center}.project-details>.eyebrow{font-size:8px;color:var(--red-light);margin-bottom:22px}.project-details h3{font-size:clamp(45px,5.4vw,78px);display:flex;justify-content:space-between;align-items:center;letter-spacing:-.025em}.project-details h3>span{font:400 13px var(--body);color:#818b99}.project-lead{font:500 clamp(25px,2.9vw,42px)/1.1 var(--display);margin:25px 0;color:var(--ivory)}.project-details>p:not(.project-lead){color:#b5bdc8;font-size:12px;max-width:490px}.project-facts{display:grid;grid-template-columns:.8fr 1.2fr;gap:25px;border-top:1px solid var(--line);margin-top:10px;padding-top:22px}.project-facts span{font-size:8px;letter-spacing:.08em;color:#7f8a99}.project-facts p{font-size:10px;color:#bac1cb;margin-top:8px;line-height:1.6}.tags{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 25px}.tags span{font-size:7px;letter-spacing:.08em;border:1px solid #ffffff33;padding:5px 9px}.project-links{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.project-links .solid-button{font-size:8px;padding:15px 18px;min-height:45px}.project-links .text-link{font-size:8px;padding:10px 0;gap:10px}.project-pancred .project-visual{background:#d5d8ca;color:var(--ink)}.pancred-art{height:450px;display:grid;place-items:center;position:relative;transform-style:preserve-3d}.credit-plate{width:78%;aspect-ratio:1.62;background:#233e37;position:absolute;transform:rotateX(18deg) rotateY(-16deg) rotateZ(-12deg);border:1px solid #6a7e70}.credit-back{transform:translate(32px,-25px) rotateX(18deg) rotateY(-16deg) rotateZ(-12deg);background:#acb7a7}.credit-front{color:#dbe0cf;padding:22px;display:flex;flex-direction:column;justify-content:space-between}.credit-name{font:600 clamp(27px,4vw,52px)/1 var(--body);letter-spacing:-.07em}.credit-name>span{font-size:10px;vertical-align:top;margin-left:5px}.credit-front svg{width:43px;height:32px;fill:none;stroke:#aeb792;stroke-width:1;margin:13px 0}.credit-lines{font-size:9px;letter-spacing:.12em}.credit-bottom{font-size:7px;letter-spacing:.13em;border-top:1px solid #ffffff33;padding-top:10px;margin-top:16px}.project-hawk .project-visual{background:#232e3b}.hawk-art{height:450px;position:relative;text-align:center}.hawk-art svg{width:100%;height:340px;fill:none;stroke:#68778a;stroke-width:1}.hawk-art .hawk-outline{fill:#c7cccb;stroke:none}.hawk-art .hawk-detail{stroke:#232e3b;stroke-width:3}.hawk-art>span{display:block;font:600 52px/1 var(--display);margin-top:-10px;letter-spacing:-.02em}.hawk-art>small{font-size:8px;letter-spacing:.16em}.archive{background:var(--ivory);color:var(--ink)}.archive .section-top,.experience .section-top{border-color:#10151f33}.archive-header{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:40px}.archive h2{font-size:clamp(45px,6.4vw,90px)}.archive h2 em,.experience h2 em{color:var(--red)}.archive-controls{display:flex;border-bottom:1px solid #10151f33;gap:18px}.archive-controls button{font-size:8px;letter-spacing:.05em;padding:12px 0;border-bottom:2px solid transparent}.archive-controls button[aria-pressed=true]{border-color:var(--red);color:var(--red)}.repo-row{display:grid;grid-template-columns:35px 1.1fr 1.2fr 100px 25px;gap:20px;align-items:center;padding:20px 0;border-top:1px solid #10151f33}.repo-row:hover{color:var(--red)}.repo-index{font-size:9px;color:#787a76}.repo-row h3{font:600 clamp(21px,2.2vw,32px)/1 var(--display);letter-spacing:-.015em}.repo-row p{font-size:10px;margin:0;color:#5c605c;line-height:1.6}.repo-language{font-size:8px;text-align:right;letter-spacing:.07em}.repo-arrow{font-size:20px;text-align:right}.archive-count{color:#65665f;margin:20px 0 10px}.experience{color:var(--ink);background:var(--paper)}.journey-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:60px}.journey-heading>p{font-size:12px;margin:0 0 8px}.experience-row{display:grid;grid-template-columns:200px 1fr 45px;gap:30px;padding:35px 0;border-top:1px solid #10151f33}.experience-date{font-size:9px;letter-spacing:.06em;margin-top:7px}.experience-row h3{font-size:clamp(27px,3.2vw,45px);margin-bottom:12px;line-height:1}.experience-row .role{font-size:8px;font-weight:700;letter-spacing:.08em;color:var(--red)}.experience-row p{font-size:12px;max-width:620px;margin:15px 0 0;color:#525954}.experience-index{font:600 37px/1 var(--display);color:#9c9f95}.contact{background:var(--ink);padding-bottom:30px}.contact-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:10vw}.contact h2{font-size:clamp(55px,7.5vw,110px);margin:20px 0 38px}.contact .handwritten{font-size:30px;color:#aaa99e}.email-link{font-size:clamp(12px,1.5vw,20px);border-bottom:1px solid #777d84;padding-bottom:7px}.copy-button{display:block;font-size:8px;letter-spacing:.1em;margin:17px 0 35px;padding:0;color:var(--muted)}.social-links{display:flex;gap:25px;font-size:9px;letter-spacing:.08em}.contact form{padding-top:50px}.contact form h3{font-size:25px;margin-bottom:35px}.contact label{display:block;font-size:8px;letter-spacing:.1em;margin-top:25px;color:#a0a7af}.contact input,.contact textarea{display:block;width:100%;background:none;border:0;border-bottom:1px solid #ffffff40;border-radius:0;color:var(--ivory);padding:13px 0 15px;font-size:11px;resize:vertical}.contact input::placeholder,.contact textarea::placeholder{color:#6f7885;opacity:1}.contact form .solid-button{margin-top:26px;width:100%}.form-note{font-size:9px;color:#8e96a2;margin-top:13px}.form-status{font-size:11px;color:var(--red-light)}.contact footer{margin-top:110px}.footer-logo{display:flex;justify-content:space-between;align-items:end;font:700 12.5vw/.8 var(--display);letter-spacing:-.025em;border-bottom:1px solid var(--line);padding-bottom:35px}.footer-logo>span{font:9px var(--body);letter-spacing:0;margin-bottom:5px;margin-left:15px}.footer-bottom{display:flex;justify-content:space-between;gap:15px;padding:23px 0;font-size:8px;color:#a3a9b0}.footer-bottom button{font-size:8px;letter-spacing:.1em;padding:0}.fan-note{font-size:8px;color:#7d8794;margin:5px 0}.scroll-progress{position:fixed;bottom:0;left:0;width:100%;height:3px;z-index:40;pointer-events:none}.scroll-progress>span{height:100%;display:block;background:var(--red);transform:scaleX(0);transform-origin:left}.race-intro{position:fixed;inset:0;z-index:1000;overflow:hidden}.curtain{position:absolute;inset:0;background:var(--ink);will-change:transform}.intro-content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ivory)}.intro-content>.eyebrow{color:#9ba3af;margin-bottom:45px;font-size:9px}.lights{display:flex;gap:13px;background:#080c13;padding:13px 20px;border-top:2px solid #343a45;border-bottom:2px solid #343a45}.lights i{display:block;width:44px;height:44px;border-radius:50%;background:#2b2528;border:3px solid #151a24}.lights i.on{background:#d42d22}.intro-status{font-size:8px;letter-spacing:.25em;margin:25px 0 10px;color:#9099a6}.lights-out{font:500 clamp(75px,12vw,170px)/1 Caveat,cursive;color:var(--ivory);opacity:0;transform:translateY(15px);transition:opacity .3s,transform .4s}.lights-out.show{opacity:1;transform:none}.intro-caption{font-size:8px;letter-spacing:.17em;opacity:0;margin-top:20px}.intro-caption.show{opacity:1}.intro-car{position:absolute;width:480px;max-width:none;height:190px;object-fit:contain;top:calc(50% - 95px);left:-510px;z-index:2}.skip-intro{position:absolute;bottom:32px;right:4vw;font-size:9px;letter-spacing:.1em;color:var(--ivory);border-bottom:1px solid #ffffff50;padding:8px 0;z-index:3}.skip-intro span{margin-left:20px}.race-intro.leaving .intro-content{opacity:0;transition:opacity .25s}.race-intro.leaving .skip-intro{opacity:0}.reveal{opacity:0;transform:translateY(35px);transition:opacity .8s ease,transform .9s cubic-bezier(.22,1,.36,1)}.reveal.visible{opacity:1;transform:none}dialog{max-width:570px;width:calc(100% - 36px);border:1px solid #646b71;background:var(--ink);color:var(--ivory);padding:35px}dialog::backdrop{background:#090e16d9}dialog button{float:right;font-size:9px}dialog h2{font-size:55px;margin:45px 0 25px}dialog p{font-size:12px;color:#b5bdc7}dialog a{color:var(--red-light)}
@media(min-width:1600px){.hero{min-height:0}.hero-track{height:240px}.hero-car{height:265px}.hero-bottom{padding-bottom:40px}.section-pad{padding-left:max(6vw,calc((100vw - 1600px)/2));padding-right:max(6vw,calc((100vw - 1600px)/2))}}
@media(max-width:1050px){.section-pad{padding:55px 5vw 75px}.section-top{margin-bottom:50px}.portrait-scene{height:510px}.about-layout{gap:5vw}.project{grid-template-columns:1fr 1fr}.project-visual{min-height:600px;padding:25px}.project-details{padding:40px 30px}.project-facts{gap:15px}.project-links{gap:12px}.project-links .solid-button{padding:14px}.circuit-stage{height:340px}.repo-row{grid-template-columns:24px 1.1fr 1.2fr 75px 20px;gap:13px}.contact-layout{gap:6vw}.experience-row{grid-template-columns:160px 1fr 35px}.credit-front{padding:18px}.hero{min-height:0}.hero-track{height:175px}.hero-car{height:200px}}
@media(max-width:720px){html{scroll-padding-top:70px}.site-header{height:78px;padding:0 5vw}.desktop-nav{display:none}.wordmark{font-size:35px;gap:10px}.wordmark small{font-size:7px}.contact-nav{font-size:8px}.header-end{gap:15px}.hero{padding:110px 5vw 0;min-height:0}.hero-kicker{font-size:7px;gap:15px}.hero-title{margin-top:35px}.hero h1{font-size:24.3vw;letter-spacing:-.04em}.hero-number{font-size:8px;right:-14px;top:0}.hero-subtitle{padding:17px 0 12px}.hero-subtitle>span:first-child{font-size:23px}.serif-note{font-size:28px;padding:0}.hero-track{height:195px;margin:0 -5vw}.hero-car{width:95vw;height:185px;top:15px}.car-caption{font-size:7px;top:6px;left:5vw}.hero-bottom{position:relative;gap:20px;flex-wrap:wrap;padding-bottom:28px}.hero-bottom>p{font-size:10px;max-width:50%}.hero-bottom .solid-button{font-size:8px;padding:16px;gap:18px}.contact-seal{width:66px;height:66px;display:none}.hero-footer{font-size:6px;padding:15px 0;gap:10px}.hero-footer button{font-size:6px}.chapter-band{padding:18px 5vw;gap:15px;font-size:20px}.band-signature{display:none}.section-pad{padding:45px 6vw 65px}.section-top{font-size:7px;margin-bottom:40px;padding-bottom:16px}.section-top>span:last-child{text-align:right;max-width:46%}.about-layout{display:flex;flex-direction:column;gap:35px}.portrait-scene{width:100%;height:510px;max-width:420px}.about-copy{width:100%}.about-copy h2{font-size:17vw}.about-copy>p{font-size:12px}.about-copy .handwritten{font-size:32px}.about-facts{max-width:460px}.about-facts strong{font-size:40px}.expertise-layout{grid-template-columns:1fr;gap:40px}.expertise h2{font-size:20vw}.engine-mark{display:none}.expertise-layout>div>p{max-width:100%;font-size:12px}.skill-list summary{font-size:25px;padding:24px 0;gap:17px}.skill-list details>div{padding-left:29px}.skill-list details div>span{font-size:8px}.skill-list details p{font-size:12px}.work-intro{padding-bottom:45px}.work-title{font-size:19.7vw;line-height:.83}.work-caption{display:block;margin-top:25px}.work-caption .handwritten{font-size:27px}.work-caption p{margin-top:17px;font-size:10px}.project{display:flex;flex-direction:column}.project-visual{min-height:460px;padding:23px 6vw}.project-visual-top,.visual-bottom{font-size:7px}.frontwing-logo{font-size:16vw;margin-top:15px}.circuit-stage{height:300px;margin:-20px -15px -5px}.track-axis,.track-label{font-size:6px}.project-details{padding:36px 6vw 45px}.project-details h3{font-size:57px}.project-lead{font-size:35px;margin-top:22px}.project-details>p:not(.project-lead){font-size:12px}.project-facts{gap:25px}.project-facts p{font-size:10px}.tags{margin-bottom:22px}.project-links{gap:25px}.project-links .solid-button{font-size:8px;padding:15px 18px}.pancred-art{height:340px}.credit-plate{width:74%;max-width:350px}.credit-name{font-size:43px}.credit-lines{font-size:8px}.hawk-art{height:350px}.hawk-art svg{height:270px}.hawk-art>span{font-size:45px}.archive-header{display:block;margin-bottom:25px}.archive h2{font-size:16vw}.archive-controls{margin-top:28px;justify-content:start;gap:25px;width:max-content}.repo-row{grid-template-columns:21px 1fr 22px;gap:12px;padding:19px 0}.repo-row h3{font-size:27px}.repo-row p{grid-column:2;grid-row:2;font-size:9px;margin-top:-5px}.repo-language{display:none}.repo-arrow{grid-column:3;grid-row:1}.repo-index{align-self:center}.archive-count{font-size:7px}.journey-heading{display:block;margin-bottom:35px}.journey-heading h2{font-size:19vw}.journey-heading p{margin-top:25px;font-size:11px}.experience-row{grid-template-columns:1fr 25px;gap:12px;padding:25px 0}.experience-date{grid-column:1;font-size:8px}.experience-row>div{grid-column:1}.experience-row h3{font-size:34px}.experience-row .role{font-size:7px}.experience-row p{font-size:11px}.experience-index{grid-column:2;grid-row:1;font-size:30px}.contact-layout{grid-template-columns:1fr;gap:30px}.contact h2{font-size:18.5vw;margin-bottom:30px}.contact .handwritten{font-size:27px}.email-link{font-size:14px}.social-links{font-size:8px}.contact form{padding-top:20px}.contact form h3{font-size:27px}.contact footer{margin-top:65px}.footer-logo{font-size:11.9vw;padding-bottom:25px}.footer-logo>span{font-size:7px;white-space:nowrap}.footer-bottom{flex-wrap:wrap;font-size:6px;gap:20px;padding:20px 0}.footer-bottom button{font-size:6px}.fan-note{font-size:7px}.menu-overlay{padding:110px 6vw 30px;display:flex;flex-direction:column;justify-content:center}.menu-overlay[hidden]{display:none}.menu-overlay nav{margin:35px 0}.menu-overlay nav a{font-size:12vw;line-height:1.3}.menu-overlay nav small{font-size:9px;margin-right:18px}.menu-top{font-size:8px}.menu-footer{display:block;font-size:8px}.menu-footer a{display:block;margin-top:15px}.lights{gap:8px;padding:11px 13px}.lights i{width:35px;height:35px}.lights-out{font-size:25vw}.intro-caption{font-size:6px}.intro-car{width:330px;height:130px;top:calc(50% - 65px);left:-350px}.intro-content>.eyebrow{font-size:7px;margin-bottom:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition:none!important}.reveal{opacity:1;transform:none}.portrait-scene>img{transform:none}.hero-car{will-change:auto}.circuit-svg{will-change:auto}}
/* Source photograph supplies the face and hair unchanged; CSS creates dimensional presentation. */
.portrait-scene>img{height:auto;max-height:100%;object-fit:contain;bottom:25px;clip-path:polygon(0% 100%,0% 87%,4% 75%,10% 69%,20% 65%,29% 61%,31% 55%,30% 51%,29% 48%,29% 42%,27% 38%,29% 32%,29% 28%,35% 24%,44% 22%,52% 21%,61% 22%,66% 25%,69% 29%,69% 34%,68% 38%,68% 45%,67% 49%,65% 53%,64% 59%,70% 63%,83% 66%,91% 72%,97% 82%,100% 100%)}
.product-proof{display:block;padding:36px 6vw 45px;background:#202a37;border-top:1px solid #ffffff26}
.product-proof-top{display:flex;justify-content:space-between;margin-bottom:22px;font-size:8px;letter-spacing:.1em}
.product-proof img{display:block;width:100%;height:auto;border:1px solid #68778a}
.product-proof p{font-size:9px;color:#abb3bf;margin:14px 0 0}
@media(min-width:1000px){.product-proof{padding-left:14vw;padding-right:14vw}}

.portrait-scene>img{width:125%;height:auto;max-height:none;left:-12.5%;bottom:25px;clip-path:polygon(0.000% 100.000%,0.000% 87.500%,2.083% 82.812%,4.375% 77.344%,8.229% 71.562%,15.625% 68.516%,22.917% 66.328%,29.896% 64.766%,34.375% 62.422%,35.208% 58.828%,34.479% 54.922%,32.188% 51.562%,31.042% 48.516%,30.104% 45.938%,30.000% 43.516%,31.146% 41.797%,30.521% 39.375%,29.896% 36.797%,29.167% 34.609%,29.375% 32.500%,30.000% 30.547%,31.042% 28.516%,33.229% 26.719%,35.729% 25.234%,38.854% 24.062%,42.396% 23.047%,47.083% 22.188%,52.188% 21.562%,56.563% 21.328%,60.417% 21.562%,63.958% 22.422%,66.146% 24.141%,66.771% 25.938%,67.396% 27.500%,67.917% 29.141%,68.125% 31.250%,67.812% 33.203%,67.396% 35.391%,67.188% 37.734%,66.354% 40.000%,66.354% 41.875%,67.083% 42.969%,67.500% 44.531%,67.188% 46.484%,66.354% 48.203%,65.417% 49.453%,64.792% 52.266%,63.542% 54.766%,62.500% 56.797%,62.396% 59.531%,64.167% 61.875%,67.604% 63.750%,74.062% 65.547%,83.646% 68.047%,90.521% 70.938%,95.833% 76.094%,98.542% 81.953%,100.000% 89.062%,100.000% 100.000%)}
@media(max-width:720px){.portrait-scene>img{width:118%;left:-9%;}}
/* A single photographic plane preserves every facial and hair pixel from the supplied photograph. */
.portrait-scene>img{clip-path:none;width:88%;height:86%;max-height:none;left:6%;bottom:35px;object-fit:cover;object-position:center 40%;border:1px solid #65707a}
.lights i{height:94px;background:none;border:0;border-radius:0;position:relative}.lights i::before,.lights i::after{content:'';position:absolute;left:0;width:44px;height:44px;border:3px solid #151a24;border-radius:50%;background:#2b2528}.lights i::before{top:0}.lights i::after{bottom:0}.lights i.on{background:none}.lights i.on::before,.lights i.on::after{background:#d42d22}@media(max-width:720px){.lights i{height:76px}.lights i::before,.lights i::after{width:35px;height:35px}}

/* Personal identity leads the page. The racing car belongs only to the intro. */
.hero{min-height:100svh;display:flex;flex-direction:column;padding-top:135px}
.hero-title{margin-top:27px}
.hero h1.name-heading{font-size:clamp(116px,min(25.4vw,35svh),420px);width:100%;max-width:none;line-height:.78;letter-spacing:-.025em}
.name-heading>span{display:block}
.name-heading>span:last-child{text-align:right;margin-top:.025em}
.name-heading .name-period{color:var(--red)}
.hero-subtitle{margin-top:22px;padding:19px 0}
.hero-subtitle>span:first-child{font-size:clamp(15px,1.8vw,26px)}
.hero-bottom{margin-top:auto;padding-top:30px;padding-bottom:25px}
.hero-footer{margin-top:5px}
.curtain{display:flex;border-left:2px solid var(--red)}
.curtain>span{flex:1;border-right:1px solid #ffffff04}
.intro-car{width:250px;height:90px;left:-280px;top:calc(50% - 45px)}
.intro-car::selection{background:none}
.intro-content>.eyebrow{letter-spacing:.19em}
.race-intro.leaving .intro-car{opacity:1}
@media(max-width:720px){
 .hero{min-height:calc(100svh - 20px);padding-top:115px}
 .hero-title{margin-top:50px}
 .hero h1.name-heading{font-size:26.5vw;line-height:.85;letter-spacing:-.035em}
 .name-heading>span:last-child{margin-top:.04em}
 .hero-subtitle{margin-top:30px;display:block;padding:17px 0}
 .hero-subtitle>span:first-child{font-size:18px;display:block}
 .hero-subtitle .serif-note{display:block;margin-top:10px;font-size:31px;text-align:right}
 .hero-bottom{padding-top:40px;padding-bottom:27px}
 .intro-car{width:180px;height:64px;left:-210px;top:calc(50% - 32px)}
}
.curtain::before{content:'';position:absolute;width:30px;height:2px;background:var(--red);left:-30px;top:50%}

/* Black starting grid; fabric is shaded by its own moving mesh. */
.curtain{display:block;background:#000;border:0;transform:none!important}
.curtain::before{display:none}
#clothCanvas{display:block;width:100%;height:100%;pointer-events:none}
.intro-content{z-index:2}
.intro-content>.eyebrow,.intro-status{color:#999}
.lights{background:#080808;border-color:#292929}
.lights i::before,.lights i::after{border-color:#090909;background:#211b1b}
.intro-car{left:0;z-index:4;transform:translateX(-400px)}
.tow-cable{position:absolute;left:0;top:50%;height:2px;width:56px;background:#b7b7b1;z-index:3;opacity:0;pointer-events:none}
.race-intro.leaving .tow-cable{opacity:1}
.race-intro.leaving .intro-content{transition:opacity .25s}
.effect-filters{position:absolute;overflow:hidden;pointer-events:none}

/* Local frost, irregular melting caps and actual letter planes provide depth. */
.hero-title{perspective:1100px}
.name-heading{transform-style:preserve-3d;transform:rotateX(var(--name-rx,0deg)) rotateY(var(--name-ry,0deg));transition:transform .35s ease-out;cursor:default}
.name-row{transform-style:preserve-3d;white-space:nowrap}
.name-row:first-child{transform:translateX(calc(-32px * var(--hero-away,0)))}
.name-row:last-child{transform:translateX(calc(32px * var(--hero-away,0)))}
.snow-letter{position:relative;display:inline-block;transform-style:preserve-3d;transform:translate3d(0,var(--lift,0px),calc(var(--snow,0) * 16px)) rotateY(var(--twist,0deg));transition:transform .5s cubic-bezier(.2,.7,.2,1);vertical-align:baseline}
.snow-letter::before{content:attr(data-letter);position:absolute;inset:0;color:#3b4145;transform:translate3d(3px,5px,-7px);opacity:var(--snow,0);pointer-events:none;transition:opacity .4s}
.snow-cap{position:absolute;inset:0;color:#f4f2eb;-webkit-text-stroke:1px #d9e0de;transform:translateZ(8px);opacity:calc(var(--snow,0) * .98);filter:url(#snowMelt);pointer-events:none;clip-path:polygon(0 0,100% 0,100% 27%,90% 31%,84% 47%,77% 29%,66% 33%,59% 51%,53% 32%,42% 34%,35% 43%,28% 28%,17% 35%,9% 30%,0 33%);transition:opacity .55s ease-out}
.snow-active .snow-cap{animation:snow-thaw 2.6s ease-in-out infinite alternate;animation-delay:calc(var(--letter-index) * -.24s)}
@keyframes snow-thaw{from{clip-path:polygon(0 0,100% 0,100% 27%,90% 31%,84% 47%,77% 29%,66% 33%,59% 51%,53% 32%,42% 34%,35% 43%,28% 28%,17% 35%,9% 30%,0 33%)}to{clip-path:polygon(0 0,100% 0,100% 31%,90% 35%,84% 58%,77% 32%,66% 37%,59% 64%,53% 35%,42% 38%,35% 53%,28% 32%,17% 48%,9% 34%,0 37%)}}

/* Reading progress controls these masks in either scroll direction. */
.scroll-heading{perspective:1000px}
.scroll-line{display:block;overflow:hidden;padding-bottom:.09em;margin-bottom:-.09em}
.scroll-line-ink{display:block;transform-origin:50% 100%;transform:translate3d(0,var(--line-y,0%),0) rotateX(var(--line-rx,0deg));opacity:var(--line-opacity,1);will-change:transform}
.work-title .scroll-line{color:var(--ivory)}
.work-title .scroll-line:nth-child(2){color:var(--red-light)}
.work-title>.scroll-line{line-height:.82}
@media(max-width:720px){.intro-car{left:0}.name-row:first-child{transform:translateX(calc(-10px * var(--hero-away,0)))}.name-row:last-child{transform:translateX(calc(10px * var(--hero-away,0)))}}
@media(prefers-reduced-motion:reduce){.name-heading,.snow-letter,.name-row{transform:none!important}.snow-cap,.snow-letter::before{display:none}.scroll-line-ink{transform:none!important;opacity:1!important;will-change:auto}}
.snow-cap{z-index:2;filter:none}
.snow-letter::before{z-index:-1}
.snow-cap{clip-path:polygon(0 0,100% 0,100% 28%,93% 27%,89% 30%,87% 36%,86% 46%,84% 50%,82% 48%,80% 35%,77% 30%,68% 29%,64% 33%,62% 48%,60% 54%,57% 55%,55% 51%,53% 34%,50% 30%,42% 29%,38% 33%,36% 41%,34% 44%,31% 42%,29% 34%,26% 30%,17% 29%,13% 33%,11% 37%,8% 36%,5% 30%,0 28%)}
@keyframes snow-thaw{from{clip-path:polygon(0 0,100% 0,100% 28%,93% 27%,89% 30%,87% 36%,86% 46%,84% 50%,82% 48%,80% 35%,77% 30%,68% 29%,64% 33%,62% 48%,60% 54%,57% 55%,55% 51%,53% 34%,50% 30%,42% 29%,38% 33%,36% 41%,34% 44%,31% 42%,29% 34%,26% 30%,17% 29%,13% 33%,11% 37%,8% 36%,5% 30%,0 28%)}to{clip-path:polygon(0 0,100% 0,100% 30%,93% 29%,89% 32%,87% 42%,86% 59%,84% 64%,82% 62%,80% 39%,77% 32%,68% 31%,64% 35%,62% 60%,60% 67%,57% 68%,55% 63%,53% 37%,50% 32%,42% 31%,38% 35%,36% 52%,34% 56%,31% 53%,29% 37%,26% 32%,17% 31%,13% 35%,11% 47%,8% 46%,5% 32%,0 30%)}}
