*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:Manrope,"Helvetica Neue",Arial,sans-serif;color:#111318;background:#fff}
img{max-width:100%}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #2541D8;outline-offset:3px}
.site-header{background:#fff;border-bottom:1px solid #E3E5EA;position:relative;z-index:10}
.site-nav{max-width:1200px;margin:0 auto;padding:22px clamp(20px,5vw,48px);display:flex;align-items:center;justify-content:space-between;gap:16px 32px}
.wordmark{font-size:20px;font-weight:800;letter-spacing:-.02em;color:#111318;text-decoration:none}
.nav-links{display:flex;align-items:center;gap:8px 28px;font-size:15px;font-weight:600}
.nav-link{color:#4A4F5A;text-decoration:none;padding:12px 0}
.nav-link:hover{color:#111318}
.nav-link[aria-current="page"]{color:#111318;border-bottom:2px solid #2541D8;padding-bottom:4px}
.nav-cta{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border-radius:999px;background:#111318;color:#fff;text-decoration:none}
.nav-cta[aria-current="page"]{background:#2541D8}
.burger{display:none;align-items:center;justify-content:center;width:48px;height:48px;margin-right:-8px;border:0;border-radius:12px;background:transparent;color:#111318;cursor:pointer}
.burger .i-close{display:none}
.burger[aria-expanded="true"] .i-open{display:none}
.burger[aria-expanded="true"] .i-close{display:block}
.mobile-menu{display:flex;flex-direction:column;padding:4px clamp(20px,5vw,48px) 24px;border-top:1px solid #E3E5EA}
.mobile-menu[hidden]{display:none}
.m-link{display:flex;align-items:center;min-height:56px;border-bottom:1px solid #ECEEF2;font-size:20px;font-weight:700;color:#111318;text-decoration:none}
.m-link[aria-current="page"]{color:#2541D8}
.m-cta{display:flex;align-items:center;justify-content:center;min-height:52px;margin-top:20px;border-radius:999px;background:#111318;font-size:16px;font-weight:700;color:#fff;text-decoration:none}
@media (max-width:720px){.nav-links{display:none}.burger{display:inline-flex}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.hp{position:absolute;left:-9999px}
[hidden]{display:none !important}
@media (min-width:1000px){[data-filters]{flex-wrap:wrap !important;overflow:visible !important}}
/* ---- subtle motion ---- */
a,button{transition:color .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .25s ease,transform .25s ease,opacity .2s ease}
a[style*="border-radius: 999px"]:hover,button[type="submit"]:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(17,19,24,.16)}
a[style*="border-radius: 999px"]:active,button[type="submit"]:active{transform:translateY(0);box-shadow:none}
.nav-link{position:relative}
.nav-link:not([aria-current="page"])::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:2px;background:#2541D8;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.nav-link:not([aria-current="page"]):hover::after{transform:scaleX(1)}
.nav-cta:hover{background:#2541D8}
article[data-card]{transition:transform .3s ease,box-shadow .3s ease}
article[data-card]:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(17,19,24,.10)}
article[data-card] img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
article[data-card]:hover img{transform:scale(1.04)}
#work a img,a[aria-label*="on Instagram"] img,a[href$=".html"] > img{transition:transform .35s ease,box-shadow .35s ease}
#work a:hover img,a[aria-label*="on Instagram"]:hover img{transform:translateY(-6px);box-shadow:0 18px 36px rgba(17,19,24,.16)}
#work a:hover h3{color:#2541D8}
[data-filters] button:hover{border-color:#111318 !important}
nav[aria-label="More case studies"] a:hover{border-color:#111318 !important;transform:translateY(-3px);box-shadow:0 12px 28px rgba(17,19,24,.08)}
a[style*="min-height: 52px"][style*="border-bottom"]:hover,a[style*="min-height: 60px"]:hover{color:#2541D8 !important;padding-left:6px}
figure img{transition:transform .5s ease}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none !important;animation:none !important}.reveal{opacity:1 !important;transform:none !important}}
