@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#090909;--paper:#eeeae4;--muted:#9d9a96;--red:#ff4935;--line:#ffffff25;--font:'DM Sans',Arial,sans-serif;--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--paper);font-family:var(--font);overflow-x:clip}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}a,button{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:6px}::selection{background:var(--red);color:#090909}.skip{position:fixed;top:-80px;left:20px;padding:14px;background:var(--red);z-index:100}.skip:focus{top:20px}.header{height:94px;position:absolute;inset:0 4%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);z-index:10}.brand{font-weight:800;font-size:34px;letter-spacing:-5px}.brand span{color:var(--red);font-size:22px;vertical-align:top;padding-left:5px}.header nav{display:flex;gap:36px;font-size:14px}.header nav a{color:#c8c4c0;transition:color .2s}.header nav a:hover{color:var(--red)}sup{font-size:10px;color:var(--red)}.contact-link{font-size:12px;letter-spacing:1px;display:flex;gap:30px}.contact-link span{color:var(--red);font-size:20px}.hero{min-height:780px;height:100svh;position:relative;padding:136px 4% 30px;isolation:isolate;background:#090909}.scene-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}.hero-top,.overline,.word-baseline,.section-label{display:flex;justify-content:space-between;font-size:12px;letter-spacing:1.7px}.eyebrow{font-size:12px;letter-spacing:2px}.edition{color:var(--muted)}.hero-word{margin-top:clamp(75px,11vh,145px)}.overline{width:99%;color:#c8c4c0;font-size:11px}.cross{color:var(--red);font-size:21px;line-height:12px}.hero h1{font-family:var(--display);font-size:clamp(140px,25.4vw,430px);line-height:.8;letter-spacing:-.025em;margin:20px 0 27px;font-weight:800;transform-origin:bottom;animation:materialise 1.6s both;text-shadow:0 12px 80px #ff240f18}.period{color:var(--red)}.word-baseline{padding-top:12px;border-top:1px solid var(--line);color:#b8b1ab;font-size:12px;letter-spacing:3px}.hero-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:48px;animation:materialise 1.5s .4s both}.hero-bottom p{font-size:17px;line-height:1.6;color:#c0bab3}.round-link{display:flex;align-items:center;gap:30px;font-size:12px;letter-spacing:1px}.round-link i{display:grid;place-items:center;font-size:27px;font-style:normal;width:64px;height:64px;border:1px solid #9f453a;border-radius:50%;transition:.3s}.round-link:hover i{background:var(--red);color:#080808;transform:rotate(45deg)}.scroll-cue{display:flex;flex-direction:column;gap:20px;align-items:flex-end;font-size:10px;letter-spacing:2px}.scroll-cue span:last-child{font-size:24px;color:var(--red)}.hero-index{position:absolute;bottom:27px;font-size:12px;color:var(--red)}.hero-index span{color:#77716c;margin-left:14px}.flow{position:relative;background:#090909}.pinned-section{height:155svh;min-height:1050px}.sticky-scene{height:100svh;min-height:720px;position:sticky;top:0;isolation:isolate;padding:36px 4%;overflow:clip;background:radial-gradient(ellipse at 65% 60%,#230d0a 0,transparent 65%),#090909}.section-label{font-size:11px;color:#b7b1ab;padding-bottom:25px;border-bottom:1px solid var(--line);position:relative;z-index:1}.section-label span:first-child{color:#e6dfd7}.accent{color:var(--red)}h2{font-size:clamp(40px,5.2vw,88px);line-height:1.06;letter-spacing:-.055em;font-weight:500;margin:20px 0}em{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.06em}.universe-copy{position:relative;margin-top:90px;width:54%;z-index:2}.universe-copy p{color:#afa8a2;font-size:16px;line-height:1.9;max-width:490px}.skill-orbit{position:absolute;inset:125px 4% 125px 53%;perspective:900px}.skill{position:absolute;background:linear-gradient(125deg,#3e272299,#131110e8);border:1px solid #b879623f;box-shadow:0 20px 50px #0008;display:flex;flex-direction:column;gap:30px;padding:23px;min-width:150px;font-size:27px;letter-spacing:-1px;transform:rotate(var(--rot));animation:float 8s ease-in-out infinite;animation-delay:var(--delay);backdrop-filter:blur(8px)}.skill small{font-size:9px;letter-spacing:1.5px;color:#b68c7b}.s1{left:28%;top:6%;--rot:-9deg;--delay:-1s}.s2{right:0;top:27%;--rot:8deg;--delay:-4s}.s3{left:0;top:35%;--rot:-5deg;--delay:-6s}.s4{left:40%;top:56%;--rot:6deg;--delay:-2s}.s5{left:3%;top:79%;--rot:-7deg;--delay:-5s}.s6{right:-1%;top:89%;--rot:8deg;--delay:-3s}.universe-bottom{position:absolute;bottom:32px;left:4%;right:4%;display:flex;align-items:flex-end;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px;font-size:13px}.universe-bottom>span{white-space:nowrap}.universe-bottom p{max-width:610px;width:60%;color:#90867e;line-height:1.8;margin:0;font-size:12px}.journey-heading{margin-top:40px;display:flex;align-items:end;justify-content:space-between}.journey-heading p{color:var(--muted);font-size:14px;margin-bottom:25px}.time-machine{height:calc(100% - 220px);position:relative}.clock{position:absolute;left:0;top:20px;width:43%;height:360px;display:grid;place-items:center}.clock-face{position:relative;width:300px;height:300px;border:1px solid #87534366;border-radius:50%;background:repeating-conic-gradient(from 0deg,#ad7c4944 0deg 1deg,transparent 1deg 6deg);box-shadow:0 0 0 20px #9d482b08,0 0 0 21px #9d482b25,inset 0 0 90px #070504}.clock-face:before{content:'';position:absolute;inset:13px;background:radial-gradient(circle,#2c130e,#0e0a09);border-radius:50%;border:1px solid #81583b44}.clock-number{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);font-size:150px;color:#996c4e24}.clock-face b{position:absolute;width:18px;height:18px;border-radius:50%;top:calc(50% - 9px);left:calc(50% - 9px);background:radial-gradient(circle at 30% 30%,#ffd9ab,#663924);box-shadow:0 0 20px #ff4d2c66;z-index:2}.clock-hand{position:absolute;height:125px;width:3px;top:50%;left:calc(50% - 1px);background:linear-gradient(#9b4c29,#ffba7c);box-shadow:0 0 12px #ff573c;transform-origin:50% 0;transform:rotate(-57deg);transition:transform .65s cubic-bezier(.2,.8,.2,1);z-index:1}.clock-hand:after{content:'';position:absolute;height:110px;width:2px;background:#b38861;transform:rotate(74deg);transform-origin:top}.clock-label{position:absolute;top:0;font-size:9px;letter-spacing:3px;color:#976849}.year-rail{position:absolute;bottom:68px;left:0;right:0;display:flex;justify-content:space-between;border-top:1px solid #9f5b3d66}.year-button{position:relative;padding:24px 10px;background:none;border:0;color:#84766a;font-family:var(--display);font-size:32px;cursor:pointer;transition:color .3s}.year-button:before{content:'';position:absolute;top:-5px;left:50%;width:8px;height:8px;border:1px solid #b36f50;background:#160f0c;border-radius:50%}.year-button[aria-pressed=true]{color:#ffd3ad}.year-button[aria-pressed=true]:before{background:var(--red);box-shadow:0 0 22px 5px #ff513877}.year-story{position:absolute;left:51%;top:58px;right:5%;min-height:230px;border-left:1px solid #bc674340;padding:0 0 0 35px}.year-story .eyebrow{color:#d0946a}.year-story h3{font-size:30px;font-weight:500;letter-spacing:-1px;line-height:1.2}.year-story p{color:#b1a093;font-size:16px;line-height:1.8;max-width:440px}.journey-bottom{position:absolute;bottom:30px;left:4%;right:4%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px;color:#b4967b}.work{padding:36px 4% 65px;background:#11100f}.work-heading{display:flex;align-items:end;justify-content:space-between;margin:55px 0 50px}.work-heading p{font-size:14px;color:var(--muted);line-height:1.8}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 28px}.project-card{border:0;background:transparent;text-align:left;padding:0;cursor:pointer;min-width:0}.project-card:first-child{grid-column:1/-1}.project-art{position:relative;min-height:310px;overflow:hidden;background:var(--art-bg);border:1px solid #ffffff10;display:grid;place-items:center;transition:filter .4s}.project-card:first-child .project-art{height:450px}.project-card:hover .project-art{filter:brightness(1.2)}.project-art:after{content:'↗';position:absolute;right:22px;bottom:22px;width:42px;height:42px;border:1px solid #ffffff40;border-radius:50%;display:grid;place-items:center;font-size:22px;transition:transform .3s}.project-card:hover .project-art:after{transform:rotate(45deg)}.project-number{position:absolute;left:24px;top:22px;font-size:11px;letter-spacing:2px;color:#ffffff80}.project-caption{display:flex;justify-content:space-between;gap:15px;align-items:start;padding-top:18px}.project-caption h3{margin:0;font-size:22px;font-weight:500;letter-spacing:-.6px}.project-caption p{margin:8px 0 0;color:#958d86;font-size:13px}.project-caption>span{font-size:11px;color:#aa9f95;padding-top:6px;white-space:nowrap}.project-visual{width:75%;max-width:650px;transform:rotate(-3deg);box-shadow:0 35px 80px #0008;border:1px solid #ffffff22;transition:transform .6s}.project-card:hover .project-visual{transform:rotate(0deg) translateY(-5px)}.mini-bar{height:29px;padding:9px 12px;display:flex;gap:5px;background:#ffffff0a;border-bottom:1px solid #ffffff15}.mini-bar i{width:5px;height:5px;background:#ffffff45;border-radius:50%}.mini-content{padding:27px;background:#0d221a}.mini-brand{font-size:12px;letter-spacing:1px;color:#bdda9f}.mini-content h4{font-family:Georgia,serif;font-size:40px;font-weight:400;line-height:1.1;max-width:350px;margin:24px 0;color:#e2e9cf}.mini-tags{display:flex;gap:8px}.mini-tags span{font-size:9px;border:1px solid #bdda9f40;padding:7px;color:#bfd4b0}.code-window{font-family:monospace;line-height:1.85;font-size:13px;background:#101417;padding:23px;color:#939daa}.code-window b{color:#a6d5f0;font-weight:400}.code-window .green{color:#a8c997}.diagram{background:#1b1117;padding:38px 24px;display:flex;align-items:center;justify-content:center;gap:13px}.diagram span{padding:17px 12px;border:1px solid #c490ac5c;font-size:12px;color:#ddaac7}.diagram i{font-style:normal;color:#cb8ba7}.bar-chart{background:#191711;padding:30px;display:flex;gap:20px;align-items:end;height:205px}.bar-chart div{flex:1;background:linear-gradient(#bd9c62,#634c2822);height:var(--h);position:relative}.bar-chart span{position:absolute;bottom:-20px;left:0;font-size:9px;color:#d0b687}.ledger{background:#121a20;padding:25px}.ledger h4{font-size:14px;font-weight:400;color:#819bac;margin:0 0 15px}.ledger strong{font-size:32px;font-weight:500}.ledger p{font-size:11px;padding-top:17px;border-top:1px solid #ffffff20;color:#829aa9}.github-row{display:flex;justify-content:space-between;margin-top:58px;padding:25px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:center}.github-row>span:first-child{font-size:11px;letter-spacing:1.5px;color:#938a84}.github-row>span:last-child{font-size:20px}.github-row b{color:var(--red);padding-left:25px}.beyond{padding:36px 4% 95px;background:#e7e2d9;color:#211e1b}.beyond .section-label{color:#77706a;border-color:#211e1b30}.beyond .section-label span:first-child{color:#211e1b}.beyond-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:8%;padding-top:65px}.beyond h2{font-size:clamp(40px,4.7vw,72px)}.credentials article{padding:24px 0;border-bottom:1px solid #211e1b30}.credentials article:first-child{padding-top:0}.credentials article>span{font-size:10px;letter-spacing:2px;color:#76675d}.credentials h3{font-size:21px;font-weight:500;letter-spacing:-.6px}.credentials p{font-size:14px;line-height:1.9;color:#6c625b}.finale{position:relative;isolation:isolate;padding:35px 4% 25px;min-height:880px;overflow:clip;background:radial-gradient(ellipse at 50% 80%,#4a120c,#0b0908 65%)}.finale-copy{position:relative;z-index:2;margin-top:85px}.finale h2{font-size:clamp(65px,9vw,150px);max-width:950px}.finale h2>.accent{font-size:.65em;padding-left:30px;display:inline-block;vertical-align:top}.email{display:inline-flex;gap:35px;border-bottom:1px solid #a1755f;padding:20px 0;font-size:16px;word-break:break-word}.email span{color:var(--red)}.footer-word{font-family:var(--display);font-size:29vw;line-height:.7;color:#dc372623;position:absolute;bottom:53px;left:3%;font-weight:800;letter-spacing:-.02em;z-index:-1}.footer-bottom{position:absolute;bottom:28px;left:4%;right:4%;display:flex;justify-content:space-between;border-top:1px solid #ffffff25;padding-top:22px;font-size:10px;letter-spacing:1px;color:#b8a59a}.motion-toggle{position:fixed;right:15px;bottom:12px;width:30px;height:30px;border:1px solid #ffffff25;background:#15110ee0;border-radius:50%;z-index:20;font-size:12px;cursor:pointer;opacity:.7}.project-dialog{background:#151311;color:var(--paper);border:1px solid #766051;width:min(680px,90vw);padding:60px 45px;max-height:85svh;overflow:auto}.project-dialog::backdrop{background:#000c;backdrop-filter:blur(10px)}.dialog-close{position:absolute;right:18px;top:15px;border:0;background:transparent;padding:10px;cursor:pointer}.dialog-content h2{font-size:42px;letter-spacing:-2px}.dialog-content p{color:#afa49a;line-height:1.9;font-size:16px}.dialog-tech{font-size:12px!important;color:var(--red)!important}.dialog-content a{display:inline-block;border-bottom:1px solid var(--red);padding:16px 0;margin-top:15px}.reveal{opacity:1}.js-motion .reveal{opacity:0;transform:translateY(24px);transition:opacity 1s,transform 1s}.js-motion .reveal.visible{opacity:1;transform:none}.motion-paused *{animation-play-state:paused!important}.motion-paused .reveal{opacity:1;transform:none}.motion-paused{scroll-behavior:auto}@keyframes materialise{from{opacity:0;filter:blur(15px);transform:translateY(20px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}@keyframes float{0%,100%{transform:translateY(0) rotate(var(--rot))}50%{transform:translateY(-15px) rotate(calc(var(--rot) + 2deg))}}
@media(min-width:1600px){.hero-word{margin-top:10vh}.hero-bottom{margin-top:65px}.universe-copy{margin-top:140px}}@media(max-width:900px){.hero{min-height:700px}.hero h1{font-size:25vw}.hero-word{margin-top:120px}.hero-bottom{margin-top:50px}.hero-bottom p{font-size:14px}.round-link{gap:15px;font-size:10px}.round-link i{width:45px;height:45px}.universe-copy{width:60%}.skill-orbit{left:61%;right:3%;opacity:.8}.skill{min-width:120px;padding:15px;font-size:20px;gap:20px}.s3{left:-5%}.s2,.s6{right:-10%}.universe-bottom p{font-size:11px}.clock{width:45%}.clock-face{width:235px;height:235px}.clock-hand{height:100px}.clock-number{font-size:120px}.year-story{left:49%;right:0;padding-left:25px}.year-story h3{font-size:25px}.year-story p{font-size:14px}.mini-content h4{font-size:30px}.project-caption{display:block}.project-caption>span{display:block;margin-top:8px}.beyond-layout{gap:5%}.finale{min-height:800px}}
@media(max-width:600px){.header{height:76px;inset:0 6%}.brand{font-size:29px}.header nav{gap:19px;font-size:12px}.contact-link{font-size:10px;gap:8px}.contact-link span{font-size:16px}.hero{padding:110px 6% 24px;min-height:680px;height:100svh}.hero-top .eyebrow{font-size:9px;letter-spacing:1px;max-width:170px;line-height:1.8}.edition{font-size:9px;letter-spacing:1px}.hero-word{margin-top:130px}.hero h1{font-size:25vw;letter-spacing:-.035em;margin:24px 0}.overline{font-size:8px;letter-spacing:1px}.overline .cross{display:none}.word-baseline{font-size:8px;letter-spacing:1.2px}.hero-bottom{margin-top:35px;flex-wrap:wrap;gap:25px}.hero-bottom p{font-size:14px}.round-link{font-size:9px;gap:12px}.round-link i{width:40px;height:40px}.scroll-cue{width:100%;flex-direction:row;align-items:center;justify-content:space-between;font-size:9px;margin-top:24px}.hero-index{font-size:9px}.pinned-section{height:135svh;min-height:950px}.sticky-scene{padding:25px 6%;min-height:780px}.section-label{font-size:9px;letter-spacing:1px;gap:30px;line-height:1.6;padding-bottom:18px}.section-label span:last-child{text-align:right;max-width:145px}.universe-copy{margin-top:45px;width:100%}.eyebrow{font-size:9px;letter-spacing:1.6px}h2{font-size:43px}.universe-copy p{font-size:14px;line-height:1.8;max-width:100%}.skill-orbit{inset:360px 6% 150px 6%;opacity:1;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-content:center}.skill{position:relative;inset:auto;min-width:0;padding:17px 10px;font-size:17px;gap:18px;--rot:0deg!important}.skill small{font-size:7px;letter-spacing:.6px}.universe-bottom{left:6%;right:6%;bottom:25px;display:block}.universe-bottom>span{font-size:11px}.universe-bottom p{width:100%;font-size:10px;margin-top:10px;line-height:1.9}.journey-heading{display:block;margin-top:32px}.journey-heading h2{font-size:39px}.journey-heading p{font-size:12px}.time-machine{height:550px}.clock{top:0;left:auto;right:8px;width:180px;height:200px;opacity:.7}.clock-face{width:155px;height:155px}.clock-label{font-size:6px;letter-spacing:1px}.clock-hand{height:67px}.clock-hand:after{height:57px}.clock-number{font-size:85px}.year-rail{left:0;top:45px;bottom:65px;right:auto;width:55px;flex-direction:column;border-top:0;border-left:1px solid #9f5b3d66}.year-button{font-size:23px;padding:12px 0 12px 22px}.year-button:before{left:-5px;top:50%}.year-story{left:82px;right:0;top:205px;padding-left:0;border:0;min-height:0}.year-story h3{font-size:25px;margin:16px 0}.year-story p{font-size:14px;line-height:1.7}.year-story .eyebrow{font-size:9px}.journey-bottom{left:6%;right:6%;font-size:8px;gap:25px;letter-spacing:1px}.work{padding:25px 6% 40px}.work-heading{display:block;margin:35px 0}.work-heading p{font-size:13px}.project-grid{grid-template-columns:1fr;gap:34px}.project-card:first-child{grid-column:auto}.project-card:first-child .project-art,.project-art{min-height:250px;height:280px}.project-visual{width:80%}.mini-content{padding:20px}.mini-content h4{font-size:26px;margin:18px 0}.mini-tags span{font-size:7px;padding:5px}.project-caption h3{font-size:20px}.project-caption p{font-size:12px}.project-caption>span{font-size:10px}.github-row{align-items:start;gap:20px;margin-top:35px}.github-row>span:first-child{font-size:8px;line-height:1.8;max-width:130px}.github-row>span:last-child{font-size:14px;white-space:nowrap}.github-row b{padding-left:5px}.beyond{padding:25px 6% 50px}.beyond-layout{grid-template-columns:1fr;gap:35px;padding-top:30px}.beyond h2{font-size:44px}.credentials h3{font-size:20px}.credentials p{font-size:13px}.finale{padding:25px 6%;min-height:740px}.finale-copy{margin-top:110px}.finale h2{font-size:63px}.finale h2>.accent{padding-left:12px;font-size:.5em}.email{font-size:12px;gap:10px;max-width:100%}.footer-word{font-size:29vw;bottom:105px}.footer-bottom{left:6%;right:6%;font-size:8px;flex-wrap:wrap;gap:25px;line-height:1.8}.footer-bottom>span{width:100%}.project-dialog{padding:50px 25px}.dialog-content h2{font-size:33px}.dialog-content p{font-size:14px}}
@media(max-width:600px){.universe{min-height:1120px}.universe .sticky-scene{min-height:980px}.skill-orbit{position:relative;inset:auto;margin-top:35px;gap:12px}.universe-bottom{bottom:25px}.universe-copy h2{font-size:39px}.diagram{padding:28px 10px;gap:7px}.diagram span{padding:14px 7px;font-size:10px}}
.work .identity-art{--identity:#b9db9b;background:radial-gradient(ellipse at 50% 25%,color-mix(in srgb,var(--identity) 13%,transparent),transparent 65%),var(--art-bg)}.work .gateway{--identity:#a3cce9}.work .cash{--identity:#8bddc8}.work .energy{--identity:#f0ca6e}.work .cinema{--identity:#e3a5d7}.identity-backdrop{position:absolute;left:50%;top:51%;transform:translate(-50%,-50%);font-family:var(--display);font-size:clamp(75px,9vw,155px);font-weight:800;letter-spacing:.025em;color:var(--identity);opacity:.075;white-space:nowrap;pointer-events:none}.project-identity{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:15px;padding:52px 22px 40px;max-width:100%;transition:transform .5s}.identity-mark{width:94px;height:94px;display:flex;justify-content:center;align-items:center;border:1px solid color-mix(in srgb,var(--identity) 45%,transparent);border-radius:24px;background:linear-gradient(140deg,color-mix(in srgb,var(--identity) 22%,transparent),#08080844);box-shadow:inset 0 1px 0 #ffffff25,0 20px 45px #0005,0 0 50px color-mix(in srgb,var(--identity) 9%,transparent);color:var(--identity);font-size:49px;font-weight:600;letter-spacing:-5px;line-height:1;transform:rotate(-8deg);transition:transform .5s}.identity-mark span{font-size:.55em;letter-spacing:-2px;align-self:center;margin-left:3px}.agri .identity-mark{font-family:Georgia,serif;border-radius:50% 50% 24px 50%;font-weight:400}.gateway .identity-mark{border-radius:16px;font-weight:700}.cash .identity-mark{font-family:Georgia,serif;letter-spacing:-4px}.cash .identity-mark span{font-size:.75em}.energy .identity-mark{font-size:40px;letter-spacing:-3px}.energy .identity-mark span{font-size:.65em}.cinema .identity-mark{border-radius:50%;font-family:var(--display);font-size:58px}.cinema .identity-mark span{font-size:24px;margin-left:5px}.project-identity>strong{font-size:clamp(22px,2.25vw,34px);font-weight:500;letter-spacing:-1px;line-height:1.15}.identity-detail{font-size:9px;letter-spacing:1.8px;color:var(--identity);opacity:.8;line-height:1.7}.project-card:hover .project-identity{transform:translateY(-5px)}.project-card:hover .identity-mark{transform:rotate(0deg) scale(1.05)}.project-card:first-child .identity-mark{width:125px;height:125px;font-size:65px}.project-card:first-child .identity-backdrop{font-size:clamp(150px,22vw,340px)}.project-card:first-child .project-identity{gap:20px}.project-card:first-child .project-identity>strong{font-size:clamp(26px,3.2vw,45px)}
@media(max-width:600px){.project-card:first-child .identity-mark{width:94px;height:94px;font-size:49px}.project-card:first-child .project-identity{gap:15px}.identity-detail{font-size:8px;letter-spacing:1.2px}.project-identity{padding-top:42px}.project-card:first-child .project-identity>strong{font-size:26px}.identity-backdrop{font-size:80px}.project-card:first-child .identity-backdrop{font-size:125px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal{opacity:1;transform:none}}

/* Contact and internship enquiries */
.contact-finale{min-height:0;padding-bottom:30px}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:8%;position:relative;z-index:1;margin:75px 0 100px}.contact-layout .finale-copy{margin-top:0}.contact-layout h2{font-size:clamp(55px,6.2vw,100px);margin:28px 0}.internship-status{display:inline-block;color:#ffc4b6;background:#ff493510;border:1px solid #ff49355c;padding:10px 15px;font-size:12px;letter-spacing:1.5px;border-radius:30px}.contact-intro{font-size:16px;line-height:1.85;color:#bbaeaa;max-width:470px}.contact-methods{margin-top:35px}.contact-methods>a{display:flex;flex-direction:column;gap:10px;border-bottom:1px solid var(--line);padding:18px 0}.contact-methods>a>span{font-size:11px;letter-spacing:2px;color:#ad8e82}.contact-methods strong{font-size:clamp(13px,1.25vw,18px);font-weight:400;overflow-wrap:anywhere}.contact-methods a:hover strong{color:var(--red)}.contact-methods>p{font-size:13px;color:#a98f82;margin-top:25px}.contact-form{padding:32px;border:1px solid #ffffff25;background:#120d0bbb;backdrop-filter:blur(12px)}.contact-form h3{font-size:30px;letter-spacing:-1px;font-weight:500;margin:15px 0}.contact-form p{font-size:13px;line-height:1.7;color:#b4a59d}.contact-form label{display:block;font-size:14px;margin:22px 0 9px}.contact-form input,.contact-form select,.contact-form textarea{font:inherit;font-size:16px;width:100%;background:#090807;color:var(--paper);border:1px solid #ffffff30;padding:13px 14px;border-radius:0}.contact-form textarea{resize:vertical;min-height:120px}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#81766f}.contact-form :is(input,select,textarea):focus-visible{outline:2px solid var(--red);outline-offset:3px}.contact-form button{border:1px solid var(--red);background:var(--red);color:#140a06;padding:15px 18px;margin-top:24px;width:100%;display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;letter-spacing:1px;cursor:pointer}.contact-form button:hover{background:#ff705d}.contact-form button:disabled{opacity:.5;cursor:not-allowed}.contact-form .contact-fallback{font-size:12px}.contact-fallback a{text-decoration:underline;text-underline-offset:3px;color:#eee2d8}.contact-form #contact-status:empty{display:none}.contact-finale .footer-bottom{position:relative;inset:auto}.contact-finale .footer-word{bottom:65px}
@media(max-width:750px){.contact-layout{grid-template-columns:1fr;gap:40px;margin:45px 0 80px}.contact-layout h2{font-size:65px}.contact-form{padding:24px}.contact-methods strong{font-size:15px}.contact-intro{font-size:15px}.contact-finale .footer-bottom{left:auto;right:auto;bottom:auto}.contact-form h3{font-size:27px}}

/* Profile photo in a responsive portrait card. */
.hero-with-portrait{height:auto;min-height:100svh;padding-bottom:78px}.hero-composition{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:center;gap:5%;margin-top:55px}.hero-with-portrait .hero-word{margin-top:0;min-width:0}.hero-with-portrait h1{font-size:clamp(110px,16vw,280px);margin:27px 0;letter-spacing:-.035em}.hero-with-portrait .overline{font-size:10px;letter-spacing:1px;gap:12px}.hero-with-portrait .word-baseline{font-size:10px;letter-spacing:1.5px;gap:18px;line-height:1.6}.hero-portrait{width:min(100%,360px);margin:0 auto;perspective:1000px;animation:portrait-arrive 1.4s cubic-bezier(.2,.7,.2,1) both;animation-delay:.2s}.portrait-frame{position:relative;isolation:isolate;border:1px solid #ff786850;padding:7px;background:linear-gradient(145deg,#51231e,#100d0c 55%);box-shadow:0 24px 65px #0009,0 0 65px #ed331621;transform:rotate(2deg);transition:transform .65s cubic-bezier(.2,.8,.2,1),box-shadow .65s;overflow:hidden}.portrait-frame img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;border-radius:1px}.portrait-frame:after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 25%,#ffffff12 45%,#ffffff25 50%,transparent 65%);transform:translateX(-130%);pointer-events:none;animation:portrait-glint 1.8s 1.2s both}.hero-portrait figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:22px;font-size:8px;letter-spacing:1.5px;line-height:1.6;color:#b6a19a}.hero-portrait figcaption span:last-child{color:#e18471}.hero-with-portrait .hero-bottom{margin-top:34px}.hero-portrait:hover .portrait-frame{transform:rotate(0deg) translateY(-5px);box-shadow:0 30px 75px #000a,0 0 85px #ed331633}@keyframes portrait-arrive{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@keyframes portrait-glint{to{transform:translateX(130%)}}
@media(min-width:1600px){.hero-composition{margin-top:75px}.hero-portrait{width:400px}.hero-with-portrait .hero-bottom{margin-top:45px}}
@media(max-width:900px){.hero-with-portrait .overline .cross{display:none}.hero-with-portrait .overline{font-size:8px}.hero-with-portrait .word-baseline{font-size:8px;letter-spacing:1px}.hero-with-portrait h1{font-size:15.8vw}.hero-composition{gap:4%;margin-top:80px}.hero-portrait figcaption{font-size:8px;letter-spacing:1px}}
@media(max-width:600px){.hero-with-portrait{padding-bottom:62px}.hero-composition{grid-template-columns:1fr;gap:32px;margin-top:48px}.hero-with-portrait h1{font-size:25vw;margin:24px 0}.hero-with-portrait .hero-word{margin-top:0}.hero-portrait{width:min(70%,260px)}.hero-portrait figcaption{justify-content:center;text-align:center;margin-top:15px}.hero-portrait figcaption span{width:100%}.hero-with-portrait .hero-bottom{margin-top:27px;gap:14px}.hero-with-portrait .scroll-cue{margin-top:8px}.portrait-frame{transform:rotate(1.5deg)}}
@media(prefers-reduced-motion:reduce){.hero-portrait,.portrait-frame:after{animation:none}.portrait-frame:after{display:none}.hero-portrait .portrait-frame{transform:none;transition:none}}
.motion-paused .hero-portrait{animation:none;opacity:1;transform:none}.motion-paused .portrait-frame:after{display:none}.motion-paused .hero-portrait .portrait-frame{transition:none;transform:none}

/* A viewport-fitted portrait with an accessible code reveal. */
@media(min-width:751px){.hero-with-portrait{padding-top:112px;padding-bottom:42px;min-height:100svh}.hero-with-portrait .hero-composition{margin-top:18px;gap:5%}.hero-with-portrait .hero-portrait{width:clamp(150px,calc((100svh - 420px)*.75),330px)}.hero-with-portrait .hero-bottom{margin-top:8px}.hero-with-portrait .hero-bottom p{margin:8px 0}.hero-with-portrait .portrait-frame{transform:none}.hero-with-portrait .hero-portrait figcaption{margin-top:7px;font-size:8px;gap:3px}.hero-with-portrait h1{font-size:clamp(110px,15vw,260px)}}
.portrait-frame{padding:0;aspect-ratio:3/4;background:#080d11;overflow:hidden;--light-x:50%;--light-y:50%}.portrait-frame .portrait-original{position:relative;z-index:2;width:100%;height:100%;object-fit:contain;transition:opacity .6s ease}.portrait-frame .portrait-cutout{position:absolute;inset:0;z-index:3;width:100%;height:100%;object-fit:fill;opacity:0;pointer-events:none;transition:opacity .6s ease,filter .6s ease}.portrait-code{position:absolute;inset:0;margin:0;padding:16% 7% 0;font:clamp(8px,1.05vw,13px)/1.9 monospace;white-space:pre-wrap;overflow:hidden;color:#70a794;background:radial-gradient(circle at var(--light-x) var(--light-y),#8a2c244d,transparent 60%),linear-gradient(135deg,#101d20,#070708);z-index:1;opacity:0;transition:opacity .6s}.portrait-code span{color:#e59981}.portrait-frame:before{content:'';position:absolute;inset:0;z-index:4;pointer-events:none;box-shadow:inset 0 0 30px #ff482644;border:1px solid #ff9a7677;opacity:0;transition:opacity .6s}.hero-portrait.code-active .portrait-original{opacity:0}.hero-portrait.code-active .portrait-cutout{opacity:1;filter:drop-shadow(0 0 2px #ffb086) drop-shadow(0 0 9px #ff492c99)}.hero-portrait.code-active .portrait-code,.hero-portrait.code-active .portrait-frame:before{opacity:1}.hero-portrait.code-active .portrait-frame{box-shadow:0 20px 55px #0008,0 0 35px #ef503344}.portrait-frame:after{animation:none!important;opacity:0;transform:none;background:linear-gradient(115deg,transparent 20%,#ffc6a71c 48%,transparent 65%);transition:opacity .65s}.hero-portrait.code-active .portrait-frame:after{opacity:1;z-index:5}.portrait-toggle{display:block;width:100%;border:0;border-bottom:1px solid #e97b5940;background:none;color:#e5ad98;font:inherit;font-size:10px;letter-spacing:.4px;padding:9px 0;cursor:pointer;text-align:left}.portrait-toggle:disabled{visibility:hidden}.hero-portrait:hover .portrait-frame{transform:none}.hero-portrait{--light-x:50%;--light-y:50%}.portrait-frame{--light-x:inherit;--light-y:inherit}
@media(max-width:750px){.hero-with-portrait .hero-composition{grid-template-columns:1fr;margin-top:35px;gap:25px}.hero-with-portrait .hero-portrait{width:min(65vw,260px)}.hero-with-portrait h1{font-size:25vw}.hero-with-portrait .hero-word{width:100%}.hero-with-portrait .portrait-frame{transform:none}.portrait-code{font-size:10px}.hero-portrait figcaption{margin-top:10px}.portrait-toggle{font-size:11px;text-align:center}}
@media(prefers-reduced-motion:reduce){.portrait-frame,.portrait-frame:before,.portrait-frame:after,.portrait-frame img,.portrait-code{transition:none!important}.hero-portrait{animation:none!important}}.motion-paused .portrait-frame,.motion-paused .portrait-frame img,.motion-paused .portrait-code{transition:none!important}

.portrait-frame .portrait-cutout{mask-size:100% 100%;mask-repeat:no-repeat;object-fit:contain}

/* Cutout-first introduction, shadow portrait and tie-led scroll light. */
.hero-with-portrait{--portrait-scroll:0;--tie-lift:0px;--tie-scale:1;--ghost-drift:0px;overflow:clip}.hero-ghost{position:absolute;z-index:0;right:17%;bottom:0;width:min(44vw,620px);height:auto;filter:grayscale(1) sepia(.7) brightness(.5);opacity:0;pointer-events:none;transform:translateY(var(--ghost-drift));transition:opacity 1.2s}.portrait-ready .hero-ghost{opacity:.085}.hero-with-portrait :is(.hero-top,.hero-composition,.hero-bottom,.hero-index){position:relative;z-index:1}.hero-with-portrait .hero-index{position:absolute}.effect-ready .portrait-frame{background:radial-gradient(ellipse at 50% 70%,#651c1229,transparent 65%);border-color:transparent;box-shadow:none;overflow:visible}.effect-ready .portrait-frame .portrait-original{opacity:0}.effect-ready .portrait-frame .portrait-cutout{opacity:1;filter:drop-shadow(0 0 4px #e9583033)}.effect-ready .portrait-frame .portrait-code{opacity:.18;background:transparent;mask-image:linear-gradient(transparent,#000 25%,#000 70%,transparent)}.effect-ready .portrait-frame:before,.effect-ready .portrait-frame:after{opacity:0}.effect-ready.code-active .portrait-frame{box-shadow:0 0 45px #ed402013}.effect-ready.code-active .portrait-frame .portrait-code{opacity:.85}.effect-ready.code-active .portrait-frame .portrait-cutout{filter:drop-shadow(0 0 7px #ff623e77)}.effect-ready.original-view .portrait-frame .portrait-original{opacity:1}.effect-ready.original-view .portrait-frame .portrait-cutout,.effect-ready.original-view .portrait-frame .portrait-code{opacity:0}.effect-ready.original-view .portrait-frame{overflow:hidden;border-color:#ff786850}.portrait-frame .portrait-tie{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:6;pointer-events:none;clip-path:polygon(44.8% 51.1%,50.4% 52.2%,48.2% 55.2%,44.4% 70.2%,42.8% 71.4%,43.6% 61%,45.3% 54.8%,44.2% 53%);transform-origin:46% 54%;transform:translateY(var(--tie-lift)) scale(var(--tie-scale));opacity:var(--portrait-scroll);filter:drop-shadow(0 0 5px #ff3a20) saturate(1.2)}.tie-light{position:absolute;z-index:5;left:44%;top:67%;height:28%;width:2px;background:linear-gradient(#ff5636,transparent);box-shadow:0 0 14px #f94426;transform-origin:top;transform:scaleY(var(--portrait-scroll));opacity:var(--portrait-scroll);pointer-events:none}.original-view .portrait-tie,.original-view .tie-light{display:none}.portrait-toggle{position:relative;z-index:7}.hero-with-portrait .hero-portrait{animation:none}.portrait-cutout{transition:opacity .7s,filter .7s!important}
@media(max-width:750px){.hero-ghost{right:-12%;width:85vw;bottom:80px}.portrait-ready .hero-ghost{opacity:.045}}
@media(prefers-reduced-motion:reduce){.hero-ghost{transform:none;transition:none}.portrait-tie,.tie-light{display:none}.portrait-cutout{transition:none!important}}.motion-paused .portrait-tie,.motion-paused .tie-light{display:none}.motion-paused .hero-ghost{transform:none}

/* Academic timeline and quiet portrait backdrop. */
.journey-ghost{position:absolute;left:3%;bottom:0;width:min(43vw,520px);height:auto;z-index:0;pointer-events:none;filter:grayscale(1) sepia(.7) brightness(.45);opacity:.12}.journey .time-machine,.journey-heading,.journey-bottom{position:relative;z-index:1}.journey .journey-bottom{position:absolute}.year-skills{display:flex;flex-wrap:wrap;gap:7px;list-style:none;padding:0;margin:16px 0}.year-skills li{font-size:11px;line-height:1.5;color:#d4b99f;border:1px solid #ba795c40;padding:5px 9px;background:#160e0aaa}.year-story{top:35px}.year-story h3{margin:16px 0}.year-story p{line-height:1.65;margin:10px 0}.year-story{padding-bottom:15px}.journey .year-rail{bottom:28px}.hero-with-portrait #hero-title{transition:translate .25s ease-out;will-change:translate}
@media(max-width:600px){.journey .sticky-scene{min-height:940px}.journey{min-height:1100px}.journey .time-machine{height:660px}.journey .year-rail{top:45px;bottom:100px}.journey .year-story{top:205px}.journey-ghost{left:10%;width:85%;opacity:.07}.year-skills{gap:6px}.year-skills li{font-size:10px}.year-story p{line-height:1.65}.hero-with-portrait #hero-title{translate:none!important;will-change:auto}}
@media(prefers-reduced-motion:reduce){.hero-with-portrait #hero-title{translate:none!important;transition:none;will-change:auto}}
