/* Local refinement: a demonstrated identity, clearer hierarchy and a shorter journey. */
:root{--space-section:96px;--line:#605a56;--ink:#171513;--paper:#f5f1ec;--coral:#d78971}
.adobe-type h1,.adobe-type h2,.adobe-type h3{letter-spacing:-.03em;text-wrap:balance}
.adobe-type h1{font-size:clamp(3rem,6.8vw,6rem)}
.adobe-type h2{font-size:clamp(2.5rem,4.8vw,4.4rem)}
.adobe-type h3{font-family:'neue-haas-grotesk-text','DM Sans',sans-serif;font-weight:700;letter-spacing:-.02em}
.nav{gap:24px}.nav nav{gap:28px}.brand{font-size:1.05rem}.brand .slash{font-size:3.8rem}.brand b{font-weight:800}
.nav nav a{min-height:44px;display:inline-flex;align-items:center}.nav nav a::after{bottom:6px!important}
.hero{padding-top:60px}.hero-copy{padding-block:24px 60px}.hero-kicker{margin-bottom:28px}.hero h1{margin-bottom:28px}.hero-lead{font-size:1.15rem;max-width:57ch}.hero-film{opacity:.24}.hero-actions{gap:12px}.motion-toggle{margin-top:20px;min-height:44px;background:none;border-color:#605a56}
.eyebrow{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:#d7a18e}
.case-feature{padding-top:28px;padding-bottom:var(--space-section)}
.case-heading{display:flex;justify-content:space-between;gap:32px;align-items:flex-end;margin-bottom:32px}
.case-heading h2{font-size:clamp(2.2rem,4vw,3.6rem);margin:12px 0 0}.case-heading .text-link{flex-shrink:0;margin-bottom:6px;min-height:44px;display:inline-flex;align-items:center}
.case-art-link{display:block}.case-art-link:focus-visible{outline:2px solid var(--coral);outline-offset:8px}
.case-stage{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;font-family:'neue-haas-grotesk-display',sans-serif}
.identity-art{background:var(--paper);color:var(--ink);padding:36px;display:flex;flex-direction:column;justify-content:space-between;min-height:480px;overflow:hidden}
.identity-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.identity-top>span{font-size:.65rem;letter-spacing:.12em;font-family:'neue-haas-grotesk-text',sans-serif;padding-top:8px}
.study-logo{display:flex;align-items:center;gap:10px;font-family:'neue-haas-grotesk-text',sans-serif}.study-logo>span{font-size:64px;line-height:.8;font-weight:700;color:var(--coral)}.study-logo>b{font-size:20px;line-height:.92;letter-spacing:-.04em}
.identity-message p{font-size:clamp(2.8rem,5.9vw,5.5rem);line-height:.99;letter-spacing:-.035em;margin:44px 0}
.identity-bottom{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #c5bbb1;padding-top:18px;font-size:.68rem;font-family:'neue-haas-grotesk-text',sans-serif}
.campaign-art{background:var(--coral);color:var(--ink);padding:32px;display:flex;flex-direction:column;justify-content:space-between;min-width:0;position:relative;overflow:hidden}
.campaign-art .study-logo>span{color:var(--ink)}.campaign-art .study-logo>b{font-size:16px}.campaign-art .study-logo>span{font-size:48px}
.campaign-art p{font-size:clamp(2.4rem,4.5vw,4.2rem);line-height:1;letter-spacing:-.035em;font-weight:700;margin:48px 0 20px;position:relative;z-index:1}.campaign-mark{display:block;font-size:5rem;font-weight:400;line-height:1;text-align:right;margin-bottom:12px}
.campaign-bottom{border-top:1px solid #815342;padding-top:18px;display:flex;flex-direction:column;gap:16px;font-family:'neue-haas-grotesk-text',sans-serif;font-size:.9rem}.campaign-bottom strong{font-size:.74rem}
.case-caption{display:flex;justify-content:space-between;gap:24px;font-size:.75rem;color:#c8c0ba;padding-top:16px}.case-caption span{max-width:46%}
.services{padding-block:72px 96px;border-top:1px solid #39332f}.section-title{margin-bottom:44px}.service-list h3{font-size:clamp(1.25rem,2vw,1.75rem)}.service-list a{padding-block:24px}.service-list span{font-size:.94rem}.service-list b{font-weight:400}.service-list .service-icon{width:30px;height:30px}
.studio-intro{background:#e7e2dc;color:var(--ink);padding-block:80px}.studio-intro-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:10%;align-items:start}.studio-intro .eyebrow{color:#76513e}.studio-intro h2{font-size:clamp(2.4rem,4vw,3.6rem);margin:18px 0 0}.studio-intro p:not(.eyebrow){max-width:53ch;font-size:1.07rem;line-height:1.65}.person-name{font-weight:700}.person-name span{font-size:.8rem;font-weight:400;display:block;margin-top:2px}.studio-intro .text-link{margin-top:12px;min-height:44px}
.closing{padding-block:80px}.closing h2{font-size:clamp(2.7rem,4.8vw,4.3rem);margin-bottom:32px}.closing span{letter-spacing:.08em}
.page-intro{padding-block:72px 56px}.page-intro h1{font-size:clamp(3rem,6vw,5.5rem)}
.studio-profile{display:grid;grid-template-columns:1fr 1.15fr;gap:12%;border-top:1px solid var(--line);padding-block:72px}.studio-profile h2{font-size:clamp(2.4rem,4.5vw,4.1rem);margin:16px 0}.profile-role{color:#c8c0ba}.profile-lead{font-size:1.35rem!important;color:var(--paper)!important}.studio-profile p{line-height:1.65;color:#c8c0ba;max-width:53ch}.studio-profile .text-link{margin-top:16px;min-height:44px}.process{padding-block:64px 96px}.process-row h3{font-size:1.5rem}
.case-intro{padding-block:48px 56px}.back-link{display:inline-block;font-size:.85rem;color:#c8c0ba;min-height:44px;margin-bottom:32px}.case-intro h1{margin-bottom:28px}.case-intro .intro-lead{max-width:66ch;font-size:1.17rem}.case-meta{display:flex;flex-wrap:wrap;gap:12px 28px;padding-top:20px;color:#d7a18e;font-size:.84rem}.case-exhibit{margin-bottom:80px}.case-story{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding-block:32px 80px}.case-story h2{margin:16px 0}.case-story p:not(.eyebrow){line-height:1.7;color:#c8c0ba;font-size:1.1rem;max-width:55ch}.case-decisions{background:#e7e2dc;color:var(--ink);padding-block:40px}.case-decision{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding-block:40px;align-items:center}.case-decision+.case-decision{border-top:1px solid #b6a99b}.case-decision h3{font-size:1.6rem;margin-bottom:16px}.case-decision p{max-width:52ch;line-height:1.7;margin:0}.decision-slash{font-size:9rem;line-height:.9;color:#92513c;padding-left:36px;font-weight:700}.type-specimen{font-size:5.5rem;letter-spacing:-.04em;line-height:1;font-family:'neue-haas-grotesk-display',sans-serif}.type-specimen span{display:block;font-family:'neue-haas-grotesk-text',sans-serif;font-size:.8rem;letter-spacing:0;margin-top:14px}.palette{display:flex;gap:8px;max-width:340px}.palette i{width:calc(100%/3);aspect-ratio:1;background:var(--ink)}.palette i:nth-child(2){background:var(--paper)}.palette i:nth-child(3){background:var(--coral)}
.case-web{padding-block:80px}.web-proof{border:1px solid var(--line);background:var(--ink)}.web-proof-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-bottom:1px solid var(--line);font-size:.75rem;color:#c8c0ba}.web-proof-bar>span:first-child{font-size:1.5rem;font-weight:700;color:var(--coral)}.web-proof img{display:block;width:100%;height:auto}.journey{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding-block:40px}.journey h3{font-size:1.2rem}.journey p{color:#c8c0ba;font-size:.97rem;line-height:1.6}.case-disclosure{font-size:.8rem;max-width:80ch;color:#c8c0ba;border-top:1px solid var(--line);padding-top:20px}
@media(max-width:900px){.case-stage{grid-template-columns:1.2fr 1fr}.identity-art,.campaign-art{padding:26px}.identity-art{min-height:440px}.identity-bottom{flex-direction:column}.identity-top>span{display:none}.case-heading{align-items:start;flex-direction:column;gap:16px}.case-heading .text-link{margin:0}.nav nav{gap:18px}}
@media(max-width:650px){:root{--space-section:64px}.nav{gap:12px}.nav nav{gap:24px;padding-top:8px}.nav nav a{min-height:36px}.brand{font-size:.9rem}.brand .slash{font-size:3.1rem}.hero{padding-top:28px}.hero-copy{padding-bottom:36px}.hero-kicker{font-size:.65rem;letter-spacing:.07em;margin-bottom:20px}.hero h1{font-size:clamp(2.55rem,10vw,4rem);line-height:1.05}.hero-lead{font-size:1.05rem}.hero-actions{gap:10px}.pill{min-height:48px;padding-inline:20px}.motion-toggle{margin-top:12px}.case-feature{padding-top:20px}.case-stage{grid-template-columns:1fr;gap:12px}.identity-art{min-height:390px;padding:26px}.identity-message p{font-size:3.6rem;margin-block:40px}.identity-bottom{flex-direction:row;font-size:.59rem}.campaign-art{min-height:360px;padding:26px}.campaign-art p{font-size:3.2rem;margin-top:32px;max-width:9ch}.campaign-art>div:nth-child(2){display:flex;align-items:end;justify-content:space-between;gap:12px}.campaign-mark{font-size:4rem}.campaign-bottom{flex-direction:row;justify-content:space-between;align-items:end;font-size:.8rem}.case-caption{flex-direction:column;gap:6px}.case-caption span{max-width:none}.case-heading h2{font-size:2.45rem}.services{padding-block:48px 64px}.service-list a{grid-template-columns:30px 1fr 24px;gap:8px 14px}.service-list h3{font-size:1.25rem}.service-list a span{font-size:.85rem}.studio-intro{padding-block:56px}.studio-intro-grid,.studio-profile,.case-story{grid-template-columns:1fr;gap:28px}.studio-intro h2{font-size:2.5rem}.studio-intro p:not(.eyebrow){font-size:1rem}.closing{padding-block:56px}.closing h2{font-size:2.6rem}.page-intro{padding-block:44px 36px}.page-intro h1{font-size:2.9rem}.studio-profile{padding-block:44px}.profile-lead{font-size:1.15rem!important}.process{padding-block:36px 64px}.process-row h3{font-size:1.35rem}.case-intro{padding-block:28px 36px}.back-link{margin-bottom:20px}.case-intro h1{font-size:2.9rem}.case-intro .intro-lead{font-size:1.05rem}.case-exhibit{margin-bottom:40px}.case-story{padding-block:20px 44px}.case-story h2{font-size:2.5rem}.case-story p:not(.eyebrow){font-size:1rem}.case-decision{grid-template-columns:1fr;gap:28px;padding-block:32px}.decision-slash{font-size:6rem;padding-left:16px}.type-specimen{font-size:4.5rem}.palette{max-width:220px}.case-decision h3{font-size:1.3rem}.case-web{padding-block:48px}.journey{grid-template-columns:1fr;gap:16px;padding-block:28px}.journey p{margin-bottom:0}.web-proof-bar{font-size:.65rem;padding:10px}.web-proof-bar>span:last-child{display:none}}
/* Hero ambient loop (muro-luz) */
.hero-film{opacity:.62;mask-image:radial-gradient(ellipse 75% 70% at 55% 45%,#000 45%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 75% 70% at 55% 45%,#000 45%,transparent 100%)}
.film-toggle{position:absolute;right:0;bottom:24px;z-index:1;width:36px;height:36px;border-radius:50%;border:1px solid rgba(241,236,228,.28);background:rgba(23,21,19,.45);color:#f1ece4;display:grid;place-items:center;cursor:pointer;opacity:.55;transition:opacity .2s ease,border-color .2s ease}
.film-toggle:hover,.film-toggle:focus-visible{opacity:1;border-color:rgba(241,236,228,.6)}
.film-toggle span{width:10px;height:11px;border-inline:3px solid currentColor}
.film-toggle[aria-pressed="true"] span{width:0;height:0;border-block:6px solid transparent;border-inline:0;border-left:10px solid currentColor;margin-left:3px}
@media(max-width:650px){.hero-film{opacity:.5}.film-toggle{bottom:12px}}
@media(prefers-reduced-motion:reduce){.film-toggle{display:none}}
/* Case page: applied identity mockups */
.case-applied{padding-block:80px}.case-applied .case-heading{margin-bottom:40px}
.case-applied figure{margin:0}.case-applied img{display:block;width:100%;height:auto;border-radius:6px}
.applied-wide{margin-bottom:20px}
.applied-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.applied-grid figcaption{margin-top:12px;font-size:.88rem;color:#a39a91}
.applied-note{margin-top:28px;font-size:.88rem;color:#a39a91;max-width:60ch}
@media(max-width:650px){.case-applied{padding-block:48px}.case-applied .case-heading{margin-bottom:24px}.applied-grid{grid-template-columns:1fr;gap:28px}.applied-wide{margin-bottom:28px}}
/* Motion: hero intro, scroll reveals, service hovers (only with html.motion, never with reduced motion) */
:root{--ease-out:cubic-bezier(.16,.84,.24,1)}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes rise-line{from{opacity:0;transform:translateY(.42em);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes slash-draw{from{opacity:0;transform:translateY(.18em) rotate(-14deg) scaleY(.2)}to{opacity:1;transform:none}}
@keyframes film-in{from{opacity:0}}
.motion .hero-kicker{animation:rise .9s var(--ease-out) .1s both}
.motion .hero h1{animation:rise-line 1.1s var(--ease-out) .22s both}
.motion .hero h1 .slash{display:inline-block;transform-origin:50% 90%;animation:slash-draw .9s var(--ease-out) .5s both}
.motion .hero h1 em{display:inline-block;animation:rise-line 1.1s var(--ease-out) .42s both}
.motion .hero-lead{animation:rise .9s var(--ease-out) .62s both}
.motion .hero-actions{animation:rise .9s var(--ease-out) .76s both}
.motion .hero-film{animation:film-in 2.2s ease .2s both}
.motion [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease-out),transform 1.1s var(--ease-out);transition-delay:var(--reveal-delay,0s)}
.motion [data-reveal].is-in{opacity:1;transform:none}
.service-list a{position:relative;isolation:isolate;transition:background .35s ease}
.service-list a::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:#d78971;transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease-out)}
.service-list h3{transition:transform .45s var(--ease-out),color .3s ease}
.service-list span{transition:color .3s ease}
.service-list b{display:inline-block;transition:transform .45s var(--ease-out),color .3s ease}
.service-list a:hover::after,.service-list a:focus-visible::after{transform:scaleX(1)}
.service-list a:hover h3,.service-list a:focus-visible h3{transform:translateX(8px)}
.service-list a:hover span,.service-list a:focus-visible span{color:#e6ded7}
.service-list a:hover b,.service-list a:focus-visible b{transform:translate(4px,-4px);color:#d78971}
@media(prefers-reduced-motion:reduce){.service-list a::after,.service-list h3,.service-list b{transition:none}.service-list a:hover h3,.service-list a:focus-visible h3,.service-list a:hover b,.service-list a:focus-visible b{transform:none}}
.motion .service-list a[data-reveal]{transition:opacity .9s var(--ease-out),transform 1.1s var(--ease-out),background .35s ease;transition-delay:var(--reveal-delay,0s),var(--reveal-delay,0s),0s}
/* Cleanup: header wordmark in the brand family (no Google Fonts), mobile wrapping and tap targets */
.adobe-type .brand{font-family:"neue-haas-grotesk-display",sans-serif;letter-spacing:-.01em;min-height:44px}
.adobe-type .brand b{font-weight:700}
@media(max-width:650px){
.eyebrow,.statement span{white-space:normal}
footer a{display:inline-flex;align-items:center;min-height:44px}
footer .footer-bottom{flex-direction:row;align-items:center;gap:0 24px;flex-wrap:wrap}.footer-bottom span{flex-basis:100%}
}
/* Mobile header: navigation row tucks away on scroll down */
@media(max-width:650px){
.nav nav{max-height:64px;overflow:hidden;transition:max-height .35s var(--ease-out,ease),padding .35s var(--ease-out,ease),opacity .25s ease,border-color .35s ease}
.site-header.nav-tucked .nav nav{max-height:0;padding-top:0;opacity:0;border-top-color:transparent}
.site-header.nav-tucked .nav{row-gap:0}
}
@media(max-width:650px) and (prefers-reduced-motion:reduce){.nav nav{transition:none}}
/* Language switch rendered as a link (pages with their own English URL) */
a.language{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;flex-shrink:0}
