:root{--obsidian:#1e1e1e;--mist:#f5f7f6;--mist-ob:#ebebeb;--green-aurora:#0d9e66;--lime-glow:#0a7d51;--polar-sky:#062a37;--mint:#84ef99;--font-display:"Work Sans", ui-sans-serif, system-ui, sans-serif;--font-sans:"Mulish", ui-sans-serif, system-ui, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}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}html{scroll-behavior:smooth}body{background:var(--mist);min-height:100vh;color:var(--obsidian);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.5;overflow-x:clip}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}ul,ol{list-style:none}::selection{color:var(--obsidian);background:#0d9e662e}section[id]{scroll-margin-top:4.5rem}.eyebrow{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.24em;color:var(--green-aurora);align-items:center;gap:.5rem;font-size:.75rem;font-weight:500;display:inline-flex}.grain .homeHero__bg:after,.grain .home-cta__bg:after{content:"";z-index:2;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%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");position:absolute;inset:0}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(26px)}.reveal.in{opacity:1;transform:none}.page-transition.is-entering{animation:.5s both page-enter}@keyframes page-enter{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transition:none;transform:none}.page-transition.is-entering{animation:none}}.route-loading{justify-content:center;align-items:center;min-height:50vh;display:flex}.route-loading__spinner{border:2px solid #1e1e1e1f;border-top-color:var(--green-aurora);border-radius:50%;width:2.5rem;height:2.5rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.btn{text-align:center;border-radius:9999px;justify-content:center;align-items:center;gap:.5rem;padding:.875rem 1.75rem;font-size:.875rem;font-weight:600;transition:background .2s,color .2s,border-color .2s,transform .2s;display:inline-flex}.btn:focus-visible{outline-offset:2px;outline:2px solid #0d9e6680}.btn:disabled{opacity:.5;cursor:default}.btn--primary{background:var(--green-aurora);color:var(--mist)}.btn--primary:hover{background:var(--lime-glow);transform:translateY(-2px)}.btn--ghost{color:var(--obsidian);border:1px solid #1e1e1e33}.btn--ghost:hover{border-color:var(--green-aurora);color:var(--green-aurora);transform:translateY(-2px)}.btn--light{background:var(--mist);color:var(--obsidian)}.btn--light:hover{background:var(--mist);transform:translateY(-2px)}.lang-switch{border:1px solid var(--mist);background:var(--mist-ob);border-radius:9999px;align-items:center;padding:2px;display:inline-flex}.lang-switch__opt{color:var(--obsidian);border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600;transition:background .2s,color .2s}.lang-switch__opt:not(.lang-switch__opt--active):hover{color:var(--green-aurora)}.lang-switch__opt--active{background:var(--green-aurora);color:var(--mist)}.lang-switch--on-dark{background:#f5f7f61a;border-color:#f5f7f647}.lang-switch--on-dark .lang-switch__opt{color:var(--mist)}.lang-switch--on-dark .lang-switch__opt:not(.lang-switch__opt--active):hover{color:var(--mint)}.lang-switch--on-dark .lang-switch__opt--active{background:var(--mint);color:var(--polar-sky)}.nav{z-index:50;transition:background .3s,border-color .3s,box-shadow .3s;position:fixed;top:0;left:0;right:0}.nav--scrolled:not(.nav--over-hero){-webkit-backdrop-filter:blur(16px)saturate(1.5);backdrop-filter:blur(16px)saturate(1.5);background:#f5f7f68c;border-bottom:1px solid #1e1e1e14;box-shadow:0 8px 24px -20px #1e1e1e38}.nav--over-hero .nav__logo-wordmark{filter:brightness(0)invert()}.nav--over-hero .nav__link{color:#f5f7f69e}.nav--over-hero .nav__link:hover,.nav--over-hero .nav__link--active{color:var(--mist)}.nav--work-detail{background:var(--obsidian);border-bottom:1px solid #f5f7f614}.nav__inner{z-index:50;justify-content:space-between;align-items:center;max-width:80rem;height:4rem;margin-inline:auto;padding-inline:1.25rem;display:flex;position:relative}@media (width>=768px){.nav__inner{padding-inline:2rem}}.nav__logo{align-items:center;display:inline-flex;position:relative}.nav__logo img{width:auto;height:22px;transition:opacity .7s cubic-bezier(.22,1,.36,1),filter .3s,transform .7s cubic-bezier(.22,1,.36,1)}.nav__logo-isologo{opacity:0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.nav__desktop{align-items:center;gap:2rem;display:none}@media (width>=1024px){.nav__desktop{transition:opacity .35s,transform .35s cubic-bezier(.22,1,.36,1);display:flex}.nav--compact .nav__desktop{opacity:0;pointer-events:none;transform:translateY(-.5rem)}.nav--compact .nav__logo-wordmark{opacity:0;transform:scale(.85)}.nav--compact .nav__logo-isologo{opacity:1;transform:translateY(-50%)scale(1)}.nav__logo img{height:24px}}.nav__links{align-items:center;gap:1.75rem;display:flex}.nav__link{color:#1e1e1eb3;font-size:.875rem;font-weight:600;transition:color .2s}.nav__link:hover,.nav__link--active{color:var(--green-aurora)}.nav__actions{align-items:center;gap:1rem;display:flex}.nav__cta{padding:.625rem 1.25rem}.nav__mobile{align-items:center;gap:.75rem;margin-left:auto;display:flex}@media (width>=1024px){.nav__mobile{display:none}}@media (width<=1023.98px){.nav__logo,.nav__mobile .lang-switch{transition:opacity .3s,transform .3s}.nav--mobile-compact .nav__logo,.nav--mobile-compact .nav__mobile .lang-switch{opacity:0;pointer-events:none;transform:scale(.85)}}.nav__burger{border:1px solid var(--mist-ob);width:2.75rem;height:2.75rem;color:var(--obsidian);background:#f5f7f6b3;border-radius:9999px;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.nav__burger span{background:currentColor;width:1.25rem;height:2px;transition:transform .3s,opacity .3s;display:block}.nav__burger--open span:first-child{transform:translateY(8px)rotate(45deg)}.nav__burger--open span:nth-child(2){opacity:0}.nav__burger--open span:nth-child(3){transform:translateY(-8px)rotate(-45deg)}.nav__burger:focus-visible{outline-offset:2px;outline:2px solid #0d9e6680}.nav--open .nav__burger:focus-visible{outline-color:var(--mint)}.nav__panel{z-index:49;background:var(--polar-sky);visibility:hidden;opacity:0;pointer-events:none;transition:transform .6s cubic-bezier(.22,1,.36,1),opacity .35s 50ms,visibility 0s linear .65s;position:fixed;inset:0;overflow:hidden;transform:translateY(-100%)}.nav__panel--open{visibility:visible;opacity:1;pointer-events:auto;transition:transform .6s cubic-bezier(.22,1,.36,1),opacity .35s,visibility linear;transform:translateY(0)}.nav__panel-inner{max-width:80rem;min-height:100%;padding:calc(env(safe-area-inset-top,0px) + 6rem) clamp(1.75rem, 6vw, 3.5rem) calc(env(safe-area-inset-bottom,0px) + clamp(2.5rem, 8vh, 4rem));flex-direction:column;justify-content:space-between;margin-inline:auto;display:flex}@media (width>=768px){.nav__panel-inner{padding-inline:3rem}}.nav__panel-brand{opacity:0;margin-bottom:clamp(2.5rem,8vh,4.5rem);transition:opacity .5s,transform .5s cubic-bezier(.22,1,.36,1);transform:translateY(24px)scale(.96)}.nav__panel--open .nav__panel-brand{opacity:1;transition-delay:60ms;transform:none}.nav__panel-brand img{width:clamp(5rem,26vw,8.5rem);height:auto}.nav__panel-links{margin-bottom:3.5rem;padding-top:.75rem}.nav__panel-row{opacity:0;border-top:1px solid #f5f7f624;transition:opacity .5s,transform .5s cubic-bezier(.22,1,.36,1);transform:translateY(26px)}.nav__panel-row:last-child{border-bottom:1px solid #f5f7f624}.nav__panel--open .nav__panel-row{opacity:1;transform:none}.nav__panel--open .nav__panel-row:first-child{transition-delay:.12s}.nav__panel--open .nav__panel-row:nth-child(2){transition-delay:.2s}.nav__panel--open .nav__panel-row:nth-child(3){transition-delay:.28s}.nav__panel-link{font-family:var(--font-display);letter-spacing:-.02em;color:var(--mist);align-items:baseline;gap:1.25rem;padding:.45em 0;font-size:clamp(2.25rem,1.48rem + 3.18vw,3.25rem);font-weight:700;line-height:1.05;transition:color .25s,transform .25s;display:flex}.nav__panel-link:hover{color:var(--mint);transform:translate(.5rem)}.nav__panel-link--active{color:var(--mint)}.nav__panel-link:focus-visible{outline:2px solid var(--mint);outline-offset:4px}.nav__panel-index{letter-spacing:.1em;color:var(--mint);opacity:.75;font-size:.8rem;font-weight:600}.nav__panel-foot{opacity:0;border-top:1px solid #f5f7f624;padding-top:2.5rem;transition:opacity .5s .42s,transform .5s cubic-bezier(.22,1,.36,1) .42s;transform:translateY(16px)}.nav__panel--open .nav__panel-foot{opacity:1;transform:none}.nav__panel-eyebrow{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.24em;color:var(--mint);opacity:.9;margin-bottom:1rem;font-size:.75rem;font-weight:600}.nav__panel-channels{flex-wrap:wrap;gap:.75rem 1.75rem;display:flex}.nav__panel-channels a{color:#f5f7f6d9;text-underline-offset:3px;font-size:.9375rem;font-weight:500;-webkit-text-decoration:underline #0d9e668c;text-decoration:underline #0d9e668c;transition:color .2s,text-decoration-color .2s}.nav__panel-channels a:hover{color:var(--mint);-webkit-text-decoration-color:var(--mint);text-decoration-color:var(--mint)}@media (width>=1024px){.nav__panel{display:none}}.nav--open{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;background:0 0;border-bottom-color:#0000}.nav--open .nav__burger{color:var(--mist);background:#f5f7f614;border-color:#f5f7f647}@media (prefers-reduced-motion:reduce){.nav__desktop,.nav__logo img{transition:none}.nav__panel,.nav__panel--open,.nav__panel-row,.nav__panel-foot,.nav__panel-brand{transition:none;transform:none}.nav__panel-row,.nav__panel-foot,.nav__panel-brand{opacity:1}}.footer{background:var(--polar-sky);color:var(--mist)}.footer__inner{gap:2.25rem;max-width:80rem;margin-inline:auto;padding:3.5rem 1.25rem 2rem;display:grid}.footer__social{display:none}.footer__mobile-social{display:block}@media (width<=767.98px){.footer__inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"brand brand""contact social";gap:1.5rem 1.25rem;padding:2.5rem 1.25rem 1.25rem}.footer__brand{grid-area:brand}.footer__contact{grid-area:contact}.footer__portfolio{display:none}.footer__social{grid-area:social;display:block}.footer__mobile-social{display:none}.footer__social .footer__list{flex-flow:wrap;gap:.75rem 1.25rem}.footer__logo{height:1.75rem}.footer__tagline{max-width:none;margin-top:.6rem;font-size:.85rem}.footer__title{letter-spacing:.16em;margin-bottom:.6rem;font-size:.68rem}.footer__list{gap:.4rem}.footer__list a{white-space:nowrap;font-size:.81rem}.footer__bottom p{padding:.9rem 1.25rem;font-size:.78rem}}@media (width>=768px){.footer__inner{grid-template-columns:2fr 1fr 1fr;gap:3rem;padding:4.5rem 2rem 2.5rem}}@media (width>=1024px){.footer__inner{grid-template-columns:2fr 1fr 1fr 1fr}.footer__social{display:block}.footer__mobile-social{display:none}}.footer__logo{width:auto;height:1.5rem}.footer__tagline{color:#f5f7f6a6;max-width:20rem;margin-top:1rem;font-size:.95rem}.footer__title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.18em;color:var(--mist);margin-bottom:1rem;font-size:.75rem;font-weight:600}.footer__list{flex-direction:column;gap:.6rem;display:flex}.footer__list a{color:#f5f7f6d9;overflow-wrap:anywhere;font-size:.925rem;transition:color .2s}.footer__list a:hover{color:var(--green-aurora)}.footer__bottom{border-top:1px solid #f5f7f61f}.footer__bottom p{color:#f5f7f673;max-width:80rem;margin-inline:auto;padding:1.25rem;font-size:.85rem}@media (width>=768px){.footer__bottom p{padding-inline:2rem}}
