@font-face { font-family:Studio;src:url('/assets/fonts/font-9c51bc37.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap }
:root { --ink:#efefea;--muted:#aaa9a4;--surface:#000;--line:#ffffff48;--gutter:clamp(24px,4vw,80px);--ease:cubic-bezier(.2,.7,.25,1) }
* { box-sizing:border-box }
html { scroll-behavior:smooth;scroll-padding-top:104px }
body { margin:0;background:var(--surface);color:var(--ink);font-family:Studio,Arial,sans-serif;font-weight:400;-webkit-font-smoothing:antialiased }
body.menu-open { overflow:hidden }
button,a { -webkit-tap-highlight-color:transparent }
button { font:inherit }
a { color:inherit;text-decoration:none;transition:color .2s ease }
a:hover { color:#bcbcb7 }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:1px solid currentColor;outline-offset:6px }
img { display:block;width:100%;max-width:100%;height:auto }
p,h1,h2,h3,figure { margin:0 }
p { line-height:1.42;letter-spacing:-.025em }
button { color:inherit }
main { min-height:50vh }
section[id],footer[id] { scroll-margin-top:104px }
.skip-link { position:fixed;top:-80px;left:20px;padding:12px;background:#fff;color:#000;z-index:20 }
.skip-link:focus { top:12px }
.site-header { position:fixed;top:0;left:0;right:0;z-index:10;transition:background .25s ease }
.site-header.scrolled,.menu-open .site-header { background:#000 }
.topbar { height:96px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 var(--gutter) }
.brand { font-family:Arial,sans-serif;letter-spacing:-.065em;font-weight:600;font-size:clamp(27px,3.5vw,49px);line-height:1;white-space:nowrap;filter:drop-shadow(0 1px 5px #0003) }
.brand sup,.footer-brand sup { font-size:.65em;vertical-align:super;line-height:0;margin-left:.02em }
.menu-toggle { display:flex;align-items:center;gap:12px;justify-self:start;cursor:pointer;border:0;background:none;padding:12px 0;font-size:20px;letter-spacing:-.035em }
.menu-icon { position:relative;display:block;width:24px;height:14px;border-top:1px solid;border-bottom:1px solid;transition:transform .25s ease }
.menu-icon::after { content:'';position:absolute;left:0;top:5px;width:100%;height:1px;background:currentColor;transition:transform .25s ease }
.menu-open .menu-icon { transform:rotate(45deg);height:1px;border-bottom:0 }
.menu-open .menu-icon::after { transform:rotate(90deg);top:-1px }
.contact-button { justify-self:end;display:flex;gap:28px;align-items:center;padding:15px 22px;background:var(--ink);color:#171715;clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%);font-size:14px }
.contact-button:hover { background:#d4d4ce;color:#000 }
.site-menu { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px;padding:0 var(--gutter);max-height:0;overflow:hidden;visibility:hidden;opacity:0;transition:max-height .45s var(--ease),padding .45s var(--ease),opacity .2s ease,visibility .4s }
.menu-open .site-menu { max-height:calc(100svh - 96px);overflow:auto;visibility:visible;opacity:1;padding-top:24px;padding-bottom:48px;border-bottom:1px solid var(--line) }
.site-menu>div { display:flex;align-items:flex-start;flex-direction:column;gap:8px;min-width:0 }
.site-menu .menu-heading { font-size:20px;letter-spacing:-.04em;margin-bottom:12px }
.site-menu a { font-size:16px;line-height:1.3 }
.menu-note,.small-link { font-size:13px!important;color:var(--muted);margin-top:12px }
.compact-contacts { display:flex;align-items:flex-start;flex-direction:column;gap:0;line-height:1.5 }
.compact-contacts a { font-size:inherit;line-height:1.5;overflow-wrap:anywhere }
.film-hero { height:100svh;min-height:560px;position:relative;overflow:hidden;background:#090909 }
.film-hero video { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1 }
.film-hero::after { content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0004,transparent 35%,#0008);pointer-events:none }
.hero-copy { position:absolute;z-index:1;bottom:56px;left:var(--gutter);right:var(--gutter) }
.eyebrow { font-size:14px;line-height:1.5;letter-spacing:-.01em;margin-bottom:22px }
h1 { font-weight:400;letter-spacing:-.06em;line-height:1.02;font-size:clamp(46px,6.7vw,112px) }
.hero-copy h1 { max-width:1100px }
.hero-scroll { position:absolute;right:0;bottom:4px;font-size:40px;line-height:1;padding:0 0 0 24px }
.editorial-section { padding:96px var(--gutter);display:grid;grid-template-columns:1fr 3fr;gap:clamp(32px,5vw,100px) }
.section-label { display:flex;gap:16px;align-items:center;align-self:start;min-width:0 }
.section-label>span { display:block;width:clamp(28px,5vw,90px);height:1px;background:var(--line);flex-shrink:0 }
.section-label h2 { font-size:clamp(17px,1.7vw,27px);font-weight:400;letter-spacing:-.035em;line-height:1.18 }
.editorial-section>.section-label { position:sticky;top:120px }
.editorial-copy p { font-size:clamp(20px,2.25vw,34px);line-height:1.35;margin-bottom:28px }
.editorial-copy .large-copy { font-size:clamp(24px,2.75vw,43px);line-height:1.28;letter-spacing:-.04em }
.about-meta { display:flex;flex-wrap:wrap;gap:20px 40px;font-size:14px;color:var(--muted);margin-top:36px }
.text-link { display:inline-flex;gap:24px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:6px;font-size:inherit }
.editorial-copy>.text-link { font-size:18px;margin-top:12px }
.services-section { padding:24px var(--gutter) 96px }
.services-section>.section-label { margin-bottom:48px }
.service-row { border-top:1px solid var(--line) }
.service-row:last-child { border-bottom:1px solid var(--line) }
.service-row summary { display:grid;grid-template-columns:50px 1.3fr 1fr 32px;gap:24px;align-items:start;cursor:pointer;list-style:none;padding:28px 0;transition:color .25s ease,background .25s ease }
.service-row summary::-webkit-details-marker { display:none }
.row-number { font-size:13px;color:var(--muted);padding-top:8px;font-variant-numeric:tabular-nums }
.service-row h3 { font-size:clamp(26px,3vw,47px);font-weight:400;letter-spacing:-.05em;line-height:1.1 }
.service-short { font-size:18px;line-height:1.35;letter-spacing:-.025em;max-width:28ch;padding-top:6px;color:#bdbdb7 }
.row-toggle { font-size:30px;line-height:1.1;text-align:right;transition:transform .3s var(--ease) }
details[open] .row-toggle { transform:rotate(45deg) }
.service-detail { padding:0 64px 32px 74px;margin-left:0 }
.service-detail p { font-size:clamp(20px,2vw,28px);max-width:50ch;margin-left:auto;color:#bdbdb7;animation:detail-in .35s var(--ease) }
@keyframes detail-in { from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none} }
.service-row summary:hover { color:#b4b4ad }
.project-image { position:relative;overflow:hidden }
.project-image>img { height:clamp(400px,65vw,900px);object-fit:cover }
.project-caption { position:absolute;bottom:28px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;gap:20px;font-size:13px;text-shadow:0 1px 8px #000 }
.approach-section { padding-block:96px }
.approach-list { display:flex;flex-direction:column;gap:40px }
.approach-step { display:grid;grid-template-columns:40px 1fr;gap:24px;border-top:1px solid var(--line);padding-top:24px }
.approach-step h3 { font-weight:400;font-size:clamp(32px,4vw,64px);line-height:1.05;letter-spacing:-.05em;margin-bottom:18px }
.approach-step p { font-size:clamp(20px,2.2vw,32px);max-width:40ch;color:#bdbdb7 }
.orb { display:flex;justify-content:center;padding:0 var(--gutter) 64px;background:#000 }
.orb img { max-width:340px;mix-blend-mode:screen }
.site-footer { padding:48px var(--gutter) 0;border-top:1px solid var(--line);overflow:hidden }
.footer-grid { display:grid;grid-template-columns:1fr 1fr 1fr;gap:48px;padding-bottom:64px }
.footer-grid h2 { font-weight:400;font-size:22px;letter-spacing:-.035em;margin-bottom:20px }
.footer-grid p,.footer-grid .compact-contacts { font-size:20px;line-height:1.35 }
.footer-grid>div:last-child>a { display:block;font-size:20px;line-height:1.4 }
.footer-grid .text-link { margin-top:24px;font-size:16px }
.footer-note { font-size:14px!important;color:var(--muted);margin-top:20px }
.footer-bottom { border-top:1px solid var(--line);padding:24px 0;display:flex;justify-content:space-between;gap:24px;font-size:13px;line-height:1.5 }
.footer-bottom>div { display:flex;gap:24px;flex-wrap:wrap }
.footer-brand { display:block;font-family:Arial,sans-serif;font-weight:600;letter-spacing:-.075em;line-height:.9;font-size:clamp(58px,16.25vw,390px);padding:24px 0 0;white-space:nowrap }
.footer-brand sup { font-size:.55em }
.page-hero { position:relative;height:75svh;min-height:480px;max-height:1000px;overflow:hidden;background:#090909 }
.page-hero>img { height:100%;object-fit:cover;filter:brightness(.65) }
.page-hero>div { position:absolute;bottom:56px;left:var(--gutter);right:var(--gutter) }
.page-hero h1 { max-width:1200px }
.legal-document { padding:64px var(--gutter) 96px;max-width:1600px;margin:auto }
.legal-preface { display:flex;justify-content:space-between;gap:24px;padding-bottom:48px;font-size:14px;color:var(--muted) }
.legal-document article section { display:grid;grid-template-columns:1fr 2.5fr;gap:clamp(32px,6vw,100px);border-top:1px solid var(--line);padding:32px 0 48px }
.legal-document h2 { font-size:18px;font-weight:400;line-height:1.3;letter-spacing:-.025em }
.legal-document h3 { font-size:23px;font-weight:400;line-height:1.3;margin:32px 0 12px;letter-spacing:-.03em }
.legal-document h3:first-child { margin-top:0 }
.legal-document p { font-size:clamp(18px,1.7vw,26px);line-height:1.45;margin-bottom:24px;color:#c2c2bc }
.legal-document p:last-child { margin-bottom:0 }
.legal-source { font-size:16px!important;margin-top:24px }
.legal-document .text-link { font-size:16px }
@media(min-width:1600px) {
.editorial-section { padding-block:120px }
.service-row summary { padding-block:36px }
}
@media(max-width:1100px) {
.editorial-section { grid-template-columns:1fr 2.4fr;gap:40px }
.service-short { font-size:16px }
.site-menu { gap:24px }
.site-menu a { font-size:14px }
.site-menu .menu-heading { font-size:18px }
.footer-grid { gap:32px }
.footer-grid p,.footer-grid .compact-contacts { font-size:18px }
}
@media(max-width:809px) {
:root { --gutter:20px }
html { scroll-padding-top:84px }
.topbar { height:76px;grid-template-columns:1fr auto 1fr }
.brand { font-size:27px }
.menu-toggle { font-size:0;gap:0;padding:16px 0 }
.menu-icon { width:22px }
.contact-button { font-size:0;padding:10px 13px;gap:0;background:#efefea;color:#111 }
.contact-button>span:last-child { font-size:21px }
.site-menu { grid-template-columns:1fr 1fr;gap:32px 20px }
.menu-open .site-menu { max-height:calc(100svh - 76px);padding-top:20px;padding-bottom:32px }
.site-menu .menu-heading { font-size:19px;margin-bottom:6px }
.site-menu a { font-size:14px }
.site-menu>div { gap:6px }
.site-menu .compact-contacts { font-size:13px }
.menu-note { font-size:12px!important }
.film-hero { height:92svh;min-height:540px;max-height:1100px }
.hero-copy { bottom:32px }
.hero-copy h1 { font-size:clamp(36px,9.8vw,72px);max-width:94% }
.hero-scroll { font-size:27px;bottom:0 }
.eyebrow { font-size:11px;margin-bottom:16px }
.editorial-section { display:block;padding:40px var(--gutter) }
.editorial-section>.section-label { position:static }
.section-label { margin-bottom:24px;gap:12px }
.section-label>span { width:32px }
.section-label h2 { font-size:18px;line-height:1.2 }
.editorial-copy .large-copy { font-size:27px;line-height:1.25 }
.editorial-copy p { font-size:20px;line-height:1.35;margin-bottom:20px }
.about-meta { gap:12px 24px;font-size:12px;margin-top:24px }
.about-meta .text-link { font-size:14px;margin-top:4px }
.services-section { padding:8px var(--gutter) 40px }
.services-section>.section-label { margin-bottom:24px }
.service-row summary { grid-template-columns:22px 1fr 24px;gap:12px;padding:22px 0 }
.service-row h3 { font-size:27px;line-height:1.12 }
.row-number { font-size:11px;padding-top:5px }
.service-short { grid-column:2;grid-row:2;font-size:15px;max-width:30ch;padding-top:0 }
.row-toggle { grid-column:3;grid-row:1;font-size:24px }
.service-detail { padding:0 0 24px 34px }
.service-detail p { font-size:18px;line-height:1.4 }
.project-image>img { height:58svh;min-height:320px;max-height:620px;object-position:48% center }
.project-caption { font-size:10px;bottom:20px }
.approach-section { padding-block:40px }
.approach-list { gap:24px }
.approach-step { grid-template-columns:22px 1fr;gap:12px;padding-top:20px }
.approach-step h3 { font-size:37px;margin-bottom:12px }
.approach-step p { font-size:19px;line-height:1.35 }
.orb { padding-bottom:24px }
.orb img { max-width:350px }
.site-footer { padding-top:28px }
.footer-grid { grid-template-columns:1fr 1fr;gap:28px 24px;padding-bottom:32px }
.footer-grid h2 { font-size:17px;margin-bottom:12px }
.footer-grid p,.footer-grid .compact-contacts { font-size:15px;line-height:1.45 }
.footer-grid>div:last-child { grid-column:1/-1 }
.footer-grid>div:last-child>a { display:inline-block;font-size:15px;margin-right:24px }
.footer-grid .text-link { font-size:14px;margin-top:16px }
.footer-note { font-size:12px!important;margin-top:12px }
.footer-bottom { flex-direction:column;gap:14px;padding:20px 0;font-size:11px }
.footer-bottom>div { gap:10px 20px }
.footer-brand { font-size:15.8vw;padding-top:16px }
.page-hero { height:65svh;min-height:440px }
.page-hero>div { bottom:32px }
.page-hero h1 { font-size:clamp(37px,10vw,72px);line-height:1.05 }
.page-hero>img { object-position:center }
.legal-document { padding:32px var(--gutter) 48px }
.legal-preface { flex-direction:column;align-items:flex-start;gap:16px;padding-bottom:28px }
.legal-document article section { display:block;padding:24px 0 32px }
.legal-document h2 { font-size:17px;margin-bottom:20px }
.legal-document h3 { font-size:20px;margin-top:24px }
.legal-document p { font-size:18px;line-height:1.45;margin-bottom:20px }
.legal-source { font-size:14px!important }
}
@media(max-width:359px) {
.brand { font-size:23px }
.hero-copy h1 { font-size:34px }
.site-menu { grid-template-columns:1fr }
.footer-grid { grid-template-columns:1fr }
.footer-grid>div:last-child { grid-column:auto }
}
@media(prefers-reduced-motion:reduce) {
html { scroll-behavior:auto }
*,*::before,*::after { animation:none!important;transition:none!important }
}
.site-menu .legal-menu-link { font-size:13px;color:var(--muted) }
.brand { display:block;width:clamp(210px,23vw,320px);filter:none;line-height:0 }
.brand img { width:100%;height:auto;object-fit:contain }
.footer-brand { width:min(100%,697px);margin:12px auto 0;padding:0;line-height:0;font-size:initial;letter-spacing:normal }
.footer-brand img { width:100%;height:auto;object-fit:contain }
@media(max-width:809px) {
.brand { width:190px }
.footer-brand { width:min(100%,500px);margin-top:4px }
}
@media(max-width:359px) {
.brand { width:170px }
}
.topbar { position:relative;z-index:4;background:transparent }
.menu-open .topbar { background:#000 }
.menu-toggle { font-size:16px;gap:12px }
.menu-icon { width:18px;height:18px;border:0;background:radial-gradient(circle at 3px 3px,currentColor 2px,transparent 2.5px),radial-gradient(circle at 15px 3px,currentColor 2px,transparent 2.5px),radial-gradient(circle at 3px 15px,currentColor 2px,transparent 2.5px),radial-gradient(circle at 15px 15px,currentColor 2px,transparent 2.5px);transition:transform .3s var(--ease) }
.menu-icon::after { display:none }
.menu-open .menu-icon { height:18px;transform:rotate(45deg);border:0 }
.contact-button { clip-path:none;border:1px solid #ffffff70;border-radius:999px;background:transparent;color:var(--ink);padding:11px 20px;font-size:14px;line-height:1.2;min-height:42px;transition:background .2s,color .2s }
.contact-button:hover { background:var(--ink);color:#000 }
.contact-button>span:last-child { font-size:inherit }
.menu-backdrop { position:fixed;inset:96px 0 0;z-index:1;background:#0008;border:0;opacity:0;visibility:hidden;cursor:default;transition:opacity .3s ease,visibility .3s ease }
.menu-open .menu-backdrop { opacity:1;visibility:visible }
.site-menu { position:fixed;z-index:3;top:96px;right:0;bottom:0;width:min(760px,74vw);height:calc(100svh - 96px);max-height:none;display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:48px 40px;background:#000;padding:44px 48px;overflow:auto;transform:translateX(100%);opacity:1;border-left:0;visibility:hidden;transition:transform .45s var(--ease),visibility .45s }
.menu-open .site-menu { max-height:none;height:calc(100svh - 96px);padding:44px 48px;overflow:auto;opacity:1;visibility:visible;transform:translateX(0);border-bottom:0 }
.site-menu>div { gap:10px }
.site-menu .menu-heading { font-size:28px;margin-bottom:14px }
.site-menu a { font-size:17px }
.site-menu .compact-contacts { font-size:16px }
@media(max-width:809px) {
.menu-toggle { font-size:0;gap:0 }
.menu-icon { width:18px }
.contact-button { font-size:12px;padding:9px 13px;min-height:36px }
.contact-button>span:last-child { font-size:12px }
.site-menu,.menu-open .site-menu { top:76px;width:100%;height:calc(100svh - 76px);max-height:none;padding:32px 24px;gap:36px 24px }
.site-menu .menu-heading { font-size:23px;margin-bottom:10px }
.site-menu a { font-size:15px }
.site-menu .compact-contacts { font-size:14px }
.menu-backdrop { top:76px }
}
@media(max-width:359px) {
.site-menu,.menu-open .site-menu { grid-template-columns:1fr;gap:28px }
.contact-button { font-size:11px;padding:8px 11px }
.contact-button>span:last-child { font-size:11px }
.brand { width:160px }
}
@media(min-width:810px) {
.orb { display:none }
}
.compact-main { width:100%;margin:0;min-height:0;padding:0;display:block }
.compact-page .eyebrow { font-size:11px;margin-bottom:16px }
.compact-content { display:flex;flex-direction:column;gap:28px;min-width:0;max-width:1320px;margin:auto;padding:48px var(--gutter) 64px }
.compact-page .editorial-section { display:grid;grid-template-columns:1fr 3fr;gap:32px;padding:0 }
.compact-page .section-label { position:static;margin-bottom:10px;gap:12px }
.compact-page .section-label>span { width:24px }
.compact-page .section-label h2 { font-size:16px }
.compact-page .editorial-copy p,.compact-page .editorial-copy .large-copy { font-size:clamp(16px,1.35vw,21px);line-height:1.38;letter-spacing:-.02em;margin-bottom:10px }
.compact-page .editorial-copy p:last-child { margin-bottom:0 }
.compact-page .editorial-copy>.text-link { font-size:15px;margin-top:4px }
.compact-page .compact-contacts { font-size:16px }
.compact-page .site-footer { padding:0 var(--gutter) }
.compact-page .footer-grid,.compact-page .footer-brand { display:none }
.compact-page .footer-bottom { border:0;padding:20px 0;font-size:12px }
.site-menu,.menu-open .site-menu { padding:28px 36px;gap:28px 30px;align-content:start }
.site-menu>div { gap:2px }
.site-menu .menu-heading { font-size:24px;margin-bottom:6px }
.site-menu a { position:relative;display:inline-block;line-height:1.3;padding-block:5px;transition:color .2s ease,transform .25s var(--ease) }
.site-menu a:hover,.site-menu a:focus-visible { color:#fff;transform:translateX(5px) }
.site-menu a::after { content:'';position:absolute;left:0;bottom:2px;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease) }
.site-menu a:hover::after,.site-menu a:focus-visible::after { transform:scaleX(1) }
.site-menu a:active { opacity:.65;transform:translateX(3px) }
.site-menu .compact-contacts a { padding-block:2px;line-height:1.35 }
.site-menu .menu-note,.site-menu .small-link { margin-top:5px }
@media(max-width:809px) {
.compact-main { width:100%;margin:0;min-height:0;padding:0;display:block }
.compact-page .eyebrow { margin-bottom:10px }
.compact-content { gap:24px;padding:32px var(--gutter) 40px }
.compact-page .editorial-section { display:block }
.compact-page .editorial-copy p,.compact-page .editorial-copy .large-copy { font-size:16px;line-height:1.35;margin-bottom:8px }
.compact-page .section-label { margin-bottom:8px }
.compact-page .section-label h2 { font-size:15px }
.compact-page .footer-bottom { gap:8px;padding:14px 0;font-size:10px }
.compact-page .footer-bottom>div { gap:6px 14px }
.site-menu,.menu-open .site-menu { padding:20px 24px;gap:20px }
.site-menu .menu-heading { font-size:21px;margin-bottom:4px }
.site-menu a { font-size:14px }
.site-menu .compact-contacts { font-size:13px }
}
@media(max-height:700px) and (min-width:810px) {
.compact-main { width:100%;margin:0;min-height:0;padding:0;display:block }
.compact-content { gap:16px }
.compact-page .editorial-copy p,.compact-page .editorial-copy .large-copy { font-size:16px }
.site-menu,.menu-open .site-menu { gap:16px;padding-top:18px;padding-bottom:18px }
}
.home-page .editorial-section { padding-block:64px }
.home-page .services-section { padding-bottom:64px }
.home-page .approach-list { gap:28px }
.home-page .approach-step h3 { margin-bottom:12px }
@media(max-width:809px) {
.home-page .editorial-section { padding-block:32px }
.home-page .services-section { padding-bottom:32px }
}
.link-arrow { display:inline-block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4;vertical-align:middle;margin-left:6px;flex-shrink:0 }
.site-header.scrolled { background:rgba(0,0,0,.38)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px) }
.site-header.scrolled .topbar { height:72px }
.brand img { max-width:230px }
.film-hero video { filter:contrast(1.06) saturate(.88) }
.film-hero:after { content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.08),transparent 45%,rgba(0,0,0,.2));z-index:1 }
.hero-copy { z-index:2 }
.menu-socials { display:flex;flex-direction:column;gap:8px }
.menu-socials>span { font-size:12px;color:#888 }
@media(max-width:809px) {
.brand img { max-width:170px }
.site-header.scrolled .topbar { height:64px }
}
.film-hero:before { content:"";position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.12;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23grain)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");background-size:180px 180px }
.hero-copy { z-index:3 }
@media(max-width:809px) {
.film-hero:before { opacity:.09 }
}
.team-layout .team-page { min-height:calc(100svh - 90px);max-width:none;margin:auto;padding:0 var(--gutter) 48px }
.team-layout .team-intro { padding:130px 0 45px }
.team-layout .team-intro h1 { font-size:clamp(30px,4vw,56px);letter-spacing:-.055em }
.team-layout .team-showcase { max-width:none;padding:0;margin:0 }
.team-layout .team-panels { display:flex!important;flex-direction:column;gap:0 }
.team-layout .team-panel { display:grid!important;grid-template-columns:120px 1fr;gap:36px;border-top:1px solid #333;padding:22px 0;align-items:center;transition:background .35s,padding .35s }
.team-layout .team-panel:last-child { border-bottom:1px solid #333 }
.team-layout .team-photo { width:120px;height:140px;aspect-ratio:auto;max-width:none }
.team-layout .team-photo img { filter:grayscale(1);transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .7s }
.team-layout .team-profile { display:grid;grid-template-columns:1.2fr 1fr auto;gap:24px;align-items:center;text-align:left;padding:0 }
.team-layout .team-profile h2 { font-size:clamp(24px,3vw,40px);margin:0;line-height:1.05 }
.team-layout .team-profile p { font-size:11px;line-height:1.5;letter-spacing:.07em;margin:0;max-width:24ch }
.team-layout .team-profile a { font-size:15px;margin:0;white-space:nowrap }
.team-layout .team-panel:hover,.team-layout .team-panel:focus-within { background:#0c0c0c;padding-inline:16px }
.team-layout .team-panel:hover img,.team-layout .team-panel:focus-within img { transform:scale(1.05);filter:grayscale(.3) }
@media(max-width:809px) {
.team-layout .team-intro { padding:110px 0 32px }
.team-layout .team-panel { grid-template-columns:84px 1fr;gap:20px;padding-block:20px }
.team-layout .team-photo { width:84px;height:112px }
.team-layout .team-profile { display:flex;flex-direction:column;align-items:flex-start;gap:9px }
.team-layout .team-profile h2 { font-size:25px }
.team-layout .team-profile p { font-size:9px }
.team-layout .team-profile a { font-size:13px }
.team-layout .team-panel:hover { padding-inline:0 }
}
.team-layout .team-intro,.team-layout .team-showcase { max-width:none; margin:0; }
.team-layout .team-photo { overflow:hidden; background:#101010; }
.team-layout .team-photo img { width:100%; height:100%; object-fit:cover; }
.team-layout .team-profile h2 { font-weight:400; letter-spacing:-.04em; }
.team-layout .team-profile p { color:var(--muted); }
.team-layout .team-profile a { border-bottom:1px solid var(--line); padding-bottom:6px; }
.team-layout .team-profile .row-number { display:none; }



.brand { width:230px; }
.brand img { max-width:none; }
.menu-toggle,.contact-button { min-height:44px; }
.menu-open .site-header { background:#000!important; }
.site-menu,.menu-open .site-menu { top:96px; bottom:0; height:auto; max-height:calc(100dvh - 96px); overscroll-behavior:contain; }
.site-menu a { min-height:32px; }
.editorial-copy,.service-detail,.team-profile { min-width:0; }
@media(max-width:809px) {
 .brand { width:clamp(122px,40vw,170px); }
 .site-menu,.menu-open .site-menu { top:76px; max-height:calc(100dvh - 76px); }
 .scrolled .site-menu,.menu-open .scrolled .site-menu { top:64px; max-height:calc(100dvh - 64px); }
 .scrolled .menu-backdrop { top:64px; }
 .footer-grid .compact-contacts { font-size:clamp(12px,3.45vw,15px); }
 .text-link { gap:12px; }
 
 .hero-copy h1 { font-size:clamp(32px,8.7vw,65px); }
}
@media(prefers-reduced-motion:reduce) {
 .team-layout .team-panel:hover,.team-layout .team-panel:focus-within { padding-inline:0; }
 .team-layout .team-panel:hover img,.team-layout .team-panel:focus-within img { transform:none; }
}

@font-face { font-family:BrandPoppins; src:url('/assets/fonts/poppins-medium.ttf') format('truetype'); font-weight:500; font-style:normal; font-display:swap; }
.brand-mention { font-family:BrandPoppins,Arial,sans-serif; font-weight:500; font-size:1em; line-height:inherit; letter-spacing:-.035em; white-space:nowrap; }
/* Blur only the bar's paint layer: a filtered header contains fixed menu panels. */
.site-header.scrolled { backdrop-filter:none!important; -webkit-backdrop-filter:none!important; background:transparent!important; }
.topbar { isolation:isolate; }
.site-header.scrolled .topbar::before { content:''; position:absolute; inset:0; z-index:-1; background:rgba(0,0,0,.38); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); pointer-events:none; }
.menu-open .site-header .topbar { background:#000; }
.menu-open .site-header .topbar::before { backdrop-filter:none; -webkit-backdrop-filter:none; background:#000; }
@media(min-width:810px) {
 .site-header.scrolled .site-menu { top:72px; max-height:calc(100dvh - 72px); }
 .site-header.scrolled .menu-backdrop { top:72px; }
}

/* Secondary links are recognisable without hover. */
.site-menu a:not(.menu-heading) { text-decoration-line:underline; text-decoration-thickness:1px; text-underline-offset:4px; text-decoration-color:rgba(239,239,234,.4); }
.site-menu a:not(.menu-heading):hover,.site-menu a:not(.menu-heading):focus-visible { text-decoration-color:currentColor; }
.site-menu a::after { display:none; }
.site-menu .menu-heading { text-decoration:none; }

/* Social and legal links share a baseline across screen sizes. */
.site-menu>.menu-bottom { display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 30px;align-items:start; }
.menu-bottom .menu-socials { grid-column:1;grid-row:1;align-items:flex-start;gap:2px; }
.menu-bottom .menu-legal { grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0; }
.site-menu .menu-bottom .small-link { margin-top:0; }
.menu-bottom .menu-socials>span { min-height:32px;display:flex;align-items:center; }
@media(max-width:809px) { .site-menu>.menu-bottom { column-gap:20px; } }

.partnerships-page .page-hero>img { object-position:40% center; }


/* Distribute footer groups across the full desktop width. */
@media(min-width:810px) {
 .footer-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .footer-grid>div:first-child { justify-self:start; }
 .footer-grid>div:nth-child(2) { justify-self:center; }
 .footer-grid>div:last-child { justify-self:end; }
}
.site-menu .menu-socials a { display:inline-flex;align-items:center;gap:6px; }
.site-menu .menu-socials .link-arrow { width:14px;height:14px;margin-left:0; }

/* Keep the studio introduction readable on wide displays. */
.about-section .editorial-copy { max-width:980px; }
.about-section .editorial-copy p { font-size:clamp(20px,1.45vw,28px);line-height:1.38;margin-bottom:18px; }
.about-section .editorial-copy .large-copy { font-size:clamp(26px,1.9vw,36px);line-height:1.25;margin-bottom:22px; }
.about-section .about-meta { margin-top:24px; }
@media(max-width:809px) {
 .about-section .editorial-copy p { font-size:20px;margin-bottom:16px; }
 .about-section .editorial-copy .large-copy { font-size:27px; }
}

@media(min-width:810px) {
 .home-page .footer-grid { grid-template-columns:calc(25% + clamp(32px,5vw,100px)*.75 + 64px) minmax(0,1fr) auto;column-gap:0; }
 .home-page .footer-grid>div:nth-child(2) { justify-self:start; }
}

/* Legal footer follows the same bounded grid as the document above. */
@media(min-width:810px) {
 .legal-page .footer-grid { max-width:calc(1600px - var(--gutter)*2);margin-inline:auto;grid-template-columns:calc((100% - clamp(32px,6vw,100px))/3.5 + clamp(32px,6vw,100px)) minmax(0,1fr) auto;column-gap:0; }
 .legal-page .footer-grid>div:nth-child(2) { justify-self:start; }
}

html.lenis,html.lenis body { height:auto; }
html.lenis.lenis-smooth { scroll-behavior:auto!important; }

.team-layout .team-page { min-height:0;padding-bottom:0; }
.team-invitation { padding-block:64px; }
@media(max-width:809px) { .team-invitation { padding-block:40px; } }

#member-rafael .team-photo img { object-position:50% 22%; }

.team-layout .team-invitation { max-width:none;margin-inline:auto; }

@media(min-width:810px) {
 .team-layout .team-panel { position:relative; }
 .team-layout .team-profile { grid-template-columns:minmax(0,1fr) auto; }
 .team-layout .team-profile p { position:absolute;left:calc(50% - 101px);top:50%;transform:translateY(-50%);width:24ch;text-align:left; }
 .team-layout .team-profile a { grid-column:2; }
}
@media(min-width:810px) {
 .team-layout .team-profile h2 { max-width:calc(50vw - var(--gutter) - 280px); }
}

.team-invitation .invitation-mobile { display:none; }
.team-invitation .text-link { font-size:clamp(20px,2.2vw,32px); }
@media(max-width:809px) {
 .team-invitation .invitation-desktop { display:none; }
 .team-invitation .invitation-mobile { display:block; }
 .team-invitation .text-link { font-size:20px; }
}

.team-invitation .editorial-copy .invitation-desktop { font-size:clamp(18px,1.45vw,24px);line-height:1.45;margin-bottom:18px; }

/* Expandable examples from the studio reel. */
.service-preview { width:min(100%,720px);margin:28px 0 0 auto;animation:detail-in .35s var(--ease) }
.service-preview video { display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#101010 }
.service-preview figcaption { border-top:1px solid var(--line);padding-top:10px;margin-top:10px;font-size:12px;line-height:1.3;color:var(--muted) }
@media(max-width:700px) {
  .service-preview { width:100%;margin-top:22px }
  .service-preview figcaption { font-size:11px }
}

/* Full-screen service film experience. The detail content remains as a no-JS fallback. */
body.showcase-open { overflow:hidden }
.service-showcase[hidden] { display:none }
.service-showcase { position:fixed;inset:0;z-index:40;isolation:isolate;overflow:hidden;background:#080808;color:#f5f5f0 }
.service-showcase-film { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;background:#111;transform:scale(1.025);animation:showcase-film-in .7s var(--ease) both }
.service-showcase::before { content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#000a 0%,#0003 58%,#0002 100%),linear-gradient(0deg,#0009,transparent 55%);pointer-events:none }
.service-showcase::after { content:'';position:absolute;inset:-35%;z-index:1;background:radial-gradient(ellipse at 18% 78%,#ffffff15,transparent 46%),radial-gradient(ellipse at 82% 12%,#ffffff0c,transparent 38%);pointer-events:none;animation:showcase-light 12s ease-in-out infinite alternate }
.service-showcase-top { position:absolute;z-index:3;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:30px var(--gutter) }
.service-showcase-top img { width:clamp(120px,12vw,190px);height:auto;filter:drop-shadow(0 1px 8px #0008) }
.service-showcase button { border:1px solid #ffffff69;background:#0005;color:inherit;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .2s ease }
.service-showcase button:hover { background:#ffffff29;border-color:#fff }
.service-showcase button:focus-visible { outline:2px solid #fff;outline-offset:4px }
.service-showcase-close { display:flex;align-items:center;gap:24px;padding:10px 14px;font-size:14px }
.service-showcase-close span { font-size:25px;line-height:1 }
.service-showcase-panel { position:absolute;z-index:3;left:var(--gutter);bottom:clamp(88px,9vh,130px);width:min(760px,calc(100% - 2*var(--gutter)));padding:clamp(26px,3vw,52px);border:1px solid #ffffff43;background:#09090970;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 18px 70px #0004;animation:showcase-panel-in .55s var(--ease) both }
.service-showcase-kicker,.service-showcase-bottom { display:flex;align-items:center;justify-content:space-between;gap:24px;color:#dddcd5;font-size:13px;line-height:1.2 }
.service-showcase-kicker { border-bottom:1px solid #ffffff45;padding-bottom:18px;margin-bottom:28px }
.service-showcase-panel h2 { font-size:clamp(42px,6vw,98px);font-weight:400;letter-spacing:-.065em;line-height:.98;max-width:10ch;text-wrap:balance }
.service-showcase-panel p { font-size:clamp(18px,1.75vw,26px);line-height:1.35;max-width:40ch;margin:24px 0 38px;color:#e2e2dd }
.service-showcase-bottom { border-top:1px solid #ffffff45;padding-top:18px }
.service-showcase-play { width:44px;height:44px;display:grid;place-items:center;flex:none }
.service-showcase-play span { width:10px;height:16px;border-left:3px solid currentColor;border-right:3px solid currentColor }
.service-showcase-play[data-paused="true"] span { width:0;height:0;border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:14px solid currentColor;border-right:0;transform:translateX(2px) }
.service-showcase-navigation { position:absolute;z-index:3;left:var(--gutter);right:var(--gutter);bottom:28px;display:flex;justify-content:flex-end;gap:10px }
.service-showcase-navigation button { min-width:110px;padding:12px 16px;font-size:14px }
.service-showcase.is-entering .service-showcase-panel { animation:showcase-panel-in .55s var(--ease) both }
.service-showcase.is-entering .service-showcase-film { animation:showcase-film-in .7s var(--ease) both }
@keyframes showcase-panel-in { from { opacity:0;transform:translateY(22px) } to { opacity:1;transform:none } }
@keyframes showcase-film-in { from { opacity:.55;transform:scale(1.06) } to { opacity:1;transform:scale(1.025) } }
@keyframes showcase-light { from { transform:translate(-4%,2%) rotate(-7deg) } to { transform:translate(4%,-2%) rotate(7deg) } }
@media(max-width:700px) {
 .service-showcase-top { padding:20px var(--gutter) }
 .service-showcase-top img { width:132px }
 .service-showcase-close { gap:12px;font-size:12px;padding:9px 11px }
 .service-showcase-film { object-position:center 32% }
 .service-showcase::before { background:linear-gradient(0deg,#000c 0%,#0007 43%,#0001 100%) }
 .service-showcase-panel { left:0;bottom:66px;width:100%;padding:26px var(--gutter) 20px;border-left:0;border-right:0;border-bottom:0;background:#090909a8;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px) }
 .service-showcase-kicker { margin-bottom:18px;padding-bottom:14px;font-size:11px }
 .service-showcase-panel h2 { font-size:clamp(40px,11vw,64px);max-width:11ch }
 .service-showcase-panel p { font-size:17px;margin:18px 0 22px;max-width:38ch }
 .service-showcase-bottom { font-size:11px;padding-top:12px }
 .service-showcase-play { width:40px;height:40px }
 .service-showcase-navigation { left:0;right:0;bottom:0;height:66px;gap:0 }
 .service-showcase-navigation button { width:50%;border-left:0;border-right:0;border-bottom:0;background:#090909d9 }
 .service-showcase-navigation button+button { border-left:1px solid #ffffff50 }
}
@media(prefers-reduced-motion:reduce) {
 .service-showcase::after,.service-showcase-panel,.service-showcase-film,.service-showcase.is-entering .service-showcase-panel,.service-showcase.is-entering .service-showcase-film { animation:none }
}



/* Keep legal-page footer edges aligned with the copyright and final legal link. */
@media(min-width:810px) {
 .legal-page .footer-grid { max-width:none;margin-inline:0;grid-template-columns:calc((100% - clamp(32px,6vw,100px))/3.5 + clamp(32px,6vw,100px)) minmax(0,1fr) auto;column-gap:0; }
}

/* On the team/contact page, align the brief column with the invitation copy and call link. */
@media(min-width:810px) {
 .team-layout .footer-grid { grid-template-columns:calc((100% - clamp(32px,5vw,100px))/4 + clamp(32px,5vw,100px)) minmax(0,1fr) auto;column-gap:0; }
 .team-layout .footer-grid>div:nth-child(2) { justify-self:start; }
}
