@import url("https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;600;700&family=Inter:wght@400;500;600&display=swap");:root{--background:#f3fbf7;--foreground:#151d1b;--surface:#f3fbf7;--surface-container-lowest:#ffffff;--surface-container-low:#edf6f2;--surface-container:#e7f0ec;--surface-container-high:#e1eae6;--surface-container-highest:#dce4e1;--surface-variant:#dce4e1;--surface-dim:#d3dcd8;--primary:#006b5c;--primary-fixed-dim:#00dfc2;--primary-container:#2af5d6;--on-primary:#ffffff;--on-primary-container:#006c5d;--secondary:#565e74;--outline:#6a7a76;--outline-variant:#b9cac5;--on-surface:#151d1b;--on-surface-variant:#3b4a46;--shadow-soft:0 20px 40px rgba(15,23,42,0.04);--shadow-strong:0 30px 60px rgba(15,23,42,0.08);--radius-sm:0.25rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-2xl:1.5rem;--radius-full:9999px;--container-max:1280px;--margin-mobile:20px;--margin-desktop:64px;--gutter:32px;--stack-sm:8px;--stack-md:24px;--stack-lg:80px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--background);color:var(--foreground);font-family:Inter,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}button,input,select,textarea{font:inherit}.container{width:min(calc(100% - (var(--margin-mobile) * 2)),var(--container-max));margin:0 auto}@media (min-width:768px){.container{width:min(calc(100% - (var(--margin-desktop) * 2)),var(--container-max))}}.site-header{position:fixed;inset:0 0 auto 0;z-index:50;backdrop-filter:blur(12px);background:rgba(243,251,247,.8);border-bottom:1px solid rgba(185,202,197,.3);box-shadow:var(--shadow-soft)}.shell-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 0}.mobile-drawer{border-top:1px solid rgba(185,202,197,.3);background:rgba(243,251,247,.96);backdrop-filter:blur(16px)}.mobile-nav{display:grid;gap:8px;padding:16px 0 20px}.mobile-link{padding:14px 0;color:var(--on-surface-variant);border-bottom:1px solid rgba(185,202,197,.2)}.mobile-link.active{color:var(--primary);font-weight:600}.mobile-cta{margin-top:12px;text-align:center;justify-content:center}.brand,.footer-brand{font-family:Hanken Grotesk,sans-serif;font-weight:700;color:var(--primary);font-size:32px;line-height:1.1}.brand-with-logo,.footer-brand-wrap{display:inline-flex;align-items:center;gap:12px}.brand-logo{width:64px;height:64px;object-fit:contain;flex:0 0 auto;display:block}.brand-text{display:inline-block}.brand.brand-with-logo,.footer-brand.footer-brand-wrap{font-size:0;line-height:0}.desktop-nav{display:none;gap:32px;align-items:center}.nav-link{color:var(--on-surface-variant);position:relative;transition:color .3s ease}.nav-link.active,.nav-link:hover{color:var(--primary)}.nav-link:after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:2px;background:var(--primary);transform:scaleX(0);transform-origin:bottom right;transition:transform .3s ease}.nav-link.active:after,.nav-link:hover:after{transform:scaleX(1);transform-origin:bottom left}.desktop-only{display:none}.mobile-menu{background:none;border:0;color:var(--primary);font-size:28px;width:44px;height:44px;display:inline-grid;place-items:center;border-radius:50%;transition:background .2s ease,transform .2s ease}.mobile-menu:hover{background:rgba(42,245,214,.12)}.mobile-menu:active{transform:scale(.96)}.cta-button,.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,var(--primary),var(--primary-fixed-dim));color:var(--on-primary);border:0;border-radius:var(--radius-full);padding:14px 24px;box-shadow:var(--shadow-soft);transition:transform .3s ease,box-shadow .3s ease}.cta-button:hover,.primary-button:hover{transform:scale(1.02);box-shadow:0 10px 25px rgba(0,107,92,.2)}.secondary-button{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1.5px solid var(--primary);color:var(--primary);border-radius:var(--radius-full);padding:14px 24px;transition:background .3s ease,transform .3s ease}.secondary-button:hover{background:rgba(0,107,92,.05);transform:translateY(-1px)}.hero-badge,.pill{display:inline-block;padding:8px 16px;border-radius:var(--radius-full);background:rgba(42,245,214,.16);color:var(--on-primary-container);border:1px solid rgba(42,245,214,.3);font-family:Hanken Grotesk,sans-serif;font-size:12px;letter-spacing:.15em;text-transform:uppercase;font-weight:600}.page-main{padding-top:110px}.hero-grid,.two-col{display:grid;gap:var(--gutter)}.hero-title,.page-title{font-family:Hanken Grotesk,sans-serif;font-size:40px;line-height:1.2;letter-spacing:-.02em;font-weight:700;margin:0}.gradient-text{background:linear-gradient(to right,var(--primary),var(--primary-fixed-dim));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.lead,.muted{color:var(--on-surface-variant)}.faq-card,.glass-panel,.hero-card,.surface-card{background:rgba(255,255,255,.6);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.5);box-shadow:var(--shadow-soft);border-radius:var(--radius-2xl)}.section{padding:var(--stack-lg) 0}.section-tight{padding-top:0}.section-soft{background:var(--surface-container-low)}.section-head{margin-bottom:48px}.center-text,.section-head.center{text-align:center}.section-title{margin:0 0 16px;font-family:Hanken Grotesk,sans-serif;font-size:32px;line-height:1.3;letter-spacing:-.01em;font-weight:600}.max-copy{max-width:760px;margin-left:auto;margin-right:auto}.card-grid{display:grid;gap:var(--gutter)}.bento-card,.card,.reference-card,.service-card{background:var(--surface-container-lowest);border:1px solid rgba(185,202,197,.3);border-radius:var(--radius-2xl);overflow:hidden;box-shadow:var(--shadow-soft);transition:transform .4s cubic-bezier(.175,.885,.32,1.275),box-shadow .4s ease}.bento-card:hover,.card:hover,.reference-card:hover,.service-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-strong)}.image-cover{width:100%;height:100%;object-fit:cover;display:block}.zoom-hover{transition:transform .7s ease}.reference-card:hover .zoom-hover,.service-card:hover .zoom-hover{transform:scale(1.08)}.media-16-9{aspect-ratio:16/9}.media-16-9,.media-square{position:relative;overflow:hidden}.media-square{aspect-ratio:1/1}.hero-image-wrap{position:relative;min-height:420px;overflow:hidden;border-radius:var(--radius-2xl);box-shadow:var(--shadow-soft);background:var(--surface-container-high)}.hero-image-wrap.tall{min-height:614px}.hero-image-wrap.soft-hero:after{background:linear-gradient(0deg,rgba(0,0,0,.4),transparent)}.hero-image-wrap:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(243,251,247,.9),rgba(243,251,247,.55),transparent)}.hero-image-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:imageZoom 1.5s cubic-bezier(.25,1,.5,1) forwards}.hero-content{position:relative;z-index:1;padding:48px;max-width:720px}.hero-content.flush-bottom{display:flex;flex-direction:column;justify-content:flex-end;min-height:100%}.card-body{padding:24px}.card-title{margin:0 0 12px;font-size:24px;line-height:1.3;font-weight:600}.card-title,.inline-link{font-family:Hanken Grotesk,sans-serif}.inline-link{color:var(--primary);font-size:14px;letter-spacing:.08em;text-transform:uppercase;display:inline-flex;align-items:center;gap:6px;margin-top:8px}.inline-link:after{content:"→";transition:transform .2s ease}.inline-link:hover:after{transform:translateX(2px)}.icon-dot{width:48px;height:48px;border-radius:50%;background:rgba(42,245,214,.35);margin-bottom:24px}.soft-card{background:var(--surface-container-highest)}.glass-caption{position:absolute;inset:auto 16px 16px 16px;padding:16px;border-radius:16px;background:rgba(255,255,255,.6);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.5)}.project-overlay .card-title,.service-card .glass-caption .card-title{margin-bottom:0}.reveal{opacity:0;transform:translateY(30px);transition:all .8s cubic-bezier(.165,.84,.44,1)}.reveal.active{opacity:1;transform:translateY(0)}.stagger>*{opacity:0;transform:translateY(30px);animation:heroFadeIn .8s cubic-bezier(.25,1,.5,1) forwards}.stagger>:first-child{animation-delay:.1s}.stagger>:nth-child(2){animation-delay:.2s}.stagger>:nth-child(3){animation-delay:.3s}.stagger>:nth-child(4){animation-delay:.4s}.stagger>:nth-child(5){animation-delay:.5s}@keyframes heroFadeIn{to{opacity:1;transform:translateY(0)}}@keyframes imageZoom{0%{transform:scale(1.05)}to{transform:scale(1)}}.faq-card{overflow:hidden;border:1px solid rgba(185,202,197,.3);background:var(--surface-container-lowest)}.accordion-button{width:100%;background:none;border:0;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:24px;text-align:left;color:var(--on-surface)}.accordion-content{max-height:0;overflow:hidden;opacity:0;transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .3s ease;padding:0 24px}.accordion-content.open{max-height:1000px;opacity:1;padding-bottom:24px}.accordion-icon{transition:transform .4s cubic-bezier(.4,0,.2,1)}.accordion-icon.open{transform:rotate(180deg)}.light{color:rgba(255,255,255,.92)}.site-footer{background:var(--surface-container);border-top:1px solid rgba(185,202,197,.3);padding:var(--stack-lg) 0;margin-top:var(--stack-lg)}.footer-grid{display:grid;gap:var(--gutter)}.footer-title{margin:0 0 16px;font-family:Hanken Grotesk,sans-serif}.footer-links{list-style:none;padding:0;margin:0;display:grid;gap:8px}.footer-copy,.footer-links{color:var(--secondary)}.form-grid{display:grid;gap:24px}.input,.select,.textarea{width:100%;min-height:56px;padding:14px 16px;background:#f8fafc;border:1px solid var(--outline-variant);border-radius:var(--radius-lg);color:var(--on-surface)}.textarea{min-height:140px;resize:vertical}.chip-row,.filter-row,.stat-grid{display:flex;flex-wrap:wrap;gap:16px}.reference-layout{display:grid;gap:var(--gutter)}.project-card{position:relative;overflow:hidden;min-height:100%}.project-media.large{position:relative;min-height:500px}.project-media.small{position:relative;min-height:400px}.project-overlay{position:absolute;inset:auto 16px 16px 16px;background:rgba(243,251,247,.72);border:1px solid rgba(255,255,255,.5)}.pill.small{font-size:11px;padding:6px 12px;margin-bottom:8px}.contact-layout{align-items:start}.contact-card{padding:32px}.contact-list{color:var(--on-surface-variant);display:grid;gap:16px}.contact-card form{margin-top:8px}.success-box{border-radius:16px;background:rgba(42,245,214,.16);border:1px solid rgba(42,245,214,.35);color:var(--on-primary-container)}.error-box,.success-box{margin-bottom:20px;padding:16px 18px}.error-box{border-radius:16px;background:rgba(255,218,214,.9);border:1px solid rgba(186,26,26,.24);color:#93000a}.legal-page{max-width:900px}.legal-card{padding:32px;color:var(--on-surface-variant)}.legal-card li,.legal-card p{line-height:1.7}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(42,245,214,.25)}.media-card{overflow:hidden}.timeline{position:relative}.timeline:before{content:"";position:absolute;left:24px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,transparent,var(--primary-container),var(--primary-fixed-dim),transparent)}.timeline-step{padding-left:72px;margin-bottom:48px}.timeline-media,.timeline-step,.timeline-text{position:relative}.timeline-dot{position:absolute;left:0;top:4px;width:48px;height:48px;border-radius:50%;background:var(--surface-container-lowest);border:2px solid var(--primary-container);display:grid;place-items:center;box-shadow:0 10px 20px rgba(42,245,214,.2)}@media (min-width:768px){.desktop-nav,.desktop-only{display:flex}.mobile-drawer,.mobile-menu{display:none}.brand-logo{width:72px;height:72px}.hero-grid{align-items:center}.hero-grid,.hero-grid.reverse,.two-col{grid-template-columns:1fr 1fr}.card-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.reference-layout{grid-template-columns:repeat(12,minmax(0,1fr))}.span-8{grid-column:span 8/span 8}.span-4{grid-column:span 4/span 4}.timeline:before{left:50%;transform:translateX(-50%)}.timeline-step{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding-left:0;align-items:center;min-height:220px}.timeline-step:nth-child(2n) .timeline-text{order:2}.timeline-step:nth-child(2n) .timeline-media{order:1}.timeline-dot{left:50%;transform:translateX(-50%)}}