:root{--bg:#08080b;--text:#eaeaee;--muted:#7d7d8a;--red:#e0362c;--blue:#2f4e9e;--line:#eaeaee24;--font-sans:"Archivo", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--pad-x:clamp(1.25rem, 5vw, 5rem);--pad-y:clamp(4.5rem, 10vh, 6.5rem);--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px)}*{box-sizing:border-box;margin:0;padding:0}html,body{overscroll-behavior:none;height:100%}@supports (height:100dvh){html,body{height:100dvh}}html{background:var(--bg)}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;line-height:1.6;overflow:hidden}::selection{background:var(--red);color:var(--bg)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}:focus-visible{outline:2px solid var(--red);outline-offset:3px}.mono{font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;font-size:.72rem;font-weight:400}.stage{position:fixed;inset:0;overflow:hidden}.scene{will-change:transform;position:absolute;inset:0}.scene__inner{height:100%;padding:calc(var(--pad-y) + var(--safe-t)) calc(var(--pad-x) + var(--safe-r)) calc(var(--pad-y) + var(--safe-b)) calc(var(--pad-x) + var(--safe-l));flex-direction:column;justify-content:flex-end;display:flex;position:relative;overflow:hidden}.scene__bg{z-index:-1;background:radial-gradient(110% 90% at 80% 12%, var(--c2,#1a1a24) 0%, transparent 52%), radial-gradient(80% 70% at 8% 92%, color-mix(in srgb, var(--c2,#1a1a24) 38%, transparent) 0%, transparent 58%), var(--c1,var(--bg));will-change:transform;position:absolute;inset:0}.scene__bg:after{content:"";background:radial-gradient(120% 100% at 50% 45%,#0000 40%,#08080bc7 100%);position:absolute;inset:0}.scene__bg--intro{--c1:#0a0a10;--c2:#16224a}.scene__bg--intro:before{content:"";background:radial-gradient(60% 45% at 12% 100%,#e0362c24 0%,#0000 65%);position:absolute;inset:0}.scene__bg--cool{--c1:#0a0d16;--c2:#1c2c5e}.scene__bg--contact{--c1:#120a0d;--c2:#7e1f18}.project__shot{right:calc(var(--pad-x) * .4);perspective:1200px;z-index:0;width:min(48vw,56rem);position:absolute;top:50%;transform:translateY(-50%)}.project__shot img{filter:brightness(.94);cursor:zoom-in;border-radius:14px;width:100%;display:block;transform:rotateY(-8deg)rotateX(2deg);box-shadow:0 60px 120px #000000a6,0 20px 45px #00000080,0 4px 12px #0006}.project__shots{right:var(--pad-x);aspect-ratio:16/10;z-index:0;width:min(40vw,44rem);position:absolute;top:51%;transform:translateY(-50%)}.shot-card{background:var(--bg);will-change:transform;cursor:zoom-in;border-radius:14px;position:absolute;inset:0;overflow:hidden;box-shadow:0 60px 120px #000000a6,0 20px 45px #00000080,0 4px 12px #0006}.shot-card img{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.scene__label{color:var(--red);margin-bottom:1.4rem}.grain{pointer-events:none;z-index:40;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");width:200%;height:200%;position:absolute;inset:-50%}.letterbox{z-index:30;pointer-events:none;background:#000;height:15vh;position:absolute;left:0;right:0}.letterbox--top{transform-origin:top;top:0}.letterbox--bottom{transform-origin:bottom;bottom:0}.hud{z-index:50;pointer-events:none;align-items:center;display:flex;position:absolute}.hud button,.hud a{pointer-events:auto}.hud--top{padding:calc(1.4rem + var(--safe-t)) calc(var(--pad-x) + var(--safe-r)) 1.4rem calc(var(--pad-x) + var(--safe-l));justify-content:space-between;top:0;left:0;right:0}.hud__brand{letter-spacing:.14em;text-transform:uppercase;font-size:1.2rem;font-weight:600}.hud__brand .dot{color:var(--red)}.hud__tc{color:var(--muted);font-variant-numeric:tabular-nums}.hud__tc .rec{background:var(--red);border-radius:50%;width:.45em;height:.45em;margin-right:.6em;animation:1.6s step-end infinite rec-blink;display:inline-block}@keyframes rec-blink{50%{opacity:.2}}.hud--dots{right:calc(clamp(.9rem, 2vw, 1.8rem) + var(--safe-r));flex-direction:column;gap:.9rem;top:50%;transform:translateY(-50%)}.hud__dot{background:var(--line);border-radius:50%;width:.4rem;height:.4rem;transition:background .3s,transform .3s}.hud__dot:hover{background:var(--muted)}.hud__dot.is-active{background:var(--red);transform:scale(1.5)}.hud--bottom{padding:1.4rem calc(var(--pad-x) + var(--safe-r)) calc(1.4rem + var(--safe-b)) calc(var(--pad-x) + var(--safe-l));color:var(--muted);justify-content:space-between;gap:1rem;bottom:0;left:0;right:0}.hud__hint .chev{margin-left:.4em;animation:1.8s ease-in-out infinite chev-bob;display:inline-block}@keyframes chev-bob{50%{transform:translateY(4px)}}.hud__count{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){.hud__tc .rec,.hud__hint .chev{animation:none}}.intro__eyebrow{color:var(--red);margin-bottom:clamp(1rem,3vh,2rem)}.intro__title{letter-spacing:-.02em;text-transform:uppercase;font-size:clamp(2.8rem,13.5vw,12.5rem);font-weight:640;font-stretch:121%;line-height:.9}.intro__title .line{display:block;overflow:hidden}.intro__title .line>span{will-change:transform;display:block}.intro__title .thin{font-weight:210;font-stretch:78%}.intro__footer{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:2rem;margin-top:clamp(1.75rem,5vh,3.5rem);padding-top:1.25rem;display:flex}.intro__tagline{max-width:40ch;color:var(--muted);font-size:clamp(.95rem,1.4vw,1.15rem);line-height:1.55}.intro__tagline strong{color:var(--text);font-weight:500}.intro__meta{color:var(--muted);flex-shrink:0}.project__num{color:#0000;-webkit-text-stroke:1px #eaeaee21;-webkit-user-select:none;user-select:none;pointer-events:none;font-size:clamp(12rem,38vw,34rem);font-weight:700;font-stretch:125%;line-height:1;position:absolute;top:50%;right:clamp(2rem,6vw,6rem);transform:translateY(-52%)}.project__content{z-index:1;max-width:38rem;position:relative}.project__content--wide,.project__content--wide .project__desc{max-width:none}.project__meta{color:#eaeaeebf;margin-bottom:1.1rem}.project__title{overflow-wrap:break-word;letter-spacing:-.02em;text-transform:uppercase;margin-bottom:clamp(1.1rem,3vh,1.75rem);font-size:clamp(2.2rem,8vw,7.5rem);font-weight:620;font-stretch:116%;line-height:.95}.project__desc{color:#eaeaeed1;max-width:46ch;margin-bottom:1.1rem;font-size:clamp(.95rem,1.4vw,1.15rem)}.project__stack{color:var(--muted);margin-bottom:clamp(1.4rem,4vh,2.25rem)}.lightbox{z-index:20;-webkit-backdrop-filter:blur(10px);cursor:zoom-out;background:#050508db;justify-content:center;align-items:center;padding:clamp(1rem,4vw,4rem);display:flex;position:absolute;inset:0}.lightbox img{border-radius:12px;max-width:100%;max-height:100%;box-shadow:0 60px 140px #000c}.btn{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid #eaeaee8c;border-radius:99px;padding:.85rem 1.7rem;font-size:.75rem;transition:background .3s,color .3s,border-color .3s;display:inline-block}.btn:hover{background:var(--text);border-color:var(--text);color:var(--bg)}.btn--solid{background:var(--red);border-color:var(--red);color:#fff}.btn--solid:hover{background:var(--text);border-color:var(--text);color:var(--bg)}.experience__grid{grid-template-columns:1fr 1fr;align-items:end;gap:clamp(2rem,6vw,6rem);display:grid}.experience__title{letter-spacing:-.02em;text-transform:uppercase;margin-bottom:1.25rem;font-size:clamp(2.6rem,6.5vw,6rem);font-weight:620;font-stretch:118%;line-height:.96}.experience__title em{color:var(--blue);-webkit-text-stroke:0;filter:brightness(1.55);font-style:normal}.experience__sub{color:var(--muted);max-width:40ch;margin-bottom:clamp(1.5rem,4vh,2.5rem)}.experience__list{flex-direction:column;display:flex}.experience__row{border-top:1px solid var(--line);grid-template-columns:8rem 1fr;gap:1.5rem;padding:1.25rem 0;display:grid}.experience__period{color:var(--muted);font-variant-numeric:tabular-nums;padding-top:.3rem}.experience__role{font-size:clamp(1.1rem,1.8vw,1.45rem);font-weight:560;font-stretch:108%;line-height:1.2}.experience__company{color:var(--red);margin:.3rem 0 .4rem}.experience__note{color:var(--muted);font-size:.9rem}.contact__body{max-width:60rem}.contact__title{letter-spacing:-.02em;text-transform:uppercase;max-width:12ch;font-size:clamp(2.4rem,9vw,8.5rem);font-weight:620;font-stretch:118%;line-height:.95}.contact__title em{color:var(--red);font-style:normal}.contact__actions{flex-wrap:wrap;align-items:center;gap:1.5rem 2.5rem;margin-top:clamp(1.75rem,5vh,3rem);display:flex}.contact__socials{gap:1.75rem;display:flex}.contact__socials a{color:var(--muted);transition:color .25s}.contact__socials a:hover{color:var(--text)}.contact__fin{color:var(--muted);margin-top:clamp(2rem,6vh,3.5rem)}@media (width<=1024px){.project__shot{right:var(--pad-x);left:var(--pad-x);width:auto;top:12%;transform:none}.project__shot img{object-fit:cover;object-position:top;max-height:32vh;transform:none}.project__shots{right:var(--pad-x);left:var(--pad-x);aspect-ratio:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:.8rem;width:auto;height:30vh;display:flex;top:12%;overflow-x:auto;transform:none}.project__shots::-webkit-scrollbar{display:none}.shot-card{scroll-snap-align:start;flex:0 0 76%;height:100%;position:relative;inset:auto;filter:none!important;transform:none!important}.project__content{max-width:34rem}}@media (width<=820px){.hud--dots{display:none}.project__num{text-align:center;font-size:46vw;top:24%;left:0;right:0;transform:none}.project__shot img{max-height:26vh}.project__shots{height:26vh}.experience__note{display:none}:root{--pad-y:clamp(2.5rem, 6vh, 3.75rem)}.experience__grid{grid-template-columns:1fr;gap:1.25rem}.experience__title{margin-bottom:.75rem;font-size:clamp(2rem,7vw,3.5rem)}.experience__sub{margin-bottom:1.25rem}.experience__list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:26vh;overflow-y:auto}.experience__row{grid-template-columns:1fr;gap:.15rem;padding:.6rem 0}.experience__company{margin:.1rem 0 0}.intro__footer{flex-direction:column;align-items:flex-start}.hud__label{display:none}}@media (height<=640px){.experience__note{display:none}.scene__inner{padding-top:3.5rem;padding-bottom:3.5rem}}
