@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-latin-400-normal-B40WzpMT.woff2)format("woff2"),url(/assets/geist-latin-400-normal-akEymXtG.woff)format("woff")}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/geist-latin-500-normal-CTWBw9NS.woff2)format("woff2"),url(/assets/geist-latin-500-normal-BDXIbFrL.woff)format("woff")}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/geist-latin-600-normal-CSETrqM2.woff2)format("woff2"),url(/assets/geist-latin-600-normal-DsPlZH-9.woff)format("woff")}:root{--ink:#111110;--muted:#6e6e69;--paper:#fff;--surface:#fff;--line:#ddddda;--sans:"Geist", ui-sans-serif, -apple-system, BlinkMacSystemFont, sans-serif;color:var(--ink);background:var(--paper);font-family:var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}@property --glow-angle{syntax:"<angle>";inherits:false;initial-value:0deg}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}a{color:inherit}.portfolio-layout{grid-template-columns:minmax(450px,45%) minmax(0,55%);height:100svh;display:grid;overflow:hidden}.portfolio-layout__left{z-index:1;background:var(--paper);align-items:center;padding:clamp(2rem,4vw,4.75rem);display:flex;position:relative}.portfolio-layout__right{min-width:0;position:relative;overflow:hidden}.hero{width:100%;max-width:42rem}.hero__header{align-items:center;gap:.45rem;margin-bottom:clamp(1.25rem,3vh,2rem);display:flex}.hero__avatar{background:#e7ecee;border:1px solid #11111014;border-radius:50%;flex:none;width:2.15rem;height:2.15rem;position:relative;overflow:hidden}.hero__avatar img{width:180%;max-width:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-41%)}.hero__eyebrow{color:var(--ink);letter-spacing:-.01em;margin:0;font-size:.82rem;font-weight:600}.hero h1{letter-spacing:-.07em;flex-direction:column;margin:0;font-size:clamp(2.65rem,3.6vw,4.5rem);font-weight:560;line-height:.98;display:flex}.hero h1 span{white-space:nowrap}.hero h1 span:last-child{color:var(--muted)}.hero__bio{max-width:29rem;color:var(--muted);margin:clamp(1rem,2.25vh,1.5rem) 0 0;font-size:clamp(.96rem,1.15vw,1.08rem);line-height:1.7}.coming-soon{text-align:center;place-content:center;min-height:100svh;padding:2rem;display:grid}.coming-soon p{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .75rem;font-size:.78rem;font-weight:600}.coming-soon h1{letter-spacing:-.075em;margin:0;font-size:clamp(3.5rem,9vw,8rem);font-weight:560;line-height:.95}.client-logos{width:calc(100% + 6rem);margin-top:clamp(7rem,16vh,11rem);margin-left:-3rem}.client-logos__label{color:var(--muted);letter-spacing:.02em;margin:0 3rem 1.25rem;font-size:.72rem;font-weight:500}.client-logos__viewport{width:calc(100% - 3rem);margin-left:3rem;padding-block:.15rem;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 9% 91%,#0000);mask-image:linear-gradient(90deg,#0000,#000 9% 91%,#0000)}.client-logos__track{will-change:transform;width:max-content;animation:54s linear infinite client-logos-right;display:flex}.client-logos__list{flex:none;gap:1.75rem;padding-right:1.75rem;display:flex}.client-logo{filter:grayscale();opacity:.82;justify-content:center;align-items:center;width:8.25rem;height:1.75rem;display:flex}.client-logo img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:1.75rem;display:block}.client-logo--large img{transform:scale(1.28)}.client-logo--tight-before{margin-left:-.75rem}.client-logos:hover .client-logos__track{animation-play-state:paused}.floating-actions{z-index:20;justify-content:center;gap:.7rem;width:fit-content;display:flex;position:fixed;bottom:clamp(1.25rem,4vh,2.5rem);left:50%;transform:translate(-50%)}.floating-actions__group{-webkit-backdrop-filter:blur(28px)saturate(180%)contrast(105%);isolation:isolate;background:linear-gradient(135deg,#ffffff94,#eef4f73d);border:1px solid #ffffffc7;border-radius:999px;gap:.2rem;padding:.38rem;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #fffffff2,inset 0 -1px #ffffff61,inset 1px 0 #ffffff8c,0 1px 2px #11111014,0 12px 32px #11111021}.floating-actions__group:before{z-index:-1;filter:blur(10px);content:"";background:#ffffffe0;border-radius:999px;height:38%;position:absolute;inset:.1rem 14% auto}.floating-actions__group:after{z-index:0;border-radius:inherit;pointer-events:none;content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff3d,inset 0 -8px 18px #bccad314}.button{z-index:1;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:1.75rem;min-height:3rem;padding:.75rem .9rem .75rem 1.1rem;font-size:.93rem;font-weight:600;line-height:1;text-decoration:none;transition:background-color .18s,box-shadow .18s,transform .18s;display:inline-flex;position:relative}.button__icon{border-radius:50%;place-items:center;width:1.45rem;height:1.45rem;font-size:.82rem;display:grid}.button .nav-label{border-radius:0;width:auto;height:auto;display:inline}.nav-icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1.25rem;height:1.25rem;display:none}.button--primary{color:#fff;background:#111110f5;border-color:#ffffff29;padding-inline:1.4rem;box-shadow:inset 0 1px #fff3,inset 0 -1px #0000004d,0 3px 10px #11111033}.button--primary .button__icon{color:var(--ink);background:#ffffffb8}.button--primary:hover{background:#292927;transform:translateY(-1px)}.button--secondary{background:#ffffff14}.button--booking{--glow-angle:0deg;background:linear-gradient(135deg, #ffffffe6, #eef4f7b8) padding-box, conic-gradient(from var(--glow-angle), #76e4ffe0, #8b7cffcc, #ff77c8b3, #b8ff8abd, #76e4ffe0) border-box;-webkit-backdrop-filter:blur(28px)saturate(180%)contrast(105%);border:1.5px solid #0000;gap:.8rem;padding:.75rem .8rem .75rem 1.15rem;animation:6s linear infinite booking-glow;overflow:hidden;box-shadow:inset 0 1px #fffffff2,inset 0 -1px #ffffff59,0 1px 2px #11111014,0 8px 26px #6d71ff2b,0 0 17px #5ad6ff24}.button--secondary .button__icon{background:#ffffff6b}.button--secondary:hover{background:#ffffff80;transform:translateY(-1px)}.button--booking:hover{background:linear-gradient(135deg, #fffffffa, #eef4f7db) padding-box, conic-gradient(from var(--glow-angle), #76e4fff0, #8b7cffdb, #ff77c8c2, #b8ff8acc, #76e4fff0) border-box}@keyframes booking-glow{to{--glow-angle:360deg}}.button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.floating-actions__group,.button--booking{background:#f4f4f2f5}}.work-marquee{background:var(--surface);height:100%;padding:0 clamp(1rem,2.5vw,2.5rem);overflow:hidden}.work-marquee__track{will-change:transform;flex-direction:column;width:100%;max-width:62rem;margin-inline:auto;animation:160s linear infinite marquee-up;display:flex}.work-marquee:hover .work-marquee__track{animation-play-state:paused}.work-marquee__list{flex:none;gap:clamp(1rem,2vw,1.5rem);padding-bottom:clamp(1rem,2vw,1.5rem);display:grid}.project-card{background:var(--surface);border:0;border-radius:1rem;padding:.7rem}.project-card__image{aspect-ratio:4/3;object-fit:cover;border-radius:.65rem;width:100%;display:block}@keyframes marquee-up{0%{transform:translateY(0)}to{transform:translateY(-50%)}}@keyframes client-logos-right{0%{transform:translate(-50%)}to{transform:translate(0)}}@media (width>=961px) and (width<=1180px){.portfolio-layout{grid-template-columns:minmax(420px,46%) minmax(0,54%)}.portfolio-layout__left{padding:clamp(2rem,3.25vw,3rem)}.hero h1{font-size:clamp(2.55rem,3.75vw,3.5rem)}.hero__bio{font-size:.98rem}}@media (width<=960px){.portfolio-layout{height:auto;display:block;overflow:visible}.portfolio-layout__left{min-height:68svh;padding:clamp(3rem,8vw,5rem) clamp(1.5rem,8vw,4.5rem)}.portfolio-layout__right{height:min(76svh,54rem)}.hero{max-width:42rem}.hero__header{margin-bottom:1.5rem}.hero h1{font-size:clamp(2.9rem,7.7vw,3.7rem)}.floating-actions{bottom:1rem}.floating-actions .button{gap:.7rem;min-height:2.75rem;padding:.65rem .8rem;font-size:.85rem}.floating-actions .button--primary{padding-inline:1.2rem}.work-marquee{padding-inline:clamp(1rem,4vw,2rem)}}@media (width<=600px){.portfolio-layout__left{min-height:70svh;padding:2.5rem 1.5rem 4.5rem}.portfolio-layout__right{height:68svh}.hero h1{font-size:clamp(1.75rem,7.9vw,2.95rem);line-height:1.02}.hero__bio{max-width:32rem;font-size:1rem;line-height:1.6}.client-logos{width:calc(100% + 3rem);margin-top:5.5rem;margin-left:-1.5rem}.client-logos__label{margin-inline:1.5rem}.client-logos__viewport{width:calc(100% - 1.5rem);margin-left:1.5rem}.floating-actions{right:.75rem;bottom:max(.75rem, env(safe-area-inset-bottom));flex-direction:row;align-items:stretch;gap:.45rem;width:auto;left:.75rem;transform:none}.floating-actions__group{flex:auto;justify-content:center;width:auto;min-width:0;padding:.3rem}.floating-actions .button{min-height:2.75rem;padding:.65rem .7rem;font-size:.82rem}.floating-actions__group .button{white-space:nowrap;flex:1 1 0;min-width:0;padding-inline:.4rem;font-size:clamp(.7rem,2.7vw,.82rem)}.floating-actions__group .nav-label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.floating-actions__group .nav-icon{display:block}.floating-actions .button--primary{padding-inline:.9rem}.floating-actions .button--booking{flex:none;gap:.5rem;padding-inline:.85rem .65rem}.button--booking .button__icon{width:1.25rem;height:1.25rem}.project-card{border-radius:.8rem;padding:.5rem}.project-card__image{border-radius:.5rem}}@media (width<=360px){.floating-actions{gap:.35rem;left:.5rem;right:.5rem}.floating-actions .button{padding-inline:.6rem;font-size:.78rem}.floating-actions .button--primary{padding-inline:.45rem}.button--booking .button__icon{display:none}}@media (width>=961px) and (height<=680px){.portfolio-layout__left{padding-block:2rem 5.5rem}.hero__header{margin-bottom:1rem}.hero h1{font-size:clamp(2.5rem,3.4vw,3.5rem)}.hero__bio{margin-top:.8rem;line-height:1.55}.floating-actions{bottom:1rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.work-marquee__track,.client-logos__track,.button--booking{animation-play-state:paused}}
