:root {
  --paper:#f3f1ea; --ink:#141b17; --green:#153f37; --deep:#0c2923;
  --mint:#c8fa72; --white:#fffef9; --muted:#5e665f; --line:#d9dcd3;
  --hero-opacity:1; --hero-shift:0px; --landscape-opacity:0;
  --hero-pointer: auto; --scene-pointer: none;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-synthesis:none; text-rendering:optimizeLegibility; color-scheme:light;
}
* { box-sizing:border-box }
html { scroll-behavior:smooth; background:var(--paper); scroll-padding-top:100px }
body { margin:0; min-width:320px; background:var(--paper); color:var(--ink) }
body.dialog-open { overflow:hidden }
::selection { background:var(--green); color:var(--white) }
img { display:block; max-width:100% }
a { color:inherit }
button,input { font:inherit }
button,a { -webkit-tap-highlight-color:transparent }
button { cursor:pointer }
button:disabled { cursor:default }
[hidden] { display:none !important }
:focus-visible { outline:2px solid var(--green); outline-offset:5px }
:where(.world,.film-section,.services,.process,.contact,.site-footer,.offer-featured) :focus-visible { outline-color:var(--mint) }
.skip-link { position:fixed; z-index:500; top:10px; left:12px; padding:14px 20px; background:var(--green); color:white; transform:translateY(-150%) }
.skip-link:focus { transform:none }
.site-header { position:fixed; inset:0 0 auto; z-index:100; display:flex; align-items:center; gap:30px; height:88px; padding:0 3.5vw; color:var(--green); transition:background-color .2s,color .2s }
.site-header.scrolled { background:rgba(243,241,234,.96) }
.site-header.immersed { color:var(--white); background:linear-gradient(rgba(8,29,23,.4),transparent) }
.wordmark { display:inline-flex; gap:10px; align-items:center; flex-shrink:0; min-height:48px; text-decoration:none; color:var(--green); border-radius:4px; padding:3px 8px 3px 0 }
.immersed .wordmark { color:var(--white) }
.immersed .brand-mark { filter:brightness(0) invert(1) }
.brand-mark { transition:filter .2s }
.brand-mark { width:41px; height:38px }
.wordmark-type { display:inline-flex; align-items:baseline; font-size:25px; letter-spacing:-.075em; line-height:1 }
.wordmark-type strong { font-weight:750 }
.wordmark-type span { font-weight:380 }
.desktop-nav { display:flex; align-items:center; gap:25px; margin:auto }
.desktop-nav a { min-height:44px; display:flex; align-items:center; text-decoration:none; font-size:13px; font-weight:500; position:relative }
.desktop-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:7px; height:1px; background:currentColor; transition:right .2s }
.desktop-nav a:hover::after,.desktop-nav a[aria-current="page"]::after { right:0 }
.header-actions { display:flex; align-items:center; gap:22px }
.language-toggle { min-width:62px; min-height:44px; padding:0; border:0; color:inherit; background:transparent; font-size:12px }
.language-toggle span { margin:0 4px; opacity:.5 }
.header-cta { display:flex; min-height:44px; align-items:center; padding:0 21px; border:1px solid currentColor; border-radius:40px; text-decoration:none; font-size:13px; transition:background .2s,color .2s }
.header-cta:hover { background:var(--green); border-color:var(--green); color:var(--white) }
.immersed .header-cta:hover { background:var(--white); color:var(--green); border-color:var(--white) }
.menu-toggle { display:none; width:44px; height:44px; padding:11px; border:0; background:transparent; color:inherit }
.menu-toggle span { display:block; height:1px; background:currentColor; margin:6px 0; transition:transform .2s }
.menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(3.5px) rotate(45deg) }
.menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-3.5px) rotate(-45deg) }
.opening { position:relative; height:205svh }
.opening-stage { position:sticky; top:0; height:100lvh; overflow:hidden; isolation:isolate; background:var(--paper) }
.portal-scene { position:absolute; inset:0; width:100%; height:100%; z-index:0; overflow:hidden; opacity:0; pointer-events:none }
.portal-ready .portal-scene { opacity:1 }
.opening-grid { display:grid; grid-template-columns:1.14fr .86fr; align-items:center; gap:3vw; height:100svh; padding:110px 5vw 66px; position:relative; z-index:1; pointer-events:none }
.hero-copy { opacity:var(--hero-opacity); transform:translateY(var(--hero-shift)); pointer-events:var(--hero-pointer) }
.eyebrow { margin:0 0 22px; font-size:12px; font-weight:550; letter-spacing:.1em; line-height:1.5; text-transform:uppercase }
h1,h2,h3 { text-wrap:balance }
h1,h2 { margin:0; font-weight:430; letter-spacing:-.052em; line-height:1.02 }
.hero-copy h1 { font-size:clamp(55px,6.05vw,112px); white-space:nowrap; line-height:1.02 }
.hero-lead { max-width:470px; margin:28px 0; font-size:18px; line-height:1.55 }
.pill { min-height:50px; display:inline-flex; justify-content:center; align-items:center; gap:24px; padding:12px 24px; border:0; border-radius:99px; font-size:14px; font-weight:500; line-height:1.3; text-decoration:none; transition:background .2s,color .2s }
.pill-green { background:var(--green); color:var(--white) }
.pill-green:hover { background:#24584a }
.pill-light { background:var(--white); color:var(--green) }
.pill-light:hover { background:var(--mint) }
.portal-anchor { width:100%; max-width:570px; aspect-ratio:500/460; justify-self:center }
html:not(.js) .portal-anchor { background:url("assets/liguria-portal.webp") center/cover; -webkit-mask:url("assets/geai-brand.svg") center/contain no-repeat; mask:url("assets/geai-brand.svg") center/contain no-repeat }
.landscape-message { position:absolute; z-index:3; bottom:10vh; left:6vw; right:6vw; opacity:var(--landscape-opacity); pointer-events:none; color:var(--white); text-shadow:0 2px 24px rgba(0,24,16,.6) }
.landscape-message .eyebrow { margin-bottom:22px }
.landscape-message > p:last-child { margin:0; font-size:clamp(46px,7vw,110px); font-weight:450; letter-spacing:-.045em; line-height:1.04 }
.scroll-cue { position:absolute; z-index:2; bottom:26px; left:5vw; display:flex; align-items:center; gap:12px; opacity:var(--hero-opacity); font-size:12px }
.scroll-cue span { width:42px; height:1px; background:var(--green) }
.scroll-cue small { font-size:12px }
.section-pad { padding:110px 5vw }
.manifesto { padding-top:76px; padding-bottom:80px }
.manifesto-grid { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:9vw }
.manifesto h2 { font-size:clamp(35px,3.4vw,58px) }
.manifesto-copy p { margin:0; max-width:570px; color:var(--muted); font-size:18px; line-height:1.65 }
.world { position:relative; min-height:90svh; isolation:isolate; overflow:hidden; color:var(--white); background:var(--green) }
.world > img { position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; z-index:-2 }
.world-shade { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(6,25,19,.62),transparent 72%),linear-gradient(0deg,rgba(6,25,19,.33),transparent 70%) }
.world-content { min-height:90svh; display:flex; flex-direction:column; justify-content:flex-end; align-items:flex-start; padding:8vw 6vw; max-width:900px }
.world-content h2 { font-size:clamp(56px,7.4vw,118px); max-width:800px }
.world-content > p:last-child { max-width:465px; margin:26px 0 0; font-size:17px; line-height:1.55 }
.badge { font-size:12px; letter-spacing:.07em; margin-bottom:26px; text-transform:uppercase }
.badge > span:first-child { display:none }
.duo-worlds { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:70px 3.2vw; padding-bottom:100px }
.model-world { min-width:0 }
.model-world:nth-child(2) { padding-top:100px }
.campaign-image { position:relative; display:block; overflow:hidden; aspect-ratio:5/4; background:var(--deep) }
.campaign-image > img { width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.3,1) }
.campaign-image:hover > img { transform:scale(1.025) }
.finance-world .campaign-image > img { object-position:63% center }
.leo-world .campaign-image > img { object-position:65% center }
.finance-chart { position:absolute; top:10%; left:6%; width:37%; padding:14px 0; color:var(--mint); text-shadow:0 1px 5px #001a14; pointer-events:none }
.finance-chart span,.finance-chart small { display:block; font-size:12px; line-height:1.4 }
.finance-chart span { max-width:140px }
.finance-chart svg { display:block; width:100%; margin:20px 0 8px; overflow:visible }
.chart-grid { fill:none; stroke:rgba(255,255,255,.25); stroke-width:1 }
.chart-line { fill:none; stroke:#c8fa72; stroke-width:3; stroke-linecap:round; stroke-linejoin:round }
.finance-chart small { color:var(--white) }
.campaign-caption { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:28px }
.campaign-caption .eyebrow { margin-bottom:10px; color:var(--muted) }
.campaign-caption h2 { font-size:clamp(27px,2.5vw,42px) }
.round-link { display:grid; place-items:center; width:46px; height:46px; flex-shrink:0; border:1px solid #afb9af; border-radius:50%; text-decoration:none; font-size:21px; transition:background .2s,color .2s }
.round-link:hover { background:var(--green); color:var(--white) }
.campaign-description { max-width:540px; font-size:16px; line-height:1.6; color:var(--muted); margin:20px 0 0 }
.projects-outro { grid-column:1/-1; display:flex; justify-content:space-between; align-items:center; gap:25px }
.ai-caption { max-width:750px; margin:30px 0 0; font-size:13px; line-height:1.6; color:var(--muted) }
.projects-outro .ai-caption { margin:0 }
.text-link { display:inline-flex; align-items:center; gap:18px; min-height:44px; padding:8px 0; border:0; border-bottom:1px solid currentColor; background:transparent; color:inherit; font-size:14px; font-weight:500; line-height:1.4; text-decoration:none }
.world-genova { min-height:85svh }
.world-genova .world-content { min-height:85svh }
.world-genova > img { object-position:center }
.film-section { display:grid; grid-template-columns:1fr 1.5fr; gap:6vw; align-items:center; padding:105px 5vw; background:#12271f; color:var(--white) }
.film-heading h2 { font-size:clamp(40px,4.4vw,76px) }
.film-heading > p:not(.eyebrow) { max-width:360px; font-size:17px; line-height:1.6; color:#c3d0c7; margin:28px 0 }
.film-heading .eyebrow { color:#c3d0c7 }
.film-status { display:inline-block; padding-bottom:8px; border-bottom:1px solid #779386; font-size:13px; color:#c3d0c7 }
.film-pair { display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start }
.film-pair figure { margin:0; position:relative }
.film-pair figure+figure { margin-top:72px }
.film-pair img { width:100%; aspect-ratio:3/4; object-fit:cover }
.film-pair figcaption { margin-top:14px; font-size:14px }
.roster-head,.services-title-row,.offers-head,.studio-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:7vw; align-items:end; margin-bottom:56px }
.roster h2,.services h2,.offers h2,.studio h2 { font-size:clamp(42px,4.8vw,78px) }
.roster-head > p,.services-title-row > p,.offers-head > p,.studio-copy > p { margin:0; max-width:530px; font-size:18px; line-height:1.6 }
.roster-head > p,.offers-head > p,.studio-copy > p { color:var(--muted) }
.roster-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:42px 24px }
.talent-card { min-width:0; display:block; border:0; padding:0; text-align:left; color:inherit; background:transparent }
.talent-portrait { display:block; aspect-ratio:4/4.8; overflow:hidden; background:#d9d8d0 }
.talent-portrait img { width:100%; height:100%; object-fit:cover; object-position:50% 38%; transition:transform .65s cubic-bezier(.2,.7,.3,1) }
.talent-card:hover img { transform:scale(1.035) }
.talent-label { display:flex; align-items:center; justify-content:space-between; margin-top:18px; gap:18px }
.talent-label strong { display:block; font-size:26px; font-weight:450; letter-spacing:-.025em }
.talent-label small { display:block; margin-top:5px; font-size:13px; color:var(--muted); line-height:1.5 }
.talent-plus { display:grid; place-items:center; height:44px; width:44px; border-radius:50%; border:1px solid var(--line); font-size:24px; font-weight:300; transition:background .2s }
.talent-card:hover .talent-plus { background:#e2e7dc }
.services { padding-top:95px; padding-bottom:95px; background:var(--green); color:var(--white) }
.services-title-row > p { color:#cad7cd }
.service-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px }
.service-list article { display:flex; flex-direction:column; align-items:start }
.service-list article > span { display:none }
.service-icon { width:30px; height:30px; margin-bottom:30px; fill:none; stroke:var(--mint); stroke-width:1.25; stroke-linecap:round; stroke-linejoin:round }
.service-list h3 { margin:0 0 14px; font-size:25px; font-weight:450; letter-spacing:-.025em; line-height:1.1 }
.service-list p { margin:0; color:#cad7cd; font-size:16px; line-height:1.55 }
.offers { background:var(--paper) }
.offer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px }
.offer-card { display:flex; flex-direction:column; position:relative; min-width:0; padding:32px 28px; background:#e8ebe2; border-radius:3px }
.offer-featured { background:var(--deep); color:var(--white) }
.offer-top { font-size:13px; letter-spacing:.08em; font-weight:550 }
.recommended { position:absolute; top:29px; right:24px; padding:5px 8px; background:var(--mint); color:var(--deep); border-radius:2px; font-size:12px }
.offer-card h3 { max-width:330px; min-height:96px; margin:58px 0 28px; font-size:29px; font-weight:450; letter-spacing:-.035em; line-height:1.13 }
.price { display:flex; align-items:baseline; gap:10px; margin:0 0 32px; font-size:clamp(44px,4vw,65px); letter-spacing:-.045em; font-weight:430; white-space:nowrap }
.price small { font-size:13px; letter-spacing:0; color:var(--muted) }
.offer-featured .price small { color:#bacfc1 }
.offer-card ul { margin:0 0 25px; padding:0; list-style:none }
.offer-card li { font-size:15px; line-height:1.5; padding:10px 0; border-top:1px solid #cdd3c5 }
.offer-featured li { border-color:#375045 }
.timing { margin:auto 0 20px; font-size:13px; color:var(--muted) }
.offer-featured .timing { color:#c5d6cb }
.offer-cta { min-height:48px; padding:14px 2px; border-top:1px solid currentColor; text-decoration:none; font-size:14px; font-weight:500 }
.offer-cta:hover { text-decoration:underline; text-underline-offset:5px }
.offer-detail { margin-top:36px; border-bottom:1px solid var(--line); padding-bottom:18px }
.offer-detail summary { min-height:44px; padding:12px 0; cursor:pointer; font-size:16px; font-weight:500 }
.offer-detail > p { max-width:900px; font-size:15px; line-height:1.65; color:var(--muted) }
.offer-notes { display:grid; grid-template-columns:1fr 1fr; gap:50px; margin-top:28px }
.offer-notes p { margin:0; font-size:13px; line-height:1.65; color:var(--muted) }
.process { padding-top:10px; padding-bottom:100px }
.process h2 { font-size:clamp(38px,4vw,66px); margin:0 0 55px }
.process-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px }
.process-grid article { border-top:1px solid #bac5b5; padding-top:22px }
.process-grid span { color:var(--green); font-size:16px }
.process-grid h3 { font-size:25px; font-weight:450; letter-spacing:-.03em; margin:35px 0 12px }
.process-grid p { color:var(--muted); font-size:16px; line-height:1.6; margin:0 }
.studio { background:#e5e9df; padding-top:96px; padding-bottom:80px }
.studio-copy .text-link { margin-top:24px }
.founders { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:65px }
.founders article { border-top:1px solid #b9c5b2; padding-top:25px }
.founders span { font-size:12px; letter-spacing:.08em }
.founders h3 { margin:34px 0 12px; font-size:36px; letter-spacing:-.035em; font-weight:450 }
.founders p { font-size:15px; color:var(--muted); margin:0 }
.contact { padding:115px 5vw 125px; position:relative; isolation:isolate; color:var(--white); background:var(--deep); overflow:hidden }
.contact-backdrop { position:absolute; inset:0; z-index:-1; background:linear-gradient(rgba(8,32,23,.72),rgba(8,32,23,.9)),url("assets/liguria-portal.webp") center/cover no-repeat }
.contact-inner { text-align:center; max-width:1000px; margin:auto }
.contact h2 { font-size:clamp(44px,6vw,92px) }
.contact .eyebrow { color:#d3e3d8 }
.contact-inner > p:not(.eyebrow) { max-width:550px; margin:30px auto; font-size:18px; line-height:1.6; color:#d3e3d8 }
.contact-actions { display:flex; flex-direction:column; align-items:center; gap:20px }
.contact-secondary { display:flex; gap:14px; align-items:center; min-height:44px; text-decoration:none; font-size:14px; color:#d3e3d8 }
.contact-secondary:hover { text-decoration:underline }
.site-footer { display:grid; grid-template-columns:1fr auto; gap:32px; padding:40px 5vw 28px; background:#0b1912; color:var(--white) }
.footer-brand { display:flex; gap:12px; align-items:center }
.footer-mark { width:39px; height:36px; fill:currentColor }
.footer-links { display:flex; flex-wrap:wrap; align-items:center; gap:24px }
.footer-links button { min-height:44px; border:0; padding:0; background:transparent; color:inherit; font-size:13px }
.footer-links button:hover { text-decoration:underline; text-underline-offset:5px }
.preview-note { max-width:660px; margin:0; font-size:12px; line-height:1.6; color:#abbfb0 }
.copyright { margin:0; align-self:end; font-size:12px; color:#abbfb0 }
.info-dialog { width:min(760px,calc(100% - 32px)); max-height:calc(100svh - 40px); border:0; padding:65px 50px 45px; background:var(--paper); color:var(--ink); overscroll-behavior:contain }
.info-dialog::backdrop { background:rgba(5,20,13,.74) }
.info-dialog h2 { font-size:clamp(35px,4.5vw,60px) }
.info-dialog > p:last-child { margin:25px 0 0; font-size:16px; line-height:1.7 }
.dialog-close { position:absolute; z-index:2; top:14px; right:14px; display:grid; place-items:center; width:44px; height:44px; border:1px solid #a4b2a2; border-radius:50%; background:var(--paper); color:var(--green); font-size:26px; font-weight:300 }
.dialog-close:hover { background:var(--green); color:var(--white) }
.talent-dialog { width:min(1120px,calc(100% - 32px)); padding:0 }
.talent-dialog[open] { display:grid; grid-template-columns:1.2fr .8fr }
.talent-dialog > form { position:absolute; inset:0 0 auto; z-index:3 }
.talent-dialog-media { background:#e6e7df; display:flex; align-items:center }
.talent-dialog-media img { width:100%; max-height:78svh; object-fit:contain }
.talent-dialog-copy { padding:75px 35px 45px }
.talent-dialog-copy > p:not(.eyebrow):not(.ai-caption) { font-size:17px; line-height:1.6; margin:25px 0 }
.talent-dialog-copy .ai-caption { margin:0 0 28px }
.products-intro { padding:160px 5vw 50px; max-width:1280px }
.products-intro h1 { font-size:clamp(54px,7vw,112px) }
.products-intro > p:not(.eyebrow) { max-width:670px; font-size:18px; color:var(--muted); line-height:1.6; margin:30px 0 0 }
.product-filters { display:flex; gap:10px; flex-wrap:wrap; padding:12px 5vw 45px }
.product-filters button { min-height:44px; padding:10px 21px; border:1px solid #b6c1b1; background:transparent; color:var(--green); border-radius:40px; font-size:14px }
.product-filters button[aria-pressed="true"] { background:var(--green); color:var(--white); border-color:var(--green) }
.product-catalog { padding:0 5vw 90px; display:grid; grid-template-columns:1fr 1fr; gap:85px 3.5vw; align-items:start }
.product-card { min-width:0; scroll-margin-top:110px }
.product-card > img,.product-card .product-portrait-pair { width:100%; aspect-ratio:1.35; object-fit:cover; background:#e5e8df }
.product-card > img { object-position:65% center }
.product-card.wide { grid-column:1/-1; display:grid; grid-template-columns:1.3fr .7fr; gap:5vw; align-items:center }
.product-card.wide > img { aspect-ratio:1.5 }
.product-card h2 { font-size:clamp(30px,3vw,47px); margin:0 0 20px }
.product-copy { padding-top:28px }
.product-card.wide .product-copy { padding:0 }
.product-copy > p { font-size:16px; line-height:1.65; color:var(--muted) }
.product-copy .eyebrow { margin:0 0 14px }
.deliverables { display:flex; flex-wrap:wrap; gap:8px 16px; list-style:none; padding:0; margin:22px 0; font-size:13px; color:var(--green) }
.deliverables li { border-bottom:1px solid #b6c1b1; padding-bottom:5px }
.product-portrait-pair { display:grid; grid-template-columns:1fr 1fr; overflow:hidden }
.product-portrait-pair img { width:100%; height:100%; object-fit:cover }
.catalog-note { max-width:850px; padding:0 5vw 85px; font-size:14px; color:var(--muted); line-height:1.6 }
.noscript { padding:14px 5vw; font-size:14px; background:var(--green); color:var(--white) }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap }
@media(min-width:1600px) {
 .section-pad { padding-left:max(5vw,calc((100vw - 1660px)/2)); padding-right:max(5vw,calc((100vw - 1660px)/2)) }
 .hero-copy h1 { font-size:clamp(88px,5.8vw,128px) }
}
@media(max-width:1100px) {
 .desktop-nav { gap:17px }
 .site-header { gap:20px; padding:0 3vw }
 .header-actions { gap:15px }
 .hero-copy h1 { font-size:5.9vw }
 .recommended { position:static; align-self:flex-start; margin-top:14px }
 .offer-featured h3 { margin-top:28px }
 .offer-card h3 { font-size:26px }
 .offer-card { padding:28px 23px }
}
@media(max-width:960px) {
 .site-header { height:76px; justify-content:space-between }
 .desktop-nav { display:none; position:absolute; top:76px; left:0; right:0; margin:0; padding:24px 5vw; background:var(--paper); color:var(--green); box-shadow:0 12px 16px rgba(5,30,15,.05) }
 .desktop-nav.is-open { display:grid; grid-template-columns:1fr 1fr; gap:8px 28px }
 .desktop-nav a { font-size:20px; padding:8px 0 }
 .menu-toggle { display:block }
 .header-actions { margin-left:auto; gap:16px }
 .opening-grid { padding-left:5vw; padding-right:5vw; gap:3vw }
 .hero-copy .eyebrow { font-size:11px; letter-spacing:.04em }
 .hero-lead { font-size:16px; max-width:390px }
 .manifesto-grid { gap:6vw }
 .manifesto-copy p { font-size:16px }
 .section-pad { padding-top:82px; padding-bottom:82px }
 .duo-worlds { gap:48px 3vw }
 .model-world:nth-child(2) { padding-top:70px }
 .campaign-image { aspect-ratio:4/5 }
 .finance-chart { width:41%; left:5%; top:5%; padding:0 }
 .finance-chart span,.finance-chart small { font-size:12px }
 .finance-chart svg { margin-top:10px }
 .campaign-caption h2 { font-size:26px }
 .film-section { grid-template-columns:1fr; gap:40px; padding:75px 5vw }
 .film-heading { max-width:650px }
 .film-heading h2 br { display:block }
 .film-heading h2 { font-size:52px }
 .film-heading > p:not(.eyebrow) { max-width:550px }
 .film-pair { max-width:760px; margin:auto; gap:22px }
 .roster-head,.services-title-row,.offers-head,.studio-grid { gap:4vw }
 .roster h2,.services h2,.offers h2,.studio h2 { font-size:46px }
 .roster-head > p,.services-title-row > p,.offers-head > p,.studio-copy > p { font-size:16px }
 .service-list { grid-template-columns:1fr 1fr; gap:40px }
 .offer-grid { grid-template-columns:1fr 1fr }
 .offer-featured { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; column-gap:50px; padding:36px }
 .offer-featured h3 { grid-column:1; min-height:0; margin-top:26px }
 .offer-featured .recommended { position:absolute; right:36px; top:22px; margin:0 }
 .offer-featured ul { grid-column:2; grid-row:2/5; margin-top:30px }
 .offer-featured .price { grid-column:1 }
 .offer-featured .timing { grid-column:1 }
 .offer-featured .offer-cta { grid-column:1/-1 }
 .process-grid { grid-template-columns:1fr 1fr; gap:35px }
}
@media(max-width:680px) {
 html { scroll-padding-top:86px }
 .site-header { height:70px; padding:0 18px }
 .brand-mark { width:32px; height:30px }
 .wordmark { gap:7px }
 .wordmark-type { font-size:23px }
 .header-actions { gap:10px }
 .header-cta { display:none }
 .language-toggle { font-size:12px; min-width:58px }
 .desktop-nav { top:70px }
 .opening { height:205svh }
 .opening-grid { grid-template-columns:1fr; grid-template-rows:auto 1fr; gap:20px; padding:98px 22px 24px; align-items:start }
 .hero-copy { max-width:580px }
 .hero-copy .eyebrow { font-size:12px; letter-spacing:.05em; margin-bottom:16px }
 .hero-copy h1 { font-size:clamp(35px,9.3vw,59px); letter-spacing:-.045em; white-space:normal }
 .hero-lead { margin:20px 0 20px; max-width:420px; font-size:16px; line-height:1.5 }
 .pill { min-height:48px; padding:12px 22px; font-size:14px }
 .portal-anchor { width:auto; height:100%; max-height:38svh; max-width:95%; aspect-ratio:500/460; align-self:center; justify-self:center }
 .scroll-cue { bottom:20px; left:auto; right:22px }
 .landscape-message { bottom:12svh; left:24px; right:24px }
 .landscape-message > p:last-child { font-size:clamp(42px,12vw,68px) }
 .section-pad { padding:66px 22px }
 .manifesto { padding-top:50px; padding-bottom:50px }
 .manifesto-grid { grid-template-columns:1fr; gap:26px }
 .manifesto h2 { font-size:35px }
 .manifesto-copy p { font-size:16px; line-height:1.65 }
 .world,.world-content { min-height:82svh }
 .world-content { padding:48px 24px }
 .world > img { object-position:67% center }
 .world-shade { background:linear-gradient(0deg,rgba(4,24,16,.8),transparent 85%) }
 .world-content h2 { font-size:clamp(48px,13vw,75px) }
 .world-content > p:last-child { font-size:16px; max-width:95% }
 .duo-worlds { grid-template-columns:1fr; gap:48px }
 .model-world:nth-child(2) { padding-top:0 }
 .campaign-image { aspect-ratio:1.1 }
 .campaign-caption { margin-top:20px }
 .campaign-caption h2 { font-size:29px }
 .campaign-description { font-size:16px; margin-top:16px }
 .finance-chart { width:34%; top:7%; left:6% }
 .projects-outro { display:block }
 .projects-outro .text-link { margin-top:20px }
 .world-genova,.world-genova .world-content { min-height:78svh }
 .world-genova > img { object-position:61% center }
 .film-section { padding:66px 22px }
 .film-heading h2 { font-size:45px }
 .film-pair { gap:12px }
 .film-pair figure+figure { margin-top:44px }
 .film-pair img { aspect-ratio:3/4.7 }
 .roster-head,.services-title-row,.offers-head,.studio-grid { grid-template-columns:1fr; gap:24px; margin-bottom:36px }
 .roster h2,.services h2,.offers h2,.studio h2 { font-size:clamp(38px,10vw,56px) }
 .roster-head > p,.services-title-row > p,.offers-head > p,.studio-copy > p { max-width:540px; line-height:1.6 }
 .roster-grid { grid-template-columns:1fr 1fr; gap:32px 14px }
 .talent-portrait { aspect-ratio:3/4.1 }
 .talent-label { gap:4px; margin-top:14px; align-items:start }
 .talent-label strong { font-size:24px }
 .talent-label small { font-size:12px; margin-top:4px }
 .talent-plus { width:32px; height:32px; flex-shrink:0; font-size:21px; border:0 }
 .ai-caption { font-size:13px }
 .service-list { gap:38px 22px }
 .service-list h3 { font-size:24px }
 .service-list p { font-size:16px }
 .service-icon { margin-bottom:22px }
 .offer-grid { grid-template-columns:1fr; gap:18px }
 .offer-card,.offer-featured { display:flex; grid-column:auto; padding:30px 26px }
 .offer-card h3 { min-height:0; font-size:31px; margin:32px 0 26px }
 .recommended,.offer-featured .recommended { position:static; align-self:flex-start; margin:18px 0 0 }
 .offer-card .price { font-size:55px }
 .offer-featured ul { margin-top:0 }
 .offer-card li { font-size:16px }
 .offer-notes { grid-template-columns:1fr; gap:18px }
 .process { padding-top:0 }
 .process h2 { font-size:38px; margin-bottom:38px }
 .process-grid { gap:32px 22px }
 .process-grid h3 { font-size:23px; margin-top:25px }
 .process-grid p { font-size:16px }
 .founders { grid-template-columns:1fr; gap:35px; margin-top:45px }
 .founders h3 { font-size:31px; margin-top:25px }
 .contact { padding:76px 24px 85px }
 .contact h2 { font-size:clamp(40px,10vw,58px) }
 .contact-inner > p:not(.eyebrow) { font-size:16px; margin:26px auto }
 .contact-secondary { flex-direction:column; gap:5px; padding:6px; font-size:14px }
 .site-footer { grid-template-columns:1fr; gap:26px; padding:36px 24px 28px }
 .footer-links { gap:22px }
 .info-dialog { padding:65px 25px 30px; width:calc(100% - 24px) }
 .info-dialog h2 { font-size:38px }
 .talent-dialog[open] { display:block; padding:0 }
 .talent-dialog-media { padding-top:54px }
 .talent-dialog-media img { max-height:46svh }
 .talent-dialog-copy { padding:30px 24px }
 .products-intro { padding:120px 22px 35px }
 .products-intro h1 { font-size:clamp(43px,12vw,70px) }
 .products-intro > p:not(.eyebrow) { font-size:16px; margin-top:24px }
 .product-filters { padding:0 22px 32px; gap:8px }
 .product-filters button { padding:10px 16px; font-size:14px }
 .product-catalog { grid-template-columns:1fr; padding:0 22px 60px; gap:56px }
 .product-card.wide { display:block; grid-column:auto }
 .product-card > img,.product-card .product-portrait-pair { aspect-ratio:1.1 }
 .product-card.wide .product-copy { padding-top:28px }
 .product-card h2 { font-size:35px }
 .catalog-note { padding:0 22px 55px }
}
@media(max-height:740px) and (max-width:680px) and (orientation:portrait) {
 .opening-grid { padding-top:85px; gap:8px }
 .hero-copy h1 { font-size:clamp(33px,9vw,47px) }
 .hero-copy .eyebrow { margin-bottom:10px }
 .hero-lead { margin:14px 0; font-size:16px; line-height:1.4 }
 .portal-anchor { max-height:32svh }
 .scroll-cue { display:none }
}
@media(max-height:580px) and (orientation:landscape) {
 .site-header { height:60px }
 .desktop-nav { top:60px }
 .opening { height:235svh }
 .opening-grid { grid-template-columns:1.2fr .8fr; grid-template-rows:1fr; gap:4vw; padding:80px 5vw 25px; align-items:center }
 .hero-copy h1 { font-size:clamp(32px,5.2vw,55px) }
 .hero-copy .eyebrow { font-size:12px; margin-bottom:10px }
 .hero-lead { font-size:16px; margin:12px 0; line-height:1.35 }
 .hero-copy .pill { min-height:44px; padding:10px 20px }
 .portal-anchor { width:100%; height:auto; max-height:75svh }
 .scroll-cue { display:none }
 .landscape-message { bottom:10svh }
 .landscape-message > p:last-child { font-size:44px }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto }
 *,*::before,*::after { transition:none!important; animation:none!important }
 .opening { height:100lvh }
 .opening-stage { position:relative }
 .hero-copy { opacity:1; transform:none }
 .landscape-message { display:none }
 .campaign-image:hover > img,.talent-card:hover img { transform:none }
}

/* Casting: one scene, with the full cast within reach. */
.casting-stage { display:grid; grid-template-columns:1.25fr .85fr; gap:4.5vw; align-items:center; margin-bottom:30px; min-width:0 }
.casting-media { margin:0; position:relative; overflow:hidden; background:#e7e7de; aspect-ratio:1.22 }
.casting-media > img { width:100%; height:100%; object-fit:cover; object-position:43% center }
.casting-media > img[data-identity="alex"] { object-fit:contain }
.casting-media > img[data-identity="carmen"] { object-position:62% center }
.casting-media > img[data-identity="noah"] { object-position:70% center }
.casting-media figcaption { position:absolute; left:18px; bottom:16px; max-width:calc(100% - 36px); background:rgba(12,41,35,.87); color:var(--white); padding:7px 10px; font-size:12px; line-height:1.4 }
.casting-copy { padding:12px 0; min-width:0 }
.casting-copy .eyebrow { margin-bottom:14px; font-size:13px }
.casting-copy h3 { font-size:clamp(46px,5vw,82px); font-weight:430; letter-spacing:-.045em; line-height:1; margin:0 0 22px }
.casting-headline { font-size:clamp(22px,2vw,30px); letter-spacing:-.025em; line-height:1.2; margin:0 0 20px }
.casting-copy > p[data-cast-description] { font-size:16px; line-height:1.65; color:var(--muted); margin:0 0 20px; max-width:520px }
.casting-formats { display:flex; flex-wrap:wrap; list-style:none; padding:0; margin:0 0 22px; gap:6px 14px; color:var(--green); font-size:14px; line-height:1.5 }
.casting-formats li { border-bottom:1px solid #c4cfc0; padding:3px 0 }
.casting-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px 20px }
.cast-detail { border:0; padding:12px 0; min-height:44px; background:transparent; color:var(--muted); font-size:14px }
.cast-detail:hover { color:var(--green); text-decoration:underline; text-underline-offset:5px }
.casting-tabs { position:relative; display:grid; grid-template-columns:repeat(10,minmax(0,1fr)); gap:14px; overflow-x:auto; padding:5px 1px 14px; scrollbar-width:thin; scrollbar-color:#9bab9a transparent; scroll-snap-type:x proximity }
.casting-tab { min-width:0; border:0; border-bottom:2px solid transparent; padding:0 0 10px; color:var(--muted); background:transparent; text-align:left; scroll-snap-align:start; font-size:15px; line-height:1.4 }
.casting-tab[aria-selected="true"] { border-bottom-color:var(--green); color:var(--green) }
.casting-thumb { display:block; margin-bottom:10px; aspect-ratio:4/5; overflow:hidden; background:#e0e4db }
.casting-thumb img { width:100%; height:100%; object-fit:cover; object-position:42% 38%; opacity:.83; transition:opacity .2s }
.casting-tab[aria-selected="true"] img,.casting-tab:hover img { opacity:1 }
.casting-tab[data-cast="vera"] img { object-position:30% 35% }
.casting-tab[data-cast="ginger"] img { object-position:44% center }
.casting-tabs + .ai-caption { margin:20px 0 0; max-width:760px }
.talent-dialog-media img { aspect-ratio:1; object-fit:cover; object-position:43% center }
.talent-dialog-media img[data-identity="alex"] { object-fit:contain }
.talent-dialog-copy .pill { text-align:center }
.product-copy > .concept-disclosure { font-size:14px; line-height:1.5; max-width:560px }
.product-card#ginger { padding:35px; background:#e5e9df; gap:4vw }
.product-card#ginger > img { aspect-ratio:1.35; object-position:42% center }
.product-card#trading > img,.product-card#music > img { object-position:40% center }
.product-card#living > img { object-position:35% center }
/* The three actual stages of the Ginger concept. */
.walkthrough { margin:0 0 66px; padding-top:40px; padding-bottom:60px; background:#e6eade; scroll-margin-top:88px }
.walk-heading { display:grid; grid-template-columns:1fr .8fr; gap:7vw; align-items:end; margin-bottom:36px }
.walk-heading h2 { font-size:clamp(38px,4.4vw,68px) }
.walk-heading > p { font-size:17px; color:var(--muted); line-height:1.6; margin:0; max-width:500px }
.walk-tabs { display:flex; border-bottom:1px solid #bbc7b3; gap:35px; margin-bottom:32px }
.walk-tabs button { display:flex; align-items:center; gap:12px; background:none; border:0; border-bottom:2px solid transparent; padding:18px 2px; color:var(--muted); min-height:54px; font-size:16px }
.walk-tabs button strong { font-weight:500 }
.walk-tabs button > span { font-size:14px }
.walk-tabs button[aria-selected="true"] { border-color:var(--green); color:var(--green) }
.walk-panel { display:grid; grid-template-columns:1fr 1fr; gap:5vw; align-items:center; min-height:520px }
.walk-copy { min-width:0; padding:12px 0 }
.walk-copy .eyebrow { margin-bottom:20px }
.walk-copy h3 { margin:0 0 23px; font-weight:430; font-size:clamp(32px,3.2vw,54px); letter-spacing:-.045em; line-height:1.06 }
.walk-copy > p:not(.eyebrow) { color:var(--muted); font-size:16px; line-height:1.65; max-width:520px }
.walk-photo { margin:0; aspect-ratio:1.05; position:relative; overflow:hidden; background:#d7dbcf }
.walk-photo > img { width:100%; height:100%; object-fit:cover; object-position:42% center }
.walk-detail > img { transform:scale(1.6); transform-origin:44% 67% }
.walk-detail figcaption { position:absolute; bottom:20px; left:20px; color:var(--white); background:var(--green); padding:8px 12px; font-size:13px }
.brief-facts { display:grid; grid-template-columns:100px 1fr; column-gap:20px; row-gap:11px; border-top:1px solid #becbb6; padding-top:20px; margin:26px 0 20px; font-size:14px; line-height:1.5 }
.brief-facts dt { color:var(--muted) }
.brief-facts dd { margin:0; color:var(--green) }
.direction-swatches { display:flex; gap:12px; margin:24px 0 }
.direction-swatches span { width:44px; height:44px; border-radius:50%; background:var(--swatch); border:1px solid rgba(20,40,20,.12) }
.walk-disclosure { color:var(--muted); max-width:1000px; font-size:13px; line-height:1.6; margin:28px 0 0 }
.campaign-formats { position:relative; display:grid; grid-template-columns:1fr 1.08fr; align-items:center; gap:18px; min-width:0 }
.campaign-formats figure { margin:0; min-width:0; position:relative }
.campaign-formats img { width:100%; object-fit:cover }
.format-social > img { aspect-ratio:4/5; object-position:42% center }
.format-social > div { position:absolute; left:0; bottom:35px; width:100%; padding:35px 14px 15px; background:linear-gradient(transparent,rgba(10,30,20,.72)); color:white; font-size:clamp(22px,2.1vw,35px); line-height:1.05; letter-spacing:-.045em }
.format-web > img { aspect-ratio:16/9 }
.campaign-formats figcaption { padding-top:12px; min-height:35px; font-size:13px; color:var(--muted) }
/* Studio is a personal story, with room for the words. */
.studio-intro { padding:170px 5vw 90px; background:var(--green); color:var(--white) }
.studio-page .site-header { background:var(--paper) }
.studio-intro h1 { font-size:clamp(58px,8vw,128px); max-width:1100px }
.studio-intro .eyebrow { color:#cbdcd0 }
.studio-intro-lead { font-size:clamp(19px,2vw,27px); line-height:1.5; max-width:700px; margin:38px 0 0; color:#e0e9df }
.studio-origin { display:grid; grid-template-columns:1fr 1fr; gap:7vw; align-items:start }
.studio-origin h2 { font-size:clamp(37px,4vw,60px); max-width:670px }
.origin-story p { margin:0 0 25px; color:var(--muted); font-size:18px; line-height:1.65 }
.origin-story p:last-child { margin:0 }
.studio-landscape { height:65svh; min-height:400px; max-height:750px; position:relative; overflow:hidden; color:white; isolation:isolate }
.studio-landscape > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2 }
.studio-landscape::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent,rgba(5,26,19,.7)); z-index:-1 }
.studio-landscape > p { position:absolute; left:5vw; bottom:65px; margin:0; max-width:800px; font-size:clamp(38px,5vw,76px); letter-spacing:-.04em; line-height:1.05 }
.studio-landscape > small { position:absolute; left:5vw; bottom:28px; font-size:12px }
.studio-values h2 { font-size:clamp(38px,4vw,64px); margin-bottom:48px }
.values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:4vw }
.values-grid article { border-top:1px solid #b4c1ab; padding-top:24px }
.values-grid h3 { font-size:26px; font-weight:450; letter-spacing:-.025em; margin:0 0 20px }
.values-grid p { font-size:16px; line-height:1.65; color:var(--muted); margin:0 }
.studio-people { background:#e5e9df }
.people-grid { display:grid; grid-template-columns:1fr 1fr; gap:7vw }
.people-grid h2 { font-size:clamp(34px,3.8vw,60px); margin:28px 0 20px }
.people-grid p { font-size:17px; color:var(--muted); line-height:1.6; max-width:500px; margin:0 }
.person-initials { display:block; font-size:80px; font-weight:400; letter-spacing:-.09em; color:#93a38b; line-height:1 }
@media(max-width:1100px) {
 .casting-stage { grid-template-columns:1.1fr 1fr; gap:30px }
 .casting-media { aspect-ratio:.95 }
 .casting-copy h3 { font-size:58px }
 .casting-tabs { grid-template-columns:repeat(10,minmax(96px,1fr)); gap:12px }
 .walk-panel { gap:35px; min-height:480px }
 .walk-photo { aspect-ratio:.85 }
}
@media(max-width:760px) {
 .casting-stage { grid-template-columns:1fr; gap:25px; margin-bottom:25px }
 .casting-media { aspect-ratio:1.35 }
 .casting-copy { padding:0 }
 .casting-copy h3 { font-size:54px; margin-bottom:17px }
 .casting-copy > p[data-cast-description] { max-width:none }
 .casting-headline { font-size:25px }
 .casting-tabs { grid-template-columns:repeat(10,98px); gap:12px }
 .casting-tab { font-size:15px }
 .casting-thumb { aspect-ratio:1 }
 .casting-thumb img { object-position:42% 30% }
 .casting-tab[data-cast="vera"] img { object-position:30% 20% }
 .walk-heading,.walk-panel { grid-template-columns:1fr; gap:28px }
 .walk-heading { margin-bottom:25px }
 .walkthrough { margin-bottom:45px; padding:45px 22px }
 .walk-heading h2 { font-size:42px }
 .walk-heading > p { font-size:16px }
 .walk-tabs { gap:0; justify-content:space-between; margin-bottom:24px }
 .walk-tabs button { gap:7px; font-size:14px; padding:16px 1px }
 .walk-tabs button > span { font-size:13px }
 .walk-panel { min-height:0 }
 .walk-copy { padding:0 }
 .walk-copy h3 { font-size:38px }
 .walk-photo { aspect-ratio:1.2 }
 #walk-panel-0 .walk-photo { grid-row:1 }
 .walk-detail { aspect-ratio:1.5 }
 .walk-disclosure { font-size:13px; margin-top:26px }
 .campaign-formats { max-width:520px; padding-bottom:5px }
 .format-social > div { font-size:27px }
 .product-card#ginger { padding:22px }
 .studio-intro { padding:125px 22px 60px }
 .studio-intro h1 { font-size:clamp(45px,10.8vw,77px) }
 .studio-intro-lead { font-size:19px; margin-top:28px }
 .studio-origin { grid-template-columns:1fr; gap:32px }
 .studio-origin h2 { font-size:39px }
 .origin-story p { font-size:16px; margin-bottom:22px }
 .studio-landscape { min-height:440px; height:65svh }
 .studio-landscape > p { left:22px; right:22px; bottom:75px; font-size:44px }
 .studio-landscape > small { left:22px; bottom:28px; font-size:12px }
 .values-grid,.people-grid { grid-template-columns:1fr; gap:36px }
 .studio-values h2 { font-size:39px; margin-bottom:34px }
 .values-grid h3 { font-size:27px }
 .people-grid h2 { font-size:37px; margin-top:18px }
 .person-initials { font-size:66px }
}
.desktop-nav .nav-contact { display:none }
@media(max-width:960px) { .desktop-nav .nav-contact { display:flex; grid-column:1/-1; border-top:1px solid var(--line); margin-top:8px; padding-top:16px; font-size:18px } }
.casting-tabs { margin-bottom:26px }
.casting-stage { margin-bottom:22px }
.roster > .ai-caption { margin:20px 0 0; max-width:760px }

.character-crosslink { display:block; width:fit-content; margin-top:16px; padding:10px 0; font-size:14px; text-underline-offset:5px; line-height:1.5 }
.product-card#ginger { background:#eee1e2 }
.casting-media > img[data-identity="ginger"],.casting-media > img[data-identity="gary"],.casting-media > img[data-identity="maya"],.casting-media > img[data-identity="nina"] { object-fit:contain; background:#e4e4e2; object-position:center }
.casting-tab[data-cast] .casting-thumb img { object-position:center }
.walk-detail img { object-position:center; transform:none }
