:root{--acc:#C9D64B;--dk:#17332B;--dk2:#0B1A15;--dk3:#2E4A41;--cream:#EDE7DF;--sand:#E2DAD0;--ink:#15201C;--muted:#3F4B45;--olive:#5B6E25;--line:#B9B2A9;--soft:#D4D9D3;--soft2:#C3CCC7}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;font-size:17px;line-height:1.55;overflow-x:hidden}
img,video{max-width:100%;display:block}a{color:inherit}
.skip{position:absolute;left:-999px;top:8px;background:var(--acc);color:var(--dk);padding:10px 16px;z-index:10}.skip:focus{left:8px}
.wrap{max-width:1280px;margin:0 auto;padding-left:clamp(16px,4vw,48px);padding-right:clamp(16px,4vw,48px)}
.sec{padding-top:clamp(64px,9vw,128px);padding-bottom:clamp(64px,9vw,128px)}.narrow{max-width:900px}
.stack{display:flex;flex-direction:column;gap:24px}.center{justify-content:center}
.h1{margin:0;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:clamp(56px,9vw,128px);line-height:.9;letter-spacing:-.035em}
.h1-sub{font-size:clamp(44px,6.5vw,96px)}
.h2{margin:0;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:clamp(36px,5vw,72px);line-height:.96;letter-spacing:-.03em}
.mega{margin:0;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:clamp(48px,8vw,116px);line-height:.9;letter-spacing:-.035em}
.acc{color:var(--acc)}.lead{margin:0;font-size:clamp(18px,1.6vw,21px);line-height:1.55;color:var(--soft);max-width:620px}.lead.ink{color:var(--muted)}
.eyebrow{margin:0;font-size:14px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--acc)}.eyebrow a{text-decoration:none}.eyebrow.olive{color:var(--olive)}.eyebrow.light{color:var(--soft2);letter-spacing:.1em}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-block;text-decoration:none;font-weight:700;border-radius:999px;padding:14px 24px;font-size:16px;border:1px solid transparent;transition:transform .15s}.btn:hover{transform:translateY(-2px)}
.btn-lg{padding:16px 28px;font-size:17px}.btn-sm{padding:11px 19px}
.btn-accent{background:var(--acc);color:var(--dk)}.btn-dark{background:var(--dk);color:var(--cream)}.btn-ghost-light{color:var(--cream);border-color:#5E7A6F}.btn-ghost-dark{color:var(--dk);border-color:var(--dk)}
.top{background:var(--dk);color:var(--cream)}
.nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;padding-top:20px;padding-bottom:20px}
.logo{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:26px;line-height:.9;letter-spacing:-.02em;color:var(--cream);text-decoration:none}.logo span{color:var(--acc)}
.navlinks{display:flex;flex-wrap:wrap;align-items:center;gap:6px 26px;font-weight:500}.navlinks>a:not(.btn){color:var(--cream);text-decoration:none;padding:10px 0}.navlinks>a:not(.btn):hover{color:var(--acc)}
.hero{background:var(--dk);color:var(--cream)}
.herogrid{display:flex;flex-wrap:wrap;align-items:center;gap:56px;padding-top:clamp(40px,7vw,104px);padding-bottom:clamp(64px,9vw,128px)}
.hero.sub .herotext{padding-top:clamp(40px,6vw,88px);padding-bottom:clamp(56px,8vw,112px)}
.herotext{flex:1.15 1 520px;min-width:0;gap:28px}
.heromedia{flex:1 1 420px;min-width:0;display:flex;justify-content:center;align-items:center;gap:clamp(14px,3vw,36px);max-width:660px;margin:0 auto}
.heromedia.single{max-width:380px}
.phone{position:relative;flex:0 0 46%;background:var(--dk2);padding:7px;border-radius:30px;box-shadow:0 22px 54px rgba(0,0,0,.45)}
.heromedia.single .phone{flex:0 0 72%}
.phone .media{border-radius:23px;width:100%;object-fit:cover;background:var(--dk3)}
.tilt-l{transform:rotate(-4deg) translateY(-5%)}.tilt-r{transform:rotate(3deg) translateY(6%)}
.pill{position:absolute;top:18px;left:18px;max-width:calc(100% - 36px);background:var(--acc);color:var(--dk);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 11px;border-radius:999px;line-height:1.3}
.framed{width:100%;transform:rotate(2deg)}.framed .media{width:100%;object-fit:cover;border-radius:12px;box-shadow:0 22px 54px rgba(0,0,0,.45)}
.media{width:100%;object-fit:cover;background:var(--dk3)}
.band{background:var(--acc);color:var(--dk);overflow:hidden;padding:18px 0;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:clamp(22px,2.6vw,34px);white-space:nowrap}
.track{display:inline-flex;animation:scroll 38s linear infinite}.band:hover .track{animation-play-state:paused}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.split-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:28px 64px;margin-bottom:56px}.split-head>*{flex:1 1 420px;min-width:0}.split-head .stack{gap:14px}
.svcs{border-top:2px solid var(--ink)}
.svc{display:grid;grid-template-columns:72px minmax(200px,1fr) minmax(0,2fr) 40px;gap:16px 40px;padding:36px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;align-items:start}
.svc:hover h3{color:var(--olive)}.svc .num{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:22px;color:var(--olive)}
.svc h3{margin:0;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:clamp(30px,3.4vw,44px);letter-spacing:-.02em;line-height:1}
.svc p{margin:0 0 12px;color:var(--muted);font-size:18px}.svc .tags{font-size:15px;font-weight:700;color:var(--ink);margin:0}.svc .arrow{font-size:28px;color:var(--olive)}
.dark{background:var(--dk);color:var(--cream)}.sand{background:var(--sand)}
.dark .h2{margin-bottom:48px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.card{display:flex;flex-direction:column;gap:12px;text-decoration:none;color:var(--cream)}.card .media{aspect-ratio:4/5}
.card:hover .cardtitle{color:var(--acc)}.cardtitle{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:24px}.cardtext{color:var(--soft2);font-size:16px}
.projlinks{margin:32px 0 0;color:var(--soft2);font-weight:700}.projlinks a{color:var(--acc);margin-left:16px;text-decoration:none}
.logos{margin-top:48px;padding-top:32px;border-top:1px solid #3D5A50;display:flex;flex-direction:column;gap:20px}
.logowrap{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.logotrack{display:inline-flex;animation:scroll 50s linear infinite}.logowrap:hover .logotrack{animation-play-state:paused}
.logoset{display:flex;gap:16px;padding-right:16px}
.logotile{flex:0 0 auto;width:184px;height:108px;padding:18px 26px;background:#fff;border-radius:14px;display:flex;align-items:center;justify-content:center}
.logotile img{max-width:100%;max-height:100%;object-fit:contain}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.member{background:var(--dk);color:var(--cream)}.member>div{padding:28px}.member h3{margin:0;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:32px}
.member .role{margin:8px 0;color:var(--acc);font-weight:700;font-size:15px}.member p{margin:0;color:var(--soft)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.chips span{font-size:15px;font-weight:700;color:var(--dk);padding:9px 16px;border-radius:999px;border:1.5px solid var(--dk)}
.steps{list-style:none;margin:48px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:32px}
.steps li{border-top:2px solid var(--ink);padding-top:20px}.steps span{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:44px;color:var(--olive)}
.steps h3{margin:8px 0;font-size:21px}.steps p{margin:0;color:var(--muted)}
.alysec{display:flex;flex-wrap:wrap;align-items:center;gap:56px}.alysec>.stack{flex:999 1 460px;min-width:0}
.alygrid{flex:1 1 360px;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.alygrid .down{margin-top:48px}.alygrid .up{margin-top:-48px}
.feats{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px;margin-top:40px}
.feat{border-top:2px solid var(--ink);padding-top:20px}.feat h3{margin:0 0 10px;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:26px;letter-spacing:-.01em}.feat p{margin:0;color:var(--muted)}
.gallery{display:grid;gap:16px;margin-top:24px}.g-wide{grid-template-columns:minmax(0,3fr) minmax(0,1fr);align-items:start}
.g4{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:48px;align-items:center}.g2>.media{max-width:420px}
.flow{counter-reset:f;list-style:none;padding:0;margin:32px 0 0;display:flex;flex-wrap:wrap;gap:12px}
.flow li{counter-increment:f;background:#fff;border:1px solid var(--line);border-radius:999px;padding:12px 20px;font-weight:700}.flow li::before{content:counter(f) '  ';color:var(--olive)}
.ctaband{background:var(--acc);color:var(--dk)}.ctaband .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;padding-top:56px;padding-bottom:56px}.ctaband .h2{font-size:clamp(30px,4vw,52px);max-width:760px}
.related{padding-top:40px;padding-bottom:40px;display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center}.related div{display:flex;flex-wrap:wrap;gap:12px 28px}.related a{font-weight:700;color:var(--dk);text-decoration:none}.related a:hover{color:var(--olive)}
.contactgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:16px;max-width:900px}
.ctile{background:var(--dk2);border-radius:14px;padding:24px;text-decoration:none;color:var(--cream);display:flex;flex-direction:column;gap:6px}.ctile span{color:var(--acc);font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.ctile strong{font-size:22px}
.faq{margin-top:32px;border-top:2px solid var(--ink)}.faq details{border-bottom:1px solid var(--line);padding:20px 0}
.faq summary{cursor:pointer;font-weight:700;font-size:20px;list-style:none;display:flex;justify-content:space-between;gap:16px}.faq summary::after{content:'+';color:var(--olive);font-size:26px;line-height:1}.faq details[open] summary::after{content:'–'}.faq p{margin:12px 0 0;color:var(--muted)}
.foot{background:var(--dk2);color:var(--cream);padding:clamp(72px,10vw,140px) 0 40px}.foot .btns{margin-top:28px}
.footgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:32px;margin-top:72px;padding-top:32px;border-top:1px solid var(--dk3)}
.footgrid h3{margin:0 0 12px;font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--acc)}.footgrid a,.footgrid span{display:block;color:var(--soft2);text-decoration:none;padding:4px 0}.footgrid a:hover{color:var(--cream)}
.copy{margin:40px 0 0;color:var(--soft2);font-size:15px}
:focus-visible{outline:3px solid var(--acc);outline-offset:3px}
@media (max-width:760px){.svc{grid-template-columns:48px minmax(0,1fr);}.svc>div{grid-column:2}.svc .arrow{display:none}.g-wide{grid-template-columns:1fr}.heromedia{gap:14px}}
@media (prefers-reduced-motion:reduce){.track{animation-duration:90s}.logotrack{animation-duration:110s}.btn{transition:none}html{scroll-behavior:auto}}
.legal h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:26px;margin:40px 0 10px}.legal p{color:var(--muted);margin:0 0 14px}.legal a{color:var(--olive)}.copy a{color:var(--soft2)}
.navlinks>a.lang{border:1px solid #5E7A6F;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:700;letter-spacing:.06em}