@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap";:root{font-family:DM Sans,sans-serif;color:#e7e9ee;background:#101319;font-synthesis:none;scroll-behavior:smooth;--blue:#a3b8ff;--blue-strong:#7f99f5;--muted:#969da9;--line:#ffffff20;--cursor-x:50vw;--cursor-y:35vh}*{box-sizing:border-box}html{background:#101319}body{margin:0;overflow-x:hidden;background:radial-gradient(circle at 70% 3%,#1b2337 0,#101319 31rem)}body:before{content:"";position:fixed;inset:0;z-index:90;pointer-events:none;background:radial-gradient(380px circle at var(--cursor-x) var(--cursor-y),#9cb1ff0d,transparent 70%);mix-blend-mode:screen}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--blue);outline-offset:6px}.site-shell{min-height:100%;position:relative;isolation:isolate}.scroll-progress{position:fixed;left:0;right:0;top:0;height:2px;z-index:200;background:#ffffff0c;pointer-events:none}.scroll-progress span{display:block;height:100%;background:linear-gradient(90deg,#6d84d8,var(--blue));box-shadow:0 0 16px #9db1ff70;transition:width .08s linear}header{position:sticky;top:0;z-index:80;max-width:1440px;margin:auto;padding:22px 6%;display:flex;justify-content:space-between;align-items:center;gap:25px;border-bottom:1px solid var(--line);background:#101319c9;backdrop-filter:blur(20px) saturate(1.25)}.brand{font-family:Manrope,sans-serif;font-size:37px;font-weight:800;letter-spacing:-2px;position:relative}.brand span{font-size:12px;vertical-align:top;margin-left:5px;line-height:2.7;letter-spacing:0;color:var(--blue);display:inline-block;animation:twinkle 4s ease-in-out infinite}nav{display:flex;gap:36px;font-size:14px;color:#b5bcc8}nav a{position:relative;padding:8px 0;transition:color .25s}nav a:after{content:"";position:absolute;left:50%;right:50%;bottom:0;height:1px;background:var(--blue);transition:left .3s,right .3s;box-shadow:0 0 10px #a3b8ff80}nav a:hover,nav a.active{color:#eef2ff}nav a.active:after,nav a:hover:after{left:0;right:0}.nav-contact{font-size:14px;border-bottom:1px solid #91a5e5;padding:7px 0;transition:color .25s,border-color .25s}.nav-contact:hover{color:var(--blue);border-color:#d6deff}.menu-toggle{display:none}.hero{max-width:1440px;margin:auto;padding:75px 6% 30px;display:grid;grid-template-columns:1.1fr 1fr;gap:40px;position:relative;align-items:center;isolation:isolate;min-height:680px;overflow:hidden}.hero:before{content:"";position:absolute;width:560px;height:560px;border:1px solid #ffffff09;border-radius:50%;right:1%;top:5%;z-index:-2;box-shadow:inset 0 0 100px #758bde0a}.hero:after{content:"";position:absolute;inset:0;z-index:-3;background-image:linear-gradient(#ffffff07 1px,transparent 1px),linear-gradient(90deg,#ffffff07 1px,transparent 1px);background-size:80px 80px;mask-image:linear-gradient(90deg,transparent,#000 55%,#000);opacity:.42}.hero-scene{position:absolute;inset:-10% -7% -8% 30%;z-index:-1;pointer-events:none;opacity:.72;filter:saturate(.9)}.hero-copy,.portrait-stage,.hero-bottom{position:relative;z-index:2}.overline,.section-label{font-size:12px;letter-spacing:2px;font-weight:500;color:#b9c1d3}.hero-kicker{display:flex;align-items:center;gap:9px}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#9db0ff;box-shadow:0 0 0 5px #9db0ff12,0 0 18px #9db0ff80;animation:statusPulse 2.6s ease-in-out infinite}.hero h1{font:600 clamp(46px,5.05vw,76px)/1.11 Manrope,sans-serif;letter-spacing:-3.5px;margin:26px 0;perspective:800px}.hero h1 .line{display:inline-block;transform-origin:left center;animation:headlineIn .9s cubic-bezier(.2,.7,.2,1) both}.hero h1 .line-2{animation-delay:.08s}.hero h1 .line-3{animation-delay:.16s}.hero h1 .accent{color:var(--blue);text-shadow:0 0 45px #8299ef20}.hero-desc{max-width:430px;color:var(--muted);line-height:1.85;font-size:16px;margin:25px 0 30px}.hero-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.magnetic{display:inline-flex;transform:translate3d(var(--mx,0),var(--my,0),0);transition:transform .28s cubic-bezier(.2,.8,.2,1);will-change:transform}.button{display:inline-flex;align-items:center;gap:10px;padding:15px 23px;border-radius:4px;font-size:14px;font-weight:600;transition:transform .25s,background .25s,box-shadow .25s,border-color .25s;position:relative;overflow:hidden}.button:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,#fff5 50%,transparent 65%);transform:translate(-140%);transition:transform .65s ease}.button:hover:before{transform:translate(140%)}.button:hover{transform:translateY(-3px)}.blue{background:var(--blue);color:#111d3f;box-shadow:0 10px 35px #7389d72b}.blue:hover{box-shadow:0 16px 42px #8298e955}.outline{border:1px solid #ffffff35;background:#ffffff05;backdrop-filter:blur(10px)}.outline:hover{border-color:#8ea5ed80;background:#ffffff09}.hero-meta{display:flex;gap:28px;color:#8b94a6;font-size:10px;letter-spacing:1.3px;margin-top:47px}.portrait-stage{position:relative;padding:20px 27px 20px 10px;perspective:1200px}.portrait-outline{position:absolute;inset:5px 9px 35px 30px;border:1px solid #94a8ed70;transform:rotate(5deg);animation:outlineFloat 6s ease-in-out infinite;z-index:-1}.portrait-orbit{position:absolute;border:1px solid #8da3ec2c;border-radius:50%;pointer-events:none;z-index:-1}.orbit-a{width:260px;height:260px;right:-55px;top:16px;animation:orbitSpin 20s linear infinite}.orbit-a:before{content:"";position:absolute;width:8px;height:8px;background:#a7b9ff;border-radius:50%;left:23px;top:39px;box-shadow:0 0 18px #a7b9ff}.orbit-b{width:190px;height:190px;left:-55px;bottom:20px;border-style:dashed;animation:orbitSpinReverse 17s linear infinite}.tilt{position:relative;transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateZ(0);transition:transform .35s cubic-bezier(.18,.84,.22,1),box-shadow .35s;transform-style:preserve-3d;will-change:transform;--gx:50%;--gy:50%}.tilt-glare{position:absolute;inset:0;pointer-events:none;z-index:20;border-radius:inherit;background:radial-gradient(360px circle at var(--gx) var(--gy),#ffffff20,transparent 55%);opacity:0;transition:opacity .3s;mix-blend-mode:screen}.tilt:hover .tilt-glare{opacity:.5}.portrait-card{height:540px;box-shadow:0 30px 70px #0006;background:#cacaca;border-radius:5px;overflow:visible}.portrait-card:hover{box-shadow:0 45px 85px #0008,0 0 0 1px #a3b8ff1a}.portrait-card>img{width:100%;height:100%;object-fit:cover;object-position:50% 32%;border-radius:5px;transform:translateZ(12px);transition:filter .35s}.portrait-card:hover>img{filter:saturate(1.05) contrast(1.015)}.portrait-caption{position:absolute;bottom:0;left:0;right:0;padding:60px 25px 23px;background:linear-gradient(transparent,#0a101dda);border-radius:0 0 5px 5px;transform:translateZ(38px)}.portrait-caption span{display:block;font-size:9px;letter-spacing:2px;color:#cfd6e6}.portrait-caption b{display:block;font-size:25px;letter-spacing:-.7px;margin-top:9px;font-weight:500}.floating-label{position:absolute;display:flex;align-items:center;gap:10px;background:#1e2737ed;border:1px solid #ffffff2c;backdrop-filter:blur(14px);padding:16px 18px;font-size:12px;box-shadow:0 10px 30px #0005;transform:translateZ(68px);border-radius:5px}.floating-label svg{color:#b4c5ff}.label-code{left:-35px;top:65px;animation:floatA 5s ease-in-out infinite}.label-mountain{right:-17px;bottom:110px;animation:floatB 5.8s ease-in-out infinite}.vertical-label{position:absolute;right:-12px;top:70px;writing-mode:vertical-rl;letter-spacing:2px;font-size:9px;color:#768199}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;margin-top:35px;font-size:10px;color:#737e91;letter-spacing:2px}.scroll-cue{display:flex;align-items:center;gap:10px}.scroll-cue>span{width:42px;height:1px;background:#59667d;position:relative;overflow:hidden}.scroll-cue>span:after{content:"";position:absolute;inset:0;background:#c4cff5;animation:scanLine 2.2s ease-in-out infinite}.ticker{margin-top:36px;padding:0;overflow:hidden;background:#1a2232;border-top:1px solid #a3b8ff25;border-bottom:1px solid #a3b8ff25;font-size:12px;letter-spacing:1.7px;color:#bac5df}.ticker-track{display:flex;width:max-content;animation:tickerMove 26s linear infinite}.ticker-group{display:flex;align-items:center;gap:30px;white-space:nowrap;padding:22px 15px}.ticker svg{width:15px;flex-shrink:0;color:#8298e7}.ticker:hover .ticker-track{animation-play-state:paused}.section{max-width:1440px;margin:auto;padding:100px 6%;scroll-margin-top:85px;position:relative}.section-label{color:#7b879e;margin-bottom:35px;font-size:11px}.section-label:before{content:"";display:inline-block;width:24px;height:1px;background:#55627a;vertical-align:middle;margin-right:10px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}h2{font:500 clamp(35px,3.8vw,55px)/1.18 Manrope,sans-serif;letter-spacing:-2px;margin:0 0 28px}h2 span{color:#8e9ab3}.about-photo{max-width:390px;height:320px;margin-top:40px;border-radius:4px;overflow:hidden;box-shadow:0 24px 60px #0004}.about-photo img{width:100%;height:100%;object-fit:cover;object-position:center 62%;transform:translateZ(24px) scale(1.035)}.about-photo>span{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#0b132bdd);padding:50px 20px 18px;font-size:9px;letter-spacing:1.5px;transform:translateZ(45px)}.photo-depth-mark{position:absolute;top:16px;right:16px;padding:7px 9px;border:1px solid #ffffff4d;background:#0d152555;font-size:9px;letter-spacing:1px;transform:translateZ(52px)}.about-copy{padding-top:0}.about-copy p,.project-copy p{font-size:16px;line-height:1.85;color:var(--muted)}.about-copy .large-copy{font-size:25px;color:#e0e5ee;line-height:1.5;margin-top:0}dl{margin:30px 0}dl>div{display:grid;grid-template-columns:130px 1fr;gap:10px;padding:17px 0;border-top:1px solid var(--line);font-size:13px;transition:padding-left .3s,border-color .3s}dl>div:hover{padding-left:10px;border-color:#879ce65c}dt{color:#7e8aa1}dd{margin:0;line-height:1.6}.personal-tags{display:flex;flex-wrap:wrap;gap:10px}.personal-tags span{display:flex;gap:7px;align-items:center;padding:9px 10px;background:#1c2330;color:#bbc5d9;font-size:11px;border-radius:3px;border:1px solid transparent;transition:transform .25s,border-color .25s}.personal-tags span:hover{transform:translateY(-3px);border-color:#7186ce45}.work{border-top:1px solid var(--line)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:40px}.section-heading h2{margin:0}.section-heading>p{font-size:15px;line-height:1.8;color:var(--muted);max-width:325px;margin:0 0 5px}.featured-project{display:grid;grid-template-columns:1.08fr 1fr;gap:55px;align-items:center}.project-art{height:420px;border:1px solid #ffffff14;background:linear-gradient(145deg,#293d38,#1d2f2b);padding:28px;display:flex;flex-direction:column;justify-content:space-between;border-radius:7px;box-shadow:0 20px 50px #0003;overflow:hidden}.project-art:before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-65px;top:-80px;border:1px solid #d5e4cf1b;box-shadow:0 0 100px #c6dfc812}.project-art-grid{position:absolute;inset:0;background-image:linear-gradient(#e7f1de0c 1px,transparent 1px),linear-gradient(90deg,#e7f1de0c 1px,transparent 1px);background-size:45px 45px;transform:translateZ(5px);mask-image:linear-gradient(140deg,#000,transparent 75%)}.project-art-header,.project-art-footer{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1.5px;color:#bfccb6;line-height:1.5;position:relative;z-index:2;transform:translateZ(34px)}.coffee-wordmark{font:600 clamp(50px,6vw,82px)/.95 Manrope,sans-serif;letter-spacing:-5px;color:#e6e8c9;transform:translateZ(58px);position:relative;z-index:2;text-shadow:0 12px 32px #0003}.coffee-wordmark>span{color:#aabfa9}.project-copy .overline{font-size:10px;letter-spacing:1.4px;color:#a5b2cb}.project-copy h3{font:500 30px/1.3 Manrope,sans-serif;letter-spacing:-1px;margin:15px 0}.tags{display:flex;flex-wrap:wrap;gap:7px}.tags span{padding:7px 10px;border:1px solid #ffffff25;border-radius:3px;font-size:11px;color:#b4bdcf;transition:background .25s,color .25s,transform .25s}.tags span:hover{background:#a3b8ff14;color:#dfe5fa;transform:translateY(-2px)}.detail-button{display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;padding:20px 0;background:none;border:0;border-bottom:1px solid var(--line);font-size:14px;margin-top:10px;transition:color .25s,border-color .25s}.detail-button:hover{color:var(--blue);border-color:#8096df66}.project-detail{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s ease,opacity .35s;opacity:0}.project-detail>div{overflow:hidden}.project-detail.open{grid-template-rows:1fr;opacity:1}.project-detail p:first-child{margin-top:18px}.repo-link{display:flex;align-items:center;gap:9px;color:#b8c8ff;font-size:14px;margin-top:22px;padding:7px 0;border-bottom:1px solid transparent;transition:border-color .25s,color .25s}.repo-link:hover{color:#dbe2ff;border-color:#8399e5}.exploration{display:grid;grid-template-columns:1fr 1fr 1.4fr auto;align-items:center;gap:25px;margin-top:40px;padding:27px;background:#171d27;border:1px solid var(--line);border-radius:6px}.exploration:hover{border-color:#7286c940}.exploration>div{display:flex;gap:12px;align-items:center;color:#9badcf;font-size:9px;letter-spacing:1.5px;transform:translateZ(32px)}.exploration h3{font-size:17px;font-weight:500;transform:translateZ(22px)}.exploration p{font-size:13px;color:#929fb6;line-height:1.7;transform:translateZ(16px)}.learning-badge{font-size:10px;padding:7px 10px;border:1px solid #667898;border-radius:30px;color:#adc0e3;white-space:nowrap;transform:translateZ(28px)}.skills{padding-top:20px}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.skill-card{border:1px solid var(--line);background:linear-gradient(145deg,#171c25,#12161d);padding:29px;border-radius:6px;overflow:hidden;min-height:330px}.skill-card:hover{border-color:#7790e252;box-shadow:0 24px 60px #0004}.skill-card:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-90px;top:-90px;background:radial-gradient(circle,#869cf51b,transparent 68%);transform:translateZ(20px)}.skill-top{display:flex;align-items:center;justify-content:space-between;color:#acbfff;transform:translateZ(38px)}.skill-top span{font-size:11px;color:#5f6a80}.skill-card h3{font-size:20px;font-weight:500;margin-top:35px;transform:translateZ(28px)}.skill-card p{font-size:14px;color:var(--muted);line-height:1.8;min-height:75px;transform:translateZ(20px)}.skill-card ul{padding:17px 0 0;border-top:1px solid var(--line);list-style:none;font-size:13px;color:#bbc6dd;line-height:2.3;transform:translateZ(17px)}.skill-card li{transition:transform .2s,color .2s}.skill-card li:hover{transform:translate(6px);color:#e1e6f5}.skill-corner{position:absolute;right:18px;bottom:18px;width:15px;height:15px;border-right:1px solid #6f84ca;border-bottom:1px solid #6f84ca;transform:translateZ(30px)}.journey{background:#151b24;max-width:none;overflow:hidden}.journey:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,#7c91d708,transparent 35%),radial-gradient(circle at 80% 70%,#43506f16,transparent 35%);pointer-events:none}.journey>.section-label,.journey>.section-heading,.gallery{max-width:1267px;margin-left:auto;margin-right:auto;position:relative;z-index:1}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;align-items:start;padding-top:20px;perspective:1200px}.photo-card{height:355px;border-radius:5px}.photo-card:nth-child(2n){margin-top:40px}.photo-card button{width:100%;height:100%;position:relative;padding:0;border:0;border-radius:5px;overflow:hidden;background:#263247;text-align:left;display:block;transform-style:preserve-3d}.photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .65s,filter .45s;transform:translateZ(10px) scale(1.02)}.photo-card button:hover img{transform:translateZ(10px) scale(1.07);filter:saturate(1.08)}.photo-shade{position:absolute;inset:0;background:linear-gradient(transparent 45%,#091124ce);transform:translateZ(20px)}.photo-text{position:absolute;bottom:20px;left:18px;right:18px;transform:translateZ(48px)}.photo-text span{font-size:9px;letter-spacing:1.3px;color:#cad4eb}.photo-text h3{font-weight:500;font-size:20px;margin:9px 0 0;letter-spacing:-.6px}.photo-plus{position:absolute;top:12px;right:12px;border:1px solid #fff8;background:#0c152940;width:33px;height:33px;border-radius:50%;display:flex;align-items:center;justify-content:center;transform:translateZ(52px);transition:transform .3s,background .3s}.photo-card:hover .photo-plus{transform:translateZ(52px) rotate(90deg);background:#7187d46c}.contact{text-align:center;padding-top:120px;padding-bottom:55px;overflow:hidden}.contact>p{font-size:11px;letter-spacing:2px;color:#8a98b1;margin:30px 0 20px;display:flex;align-items:center;justify-content:center;gap:8px}.contact h2{font-size:clamp(38px,5.7vw,78px);letter-spacing:-3px;position:relative;z-index:2}.contact h2 span{color:#a8bcff;text-shadow:0 0 55px #8ca4ff20}.contact>.magnetic{margin-top:15px}.contact-line{display:flex;justify-content:space-between;margin-top:90px;padding-top:25px;border-top:1px solid var(--line);font-size:10px;color:#75839d;letter-spacing:1px}.contact-orbit{position:absolute;border:1px solid #8398dc1b;border-radius:50%;pointer-events:none}.orbit-one{width:420px;height:420px;left:50%;top:28px;transform:translate(-50%);animation:orbitSpin 22s linear infinite}.orbit-one:after{content:"";position:absolute;width:8px;height:8px;background:#91a6ef;border-radius:50%;left:51px;top:57px;box-shadow:0 0 24px #91a6ef}.orbit-two{width:560px;height:220px;left:50%;top:130px;transform:translate(-50%) rotate(-11deg);border-style:dashed;opacity:.6}footer{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:20px 6% 40px;max-width:1440px;margin:auto;border-top:1px solid #ffffff0d}footer .brand{font-size:29px}footer>span{font-size:12px;color:#7a879f}footer>button,footer>a:last-child{font-size:12px;color:#8b9bb8;background:none;border:0;padding:10px 0;transition:color .25s}footer>button:hover,footer>a:last-child:hover{color:#dbe2fa}.lightbox{width:min(1000px,95vw);height:92svh;background:#10151f;color:#eef2fb;border:1px solid #495366;border-radius:9px;padding:20px;max-height:95svh;box-shadow:0 35px 120px #000b}.lightbox[open]{animation:modalIn .28s ease both}.lightbox::backdrop{background:#060910e8;backdrop-filter:blur(8px)}.lightbox>img{display:block;margin:auto;max-width:100%;width:auto;height:calc(100% - 65px);object-fit:contain;border-radius:5px}.close{position:absolute;right:14px;top:14px;background:#1a2335;border:1px solid #ffffff45;border-radius:50%;width:40px;height:40px;display:grid;place-items:center;z-index:2}.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;height:65px}.lightbox-bottom p{font-size:13px;color:#a9b6cf;text-align:center;line-height:1.5}.lightbox-bottom p strong{color:#eef2fb;font-weight:500}.lightbox-bottom button{background:none;border:1px solid #ffffff30;border-radius:3px;font-size:12px;padding:9px;transition:background .2s,border-color .2s}.lightbox-bottom button:hover{background:#ffffff0a;border-color:#889ee7}.reveal{opacity:0;transform:translateY(35px);filter:blur(5px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1),filter .8s}.visible{opacity:1;transform:translateY(0);filter:blur(0)}@keyframes headlineIn{0%{opacity:0;transform:translateY(28px) rotateX(-15deg)}to{opacity:1;transform:translateY(0) rotateX(0)}}@keyframes twinkle{0%,to{transform:rotate(0) scale(1);opacity:.8}50%{transform:rotate(180deg) scale(1.25);opacity:1}}@keyframes statusPulse{0%,to{transform:scale(.9);opacity:.7}50%{transform:scale(1.15);opacity:1}}@keyframes outlineFloat{0%,to{transform:rotate(5deg) translateZ(0)}50%{transform:rotate(3deg) translate3d(4px,-7px,0)}}@keyframes floatA{0%,to{margin-top:0}50%{margin-top:-9px}}@keyframes floatB{0%,to{margin-bottom:0}50%{margin-bottom:10px}}@keyframes orbitSpin{0%{rotate:0deg}to{rotate:360deg}}@keyframes orbitSpinReverse{0%{rotate:360deg}to{rotate:0deg}}@keyframes scanLine{0%{transform:translate(-100%)}50%,to{transform:translate(120%)}}@keyframes tickerMove{to{transform:translate(-50%)}}@keyframes modalIn{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}[data-motion=off] *,[data-motion=off] .tilt{animation:none!important;transition-duration:.01ms!important}[data-motion=off] .tilt{transform:none!important}[data-motion=off] .hero-scene{display:none}[data-motion=off]{scroll-behavior:auto}[data-motion=off] body:before{display:none}[data-motion=off] .reveal{opacity:1;transform:none;filter:none}@media(max-width:1050px){.hero{gap:15px}.hero h1{font-size:52px}.portrait-card{height:480px}.hero-scene{inset:-5% -12% 0 35%;opacity:.55}.about-grid{gap:50px}.featured-project{gap:30px}.project-art{height:380px}.exploration{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:repeat(2,1fr);gap:24px}.photo-card{height:420px}.photo-card:nth-child(2n){margin-top:30px}.section-heading{gap:30px}.skills-grid{gap:12px}.skill-card{padding:20px}.contact h2{font-size:60px}}@media(max-width:700px){body:before{display:none}header{padding:18px 6%;gap:15px}.brand{font-size:31px}.nav-contact{margin-left:auto;font-size:12px}.menu-toggle{display:flex;background:none;border:0;padding:5px}nav{display:none;position:absolute;z-index:10;left:6%;right:6%;top:72px;background:#151d2adf;border:1px solid #536481;border-radius:7px;padding:20px;flex-direction:column;gap:16px;backdrop-filter:blur(18px)}nav.open{display:flex;animation:modalIn .2s ease both}.hero{display:flex;flex-direction:column;padding:44px 7% 20px;gap:35px;align-items:stretch;min-height:0}.hero:after{background-size:55px 55px;mask-image:linear-gradient(transparent,#000 25%,#000)}.hero-scene{inset:32% -35% 7% 10%;opacity:.32}.hero h1{font-size:clamp(40px,10.3vw,65px);letter-spacing:-2px}.hero-desc{font-size:15px}.overline{font-size:10px;letter-spacing:1.3px}.hero-meta{margin-top:28px;font-size:9px;gap:20px}.portrait-stage{margin:0 9px 0 13px;padding:10px 15px 0 0}.portrait-card{height:460px;max-height:120vw}.label-code{left:-20px;top:45px}.floating-label{padding:12px;font-size:11px}.label-mountain{right:-15px;bottom:100px}.vertical-label{right:-15px;font-size:8px}.orbit-a{right:-35px}.orbit-b{left:-30px}.hero-bottom{margin-top:5px}.ticker-group{gap:24px;padding:19px 12px}.ticker{font-size:10px}.section{padding:65px 7%;scroll-margin-top:75px}.section-label{margin-bottom:25px;font-size:10px}.about-grid{grid-template-columns:1fr;gap:30px}h2{font-size:36px;letter-spacing:-1.6px}.about-photo{max-width:none;height:300px;margin-top:25px}.about-copy .large-copy{font-size:23px}.about-copy p{font-size:15px}.section-heading{display:block;margin-bottom:27px}.section-heading>p{margin-top:22px;font-size:14px;max-width:none}.featured-project{grid-template-columns:1fr;gap:25px}.project-art{height:340px}.coffee-wordmark{font-size:70px}.project-copy h3{font-size:27px}.exploration{padding:22px;gap:10px;grid-template-columns:1fr}.exploration p{margin:0}.learning-badge{width:max-content;margin-top:10px}.skills{padding-top:0}.skills-grid{grid-template-columns:1fr;gap:15px}.skill-card{padding:25px;min-height:0}.skill-card h3{margin-top:22px}.skill-card p{min-height:0}.gallery{gap:13px;padding-top:0}.photo-card{height:300px}.photo-card:nth-child(2n){margin-top:20px}.photo-text{left:12px;right:12px;bottom:17px}.photo-text h3{font-size:16px}.photo-text span{font-size:8px}.contact{padding-top:90px}.contact h2{font-size:39px;letter-spacing:-1.5px}.contact>.magnetic .button{font-size:12px;padding:15px}.contact-line{margin-top:60px;display:flex;flex-direction:column;gap:12px;font-size:9px}.orbit-one{width:310px;height:310px;top:60px}.orbit-two{width:380px}.magnetic{transform:none!important}footer{padding:0 7% 30px;flex-wrap:wrap;gap:15px}footer>span{width:65%;text-align:right;font-size:10px}footer>button{margin-right:auto}.lightbox{padding:12px}.lightbox-bottom{height:auto;flex-wrap:wrap;justify-content:center}.lightbox-bottom p{order:-1;width:100%;font-size:12px;margin:10px 0}.lightbox>img{height:calc(100% - 100px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}.tilt{transform:none!important}.hero-scene{display:none}.reveal{opacity:1;transform:none;filter:none}}body.intro-active{overflow:hidden}.site-shell{transition:opacity .9s ease,filter .9s ease,transform .9s ease}.site-shell--masked{opacity:.16;filter:blur(12px);transform:scale(1.02);pointer-events:none;user-select:none}.site-shell--ready{opacity:1;filter:none;transform:none}.intro-overlay{position:fixed;inset:0;z-index:500;background:radial-gradient(circle at 50% 16%,#1b2440 0,#090c14 34%,#05070c);overflow:hidden;isolation:isolate}.intro-overlay.closing{animation:introOut .9s cubic-bezier(.2,.7,.2,1) forwards}.intro-noise,.intro-grid{position:absolute;inset:0;pointer-events:none}.intro-noise{opacity:.18;background-image:radial-gradient(#ffffff14 .7px,transparent .7px);background-size:5px 5px;mix-blend-mode:soft-light}.intro-grid{background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:88px 88px;mask-image:radial-gradient(circle at center,#000 55%,transparent 92%);opacity:.4;animation:gridDrift 18s linear infinite}.intro-overlay:before,.intro-overlay:after{content:"";position:absolute;border-radius:50%;filter:blur(30px);pointer-events:none}.intro-overlay:before{width:420px;height:420px;left:-120px;top:-90px;background:#8ba3ff14}.intro-overlay:after{width:500px;height:500px;right:-170px;bottom:-180px;background:#5873d418}.intro-scene{position:absolute;inset:0;opacity:.92}.intro-content{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;min-height:100%;padding:120px 24px;pointer-events:none}.intro-eyebrow,.intro-title,.intro-identity,.intro-subtitle,.intro-status,.intro-progress,.intro-enter,.intro-link,.intro-corner{opacity:0;animation:introFadeUp .8s cubic-bezier(.2,.7,.2,1) forwards}.intro-eyebrow{font-size:11px;letter-spacing:4px;color:#b9c6e7;margin:0 0 16px;animation-delay:.25s}.intro-title{margin:0;font:700 clamp(56px,11vw,164px)/.95 Manrope,sans-serif;letter-spacing:-6px;text-shadow:0 0 35px #95acff18;animation-delay:.7s}.intro-title span{display:inline-block;background:linear-gradient(180deg,#f3f6ff,#afc0ff);-webkit-background-clip:text;background-clip:text;color:transparent}.intro-identity{margin:18px 0 0;font-size:12px;letter-spacing:4px;color:#d7e0f7;animation-delay:1.2s}.intro-subtitle{margin:16px 0 0;font-size:15px;line-height:1.8;color:#96a4c2;max-width:620px;animation-delay:1.45s}.intro-status{margin-top:28px;display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:2px;color:#d4dcf0;animation-delay:1.8s}.intro-status .status-dot{animation:statusPulse 2.2s ease-in-out infinite}.intro-progress{position:relative;width:min(360px,72vw);height:2px;background:#ffffff17;border-radius:999px;margin-top:20px;overflow:hidden;animation-delay:2.1s}.intro-progress span{display:block;height:100%;background:linear-gradient(90deg,#728cf4,#cbd9ff);box-shadow:0 0 18px #7f95df85;animation:introProgress 5.2s cubic-bezier(.25,.9,.2,1) .1s forwards;width:0}.intro-actions{position:absolute;right:30px;bottom:28px;z-index:3;display:flex;align-items:center;gap:12px}.intro-link,.intro-enter{pointer-events:auto;border-radius:999px;border:1px solid #ffffff2a;background:#ffffff08;padding:12px 18px;font-size:12px;letter-spacing:1px;color:#dbe4fa;backdrop-filter:blur(12px);transition:transform .3s,background .3s,border-color .3s,color .3s}.intro-link{animation-delay:2.2s}.intro-enter{animation-delay:4.8s;background:#d8e1ff;color:#10204e;border-color:#d8e1ff}.intro-link:hover,.intro-enter:hover{transform:translateY(-2px)}.intro-link:hover{background:#ffffff10;border-color:#8ea5ed80}.intro-enter:hover{background:#edf2ff;color:#0c1a42}.intro-corner{position:absolute;z-index:2;font-size:10px;letter-spacing:2px;color:#7f8ca8}.intro-corner-left{left:28px;bottom:28px;animation-delay:2.5s}.intro-corner-right{right:28px;top:28px;animation-delay:2.7s}@keyframes introFadeUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes introProgress{0%{width:0}to{width:100%}}@keyframes introOut{0%{opacity:1;transform:none}45%{opacity:1;transform:scale(1.015)}to{opacity:0;transform:scale(1.08)}}@keyframes gridDrift{0%{transform:translateZ(0)}50%{transform:translate3d(-18px,14px,0)}to{transform:translateZ(0)}}@media(max-width:700px){.intro-content{padding:110px 18px 150px}.intro-eyebrow{font-size:9px;letter-spacing:2.4px}.intro-title{font-size:clamp(52px,18vw,92px);letter-spacing:-3px}.intro-identity{font-size:10px;letter-spacing:2.2px;line-height:1.7;text-wrap:balance}.intro-subtitle{font-size:13px;max-width:320px}.intro-status{font-size:10px;letter-spacing:1.3px}.intro-progress{width:min(290px,80vw)}.intro-actions{left:18px;right:18px;bottom:22px;justify-content:space-between}.intro-link,.intro-enter{padding:11px 14px;font-size:11px}.intro-corner-left{left:18px;bottom:78px}.intro-corner-right{right:18px;top:18px}}.intro-filmbar{position:absolute;left:0;right:0;height:clamp(18px,4.6vw,58px);z-index:8;background:#020305;pointer-events:none;transition:transform .9s cubic-bezier(.2,.8,.2,1)}.intro-filmbar-top{top:0;transform-origin:top}.intro-filmbar-bottom{bottom:0;transform-origin:bottom}.intro-vignette{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle at 50% 48%,transparent 25%,#02040a4f 61%,#010207e8 100%)}.intro-scan{position:absolute;z-index:2;inset:-20% 0 auto;height:30%;pointer-events:none;background:linear-gradient(180deg,transparent,#dce5ff08 48%,#dce5ff16 50%,transparent 54%);animation:introScan 4.8s ease-in-out 1.15s infinite}.intro-portal{position:absolute;z-index:1;left:50%;top:50%;width:min(50vw,610px);aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none;opacity:.72}.intro-portal span{position:absolute;inset:0;border:1px solid #a8b9ff16;border-radius:50%;box-shadow:inset 0 0 42px #7f96ef0b,0 0 55px #5673d30c;animation:portalBreath 4s ease-in-out infinite}.intro-portal span:nth-child(2){inset:14%;animation-delay:-1.2s;border-color:#c7d3ff20}.intro-portal span:nth-child(3){inset:29%;animation-delay:-2.1s;border-color:#e1e8ff24}.intro-title{display:flex;justify-content:center;overflow:visible}.intro-title>span{display:inline-block;opacity:0;filter:blur(13px);transform:translateY(42px) rotateX(-50deg);animation:introLetter .92s cubic-bezier(.15,.8,.2,1) forwards;animation-delay:calc(.62s + (var(--i) * .09s))}.intro-title>span:last-child{color:#dfe7ff;text-shadow:0 0 34px #a9bbff52}.intro-rule{width:min(500px,68vw);height:1px;background:linear-gradient(90deg,transparent,#b9c8ff55 20%,#eef2ff99 50%,#b9c8ff55 80%,transparent);transform:scaleX(0);opacity:0;animation:introRule 1.1s cubic-bezier(.2,.8,.2,1) 1.46s forwards}.intro-roleline{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:16px;color:#72809e;font-size:9px;letter-spacing:2.5px;opacity:0;animation:introFadeUp .8s cubic-bezier(.2,.7,.2,1) 1.78s forwards}.intro-roleline i{font-style:normal;color:#a9b8db;font-size:8px}.intro-hint{margin:13px 0 0;font-size:9px;letter-spacing:1.7px;text-transform:uppercase;color:#65718c;opacity:0;animation:introFadeUp .8s cubic-bezier(.2,.7,.2,1) 2.6s forwards}.intro-enter{display:inline-flex;align-items:center;gap:8px}.intro-enter svg{transition:transform .3s ease}.intro-enter:hover svg{transform:translateY(3px)}.intro-overlay.closing .intro-filmbar-top{transform:translateY(-110%)}.intro-overlay.closing .intro-filmbar-bottom{transform:translateY(110%)}.intro-overlay.closing .intro-portal{animation:portalExit .9s cubic-bezier(.15,.8,.2,1) forwards}.intro-overlay.closing .intro-content{animation:contentExit .62s ease forwards}@keyframes introLetter{0%{opacity:0;filter:blur(13px);transform:translateY(42px) rotateX(-50deg)}68%{opacity:1;filter:blur(1px)}to{opacity:1;filter:blur(0);transform:none}}@keyframes introRule{to{opacity:1;transform:scaleX(1)}}@keyframes introScan{0%{transform:translateY(-30%);opacity:0}25%{opacity:.7}60%{opacity:.22}to{transform:translateY(440%);opacity:0}}@keyframes portalBreath{0%,to{transform:scale(.98);opacity:.4}50%{transform:scale(1.035);opacity:1}}@keyframes portalExit{0%{transform:translate(-50%,-50%) scale(1);opacity:.72}65%{opacity:.85}to{transform:translate(-50%,-50%) scale(3.5);opacity:0}}@keyframes contentExit{to{opacity:0;filter:blur(8px);transform:scale(.95)}}@media(max-width:700px){.intro-roleline{gap:7px;font-size:8px;letter-spacing:1.7px}.intro-hint{display:none}.intro-portal{width:min(94vw,520px)}}@media(prefers-reduced-motion:reduce){.intro-overlay{display:none!important}}@media(min-width:901px){.ticker{position:relative}.ticker-track{width:100%;animation:none}.ticker-group{width:100%;box-sizing:border-box;justify-content:center;gap:clamp(24px,2.35vw,44px);padding:20px 6%}.ticker-group[aria-hidden=true]{display:none}.ticker-group span{flex:0 0 auto}}@media(max-width:900px){.ticker{-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 7%,#000 93%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 7%,#000 93%,transparent 100%)}.ticker-track{width:max-content;animation:tickerMove 26s linear infinite}.ticker-group{width:auto;justify-content:flex-start;gap:26px;padding:19px 14px}.ticker-group[aria-hidden=true]{display:flex}}.work .section-heading{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr);align-items:end;column-gap:clamp(50px,7vw,110px);margin-bottom:52px}.work .section-heading h2{max-width:760px;line-height:1.12;text-wrap:balance}.work .section-heading>p{justify-self:end;max-width:370px;margin:0 0 5px;font-size:15px;line-height:1.75;text-wrap:pretty}.featured-project{grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:clamp(48px,5vw,78px);align-items:center}.project-copy{min-width:0;max-width:560px}.project-copy .overline{margin:0 0 18px;font-size:10px;line-height:1.4;letter-spacing:1.6px}.project-copy h3{max-width:15ch;margin:0 0 18px;font:500 clamp(31px,2.35vw,38px) / 1.14 Manrope,sans-serif;letter-spacing:-1.35px;text-wrap:balance}.project-copy>p:not(.overline){max-width:54ch;margin:0 0 20px;font-size:15.5px;line-height:1.78;text-wrap:pretty}.tags{gap:8px;margin-top:3px}.tags span{display:inline-flex;align-items:center;min-height:30px;padding:6px 10px;line-height:1}.detail-button{margin-top:18px;padding:19px 0}.repo-link{margin-top:20px}.project-art{min-width:0}.project-art-header,.project-art-footer{gap:24px}.project-art-header>span,.project-art-footer>span{min-width:0}.coffee-wordmark{max-width:100%}.exploration{grid-template-columns:minmax(180px,.9fr) minmax(220px,1fr) minmax(330px,1.55fr) auto;gap:clamp(22px,3vw,42px);min-height:112px;margin-top:34px;padding:24px 28px}.exploration>div{min-width:0}.exploration h3{margin:0;font-size:17px;line-height:1.35;text-wrap:balance}.exploration p{margin:0;line-height:1.7;text-wrap:pretty}.learning-badge{justify-self:end}@media(max-width:1050px){.work .section-heading{grid-template-columns:minmax(0,1fr) minmax(260px,.72fr);column-gap:38px;margin-bottom:42px}.featured-project{grid-template-columns:minmax(0,1fr) minmax(330px,.9fr);gap:34px}.project-copy h3{font-size:30px}.project-copy>p:not(.overline){font-size:15px}.exploration{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px 30px}.learning-badge{justify-self:start}}@media(max-width:700px){.work .section-heading{display:block;margin-bottom:32px}.work .section-heading h2{max-width:none;line-height:1.14}.work .section-heading>p{max-width:none;margin-top:20px;font-size:14px;line-height:1.75}.featured-project{grid-template-columns:1fr;gap:30px}.project-copy{max-width:none}.project-copy .overline{margin-bottom:13px}.project-copy h3{max-width:18ch;margin-bottom:14px;font-size:28px;line-height:1.16;letter-spacing:-1px}.project-copy>p:not(.overline){max-width:none;margin-bottom:18px;font-size:15px;line-height:1.72}.detail-button{margin-top:14px}.exploration{grid-template-columns:1fr;min-height:0;gap:13px;margin-top:30px;padding:22px}.exploration h3{font-size:17px}.learning-badge{width:max-content;margin-top:6px}}.hero{--hero-copy-y: 0px;--hero-portrait-y: 0px;--hero-scene-y: 0px;--hero-scene-scale: 1;--hero-opacity: 1;--hero-grid-y: 0px}.section{--scene-y: 0px;--scene-opacity: 1;--scene-scale: 1;--scene-progress: .5;--image-shift: 0px;--grid-shift: 0px;--grid-shift-y: 0px}header{transition:padding .45s cubic-bezier(.2,.75,.2,1),background .45s,border-color .45s,box-shadow .45s,transform .45s}[data-scrolled=true] header{padding-top:14px;padding-bottom:14px;background:#101319e8;border-color:#ffffff17;box-shadow:0 16px 45px #05070c4d}[data-scrolled=true] header .brand{transform:scale(.92);transform-origin:left center}.brand{position:relative;display:inline-flex;align-items:center;overflow:visible;transition:transform .35s cubic-bezier(.2,.8,.2,1)}.brand .brand-jr{position:absolute;top:-3px;right:-24px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;margin:0;font-family:Manrope,sans-serif;font-size:10px;font-weight:800;line-height:1;letter-spacing:-.5px;color:var(--blue);pointer-events:none;user-select:none;transform-origin:50% 50%;animation:jrOrbitV5 4.8s linear infinite,jrPulseV5 2.4s ease-in-out infinite!important;will-change:transform,opacity}.brand:hover .brand-jr,.brand:focus-visible .brand-jr{animation-duration:1.15s,.9s!important}@keyframes jrOrbitV5{0%{transform:rotate(0) translate(0)}25%{transform:rotate(90deg) translate(3px)}50%{transform:rotate(180deg) translate(0)}75%{transform:rotate(270deg) translate(3px)}to{transform:rotate(360deg) translate(0)}}@keyframes jrPulseV5{0%,to{opacity:.62}50%{opacity:1}}.site-shell--ready .hero-scene{animation:v5HeroLand 1.25s cubic-bezier(.16,.78,.2,1) backwards}.site-shell--ready .hero-copy{animation:v5HeroCopyLand .9s cubic-bezier(.16,.78,.2,1) .08s backwards}.site-shell--ready .portrait-stage{animation:v5PortraitLand 1.05s cubic-bezier(.16,.78,.2,1) .13s backwards}@keyframes v5HeroLand{0%{opacity:0;filter:blur(14px) saturate(.6);transform:scale(1.18)}to{opacity:.72;filter:saturate(.9);transform:none}}@keyframes v5HeroCopyLand{0%{opacity:0;filter:blur(8px);translate:0 26px}to{opacity:1;filter:none;translate:0 0}}@keyframes v5PortraitLand{0%{opacity:0;filter:blur(10px);translate:35px 30px;scale:.96}to{opacity:1;filter:none;translate:0 0;scale:1}}[data-motion=on] .hero-copy{translate:0 var(--hero-copy-y);opacity:var(--hero-opacity);will-change:translate,opacity}[data-motion=on] .portrait-stage{translate:0 var(--hero-portrait-y);will-change:translate}[data-motion=on] .hero-scene{translate:0 var(--hero-scene-y);scale:var(--hero-scene-scale);will-change:translate,scale}[data-motion=on] .hero:after{background-position:center var(--hero-grid-y)}@media(min-width:901px){[data-motion=on] .section>.section-label,[data-motion=on] .section>.section-heading,[data-motion=on] .section>.about-grid,[data-motion=on] .section>.featured-project,[data-motion=on] .section>.exploration,[data-motion=on] .section>.skills-grid,[data-motion=on] .section>.gallery,[data-motion=on] .section>p,[data-motion=on] .section>h2,[data-motion=on] .section>.magnetic,[data-motion=on] .section>.contact-line{translate:0 var(--scene-y);opacity:var(--scene-opacity);scale:var(--scene-scale);will-change:translate,opacity,scale}}[data-motion=on] .reveal h2,[data-motion=on] .reveal .large-copy,[data-motion=on] .reveal .project-copy h3{clip-path:inset(0 0 100% 0);filter:blur(4px);opacity:.2;transition:clip-path .95s cubic-bezier(.18,.78,.18,1),filter .8s ease,opacity .7s ease}[data-motion=on] .reveal.visible h2,[data-motion=on] .reveal.visible .large-copy,[data-motion=on] .reveal.visible .project-copy h3{clip-path:inset(0 0 0 0);filter:none;opacity:1}.project-art{isolation:isolate;transition:box-shadow .5s,border-color .5s,background .5s}.project-art:after{content:"";position:absolute;inset:-1px;z-index:1;border-radius:inherit;pointer-events:none;background:radial-gradient(430px circle at var(--gx,50%) var(--gy,50%),#eff7dc18,transparent 54%);opacity:.15;transition:opacity .35s}.project-art:hover:after{opacity:1}.project-art:hover{box-shadow:0 34px 80px #0007,0 0 0 1px #c6dbc71c}.project-art-grid{background-position:var(--grid-shift) var(--grid-shift-y);transition:opacity .35s}.project-art:hover .project-art-grid{opacity:.86}.project-art-header,.project-art-footer{transition:transform .45s cubic-bezier(.2,.8,.2,1)}.coffee-wordmark{transition:transform .55s cubic-bezier(.16,.8,.2,1),text-shadow .45s}.project-art:hover .project-art-header{transform:translateZ(52px) translateY(-3px)}.project-art:hover .coffee-wordmark{transform:translateZ(82px) translate(8px);text-shadow:0 20px 45px #0005}.project-art:hover .project-art-footer{transform:translateZ(48px) translateY(3px)}[data-motion=on] .about-photo img{translate:0 var(--image-shift);scale:1.08;will-change:translate}[data-motion=on] .journey .photo-card img{translate:0 var(--image-shift);will-change:translate}.photo-card{transition:filter .45s,opacity .45s}.gallery:hover .photo-card:not(:hover){filter:saturate(.72) brightness(.78);opacity:.76}.photo-card:hover{z-index:4}.motion-cursor{--motion-cursor-x: -100px;--motion-cursor-y: -100px;position:fixed;left:0;top:0;z-index:450;width:12px;height:12px;border:1px solid #b6c5ff9c;border-radius:999px;pointer-events:none;transform:translate3d(var(--motion-cursor-x),var(--motion-cursor-y),0) translate(-50%,-50%);transition:width .26s cubic-bezier(.2,.8,.2,1),height .26s,background .26s,border-color .26s;backdrop-filter:blur(5px);mix-blend-mode:screen}.motion-cursor span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.75);opacity:0;white-space:nowrap;font-size:8px;line-height:1;letter-spacing:1.35px;font-weight:700;color:#10172a;transition:opacity .18s,transform .22s}.motion-cursor.is-active{width:58px;height:58px;background:#b8c7ffde;border-color:#dbe3ff;mix-blend-mode:normal}.motion-cursor.is-active span{opacity:1;transform:translate(-50%,-50%) scale(1)}[data-motion=on] body:before{background:radial-gradient(420px circle at var(--cursor-x) var(--cursor-y),#9cb1ff12,transparent 70%),linear-gradient(115deg,transparent 0 52%,#9cafef08 66%,transparent 78%)}.detail-button svg,.repo-link svg,.button svg{transition:transform .3s cubic-bezier(.2,.8,.2,1)}.detail-button:hover svg{transform:rotate(90deg)}.repo-link:hover svg:last-child{transform:translate(3px,-3px)}.button:hover svg{transform:translateY(2px)}@media(max-width:900px){.motion-cursor{display:none}[data-motion=on] .hero-copy,[data-motion=on] .portrait-stage,[data-motion=on] .hero-scene{translate:none;scale:1;opacity:1}[data-motion=on] .about-photo img,[data-motion=on] .journey .photo-card img{translate:none}.gallery:hover .photo-card:not(:hover){filter:none;opacity:1}.brand .brand-jr{right:-21px;width:19px;height:19px;font-size:9px}}[data-motion=off] .motion-cursor{display:none}[data-motion=off] .brand .brand-jr{animation:none!important}@media(prefers-reduced-motion:reduce){.motion-cursor{display:none!important}.brand .brand-jr,.site-shell--ready .hero-scene,.site-shell--ready .hero-copy,.site-shell--ready .portrait-stage{animation:none!important}}.case-study-button{appearance:none;border:1px solid #a9baff;background:#a9baff;color:#101522;display:inline-flex;align-items:center;gap:9px;margin-top:18px;padding:13px 15px;border-radius:3px;cursor:pointer;font:700 12px/1 Manrope,sans-serif;transition:transform .25s,background .25s,border-color .25s}.case-study-button:hover{background:#c5d0ff;border-color:#c5d0ff;transform:translateY(-2px)}.project-art{view-transition-name:jimny-card}.case-open .project-art{view-transition-name:none}.case-product-frame{view-transition-name:jimny-card}::view-transition-group(jimny-card){z-index:700}::view-transition-old(jimny-card),::view-transition-new(jimny-card){animation-duration:.72s;animation-timing-function:cubic-bezier(.16,.78,.2,1)}body.case-study-active{overflow:hidden}.case-study-page{--case-progress: 0%;position:fixed;inset:0;z-index:520;overflow-y:auto;overscroll-behavior:contain;background:#0d1118;color:#eef1f8;scroll-behavior:smooth;animation:caseStudyIn .65s cubic-bezier(.16,.78,.2,1) both}.case-study-page:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 82% 12%,#8ca4ff14,transparent 34%),linear-gradient(90deg,#ffffff05 1px,transparent 1px),linear-gradient(#ffffff04 1px,transparent 1px);background-size:auto,72px 72px,72px 72px;mask-image:linear-gradient(#000,transparent 78%)}.case-study-progress{position:sticky;top:0;z-index:50;height:2px;background:#ffffff0a}.case-study-progress span{display:block;width:var(--case-progress);height:100%;background:#a8bcff;box-shadow:0 0 18px #9eb2ff88;transition:width .08s linear}.case-study-nav{position:sticky;top:2px;z-index:40;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:18px 5.5%;background:#0d1118e8;backdrop-filter:blur(18px);border-bottom:1px solid #ffffff12}.case-study-nav>a{justify-self:end;display:inline-flex;align-items:center;gap:7px;color:#b7c6ff;font-size:12px;text-decoration:none}.case-study-mark{color:#7f8da8;font-size:9px;letter-spacing:1.8px}.case-back,.case-back-bottom{width:max-content;display:inline-flex;align-items:center;gap:8px;padding:7px 0;border:0;background:none;color:#d8ddea;cursor:pointer;font:600 12px/1 Manrope,sans-serif;transition:color .25s}.case-back:hover,.case-back-bottom:hover{color:#a8bcff}.case-study-main{max-width:1380px;margin:0 auto}.case-study-hero{min-height:740px;padding:90px 6% 55px}.case-study-kicker{display:flex;align-items:center;justify-content:space-between;padding-bottom:15px;border-bottom:1px solid #ffffff14;color:#8390a7;font-size:9px;letter-spacing:1.8px}.case-study-hero>h2{max-width:none;margin:55px 0 30px;font-size:clamp(72px,10vw,150px);line-height:.86;letter-spacing:-7px}.case-study-lead{max-width:860px;margin:0 0 44px;color:#aeb6c6;font-size:clamp(20px,2vw,29px);line-height:1.42}.case-study-metrics{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:54px;border-top:1px solid #ffffff14;border-bottom:1px solid #ffffff14}.case-study-metrics>div{padding:23px 18px 25px;border-right:1px solid #ffffff14}.case-study-metrics>div:first-child{padding-left:0}.case-study-metrics>div:last-child{border-right:0}.case-study-metrics strong{display:block;font-size:27px;letter-spacing:-1px}.case-study-metrics span{display:block;margin-top:6px;color:#7e899c;font-size:10px;letter-spacing:1px;text-transform:uppercase}.case-product-frame{overflow:hidden;border:1px solid #ffffff16;border-radius:9px;background:linear-gradient(145deg,#1d2927,#111820);box-shadow:0 45px 100px #0008;transform:perspective(1300px) rotateX(2deg);transform-origin:center bottom}.case-product-bar{height:48px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;background:#121922;border-bottom:1px solid #ffffff12;color:#9daaac;font-size:9px;letter-spacing:1.4px}.case-product-body{min-height:390px;display:grid;grid-template-columns:150px 1fr 300px}.case-product-body aside{display:flex;flex-direction:column;gap:9px;padding:24px 18px;border-right:1px solid #ffffff12;background:#10161d}.case-product-body aside b{margin-bottom:22px;color:#dfe8d3;font-size:22px}.case-product-body aside span{padding:10px 11px;border-radius:4px;color:#778397;font-size:11px}.case-product-body aside .is-active{background:#ffffff0a;color:#e6eddf}.case-menu-mock{padding:23px}.case-mock-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.case-mock-head span{font-size:18px;font-weight:700}.case-mock-head i{width:90px;height:28px;border:1px solid #ffffff14;border-radius:3px}.case-menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.case-menu-grid>div{min-height:120px;display:flex;flex-direction:column;justify-content:flex-end;padding:14px;border:1px solid #ffffff11;border-radius:5px;background:linear-gradient(160deg,#ffffff06,#ffffff02);transition:transform .3s,border-color .3s,background .3s}.case-menu-grid>div:hover{transform:translateY(-4px);border-color:#b6c5ff2e;background:#ffffff08}.case-menu-grid span{margin-bottom:auto;color:#7f8a9f;font-size:9px}.case-menu-grid b{font-size:13px}.case-menu-grid small{margin-top:5px;color:#81937f;font-size:9px}.case-cart-mock{padding:25px 21px;border-left:1px solid #ffffff12;background:#0f151c}.case-cart-mock>span:first-child{color:#7f8b9e;font-size:9px;letter-spacing:1.4px}.case-cart-mock h3{margin:14px 0 26px;font-size:22px}.case-cart-mock p{display:flex;justify-content:space-between;gap:12px;margin:0;padding:12px 0;border-bottom:1px solid #ffffff0e;color:#aeb6c3;font-size:12px}.case-cart-total{display:flex;justify-content:space-between;margin:28px 0 20px;font-size:12px}.case-cart-total strong{font-size:16px}.case-pay-mock{width:100%;display:flex;align-items:center;justify-content:center;padding:13px;border-radius:4px;background:#d6e1c8;color:#182019;font:700 11px Manrope,sans-serif}.case-story-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#ffffff10;border-top:1px solid #ffffff10;border-bottom:1px solid #ffffff10}.case-story-grid article{min-height:380px;padding:82px 6%;background:#0d1118}.case-index{color:#74839f;font-size:9px;letter-spacing:1.8px}.case-story-grid h3,.case-section-copy h3,.case-stack h3{margin:25px 0 20px;font-size:clamp(30px,3vw,50px);line-height:1.08;letter-spacing:-2px}.case-story-grid p,.case-section-copy p{max-width:58ch;color:#99a3b4;font-size:15px;line-height:1.8}.case-flow-section,.case-contribution,.case-validation,.case-stack{padding:90px 6%;border-bottom:1px solid #ffffff10}.case-section-copy{max-width:740px}.case-flow{display:flex;align-items:stretch;gap:10px;margin-top:55px}.case-flow>div{flex:1;min-width:0;padding:18px;border:1px solid #ffffff12;background:#ffffff03;transition:transform .3s,background .3s,border-color .3s}.case-flow>div:hover{transform:translateY(-5px);border-color:#a8bcff35;background:#ffffff06}.case-flow>div span{display:block;margin-bottom:30px;color:#6f7c93;font-size:9px}.case-flow>div b{font-size:12px}.case-flow>i{align-self:center;color:#526079;font-style:normal}.case-contribution-grid,.case-test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:48px}.case-contribution-grid article,.case-test-grid article{position:relative;min-height:260px;overflow:hidden;padding:25px;border:1px solid #ffffff12;background:#ffffff03;transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .35s,background .35s}.case-contribution-grid article:hover,.case-test-grid article:hover{transform:translateY(-7px);border-color:#a6b9ff38;background:#ffffff06}.case-contribution-grid article>svg{color:#9fb3ff}.case-contribution-grid article>span{position:absolute;right:22px;top:23px;color:#5f6b80;font-size:10px}.case-contribution-grid h4{margin:48px 0 14px;font-size:22px;letter-spacing:-.6px}.case-contribution-grid p,.case-test-grid p{color:#8e99aa;font-size:13px;line-height:1.75}.case-test-grid article>span{color:#88a0ee;font-size:9px;letter-spacing:1.4px}.case-test-grid strong{display:block;margin:55px 0 12px;font-size:20px}.case-stack{display:grid;grid-template-columns:.7fr 1.3fr;align-items:end;gap:60px}.case-stack-list{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:9px}.case-stack-list span{padding:11px 13px;border:1px solid #ffffff17;background:#ffffff03;color:#b6bfce;font-size:11px;transition:transform .25s,background .25s}.case-stack-list span:hover{transform:translateY(-3px);background:#ffffff08}.case-study-outro{position:relative;overflow:hidden;padding:120px 6% 100px}.case-study-outro:after{content:"01";position:absolute;right:2%;bottom:-14%;color:#ffffff04;font-size:320px;font-weight:800;line-height:1;pointer-events:none}.case-study-outro>span{color:#79879e;font-size:9px;letter-spacing:2px}.case-study-outro h3{position:relative;z-index:1;margin:30px 0 45px;font-size:clamp(60px,8vw,115px);line-height:.92;letter-spacing:-5px}.case-study-outro h3 em{color:#a8bcff;font-style:normal}.case-outro-actions{position:relative;z-index:1;display:flex;align-items:center;gap:22px}.case-back-bottom{padding-bottom:7px;border-bottom:1px solid #68758c}@keyframes caseStudyIn{0%{opacity:0;filter:blur(9px);transform:translateY(34px) scale(.992)}to{opacity:1;filter:none;transform:none}}@media(max-width:900px){.case-study-nav{grid-template-columns:1fr auto}.case-study-mark{display:none}.case-study-hero{padding-top:60px}.case-study-hero>h2{font-size:72px;letter-spacing:-4px}.case-study-metrics{grid-template-columns:1fr 1fr}.case-study-metrics>div:nth-child(2){border-right:0}.case-study-metrics>div:nth-child(-n+2){border-bottom:1px solid #ffffff14}.case-product-body{grid-template-columns:95px 1fr}.case-cart-mock{grid-column:1 / -1;border-left:0;border-top:1px solid #ffffff12}.case-menu-grid{grid-template-columns:repeat(2,1fr)}.case-story-grid,.case-stack,.case-contribution-grid,.case-test-grid{grid-template-columns:1fr}.case-flow{overflow-x:auto;padding-bottom:10px}.case-flow>div{min-width:145px}.case-stack-list{justify-content:flex-start}.case-study-outro:after{font-size:220px}}@media(max-width:600px){.case-study-nav{padding:15px 6%}.case-study-nav>a{font-size:10px}.case-study-hero,.case-flow-section,.case-contribution,.case-validation,.case-stack,.case-study-outro{padding-left:6%;padding-right:6%}.case-study-hero>h2{margin-top:38px;font-size:56px;letter-spacing:-3px}.case-study-lead{font-size:18px}.case-study-metrics strong{font-size:22px}.case-product-body{display:block}.case-product-body aside{display:none}.case-menu-mock{padding:15px}.case-menu-grid{gap:8px}.case-menu-grid>div{min-height:105px}.case-story-grid{display:block}.case-story-grid article{min-height:0;padding:60px 6%}.case-flow-section,.case-contribution,.case-validation,.case-stack{padding-top:65px;padding-bottom:65px}.case-study-outro{padding-top:80px}.case-study-outro h3{font-size:58px;letter-spacing:-3px}.case-outro-actions{align-items:flex-start;flex-direction:column}}@media(prefers-reduced-motion:reduce){.case-study-page{animation:none}.project-art,.case-product-frame{view-transition-name:none}}.project-copy .magnetic{display:inline-flex;vertical-align:middle}.project-copy .case-study-button{margin-right:18px}.project-copy .repo-link{margin-left:6px}@media(max-width:700px){.project-copy .case-study-button{margin-right:12px;margin-bottom:10px}.project-copy .repo-link{margin-left:0}}.project-art{cursor:default}body:has(.project-art:hover) .motion-cursor{opacity:0!important;visibility:hidden!important;width:0!important;height:0!important;border:0!important;background:transparent!important}body:has(.project-art:hover) .motion-cursor span{display:none!important}html{scroll-behavior:smooth;scroll-padding-top:92px}body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}img{max-width:100%;height:auto}main>section:not(.hero){content-visibility:auto;contain-intrinsic-size:850px}.case-study-page,.case-study-page section{content-visibility:visible}.project-art,.photo-card,.exploration,.case-contribution-grid article,.case-test-grid article,.case-product-frame{contain:paint}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid #a9baff;outline-offset:5px}button,a{-webkit-tap-highlight-color:transparent}::selection{background:#a8bcff;color:#101522}html{scrollbar-width:thin;scrollbar-color:#46516a #0d1118}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#0d1118}::-webkit-scrollbar-thumb{background:#3e485e;border:3px solid #0d1118;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#596883}.button,.case-study-button,.repo-link,.nav-contact{touch-action:manipulation}.photo-card img,.about-photo img,.portrait-stage img{backface-visibility:hidden}@media(hover:none),(pointer:coarse){.motion-cursor{display:none!important}.project-art,.photo-card,.button,.case-study-button{transform-style:flat}.project-art:hover .coffee-wordmark,.project-art:hover .project-art-header,.project-art:hover .project-art-footer{transform:none}}@media(max-width:420px){html{scroll-padding-top:76px}.hero h1{overflow-wrap:anywhere}.case-study-hero>h2{font-size:clamp(44px,15vw,58px);letter-spacing:-2.5px}.case-study-metrics{grid-template-columns:1fr 1fr}.case-study-nav{gap:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.hero-scene,.portrait-stage,.project-art,.photo-card{transform:none!important}}@media print{header,.ticker,.hero-scene,.motion-cursor,.intro-overlay,footer button{display:none!important}body{background:#fff!important;color:#111!important}main,section{display:block!important;opacity:1!important;transform:none!important}}.gallery:hover .photo-card:not(:hover){filter:none;opacity:1}@media(hover:hover)and (pointer:fine){.gallery:has(.photo-card:hover) .photo-card:not(:hover){filter:saturate(.65) brightness(.62);opacity:.76}.gallery .photo-card:hover{filter:none;opacity:1;z-index:4}.gallery .photo-card:hover img{filter:saturate(1.08) brightness(1.04)}}.gallery:has(button:focus-visible) .photo-card:not(:focus-within){filter:saturate(.65) brightness(.62);opacity:.76}.gallery:has(button:focus-visible) .photo-card:focus-within{filter:none;opacity:1;z-index:4}.gallery .photo-card button:focus-visible img{filter:saturate(1.08) brightness(1.04)}
