@import"https://fonts.googleapis.com/css2?family=DM+Mono&family=Manrope:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap";:root{color-scheme:dark;--ink:#10100f;--paper:#eeeae1;--acid:#d2ff53;--line:rgba(238,234,225,.18);--muted:#b4b0a8}*{box-sizing:border-box}html{background:var(--ink);scroll-behavior:auto}body{margin:0;background:var(--ink);color:var(--paper);font-family:Manrope,Arial,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{display:block;max-width:100%}::selection{background:var(--acid);color:var(--ink)}.app-shell{min-height:100vh;background:radial-gradient(circle at 80% 0,#2c3627 0,transparent 24%),var(--ink)}.route-curtain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:var(--acid);transform-origin:top;pointer-events:none}.preloader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--acid);color:var(--ink);padding:2.2rem;display:flex;flex-direction:column;justify-content:space-between}.preloader__top{display:flex;justify-content:space-between;font:12px DM Mono,monospace;letter-spacing:.08em}.preloader__word{font:700 clamp(3rem,11vw,10rem)/.83 "Playfair Display",serif;letter-spacing:-.08em;display:grid}.preloader__word span:last-child{justify-self:end;font-style:italic}.preloader__line{height:2px;background:#10100f38}.preloader__line span{display:block;transform-origin:left;width:100%;height:100%;background:var(--ink)}.site-header{position:fixed;z-index:50;top:0;left:0;right:0;padding:1.5rem 3.5vw;display:flex;justify-content:space-between;align-items:center;color:#fff}.brand b,.nav,.header-cta,.menu-toggle{mix-blend-mode:difference}.brand{display:flex;gap:.7rem;align-items:center;text-transform:uppercase;font-size:.74rem;letter-spacing:.09em;min-width:0}.brand img{width:38px;height:38px;border:1px solid rgba(255,255,255,.8);border-radius:50%;object-fit:cover;object-position:center 25%;flex:none}.nav{display:flex;gap:1.5rem;font-size:.82rem}.nav a{opacity:.6;transition:opacity .25s}.nav a.active,.nav a:hover{opacity:1}.header-cta{font-size:.8rem;padding:.7rem 1rem;border:1px solid rgba(255,255,255,.5);border-radius:99px}.header-cta i{font-style:normal;color:var(--acid)}.menu-toggle{display:none;background:none;border:0;font-size:1.6rem}.cursor-shell{position:fixed;z-index:80;top:0;right:0;bottom:0;left:0;pointer-events:none}.cursor-ring,.cursor-dot{position:fixed;top:0;left:0;translate:-50% -50%;border-radius:50%}.cursor-ring{width:34px;height:34px;border:1px solid rgba(255,255,255,.55);display:grid;place-items:center;mix-blend-mode:difference}.cursor-dot{width:5px;height:5px;background:#fff}.cursor-label{font:8px DM Mono,monospace;text-transform:uppercase;color:#fff}.hero{min-height:100vh;position:relative;padding:21vh 7vw 5vh;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.hero-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;opacity:.8}.hero>*:not(.hero-canvas):not(.hero-orb){position:relative;z-index:2}.hero-orb{position:absolute;width:40vw;height:40vw;right:10vw;top:13vh;border-radius:50%;background:radial-gradient(circle at 35% 30%,#eff3b3,#8dcb77 37%,#477c62 65%,transparent 66%);filter:blur(2px);opacity:.8}.hero-kicker,.eyebrow{text-transform:uppercase;font:11px DM Mono,monospace;letter-spacing:.12em;color:var(--muted)}.hero h1,.page-hero h1,.contact-page h1{font:600 clamp(4rem,11vw,11.5rem)/.83 "Playfair Display",serif;letter-spacing:-.075em;margin:1.4rem 0;max-width:1050px;overflow:hidden}.hero h1 span{display:block}.hero-title--accent,em{color:var(--acid);font-style:italic}.hero-bottom{display:flex;align-items:end;justify-content:space-between;gap:3rem;max-width:920px;margin-top:2rem}.hero-bottom p,.lede,.contact-copy{font-size:1.1rem;line-height:1.55;max-width:430px;color:#d3d0c8}.round-link{background:var(--acid);color:var(--ink);border-radius:50%;width:9rem;height:9rem;display:grid;place-content:center;text-align:center;font-weight:700;font-size:.87rem}.round-link i{font-size:1.4rem;font-style:normal;margin-top:.3rem}.ticker{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.2rem 0;white-space:nowrap}.ticker__inner{width:max-content;display:flex;will-change:transform}.ticker span{font:600 1.4rem Playfair Display,serif;margin-right:2.2rem}.ticker i{font: 1rem Manrope;color:var(--acid);margin-left:2.2rem}.section{padding:10rem 7vw}.intro{max-width:1050px}.intro h2{font:600 clamp(2.8rem,6vw,6rem)/.95 "Playfair Display",serif;letter-spacing:-.065em;margin:1.5rem 0 2.5rem}.section-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:3rem}.section-top a{text-decoration:underline;text-underline-offset:.3em}.projects-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:1.5rem}.project-card{position:relative;min-height:520px;overflow:hidden;cursor:pointer;border-radius:3px;background:#1d211d;isolation:isolate}.project-card:nth-child(2n){margin-top:8rem}.project-card img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.22,1,.36,1)}.project-card:hover img{transform:scale(1.07)}.project-card__shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.82))}.project-card p,.project-card h3,.project-card__arrow{position:absolute;z-index:2}.project-card p{top:1.5rem;left:1.5rem;font:10px DM Mono,monospace;text-transform:uppercase}.project-card h3{bottom:1.5rem;left:1.5rem;margin:0;font:600 clamp(2rem,4vw,4rem)/.9 "Playfair Display",serif;letter-spacing:-.06em}.project-card__arrow{right:1.5rem;bottom:1.5rem;font-size:2rem;transform:translateY(10px);opacity:0;transition:.4s}.project-card:hover .project-card__arrow{opacity:1;transform:none}.project-card--lift{z-index:12}.about-strip{min-height:100vh;padding:12vh 7vw;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4rem;background:var(--acid);color:var(--ink)}.about-strip h2{font:600 clamp(3rem,6vw,6rem)/.9 "Playfair Display",serif;letter-spacing:-.07em}.about-strip em{color:var(--ink)}.pin-steps{display:grid;gap:1rem}.pin-step{padding:1.5rem;border-top:1px solid rgba(16,16,15,.3);display:flex;gap:2rem;font-size:1.4rem}.pin-step b{font:11px DM Mono,monospace}footer{display:flex;justify-content:space-between;padding:2rem 7vw;font:10px DM Mono,monospace;text-transform:uppercase;color:var(--muted)}.page{padding-top:11rem}.page-hero{padding:3rem 7vw 7rem}.page-hero h1{margin-bottom:0}.projects-list{padding:0 7vw 10rem;display:grid;gap:2rem}.projects-list .project-card{min-height:min(72vh,720px)}.projects-list .project-card:nth-child(2n){margin-top:0}.detail{padding:9rem 7vw 0;max-width:1400px;margin:auto}.back{font:11px DM Mono,monospace;text-transform:uppercase}.detail header{display:grid;grid-template-columns:.8fr 1.2fr;gap:2rem;padding:5rem 0}.detail h1{font:600 clamp(4rem,9vw,9rem)/.85 "Playfair Display",serif;letter-spacing:-.08em;margin:.8rem 0}.detail header>p:last-child{align-self:end;max-width:500px;line-height:1.6}.detail-image{width:100%;max-height:70vh;object-fit:cover}.case-grid{display:grid;grid-template-columns:1.2fr .6fr .8fr;gap:4rem;padding:8rem 0}.case-grid h2{font:600 2.2rem/1 Playfair Display,serif}.case-grid ul{padding:0;list-style:none;line-height:1.7;color:var(--muted)}.case-grid li+li{margin-top:.5rem}.visit{display:inline-block;margin-bottom:7rem;border:1px solid var(--acid);border-radius:99px;padding:1rem 1.4rem;color:var(--acid)}.about-page .timeline{padding:0 7vw 10rem}.timeline article{display:grid;grid-template-columns:100px 1fr;gap:2rem;padding:4rem 0;border-top:1px solid var(--line)}.timeline article>span{font:11px DM Mono,monospace;color:var(--acid)}.timeline h2{font:600 clamp(2rem,4vw,4rem)/1 "Playfair Display",serif;margin:.8rem 0 3rem}.role{border-top:1px solid var(--line);padding:1.2rem 0}.role h3{margin:0 0 .5rem}.role p{color:var(--muted);line-height:1.6;max-width:720px}.skills{background:#1b1c18}.skills>div{display:grid;grid-template-columns:repeat(2,1fr);gap:0 2rem}.skills article{border-top:1px solid var(--line);padding:1.5rem 0}.skills h3{margin:0 0 .6rem}.skills p{margin:0;color:var(--muted);line-height:1.6}.contact-page{min-height:100vh;padding:24vh 7vw 0}.contact-page h1{margin-top:1.2rem}.contact-copy{margin:2rem 0}.contact-mail{display:inline-flex;gap:2rem;align-items:center;color:var(--acid);font:600 clamp(1.4rem,3vw,3rem) "Playfair Display",serif;border-bottom:1px solid var(--acid);padding-bottom:.5rem}.contact-mail i{font-style:normal}.socials{display:flex;gap:2rem;margin-top:4rem;color:var(--muted);text-decoration:underline;text-underline-offset:.3em}.contact-page footer{margin:10vh -7vw 0}.empty{min-height:100vh;display:grid;place-content:center;gap:2rem}@media (max-width:720px){body{cursor:auto}.cursor-shell{display:none}.site-header{padding:1rem 5vw;gap:.75rem}.site-header--menu-open{mix-blend-mode:normal!important}.brand{position:relative;z-index:2}.brand b,.header-cta{display:none}.brand img{width:34px;height:34px}.menu-toggle{display:block;z-index:2}.nav{display:none}.nav--open{display:flex;position:fixed;top:0;right:0;bottom:0;left:0;background:#10100f;flex-direction:column;justify-content:center;align-items:center;font:600 2.75rem/1.3 Playfair Display,serif;gap:2.5rem;z-index:1}.hero{min-height:auto;padding:8.5rem 5vw 4rem}.hero-orb{width:88vw;height:88vw;right:-30vw;top:8vh}.hero h1,.page-hero h1,.contact-page h1{font-size:clamp(3.6rem,17vw,5.6rem);overflow:visible}.hero-bottom{align-items:flex-start;flex-direction:column;gap:2rem}.hero-bottom p{font-size:1rem}.round-link{width:7rem;height:7rem}.section{padding:6rem 5vw}.projects-grid,.about-strip,.case-grid{grid-template-columns:1fr}.project-card{min-height:420px}.project-card:nth-child(2n){margin-top:0}.about-strip{min-height:auto;padding:6rem 5vw}.pin-step{font-size:1.1rem}.page-hero{padding:6rem 5vw 4rem}.projects-list,.about-page .timeline{padding-left:5vw;padding-right:5vw}.detail{padding:7rem 5vw 0}.detail header{display:block;padding:3rem 0}.detail header>p:last-child{margin-top:2rem}.case-grid{gap:2rem;padding:4rem 0}.timeline article{grid-template-columns:50px 1fr;gap:1rem;padding:3rem 0}.skills>div{grid-template-columns:1fr}.contact-page{padding:22vh 5vw 0}.contact-page footer{margin-left:-5vw;margin-right:-5vw}footer{padding:2rem 5vw;gap:1rem;flex-direction:column}.preloader{padding:1.2rem}}.hero-bottom{max-width:1050px}.hero-portrait{width:280px;height:280px;border:2px solid rgba(210,255,83,.75);border-radius:50%;object-fit:cover;object-position:center 28%;filter:grayscale(.12);box-shadow:0 15px 50px #00000059}.contact-form{display:grid;gap:1.1rem;max-width:620px;margin-top:3.5rem}.contact-form label{display:grid;gap:.55rem;font:11px DM Mono,monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--line);border-radius:2px;background:#ffffff0a;color:var(--paper);padding:1rem;font:400 1rem Manrope,sans-serif;resize:vertical}.contact-form input:focus,.contact-form textarea:focus{outline:1px solid var(--acid);border-color:var(--acid)}.send-button{justify-self:start;border:1px solid var(--acid);background:var(--acid);color:var(--ink);padding:.95rem 1.4rem;border-radius:99px;font-weight:700}@media (max-width:720px){.hero-portrait{width:190px;height:190px}}@media (max-width:420px){.hero{padding-top:7.5rem}.hero h1{font-size:clamp(3.25rem,16vw,4.5rem)}.hero-portrait{width:165px;height:165px}.project-card{min-height:360px}.project-card h3{font-size:2.35rem}.contact-mail{font-size:1.25rem;gap:.75rem;overflow-wrap:anywhere}.timeline article{grid-template-columns:38px 1fr}.pin-step{gap:1rem}}@media (min-width:721px){.hero{min-height:100svh;padding:12vh 7vw 8vh;justify-content:flex-start;overflow:visible}.hero h1{font-size:clamp(4rem,9vw,9rem);margin:1.1rem 0;overflow:visible}.hero-bottom{padding-bottom:1rem}.hero-portrait{flex:none}}.preloader__center{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-grow:1;gap:1.5rem;margin-top:-3.5vh}.preloader__layout{display:flex;align-items:center;justify-content:center;gap:3.5rem;width:100%;max-width:800px}.preloader__side{width:120px;height:120px;display:flex;align-items:center;justify-content:center}.preloader__illustration{display:flex;align-items:center;justify-content:center}.preloader__svg{width:min(200px,45vw);height:min(200px,45vw)}.preloader__side-svg{width:120px;height:120px}@media (max-width: 720px){.preloader__side{display:none}.preloader__layout{gap:0}}@keyframes spinSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spinReverse{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes pulseFast{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.25);opacity:1}}.animate-spin-slow{transform-origin:100px 100px;animation:spinSlow 22s linear infinite}.animate-spin-reverse{transform-origin:100px 100px;animation:spinReverse 11s linear infinite}.animate-pulse-fast{transform-origin:100px 100px;animation:pulseFast 2s ease-in-out infinite}@keyframes codeTyping{0%,to{opacity:.25;transform:translate(0)}50%{opacity:.85;transform:translate(4px)}}.animate-code-1{animation:codeTyping 3.5s ease-in-out infinite}.animate-code-2{animation:codeTyping 3.5s ease-in-out infinite 1.1s}.animate-code-3{animation:codeTyping 3.5s ease-in-out infinite 2.2s}@keyframes floatSlow{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-7px) rotate(6deg)}}.animate-float-slow{transform-origin:90px 70px;animation:floatSlow 6.5s ease-in-out infinite}@keyframes blinkLight{0%,to{opacity:.2}50%{opacity:1}}.animate-blink-1{animation:blinkLight 1.3s infinite}.animate-blink-2{animation:blinkLight 1.9s infinite .4s}.animate-blink-3{animation:blinkLight 1.6s infinite .8s}@keyframes flowDash{to{stroke-dashoffset:-20}}.animate-flow-dash{animation:flowDash 3s linear infinite}
