html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}:root{--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-6:48px;--space-8:64px;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-full:9999px;--font-display:"Inter", system-ui, sans-serif;--font-mono:"Space Grotesk", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--theme-transition:color .3s ease, background-color .3s ease}[data-theme=dark]{--color-bg:#0b0b0d;--color-accent:#ff8a3d;--color-blue:#2a4d7a;--color-text:#fafaf8;--color-text-muted:#9ca3af;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--color-bg:#fafaf8;--color-accent:#d2691e;--color-blue:#2a4d7a;--color-text:#0b0b0d;--color-text-muted:#6b6375;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--color-text);background-color:var(--color-bg);transition:var(--theme-transition);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;line-height:1.5}#root{min-height:100svh}h1,h2,h3{font-family:var(--font-display);color:var(--color-text);margin:0;font-weight:500}h1{font-size:48px;line-height:1.1}h2{font-size:36px;line-height:1.2}h3{font-size:24px;line-height:1.3}p{color:var(--color-text-muted);margin:0}a{color:var(--color-accent);text-decoration:none;transition:opacity .2s}a:hover{opacity:.8}code{font-family:var(--font-mono);font-size:13px;line-height:1.4}.section{scroll-margin-top:72px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn-fill{isolation:isolate;border-radius:var(--radius-full);transition:color .35s;position:relative;overflow:hidden}.btn-fill:before{content:"";background:var(--btn-fill-bg,var(--color-accent));transform-origin:0;z-index:-1;transition:transform .35s;position:absolute;inset:0;transform:scaleX(0)}.btn-fill[data-fill-dir=left]:before,.btn-fill[data-fill-dir=right]:before{transform:scaleX(0)}.btn-fill[data-fill-dir=top]:before,.btn-fill[data-fill-dir=bottom]:before{transform:scaleY(0)}.btn-fill[data-fill-dir=left]:before{transform-origin:0}.btn-fill[data-fill-dir=right]:before{transform-origin:100%}.btn-fill[data-fill-dir=top]:before{transform-origin:top}.btn-fill[data-fill-dir=bottom]:before{transform-origin:bottom}.btn-fill.is-filled[data-fill-dir=left]:before,.btn-fill.is-filled[data-fill-dir=right]:before{transform:scaleX(1)}.btn-fill.is-filled[data-fill-dir=top]:before,.btn-fill.is-filled[data-fill-dir=bottom]:before{transform:scaleY(1)}.btn-fill.is-filled{color:var(--btn-fill-color,var(--color-bg))}.theme-toggle{border:1px solid var(--color-accent);border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-accent);cursor:pointer;background:0 0;place-items:center;padding:0;transition:background-color .2s,color .2s;display:grid}.theme-toggle:hover{background:var(--color-accent);color:var(--color-bg)}.theme-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.theme-toggle__icon{display:block}.nav__logo{z-index:101;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text);font-size:20px;font-weight:700;text-decoration:none;position:fixed;top:24px;left:24px}.nav__logo:hover{color:var(--color-accent);opacity:1}.nav__actions{z-index:101;align-items:center;gap:var(--space-2);display:flex;position:fixed;top:24px;right:24px}.nav__hamburger{border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:8px;display:flex}.nav__hamburger span{background:var(--color-text);border-radius:1px;width:100%;height:2px;transition:transform .3s,opacity .3s;display:block}.nav__hamburger--open span:first-child{transform:translateY(7px)rotate(45deg)}.nav__hamburger--open span:nth-child(2){opacity:0}.nav__hamburger--open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.nav-overlay{z-index:100;background:var(--color-bg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.nav-overlay__content{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.nav-overlay__links{text-align:center;flex-direction:column;align-items:center;gap:clamp(.25rem,.8vw,.75rem);margin:0;padding:0;list-style:none;display:flex}.nav-overlay__links a{font-family:var(--font-display);color:var(--color-text);font-size:clamp(2.5rem,6vw,4.5rem);font-weight:500;text-decoration:none;transition:color .2s}.nav-overlay__links a:hover{color:var(--color-accent);opacity:1}@media (width<=768px){.nav-overlay__links a{font-size:clamp(2rem,10vw,3rem)}}.hero{flex-direction:column;justify-content:center;align-items:center;min-height:100svh;display:flex;position:relative;overflow:hidden}.hero__canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.hero__content{z-index:1;text-align:center;padding:var(--space-4);position:relative}.hero__title{font-family:var(--font-display);color:var(--color-text);font-size:clamp(40px,8vw,80px);font-weight:500;line-height:1.1}.hero__subtitle{margin-top:var(--space-2);font-family:var(--font-mono);letter-spacing:.3em;text-transform:uppercase;color:var(--color-accent);font-size:clamp(14px,2vw,18px);transition:color .25s}.hero__subtitle:hover{color:#fff}.hero__scroll{bottom:var(--space-4);z-index:1;color:var(--color-text-muted);place-items:center;text-decoration:none;animation:2s ease-in-out infinite hero-bounce;display:grid;position:absolute}.hero__scroll:hover{color:var(--color-accent);opacity:1}@keyframes hero-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}.projects{padding:var(--space-8) 0}.projects__heading{max-width:1120px;margin:0 auto var(--space-4);padding:0 var(--space-4)}.project{max-width:1280px;padding:var(--space-6) var(--space-4);grid-template-columns:1.4fr 1fr;align-items:center;gap:clamp(2rem,4vw,4rem);margin:0 auto;display:grid}.project--reverse{grid-template-columns:1fr 1.4fr}.project--reverse .project__thumb{order:2}.project--reverse .project__info{order:1}.project--social-club{--project-accent:#4f328c}[data-theme=dark] .project--social-club{--project-accent:#7663f2}.project__thumb{border-radius:var(--radius-lg);aspect-ratio:4/3;width:100%;overflow:hidden}.project__thumb-inner{width:100%;height:100%;transition:transform .6s}.project__thumb:hover .project__thumb-inner{transform:scale(1.05)}.project__thumb-inner img{object-fit:cover;width:100%;height:100%;display:block}.project__placeholder{background:linear-gradient(135deg, color-mix(in srgb, var(--color-accent) 15%, transparent), color-mix(in srgb, var(--color-blue) 25%, transparent));width:100%;height:100%}.project__info{gap:var(--space-2);flex-direction:column;display:flex}.project__title-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.project__title{font-size:clamp(24px,3vw,40px);line-height:1.2}.project__badge{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;padding:4px var(--space-2);border-radius:var(--radius-full);border:1px solid color-mix(in srgb, var(--color-text) 20%, transparent);color:var(--color-text-muted);font-size:12px}.project__desc{color:var(--color-text-muted);max-width:440px;font-size:16px;line-height:1.7}.project__tags{gap:var(--space-1);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.project__tag{font-family:var(--font-mono);padding:4px var(--space-1);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--project-accent,var(--color-accent)) 12%, transparent);color:var(--project-accent,var(--color-accent));font-size:12px}.project__link{margin-top:var(--space-1);font-family:var(--font-mono);color:var(--project-accent,var(--color-accent));align-items:center;gap:6px;font-size:14px;display:inline-flex}.project__link:hover{opacity:.75}@media (width<=768px){.project,.project--reverse{min-height:auto;padding:var(--space-4);grid-template-columns:1fr}.project--reverse .project__thumb,.project--reverse .project__info{order:unset}}.about{max-width:1120px;padding:var(--space-8) var(--space-4);margin:0 auto}.about__top{grid-template-columns:220px 1fr;align-items:center;gap:clamp(2rem,4vw,4rem);display:grid}.about__photo-frame{width:220px;position:relative}.about__photo-frame:before{content:"";border:1px solid var(--color-accent);border-radius:var(--radius-lg);z-index:-1;transition:transform .3s;position:absolute;inset:14px -14px -14px 14px}.about__photo-frame:hover:before{transform:translate(4px,4px)}.about__photo-placeholder{aspect-ratio:1;border-radius:var(--radius-lg);background:color-mix(in srgb, var(--color-text) 5%, transparent);width:220px;position:relative;overflow:hidden}.about__photo-placeholder img{object-fit:cover;width:100%;height:100%;display:block}.about__intro{gap:var(--space-2);flex-direction:column;display:flex}.about__title{letter-spacing:-.01em;font-size:clamp(28px,3.6vw,44px);line-height:1.15}.about__title-accent{color:var(--color-accent)}.about__bio{color:var(--color-text-muted);max-width:62ch;font-size:16px;line-height:1.7}.about__competencies{margin-top:var(--space-6);gap:var(--space-3);grid-template-columns:repeat(4,1fr);display:grid}.about__comp{gap:var(--space-1);padding:var(--space-3);border:1px solid color-mix(in srgb, var(--color-text) 10%, transparent);border-radius:var(--radius-lg);flex-direction:column;transition:border-color .25s,transform .25s,background-color .25s;display:flex}.about__comp:hover{border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 5%, transparent);transform:translateY(-4px)}.about__comp-icon{border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-accent) 10%, transparent);width:44px;height:44px;color:var(--color-accent);flex-shrink:0;place-items:center;display:grid}.about__comp-title{margin-top:var(--space-1);font-size:16px;font-weight:500;line-height:1.4}.about__comp-desc{color:var(--color-text-muted);font-size:14px;line-height:1.6}.about__skills{margin-top:var(--space-4);gap:var(--space-1);flex-wrap:wrap;display:flex}.about__chip{font-family:var(--font-mono);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);border:1px solid color-mix(in srgb, var(--color-text) 10%, transparent);color:var(--color-text-muted);font-size:13px}.about__cv{margin-top:var(--space-6);align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);font-family:var(--font-mono);color:var(--color-accent);border:1px solid var(--color-accent);font-size:14px;text-decoration:none;display:inline-flex}.about__cv:hover{opacity:1}@media (width<=900px){.about__competencies{grid-template-columns:1fr 1fr}}@media (width<=768px){.about__top{grid-template-columns:1fr}.about__photo-frame,.about__photo-placeholder{width:200px}.about__competencies{grid-template-columns:1fr}}.contact{max-width:1120px;padding:var(--space-8) var(--space-4);margin:0 auto;position:relative;overflow:hidden}.contact__backdrop{padding:0 var(--space-4);pointer-events:none;-webkit-user-select:none;user-select:none;font-family:var(--font-display);text-transform:uppercase;letter-spacing:-.02em;color:color-mix(in srgb, var(--color-text) 10%, transparent);white-space:nowrap;margin:0;font-size:clamp(64px,13vw,200px);font-weight:700;line-height:.85}.contact__card{z-index:1;background:var(--color-blue);border-radius:var(--radius-lg);width:min(100%,720px);padding:var(--space-6);--card-text:#fafaf8;--card-text-muted:#fafaf8a6;--card-line:#fafaf84d;color:var(--card-text);margin-top:clamp(-32px,-6vw,0px);margin-left:auto;position:relative;box-shadow:0 24px 60px #0000004d}.contact__card-header{justify-content:flex-end;align-items:center;gap:var(--space-2);display:flex}.contact__linkedin{font-family:var(--font-mono);color:var(--card-text);align-items:center;gap:6px;font-size:13px;display:inline-flex}.contact__linkedin svg{fill:currentColor}.contact__linkedin:hover{color:var(--color-accent);opacity:1}.contact__form{margin-top:var(--space-4);gap:var(--space-4);flex-direction:column;display:flex}.contact__grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.contact__fields{gap:var(--space-3);flex-direction:column;display:flex}.contact__label{font-family:var(--font-mono);color:var(--card-text-muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.contact__label--message{flex-direction:column;height:100%;display:flex}.contact__label--message .contact__textarea{flex:1;min-height:140px}.contact__input{font-family:var(--font-body);padding:var(--space-1) 0;border:none;border-bottom:1px solid var(--card-line);color:var(--card-text);background:0 0;border-radius:0;outline:none;font-size:16px;transition:border-color .2s}.contact__input:focus{border-color:var(--color-accent)}.contact__textarea{resize:vertical;width:100%;display:block}.contact__actions{justify-content:flex-end;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.contact__submit{--btn-fill-bg:var(--color-accent);align-items:center;gap:var(--space-1);font-family:var(--font-mono);padding:var(--space-2) var(--space-4);border:1px solid var(--color-accent);color:var(--color-accent);cursor:pointer;background:0 0;align-self:flex-end;font-size:14px;display:inline-flex}.contact__submit:disabled{opacity:.6;cursor:not-allowed}.contact__status{font-family:var(--font-mono);color:var(--card-text-muted);font-size:13px;line-height:1.5}.contact__status--success{color:var(--card-text)}.contact__status--error a{color:var(--card-text);text-decoration:underline}.contact__honeypot{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}@media (width<=768px){.contact__backdrop{font-size:clamp(40px,16vw,90px)}.contact__card{width:100%;margin-top:var(--space-4);padding:var(--space-4)}.contact__grid{grid-template-columns:1fr}.contact__actions{justify-content:flex-start}}main{min-height:100svh}.footer{padding:var(--space-4);text-align:center;border-top:1px solid color-mix(in srgb, var(--color-text) 10%, transparent)}.footer p{font-family:var(--font-mono);color:var(--color-text-muted);font-size:13px}.case-study{--case-accent:#4f328c;min-height:100svh}[data-theme=dark] .case-study{--case-accent:#7663f2}.case-study__header{max-width:1120px;padding:var(--space-3) var(--space-4);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.case-study__back{font-family:var(--font-mono);color:var(--color-text-muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.case-study__back:hover{color:var(--case-accent)}.case-study__hero{max-width:1120px;padding:var(--space-6) var(--space-4) var(--space-8);margin:0 auto}.case-study__eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--case-accent);font-size:13px}.case-study__title{margin-top:var(--space-2);font-size:clamp(36px,6vw,64px);line-height:1.05}.case-study__tagline{margin-top:var(--space-3);max-width:640px;font-size:clamp(16px,2vw,20px);line-height:1.6}.case-study__scope-box{margin-top:var(--space-6);gap:var(--space-4);padding:var(--space-4);border:1px solid color-mix(in srgb, var(--color-text) 12%, transparent);border-radius:var(--radius-lg);grid-template-columns:repeat(3,1fr);display:grid}.case-study__scope-item{flex-direction:column;gap:6px;display:flex}.case-study__scope-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);font-size:11px}.case-study__scope-value{color:var(--color-text);font-size:15px;line-height:1.4}.case-study__scope-value--placeholder{color:var(--color-text-muted);font-style:italic}.case-study__prototype-link{--btn-fill-bg:var(--case-accent);margin-top:var(--space-4);align-items:center;gap:var(--space-1);font-family:var(--font-mono);padding:var(--space-1) var(--space-3);border:1px solid var(--case-accent);border-radius:var(--radius-full);color:var(--case-accent);font-size:14px;display:inline-flex}.case-study__prototype-link:hover{opacity:1}.case-study__prototype-link--disabled{border-color:color-mix(in srgb, var(--color-text) 20%, transparent);color:var(--color-text-muted);cursor:default;pointer-events:none}.case-study__hero-image{margin-top:var(--space-6);border-radius:var(--radius-lg);overflow:hidden}.case-study__hero-image--top{margin-top:0;margin-bottom:var(--space-6)}.case-study__hero-image img{width:100%;height:auto;display:block}.case-study__section{max-width:1120px;padding:var(--space-8) var(--space-4);border-top:1px solid color-mix(in srgb, var(--color-text) 8%, transparent);margin:0 auto}.case-study__section-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);font-size:12px}.case-study__section-heading{margin-top:var(--space-1)}.case-study__section-text{margin-top:var(--space-3);max-width:100%;font-size:16px;line-height:1.7}.case-study__section-text+.case-study__section-text{margin-top:var(--space-2)}.case-study__section-row{gap:var(--space-4);grid-template-columns:1.4fr 1fr;align-items:center;display:grid}.case-study__section-image{justify-content:center;display:flex}.case-study__section-image img{width:100%;max-width:280px;height:auto;display:block}@media (width<=768px){.case-study__section-row{grid-template-columns:1fr}}.case-study__personas-layout{margin-top:var(--space-4);gap:var(--space-6);grid-template-columns:1fr 1fr;align-items:start;display:grid}.case-study__personas-col-text{top:var(--space-6);align-self:start;position:sticky}.case-study__personas-col-text .case-study__section-label,.case-study__personas-col-text .case-study__section-heading{margin-top:0}@media (width<=900px){.case-study__personas-col-text{position:static}}.case-study__personas-col-images{gap:var(--space-4);flex-direction:column;display:flex}.persona-card-image{width:100%}.persona-card-image img{border-radius:var(--radius-lg);width:100%;height:auto;display:block}@media (width<=900px){.case-study__personas-layout{grid-template-columns:1fr}}.case-study__hmw-list{margin-top:var(--space-4);flex-direction:column;gap:0;display:flex}.hmw-item{gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid color-mix(in srgb, var(--color-text) 6%, transparent);align-items:baseline;display:flex}.hmw-item:last-child{border-bottom:none}.hmw-item__number{font-family:var(--font-mono);color:var(--case-accent);flex-shrink:0;font-size:13px}.hmw-item__text{color:var(--color-text);font-size:clamp(17px,2.2vw,22px);line-height:1.4}.case-study__ideation-images{margin-top:var(--space-4);gap:var(--space-6);flex-direction:column;display:flex}.ideation-image{flex-direction:column;align-items:center;display:flex}.ideation-image img{border-radius:var(--radius-md);width:auto;max-width:100%;height:auto;max-height:82vh;display:block}.ideation-image--wide{width:100%}.ideation-image--wide img{width:100%;max-width:100%;height:auto;max-height:92vh}.ideation-image__caption{margin-top:var(--space-2);font-family:var(--font-mono);color:var(--color-text-muted);font-size:13px}.case-study__ideation-thumbs-label{margin-top:var(--space-3);text-align:center;font-family:var(--font-mono);color:var(--color-text-muted);font-size:13px}.case-study__ideation-thumbs{margin-top:var(--space-6);gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));display:grid}.ideation-thumb img{border-radius:var(--radius-sm);opacity:.85;width:100%;height:auto;display:block}.case-study__brand-assets{margin-top:var(--space-4);align-items:center;gap:var(--space-6);flex-direction:column;display:flex}.brand-asset{width:100vw;padding:0 var(--space-4);box-sizing:border-box;justify-content:center;display:flex;position:relative;left:50%;transform:translate(-50%)}.brand-asset img{border-radius:var(--radius-md);width:100%;max-width:1100px;height:auto;display:block}.case-study__brand-accent{margin-top:var(--space-6);justify-content:center;display:flex}.case-study__brand-accent img{width:100%;max-width:360px;height:auto;display:block}.case-study__screen-group{margin-top:var(--space-6)}.case-study__screen-group:first-of-type{margin-top:var(--space-4)}.screen-group__title{font-size:20px}.screen-group__desc{margin-top:var(--space-1);max-width:60ch;font-size:15px;line-height:1.6}.screen-group__images{margin-top:var(--space-3);justify-content:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.screen-group__images--cols-2{grid-template-columns:repeat(2,minmax(0,300px));justify-content:center;display:grid}@media (width<=560px){.screen-group__images--cols-2{grid-template-columns:minmax(0,300px)}}.screen-image{flex:0 300px;width:100%;max-width:300px}.screen-image img{width:100%;height:auto;display:block}.case-study__next{max-width:1120px;padding:var(--space-8) var(--space-4) var(--space-8);border-top:1px solid color-mix(in srgb, var(--color-text) 8%, transparent);text-align:center;margin:0 auto}.case-study__next-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);font-size:12px}.case-study__next-title{margin-top:var(--space-2);font-size:clamp(24px,4vw,40px)}.case-study__next-title--placeholder{color:var(--color-text-muted)}.case-study__next-link{margin-top:var(--space-3);font-family:var(--font-mono);color:var(--case-accent);align-items:center;gap:6px;font-size:14px;display:inline-flex}@media (width<=900px){.case-study__scope-box,.case-study__personas{grid-template-columns:1fr}}
