
:root{
  --ink:#061927;
  --ink-2:#0d2b3d;
  --cream:#f3f0e8;
  --paper:#fffdf8;
  --mist:#e8eef2;
  --blue:#7aa7c4;
  --blue-soft:#cfe6f3;
  --line:rgba(6,25,39,.14);
  --muted:#61717d;
  --orange:#f45124;
  --green:#0e3827;
  --radius:30px;
  --shadow:0 28px 80px rgba(6,25,39,.13);
  --max:1240px;
  /* Typography system: readable UI first, brand fonts used deliberately. */
  --font-ui:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --font-brand:"modulator-variable","Modulator Variable",Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --font-accent:"subway-berlin-sc","Subway Berlin SC","subway-berlin","Subway Berlin",Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;
  --font-display:var(--font-brand);
  --font-body:var(--font-ui);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--cream)}
body{margin:0;font-family:var(--font-body);font-synthesis:none;color:var(--ink);background:var(--cream);line-height:1.5;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,textarea{font:inherit}
button{color:inherit}
::selection{background:var(--blue-soft);color:var(--ink)}
[data-fr]{display:none}
html[data-lang="fr"] [data-en]{display:none!important}
html[data-lang="fr"] [data-fr]{display:revert}
.container{width:min(calc(100% - 44px),var(--max));margin-inline:auto}
.skip-link{position:fixed;left:16px;top:-80px;z-index:1000;background:var(--paper);padding:12px 18px;border-radius:999px;font-weight:800;box-shadow:var(--shadow)}
.skip-link:focus{top:16px}
.site-header{position:fixed;z-index:100;inset:16px 0 auto;padding-inline:18px;pointer-events:none}
.nav-shell{width:min(100%,var(--max));min-height:64px;margin:auto;padding:8px 10px 8px 18px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(6,25,39,.88);box-shadow:0 18px 45px rgba(6,25,39,.2);backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);display:flex;align-items:center;justify-content:space-between;gap:18px;pointer-events:auto}
.brand{display:flex;align-items:center;min-width:120px}
.brand img{width:116px;height:auto}
.desktop-nav{display:flex;align-items:center;gap:4px;margin-left:auto}
.desktop-nav a,.lang-button{border:0;background:transparent;color:white;font-size:12px;font-weight:800;padding:10px 13px;border-radius:999px;cursor:pointer;letter-spacing:.02em}
.desktop-nav a:hover,.desktop-nav a[aria-current="page"],.lang-button:hover{background:rgba(255,255,255,.12)}
.nav-cta{background:var(--paper)!important;color:var(--ink)!important}
.mobile-menu{display:none}
.mobile-menu summary{list-style:none}
.mobile-menu summary::-webkit-details-marker{display:none}
.menu-button{display:none;position:relative;width:44px;height:44px;border:0;border-radius:50%;background:var(--paper);align-items:center;justify-content:center;cursor:pointer;z-index:102}
.menu-button span,.menu-button::before,.menu-button::after{content:"";position:absolute;display:block;width:17px;height:2px;background:var(--ink);border-radius:2px;transition:transform .25s,opacity .25s}
.menu-button::before{transform:translateY(-5px)}
.menu-button::after{transform:translateY(5px)}
.mobile-menu[open] .menu-button span{opacity:0}
.mobile-menu[open] .menu-button::before{transform:rotate(45deg)}
.mobile-menu[open] .menu-button::after{transform:rotate(-45deg)}
.mobile-nav{position:fixed;z-index:99;inset:0;background:rgba(6,25,39,.985);padding:max(104px,calc(env(safe-area-inset-top) + 88px)) max(24px,env(safe-area-inset-right)) max(36px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));display:grid;align-content:start;gap:10px;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-10px);transition:opacity .25s,transform .25s,visibility .25s}
.mobile-menu[open] .mobile-nav,.mobile-nav.is-open{visibility:visible;opacity:1;pointer-events:auto;transform:none}
.mobile-nav a{color:white;padding:16px 4px;border-bottom:1px solid rgba(255,255,255,.16);font-size:clamp(28px,8vw,46px);font-weight:800;letter-spacing:-.04em}
.mobile-lang{display:flex;gap:8px;margin-top:18px}.mobile-lang button{border:1px solid rgba(255,255,255,.24);background:transparent;color:white;border-radius:999px;padding:10px 14px;font-weight:800}
main{min-height:70vh}
.eyebrow,.label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:850}
.hero{position:relative;min-height:100svh;display:grid;align-items:end;background:var(--ink);color:white;overflow:hidden;padding:150px 0 64px}
.hero-media{position:absolute;inset:0}
.hero-media picture,.hero-media img{width:100%;height:100%}.hero-media img{object-fit:cover;object-position:center;transform:scale(1.015)}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,8,13,.9) 0%,rgba(1,8,13,.62) 48%,rgba(1,8,13,.14) 100%),linear-gradient(180deg,transparent 55%,rgba(1,8,13,.78) 100%),radial-gradient(circle at 18% 72%,rgba(122,167,196,.24),transparent 36%)}
.hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:56px;align-items:end}
.hero h1,.page-hero h1{margin:16px 0 24px;font-size:clamp(52px,8.7vw,124px);line-height:.88;letter-spacing:-.072em;font-weight:850}
.hero h1 em{font-family:var(--font-brand);font-style:normal;font-weight:400}
.hero-copy{font-size:clamp(17px,2vw,22px);max-width:730px;color:rgba(255,255,255,.78);margin:0}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 20px;border-radius:999px;border:1px solid var(--line);font-size:13px;font-weight:850;transition:transform .25s,box-shadow .25s,background .25s}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(6,25,39,.16)}
.btn-light{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.btn-outline-light{border-color:rgba(255,255,255,.34);color:white;background:rgba(255,255,255,.05)}
.btn-dark{background:var(--ink);border-color:var(--ink);color:white}
.hero-note{padding:24px;border:1px solid rgba(255,255,255,.2);border-radius:24px;background:rgba(255,255,255,.08);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.hero-note strong{display:block;font-size:15px;margin-bottom:8px}.hero-note p{font-size:13px;color:rgba(255,255,255,.7);margin:0}
.scroll-cue{position:absolute;right:24px;bottom:26px;z-index:3;color:rgba(255,255,255,.7);font-size:10px;letter-spacing:.18em;text-transform:uppercase;display:flex;align-items:center;gap:10px}.scroll-cue i{width:1px;height:42px;background:rgba(255,255,255,.28);position:relative;overflow:hidden}.scroll-cue i::after{content:"";position:absolute;inset:0;background:#fff;animation:scrollLine 1.8s infinite;transform:translateY(-100%)}
@keyframes scrollLine{70%,100%{transform:translateY(100%)}}
.section{padding:112px 0}.section-paper{background:var(--paper)}.section-dark{background:var(--ink);color:white}.section-mist{background:var(--mist)}
.section-head{display:grid;grid-template-columns:190px minmax(0,1fr);gap:28px;margin-bottom:52px;align-items:start}.section-head .label{color:var(--muted);padding-top:8px}.section-dark .section-head .label{color:rgba(255,255,255,.5)}
.section-title{font-size:clamp(42px,6vw,82px);line-height:.96;letter-spacing:-.06em;margin:0;max-width:920px}.section-intro{font-size:clamp(17px,2vw,22px);max-width:760px;color:var(--muted);margin:20px 0 0}.section-dark .section-intro{color:rgba(255,255,255,.65)}
/* Project mini gallery */
.project-strip{background:var(--ink);color:white;padding:34px 0 112px}
.project-strip-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}.project-strip-head h2{margin:0;font-size:clamp(34px,4vw,60px);letter-spacing:-.055em;line-height:1}.project-strip-head p{max-width:450px;margin:0;color:rgba(255,255,255,.58)}
.project-gallery{display:grid;grid-template-columns:1.38fr .81fr .81fr;gap:16px}
.project-tile{position:relative;min-height:580px;border-radius:30px;overflow:hidden;isolation:isolate;background:#10293a;border:1px solid rgba(255,255,255,.12)}
.project-tile.small{min-height:580px}.project-tile img.cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.8,.2,1)}.project-tile:hover img.cover{transform:scale(1.04)}
.project-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,12,18,.04) 32%,rgba(4,12,18,.92) 100%);z-index:1}
.project-tile.personal{background:radial-gradient(circle at 75% 20%,rgba(122,167,196,.45),transparent 30%),radial-gradient(circle at 16% 72%,rgba(244,81,36,.28),transparent 28%),linear-gradient(140deg,#071927,#15384c 58%,#071927)}
.motion-orbit{position:absolute;inset:12% 8% 32%;border:1px solid rgba(255,255,255,.22);border-radius:50%;transform:rotate(-18deg)}.motion-orbit::before,.motion-orbit::after{content:"";position:absolute;border-radius:50%;background:var(--blue-soft);box-shadow:0 0 60px rgba(207,230,243,.42)}.motion-orbit::before{width:84px;height:84px;left:12%;top:15%}.motion-orbit::after{width:38px;height:38px;right:8%;bottom:12%;background:var(--orange)}
.tile-content{position:absolute;z-index:2;inset:auto 24px 24px}.tile-kicker{font-size:10px;font-weight:850;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.65)}.tile-content h3{font-size:clamp(31px,3.5vw,52px);line-height:.98;letter-spacing:-.055em;margin:9px 0 10px}.tile-content p{margin:0 0 18px;color:rgba(255,255,255,.68);max-width:520px;font-size:14px}.tile-link{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:850}.tile-link span{transition:transform .2s}.project-tile:hover .tile-link span{transform:translateX(5px)}
/* Services */
.services-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}.service-card{position:relative;min-height:330px;padding:28px;border-radius:var(--radius);border:1px solid var(--line);background:rgba(255,255,255,.58);overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.service-card:nth-child(1),.service-card:nth-child(4){grid-column:span 7}.service-card:nth-child(2),.service-card:nth-child(3){grid-column:span 5}.service-card:nth-child(5){grid-column:span 12;min-height:260px}.service-card::before{content:"";position:absolute;width:230px;height:230px;border-radius:50%;right:-90px;top:-100px;background:var(--blue-soft);opacity:.7}.service-index{position:relative;font-size:10px;font-weight:850;letter-spacing:.17em}.service-card h3{position:relative;margin:0 0 12px;font-size:clamp(29px,3.2vw,47px);line-height:1;letter-spacing:-.05em}.service-card p{position:relative;margin:0;max-width:590px;color:var(--muted)}.tag-row{position:relative;display:flex;flex-wrap:wrap;gap:7px;margin-top:20px}.tag{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.7);font-size:10px;font-weight:800}
/* Teasers */
.split-panel{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:52px;align-items:center}.portrait-card{border-radius:32px;overflow:hidden;box-shadow:var(--shadow);background:var(--ink)}.portrait-card img{width:100%;aspect-ratio:4/5;object-fit:cover}.copy-large h2{font-size:clamp(40px,5.6vw,76px);line-height:.96;letter-spacing:-.058em;margin:0 0 24px}.copy-large p{color:var(--muted);font-size:17px}.copy-large .lead{font-size:clamp(19px,2.2vw,25px);color:var(--ink)}
.workflow-teaser{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.workflow-mini{padding:24px;border-radius:24px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);min-height:210px}.workflow-mini span{font-size:10px;letter-spacing:.15em;color:rgba(255,255,255,.45)}.workflow-mini h3{font-size:24px;letter-spacing:-.04em;line-height:1.05;margin:48px 0 10px}.workflow-mini p{font-size:13px;color:rgba(255,255,255,.62);margin:0}
/* Page hero */
.page-hero{padding:176px 0 88px;background:var(--mist)}.page-hero.dark{background:var(--ink);color:white}.page-hero h1{max-width:1100px}.page-hero p{font-size:clamp(18px,2.2vw,24px);max-width:780px;margin:0;color:var(--muted)}.page-hero.dark p{color:rgba(255,255,255,.65)}
.breadcrumbs{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:24px}.breadcrumbs a{text-decoration:underline;text-underline-offset:4px}
/* About / workflow */
.about-grid{display:grid;grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr);gap:70px;align-items:start}.about-copy h2{font-size:clamp(40px,5.4vw,76px);line-height:.95;letter-spacing:-.058em;margin:0 0 28px}.about-copy p{font-size:17px;color:var(--muted)}.about-copy .about-lead{font-size:clamp(21px,2.4vw,28px);color:var(--ink)}
.milestone{padding:24px;border-radius:24px;background:var(--mist);margin-top:30px}.milestone strong{display:block;margin-bottom:8px}.milestone p{margin:0;font-size:14px}
.workflow-human{padding:30px;border:1px solid rgba(255,255,255,.14);border-radius:30px;background:linear-gradient(135deg,rgba(255,255,255,.1),rgba(255,255,255,.04));margin-bottom:22px}.workflow-human .label{color:var(--blue-soft)}.workflow-human h2{font-size:clamp(34px,5vw,66px);line-height:.98;letter-spacing:-.055em;margin:18px 0}.workflow-human p{max-width:850px;color:rgba(255,255,255,.68);font-size:17px}.signature{font-size:11px;letter-spacing:.18em;color:rgba(255,255,255,.45);margin-top:28px}
.workflow-list{display:grid;gap:14px}.workflow-step{display:grid;grid-template-columns:72px minmax(0,1fr) minmax(240px,.65fr);gap:26px;align-items:start;padding:28px;border-radius:28px;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.12)}.workflow-step .num{font-size:11px;letter-spacing:.15em;color:rgba(255,255,255,.45)}.workflow-step h3{font-size:clamp(28px,3.4vw,46px);line-height:1;letter-spacing:-.045em;margin:0 0 12px}.workflow-step p{color:rgba(255,255,255,.64);margin:0}.tool-row{display:flex;flex-wrap:wrap;gap:8px}.tool-chip{display:flex;align-items:center;gap:8px;padding:8px 11px;border-radius:999px;background:rgba(255,255,255,.1);font-size:11px;font-weight:800}.tool-chip img{width:22px;height:22px;object-fit:contain;border-radius:5px}
.gear-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.gear-card{padding:22px;border-radius:22px;background:white;border:1px solid var(--line)}.gear-card h3{font-size:13px;text-transform:uppercase;letter-spacing:.12em;margin:0 0 14px}.gear-card ul{list-style:none;padding:0;margin:0;color:var(--muted);font-size:14px}.gear-card li+li{margin-top:6px}
/* Projects */
.project-hero-media{margin-top:44px;border-radius:34px;overflow:hidden;box-shadow:var(--shadow)}.project-hero-media img{width:100%;max-height:720px;object-fit:cover}.project-summary{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:54px}.project-summary h2{font-size:clamp(38px,5vw,70px);line-height:.98;letter-spacing:-.055em;margin:0}.project-summary p{font-size:17px;color:var(--muted)}.services-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:24px}.service-check{padding:13px 15px;border-radius:16px;background:var(--mist);font-size:12px;font-weight:800}.service-check::before{content:"✓";display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:white;margin-right:8px}
.video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}.video-card{background:var(--paper);border:1px solid var(--line);border-radius:28px;padding:18px;box-shadow:0 18px 42px rgba(6,25,39,.07)}.video-frame{background:#000;border-radius:20px;overflow:hidden}.video-frame.portrait{aspect-ratio:9/16}.video-frame.landscape{aspect-ratio:16/9}.video-frame iframe,.video-frame video{width:100%;height:100%;border:0;display:block;object-fit:cover}.video-card h3{font-size:clamp(27px,3vw,40px);line-height:1;letter-spacing:-.045em;margin:20px 4px 10px}.video-card p{color:var(--muted);margin:0 4px 10px}.video-meta{font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:850;color:var(--muted);margin:4px}.external-link{display:inline-flex;margin:12px 4px 2px;font-size:12px;font-weight:850;text-decoration:underline;text-underline-offset:4px}
.photo-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.photo-card{border-radius:28px;overflow:hidden;min-height:420px;background:#ddd}.photo-card:nth-child(1){grid-column:span 7}.photo-card:nth-child(2){grid-column:span 5}.photo-card:nth-child(3){grid-column:span 5}.photo-card:nth-child(4){grid-column:span 7}.photo-card img{width:100%;height:100%;object-fit:cover}.photo-card.tall{min-height:620px}
.website-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);gap:48px;align-items:center;padding:34px;border-radius:30px;background:var(--ink);color:white}.website-panel h2{font-size:clamp(38px,5vw,68px);line-height:.98;letter-spacing:-.055em;margin:0 0 16px}.website-panel p{color:rgba(255,255,255,.65)}.website-mock{aspect-ratio:4/3;border-radius:22px;background:linear-gradient(145deg,#fff,#dcecf5);padding:14px;transform:rotate(1.5deg);box-shadow:0 24px 70px rgba(0,0,0,.26)}.browser-bar{height:26px;border-radius:10px;background:#edf1f3;margin-bottom:10px;display:flex;align-items:center;gap:5px;padding-left:10px}.browser-bar i{width:6px;height:6px;border-radius:50%;background:#a8b2b8}.browser-view{height:calc(100% - 36px);border-radius:12px;background:linear-gradient(180deg,#0d2939 0 34%,#f8f6ef 34%);position:relative;overflow:hidden}.browser-view::after{content:"1150 CLUBHOUSE";position:absolute;left:8%;top:12%;font-size:clamp(18px,3vw,36px);font-weight:900;color:white;letter-spacing:-.04em}.browser-view::before{content:"EAT · DRINK · PLAY";position:absolute;left:8%;top:44%;font-size:clamp(10px,1.4vw,15px);font-weight:850;color:var(--ink)}
.brand-palette{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}.swatch{width:82px;height:82px;border-radius:20px;border:1px solid rgba(255,255,255,.18);display:flex;align-items:end;padding:9px;font-size:9px;font-weight:850;color:white}.swatch.light{color:var(--ink)}
.personal-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.7fr);gap:40px;align-items:center}.experiment-card{min-height:460px;border-radius:32px;background:radial-gradient(circle at 72% 22%,rgba(122,167,196,.52),transparent 27%),radial-gradient(circle at 20% 76%,rgba(244,81,36,.34),transparent 30%),linear-gradient(140deg,#061927,#15394e 60%,#061927);position:relative;overflow:hidden}.experiment-card .motion-orbit{inset:14% 12% 22%}.experiment-copy h2{font-size:clamp(40px,5.5vw,76px);line-height:.96;letter-spacing:-.06em;margin:0 0 22px}.experiment-copy p{font-size:17px;color:var(--muted)}
/* Contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.78fr);gap:58px;align-items:start}.contact-grid h1{font-size:clamp(52px,8vw,112px);line-height:.88;letter-spacing:-.07em;margin:18px 0 30px}.contact-panel{padding:28px;border-radius:28px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow)}.contact-panel label{display:block;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.12em;margin:16px 0 7px}.contact-panel input,.contact-panel textarea{width:100%;border:1px solid var(--line);background:#f7f6f1;border-radius:14px;padding:13px 14px;outline:none}.contact-panel textarea{min-height:150px;resize:vertical}.contact-panel input:focus,.contact-panel textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(122,167,196,.18)}
/* CTA and footer */
.big-cta{padding:130px 0;background:var(--blue);text-align:center}.big-cta h2{font-size:clamp(52px,8vw,112px);line-height:.88;letter-spacing:-.07em;margin:0 0 30px}.site-footer{background:var(--ink);color:white;padding:26px 0}.footer-inner{display:grid;grid-template-columns:1fr auto auto;gap:30px;align-items:center}.footer-logo{width:112px}.footer-location,.footer-links{font-size:11px}.footer-links{display:flex;gap:16px;flex-wrap:wrap}.footer-links a:hover{text-decoration:underline;text-underline-offset:4px}
.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}.js .reveal.is-visible{opacity:1;transform:none}
/* Responsive */
@media(max-width:980px){
  .desktop-nav{display:none}.mobile-menu{display:block}.menu-button{display:flex}.hero-inner{grid-template-columns:1fr}.hero-note{display:none}.project-gallery{grid-template-columns:1.2fr 1fr}.project-tile:first-child{grid-row:span 2}.project-tile,.project-tile.small{min-height:430px}.section-head{grid-template-columns:130px 1fr}.services-grid{grid-template-columns:1fr 1fr}.service-card,.service-card:nth-child(n){grid-column:auto!important}.service-card:nth-child(5){grid-column:1/-1!important}.split-panel,.about-grid,.project-summary,.website-panel,.personal-feature,.contact-grid{grid-template-columns:1fr}.workflow-teaser{grid-template-columns:1fr 1fr}.workflow-step{grid-template-columns:60px 1fr}.workflow-step .tool-row{grid-column:2}.gear-grid{grid-template-columns:1fr 1fr}.photo-card:nth-child(n){grid-column:span 6}.footer-inner{grid-template-columns:1fr auto}.footer-links{grid-column:1/-1}.scroll-cue{display:none}
}
@media(max-width:680px){
  .container{width:min(calc(100% - 28px),var(--max))}.site-header{inset:10px 0 auto;padding-inline:10px}.nav-shell{min-height:56px;padding:6px 7px 6px 14px}.brand img{width:100px}.menu-button{width:42px;height:42px}
  .hero{min-height:92svh;padding:122px 0 44px}.hero-media::after{background:linear-gradient(180deg,rgba(1,8,13,.24) 0%,rgba(1,8,13,.58) 48%,rgba(1,8,13,.94) 100%)}.hero h1{font-size:clamp(49px,15.4vw,76px);max-width:100%}.hero-copy{font-size:16px}.hero-actions .btn{width:100%}
  .section{padding:78px 0}.section-head{grid-template-columns:1fr;gap:14px;margin-bottom:34px}.section-head .label{padding:0}.section-title{font-size:clamp(40px,12vw,60px)}
  .project-strip{padding:28px 0 78px}.project-strip-head{display:block}.project-strip-head p{margin-top:12px}.project-gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:10px;margin-right:-14px;scrollbar-width:none}.project-gallery::-webkit-scrollbar{display:none}.project-tile,.project-tile.small,.project-tile:first-child{flex:0 0 86%;min-height:500px;scroll-snap-align:start}.tile-content{inset:auto 20px 20px}
  .services-grid{display:grid;grid-template-columns:1fr}.service-card,.service-card:nth-child(n){min-height:280px;grid-column:auto!important}.service-card:nth-child(5){grid-column:auto!important}.service-card h3{font-size:36px}
  .split-panel{gap:34px}.portrait-card{max-width:470px}.copy-large h2{font-size:46px}.workflow-teaser{grid-template-columns:1fr}.workflow-mini{min-height:180px}.workflow-mini h3{margin-top:30px}
  .page-hero{padding:132px 0 64px}.page-hero h1{font-size:clamp(48px,14.8vw,74px)}
  .about-grid{gap:38px}.about-copy h2{font-size:46px}.workflow-human{padding:22px}.workflow-human h2{font-size:42px}.workflow-step{grid-template-columns:1fr;gap:12px;padding:22px}.workflow-step .tool-row{grid-column:auto}.workflow-step h3{font-size:34px}.gear-grid{grid-template-columns:1fr}
  .project-summary{gap:26px}.services-list{grid-template-columns:1fr}.video-grid{grid-template-columns:1fr}.video-card{padding:12px;border-radius:22px}.video-frame{border-radius:15px}.photo-grid{grid-template-columns:1fr}.photo-card:nth-child(n){grid-column:auto;min-height:430px}.photo-card.tall{min-height:520px}.website-panel{padding:22px;gap:28px}.brand-palette{gap:7px}.swatch{width:70px;height:70px}
  .contact-grid h1{font-size:clamp(48px,14vw,72px)}.contact-panel{padding:20px}.big-cta{padding:92px 0}.big-cta h2{font-size:clamp(50px,15vw,78px)}
  .footer-inner{grid-template-columns:1fr}.footer-location{order:3}.footer-links{grid-column:auto;gap:12px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}

body.menu-open{overflow:hidden;touch-action:none}
@media(max-width:980px){.mobile-nav a{position:relative;z-index:1}}


/* =========================================================
   V40 — UI DESIGN LAYER
   Editorial imagery + product interface details
   ========================================================= */
:root{
  --ui-surface:rgba(255,255,255,.72);
  --ui-surface-dark:rgba(8,28,41,.72);
  --ui-border:rgba(6,25,39,.12);
  --ui-border-light:rgba(255,255,255,.15);
  --ui-green:#8ee3b6;
  --ui-grid:rgba(6,25,39,.045);
  --ui-ease:cubic-bezier(.2,.8,.2,1);
}
body.ui-design{background-color:var(--cream);background-image:linear-gradient(var(--ui-grid) 1px,transparent 1px),linear-gradient(90deg,var(--ui-grid) 1px,transparent 1px);background-size:48px 48px}
body.ui-design::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:999;background:radial-gradient(500px circle at var(--pointer-x,50%) var(--pointer-y,20%),rgba(122,167,196,.08),transparent 55%);mix-blend-mode:multiply}
.site-header{transition:transform .35s var(--ui-ease),inset .35s var(--ui-ease)}
.site-header.is-scrolled{inset:8px 0 auto}
.nav-shell{min-height:68px;border-radius:22px;padding:8px 10px 8px 16px;background:rgba(5,22,33,.84);border-color:rgba(255,255,255,.13);box-shadow:0 12px 30px rgba(3,13,20,.24),inset 0 1px 0 rgba(255,255,255,.08)}
.nav-shell::after{content:none!important;display:none!important}
.nav-status{display:flex;align-items:center;gap:7px;color:rgba(255,255,255,.64);font-size:10px;font-weight:800;white-space:nowrap;border-left:1px solid rgba(255,255,255,.12);padding-left:14px}
.status-dot{width:7px;height:7px;border-radius:50%;background:var(--ui-green);box-shadow:0 0 0 4px rgba(142,227,182,.12),0 0 14px rgba(142,227,182,.45);flex:0 0 auto}
.desktop-nav a,.lang-button{border-radius:10px;padding:10px 12px}
.desktop-nav a:hover,.desktop-nav a[aria-current="page"],.lang-button:hover{background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.nav-cta{border-radius:12px!important;box-shadow:0 5px 15px rgba(0,0,0,.16)}
.ui-page-meta{display:inline-flex;align-items:center;gap:10px;margin:14px 0 2px;padding:8px 11px;border:1px solid rgba(255,255,255,.16);border-radius:11px;background:rgba(7,25,37,.28);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.74)}
.page-hero:not(.dark) .ui-page-meta{background:rgba(255,255,255,.62);border-color:var(--line);color:var(--muted)}
.ui-separator{width:1px;height:12px;background:currentColor;opacity:.25}
.hero{background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:48px 48px}
.hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,transparent 0 7.5%,rgba(255,255,255,.07) 7.5% calc(7.5% + 1px),transparent calc(7.5% + 1px) 92.5%,rgba(255,255,255,.07) 92.5% calc(92.5% + 1px),transparent calc(92.5% + 1px))}
.hero h1{max-width:930px;text-wrap:balance}
.hero-note{padding:0;border-radius:22px;background:rgba(5,22,33,.72);border-color:rgba(255,255,255,.15);box-shadow:0 24px 70px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.07);overflow:hidden}
.ui-panel-head,.tile-ui-bar,.media-ui-bar,.video-ui-bar,.form-ui-bar{display:flex;align-items:center;gap:10px;min-height:39px;padding:0 13px;border-bottom:1px solid var(--ui-border-light);font-size:9px;font-weight:850;letter-spacing:.13em;color:rgba(255,255,255,.5)}
.ui-dots{display:flex;gap:5px;margin-right:3px}.ui-dots i{display:block;width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.25)}.ui-dots i:nth-child(1){background:#ff766e}.ui-dots i:nth-child(2){background:#ffd166}.ui-dots i:nth-child(3){background:#72d69a}
.ui-panel-title{display:block;padding:20px 18px 14px;font-size:20px;font-weight:850;line-height:1.05;letter-spacing:-.03em}
.ui-panel-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 18px;border-top:1px solid rgba(255,255,255,.08);font-size:11px;color:rgba(255,255,255,.54)}.ui-panel-row>span:last-child{color:white;font-weight:800;text-align:right}
.ui-panel-foot{display:flex;justify-content:space-between;padding:14px 18px;background:rgba(255,255,255,.06);font-size:10px;font-weight:800;color:rgba(255,255,255,.72)}
.project-strip{position:relative;background:#071927;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:48px 48px}
.project-tile{border-radius:22px;box-shadow:0 22px 60px rgba(0,0,0,.22);transition:transform .45s var(--ui-ease),border-color .3s,box-shadow .45s var(--ui-ease)}
.project-tile:hover{transform:translateY(-7px);border-color:rgba(255,255,255,.28);box-shadow:0 34px 80px rgba(0,0,0,.32)}
.tile-ui-bar{position:absolute;z-index:4;inset:12px 12px auto;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(4,16,24,.58);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.tile-ui-bar .ui-open{margin-left:auto;font-size:13px;color:white}
.tile-content{padding:18px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(4,16,24,.58);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.tile-content h3{font-size:clamp(29px,3.2vw,48px)}
.services-grid{gap:14px}
.service-card{border-radius:22px;background:rgba(255,255,255,.7);box-shadow:0 12px 30px rgba(6,25,39,.055),inset 0 1px 0 white;transition:transform .4s var(--ui-ease),box-shadow .4s var(--ui-ease),border-color .3s;isolation:isolate}
.service-card:hover{transform:translateY(-5px);border-color:rgba(122,167,196,.52);box-shadow:0 24px 50px rgba(6,25,39,.1),inset 0 1px 0 white}
.service-card::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(300px circle at var(--mx,75%) var(--my,15%),rgba(122,167,196,.18),transparent 45%);opacity:0;transition:opacity .3s}.service-card:hover::after{opacity:1}
.service-symbol{position:absolute;right:22px;top:20px;display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.75);font-size:11px;font-weight:900;letter-spacing:.08em;box-shadow:0 8px 22px rgba(6,25,39,.08)}
.service-index{padding:7px 10px;border-radius:9px;background:rgba(6,25,39,.055);width:max-content}
.tag{border-radius:9px;background:rgba(255,255,255,.82)}
.section-dark{background:#061927;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:48px 48px}
.workflow-teaser{position:relative;gap:12px}
.workflow-teaser::before{content:"";position:absolute;left:8%;right:8%;top:27px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22) 10% 90%,transparent)}
.workflow-mini{position:relative;border-radius:20px;background:rgba(255,255,255,.055);box-shadow:inset 0 1px 0 rgba(255,255,255,.06);transition:transform .35s var(--ui-ease),background .35s}
.workflow-mini:hover{transform:translateY(-4px);background:rgba(255,255,255,.09)}
.workflow-node{position:absolute;left:22px;top:18px;width:19px;height:19px;border:1px solid rgba(255,255,255,.24);border-radius:7px;background:#0b2a3e;display:grid;place-items:center;z-index:2}.workflow-node i{width:6px;height:6px;border-radius:50%;background:var(--ui-green);box-shadow:0 0 12px rgba(142,227,182,.5)}
.workflow-mini>span{margin-left:30px}
.portrait-card{position:relative;border:1px solid var(--line);border-radius:24px;padding:10px 10px 44px;background:rgba(255,255,255,.72);box-shadow:0 24px 60px rgba(6,25,39,.1)}
.portrait-card img{border-radius:16px}
.portrait-caption{position:absolute;left:18px;right:18px;bottom:13px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:9px;font-weight:850;letter-spacing:.12em;color:var(--muted)}
.page-hero{position:relative;overflow:hidden;background-image:linear-gradient(var(--ui-grid) 1px,transparent 1px),linear-gradient(90deg,var(--ui-grid) 1px,transparent 1px);background-size:48px 48px}
.page-hero::after{content:"";position:absolute;width:520px;height:520px;border-radius:50%;right:-180px;top:-200px;background:radial-gradient(circle,rgba(122,167,196,.2),transparent 68%);pointer-events:none}
.page-hero.dark{background-color:var(--ink);background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:48px 48px}
.project-hero-media{position:relative;border-radius:24px;padding-top:39px;background:#0a2537;box-shadow:0 28px 70px rgba(0,0,0,.25)}
.project-hero-media > .media-ui-bar{position:absolute;left:0;right:0;top:0;color:rgba(255,255,255,.54)}
.project-hero-media picture,.project-hero-media img{border-radius:0 0 18px 18px;overflow:hidden}
.project-summary>div{padding:28px;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.64);box-shadow:0 14px 35px rgba(6,25,39,.055)}
.service-check{border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.8)}
.video-card{position:relative;padding:52px 14px 16px;border-radius:22px;background:rgba(255,255,255,.74);box-shadow:0 18px 50px rgba(6,25,39,.08),inset 0 1px 0 white;overflow:hidden}
.video-ui-bar{position:absolute;inset:0 0 auto;color:var(--muted);border-bottom-color:var(--line);background:rgba(247,248,246,.88)}
.video-ui-bar .ui-dots i{opacity:.85}.ui-live{margin-left:auto;color:#268c5a;background:rgba(38,140,90,.1);border:1px solid rgba(38,140,90,.18);padding:4px 7px;border-radius:7px}
.video-frame{border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.16)}
.photo-card{position:relative;border-radius:22px;box-shadow:0 16px 38px rgba(6,25,39,.08);transition:transform .45s var(--ui-ease)}.photo-card:hover{transform:translateY(-5px)}
.website-panel{border-radius:24px;border:1px solid rgba(255,255,255,.13);box-shadow:0 28px 70px rgba(6,25,39,.18)}
.website-mock{border-radius:16px;transform:none}
.workflow-human,.workflow-step{border-radius:22px}
.workflow-step{position:relative;overflow:hidden;transition:background .3s,border-color .3s}.workflow-step:hover{background:rgba(255,255,255,.1);border-color:rgba(122,167,196,.35)}
.tool-chip{border-radius:10px;border:1px solid rgba(255,255,255,.09)}
.gear-card{border-radius:18px;background:rgba(255,255,255,.72);box-shadow:0 12px 28px rgba(6,25,39,.05)}
.contact-panel{position:relative;padding-top:60px;border-radius:22px;background:rgba(255,255,255,.74);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.form-ui-bar{position:absolute;inset:0 0 auto;color:var(--muted);border-bottom-color:var(--line);background:rgba(247,248,246,.88)}
.contact-panel input,.contact-panel textarea{border-radius:11px;background:rgba(255,255,255,.82)}
.btn{border-radius:12px;position:relative;overflow:hidden}.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.28) 50%,transparent 75%);transform:translateX(-120%);transition:transform .55s var(--ui-ease)}.btn:hover::after{transform:translateX(120%)}
.big-cta{position:relative;overflow:hidden;background:linear-gradient(135deg,#89b7d2,#6b9ebd);background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(135deg,#89b7d2,#6b9ebd);background-size:48px 48px,48px 48px,auto}
.site-footer{border-top:1px solid rgba(255,255,255,.1)}
@media(max-width:1100px){.nav-status,.nav-shell::after{display:none}}
@media(max-width:980px){.workflow-teaser::before{display:none}.nav-shell{border-radius:18px}}
@media(max-width:680px){
  body.ui-design{background-size:32px 32px}
  .ui-page-meta{max-width:100%;font-size:9px;gap:7px;white-space:normal}
  .hero::before{display:none}
  .nav-shell{border-radius:17px}
  .tile-ui-bar{inset:10px 10px auto}
  .tile-content{padding:16px;border-radius:15px}
  .project-tile{border-radius:19px}
  .service-card{border-radius:18px}
  .service-symbol{width:42px;height:42px;border-radius:12px}
  .portrait-card{border-radius:20px;padding:8px 8px 40px}
  .portrait-caption{left:14px;right:14px;font-size:8px}
  .project-summary>div{padding:20px;border-radius:18px}
  .project-hero-media{padding-top:38px;border-radius:19px}
  .video-card{border-radius:18px}
  .workflow-human,.workflow-step{border-radius:18px}
  .contact-panel{border-radius:18px}
}

/* Adobe Fonts — DVSTUDIO Web Project uhk2hnn
   Modulator Variable is the primary display system. Subway Berlin remains a compact accent. */
:root{
  --modulator-hero-weight:640;
  --modulator-section-weight:560;
  --modulator-card-weight:470;
  --modulator-card-hover-weight:560;
  --tracking-modulator-hero:.009em;
  --tracking-modulator-section:.008em;
  --tracking-modulator-card:.004em;
  --tracking-subway-label:.10em;
}

:where(h1,h2,h3,.section-title,.copy-large h2,.about-copy h2,.project-summary h2,.website-panel h2,.experiment-copy h2,.workflow-human h2,.workflow-step h3,.tile-content h3,.service-card h3,.video-card h3,.ui-panel-title){
  font-family:var(--font-brand);
  font-style:normal;
  font-synthesis:none;
  font-feature-settings:"kern" 1,"calt" 1;
  text-wrap:balance;
}
:where(body,p,li,input,textarea,button,.desktop-nav,.mobile-nav,.btn,.tag,.tile-kicker,.eyebrow,.label,.tool-chip,.footer-links,.footer-location,.nav-status,.ui-page-meta,.ui-panel-row,.ui-panel-foot,.video-meta,.external-link){
  font-family:var(--font-ui);
}

/* Subway Berlin: only compact signals, never paragraphs, navigation or long headings. */
:where(.service-symbol,.service-index,.workflow-step .num,.workflow-mini>span,.project-number){
  font-family:var(--font-accent);
  font-style:normal;
  font-weight:400;
  font-synthesis:none;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.service-symbol{line-height:1}
.service-index,.workflow-step .num,.workflow-mini>span{letter-spacing:.08em}
.brand-label{
  font-family:var(--font-accent)!important;
  font-style:normal;
  font-weight:400!important;
  font-synthesis:none;
  letter-spacing:var(--tracking-subway-label)!important;
  text-transform:uppercase;
}

/* Modulator Variable hierarchy: expressive in the hero, calmer and lighter deeper in the page. */
.hero h1,.page-hero h1,.contact-grid h1,.big-cta h2{
  font-weight:var(--modulator-hero-weight);
  font-variation-settings:"wght" var(--modulator-hero-weight);
  letter-spacing:var(--tracking-modulator-hero);
  line-height:.90;
}
.hero h1 em{
  font-family:var(--font-brand);
  font-style:normal;
  font-weight:350;
  font-variation-settings:"wght" 350;
  letter-spacing:.008em;
}
.section-title,
.copy-large h2,
.about-copy h2,
.project-summary h2,
.website-panel h2,
.experiment-copy h2,
.workflow-human h2,
.project-strip-head h2{
  font-weight:var(--modulator-section-weight);
  font-variation-settings:"wght" var(--modulator-section-weight);
  letter-spacing:var(--tracking-modulator-section);
  line-height:.94;
}
.tile-content h3,
.service-card h3,
.video-card h3,
.workflow-step h3,
.gear-card h3,
.ui-panel-title,
.workflow-mini h3{
  font-weight:var(--modulator-card-weight);
  font-variation-settings:"wght" var(--modulator-card-weight);
  letter-spacing:var(--tracking-modulator-card);
  transition:font-variation-settings .32s ease,letter-spacing .32s ease;
}

/* A subtle variable-axis response for pointer devices; mobile stays completely stable. */
@media(hover:hover) and (pointer:fine){
  .project-tile:hover .tile-content h3,
  .service-card:hover h3,
  .video-card:hover h3,
  .workflow-step:hover h3{
    font-variation-settings:"wght" var(--modulator-card-hover-weight);
    letter-spacing:.012em;
  }
}

html[data-adobe-fonts="ready"] body{font-kerning:normal;font-optical-sizing:auto}

@media(max-width:680px){
  :root{
    --modulator-hero-weight:600;
    --modulator-section-weight:520;
    --modulator-card-weight:450;
    --modulator-card-hover-weight:520;
    --tracking-modulator-hero:.006em;
    --tracking-modulator-section:.005em;
    --tracking-modulator-card:.002em;
    --tracking-subway-label:.085em;
  }
  .hero h1,.page-hero h1,.contact-grid h1,.big-cta h2{line-height:.92}
}



/* V45 — Mixed display signature: Subway Berlin as a compact mark, Modulator as the readable title. */
.mixed-brand-label{
  display:inline-flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:.42em;
  font-size:12px;
  line-height:1;
  letter-spacing:0!important;
  text-transform:none!important;
  color:inherit;
}
.mixed-brand-label .mixed-brand-mark{
  font-family:var(--font-accent);
  font-weight:400;
  font-synthesis:none;
  font-size:1em;
  letter-spacing:var(--tracking-subway-label);
  text-transform:uppercase;
  white-space:nowrap;
}
.mixed-brand-label .mixed-brand-separator{
  font-family:var(--font-ui);
  font-size:.92em;
  font-weight:500;
  letter-spacing:0;
  opacity:.44;
}
.mixed-brand-label .mixed-brand-title{
  font-family:var(--font-brand);
  font-weight:var(--modulator-section-weight);
  font-variation-settings:"wght" var(--modulator-section-weight);
  font-synthesis:none;
  font-size:1.72em;
  line-height:.82;
  letter-spacing:.018em;
  text-transform:none;
  white-space:nowrap;
}
.project-strip .mixed-brand-label .mixed-brand-title{color:rgba(255,255,255,.92)}
.project-strip .mixed-brand-label .mixed-brand-mark{color:var(--blue-soft)}

/* Bold hierarchy with a slightly tighter rhythm so Modulator stays elegant. */
.hero h1,.page-hero h1,.contact-grid h1,.big-cta h2{font-optical-sizing:auto}
.section-title,.project-strip-head h2,.copy-large h2,.project-summary h2,.experiment-copy h2,.website-panel h2{font-optical-sizing:auto}

@media(max-width:680px){
  .mixed-brand-label{gap:.34em;font-size:10px}
  .mixed-brand-label .mixed-brand-title{font-size:1.58em;letter-spacing:.012em}
}


/* =========================================================
   V46 — BALANCED TYPOGRAPHY + MIXED SUBWAY ACCENTS
   Clear H1/H2/H3 hierarchy; Subway is used as a deliberate
   editorial accent while Modulator remains the readable base.
   ========================================================= */
:root{
  --modulator-hero-weight:510;
  --modulator-page-weight:470;
  --modulator-section-weight:420;
  --modulator-card-weight:355;
  --modulator-card-hover-weight:410;
  --tracking-modulator-hero:.004em;
  --tracking-modulator-section:.006em;
  --tracking-modulator-card:.004em;
  --tracking-subway-label:.095em;
}

/* Level 1 — restrained, premium, never billboard-sized. */
.hero h1{
  max-width:850px;
  font-size:clamp(44px,5.9vw,84px);
  font-weight:465;
  font-variation-settings:"wght" 465;
  line-height:.94;
  letter-spacing:.003em;
}
.page-hero h1{
  max-width:960px;
  font-size:clamp(42px,5.15vw,72px);
  font-weight:450;
  font-variation-settings:"wght" 450;
  line-height:.96;
  letter-spacing:.004em;
}
.contact-grid h1{
  font-size:clamp(40px,5.15vw,72px);
  font-weight:450;
  font-variation-settings:"wght" 450;
  line-height:.96;
  letter-spacing:.004em;
}
.big-cta h2{
  font-size:clamp(40px,5vw,70px);
  font-weight:465;
  font-variation-settings:"wght" 465;
  line-height:.95;
  letter-spacing:.004em;
}

/* Level 2 — section statements, visibly below H1. */
.section-title{
  font-size:clamp(32px,3.8vw,52px);
  font-weight:420;
  font-variation-settings:"wght" 420;
  line-height:.98;
  letter-spacing:.006em;
  max-width:820px;
}
.project-strip-head h2{
  font-size:clamp(27px,2.7vw,38px);
  font-weight:430;
  font-variation-settings:"wght" 430;
  line-height:1.02;
  letter-spacing:.006em;
}
.copy-large h2,.about-copy h2,.project-summary h2,.website-panel h2,.experiment-copy h2{
  font-size:clamp(30px,3.6vw,50px);
  font-weight:420;
  font-variation-settings:"wght" 420;
  line-height:.99;
  letter-spacing:.006em;
}
.workflow-human h2{
  font-size:clamp(29px,3.3vw,46px);
  font-weight:410;
  font-variation-settings:"wght" 410;
  line-height:1;
  letter-spacing:.006em;
}

/* Level 3 — card and module titles. */
.tile-content h3{
  font-size:clamp(25px,2.5vw,36px);
  font-weight:375;
  font-variation-settings:"wght" 375;
  line-height:1.02;
  letter-spacing:.005em;
}
.service-card h3{
  font-size:clamp(24px,2.35vw,34px);
  font-weight:365;
  font-variation-settings:"wght" 365;
  line-height:1.02;
  letter-spacing:.005em;
}
.video-card h3{
  font-size:clamp(22px,2vw,30px);
  font-weight:365;
  font-variation-settings:"wght" 365;
  line-height:1.04;
  letter-spacing:.004em;
}
.workflow-step h3{
  font-size:clamp(23px,2.3vw,32px);
  font-weight:370;
  font-variation-settings:"wght" 370;
  line-height:1.03;
  letter-spacing:.004em;
}
.ui-panel-title{font-size:18px;font-weight:390;font-variation-settings:"wght" 390;letter-spacing:.005em}

/* Subway Berlin becomes an editorial voice inside selected titles. */
.type-accent,.hero h1 em{
  display:inline-block;
  font-family:var(--font-accent);
  font-style:normal;
  font-weight:400;
  font-synthesis:none;
  font-variation-settings:normal;
  font-size:.90em;
  line-height:.88;
  letter-spacing:.026em;
  text-transform:none;
  color:var(--blue);
}
.hero h1 em,.page-hero.dark .type-accent,.section-dark .type-accent,.project-strip .type-accent{color:var(--blue-soft)}
.big-cta .type-accent{color:var(--ink)}

/* Short functional headings are ideal places for Subway. */
.workflow-mini h3,.gear-card h3{
  font-family:var(--font-accent);
  font-style:normal;
  font-weight:400;
  font-synthesis:none;
  font-variation-settings:normal;
  letter-spacing:.035em;
  line-height:.96;
}
.workflow-mini h3{font-size:clamp(23px,2.3vw,31px)}
.gear-card h3{font-size:15px;letter-spacing:.065em;text-transform:uppercase}

/* Selected-work signature: every piece has a distinct typographic role. */
.mixed-brand-label{gap:.40em;font-size:11px}
.mixed-brand-label .mixed-brand-mark{font-size:1.08em;letter-spacing:.10em}
.mixed-brand-label .mixed-brand-title{
  display:inline-flex;
  align-items:baseline;
  gap:.27em;
  font-size:1.58em;
  font-weight:400;
  font-variation-settings:"wght" 400;
  line-height:.9;
  letter-spacing:0;
}
.mixed-brand-label .mixed-modulator{
  font-family:var(--font-brand);
  font-weight:400;
  font-variation-settings:"wght" 400;
  letter-spacing:.012em;
}
.mixed-brand-label .mixed-subway{
  margin-left:.12em;
  font-family:var(--font-accent);
  font-weight:400;
  font-variation-settings:normal;
  font-size:.90em;
  letter-spacing:.026em;
  color:var(--blue-soft);
}

@media(hover:hover) and (pointer:fine){
  .project-tile:hover .tile-content h3,.service-card:hover h3,.video-card:hover h3,.workflow-step:hover h3{
    font-variation-settings:"wght" 410;
    letter-spacing:.008em;
  }
}

@media(max-width:680px){
  .hero h1{font-size:clamp(38px,10.5vw,52px);line-height:.96;max-width:100%}
  .page-hero h1{font-size:clamp(38px,10vw,52px);line-height:.97}
  .contact-grid h1{font-size:clamp(37px,9.8vw,50px);line-height:.98}
  .big-cta h2{font-size:clamp(38px,10vw,52px);line-height:.97}
  .section-title{font-size:clamp(31px,8.8vw,42px);line-height:1}
  .project-strip-head h2{font-size:clamp(28px,8.4vw,38px)}
  .copy-large h2,.about-copy h2,.project-summary h2,.website-panel h2,.experiment-copy h2{font-size:clamp(32px,9.3vw,45px)}
  .workflow-human h2{font-size:clamp(31px,8.9vw,43px)}
  .service-card h3{font-size:clamp(28px,8.3vw,35px)}
  .tile-content h3{font-size:clamp(28px,8.6vw,38px)}
  .workflow-step h3{font-size:clamp(26px,7.8vw,33px)}
  .type-accent,.hero h1 em{font-size:.88em;letter-spacing:.02em}
  .mixed-brand-label{font-size:10px;gap:.34em}
  .mixed-brand-label .mixed-brand-title{font-size:1.42em;gap:.22em}
}


/* Adobe gallery components retained for the Lightroom integration. */
.section-adobe{position:relative;overflow:hidden;background:#eaf1f5;color:var(--ink)}
.section-adobe:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 10%,rgba(105,148,198,.22),transparent 34%),linear-gradient(rgba(6,25,39,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(6,25,39,.035) 1px,transparent 1px);background-size:auto,42px 42px,42px 42px;pointer-events:none}
.section-adobe .container{position:relative}
.adobe-ecosystem-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.adobe-ecosystem-card,.adobe-project-card{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid rgba(6,25,39,.12);border-radius:28px;background:rgba(255,255,255,.74);box-shadow:0 24px 80px rgba(6,25,39,.08);overflow:hidden}
.adobe-ecosystem-card{min-height:430px;padding:28px}
.adobe-ecosystem-card:before{content:"";position:absolute;right:-10%;bottom:-28%;width:290px;aspect-ratio:1;border-radius:50%;filter:blur(4px);opacity:.24;background:var(--blue)}
.adobe-ecosystem-card.lightroom:before{background:#38a5ff}
.adobe-card-top{display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative;z-index:1}
.adobe-service-mark,.adobe-project-icon{display:grid;place-items:center;font-family:var(--font-accent);font-weight:400;letter-spacing:.02em;color:white;background:var(--ink);border-radius:16px}
.adobe-service-mark{width:58px;height:58px;font-size:25px}.adobe-project-icon{width:64px;height:64px;font-size:26px;flex:none}
.adobe-ecosystem-card.lightroom .adobe-service-mark,.adobe-project-card.lightroom .adobe-project-icon{background:#153bff}
.adobe-connection-state{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid rgba(6,25,39,.12);border-radius:999px;font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.adobe-connection-state i{width:7px;height:7px;border-radius:50%;background:#c89042}.is-connected .adobe-connection-state i{background:#34b56f;box-shadow:0 0 0 5px rgba(52,181,111,.12)}
.adobe-card-index{position:relative;z-index:1;margin-top:auto;padding-top:70px;font-size:11px;font-weight:800;letter-spacing:.16em;color:rgba(6,25,39,.55)}
.adobe-ecosystem-card h3,.adobe-project-card h3{position:relative;z-index:1;margin:12px 0 12px;font-family:var(--font-brand);font-weight:390;font-variation-settings:"wght" 390;letter-spacing:.005em;line-height:1}
.adobe-ecosystem-card h3{font-size:clamp(31px,3.2vw,47px)}
.adobe-ecosystem-card p,.adobe-project-card p{position:relative;z-index:1;max-width:58ch;color:var(--muted)}
.adobe-card-link{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px;padding:15px 17px;border-radius:15px;background:var(--ink);color:white;font-size:13px;font-weight:800;text-decoration:none;transition:transform .25s,box-shadow .25s,opacity .25s}
.adobe-card-link[aria-disabled="true"]{cursor:default;opacity:.56;background:rgba(6,25,39,.72)}
.adobe-card-link:not([aria-disabled="true"]):hover{transform:translateY(-2px);box-shadow:0 15px 34px rgba(6,25,39,.16)}
.ready-label{display:none}.is-connected .ready-label{display:inline}.is-connected .pending-label{display:none}
.section-adobe-project{background:var(--paper)}
.adobe-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.adobe-project-grid:has(.adobe-project-card:only-child){grid-template-columns:minmax(0,760px)}
.adobe-project-card{display:grid;grid-template-columns:auto 1fr;gap:22px;padding:24px;min-height:300px;align-items:start}
.adobe-project-card .adobe-card-index{margin:0;padding:1px 0 0}.adobe-project-card h3{font-size:clamp(27px,2.6vw,38px)}
.adobe-project-card .adobe-card-link{grid-column:1/-1;margin-top:auto}
.lightroom-embed-shell{margin-top:28px;border-radius:24px;overflow:hidden;background:var(--ink);box-shadow:0 24px 80px rgba(6,25,39,.16)}
.lightroom-embed-shell [data-adobe-embed-target]{height:min(76vh,800px)}
.lightroom-embed-shell iframe{display:block;width:100%;height:100%;border:0;background:white}
@media(max-width:780px){.adobe-ecosystem-grid,.adobe-project-grid{grid-template-columns:1fr}.adobe-ecosystem-card{min-height:390px;padding:22px}.adobe-card-index{padding-top:54px}.adobe-project-card{grid-template-columns:auto 1fr;padding:20px}.lightroom-embed-shell [data-adobe-embed-target]{height:70vh}}
@media(max-width:480px){.adobe-ecosystem-card h3{font-size:clamp(29px,9vw,38px)}.adobe-service-mark{width:52px;height:52px}.adobe-connection-state{font-size:9px}.adobe-project-card{grid-template-columns:1fr}.adobe-project-icon{width:54px;height:54px}.adobe-project-card .adobe-card-link{grid-column:1}}


/* =========================================================
   V48 — OPTICAL TYPE SCALE + LIGHTROOM WORK PAGE
   Modulator and Subway use different optical ratios.
   ========================================================= */
:root{
  --mod-h1-weight:340;
  --mod-h2-weight:315;
  --mod-h3-weight:285;
  --subway-h1-ratio:1.20;
  --subway-h2-ratio:1.14;
  --subway-h3-ratio:1.08;
}
.hero h1{
  max-width:760px;
  font-size:clamp(39px,4.25vw,68px);
  font-weight:var(--mod-h1-weight);
  font-variation-settings:"wght" var(--mod-h1-weight);
  line-height:.98;
  letter-spacing:.002em;
}
.page-hero h1,.contact-grid h1{
  max-width:860px;
  font-size:clamp(38px,4vw,64px);
  font-weight:var(--mod-h1-weight);
  font-variation-settings:"wght" var(--mod-h1-weight);
  line-height:.99;
  letter-spacing:.003em;
}
.big-cta h2{
  font-size:clamp(38px,4vw,64px);
  font-weight:var(--mod-h1-weight);
  font-variation-settings:"wght" var(--mod-h1-weight);
  line-height:.98;
}
.section-title,.copy-large h2,.about-copy h2,.project-summary h2,.website-panel h2,.experiment-copy h2,.workflow-human h2{
  font-size:clamp(30px,3vw,46px);
  font-weight:var(--mod-h2-weight);
  font-variation-settings:"wght" var(--mod-h2-weight);
  line-height:1.01;
  letter-spacing:.004em;
}
.project-strip-head h2{
  font-size:clamp(28px,2.55vw,40px);
  font-weight:var(--mod-h2-weight);
  font-variation-settings:"wght" var(--mod-h2-weight);
  line-height:1.02;
}
.tile-content h3,.service-card h3,.video-card h3,.workflow-step h3,.adobe-ecosystem-card h3,.adobe-project-card h3,.lightroom-connect-card h3{
  font-size:clamp(23px,2vw,31px);
  font-weight:var(--mod-h3-weight);
  font-variation-settings:"wght" var(--mod-h3-weight);
  line-height:1.04;
  letter-spacing:.003em;
}
/* Subway's visual cap height is smaller; compensate optically, not numerically. */
.type-accent,.hero h1 em{
  font-size:var(--subway-h2-ratio);
  line-height:.70;
  letter-spacing:.018em;
  vertical-align:-.055em;
  transform:none;
}
.hero h1 em,.page-hero h1 .type-accent,.contact-grid h1 .type-accent,.big-cta .type-accent{
  font-size:var(--subway-h1-ratio);
  vertical-align:-.075em;
}
.tile-content h3 .type-accent,.video-card h3 .type-accent,.type-accent-project{
  font-size:var(--subway-h3-ratio);
  vertical-align:-.045em;
}
.mixed-brand-label{align-items:center;gap:.38em;font-size:11px}
.mixed-brand-label .mixed-brand-mark{font-size:1.30em;line-height:.72;letter-spacing:.09em}
.mixed-brand-label .mixed-brand-title{font-size:1.42em;line-height:.9;gap:.22em}
.mixed-brand-label .mixed-subway{font-size:1.13em;line-height:.72;vertical-align:-.06em;letter-spacing:.018em}

/* Work/archive navigation and panels */
.work-archive-link,.work-page-cta{
  display:flex;align-items:center;justify-content:space-between;gap:28px;
  margin-top:28px;padding:24px;border:1px solid rgba(255,255,255,.14);
  border-radius:24px;background:rgba(255,255,255,.06);backdrop-filter:blur(18px)
}
.work-archive-link h3,.work-page-cta h2{margin:8px 0 0;font-family:var(--font-brand);font-weight:var(--mod-h3-weight);font-variation-settings:"wght" var(--mod-h3-weight);font-size:clamp(24px,2vw,32px);line-height:1.03}
.work-archive-index{font-family:var(--font-accent);font-size:12px;letter-spacing:.08em;color:var(--blue-soft)}
.section-work-link{background:var(--mist)}
.work-page-cta{background:white;border-color:var(--line)}
.work-page-cta .mixed-brand-mark,.work-page-cta .mixed-subway{color:var(--blue)}
.work-hero{padding-bottom:96px}
.work-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}
.work-video-grid .landscape-card{grid-column:1/-1}
.work-video-grid .video-card{height:auto}
.work-video-grid .video-frame.portrait{max-width:440px;margin-inline:auto;width:100%}
.section-lightroom-gallery{background:#eaf1f5;color:var(--ink);position:relative;overflow:hidden}
.section-lightroom-gallery:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 12% 8%,rgba(105,148,198,.22),transparent 34%),linear-gradient(rgba(6,25,39,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(6,25,39,.035) 1px,transparent 1px);background-size:auto,42px 42px,42px 42px;pointer-events:none}
.section-lightroom-gallery .container{position:relative}
.native-gallery{display:grid;grid-template-columns:1.4fr .8fr;grid-template-rows:340px 250px;gap:16px}
.gallery-shot{position:relative;overflow:hidden;border-radius:24px;background:var(--ink);min-height:0}
.gallery-shot-wide{grid-row:1/-1}.gallery-shot-tall{grid-column:2}
.gallery-shot img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.gallery-shot:hover img{transform:scale(1.025)}
.gallery-shot figcaption{position:absolute;left:14px;right:14px;bottom:14px;display:flex;justify-content:space-between;gap:12px;padding:11px 13px;border-radius:14px;background:rgba(6,25,39,.72);backdrop-filter:blur(16px);color:white;font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.gallery-shot figcaption span:first-child{font-family:var(--font-accent);font-size:1.18em;color:var(--blue-soft)}
.lightroom-connect-card{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:start;margin-top:24px;padding:24px;border:1px solid rgba(6,25,39,.12);border-radius:24px;background:rgba(255,255,255,.72);box-shadow:0 24px 70px rgba(6,25,39,.08)}
.lightroom-connect-card .adobe-card-index{padding:0;margin:0}
.lightroom-connect-card h3{margin:8px 0 8px}
.lightroom-connect-card p{margin:0;color:var(--muted);max-width:62ch}
.lightroom-connect-card[hidden]{display:none}

@media(max-width:780px){
  .hero h1{font-size:clamp(37px,9.8vw,50px);max-width:100%}
  .page-hero h1,.contact-grid h1{font-size:clamp(36px,9.4vw,49px)}
  .section-title,.copy-large h2,.about-copy h2,.project-summary h2,.website-panel h2,.experiment-copy h2,.workflow-human h2{font-size:clamp(29px,7.9vw,40px)}
  .project-strip-head h2{font-size:clamp(28px,7.6vw,38px)}
  .tile-content h3,.service-card h3,.video-card h3,.workflow-step h3,.lightroom-connect-card h3{font-size:clamp(23px,6.8vw,31px)}
  .type-accent,.hero h1 em{--subway-h1-ratio:1.14;--subway-h2-ratio:1.10;--subway-h3-ratio:1.06}
  .work-archive-link,.work-page-cta{align-items:flex-start;flex-direction:column;padding:20px}
  .work-video-grid{grid-template-columns:1fr}.work-video-grid .landscape-card{grid-column:auto}
  .native-gallery{grid-template-columns:1fr;grid-template-rows:280px 360px 260px}
  .gallery-shot-wide,.gallery-shot-tall{grid-column:auto;grid-row:auto}
  .lightroom-connect-card{grid-template-columns:1fr;padding:20px}
}


/* =========================================================
   V49 — FIVE VISUAL WORLDS / OPTICAL FONT PAIRING
   ========================================================= */
html{scroll-padding-top:110px}
.five-worlds-hero h1{max-width:820px!important;font-size:clamp(42px,5.2vw,78px)!important;line-height:.93!important;font-variation-settings:"wght" 360!important;font-weight:360!important;letter-spacing:-.008em!important}
.subway-lead{display:inline-block;font-family:var(--font-accent);font-size:.72em;line-height:.78;letter-spacing:.035em;color:var(--blue-soft);vertical-align:.08em;transform:rotate(-1.5deg);margin-right:.08em;font-variation-settings:normal}
.world-section .section-title{font-size:clamp(34px,3.5vw,54px);font-variation-settings:"wght" 330;font-weight:330;max-width:840px}
.world-section .section-title .type-accent,.visual-worlds-nav .section-title .type-accent{font-size:.78em;line-height:.78;vertical-align:.015em;letter-spacing:.025em}
.visual-worlds-nav .section-title{font-size:clamp(34px,3.4vw,52px);font-variation-settings:"wght" 330;font-weight:330}
.worlds-bento{display:grid;grid-template-columns:1.45fr 1fr 1fr;grid-template-rows:minmax(250px,1fr) minmax(220px,.82fr);gap:16px}
.world-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:220px;padding:22px;border:1px solid rgba(255,255,255,.14);border-radius:26px;overflow:hidden;color:white;background:rgba(255,255,255,.055);transition:transform .3s ease,border-color .3s ease,background .3s ease}
.world-card:before{content:"";position:absolute;inset:0;opacity:.62;transition:transform .6s ease,opacity .3s ease;pointer-events:none}
.world-card>*{position:relative;z-index:1}.world-card:hover{transform:translateY(-4px);border-color:rgba(217,236,255,.42);background:rgba(255,255,255,.09)}.world-card:hover:before{transform:scale(1.035);opacity:.78}
.world-video{grid-row:1/-1;min-height:490px;background:#07131f}.world-video:before{background:linear-gradient(180deg,rgba(6,25,39,.06),rgba(6,25,39,.93)),url('../assets/images/1150-terrace-1280.webp') center/cover no-repeat}.world-photo:before{background:linear-gradient(180deg,rgba(6,25,39,.15),rgba(6,25,39,.9)),url('../assets/images/1370-wine-960.webp') center/cover no-repeat}.world-motion:before{background:radial-gradient(circle at 74% 20%,#6994c6 0 9%,transparent 10%),radial-gradient(circle at 25% 70%,#b14a1d 0 13%,transparent 14%),linear-gradient(135deg,#07131f,#173d51)}.world-graphic:before{background:repeating-linear-gradient(90deg,rgba(217,236,255,.2) 0 1px,transparent 1px 42px),repeating-linear-gradient(rgba(217,236,255,.14) 0 1px,transparent 1px 42px),linear-gradient(135deg,#0a2231,#061927)}.world-web:before{background:linear-gradient(135deg,rgba(105,148,198,.32),transparent 50%),linear-gradient(145deg,#f3f0e8 0 38%,#07131f 39% 100%)}
.world-index{font-family:var(--font-accent);font-size:clamp(26px,3vw,42px);line-height:.7;color:var(--blue-soft);letter-spacing:.05em}.world-kicker{display:block;margin-bottom:9px;font-size:10px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.66)}.world-card h3{margin:0 0 10px;font-family:var(--font-brand);font-size:clamp(27px,2.4vw,38px);font-variation-settings:"wght" 325;font-weight:325;line-height:.98}.world-card p{margin:0;max-width:30ch;color:rgba(255,255,255,.68);font-size:14px}.world-arrow{align-self:flex-end;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.22);background:rgba(6,25,39,.38)}
.world-section{position:relative;overflow:hidden}.world-section-head{display:grid;grid-template-columns:minmax(130px,.32fr) minmax(0,1fr);gap:34px;align-items:start;margin-bottom:38px}.world-section-number{display:block;margin-bottom:22px;font-family:var(--font-accent);font-size:clamp(54px,6vw,92px);line-height:.65;color:var(--blue);letter-spacing:.035em}.section-dark .world-section-number{color:var(--blue-soft)}
.video-showcase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}.media-card{overflow:hidden;border-radius:24px;border:1px solid rgba(6,25,39,.12);background:#fff;box-shadow:0 24px 70px rgba(6,25,39,.08)}.section-dark .media-card{background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.14);box-shadow:none}.media-ui-bar{height:44px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid rgba(6,25,39,.1);font-size:9px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.section-dark .media-ui-bar{border-color:rgba(255,255,255,.12)}.media-ui-bar a{color:inherit;opacity:.72}.youtube-shell,.upload-visual{position:relative;overflow:hidden;background:#061927}.ratio-portrait{aspect-ratio:9/16}.ratio-landscape{aspect-ratio:16/9}.youtube-shell iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent}.media-card-copy{padding:18px}.media-number{display:block;margin-bottom:7px;font-family:var(--font-accent);font-size:12px;letter-spacing:.06em;color:var(--blue)}.media-card-copy h3{margin:0 0 9px;font-family:var(--font-brand);font-size:clamp(24px,2vw,31px);font-variation-settings:"wght" 315;font-weight:315;line-height:1}.media-card-copy p{margin:0;color:var(--muted);font-size:14px}.section-dark .media-card-copy p{color:rgba(255,255,255,.62)}
.upload-visual{display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:22px;color:white;background:radial-gradient(circle at 76% 22%,rgba(105,148,198,.38),transparent 34%),linear-gradient(145deg,#061927,#12364a)}.upload-index{position:absolute;top:20px;left:20px;font-family:var(--font-accent);font-size:52px;line-height:.7;color:rgba(217,236,255,.34)}.upload-plus{position:absolute;right:20px;top:18px;width:42px;height:42px;border:1px solid rgba(255,255,255,.25);border-radius:50%;display:grid;place-items:center;font-size:22px}.upload-visual strong{font-family:var(--font-brand);font-size:clamp(22px,2vw,30px);font-weight:315;font-variation-settings:"wght" 315;line-height:1}.upload-visual small{margin-top:8px;color:rgba(255,255,255,.58);font-size:9px;letter-spacing:.11em;text-transform:uppercase}.motion-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.motion-visual{min-height:0;background:radial-gradient(circle at 75% 25%,rgba(105,148,198,.7) 0 12%,transparent 13%),linear-gradient(145deg,#061927,#173d51)}.motion-visual.alternate{background:radial-gradient(circle at 24% 70%,rgba(177,74,29,.78) 0 14%,transparent 15%),linear-gradient(135deg,#061927,#111a22)}.motion-orbit{position:absolute;width:58%;aspect-ratio:1;border:1px solid rgba(255,255,255,.18);border-radius:50%;right:-8%;top:-34%}.motion-orbit:after{content:"";position:absolute;inset:14%;border:1px solid rgba(255,255,255,.12);border-radius:50%}
.photo-editorial-grid{display:grid;grid-template-columns:1.4fr .78fr;grid-template-rows:300px 250px;gap:16px}.photo-panel{position:relative;margin:0;overflow:hidden;border-radius:24px;background:#061927}.photo-panel-main{grid-row:1/-1}.photo-panel img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.photo-panel:hover img{transform:scale(1.025)}.photo-panel figcaption{position:absolute;left:14px;right:14px;bottom:14px;display:flex;justify-content:space-between;gap:14px;padding:11px 13px;border-radius:14px;background:rgba(6,25,39,.72);backdrop-filter:blur(15px);color:white;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.photo-panel figcaption span:first-child{font-family:var(--font-accent);font-size:1.25em;color:var(--blue-soft)}
.graphics-upload-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.graphic-upload-slot{grid-column:span 4;margin:0}.graphic-upload-slot:nth-child(1),.graphic-upload-slot:nth-child(4){grid-column:span 6}.graphic-slot-canvas{position:relative;aspect-ratio:4/5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:1px dashed rgba(6,25,39,.25);border-radius:24px;overflow:hidden;background:linear-gradient(135deg,rgba(105,148,198,.12),transparent),repeating-linear-gradient(90deg,rgba(6,25,39,.035) 0 1px,transparent 1px 34px),repeating-linear-gradient(rgba(6,25,39,.035) 0 1px,transparent 1px 34px),rgba(255,255,255,.64);font-family:var(--font-brand);font-size:clamp(24px,2.6vw,38px);font-variation-settings:"wght" 315;font-weight:315}.graphic-slot-number{position:absolute;top:18px;left:18px;font-family:var(--font-accent);font-size:44px;line-height:.7;color:rgba(6,25,39,.23)}.graphic-slot-plus{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(6,25,39,.2);font-size:24px}.graphic-upload-slot figcaption{padding:10px 3px;color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.web-showcase-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.web-project-card{padding:18px;border:1px solid rgba(6,25,39,.12);border-radius:26px;background:#fff;box-shadow:0 24px 70px rgba(6,25,39,.08)}.browser-frame{overflow:hidden;border-radius:18px;border:1px solid rgba(6,25,39,.13);background:#f6f8fa}.browser-top{height:42px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid rgba(6,25,39,.1);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.browser-content{aspect-ratio:16/10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;overflow:hidden}.browser-content img{max-width:42%;max-height:28%;object-fit:contain}.browser-1150{background:linear-gradient(135deg,#f3f0e8,#d8e3e8);color:#061927}.browser-dv{background:radial-gradient(circle at 72% 22%,rgba(105,148,198,.28),transparent 30%),#061927;color:white}.browser-dv img{filter:brightness(0) invert(1)}.browser-content span{font-family:var(--font-accent);font-size:clamp(20px,2.6vw,38px);letter-spacing:.05em}.web-project-copy{padding:18px 6px 5px}.web-index,.brand-work-index{font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}.web-project-copy h3,.brand-work-copy h3{margin:8px 0 10px;font-family:var(--font-brand);font-size:clamp(27px,2.5vw,38px);font-variation-settings:"wght" 325;font-weight:325;line-height:1}.web-project-copy p{margin:0;color:var(--muted)}.chip-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.chip-row span{padding:7px 10px;border:1px solid rgba(6,25,39,.12);border-radius:999px;font-size:10px;font-weight:700}
.brand-work-grid{display:grid;gap:20px}.brand-work-card{display:grid;grid-template-columns:240px 1fr;gap:30px;padding:24px;border:1px solid rgba(255,255,255,.14);border-radius:26px;background:rgba(255,255,255,.055)}.brand-work-logo{min-height:220px;display:grid;place-items:center;border-radius:20px;background:rgba(255,255,255,.92)}.brand-work-logo img{max-width:70%;max-height:110px;object-fit:contain}.brand-work-copy{padding:8px 0}.brand-work-copy h3{color:white}.brand-work-columns{display:grid;grid-template-columns:1fr 1.2fr;gap:28px;margin:20px 0}.brand-work-columns h4{margin:0 0 8px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-soft)}.brand-work-columns p{margin:0;color:rgba(255,255,255,.62)}.brand-tool-grid{display:flex;flex-wrap:wrap;gap:8px}.brand-tool-grid span{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid rgba(255,255,255,.12);border-radius:999px;font-size:10px;color:rgba(255,255,255,.76)}.brand-tool-grid img{width:16px;height:16px;object-fit:contain}.brand-work-card .text-link{color:white}
@media(max-width:980px){.worlds-bento{grid-template-columns:1fr 1fr;grid-template-rows:auto}.world-video{grid-row:auto;grid-column:1/-1;min-height:360px}.video-showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.video-showcase-grid .upload-media{grid-column:1/-1;max-width:440px;width:100%;justify-self:center}.brand-work-card{grid-template-columns:190px 1fr}.brand-work-columns{grid-template-columns:1fr}.graphics-upload-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.graphic-upload-slot,.graphic-upload-slot:nth-child(1),.graphic-upload-slot:nth-child(4){grid-column:auto}}
@media(max-width:680px){html{scroll-padding-top:86px}.five-worlds-hero h1{font-size:clamp(39px,12vw,55px)!important}.subway-lead{font-size:.68em}.world-section-head{grid-template-columns:1fr;gap:12px}.world-section-number{font-size:58px;margin-bottom:12px}.worlds-bento{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin-right:calc(var(--pad)*-1);padding-right:var(--pad);padding-bottom:12px}.world-card,.world-video{flex:0 0 84vw;min-height:340px;grid-column:auto;scroll-snap-align:start}.world-card h3{font-size:31px}.video-showcase-grid,.motion-video-grid,.web-showcase-grid{grid-template-columns:1fr}.video-showcase-grid .upload-media{grid-column:auto;max-width:none}.photo-editorial-grid{grid-template-columns:1fr;grid-template-rows:290px 330px 260px}.photo-panel-main{grid-row:auto}.graphics-upload-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin-right:calc(var(--pad)*-1);padding-right:var(--pad);padding-bottom:12px}.graphic-upload-slot,.graphic-upload-slot:nth-child(1),.graphic-upload-slot:nth-child(4){flex:0 0 78vw;scroll-snap-align:start}.brand-work-card{grid-template-columns:1fr;padding:18px}.brand-work-logo{min-height:170px}.brand-work-columns{gap:18px}.world-section .section-title,.visual-worlds-nav .section-title{font-size:clamp(31px,9vw,42px)}.world-section .section-title .type-accent,.visual-worlds-nav .section-title .type-accent{font-size:.74em;vertical-align:.02em}.media-card-copy h3{font-size:27px}}


/* V50 — UI menu, Lightroom-only photography, native video formats */
.menu-button,
.menu-button:hover,
.menu-button:focus-visible{
  width:92px;height:42px;padding:0 9px 0 10px;border:1px solid rgba(255,255,255,.18);border-radius:15px;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(238,244,248,.92));
  color:var(--ink);display:none;align-items:center;justify-content:flex-start;gap:8px;
  box-shadow:0 12px 28px rgba(2,12,20,.18);overflow:hidden;
}
.menu-button::before,.menu-button::after,.menu-button>span::before,.menu-button>span::after{display:none!important;content:none!important}
.menu-button>span{position:static;width:auto;height:auto;background:none;border-radius:0;transform:none;transition:none}
.dv-menu-mark{font-family:var(--font-accent);font-size:17px;line-height:1;letter-spacing:.04em;color:var(--blue);transform:translateY(.02em)!important}
.dv-menu-copy{position:relative!important;display:grid!important;align-items:center;min-width:34px;font-size:8px;font-weight:850;letter-spacing:.11em;text-transform:uppercase;line-height:1}
.dv-menu-open,.dv-menu-close{grid-area:1/1;transition:opacity .2s,transform .2s}
.dv-menu-close{opacity:0;transform:translateY(6px)}
.dv-menu-plus{margin-left:auto!important;width:20px!important;height:20px!important;border:1px solid rgba(6,25,39,.16)!important;border-radius:7px!important;display:grid!important;place-items:center!important;font-family:var(--font-ui);font-size:15px;line-height:1;transition:transform .25s,background .25s!important}
.mobile-menu[open] .dv-menu-open{opacity:0;transform:translateY(-6px)}
.mobile-menu[open] .dv-menu-close{opacity:1;transform:none}
.mobile-menu[open] .dv-menu-plus{transform:rotate(45deg)!important;background:var(--blue-soft)!important}
.mobile-menu[open] .menu-button{background:#fff}

.video-format-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}
.video-format-layout .video-portrait{width:min(100%,430px);justify-self:center}
.video-format-layout .video-landscape{grid-column:1/-1;width:100%}
.horizontal-film-slot{min-height:0}
.youtube-shell iframe{display:block}

.lightroom-only-stage{display:grid;gap:18px;padding:20px;border:1px solid rgba(6,25,39,.12);border-radius:30px;background:rgba(255,255,255,.72);box-shadow:0 28px 90px rgba(6,25,39,.09)}
.lightroom-stage-meta{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:8px 5px 2px}
.lightroom-stage-index{display:block;margin-bottom:8px;color:var(--blue);font-size:9px;font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.lightroom-stage-meta h3{margin:0;font-family:var(--font-brand);font-size:clamp(25px,3vw,42px);font-variation-settings:"wght" 315;font-weight:315;line-height:1}
.lightroom-stage-status{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid rgba(6,25,39,.11);border-radius:999px;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.lightroom-only-stage .lightroom-connect-card{margin:0;min-height:330px;border-radius:22px}
.lightroom-only-stage .lightroom-embed-shell{margin:0;min-height:520px;border-radius:22px;overflow:hidden}
.lightroom-only-stage [data-adobe-embed-target],.lightroom-only-stage [data-adobe-embed-target] iframe{min-height:520px;width:100%;border:0}

.home-worlds-nav .project-strip-head{margin-bottom:34px}
.home-worlds-nav .project-strip-head h2{font-size:clamp(38px,5.3vw,72px)}
.home-worlds-bento{margin-bottom:26px}
.home-worlds-nav .work-archive-link{margin-top:0}

@media(max-width:980px){
  .menu-button{display:flex}
  .video-format-layout{grid-template-columns:repeat(2,minmax(0,1fr))}
  .video-format-layout .video-landscape{grid-column:1/-1}
}
@media(max-width:680px){
  .menu-button{width:112px;height:40px;border-radius:14px;padding-inline:10px;gap:8px}
  .dv-menu-mark{font-size:16px}.dv-menu-copy{font-size:7px;min-width:30px}.dv-menu-plus{width:19px!important;height:19px!important}
  .video-format-layout{grid-template-columns:1fr}
  .video-format-layout .video-landscape{grid-column:auto}
  .video-format-layout .video-portrait{width:100%;max-width:420px}
  .lightroom-only-stage{padding:12px;border-radius:23px}
  .lightroom-stage-meta{align-items:flex-start;flex-direction:column;gap:12px;padding:6px 4px}
  .lightroom-stage-meta h3{font-size:clamp(25px,8vw,34px)}
  .lightroom-only-stage .lightroom-connect-card{min-height:420px}
  .lightroom-only-stage .lightroom-embed-shell,.lightroom-only-stage [data-adobe-embed-target],.lightroom-only-stage [data-adobe-embed-target] iframe{min-height:480px}
  .home-worlds-nav .project-strip-head h2{font-size:clamp(35px,10vw,48px)}
}

.mobile-menu[open] .menu-button>.dv-menu-mark,
.mobile-menu[open] .menu-button>.dv-menu-copy,
.mobile-menu[open] .menu-button>.dv-menu-plus{opacity:1!important}
.mobile-menu[open] .menu-button .dv-menu-open{opacity:0!important}
.mobile-menu[open] .menu-button .dv-menu-close{opacity:1!important}

@media(max-width:980px){
  .site-header>.mobile-menu{display:block;position:absolute;right:27px;top:8px;pointer-events:auto;z-index:103}
  .site-header>.mobile-menu .mobile-nav{position:fixed;inset:0;width:100vw;height:100dvh}
}
@media(max-width:680px){
  .site-header>.mobile-menu{right:17px;top:7px}
}

.menu-button span{position:static;width:auto;height:auto;background:none;border-radius:0;transform:none}
.menu-button .dv-menu-copy{display:grid}
.menu-button .dv-menu-open,.menu-button .dv-menu-close{display:block;grid-area:1/1}
.mobile-menu[open] .menu-button span{opacity:1}
.mobile-menu[open] .menu-button .dv-menu-open{opacity:0!important;transform:translateY(-6px)}
.mobile-menu[open] .menu-button .dv-menu-close{opacity:1!important;transform:none}

@media(max-width:980px){
  .site-header>.mobile-menu{display:block;position:absolute;right:27px;top:8px;pointer-events:auto;z-index:103}
  .site-header>.mobile-menu .mobile-nav{position:fixed;inset:0;width:100vw;height:100dvh}
}
@media(max-width:680px){
  .site-header>.mobile-menu{right:17px;top:7px}
}

.menu-button [data-en],.menu-button [data-fr]{display:none}
html[data-lang="en"] .menu-button [data-en]{display:inline}
html[data-lang="fr"] .menu-button [data-fr]{display:inline}

@media(max-width:980px){
  .site-header>.mobile-menu{display:block;position:absolute;right:27px;top:8px;pointer-events:auto;z-index:103}
  .site-header>.mobile-menu .mobile-nav{position:fixed;inset:0;width:100vw;height:100dvh}
}
@media(max-width:680px){
  .site-header>.mobile-menu{right:17px;top:7px}
}


/* V51 — remove duplicate services, connected tool workflow, DAI! client */
.workflow-teaser-five{grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch}
.workflow-teaser-five::before{left:5%;right:5%}
.workflow-teaser-five .workflow-mini{display:flex;flex-direction:column;min-height:265px;padding:22px}
.workflow-teaser-five .workflow-mini h3{margin-top:42px}
.workflow-mini-tools{margin-top:auto;padding-top:20px}
.workflow-mini-tools .tool-chip{width:100%;justify-content:flex-start;white-space:normal;line-height:1.2;background:rgba(255,255,255,.09)}
.tool-chip-icons{display:inline-flex;align-items:center;margin-right:2px}
.tool-chip-icons img{margin-left:-4px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08)}
.tool-chip-icons img:first-child{margin-left:0}
.tool-chip-duo .tool-chip-icons img{width:23px;height:23px}
.camera-glyph{position:relative;width:23px;height:16px;border:1.5px solid currentColor;border-radius:5px;display:inline-block;margin-right:3px;opacity:.8}
.camera-glyph::before{content:"";position:absolute;left:7px;top:3px;width:7px;height:7px;border:1.5px solid currentColor;border-radius:50%}
.camera-glyph::after{content:"";position:absolute;left:4px;top:-4px;width:8px;height:4px;border:1.5px solid currentColor;border-bottom:0;border-radius:3px 3px 0 0}
.tool-chip-camera{gap:9px}
.brand-tool-combined{gap:8px!important}.brand-tool-icons{display:inline-flex}.brand-tool-icons img{margin-left:-4px;border-radius:4px;background:rgba(255,255,255,.08)}.brand-tool-icons img:first-child{margin-left:0}

.brand-work-card-dai{grid-template-columns:minmax(320px,.92fr) minmax(0,1.08fr);overflow:hidden}
.dai-brand-media{position:relative;min-height:390px;border-radius:20px;overflow:hidden;background:#16070a;isolation:isolate}
.dai-photo{position:absolute;overflow:hidden}.dai-photo img{width:100%;height:100%;object-fit:cover;display:block}
.dai-photo-landscape{inset:0 24% 0 0}.dai-photo-portrait{right:0;top:0;width:33%;height:100%;border-left:3px solid rgba(255,255,255,.82)}
.dai-brand-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(7,2,4,.44));pointer-events:none;z-index:1}
.dai-logo-plate{position:absolute;left:18px;bottom:18px;z-index:2;width:min(190px,45%);padding:13px 16px;border-radius:16px;background:rgba(255,255,255,.94);box-shadow:0 14px 45px rgba(0,0,0,.22)}
.dai-logo-plate img{width:100%;height:auto;display:block}
.brand-work-card-dai .brand-work-copy{align-self:center;padding:18px 4px}
.brand-scope-note{display:inline-flex;padding:8px 11px;border:1px solid rgba(255,255,255,.14);border-radius:999px;color:rgba(255,255,255,.58);font-size:9px;letter-spacing:.06em;text-transform:uppercase}

@media(max-width:1180px){
  .workflow-teaser-five{grid-template-columns:repeat(3,minmax(0,1fr))}.workflow-teaser-five::before{display:none}
  .workflow-teaser-five .workflow-mini:nth-child(4),.workflow-teaser-five .workflow-mini:nth-child(5){min-height:230px}
}
@media(max-width:980px){
  .workflow-teaser-five{grid-template-columns:1fr 1fr}.workflow-teaser-five .workflow-mini{min-height:230px}
  .brand-work-card-dai{grid-template-columns:1fr}.dai-brand-media{min-height:410px}
}
@media(max-width:680px){
  .workflow-teaser-five{grid-template-columns:1fr}.workflow-teaser-five .workflow-mini{min-height:205px}.workflow-teaser-five .workflow-mini h3{margin-top:30px}
  .dai-brand-media{min-height:340px;border-radius:17px}.dai-photo-landscape{right:22%}.dai-photo-portrait{width:35%}.dai-logo-plate{left:12px;bottom:12px;width:46%;padding:10px 12px;border-radius:12px}
  .brand-work-card-dai .brand-work-copy{padding:6px 0 2px}
}


/* V52 — client spaces, clean URLs and optical workflow icon placement */
.workflow-teaser-five .workflow-mini{position:relative;padding-top:76px}
.workflow-mini-icons{position:absolute;top:22px;right:20px;margin:0;padding:0;z-index:3}
.workflow-mini-icons .tool-chip{width:auto;min-width:46px;min-height:42px;padding:7px 9px;justify-content:center;border-radius:13px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);font-size:0;box-shadow:0 10px 30px rgba(0,0,0,.12)}
.workflow-mini-icons .tool-chip-icons{margin:0}.workflow-mini-icons .tool-chip-icons img{width:25px;height:25px;margin-left:-4px}.workflow-mini-icons .tool-chip-icons img:first-child{margin-left:0}
.workflow-mini-icons .camera-glyph{margin:0;width:28px;height:20px}
.workflow-stack-label{margin-top:auto;padding-top:18px;color:rgba(255,255,255,.5);font-size:10px;line-height:1.35;letter-spacing:.08em;text-transform:uppercase}
.workflow-teaser-five .workflow-mini h3{margin-top:26px}

.client-space-card{position:relative;display:grid;grid-template-columns:210px minmax(0,1fr) 44px;align-items:center;gap:26px;min-height:220px;padding:24px;border:1px solid rgba(255,255,255,.12);border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.035));overflow:hidden;transition:transform .3s,border-color .3s,background .3s}
.client-space-card:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.26);background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.05))}
.client-space-logo{display:flex;align-items:center;justify-content:center;height:170px;padding:28px;border-radius:18px;background:rgba(255,255,255,.94)}
.client-space-logo img{max-width:100%;max-height:100%;object-fit:contain}
.client-space-copy>span{display:block;margin-bottom:10px;color:var(--blue-soft);font-size:9px;letter-spacing:.12em;text-transform:uppercase}
.client-space-copy h3{margin:0 0 10px}.client-space-copy p{max-width:580px;color:rgba(255,255,255,.62)}
.client-space-arrow{font-size:24px;color:var(--blue-soft)}
.client-space-card-logo-only{grid-template-columns:260px minmax(0,1fr) 44px}.client-space-card-logo-only .client-space-logo{background:#fff}.client-space-card-logo-only .client-space-logo img{max-width:90%}

.client-page-hero{min-height:82vh}.client-identity-panel{align-self:stretch;display:flex;flex-direction:column;justify-content:flex-end;min-height:480px;padding:34px;border-radius:28px;border:1px solid rgba(255,255,255,.14);background:linear-gradient(160deg,rgba(255,255,255,.10),rgba(255,255,255,.035));overflow:hidden}
.client-hero-logo{align-self:center;max-width:min(320px,82%);max-height:210px;object-fit:contain;margin:auto;padding:26px;border-radius:22px;background:rgba(255,255,255,.95)}
.client-panel-label{margin-top:28px;color:var(--blue-soft);font-size:9px;letter-spacing:.14em}.client-identity-panel h2{margin:8px 0 18px}
.client-scope-pills{display:flex;flex-wrap:wrap;gap:8px}.client-scope-pills span{padding:8px 11px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.055);font-size:10px;letter-spacing:.04em}
.client-single-media{max-width:920px;margin:0 auto}.client-single-media .video-portrait{max-width:440px;margin:0 auto}.client-single-media .video-landscape{max-width:920px;margin:0 auto}
.client-system-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:60px;align-items:start}.client-system-panel{padding:30px;border-radius:24px;background:white;border:1px solid var(--line)}.client-system-panel h3{margin:0 0 14px}.client-system-panel h3:not(:first-child){margin-top:28px}.client-system-panel .client-scope-pills span{color:var(--ink);border-color:var(--line);background:var(--cream)}
.client-ready-slot{max-width:920px;margin:0 auto}.client-module-ready{border-bottom:1px solid var(--line)}

@media(max-width:980px){
 .client-space-card,.client-space-card-logo-only{grid-template-columns:160px minmax(0,1fr) 34px}.client-space-logo{height:140px;padding:20px}
 .client-system-grid{grid-template-columns:1fr}.client-page-hero{min-height:auto}.client-identity-panel{min-height:400px}
}
@media(max-width:680px){
 .workflow-teaser-five .workflow-mini{padding-top:70px}.workflow-mini-icons{top:17px;right:16px}.workflow-mini-icons .tool-chip{min-height:38px;min-width:42px;padding:6px 8px}.workflow-mini-icons .tool-chip-icons img{width:23px;height:23px}
 .client-space-card,.client-space-card-logo-only{grid-template-columns:1fr;gap:16px;padding:16px}.client-space-logo{height:145px}.client-space-arrow{position:absolute;right:18px;bottom:18px}.client-space-copy{padding:2px 4px 20px}
 .client-identity-panel{min-height:340px;padding:22px}.client-hero-logo{max-height:150px}.client-single-media .video-portrait{max-width:100%}
}


/* V53 — project photography, capability icons and project explorer */
.client-page-hero-photo{position:relative;isolation:isolate;min-height:88vh;background-image:linear-gradient(90deg,rgba(3,13,21,.95) 0%,rgba(3,13,21,.78) 42%,rgba(3,13,21,.27) 74%,rgba(3,13,21,.45) 100%),var(--client-hero-image);background-size:cover;background-position:var(--client-hero-position);overflow:hidden}
.client-page-hero-photo::after{content:"";position:absolute;inset:auto 0 0;height:34%;z-index:-1;background:linear-gradient(0deg,rgba(3,13,21,.72),transparent)}
.client-page-hero-photo .page-hero-grid{position:relative;z-index:1;min-height:74vh;align-items:end;padding-top:120px;padding-bottom:72px}
.client-page-hero-photo .page-hero-grid>div:first-child{max-width:820px;padding:30px;border-radius:26px;background:linear-gradient(135deg,rgba(2,13,22,.68),rgba(2,13,22,.34));border:1px solid rgba(255,255,255,.13);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px)}
.client-identity-transparent{align-self:end;min-height:0;padding:0 0 18px;border:0;background:none;overflow:visible;box-shadow:none;justify-content:flex-end;align-items:flex-end;text-align:right}
.client-identity-transparent .client-panel-label{color:rgba(255,255,255,.68)}
.client-identity-transparent h2{color:white;text-shadow:0 8px 28px rgba(0,0,0,.55)}
.client-hero-logo-transparent{display:block;max-width:min(350px,80%);max-height:190px;object-fit:contain;margin:0 0 22px auto;padding:0;background:none;border-radius:0;filter:drop-shadow(0 12px 28px rgba(0,0,0,.48))}
.client-hero-1370clubhouse .client-hero-logo-transparent{max-width:min(390px,86%)}
.client-hero-dai-pizzeria .client-hero-logo-transparent{max-width:min(320px,74%)}

.capability-group+.capability-group{margin-top:30px;padding-top:28px;border-top:1px solid var(--line)}
.capability-heading{display:flex;align-items:center;gap:12px;margin-bottom:16px}.capability-heading h3{margin:0!important}.capability-heading-icon{display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:var(--ink);color:white;font-size:9px;font-weight:800;letter-spacing:.08em}
.capability-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.capability-chip{display:flex;align-items:center;gap:11px;min-height:50px;padding:10px 12px;border-radius:15px;border:1px solid var(--line);background:var(--cream);color:var(--ink);font-size:11px;font-weight:700;line-height:1.25}
.capability-icon{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:10px;background:var(--ink);color:white}.capability-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.software-chip-icons{display:flex;align-items:center;flex:0 0 auto}.software-chip-icons img{width:30px;height:30px;object-fit:contain;border-radius:8px;margin-left:-5px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.15))}.software-chip-icons img:first-child{margin-left:0}

.project-explorer{overflow:hidden}.explore-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.explore-project-card{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;min-height:430px;padding:26px;border-radius:26px;overflow:hidden;border:1px solid rgba(255,255,255,.14);background-image:var(--explore-image);background-size:cover;background-position:var(--explore-position);transition:transform .35s ease,border-color .35s ease}
.explore-project-card::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--explore-image) center/cover no-repeat;background-position:var(--explore-position);transition:transform .55s ease}.explore-project-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(2,12,20,.06),rgba(2,12,20,.17) 42%,rgba(2,12,20,.93) 100%)}
.explore-project-card:hover{transform:translateY(-5px);border-color:rgba(255,255,255,.3)}.explore-project-card:hover::before{transform:scale(1.035)}
.explore-project-logo{display:block;max-width:235px;max-height:105px;object-fit:contain;object-position:left bottom;margin:0 0 18px;padding:0;background:none;filter:drop-shadow(0 8px 24px rgba(0,0,0,.55))}
.explore-project-meta{max-width:78%;color:white;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;text-shadow:0 4px 18px rgba(0,0,0,.6)}.explore-project-arrow{position:absolute;right:24px;bottom:22px;color:white;font-size:24px}

.client-space-card-photo{isolation:isolate;min-height:300px;background:none!important;background-image:none!important;border-color:rgba(255,255,255,.16)}.client-space-card-photo::before{content:"";position:absolute;inset:0;z-index:-2;background-image:var(--client-card-image);background-size:cover;background-position:var(--client-card-position);transition:transform .55s ease}.client-space-card-photo::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(3,13,21,.88),rgba(3,13,21,.55) 54%,rgba(3,13,21,.18))}.client-space-card-photo:hover::before{transform:scale(1.03)}
.client-space-logo-transparent{height:155px;padding:0;background:none!important;border-radius:0}.client-space-logo-transparent img{filter:drop-shadow(0 9px 24px rgba(0,0,0,.48))}.client-space-copy-overlay p{color:rgba(255,255,255,.8)}

@media(max-width:980px){
 .client-page-hero-photo{min-height:auto;background-image:linear-gradient(180deg,rgba(3,13,21,.3) 0%,rgba(3,13,21,.65) 44%,rgba(3,13,21,.97) 100%),var(--client-hero-image);background-position:var(--client-hero-position)}
 .client-page-hero-photo .page-hero-grid{min-height:820px;align-content:end;grid-template-columns:1fr;padding-top:110px;padding-bottom:42px}.client-page-hero-photo .page-hero-grid>div:first-child{order:2}.client-identity-transparent{order:1;align-items:flex-start;text-align:left;padding:0}.client-hero-logo-transparent{margin:0 0 14px;max-width:280px;max-height:130px}.client-identity-transparent h2{display:none}.client-identity-transparent .client-panel-label{display:none}
 .capability-list{grid-template-columns:1fr 1fr}.explore-project-card{min-height:360px}.client-space-card-photo{min-height:280px}
}
@media(max-width:680px){
 .client-page-hero-photo .page-hero-grid{min-height:760px;padding-top:100px}.client-page-hero-photo .page-hero-grid>div:first-child{padding:22px;border-radius:22px}.client-hero-logo-transparent{max-width:220px;max-height:105px}
 .capability-list{grid-template-columns:1fr}.capability-chip{min-height:48px}.explore-project-grid{grid-template-columns:1fr}.explore-project-card{min-height:330px;padding:21px}.explore-project-logo{max-width:190px;max-height:85px}.client-space-card-photo{min-height:350px}.client-space-card-photo::after{background:linear-gradient(180deg,rgba(3,13,21,.18),rgba(3,13,21,.9) 75%)}.client-space-logo-transparent{height:130px;justify-content:flex-start}.client-space-logo-transparent img{max-width:210px;max-height:100px}
}

/* =========================================================
   V54 — BRAND-LED CLIENT PAGES
   Stable heroes, client palettes, refined UI iconography,
   clean image compositing and file:// safe presentation.
   ========================================================= */

.client-theme{
  --client-primary:var(--ink);
  --client-accent:var(--blue);
  --client-surface:var(--paper);
  --client-soft:var(--mist);
  --client-on-primary:#fff;
}
.client-theme-1150{
  --client-primary:#003f33;
  --client-accent:#f05623;
  --client-surface:#f3f0e9;
  --client-soft:#dce4dc;
  --client-on-primary:#f3f0e9;
}
.client-theme-1370{
  --client-primary:#0e3827;
  --client-accent:#b14a1d;
  --client-surface:#f3f0e9;
  --client-soft:#d9e0d3;
  --client-on-primary:#f3f0e9;
}
.client-theme-dai{
  --client-primary:#b43330;
  --client-accent:#dbd3ba;
  --client-surface:#fff;
  --client-soft:#eee7d5;
  --client-on-primary:#fff;
}

/* One stable hero system. All meaningful content remains in normal flow. */
.client-brand-hero{
  position:relative;
  isolation:isolate;
  min-height:760px;
  padding:128px 0 64px;
  overflow:hidden;
}
.client-brand-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  pointer-events:none;
}
.client-brand-hero-grid{
  min-height:568px;
  display:grid;
  grid-template-columns:minmax(0,1.03fr) minmax(430px,.97fr);
  gap:clamp(42px,6vw,88px);
  align-items:center;
}
.client-brand-copy{position:relative;z-index:2;max-width:720px}
.client-brand-eyebrow{margin-bottom:22px;color:inherit;opacity:.72}
.client-brand-copy h1{
  margin:0;
  max-width:720px;
  font-family:var(--font-brand);
  font-size:clamp(44px,5vw,72px);
  font-weight:var(--mod-h1-weight);
  font-variation-settings:"wght" var(--mod-h1-weight);
  line-height:.97;
  letter-spacing:.003em;
}
.client-brand-copy>p{
  margin:25px 0 0;
  max-width:650px;
  font-size:clamp(16px,1.55vw,20px);
  line-height:1.62;
  color:inherit;
  opacity:.72;
}
.client-brand-copy .hero-actions{margin-top:30px}
.client-primary-cta,.client-secondary-cta{border-radius:15px;min-height:52px;padding-inline:19px}
.client-primary-cta{background:var(--client-accent);border-color:var(--client-accent);color:var(--client-on-primary)}
.client-secondary-cta{border-color:currentColor;background:transparent;color:inherit;opacity:.82}
.client-secondary-cta:hover{opacity:1}
.client-brand-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
.client-brand-meta span{
  display:inline-flex;align-items:center;min-height:31px;padding:0 11px;
  border:1px solid currentColor;border-radius:999px;
  font-size:9px;font-weight:800;letter-spacing:.105em;text-transform:uppercase;opacity:.58;
}
.client-brand-visual{position:relative;min-height:568px}
.client-brand-photo{
  position:absolute;margin:0;overflow:hidden;background:var(--client-soft);
  box-shadow:0 30px 70px rgba(0,0,0,.18),inset 0 0 0 1px rgba(255,255,255,.18);
  transform:translateZ(0);backface-visibility:hidden;
}
.client-brand-photo img{width:100%;height:100%;object-fit:cover;border:0;transform:translateZ(0)}
.client-brand-photo-main{inset:0 10% 8% 4%;border-radius:32px}
.client-brand-photo-secondary{width:39%;height:43%;right:0;bottom:0;border-radius:24px}
.client-brand-logo-float{
  position:absolute;z-index:3;display:grid;place-items:center;
  min-width:210px;min-height:100px;padding:18px 22px;
  background:color-mix(in srgb,var(--client-primary) 88%,transparent);
  border:1px solid rgba(255,255,255,.2);border-radius:20px;
  box-shadow:0 18px 48px rgba(0,0,0,.22);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.client-brand-logo-float img{width:min(250px,100%);max-height:92px;object-fit:contain;filter:drop-shadow(0 7px 18px rgba(0,0,0,.18))}
.client-brand-visual-index{
  position:absolute;z-index:4;right:18px;top:18px;padding:9px 11px;
  border-radius:999px;background:rgba(0,0,0,.58);color:#fff;
  font-size:8px;font-weight:850;letter-spacing:.13em;text-transform:uppercase;backdrop-filter:blur(10px)
}
.client-hero-ticker{
  position:absolute;left:0;right:0;bottom:0;height:42px;overflow:hidden;
  border-top:1px solid currentColor;color:inherit;opacity:.58;
}
.client-hero-ticker>div{height:100%;width:max-content;display:flex;align-items:center;gap:20px;padding-left:20px;animation:clientTicker 26s linear infinite}
.client-hero-ticker span{font-family:var(--font-accent);font-size:15px;letter-spacing:.08em;white-space:nowrap}
.client-hero-ticker i{font-style:normal;opacity:.45}
@keyframes clientTicker{to{transform:translateX(-50%)}}

/* 1150 — vintage sport, strong green/orange pairing and oval details. */
.client-brand-hero-1150{background:#003f33;color:#f3f0e9}
.client-brand-hero-1150::before{
  background:
    radial-gradient(ellipse at 81% 44%,transparent 0 24%,rgba(240,86,35,.22) 24.3% 24.8%,transparent 25.1%),
    linear-gradient(rgba(243,240,233,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(243,240,233,.045) 1px,transparent 1px);
  background-size:auto,54px 54px,54px 54px;
}
.client-brand-hero-1150 .client-brand-photo-main{inset:0 9% 6% 8%;border-radius:44% 44% 29px 29px;box-shadow:0 32px 78px rgba(0,0,0,.28),inset 0 0 0 1px rgba(243,240,233,.25)}
.client-brand-hero-1150 .client-brand-photo-main img{object-position:center 53%}
.client-brand-hero-1150 .client-brand-photo-secondary{right:0;bottom:3%;border-radius:50%;width:38%;height:38%;border:8px solid #003f33}
.client-brand-hero-1150 .client-brand-logo-float{left:-2%;bottom:10%;background:rgba(240,86,35,.94)}
.client-brand-hero-1150 .client-brand-logo-float img{filter:brightness(0) invert(1);max-height:78px}
.client-brand-hero-1150 .client-primary-cta{color:#fff}

/* 1370 — light natural editorial composition. */
.client-brand-hero-1370{background:#f3f0e9;color:#0e3827}
.client-brand-hero-1370::before{
  background:
    radial-gradient(circle at 9% 18%,rgba(154,174,147,.48),transparent 25%),
    linear-gradient(90deg,transparent 0 49.92%,rgba(14,56,39,.075) 50%,transparent 50.08%);
}
.client-brand-hero-1370 .client-brand-visual{min-height:590px}
.client-brand-hero-1370 .client-brand-photo-main{inset:3% 18% 2% 3%;border-radius:230px 230px 24px 24px;box-shadow:0 30px 75px rgba(14,56,39,.17),inset 0 0 0 1px rgba(14,56,39,.08)}
.client-brand-hero-1370 .client-brand-photo-main img{object-position:center 56%}
.client-brand-hero-1370 .client-brand-photo-secondary{right:0;bottom:12%;width:38%;height:39%;border-radius:6px;outline:10px solid #f3f0e9}
.client-brand-hero-1370 .client-brand-logo-float{left:-3%;top:8%;background:rgba(243,240,233,.93);border-color:rgba(14,56,39,.14)}
.client-brand-hero-1370 .client-brand-logo-float img{filter:none;max-height:82px}
.client-brand-hero-1370 .client-brand-visual::after{
  content:"";position:absolute;right:7%;top:4%;width:72px;height:155px;background:#b14a1d;border-radius:999px 999px 10px 10px;z-index:-1
}
.client-brand-hero-1370 .client-primary-cta{background:#0e3827;border-color:#0e3827;color:#f3f0e9}
.client-brand-hero-1370 .client-secondary-cta{color:#0e3827}
.client-brand-hero-1370 .client-hero-ticker{border-color:rgba(14,56,39,.28)}

/* DAI! — deconstructed food poster, hard red/cream contrast. */
.client-brand-hero-dai{background:#b43330;color:#fff}
.client-brand-hero-dai::before{
  background:
    linear-gradient(135deg,transparent 0 67%,rgba(219,211,186,.20) 67% 72%,transparent 72%),
    radial-gradient(circle at 15% 78%,rgba(0,0,0,.13),transparent 24%);
}
.client-brand-hero-dai .client-brand-copy h1{max-width:670px}
.client-brand-hero-dai .type-accent{color:#dbd3ba}
.client-brand-hero-dai .client-brand-photo-main{inset:2% 3% 9% 1%;border-radius:10px;box-shadow:14px 14px 0 #dbd3ba,0 30px 74px rgba(60,0,0,.28)}
.client-brand-hero-dai .client-brand-photo-main img{object-position:center 48%}
.client-brand-hero-dai .client-brand-photo-secondary{right:-2%;bottom:0;width:36%;height:48%;border-radius:8px;border:8px solid #b43330}
.client-brand-hero-dai .client-brand-logo-float{left:-4%;bottom:8%;background:#fff;border-radius:8px;transform:rotate(-3deg)}
.client-brand-hero-dai .client-brand-logo-float img{filter:none;max-height:84px}
.client-brand-hero-dai .client-primary-cta{background:#fff;border-color:#fff;color:#b43330}
.client-brand-hero-dai .client-secondary-cta{color:#fff}
.client-brand-hero-dai .client-brand-visual-index{background:#dbd3ba;color:#b43330;border-radius:5px}

/* Brand-specific section pacing while retaining DVSTUDIO typography. */
.client-theme .world-section-number{color:var(--client-accent)}
.client-theme .brand-label{color:var(--client-primary)}
.client-theme .section-dark .brand-label{color:var(--client-accent)}
.client-theme .section-dark .world-section-number{color:var(--client-accent)}
.client-theme-1150 .client-media-section{background:#f3f0e9}
.client-theme-1150 .section-lightroom-gallery{background:#dce4dc}
.client-theme-1150 .client-motion-section{background:#252524}
.client-theme-1150 .client-system-section{background:#f3f0e9}
.client-theme-1370 .section-lightroom-gallery{background:#f3f0e9}
.client-theme-1370 .client-system-section{background:#d9e0d3}
.client-theme-dai .section-lightroom-gallery{background:#fff}
.client-theme-dai .client-system-section{background:#dbd3ba}
.client-theme-dai .client-system-section .type-accent{color:#b43330}

/* More deliberate Lightroom frames. */
.client-theme .lightroom-only-stage{
  border-color:color-mix(in srgb,var(--client-primary) 18%,transparent);
  background:color-mix(in srgb,var(--client-surface) 92%,transparent);
  box-shadow:0 28px 80px color-mix(in srgb,var(--client-primary) 12%,transparent);
}
.client-theme .lightroom-stage-index{color:var(--client-primary)}
.client-theme .lightroom-stage-status{border-color:color-mix(in srgb,var(--client-primary) 20%,transparent)}
.lightroom-public-link{
  display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 13px;
  border:1px solid rgba(6,25,39,.14);border-radius:999px;background:rgba(255,255,255,.78);
  font-size:10px;font-weight:800;white-space:nowrap;transition:transform .22s,box-shadow .22s
}
.lightroom-public-link:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(6,25,39,.10)}

/* Refined service and software UI cards. */
.client-theme .client-system-panel{
  padding:22px;border-radius:28px;border:1px solid color-mix(in srgb,var(--client-primary) 14%,transparent);
  background:color-mix(in srgb,var(--client-surface) 94%,transparent);
  box-shadow:0 24px 70px color-mix(in srgb,var(--client-primary) 9%,transparent),inset 0 1px 0 rgba(255,255,255,.8)
}
.client-theme .capability-group+.capability-group{border-top-color:color-mix(in srgb,var(--client-primary) 14%,transparent)}
.client-theme .capability-heading-icon{
  width:38px;height:38px;border-radius:13px;background:var(--client-primary);color:var(--client-on-primary);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.13),0 9px 20px color-mix(in srgb,var(--client-primary) 22%,transparent)
}
.client-theme .capability-heading h3{font-family:var(--font-brand);font-size:25px;font-weight:var(--mod-h3-weight);font-variation-settings:"wght" var(--mod-h3-weight)}
.client-theme .capability-list{gap:12px}
.client-theme .capability-chip{
  position:relative;min-height:64px;padding:9px 13px 9px 9px;border-radius:18px;
  border:1px solid color-mix(in srgb,var(--client-primary) 14%,transparent);
  background:linear-gradient(135deg,rgba(255,255,255,.90),color-mix(in srgb,var(--client-soft) 38%,#fff));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 8px 22px color-mix(in srgb,var(--client-primary) 7%,transparent);
  font-size:12px;transition:transform .25s,border-color .25s,box-shadow .25s
}
.client-theme .capability-chip:hover{
  transform:translateY(-3px);border-color:color-mix(in srgb,var(--client-accent) 56%,transparent);
  box-shadow:inset 0 1px 0 #fff,0 15px 28px color-mix(in srgb,var(--client-primary) 12%,transparent)
}
.client-theme .capability-icon{
  width:44px;height:44px;flex-basis:44px;border-radius:14px;background:var(--client-primary);color:var(--client-on-primary);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 8px 18px color-mix(in srgb,var(--client-primary) 22%,transparent)
}
.client-theme .capability-icon svg{width:21px;height:21px;stroke-width:1.55}
.client-theme .software-chip{padding-left:11px}
.client-theme .software-chip-icons{min-width:50px;justify-content:center}
.client-theme .software-chip-icons img{width:34px;height:34px;border-radius:10px;margin-left:-7px;filter:drop-shadow(0 5px 9px rgba(0,0,0,.14))}

/* Replace the unfinished 1150 upload box with an intentional motion-direction visual. */
.brand-motion-study{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:18px;align-items:stretch}
.brand-motion-stage{position:relative;min-height:430px;overflow:hidden;border-radius:28px;background:#003f33;box-shadow:inset 0 0 0 1px rgba(243,240,233,.14)}
.brand-motion-stage::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(243,240,233,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(243,240,233,.055) 1px,transparent 1px);background-size:46px 46px}
.motion-word{position:absolute;z-index:2;font-family:var(--font-accent);font-size:clamp(54px,8vw,112px);line-height:.76;letter-spacing:.02em}
.motion-word-eat{left:7%;top:13%;color:#f3f0e9;transform:rotate(-5deg)}
.motion-word-drink{right:6%;top:39%;color:#f05623;transform:rotate(3deg)}
.motion-word-play{left:15%;bottom:9%;color:#f3f0e9;transform:rotate(-2deg)}
.motion-orbit-line{position:absolute;z-index:1;width:72%;height:62%;left:14%;top:17%;border:2px dashed rgba(243,240,233,.32);border-radius:50%;transform:rotate(-18deg)}
.motion-ball{position:absolute;z-index:3;width:38px;height:38px;border-radius:50%;right:18%;top:17%;background:#f3f0e9;box-shadow:0 0 0 8px rgba(240,86,35,.28),0 12px 35px rgba(0,0,0,.25)}
.motion-caption{position:absolute;z-index:3;right:18px;bottom:16px;font-size:8px;font-weight:800;letter-spacing:.14em;color:rgba(243,240,233,.68)}
.brand-motion-copy{display:flex;flex-direction:column;justify-content:flex-end;padding:28px;border-radius:28px;background:#f3f0e9;color:#003f33}
.brand-motion-copy h3{margin:12px 0;font-family:var(--font-brand);font-size:clamp(25px,2.5vw,38px);font-weight:var(--mod-h3-weight);font-variation-settings:"wght" var(--mod-h3-weight);line-height:1.04}
.brand-motion-copy p{margin:0;color:rgba(0,63,51,.68)}

/* Fix hairline seams on large project imagery: one image layer, one clipping radius. */
.explore-project-card,.client-space-card-photo,.project-tile{
  background-image:none!important;background-color:transparent;background-clip:padding-box;
  border:0!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
  transform:translateZ(0);backface-visibility:hidden;isolation:isolate
}
.explore-project-card::before,.client-space-card-photo::before,.project-tile img.cover{
  backface-visibility:hidden;transform:translateZ(0);will-change:transform
}
.explore-project-card:hover::before,.client-space-card-photo:hover::before{transform:translateZ(0) scale(1.035)}
.explore-project-card::after,.client-space-card-photo::after{border-radius:inherit}

/* Client explorer uses each destination's visual accent without changing DV typography. */
.client-theme-1150 .project-explorer{background:#252524}
.client-theme-1370 .project-explorer{background:#0e3827}
.client-theme-dai .project-explorer{background:#1e1e1e}

@media(max-width:1080px){
  .client-brand-hero-grid{grid-template-columns:minmax(0,1fr) minmax(370px,.82fr);gap:38px}
  .client-brand-visual{min-height:520px}
  .client-brand-hero-1370 .client-brand-visual{min-height:540px}
}
@media(max-width:880px){
  .client-brand-hero{min-height:auto;padding:112px 0 58px}
  .client-brand-hero-grid{min-height:0;grid-template-columns:1fr;gap:38px}
  .client-brand-copy{max-width:760px}
  .client-brand-visual,.client-brand-hero-1370 .client-brand-visual{min-height:610px;width:min(100%,650px);justify-self:end}
  .client-brand-photo-main{inset:0 10% 8% 5%}
  .client-brand-logo-float{left:2%!important}
  .brand-motion-study{grid-template-columns:1fr}
  .brand-motion-copy{min-height:250px}
  .lightroom-stage-meta{flex-wrap:wrap}
  .lightroom-public-link{margin-left:auto}
}
@media(max-width:680px){
  .client-brand-hero{padding:96px 0 52px}
  .client-brand-hero-grid{gap:28px}
  .client-brand-copy h1{font-size:clamp(38px,11.5vw,52px);line-height:.98}
  .client-brand-copy>p{font-size:16px;line-height:1.55;margin-top:19px}
  .client-brand-copy .hero-actions{display:grid;grid-template-columns:1fr;margin-top:24px}
  .client-primary-cta,.client-secondary-cta{width:100%}
  .client-brand-meta{margin-top:22px}
  .client-brand-visual,.client-brand-hero-1370 .client-brand-visual{min-height:480px;width:100%}
  .client-brand-photo-main{inset:0 8% 8% 0!important;border-radius:24px!important}
  .client-brand-photo-secondary{width:42%!important;height:39%!important;right:0!important;bottom:0!important;border-width:6px!important}
  .client-brand-logo-float{left:10px!important;bottom:10%!important;top:auto!important;min-width:170px;min-height:78px;padding:13px 16px;border-radius:14px!important;transform:none!important}
  .client-brand-logo-float img{max-width:190px;max-height:62px!important}
  .client-brand-hero-1370 .client-brand-visual::after{right:4%;top:2%;width:48px;height:110px}
  .client-brand-visual-index{right:8px;top:8px}
  .client-hero-ticker{height:35px}.client-hero-ticker span{font-size:12px}
  .client-theme .client-system-panel{padding:14px;border-radius:22px}
  .client-theme .capability-list{grid-template-columns:1fr}
  .client-theme .capability-chip{min-height:61px}
  .brand-motion-stage{min-height:350px;border-radius:22px}
  .motion-word{font-size:clamp(48px,17vw,78px)}
  .brand-motion-copy{padding:22px;border-radius:22px;min-height:230px}
  .lightroom-public-link{margin-left:0}
}
@media(prefers-reduced-motion:reduce){.client-hero-ticker>div{animation:none}}

/* =========================================================
   V61 — CLEAN FOUNDATION
   One consolidated finishing layer: typography, galleries,
   mobile navigation, client art direction and reliable video cards.
   ========================================================= */
:root{
  --mod-h1-weight:465;
  --mod-h2-weight:420;
  --mod-h3-weight:380;
}

/* Large, expressive, but no longer excessively heavy. */
.hero h1,.page-hero h1,.contact-grid h1,.big-cta h2,.five-worlds-hero h1,
.client-brand-copy h1{
  font-weight:var(--mod-h1-weight)!important;
  font-variation-settings:"wght" var(--mod-h1-weight)!important;
}
.section-title,.project-strip-head h2,.copy-large h2,.about-copy h2,.project-summary h2,
.website-panel h2,.workflow-human h2{
  font-weight:var(--mod-h2-weight)!important;
  font-variation-settings:"wght" var(--mod-h2-weight)!important;
}
.tile-content h3,.service-card h3,.video-card h3,.workflow-step h3,.world-card h3,
.media-card-copy h3,.client-theme .capability-heading h3,.brand-motion-copy h3,
.capability-preview-copy h3,.lightroom-stage-meta h3{
  font-weight:var(--mod-h3-weight)!important;
  font-variation-settings:"wght" var(--mod-h3-weight)!important;
}
:where(h1,h2,h3,h4,.section-title,.world-card h3,.media-card-copy h3,.client-brand-copy h1,.mixed-brand-title){
  -webkit-hyphens:none!important;
  hyphens:none!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  text-wrap:balance;
}
.hero h1 span,.page-hero h1 span,.client-brand-copy h1 span,.section-title span{hyphens:none!important}
.hero h1,.page-hero h1{line-height:.93;letter-spacing:-.058em}
.section-title{line-height:1;letter-spacing:-.047em}
.client-brand-copy h1{font-size:clamp(52px,5.8vw,84px);line-height:1.01!important;letter-spacing:-.046em!important;max-width:15ch}
.client-theme .section-title{font-size:clamp(42px,5.2vw,70px);line-height:1.02!important;letter-spacing:-.04em}
.type-accent,.hero h1 em{line-height:.93;vertical-align:-.02em}
html[data-lang="fr"] .hero h1,html[data-lang="fr"] .page-hero h1{letter-spacing:-.052em}
html[data-lang="fr"] .client-brand-copy h1{font-size:clamp(49px,5.45vw,78px);max-width:16.5ch}
.world-card h3{font-size:clamp(23px,1.75vw,30px);line-height:1.08;letter-spacing:-.01em}
.world-card>div,.world-card h3,.world-card p{min-width:0;max-width:100%}

/* Compact mobile menu: only MENU +, aligned with the site header. */
.menu-button,.menu-button:hover,.menu-button:focus-visible{box-shadow:none}
.menu-button::before,.menu-button::after,.menu-button>span::before,.menu-button>span::after{display:none!important;content:none!important}
.menu-button>span{position:static;width:auto;height:auto;background:none;border-radius:0;transform:none;transition:none}
.menu-button .dv-menu-copy{display:grid;font-size:9px;font-weight:900;letter-spacing:.105em;text-transform:uppercase}
.menu-button .dv-menu-open,.menu-button .dv-menu-close{display:block;grid-area:1/1;transition:opacity .2s,transform .2s}
.menu-button .dv-menu-close{opacity:0;transform:translateY(6px)}
.menu-button .dv-menu-plus{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:var(--ink);color:#fff;font-size:15px;line-height:1;transition:transform .25s}
.mobile-menu[open] .menu-button .dv-menu-open{opacity:0;transform:translateY(-6px)}
.mobile-menu[open] .menu-button .dv-menu-close{opacity:1;transform:none}
.mobile-menu[open] .menu-button .dv-menu-plus{transform:rotate(45deg)}
.menu-button [data-en],.menu-button [data-fr]{display:none}
html[data-lang="en"] .menu-button [data-en]{display:inline}
html[data-lang="fr"] .menu-button [data-fr]{display:inline}
@media(max-width:980px){
  .site-header>.mobile-menu{display:block;position:absolute;right:24px;top:8px;pointer-events:auto;z-index:103}
  .menu-button{display:flex!important;width:88px!important;min-width:88px;height:40px!important;padding:0 8px 0 13px!important;justify-content:space-between!important;gap:7px!important;border-radius:14px!important;background:var(--paper)}
}
@media(max-width:480px){
  .site-header>.mobile-menu{right:15px;top:7px}
  .menu-button{width:84px!important;min-width:84px;height:38px!important}
  .brand img{width:102px}
}

/* Modern graphite camera, optically equal to the other workflow icons. */
.camera-glyph{position:relative;display:inline-block;flex:0 0 auto;width:27px;height:19px;margin:0;border:1px solid rgba(255,255,255,.24);border-radius:5px 5px 6px 6px;opacity:1;background:linear-gradient(105deg,rgba(255,255,255,.34),transparent 18%),linear-gradient(145deg,#c8ccd0 0%,#92979d 26%,#555b62 58%,#2c3035 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.58),inset 0 -2px 4px rgba(0,0,0,.34),0 4px 9px rgba(0,0,0,.24)}
.camera-glyph::before{content:"";position:absolute;left:50%;top:52%;width:12px;height:12px;transform:translate(-50%,-50%);border:1px solid #cfd3d6;border-radius:50%;background:radial-gradient(circle at 38% 34%,rgba(255,255,255,.85) 0 6%,transparent 7%),radial-gradient(circle,#111820 0 22%,#263846 23% 39%,#090d12 40% 59%,#788b98 60% 65%,#171b20 66% 100%);box-shadow:0 0 0 2px #383d43,0 2px 5px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.14)}
.camera-glyph::after{content:"";position:absolute;left:5px;top:-4px;width:10px;height:5px;border-radius:3px 3px 1px 1px;background:linear-gradient(180deg,#b9bdc1,#5c6268);box-shadow:inset 0 1px rgba(255,255,255,.45),13px 2px 0 -1px #aeb2b6}
.workflow-mini-icons .tool-chip-camera{width:42px;min-width:42px;height:38px;min-height:38px;padding:0;display:grid;place-items:center;border-radius:13px}
.workflow-mini-icons .camera-glyph{width:27px;height:19px}

/* Reliable film presentation: direct external playback, never a broken iframe. */
.video-format-layout{grid-template-columns:repeat(2,minmax(0,1fr));max-width:820px;margin-inline:auto}
.video-link-shell{position:relative;isolation:isolate;overflow:hidden;background:#061927}
.video-link-shell .youtube-poster{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;display:block;overflow:hidden;cursor:pointer;color:white;background:#061927;text-align:left}
.youtube-poster img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.015);transition:transform .65s cubic-bezier(.2,.75,.2,1),filter .35s ease}
.youtube-poster:hover img{transform:scale(1.05);filter:saturate(1.06)}
.youtube-poster-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,10,17,.04) 18%,rgba(2,10,17,.88) 100%),radial-gradient(circle at 50% 44%,transparent 0 18%,rgba(2,10,17,.12) 58%,rgba(2,10,17,.34) 100%)}
.youtube-play-button{position:absolute;z-index:2;left:50%;top:47%;width:72px;height:72px;display:grid;place-items:center;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.42);border-radius:23px;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(229,238,244,.86));box-shadow:0 20px 48px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.95);transition:transform .25s ease,box-shadow .25s ease}
.youtube-poster:hover .youtube-play-button{transform:translate(-50%,-50%) scale(1.055);box-shadow:0 24px 58px rgba(0,0,0,.34)}
.youtube-play-button i{width:0;height:0;margin-left:5px;border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:16px solid var(--ink)}
.youtube-poster-copy{position:absolute;z-index:2;left:18px;right:18px;bottom:18px;display:flex;flex-direction:column;gap:4px;pointer-events:none}
.youtube-poster-copy small{font-size:8px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.68)}
.youtube-poster-copy strong{font-family:var(--font-brand);font-size:clamp(22px,2.1vw,30px);font-weight:var(--mod-h3-weight);font-variation-settings:"wght" var(--mod-h3-weight);line-height:1.04}
.client-single-media{max-width:430px;margin-inline:auto}

/* Work photography grid: designed irregularity without clipped edges. */
.lightroom-stage-meta{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(220px,max-content);align-items:center;gap:14px 18px;padding:8px 5px 2px}
.lightroom-stage-status{justify-self:end;max-width:100%}
.lightroom-stage-meta .primary-archive-link{justify-self:end;max-width:min(100%,360px);white-space:normal;text-align:center;line-height:1.2;margin:0!important}
.editorial-photo-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:42px;grid-auto-flow:dense;gap:12px;margin-top:4px;overflow:clip}
.editorial-photo{position:relative;margin:0;overflow:hidden;border-radius:20px;background:#061927;box-shadow:0 18px 45px rgba(6,25,39,.10);isolation:isolate}
.editorial-photo::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,transparent 52%,rgba(3,13,21,.76))}
.editorial-photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.75,.2,1)}
.editorial-photo:hover img{transform:scale(1.035)}
.editorial-photo figcaption{position:absolute;z-index:2;left:10px;right:auto;bottom:10px;display:flex;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 20px);padding:9px 11px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(5,20,30,.68);backdrop-filter:blur(12px);color:#fff;font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.editorial-photo figcaption small{font-size:8px;opacity:.66;white-space:nowrap}.editorial-photo figcaption span{white-space:nowrap}
.editorial-photo-a{grid-column:span 5;grid-row:span 10}.editorial-photo-b{grid-column:span 3;grid-row:span 6}.editorial-photo-c{grid-column:span 4;grid-row:span 9}.editorial-photo-d{grid-column:span 3;grid-row:span 7}.editorial-photo-e{grid-column:span 5;grid-row:span 9}.editorial-photo-f{grid-column:span 4;grid-row:span 7}.editorial-photo-g{grid-column:span 3;grid-row:span 6}
.editorial-photo-a img{object-position:center 46%}.editorial-photo-b img{object-position:center 54%}.editorial-photo-c img{object-position:center 52%}.editorial-photo-d img{object-position:center 48%}.editorial-photo-e img{object-position:center 52%}.editorial-photo-f img{object-position:center 54%}.editorial-photo-g img{object-position:center 50%}

/* Honest motion + graphic capability cards replace empty upload placeholders. */
.capability-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.capability-preview-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:26px;background:rgba(255,255,255,.72);box-shadow:0 20px 55px rgba(6,25,39,.08)}
.capability-preview-index{position:absolute;z-index:3;left:18px;top:16px;padding:7px 9px;border:1px solid rgba(255,255,255,.22);border-radius:9px;background:rgba(5,20,30,.58);color:white;font-size:9px;font-weight:850;letter-spacing:.11em}
.capability-preview-visual{position:relative;min-height:360px;overflow:hidden;background:#061927;color:white;display:grid;place-items:center}
.capability-motion .capability-preview-visual{background:radial-gradient(circle at 72% 24%,rgba(122,167,196,.42),transparent 27%),radial-gradient(circle at 24% 80%,rgba(244,81,36,.28),transparent 24%),#061927}
.capability-preview-visual .motion-orbit{inset:12% 13% 17%;transform:rotate(-12deg)}
.capability-preview-mark{position:relative;z-index:2;font-family:var(--font-brand);font-size:clamp(44px,5vw,76px);font-weight:var(--mod-h2-weight);font-variation-settings:"wght" var(--mod-h2-weight);line-height:.78;letter-spacing:-.055em;text-align:center}
.capability-graphics .capability-preview-visual{background:#f3f0e9;color:#061927}
.capability-grid-lines{position:absolute;inset:0;background:linear-gradient(rgba(6,25,39,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(6,25,39,.08) 1px,transparent 1px);background-size:36px 36px}
.capability-graphics .capability-preview-mark{transform:rotate(-4deg);padding:24px;background:#f45124;color:#fff;box-shadow:13px 13px 0 #061927}
.capability-preview-copy{padding:24px}.capability-preview-copy h3{margin:0 0 10px;font-family:var(--font-brand);font-size:clamp(28px,3vw,40px);line-height:1}.capability-preview-copy p{margin:0;color:var(--muted);max-width:54ch}.capability-preview-tool{display:inline-flex;margin-top:18px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.72);font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}

/* Curated five-image client galleries. */
.section-client-photo-gallery{position:relative;overflow:hidden;background:var(--client-surface);color:var(--client-primary)}
.section-client-photo-gallery::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background:linear-gradient(color-mix(in srgb,var(--client-primary) 5%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--client-primary) 5%,transparent) 1px,transparent 1px);background-size:52px 52px}
.section-client-photo-gallery .container{position:relative}
.client-photo-mosaic{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(9,72px);gap:14px;margin-top:38px}
.client-photo-cell{position:relative;isolation:isolate;overflow:hidden;margin:0;background:var(--client-soft);border:1px solid color-mix(in srgb,var(--client-primary) 16%,transparent);box-shadow:0 22px 58px color-mix(in srgb,var(--client-primary) 12%,transparent)}
.client-photo-cell::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.client-photo-cell img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.client-photo-cell:hover img{transform:scale(1.035)}
.client-photo-cell figcaption{position:absolute;z-index:2;left:12px;right:12px;bottom:10px;display:flex;justify-content:space-between;gap:12px;align-items:end;color:#fff;text-transform:uppercase;font-weight:850;letter-spacing:.08em;text-shadow:0 2px 12px rgba(0,0,0,.5)}
.client-photo-cell figcaption span{font-size:10px}.client-photo-cell figcaption small{font-size:8px;opacity:.7}
.client-photo-cell-a{grid-column:1/8;grid-row:1/7}.client-photo-cell-b{grid-column:8/13;grid-row:1/5}.client-photo-cell-c{grid-column:8/13;grid-row:5/10}.client-photo-cell-d{grid-column:1/4;grid-row:7/10}.client-photo-cell-e{grid-column:4/8;grid-row:7/10}
.client-photo-mosaic-1150 .client-photo-cell-a{border-radius:210px 210px 26px 26px}.client-photo-mosaic-1150 .client-photo-cell-e{border-radius:50%}
.client-photo-mosaic-1370 .client-photo-cell-a{border-radius:220px 220px 24px 24px}.client-photo-mosaic-1370 .client-photo-cell-b{border-radius:8px}.client-photo-mosaic-1370 .client-photo-cell-d{border-radius:50% 50% 18px 18px}
.client-photo-mosaic-dai{gap:12px}.client-photo-mosaic-dai .client-photo-cell{border-radius:8px;box-shadow:9px 9px 0 color-mix(in srgb,var(--client-accent) 68%,transparent),0 22px 55px rgba(90,12,10,.17)}
.client-photo-mosaic-dai .client-photo-cell-a img{object-position:center 50%}.client-photo-mosaic-dai .client-photo-cell-b img{object-position:center 48%}.client-photo-mosaic-dai .client-photo-cell-c img{object-position:center 53%}.client-photo-mosaic-dai .client-photo-cell-d img{object-position:center 48%}.client-photo-mosaic-dai .client-photo-cell-e img{object-position:center 52%}
.client-photo-mosaic-1150 .client-photo-cell-a img{object-position:center 50%}.client-photo-mosaic-1150 .client-photo-cell-b img{object-position:center 45%}.client-photo-mosaic-1150 .client-photo-cell-c img{object-position:center 52%}.client-photo-mosaic-1150 .client-photo-cell-d img{object-position:center 46%}.client-photo-mosaic-1150 .client-photo-cell-e img{object-position:center 52%}
.client-photo-mosaic-1370 .client-photo-cell-a img{object-position:center 54%}.client-photo-mosaic-1370 .client-photo-cell-b img{object-position:center 48%}.client-photo-mosaic-1370 .client-photo-cell-c img{object-position:center 52%}.client-photo-mosaic-1370 .client-photo-cell-d img{object-position:center 48%}.client-photo-mosaic-1370 .client-photo-cell-e img{object-position:center 54%}
.client-gallery-footer{display:flex;align-items:center;gap:14px;margin-top:24px;font-size:9px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.client-gallery-footer i{height:1px;flex:1;background:color-mix(in srgb,var(--client-primary) 18%,transparent)}

/* 1370: editorial composition, with terracotta genuinely behind the main photo. */
.client-brand-hero-1370 .client-brand-visual{isolation:isolate;min-height:630px}
.client-brand-hero-1370 .client-brand-visual::before{content:"";position:absolute;z-index:0;right:0;top:7%;width:62%;height:84%;border-radius:260px 260px 26px 26px;background:linear-gradient(155deg,#c86a39 0%,#b14a1d 72%,#963d19 100%);box-shadow:0 32px 78px rgba(177,74,29,.2)}
.client-brand-hero-1370 .client-brand-visual::after{content:"";position:absolute;z-index:0;left:-2%;bottom:2%;width:170px;aspect-ratio:1;border-radius:50%;background:#9aae93;opacity:.66}
.client-brand-hero-1370 .client-brand-photo{z-index:1}
.client-brand-hero-1370 .client-brand-photo-main{inset:0 17% 5% 1%;border-radius:250px 250px 28px 28px;box-shadow:0 36px 90px rgba(14,56,39,.22),inset 0 0 0 1px rgba(255,255,255,.22)}
.client-brand-hero-1370 .client-brand-photo-main img{object-position:center 56%}
.client-brand-hero-1370 .client-brand-photo-secondary{z-index:2;right:0;bottom:2%;width:38%;height:35%;border-radius:14px;outline:9px solid #f3f0e9;box-shadow:0 25px 62px rgba(14,56,39,.22)}
.client-brand-hero-1370 .client-brand-logo-float{left:-1%;top:6%;bottom:auto;z-index:3;background:rgba(243,240,233,.97);border-color:rgba(14,56,39,.16);box-shadow:0 20px 52px rgba(14,56,39,.16)}
.client-brand-hero-1370 .client-brand-visual-index{z-index:4;right:2%;top:3%;background:#0e3827}

@media(max-width:980px){
  .client-brand-copy h1{font-size:clamp(48px,7.4vw,70px);max-width:17ch}
  html[data-lang="fr"] .client-brand-copy h1{font-size:clamp(46px,7vw,66px)}
  .lightroom-stage-meta{grid-template-columns:minmax(0,1fr) auto;align-items:start}.lightroom-stage-meta .primary-archive-link{grid-column:1/-1;justify-self:start;width:auto}
  .editorial-photo-grid{grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);grid-auto-rows:150px;grid-auto-flow:row;gap:10px}.editorial-photo-a{grid-column:1;grid-row:span 2}.editorial-photo-b{grid-column:2;grid-row:span 1}.editorial-photo-c{grid-column:2;grid-row:span 2}.editorial-photo-d{grid-column:1;grid-row:span 1}.editorial-photo-e{grid-column:1;grid-row:span 2}.editorial-photo-f{grid-column:2;grid-row:span 1}.editorial-photo-g{grid-column:1/-1;grid-row:span 1}
  .client-photo-mosaic{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:250px 190px 190px;gap:10px}.client-photo-cell-a{grid-column:1/3;grid-row:1}.client-photo-cell-b{grid-column:1;grid-row:2}.client-photo-cell-c{grid-column:2;grid-row:2}.client-photo-cell-d{grid-column:1;grid-row:3}.client-photo-cell-e{grid-column:2;grid-row:3}.client-photo-cell-a,.client-photo-mosaic-1150 .client-photo-cell-a,.client-photo-mosaic-1370 .client-photo-cell-a{border-radius:28px}.client-photo-mosaic-1150 .client-photo-cell-e,.client-photo-mosaic-1370 .client-photo-cell-d{border-radius:22px}
  .capability-preview-visual{min-height:300px}
}
@media(max-width:680px){
  .hero h1,.page-hero h1{font-size:clamp(43px,12.5vw,58px);line-height:.98}.section-title{font-size:clamp(33px,9vw,45px);line-height:1.04}
  .client-brand-copy h1,html[data-lang="fr"] .client-brand-copy h1{font-size:clamp(39px,10.2vw,49px);line-height:1.06!important;max-width:100%}.client-theme .section-title{font-size:clamp(33px,8.8vw,44px);line-height:1.05!important}
  .world-card h3{font-size:27px}
  .video-format-layout,.capability-preview-grid{grid-template-columns:1fr}.video-format-layout{max-width:430px}.capability-preview-visual{min-height:270px}
  .lightroom-stage-meta{grid-template-columns:1fr;gap:11px}.lightroom-stage-status{justify-self:start}.lightroom-stage-meta .primary-archive-link{grid-column:auto;justify-self:stretch;width:100%;max-width:none;margin:0!important}
  .editorial-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:155px;gap:9px}.editorial-photo-a{grid-column:1/-1;grid-row:span 2}.editorial-photo-b{grid-column:1;grid-row:span 1}.editorial-photo-c{grid-column:2;grid-row:span 1}.editorial-photo-d{grid-column:1/-1;grid-row:span 1}.editorial-photo-e{grid-column:1;grid-row:span 1}.editorial-photo-f{grid-column:2;grid-row:span 1}.editorial-photo-g{grid-column:1/-1;grid-row:span 1}.editorial-photo figcaption{padding:8px 10px;font-size:7px}.editorial-photo figcaption small{display:none}
  .client-photo-mosaic{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:220px 165px 165px;gap:9px;margin-top:24px}.client-photo-cell-a{grid-column:1/3;grid-row:1}.client-photo-cell-b{grid-column:1;grid-row:2}.client-photo-cell-c{grid-column:2;grid-row:2}.client-photo-cell-d{grid-column:1;grid-row:3}.client-photo-cell-e{grid-column:2;grid-row:3}.client-photo-cell figcaption span{font-size:9px}.client-photo-cell figcaption small{display:none}
  .client-brand-hero-1370 .client-brand-visual{min-height:500px}.client-brand-hero-1370 .client-brand-visual::before{right:0;top:8%;width:70%;height:82%;border-radius:160px 160px 22px 22px}.client-brand-hero-1370 .client-brand-visual::after{left:-8%;bottom:1%;width:118px}.client-brand-hero-1370 .client-brand-photo-main{inset:0 12% 8% 0!important;border-radius:160px 160px 24px 24px!important}.client-brand-hero-1370 .client-brand-photo-secondary{right:0!important;bottom:1%!important;width:43%!important;height:34%!important;border-radius:13px!important;outline:6px solid #f3f0e9!important}.client-brand-hero-1370 .client-brand-logo-float{left:8px!important;top:9px!important;bottom:auto!important;min-width:168px}.client-brand-hero-1370 .client-brand-visual-index{right:5px;top:6px}
}
@media(max-width:380px){
  .hero h1,.page-hero h1{font-size:clamp(39px,12vw,50px)}.client-brand-copy h1,html[data-lang="fr"] .client-brand-copy h1{font-size:clamp(36px,9.8vw,43px)}.world-card h3{font-size:25px}
}


/* V61 final QA touches */
.client-theme .type-accent{color:var(--client-accent)}
.client-brand-hero-dai .type-accent{color:#dbd3ba}
#selected-projects,#video-world,#photography-world,#capabilities-world,#web-world,#brands,#film,#gallery,#motion{scroll-margin-top:104px}
@media(max-width:680px){#selected-projects,#video-world,#photography-world,#capabilities-world,#web-world,#brands,#film,#gallery,#motion{scroll-margin-top:86px}}


/* =========================================================
   V62 — REFINED TYPE, IN-PAGE VIDEO, MOBILE MENU MOTION
   ========================================================= */
:root{
  --mod-h1-weight:350;
  --mod-h2-weight:315;
  --mod-h3-weight:285;
}

/* Keep the expressive typeface, but let counters, accents and UI create contrast. */
.hero h1,.page-hero h1,.contact-grid h1,.big-cta h2,.five-worlds-hero h1,
.client-brand-copy h1{
  font-weight:var(--mod-h1-weight)!important;
  font-variation-settings:"wght" var(--mod-h1-weight)!important;
  line-height:.98!important;
  letter-spacing:-.026em!important;
  padding-block:.035em .07em;
}
.section-title,.project-strip-head h2,.copy-large h2,.about-copy h2,.project-summary h2,
.website-panel h2,.workflow-human h2{
  font-weight:var(--mod-h2-weight)!important;
  font-variation-settings:"wght" var(--mod-h2-weight)!important;
  line-height:1.035!important;
  letter-spacing:-.018em!important;
}
.tile-content h3,.service-card h3,.video-card h3,.workflow-step h3,.world-card h3,
.media-card-copy h3,.client-theme .capability-heading h3,.brand-motion-copy h3,
.capability-preview-copy h3,.lightroom-stage-meta h3,.web-project-copy h3,
.brand-work-copy h3,.client-space-copy h3{
  font-weight:var(--mod-h3-weight)!important;
  font-variation-settings:"wght" var(--mod-h3-weight)!important;
  letter-spacing:-.006em!important;
}
.client-brand-copy h1{font-weight:335!important;font-variation-settings:"wght" 335!important}
.client-theme .section-title{font-weight:305!important;font-variation-settings:"wght" 305!important}
.type-accent,.hero h1 em{
  font-weight:400!important;
  font-variation-settings:normal!important;
  letter-spacing:.025em!important;
  line-height:.78!important;
  vertical-align:-.035em!important;
}
@media(max-width:680px){
  .hero h1,.page-hero h1,.five-worlds-hero h1{letter-spacing:-.022em!important;line-height:1!important}
  .client-brand-copy h1{font-weight:325!important;font-variation-settings:"wght" 325!important;line-height:1.035!important}
  .section-title{line-height:1.055!important}
}

/* The Motion/Graphic preview now uses an intentional two-font composition. */
.capability-preview-mark{
  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.04em;
  width:min(88%,560px);
  font-size:clamp(43px,4.3vw,67px)!important;
  font-weight:280!important;
  font-variation-settings:"wght" 280!important;
  line-height:.86!important;
  letter-spacing:-.018em!important;
  text-align:center;
}
.capability-word{display:block;max-width:100%;white-space:nowrap}
.capability-word-brand{font-family:var(--font-brand);font-weight:280;font-variation-settings:"wght" 280}
.capability-word-accent{
  font-family:var(--font-accent);
  font-size:.73em;
  font-weight:400;
  font-variation-settings:normal;
  line-height:.76;
  letter-spacing:.045em;
}
.capability-motion .capability-word-accent{color:var(--blue-soft)}
.capability-graphics .capability-word-accent{color:var(--ink)}
@media(max-width:680px){
  .capability-preview-mark{font-size:clamp(39px,13vw,58px)!important;width:92%}
  .capability-word-accent{font-size:.70em}
}

/* YouTube facade: visible portfolio media that becomes the official player in place. */
.youtube-facade{
  appearance:none;-webkit-appearance:none;font:inherit;
}
.youtube-shell[data-youtube-shell]{position:relative;background:#061927}
.youtube-shell[data-youtube-shell] iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0;background:#061927;
}
.youtube-shell.is-playing .youtube-facade{display:none}
.youtube-facade:focus-visible{outline:3px solid var(--blue-soft);outline-offset:-5px}
.youtube-facade.is-loading .youtube-play-button{animation:dvVideoPulse .8s ease-in-out infinite alternate}
@keyframes dvVideoPulse{to{transform:translate(-50%,-50%) scale(.92);opacity:.72}}
.youtube-local-message{
  position:absolute;z-index:5;inset:16px;display:grid;place-content:center;text-align:center;gap:9px;
  padding:24px;border:1px solid rgba(255,255,255,.2);border-radius:20px;
  color:white;background:rgba(6,25,39,.94);backdrop-filter:blur(18px)
}
.youtube-local-message strong{font-family:var(--font-brand);font-size:25px;font-weight:300;font-variation-settings:"wght" 300}
.youtube-local-message span{max-width:34ch;color:rgba(255,255,255,.7);font-size:13px}
.video-showcase-card .media-ui-bar>a{position:relative;z-index:2}

/* Mobile navigation belongs to the same dark glass UI as the header. */
@media(max-width:980px){
  .menu-button{
    width:92px!important;min-width:92px!important;height:40px!important;
    padding:0 7px 0 13px!important;border:1px solid rgba(255,255,255,.16)!important;
    border-radius:15px!important;background:rgba(255,255,255,.075)!important;color:white!important;
    box-shadow:inset 0 1px rgba(255,255,255,.08),0 10px 24px rgba(0,0,0,.12)!important;
    backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)
  }
  .menu-button .dv-menu-copy{font-size:9px;font-weight:780;letter-spacing:.13em;color:white}
  .menu-button .dv-menu-plus{
    width:25px;height:25px;border-radius:9px;background:var(--blue-soft)!important;color:var(--ink)!important;
    box-shadow:inset 0 1px rgba(255,255,255,.75),0 6px 16px rgba(0,0,0,.18)
  }
  .mobile-menu[open] .menu-button{background:var(--paper)!important;color:var(--ink)!important;border-color:rgba(255,255,255,.55)!important}
  .mobile-menu[open] .menu-button .dv-menu-copy{color:var(--ink)}
  .mobile-menu[open] .menu-button .dv-menu-plus{background:var(--ink)!important;color:white!important}

  .mobile-nav{
    counter-reset:dvnav;
    background:
      linear-gradient(rgba(122,167,196,.09) 1px,transparent 1px),
      linear-gradient(90deg,rgba(122,167,196,.09) 1px,transparent 1px),
      radial-gradient(circle at 82% 13%,rgba(122,167,196,.24),transparent 27%),
      radial-gradient(circle at 12% 88%,rgba(244,81,36,.14),transparent 25%),
      rgba(6,25,39,.988);
    background-size:42px 42px,42px 42px,auto,auto,auto;
    padding-top:max(122px,calc(env(safe-area-inset-top) + 104px));
    gap:0;
    clip-path:inset(0 0 100% 0 round 0 0 34px 34px);
    transform:translateY(-12px) scale(.992);
    transform-origin:top right;
    transition:clip-path .52s cubic-bezier(.2,.8,.2,1),opacity .3s ease,transform .52s cubic-bezier(.2,.8,.2,1),visibility .3s;
  }
  .mobile-nav::before{
    content:"DVSTUDIO / NAVIGATION";display:block;margin-bottom:18px;color:rgba(255,255,255,.42);
    font-size:9px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;
    opacity:0;transform:translateY(10px);transition:opacity .3s .08s,transform .4s .08s
  }
  .mobile-menu[open] .mobile-nav,.mobile-nav.is-open{
    clip-path:inset(0 round 0);transform:none
  }
  .mobile-menu[open] .mobile-nav::before{opacity:1;transform:none}
  .mobile-nav>a{
    counter-increment:dvnav;display:grid;grid-template-columns:35px 1fr auto;align-items:center;gap:12px;
    min-height:74px;padding:11px 4px;border-bottom:1px solid rgba(255,255,255,.13);
    font-family:var(--font-brand);font-size:clamp(31px,9vw,46px);font-weight:305;line-height:.95;
    font-variation-settings:"wght" 305;letter-spacing:-.016em;
    opacity:0;transform:translateY(20px);transition:opacity .34s ease,transform .46s cubic-bezier(.2,.8,.2,1),background .2s,padding .2s
  }
  .mobile-nav>a::before{content:"0" counter(dvnav);font-family:var(--font-ui);font-size:9px;font-weight:800;letter-spacing:.11em;color:var(--blue-soft)}
  .mobile-nav>a::after{content:"↗";font-family:var(--font-ui);font-size:17px;font-weight:400;color:rgba(255,255,255,.55)}
  .mobile-nav>a:active,.mobile-nav>a[aria-current="page"]{padding-inline:12px;background:rgba(255,255,255,.065);border-radius:14px}
  .mobile-menu[open] .mobile-nav>a{opacity:1;transform:none}
  .mobile-menu[open] .mobile-nav>a:nth-of-type(1){transition-delay:.11s}
  .mobile-menu[open] .mobile-nav>a:nth-of-type(2){transition-delay:.16s}
  .mobile-menu[open] .mobile-nav>a:nth-of-type(3){transition-delay:.21s}
  .mobile-menu[open] .mobile-nav>a:nth-of-type(4){transition-delay:.26s}
  .mobile-lang{opacity:0;transform:translateY(14px);transition:opacity .3s .31s,transform .4s .31s}
  .mobile-menu[open] .mobile-lang{opacity:1;transform:none}
}
@media(max-width:380px){
  .menu-button{width:86px!important;min-width:86px!important;padding-left:11px!important}
  .mobile-nav>a{font-size:clamp(29px,9vw,39px);min-height:68px}
}

@media(prefers-reduced-motion:reduce){
  .mobile-nav,.mobile-nav::before,.mobile-nav>a,.mobile-lang,.youtube-facade .youtube-play-button{transition:none!important;animation:none!important}
}


/* =========================================================
   V63 — FULL-CARD VIDEO, SUBWAY PHOTO LABELS, LOCAL QA
   ========================================================= */

/* The small editorial signature is intentionally Subway Berlin. */
.client-photo-cell figcaption small{
  font-family:var(--font-accent)!important;
  font-size:11px!important;
  font-weight:400!important;
  letter-spacing:.055em!important;
  line-height:.76!important;
  opacity:.88!important;
  transform:translateY(1px);
}

/* Once Play is pressed, the video becomes the entire visual card. */
.media-card.is-video-playing{
  position:relative;
  overflow:hidden;
  background:#000!important;
  border-color:rgba(255,255,255,.12);
  animation:dvCardTakeover .38s cubic-bezier(.2,.75,.2,1) both;
}
.media-card.is-video-playing>.media-ui-bar,
.media-card.is-video-playing>.media-card-copy{
  display:none!important;
}
.media-card.is-video-playing .youtube-shell{
  width:100%;
  height:auto;
  min-height:0;
  border-radius:inherit;
  background:#000;
}
.youtube-shell[data-youtube-shell] iframe{
  z-index:6;
  display:block;
  opacity:0;
  transform:scale(1.018);
  background:#000;
  transition:opacity .28s ease,transform .45s cubic-bezier(.2,.75,.2,1);
}
.youtube-shell[data-youtube-shell] iframe.is-ready{
  opacity:1;
  transform:none;
}
.youtube-shell.is-playing .youtube-facade{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.youtube-player-close{
  position:absolute;
  z-index:8;
  top:11px;
  right:11px;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.28);
  border-radius:12px;
  color:#fff;
  background:rgba(6,25,39,.66);
  box-shadow:0 8px 22px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.12);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  font:400 22px/1 var(--font-ui);
  cursor:pointer;
  transition:transform .2s,background .2s;
}
.youtube-player-close:hover{transform:scale(1.06);background:rgba(6,25,39,.9)}
@keyframes dvCardTakeover{
  from{transform:translateY(3px) scale(.992);box-shadow:0 14px 38px rgba(6,25,39,.08)}
  to{transform:none}
}

/* file:// cannot provide the HTTP identity required by YouTube.
   Keep the poster visible and show a compact, dismissible instruction. */
.youtube-local-message{
  inset:auto 12px 12px!important;
  display:grid!important;
  grid-template-columns:auto 1fr auto;
  place-content:initial!important;
  align-items:center;
  gap:10px!important;
  padding:11px 12px!important;
  border-radius:15px!important;
  text-align:left!important;
  color:#fff;
  background:rgba(6,25,39,.91)!important;
  box-shadow:0 14px 34px rgba(0,0,0,.26);
}
.youtube-local-message strong{
  font-family:var(--font-accent)!important;
  font-size:14px!important;
  font-weight:400!important;
  line-height:.8!important;
  white-space:nowrap;
}
.youtube-local-message span{
  max-width:none!important;
  font-size:10px!important;
  line-height:1.35!important;
}
.youtube-local-message button{
  width:27px;height:27px;border:0;border-radius:9px;
  color:#061927;background:var(--blue-soft);font:600 18px/1 var(--font-ui);cursor:pointer;
}

@media(max-width:680px){
  .client-photo-cell figcaption small{display:none!important}
  .youtube-local-message{grid-template-columns:1fr auto!important}
  .youtube-local-message strong{grid-column:1;font-size:13px!important}
  .youtube-local-message span{grid-column:1;font-size:9px!important}
  .youtube-local-message button{grid-column:2;grid-row:1/3}
  .youtube-player-close{top:8px;right:8px;width:31px;height:31px;border-radius:10px}
}

@media(prefers-reduced-motion:reduce){
  .media-card.is-video-playing,.youtube-shell[data-youtube-shell] iframe{animation:none!important;transition:none!important}
}


/* =========================================================
   V64 — LANGUAGE SELECTOR + CLEAN HEADER
   The former decorative “⌘ K” badge suggested a command palette
   that did not exist. It is removed and replaced by a real control.
   ========================================================= */
.nav-shell{overflow:visible}
.desktop-nav{overflow:visible}
.language-switcher{position:relative;flex:0 0 auto}
.language-trigger{
  appearance:none;-webkit-appearance:none;border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.055);color:white;min-height:38px;padding:0 10px;
  border-radius:11px;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  cursor:pointer;font-family:var(--font-ui);font-size:10px;font-weight:820;letter-spacing:.08em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07);transition:background .22s,border-color .22s,transform .22s,box-shadow .22s
}
.language-trigger:hover,.language-switcher.is-open .language-trigger{
  background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.24);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 9px 22px rgba(0,0,0,.16)
}
.language-trigger:focus-visible{outline:2px solid var(--blue-soft);outline-offset:3px}
.language-icon{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round;opacity:.76}
.language-chevron{width:10px;height:7px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round;opacity:.58;transition:transform .28s var(--ui-ease)}
.language-switcher.is-open .language-chevron{transform:rotate(180deg)}
.language-popover{
  position:absolute;z-index:130;right:0;top:calc(100% + 10px);width:190px;padding:7px;
  border:1px solid rgba(255,255,255,.14);border-radius:16px;
  background:rgba(5,22,33,.96);box-shadow:0 24px 58px rgba(0,0,0,.32),inset 0 1px rgba(255,255,255,.08);
  backdrop-filter:blur(24px) saturate(145%);-webkit-backdrop-filter:blur(24px) saturate(145%);
  opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-7px) scale(.97);transform-origin:top right;
  transition:opacity .2s ease,visibility .2s,transform .28s var(--ui-ease)
}
.language-switcher.is-open .language-popover{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.language-popover button{
  width:100%;min-height:48px;border:0;border-radius:11px;background:transparent;color:white;padding:7px 10px;
  display:grid;grid-template-columns:29px 1fr 10px;align-items:center;text-align:left;cursor:pointer;
  opacity:0;transform:translateY(7px);transition:background .18s,opacity .24s,transform .3s var(--ui-ease)
}
.language-switcher.is-open .language-popover button{opacity:1;transform:none}
.language-switcher.is-open .language-popover button:nth-child(1){transition-delay:.035s}
.language-switcher.is-open .language-popover button:nth-child(2){transition-delay:.075s}
.language-popover button:hover,.language-popover button[aria-pressed="true"]{background:rgba(255,255,255,.09)}
.language-popover button>span{font-size:11px;font-weight:850;letter-spacing:.08em}
.language-popover button small{font-size:11px;color:rgba(255,255,255,.58)}
.language-popover button i{width:7px;height:7px;border-radius:50%;background:transparent;box-shadow:0 0 0 4px transparent}
.language-popover button[aria-pressed="true"] i{background:var(--ui-green);box-shadow:0 0 0 4px rgba(142,227,182,.11)}

@media(min-width:981px){
  .language-switcher--desktop{margin-inline:2px 5px}
  .language-switcher--mobile{display:none!important}
}

@media(max-width:980px){
  .language-switcher--desktop{display:none!important}
  .mobile-lang.language-switcher--mobile{display:block;margin-top:23px;position:relative;z-index:2}
  .language-switcher--mobile .language-trigger{
    width:100%;min-height:58px;padding:0 15px;border-radius:16px;justify-content:flex-start;
    background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.14)
  }
  .language-trigger-copy{display:flex;align-items:center;gap:10px;margin-right:auto;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.68)}
  .language-switcher--mobile .language-current{font-family:var(--font-brand);font-size:18px;font-weight:330;font-variation-settings:"wght" 330;letter-spacing:0}
  .language-switcher--mobile .language-chevron{margin-left:3px}
  .language-switcher--mobile .language-popover{
    position:relative;right:auto;top:auto;width:100%;margin-top:8px;transform:translateY(-6px) scale(.99);transform-origin:top;
    background:rgba(255,255,255,.045);box-shadow:none;border-color:rgba(255,255,255,.12);display:none
  }
  .language-switcher--mobile.is-open .language-popover{display:block;animation:dvLangMobileOpen .32s var(--ui-ease) both}
  @keyframes dvLangMobileOpen{from{opacity:0;transform:translateY(-8px) scale(.985)}to{opacity:1;transform:none}}
  .language-switcher--mobile .language-popover button{grid-template-columns:34px 1fr 10px;min-height:52px}
}

@media(prefers-reduced-motion:reduce){
  .language-trigger,.language-chevron,.language-popover,.language-popover button{transition:none!important;animation:none!important}
}


/* =========================================================
   V65 — CACHE-SAFE HEADER + LANGUAGE CONTROL
   A new asset filename prevents Edge/Chrome from reusing the
   previous header CSS when several extracted versions are opened.
   ========================================================= */
.site-header,.nav-shell,.desktop-nav{overflow:visible!important}
.nav-shell::before,.nav-shell::after,
.desktop-nav::before,.desktop-nav::after{
  content:none!important;
  display:none!important;
}

.desktop-nav{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:4px!important;
  min-width:0;
}
.language-switcher{
  position:relative!important;
  display:block;
  flex:0 0 auto;
  margin:0 3px!important;
  z-index:180;
}
.language-trigger{
  all:unset;
  box-sizing:border-box;
  min-width:72px;
  height:42px;
  padding:0 11px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background:rgba(255,255,255,.055);
  color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.075);
  font-family:var(--font-ui);
  font-size:10px;
  font-weight:800;
  line-height:1;
  letter-spacing:.08em;
  cursor:pointer;
  transition:background .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.language-trigger:hover,.language-trigger:focus-visible,.language-switcher.is-open .language-trigger{
  background:rgba(255,255,255,.105);
  border-color:rgba(255,255,255,.25);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 10px 24px rgba(0,0,0,.18);
}
.language-trigger:focus-visible{outline:2px solid var(--blue-soft);outline-offset:3px}
.language-icon{
  display:block!important;
  width:15px!important;height:15px!important;
  flex:0 0 15px;
  fill:none!important;stroke:currentColor!important;stroke-width:1.55!important;
  stroke-linecap:round;stroke-linejoin:round;opacity:.75;
}
.language-current{display:inline-block;min-width:18px;text-align:center}
.language-chevron{
  display:block!important;
  width:9px!important;height:6px!important;
  flex:0 0 9px;
  fill:none!important;stroke:currentColor!important;stroke-width:1.55!important;
  stroke-linecap:round;stroke-linejoin:round;opacity:.58;
  transition:transform .25s var(--ui-ease);
}
.language-switcher.is-open .language-chevron{transform:rotate(180deg)}
.language-popover{
  box-sizing:border-box;
  position:absolute!important;
  z-index:220!important;
  top:calc(100% + 9px)!important;
  right:0!important;
  left:auto!important;
  width:188px!important;
  padding:7px!important;
  display:grid!important;
  gap:3px!important;
  border:1px solid rgba(255,255,255,.14)!important;
  border-radius:16px!important;
  background:rgba(5,22,33,.97)!important;
  color:#fff!important;
  box-shadow:0 24px 58px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.08)!important;
  backdrop-filter:blur(24px) saturate(145%);
  -webkit-backdrop-filter:blur(24px) saturate(145%);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-7px) scale(.975);
  transform-origin:top right;
  transition:opacity .18s ease,visibility .18s ease,transform .25s var(--ui-ease);
}
.language-switcher.is-open .language-popover{
  opacity:1;visibility:visible;pointer-events:auto;transform:none;
}
.language-popover button{
  all:unset;
  box-sizing:border-box;
  width:100%;
  min-height:47px;
  padding:7px 10px;
  display:grid;
  grid-template-columns:31px minmax(0,1fr) 9px;
  align-items:center;
  gap:4px;
  border-radius:11px;
  color:#fff;
  cursor:pointer;
  transition:background .18s ease,transform .18s ease;
}
.language-popover button:hover,.language-popover button:focus-visible,
.language-popover button[aria-pressed="true"]{background:rgba(255,255,255,.09)}
.language-popover button:focus-visible{outline:1px solid rgba(143,197,229,.8);outline-offset:-2px}
.language-popover button>span{font:800 11px/1 var(--font-ui);letter-spacing:.08em}
.language-popover button small{font:500 11px/1.15 var(--font-ui);color:rgba(255,255,255,.62)}
.language-popover button i{display:block;width:7px;height:7px;border-radius:50%;background:transparent}
.language-popover button[aria-pressed="true"] i{background:var(--ui-green);box-shadow:0 0 0 4px rgba(142,227,182,.11)}

@media(min-width:981px){
  .language-switcher--desktop{display:block!important}
  .language-switcher--mobile{display:none!important}
  .desktop-nav>.nav-cta{margin-left:2px}
}

@media(max-width:1100px) and (min-width:981px){
  .desktop-nav{gap:2px!important}
  .desktop-nav>a:not(.nav-cta){padding-inline:9px!important;font-size:11px!important}
  .desktop-nav>.nav-cta{padding-inline:12px!important;font-size:11px!important}
  .language-trigger{min-width:66px;padding-inline:9px}
}

@media(max-width:980px){
  .desktop-nav,.language-switcher--desktop{display:none!important}
  .mobile-lang.language-switcher--mobile{
    display:block!important;
    position:relative!important;
    z-index:4!important;
    margin:22px 0 0!important;
  }
  .language-switcher--mobile .language-trigger{
    width:100%;height:58px;padding:0 15px;justify-content:flex-start;
    border-radius:16px;background:rgba(255,255,255,.055);
  }
  .language-trigger-copy{display:flex!important;align-items:center;gap:10px;margin-right:auto;color:rgba(255,255,255,.7);font-size:10px;letter-spacing:.13em;text-transform:uppercase}
  .language-switcher--mobile .language-current{font-family:var(--font-brand);font-size:18px;font-weight:330;font-variation-settings:"wght" 330;letter-spacing:0}
  .language-switcher--mobile .language-popover{
    position:relative!important;top:auto!important;right:auto!important;left:auto!important;
    width:100%!important;margin-top:8px!important;transform:translateY(-6px) scale(.99);transform-origin:top;
    display:none!important;background:rgba(255,255,255,.045)!important;box-shadow:none!important;
  }
  .language-switcher--mobile.is-open .language-popover{display:grid!important;opacity:1;visibility:visible;pointer-events:auto;transform:none}
  .language-switcher--mobile .language-popover button{grid-template-columns:34px minmax(0,1fr) 10px;min-height:52px}
}

@media(prefers-reduced-motion:reduce){
  .language-trigger,.language-chevron,.language-popover,.language-popover button{transition:none!important}
}


/* V66 — Direct contact form / Netlify Forms */
.contact-panel{min-height:610px;display:block;transition:min-height .5s var(--ui-ease),background .4s var(--ui-ease),box-shadow .4s var(--ui-ease)}
.contact-form-fields{transition:opacity .26s ease,transform .26s var(--ui-ease);transform-origin:center top}
.contact-form-fields.is-leaving{opacity:0;transform:translateY(-10px) scale(.985);pointer-events:none}
.form-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.contact-submit{width:100%;margin-top:18px;min-height:52px;display:grid;place-items:center}
.contact-submit>span{grid-area:1/1;transition:opacity .2s ease,transform .2s ease}
.contact-submit .submit-loading{display:inline-flex;align-items:center;gap:9px;opacity:0;transform:translateY(5px);pointer-events:none}
.contact-submit .submit-loading i{width:15px;height:15px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:dv-form-spin .8s linear infinite}
.contact-submit.is-loading .submit-default{opacity:0;transform:translateY(-5px)}
.contact-submit.is-loading .submit-loading{opacity:1;transform:none}
.contact-submit:disabled{cursor:wait;opacity:.78}
@keyframes dv-form-spin{to{transform:rotate(360deg)}}
.form-privacy{font-size:11px;color:var(--muted);margin:12px 0 0;line-height:1.55}
.form-status{min-height:20px;margin:10px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}
.form-status.is-error{color:#a43d37}
.contact-success{min-height:500px;padding:46px 8px 18px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;opacity:0;transform:translateY(16px) scale(.98);transition:opacity .42s ease,transform .48s var(--ui-ease)}
.contact-success[hidden]{display:none}
.contact-success.is-visible{opacity:1;transform:none}
.contact-success h2{font-family:var(--font-display);font-variation-settings:"wght" 330;font-size:clamp(46px,6vw,78px);line-height:.92;letter-spacing:-.055em;margin:14px 0 20px;max-width:8ch}
.contact-success p{font-size:clamp(17px,1.6vw,21px);line-height:1.55;color:var(--muted);max-width:31rem;margin:0 0 28px}
.success-mark{width:70px;height:70px;margin-bottom:25px;color:#246f54}
.success-mark svg{width:100%;height:100%;overflow:visible}
.success-mark circle{fill:rgba(69,182,133,.12);stroke:rgba(36,111,84,.35);stroke-width:2}
.success-mark path{fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:42;stroke-dashoffset:42;transition:stroke-dashoffset .65s .2s var(--ui-ease)}
.contact-success.is-visible .success-mark path{stroke-dashoffset:0}
.contact-panel.is-sent{background:linear-gradient(145deg,rgba(255,255,255,.91),rgba(239,247,243,.88));box-shadow:0 28px 80px rgba(6,25,39,.11),inset 0 1px 0 #fff}
@media(max-width:680px){
  .contact-panel{min-height:570px}
  .contact-success{min-height:450px;padding:30px 2px 8px}
  .contact-success h2{font-size:clamp(44px,14vw,66px)}
}
@media(prefers-reduced-motion:reduce){
  .contact-form-fields,.contact-success,.success-mark path,.contact-panel{transition:none!important}
  .contact-submit .submit-loading i{animation:none}
}


/* V67 — robust image layers for Netlify/static hosting.
   Background images are real <img> elements so their URLs are resolved by HTML,
   not through CSS custom properties that may be rewritten during deployment. */
.client-space-card-photo{
  background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.035))!important;
}
.client-space-card-photo::before{display:none!important}
.client-space-bg{
  position:absolute;
  inset:0;
  z-index:-2;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transform:translateZ(0) scale(1.001);
  transition:transform .55s ease;
}
.client-space-card-photo:hover .client-space-bg{transform:translateZ(0) scale(1.035)}

.explore-project-card{
  background:none!important;
}
.explore-project-card::before{display:none!important}
.explore-project-bg{
  position:absolute;
  inset:0;
  z-index:-2;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transform:translateZ(0) scale(1.001);
  transition:transform .55s ease;
}
.explore-project-card:hover .explore-project-bg{transform:translateZ(0) scale(1.035)}


/* V68 — DAI gallery: two original favourites + three new 2026 frames. */


/* =========================================================
   V69 — MOBILE BRAND NAV + STACKED HERO BACKDROP
   A compact edit-timeline mark replaces the generic MENU +
   control. On the home page, the hero image remains layered
   behind the first mobile sections, which scroll over it.
   ========================================================= */

@media(max-width:980px){
  /* Brand-specific mobile trigger: an asymmetric edit timeline,
     not a classic hamburger and not a text-heavy MENU button. */
  .site-header>.mobile-menu{
    right:20px!important;
    top:7px!important;
  }
  .menu-button{
    width:50px!important;
    min-width:50px!important;
    height:42px!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    border-radius:14px!important;
    border:1px solid rgba(255,255,255,.18)!important;
    color:white!important;
    background:linear-gradient(145deg,rgba(255,255,255,.105),rgba(255,255,255,.045))!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 10px 28px rgba(0,0,0,.18)!important;
    backdrop-filter:blur(16px) saturate(130%)!important;
    -webkit-backdrop-filter:blur(16px) saturate(130%)!important;
    overflow:hidden;
  }
  .menu-button::before{
    content:""!important;
    display:block!important;
    position:absolute!important;
    inset:5px!important;
    width:auto!important;
    height:auto!important;
    border-radius:10px!important;
    border:1px solid rgba(207,230,243,.14)!important;
    transform:none!important;
    opacity:1!important;
    background:
      linear-gradient(rgba(207,230,243,.07) 1px,transparent 1px),
      linear-gradient(90deg,rgba(207,230,243,.07) 1px,transparent 1px)!important;
    background-size:8px 8px!important;
    pointer-events:none;
  }
  .menu-button::after{display:none!important;content:none!important}
  .menu-button .dv-menu-copy{
    position:relative!important;
    display:block!important;
    width:25px!important;
    height:18px!important;
    font-size:0!important;
    line-height:0!important;
    color:white!important;
    z-index:2;
  }
  .menu-button .dv-menu-copy::before,
  .menu-button .dv-menu-copy::after,
  .menu-button .dv-menu-open{
    content:""!important;
    position:absolute!important;
    left:2px!important;
    height:2px!important;
    border-radius:999px!important;
    background:currentColor!important;
    box-shadow:none!important;
    transform-origin:center!important;
    transition:top .28s cubic-bezier(.2,.8,.2,1),left .28s cubic-bezier(.2,.8,.2,1),width .28s cubic-bezier(.2,.8,.2,1),transform .32s cubic-bezier(.2,.8,.2,1),opacity .2s ease!important;
  }
  .menu-button .dv-menu-copy::before{top:1px!important;width:14px!important}
  .menu-button .dv-menu-open{
    top:8px!important;
    width:22px!important;
    opacity:1!important;
    font-size:0!important;
  }
  .menu-button .dv-menu-copy::after{top:15px!important;left:8px!important;width:16px!important}
  .menu-button .dv-menu-open [data-en],
  .menu-button .dv-menu-open [data-fr]{font-size:0!important;color:transparent!important}
  .menu-button .dv-menu-close{display:none!important}
  .menu-button .dv-menu-plus{
    position:absolute!important;
    z-index:3!important;
    right:9px!important;
    top:8px!important;
    width:5px!important;
    height:5px!important;
    min-width:0!important;
    padding:0!important;
    border-radius:50%!important;
    color:transparent!important;
    font-size:0!important;
    line-height:0!important;
    background:var(--blue-soft)!important;
    box-shadow:0 0 0 3px rgba(207,230,243,.10),0 0 16px rgba(207,230,243,.38)!important;
    transform:none!important;
    transition:transform .25s ease,opacity .2s ease!important;
  }
  .mobile-menu[open] .menu-button{
    color:var(--ink)!important;
    background:var(--paper)!important;
    border-color:rgba(255,255,255,.62)!important;
  }
  .mobile-menu[open] .menu-button .dv-menu-copy{color:var(--ink)!important}
  .mobile-menu[open] .menu-button::before{
    border-color:rgba(6,25,39,.09)!important;
    background:
      linear-gradient(rgba(6,25,39,.045) 1px,transparent 1px),
      linear-gradient(90deg,rgba(6,25,39,.045) 1px,transparent 1px)!important;
    background-size:8px 8px!important;
  }
  .mobile-menu[open] .menu-button .dv-menu-copy::before{
    top:8px!important;left:2px!important;width:22px!important;transform:rotate(45deg)!important;
  }
  .mobile-menu[open] .menu-button .dv-menu-open{opacity:0!important;transform:scaleX(.35)!important}
  .mobile-menu[open] .menu-button .dv-menu-copy::after{
    top:8px!important;left:2px!important;width:22px!important;transform:rotate(-45deg)!important;
  }
  .mobile-menu[open] .menu-button .dv-menu-plus{opacity:0!important;transform:scale(0)!important}
}

@media(max-width:680px){
  html.home-page{background:var(--ink)!important}
  body[data-page="index.html"]{
    background:var(--ink)!important;
    overscroll-behavior-y:none;
  }

  /* The existing HTML image becomes a viewport backdrop. It stays
     behind the hero while the opaque sections slide over it. */
  body[data-page="index.html"] .hero{
    position:relative;
    z-index:1;
    min-height:100dvh!important;
    padding:
      calc(102px + env(safe-area-inset-top))
      0
      max(94px,calc(72px + env(safe-area-inset-bottom)))!important;
    align-items:end!important;
    overflow:visible!important;
    isolation:isolate;
    background:transparent!important;
  }
  body[data-page="index.html"] .hero-media{
    position:fixed!important;
    z-index:0!important;
    inset:0!important;
    width:100%!important;
    height:100dvh!important;
    min-height:100svh!important;
    overflow:hidden!important;
    pointer-events:none!important;
    background:var(--ink)!important;
  }
  body[data-page="index.html"] .hero-media picture,
  body[data-page="index.html"] .hero-media img{
    width:100%!important;
    height:100%!important;
  }
  body[data-page="index.html"] .hero-media img{
    object-fit:cover!important;
    object-position:58% center!important;
    transform:scale(1.025)!important;
  }
  body[data-page="index.html"] .hero-media::after{
    background:
      linear-gradient(180deg,rgba(2,11,18,.16) 0%,rgba(2,11,18,.42) 34%,rgba(2,11,18,.78) 67%,rgba(2,11,18,.97) 100%),
      radial-gradient(circle at 18% 72%,rgba(122,167,196,.25),transparent 40%)!important;
  }
  body[data-page="index.html"] .hero::before{z-index:1!important}
  body[data-page="index.html"] .hero-inner{
    position:relative!important;
    z-index:3!important;
    width:min(calc(100% - 28px),var(--max))!important;
    min-height:calc(100dvh - 196px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    align-content:end!important;
    align-items:end!important;
  }
  body[data-page="index.html"] .hero-actions{
    position:relative;
    z-index:4;
    margin-top:24px!important;
  }
  body[data-page="index.html"] .hero-actions .btn{
    min-height:48px;
  }

  /* The first content panel is the top card of the page stack. Extra
     hero padding above prevents this overlap from covering the CTAs. */
  body[data-page="index.html"] .hero~section,
  body[data-page="index.html"] main~section,
  body[data-page="index.html"] .big-cta,
  body[data-page="index.html"] .site-footer{
    position:relative;
    z-index:4;
  }
  body[data-page="index.html"] .home-worlds-nav{
    margin-top:-34px;
    border-radius:30px 30px 0 0;
    box-shadow:0 -18px 55px rgba(2,10,17,.34),inset 0 1px 0 rgba(255,255,255,.08);
    overflow:hidden;
  }
  body[data-page="index.html"] .home-worlds-nav::before{
    content:"";
    display:block;
    width:48px;
    height:4px;
    margin:12px auto -2px;
    border-radius:999px;
    background:rgba(207,230,243,.28);
  }
}

@media(max-width:420px){
  .site-header>.mobile-menu{right:13px!important}
  .menu-button{width:48px!important;min-width:48px!important;height:40px!important}
  body[data-page="index.html"] .hero{
    padding-top:calc(94px + env(safe-area-inset-top))!important;
    padding-bottom:max(88px,calc(66px + env(safe-area-inset-bottom)))!important;
  }
  body[data-page="index.html"] .hero-inner{
    min-height:calc(100dvh - 182px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  }
}

@media(prefers-reduced-motion:reduce){
  .menu-button .dv-menu-copy::before,
  .menu-button .dv-menu-copy::after,
  .menu-button .dv-menu-open,
  .menu-button .dv-menu-plus{transition:none!important}
}


/* =========================================================
   V72 — EXPERIMENTAL 2026 / ADVANCED INTERACTION LAYER
   Native HTML/CSS/JS. No framework dependency.
   The original DV grid in Five Visual Worlds is preserved.
   ========================================================= */

:root{
  --dv-pointer-x:50vw;
  --dv-pointer-y:50vh;
  --dv-scroll-progress:0;
  --dv-scroll-velocity:0;
  --dv-glass-a:rgba(8,30,44,.54);
  --dv-glass-b:rgba(255,255,255,.105);
  --dv-glass-line:rgba(210,235,249,.22);
  --dv-glass-shine:rgba(235,248,255,.32);
  --dv-electric:#cfe6f3;
  --dv-cyan:#8fc9e9;
  --dv-ink:#061927;
  --dv-ease:cubic-bezier(.16,1,.3,1);
}

/* Global ambient light — a soft studio-light response, not a new background. */
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:9990;
  pointer-events:none;
  opacity:.34;
  background:
    radial-gradient(520px circle at var(--dv-pointer-x) var(--dv-pointer-y),rgba(141,201,233,.075),transparent 65%);
  mix-blend-mode:screen;
}
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:9989;
  pointer-events:none;
  opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
  background-size:180px 180px;
  mix-blend-mode:soft-light;
}

/* Liquid glass navigation — existing structure, richer material model. */
.nav-shell{
  position:relative;
  background:
    radial-gradient(190px 110px at var(--dv-nav-x,74%) var(--dv-nav-y,22%),rgba(226,247,255,.17),transparent 65%),
    linear-gradient(125deg,rgba(255,255,255,.095),rgba(255,255,255,.025) 48%,rgba(100,170,210,.06)),
    rgba(5,22,33,.63)!important;
  border-color:rgba(215,238,251,.20)!important;
  box-shadow:
    0 22px 64px rgba(1,8,13,.28),
    inset 0 1px 0 rgba(255,255,255,.20),
    inset 0 -1px 0 rgba(136,194,226,.08)!important;
  backdrop-filter:blur(30px) saturate(170%) contrast(1.05)!important;
  -webkit-backdrop-filter:blur(30px) saturate(170%) contrast(1.05)!important;
  transition:background .28s ease,border-color .28s ease,box-shadow .28s ease,transform .35s var(--dv-ease)!important;
}
.site-header.is-scrolled .nav-shell{
  background:
    radial-gradient(210px 120px at var(--dv-nav-x,74%) var(--dv-nav-y,22%),rgba(226,247,255,.19),transparent 66%),
    linear-gradient(125deg,rgba(255,255,255,.105),rgba(255,255,255,.035) 50%,rgba(100,170,210,.08)),
    rgba(5,22,33,.78)!important;
  border-color:rgba(215,238,251,.24)!important;
  box-shadow:0 26px 78px rgba(1,8,13,.34),inset 0 1px 0 rgba(255,255,255,.22)!important;
}
.language-popover,
.mobile-nav{
  backdrop-filter:blur(34px) saturate(165%) contrast(1.04)!important;
  -webkit-backdrop-filter:blur(34px) saturate(165%) contrast(1.04)!important;
}

/* Custom cursor — desktop only. */
.dv-cursor-dot,.dv-cursor-ring{
  position:fixed;
  left:0;top:0;
  z-index:10050;
  pointer-events:none;
  transform:translate3d(-100px,-100px,0);
  opacity:0;
}
.dv-cursor-dot{
  width:7px;height:7px;border-radius:50%;
  background:#fff;
  box-shadow:0 0 16px rgba(191,231,255,.75);
  mix-blend-mode:difference;
}
.dv-cursor-ring{
  width:58px;height:58px;
  margin:-29px 0 0 -29px;
  border-radius:50%;
  display:grid;place-items:center;
  border:1px solid rgba(224,244,255,.48);
  background:rgba(10,36,52,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 10px 34px rgba(0,0,0,.16);
  backdrop-filter:blur(9px) saturate(150%);
  -webkit-backdrop-filter:blur(9px) saturate(150%);
  transition:width .28s var(--dv-ease),height .28s var(--dv-ease),margin .28s var(--dv-ease),border-radius .28s var(--dv-ease),background .28s ease,opacity .2s ease;
}
.dv-cursor-ring span{
  font:850 8px/1 var(--font-ui);
  letter-spacing:.12em;
  color:#fff;
  opacity:0;
  transform:scale(.8);
  transition:opacity .2s ease,transform .26s var(--dv-ease);
}
.dv-cursor-enabled{cursor:none}
.dv-cursor-enabled :is(a,button,summary,[data-cursor-label]){cursor:none!important}
.dv-cursor-enabled :is(input,textarea,select,[contenteditable]){cursor:text!important}
.dv-cursor-visible .dv-cursor-dot,.dv-cursor-visible .dv-cursor-ring{opacity:1}
.dv-cursor-action .dv-cursor-ring{
  width:78px;height:78px;margin:-39px 0 0 -39px;
  background:rgba(8,30,44,.36);
  border-color:rgba(231,248,255,.62);
}
.dv-cursor-action .dv-cursor-ring span{opacity:1;transform:none}
.dv-cursor-press .dv-cursor-ring{width:62px;height:62px;margin:-31px 0 0 -31px}
.dv-cursor-text .dv-cursor-ring,.dv-cursor-text .dv-cursor-dot{opacity:0!important}

/* Hero: cinematic reveal without moving layout blocks after paint. */
.hero .eyebrow,
.hero .ui-page-meta,
.hero h1,
.hero .hero-copy,
.hero .hero-actions,
.hero .hero-note,
.page-hero .eyebrow,
.page-hero h1,
.page-hero p,
.client-brand-copy>*{
  animation:dv72-clip-in .9s var(--dv-ease) both;
}
.hero .ui-page-meta{animation-delay:.05s}
.hero h1,.page-hero h1,.client-brand-copy h1{animation-delay:.11s}
.hero .hero-copy,.page-hero p,.client-brand-copy>p{animation-delay:.18s}
.hero .hero-actions,.client-brand-copy .hero-actions{animation-delay:.25s}
.hero .hero-note{animation:dv72-glass-pop 1.05s .22s var(--dv-ease) both}
.client-brand-copy .client-brand-meta{animation-delay:.31s}
@keyframes dv72-clip-in{
  from{opacity:0;filter:blur(8px);clip-path:inset(0 0 82% 0);transform:translateY(8px)}
  to{opacity:1;filter:blur(0);clip-path:inset(0 0 0 0);transform:none}
}
@keyframes dv72-glass-pop{
  from{opacity:0;filter:blur(12px);transform:scale(.965)}
  to{opacity:1;filter:blur(0);transform:none}
}

/* Hero image gets depth, never changes the layout. */
.hero-media img{
  animation:dv72-hero-image 1.65s var(--dv-ease) both;
  will-change:transform,filter;
}
@keyframes dv72-hero-image{
  from{transform:scale(1.075);filter:saturate(.82) brightness(.84) blur(4px)}
  to{transform:scale(1.015);filter:saturate(1) brightness(1) blur(0)}
}

/* Liquid lens: a real overlay that optically reacts to the hero image. */
.dv-hero-lens{
  position:absolute;
  z-index:1;
  width:clamp(260px,29vw,470px);
  aspect-ratio:1;
  left:0;top:0;
  border-radius:46% 54% 58% 42% / 42% 44% 56% 58%;
  pointer-events:none;
  opacity:.72;
  background:
    radial-gradient(circle at 28% 22%,rgba(255,255,255,.27),transparent 16%),
    radial-gradient(circle at 75% 78%,rgba(91,170,217,.15),transparent 35%),
    linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.018));
  border:1px solid rgba(220,242,255,.30);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.28),
    inset 0 -18px 44px rgba(40,102,137,.10),
    0 38px 120px rgba(0,0,0,.18);
  backdrop-filter:blur(3px) saturate(1.28) contrast(1.06) brightness(1.03);
  -webkit-backdrop-filter:blur(3px) saturate(1.28) contrast(1.06) brightness(1.03);
  transform:translate3d(-600px,-600px,0) rotate(-8deg);
  will-change:transform;
  animation:dv72-liquid-morph 8s ease-in-out infinite alternate;
}
.dv-hero-lens::before{
  content:"";
  position:absolute;inset:9%;
  border-radius:inherit;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 18px 16px 34px rgba(255,255,255,.06);
}
.dv-hero-lens::after{
  content:"DV / LENS";
  position:absolute;
  right:14%;bottom:11%;
  color:rgba(255,255,255,.56);
  font:800 8px/1 var(--font-ui);
  letter-spacing:.18em;
}
@keyframes dv72-liquid-morph{
  0%{border-radius:46% 54% 58% 42% / 42% 44% 56% 58%}
  50%{border-radius:53% 47% 43% 57% / 56% 43% 57% 44%}
  100%{border-radius:42% 58% 52% 48% / 48% 58% 42% 52%}
}

/* Hero panel becomes a stronger glass object. */
.hero-note{
  background:
    radial-gradient(180px 120px at var(--dv-note-x,75%) var(--dv-note-y,20%),rgba(237,249,255,.16),transparent 65%),
    linear-gradient(145deg,rgba(255,255,255,.095),rgba(255,255,255,.025)),
    rgba(3,18,28,.48)!important;
  border-color:rgba(222,242,252,.22)!important;
  box-shadow:0 34px 90px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.18)!important;
  backdrop-filter:blur(30px) saturate(160%)!important;
  -webkit-backdrop-filter:blur(30px) saturate(160%)!important;
}

/* Five Visual Worlds: preserve the original 48px square grid. Only add light/depth OVER it. */
.home-worlds-nav,.visual-worlds-nav{
  isolation:isolate;
}
.home-worlds-nav>.container,.visual-worlds-nav>.container{position:relative;z-index:2}
.home-worlds-nav::after,.visual-worlds-nav::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(520px circle at var(--dv-world-x,50%) var(--dv-world-y,35%),rgba(111,183,224,.12),transparent 68%),
    linear-gradient(180deg,transparent,rgba(0,0,0,.06));
}

/* World cards: 3D glass + pointer specular reflection. */
.world-card{
  --dv-tilt-x:0deg;
  --dv-tilt-y:0deg;
  --dv-card-x:50%;
  --dv-card-y:50%;
  transform:perspective(1100px) rotateX(var(--dv-tilt-x)) rotateY(var(--dv-tilt-y)) translateZ(0);
  transform-style:preserve-3d;
  will-change:transform;
  transition:transform .55s var(--dv-ease),border-color .3s ease,box-shadow .45s ease,background .3s ease!important;
  box-shadow:0 16px 42px rgba(0,0,0,.09),inset 0 1px 0 rgba(255,255,255,.08);
}
.world-card::after{
  content:"";
  position:absolute;inset:0;
  z-index:1;
  pointer-events:none;
  opacity:0;
  background:
    radial-gradient(280px circle at var(--dv-card-x) var(--dv-card-y),rgba(237,249,255,.26),rgba(130,197,234,.065) 34%,transparent 70%);
  mix-blend-mode:screen;
  transition:opacity .28s ease;
}
.world-card:hover{
  transform:perspective(1100px) rotateX(var(--dv-tilt-x)) rotateY(var(--dv-tilt-y)) translateY(-8px) translateZ(12px)!important;
  border-color:rgba(222,242,252,.42)!important;
  box-shadow:0 34px 80px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.14);
}
.world-card:hover::after{opacity:1}
.world-card>*{transform:translateZ(18px);transition:transform .45s var(--dv-ease)}
.world-card:hover .world-arrow{transform:translateZ(34px) rotate(8deg) scale(1.08)}
.world-card:hover .world-index{transform:translateZ(34px) translateY(-4px)}

/* Workflow: liquid tactile mini-panels with responsive glare. */
.workflow-mini{
  --dv-card-x:50%;--dv-card-y:50%;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(260px circle at var(--dv-card-x) var(--dv-card-y),rgba(217,239,251,.09),transparent 62%),
    linear-gradient(145deg,rgba(255,255,255,.073),rgba(255,255,255,.025))!important;
  backdrop-filter:blur(12px) saturate(125%);
  -webkit-backdrop-filter:blur(12px) saturate(125%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 18px 46px rgba(0,0,0,.08);
}
.workflow-mini::after{
  content:"";
  position:absolute;
  left:-10%;right:-10%;bottom:-44%;height:55%;
  border-radius:50%;
  background:rgba(143,201,233,.08);
  filter:blur(28px);
  transform:translateY(38%);
  transition:transform .5s var(--dv-ease),opacity .4s ease;
  pointer-events:none;
}
.workflow-mini:hover::after{transform:translateY(0)}
.workflow-mini:hover{transform:translateY(-7px)!important}

/* Magnetic controls — transform is supplied by JS via CSS vars. */
.btn,.language-trigger,.world-arrow,.client-space-arrow,.explore-project-arrow{
  --dv-mag-x:0px;--dv-mag-y:0px;
}
@media(hover:hover) and (pointer:fine){
  .btn{transform:translate3d(var(--dv-mag-x),var(--dv-mag-y),0)}
  .btn:hover{transform:translate3d(var(--dv-mag-x),calc(var(--dv-mag-y) - 2px),0)}
}

/* Photography: anti-grid gets cinematic depth and glass captions. */
.editorial-photo,.client-photo-cell,.client-space-card-photo,.explore-project-card,.web-project-card,.capability-preview-card{
  transform:translateZ(0);
}
.editorial-photo img,.client-photo-cell img,.client-space-bg,.explore-project-bg{
  --dv-img-x:0px;--dv-img-y:0px;
  transform:scale(1.001) translate3d(var(--dv-img-x),var(--dv-img-y),0);
  transition:transform .8s var(--dv-ease),filter .5s ease!important;
}
@media(hover:hover) and (pointer:fine){
  .editorial-photo:hover img,.client-photo-cell:hover img,.client-space-card-photo:hover .client-space-bg,.explore-project-card:hover .explore-project-bg{
    transform:scale(1.055) translate3d(var(--dv-img-x),var(--dv-img-y),0)!important;
    filter:saturate(1.05) contrast(1.03);
  }
}
.editorial-photo figcaption,.client-photo-cell figcaption{
  background:linear-gradient(135deg,rgba(5,22,33,.72),rgba(5,22,33,.38))!important;
  border-color:rgba(226,244,253,.20)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 12px 30px rgba(0,0,0,.14)!important;
  backdrop-filter:blur(18px) saturate(150%)!important;
  -webkit-backdrop-filter:blur(18px) saturate(150%)!important;
}

/* Client hero visuals: real layered parallax with brand shapes intact. */
.client-brand-visual{
  --dv-main-x:0px;--dv-main-y:0px;
  --dv-secondary-x:0px;--dv-secondary-y:0px;
  --dv-logo-x:0px;--dv-logo-y:0px;
  --dv-shape-a-x:0px;--dv-shape-a-y:0px;
  --dv-shape-b-x:0px;--dv-shape-b-y:0px;
  transform-style:preserve-3d;
  perspective:1200px;
}
.client-brand-photo-main{
  transform:translate3d(var(--dv-main-x),var(--dv-main-y),18px);
  transition:transform .55s var(--dv-ease);
}
.client-brand-photo-secondary{
  transform:translate3d(var(--dv-secondary-x),var(--dv-secondary-y),38px);
  transition:transform .55s var(--dv-ease);
}
.client-brand-logo-float{
  transform:translate3d(var(--dv-logo-x),var(--dv-logo-y),60px);
  transition:transform .55s var(--dv-ease);
}
.client-brand-hero-1370 .client-brand-visual::before{
  transform:translate3d(var(--dv-shape-a-x),var(--dv-shape-a-y),0);
  transition:transform .65s var(--dv-ease);
}
.client-brand-hero-1370 .client-brand-visual::after{
  transform:translate3d(var(--dv-shape-b-x),var(--dv-shape-b-y),0);
  transition:transform .65s var(--dv-ease);
}

/* Scroll progress rail — navigation as scrollytelling. */
.dv-progress-rail{
  position:fixed;
  right:18px;
  top:50%;
  z-index:980;
  width:42px;
  transform:translateY(-50%);
  padding:10px 8px;
  display:grid;
  gap:9px;
  border:1px solid rgba(216,239,251,.14);
  border-radius:22px;
  background:rgba(5,22,33,.36);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 18px 50px rgba(0,0,0,.14);
  backdrop-filter:blur(22px) saturate(145%);
  -webkit-backdrop-filter:blur(22px) saturate(145%);
}
.dv-progress-track{
  position:absolute;
  left:50%;top:16px;bottom:16px;
  width:1px;
  transform:translateX(-50%);
  background:rgba(215,238,251,.13);
  overflow:hidden;
}
.dv-progress-track::after{
  content:"";
  position:absolute;left:0;top:0;width:100%;height:calc(var(--dv-scroll-progress) * 100%);
  background:linear-gradient(#fff,var(--dv-cyan));
  box-shadow:0 0 12px rgba(143,201,233,.55);
}
.dv-progress-dot{
  position:relative;z-index:2;
  width:26px;height:26px;
  border:0;border-radius:50%;
  display:grid;place-items:center;
  padding:0;
  color:rgba(255,255,255,.5);
  background:rgba(6,25,39,.82);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.13);
  cursor:pointer;
  transition:transform .28s var(--dv-ease),background .2s ease,color .2s ease;
}
.dv-progress-dot::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.dv-progress-dot span{
  position:absolute;
  right:36px;
  white-space:nowrap;
  padding:7px 9px;
  border-radius:10px;
  color:#fff;
  background:rgba(5,22,33,.82);
  border:1px solid rgba(255,255,255,.10);
  font:800 8px/1 var(--font-ui);
  letter-spacing:.12em;
  opacity:0;
  transform:translateX(7px);
  pointer-events:none;
  transition:opacity .2s ease,transform .28s var(--dv-ease);
}
.dv-progress-dot:hover span,.dv-progress-dot.is-active span{opacity:1;transform:none}
.dv-progress-dot.is-active{color:#fff;background:rgba(112,183,224,.25);transform:scale(1.09)}

/* Scroll-driven section reveal — progressive enhancement. */
@supports (animation-timeline:view()){
  .world-section .section-title,
  .section-head .section-title,
  .copy-large h2,
  .project-summary h2{
    animation:dv72-title-scroll linear both;
    animation-timeline:view();
    animation-range:entry 10% cover 38%;
  }
  @keyframes dv72-title-scroll{
    from{letter-spacing:.015em;filter:blur(5px);opacity:.42}
    to{letter-spacing:-.035em;filter:blur(0);opacity:1}
  }
}

/* V124 — custom DV navigation is the only cross-document transition.
   Native View Transitions previously ran in parallel and could produce
   duplicate snapshots / flicker on Safari. */
.dv-vt-image-1150{view-transition-name:none}
.dv-vt-logo-1150{view-transition-name:none}
.dv-vt-image-1370{view-transition-name:none}
.dv-vt-logo-1370{view-transition-name:none}
.dv-vt-image-dai{view-transition-name:none}
.dv-vt-logo-dai{view-transition-name:none}
::view-transition-old(root){animation:dv72-root-out .22s ease both}
::view-transition-new(root){animation:dv72-root-in .46s var(--dv-ease) both}
@keyframes dv72-root-out{to{opacity:.72;filter:brightness(.85)}}
@keyframes dv72-root-in{from{opacity:.72;filter:blur(7px) brightness(.82)}to{opacity:1;filter:none}}
::view-transition-group(dv-project-1150-image),
::view-transition-group(dv-project-1370-image),
::view-transition-group(dv-project-dai-image){animation-duration:.78s;animation-timing-function:var(--dv-ease)}
::view-transition-group(dv-project-1150-logo),
::view-transition-group(dv-project-1370-logo),
::view-transition-group(dv-project-dai-logo){animation-duration:.65s;animation-timing-function:var(--dv-ease)}

/* Button press has actual compression. */
.btn:active,.language-trigger:active,.menu-button:active{
  transform:translate3d(var(--dv-mag-x,0px),calc(var(--dv-mag-y,0px) + 2px),0) scale(.97)!important;
}

/* Experimental card border sweep — only on interactive project surfaces. */
.client-space-card-photo,.explore-project-card,.web-project-card,.capability-preview-card{
  position:relative;
  isolation:isolate;
}
.client-space-card-photo::before,.explore-project-card::before,.web-project-card::before,.capability-preview-card::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:-1px!important;
  z-index:4!important;
  border-radius:inherit!important;
  pointer-events:none!important;
  opacity:0!important;
  background:conic-gradient(from var(--dv-border-angle,0deg),transparent 0 60%,rgba(194,230,250,.58) 74%,transparent 86%)!important;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0)!important;
  -webkit-mask-composite:xor!important;
  mask-composite:exclude!important;
  padding:1px!important;
  transition:opacity .3s ease!important;
}
.client-space-card-photo:hover::before,.explore-project-card:hover::before,.web-project-card:hover::before,.capability-preview-card:hover::before{opacity:1!important}

/* Never let the V72 overlays replace the original Five Visual Worlds grid. */
.home-worlds-nav.section-dark,
.visual-worlds-nav.section-dark{
  background-color:#061927!important;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px)!important;
  background-size:48px 48px!important;
}

@media(max-width:1100px){
  .dv-progress-rail{display:none}
}
@media(max-width:980px){
  .dv-hero-lens{display:none!important}
  .world-card{transform:none!important}
  body::before{opacity:.20}
}
@media(max-width:680px){
  body::after{opacity:.02}
  .hero .eyebrow,.hero .ui-page-meta,.hero h1,.hero .hero-copy,.hero .hero-actions,.hero .hero-note,.page-hero .eyebrow,.page-hero h1,.page-hero p,.client-brand-copy>*{
    animation-duration:.68s;
  }
  .hero-media img{animation-duration:1.05s}
  .client-brand-photo-main,.client-brand-photo-secondary,.client-brand-logo-float{transform:none!important}
}
@media(prefers-reduced-motion:reduce){
  body::before,.dv-hero-lens,.dv-progress-rail{display:none!important}
  body::after{opacity:.018}
  .hero .eyebrow,.hero .ui-page-meta,.hero h1,.hero .hero-copy,.hero .hero-actions,.hero .hero-note,.page-hero .eyebrow,.page-hero h1,.page-hero p,.client-brand-copy>*,.hero-media img{
    animation:none!important;opacity:1!important;filter:none!important;clip-path:none!important;transform:none!important;
  }
  .world-card,.workflow-mini,.client-brand-photo-main,.client-brand-photo-secondary,.client-brand-logo-float{transform:none!important;transition:none!important}
  ::view-transition-old(root),::view-transition-new(root){animation:none!important}
}

/* =========================================================
   V73 — MOTION STUDIO / 2026 CHOREOGRAPHY SYSTEM
   Built on V72. The original DVSTUDIO layout + 48px world grid stay intact.
   Motion is layered over the design: liquid transitions, depth, variable type,
   section choreography, inertia, tactile glass and image reveals.
   ========================================================= */
:root{
  --dv73-ease:cubic-bezier(.16,1,.3,1);
  --dv73-spring:cubic-bezier(.2,1.4,.25,1);
  --dv73-scroll:0;
  --dv73-velocity:0;
  --dv73-hero-progress:0;
  --dv73-pointer-x:50vw;
  --dv73-pointer-y:40vh;
  --dv73-active:#9fd5f1;
  --dv73-liquid-1:rgba(151,214,244,.22);
  --dv73-liquid-2:rgba(109,151,214,.18);
  --dv73-liquid-3:rgba(244,81,36,.10);
}

/* V73 owns section reveals. Never let older reveal CSS hide real content. */
.js .reveal,.js .reveal.is-visible{opacity:1!important;transform:none!important;transition:none!important}
.hero .eyebrow,.hero .ui-page-meta,.hero h1,.hero .hero-copy,.hero .hero-actions,.hero .hero-note,
.page-hero .eyebrow,.page-hero h1,.page-hero p,.client-brand-copy>*{animation:none!important}
.hero-media img{animation:none!important}

/* ---------- Liquid page transition ---------- */
.dv73-transition{
  position:fixed;inset:0;z-index:20000;pointer-events:none;overflow:hidden;
  opacity:1;visibility:visible;
}
.dv73-transition-bg{
  position:absolute;inset:-12%;
  background:
    radial-gradient(circle at var(--dv73-transition-x,82%) var(--dv73-transition-y,14%),rgba(198,233,250,.42),transparent 19%),
    radial-gradient(circle at 62% 34%,rgba(82,139,176,.30),transparent 27%),
    linear-gradient(145deg,#04131d 4%,#092638 52%,#061927 100%);
  filter:saturate(1.14);
  clip-path:circle(160% at var(--dv73-transition-x,82%) var(--dv73-transition-y,14%));
  will-change:clip-path,transform,filter;
}
.dv73-transition-glass{
  position:absolute;width:min(78vw,900px);aspect-ratio:1;left:50%;top:50%;
  transform:translate(-50%,-50%) rotate(-12deg);
  border-radius:43% 57% 62% 38% / 46% 39% 61% 54%;
  border:1px solid rgba(227,246,255,.30);
  background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.025));
  box-shadow:inset 20px 20px 60px rgba(255,255,255,.05),0 60px 180px rgba(0,0,0,.34);
  backdrop-filter:blur(34px) saturate(160%);
  -webkit-backdrop-filter:blur(34px) saturate(160%);
  opacity:.74;
  animation:dv73-transition-morph 2.8s ease-in-out infinite alternate;
}
.dv73-transition-mark{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  color:rgba(237,249,255,.86);font:400 clamp(30px,5vw,70px)/1 var(--font-accent);
  letter-spacing:.08em;text-transform:uppercase;mix-blend-mode:screen;
}
@keyframes dv73-transition-morph{
  to{border-radius:58% 42% 39% 61% / 36% 61% 39% 64%;transform:translate(-50%,-50%) rotate(8deg) scale(1.06)}
}
.dv73-transition.is-leaving{pointer-events:all}

/* ---------- Global fluid ambience ---------- */
.dv73-ambient{
  position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:.78;
  mix-blend-mode:screen;
}
.dv73-ambient i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.20;will-change:transform}
.dv73-ambient i:nth-child(1){width:34vw;height:34vw;left:-12vw;top:10vh;background:#5a9dc1}
.dv73-ambient i:nth-child(2){width:27vw;height:27vw;right:-8vw;top:42vh;background:#6d83c4;opacity:.12}
.dv73-ambient i:nth-child(3){width:20vw;height:20vw;left:42vw;bottom:-8vw;background:#f45124;opacity:.07}
main,.big-cta,.site-footer{position:relative;z-index:1}
.site-header{z-index:100}

/* ---------- Hero motion canvas ---------- */
.hero,.client-brand-hero,.page-hero{isolation:isolate}
.dv73-hero-fluid{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;mix-blend-mode:screen}
.dv73-hero-fluid i{position:absolute;display:block;border-radius:50%;filter:blur(2px);opacity:.54;will-change:transform,border-radius}
.dv73-hero-fluid i:nth-child(1){
  width:clamp(250px,36vw,620px);aspect-ratio:1;right:-10%;top:3%;
  background:radial-gradient(circle at 30% 26%,rgba(255,255,255,.24),transparent 14%),linear-gradient(145deg,rgba(116,189,228,.14),rgba(255,255,255,.012));
  border:1px solid rgba(220,243,255,.18);backdrop-filter:blur(12px) saturate(145%);-webkit-backdrop-filter:blur(12px) saturate(145%);
  animation:dv73-fluid-a 10s ease-in-out infinite alternate;
}
.dv73-hero-fluid i:nth-child(2){
  width:clamp(160px,19vw,330px);aspect-ratio:1;left:45%;bottom:8%;
  background:radial-gradient(circle at 66% 23%,rgba(255,255,255,.19),transparent 15%),rgba(78,151,190,.08);
  border:1px solid rgba(210,240,255,.12);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  animation:dv73-fluid-b 8s ease-in-out infinite alternate;
}
.dv73-hero-fluid i:nth-child(3){
  width:120px;height:120px;left:7%;top:24%;opacity:.22;
  background:rgba(207,230,243,.18);border:1px solid rgba(255,255,255,.18);
  animation:dv73-fluid-c 7s ease-in-out infinite alternate;
}
@keyframes dv73-fluid-a{to{transform:translate3d(-38px,46px,0) rotate(16deg) scale(1.08);border-radius:63% 37% 47% 53% / 35% 61% 39% 65%}}
@keyframes dv73-fluid-b{to{transform:translate3d(55px,-42px,0) rotate(-22deg) scale(.91);border-radius:35% 65% 57% 43% / 63% 37% 63% 37%}}
@keyframes dv73-fluid-c{to{transform:translate3d(24px,30px,0) scale(1.18);border-radius:38% 62% 41% 59% / 63% 42% 58% 37%}}
.hero-inner,.client-brand-hero-grid,.page-hero>.container{z-index:3}
.hero-media{z-index:0}
.hero-media img{
  transform:translate3d(0,calc(var(--dv73-hero-progress) * 34px),0) scale(calc(1.025 + var(--dv73-hero-progress) * .065))!important;
  filter:saturate(calc(1 - var(--dv73-hero-progress) * .08)) brightness(calc(1 - var(--dv73-hero-progress) * .08));
  will-change:transform,filter;
}
.hero-inner{
  transform:translate3d(0,calc(var(--dv73-hero-progress) * -15px),0);
  will-change:transform;
}
.hero-note{transform:translate3d(0,calc(var(--dv73-hero-progress) * -28px),0) scale(calc(1 - var(--dv73-hero-progress) * .015))}
.scroll-cue{opacity:calc(1 - var(--dv73-hero-progress) * 2.2);transform:translateY(calc(var(--dv73-hero-progress) * 18px))}
.client-brand-visual{transform:translate3d(0,calc(var(--dv73-hero-progress) * -22px),0) scale(calc(1 - var(--dv73-hero-progress) * .018));will-change:transform}
.client-brand-copy{transform:translate3d(0,calc(var(--dv73-hero-progress) * -9px),0)}

/* Hero mini motion status: quiet, not a fake app. */
.dv73-motion-status{
  position:absolute;z-index:4;right:clamp(18px,4vw,64px);bottom:22px;
  display:flex;align-items:center;gap:9px;padding:8px 11px;border-radius:999px;
  color:rgba(235,247,253,.74);background:rgba(5,25,38,.33);border:1px solid rgba(220,243,255,.16);
  backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);
  font:800 8px/1 var(--font-ui);letter-spacing:.12em;text-transform:uppercase;
}
.dv73-motion-status i{width:6px;height:6px;border-radius:50%;background:#9ee4bc;box-shadow:0 0 14px rgba(158,228,188,.72);animation:dv73-pulse 1.7s ease-in-out infinite}
@keyframes dv73-pulse{50%{transform:scale(.62);opacity:.45}}

/* ---------- Variable typography in motion ---------- */
.dv73-kinetic{
  --dv73-wght:0;
  --dv73-track:0em;
  font-variation-settings:"wght" calc(var(--modulator-section-weight,510) + var(--dv73-wght))!important;
  letter-spacing:calc(var(--tracking-modulator-section,.008em) + var(--dv73-track))!important;
  will-change:font-variation-settings,letter-spacing,transform;
}
.hero h1.dv73-kinetic,.page-hero h1.dv73-kinetic,.client-brand-copy h1.dv73-kinetic{
  font-variation-settings:"wght" calc(var(--modulator-hero-weight,350) + var(--dv73-wght))!important;
}
.type-accent{position:relative;display:inline-block}
.dv73-active-section .type-accent{
  background:linear-gradient(100deg,currentColor 0%,#e8f7ff 42%,currentColor 72%);
  background-size:240% 100%;-webkit-background-clip:text;background-clip:text;color:transparent!important;
  animation:dv73-type-sheen 2.2s var(--dv73-ease) both;
}
@keyframes dv73-type-sheen{from{background-position:180% 0}to{background-position:-60% 0}}

/* ---------- Section choreography ---------- */
section{--dv73-local:0}
.dv73-section-aura{position:absolute;z-index:0;pointer-events:none;border-radius:50%;filter:blur(65px);opacity:0;transition:opacity 1s ease;will-change:transform,opacity}
.dv73-active-section>.dv73-section-aura{opacity:.18}
.section-dark>.dv73-section-aura{background:#79c2e5}
.section-paper>.dv73-section-aura,.section-mist>.dv73-section-aura{background:#4d99bd;opacity:.08}
.section-dark,.section-paper,.section-mist,.world-section,.brand-collaborations{isolation:isolate}
.section-dark>.container,.section-paper>.container,.section-mist>.container,.world-section>.container,.brand-collaborations>.container{position:relative;z-index:1}

/* Masked image reveals driven by WAAPI; this is the end-state safety style. */
.dv73-image-ready{will-change:transform,clip-path,filter}

/* Deeper tactile glass on UI components. */
:is(.workflow-mini,.service-card,.web-project-card,.capability-preview-card,.contact-panel,.project-summary>div){
  position:relative;isolation:isolate;
}
:is(.workflow-mini,.service-card,.web-project-card,.capability-preview-card,.contact-panel,.project-summary>div)::before{
  content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;pointer-events:none;opacity:0;
  background:radial-gradient(260px circle at var(--dv-card-x,50%) var(--dv-card-y,20%),rgba(232,248,255,.16),transparent 64%);
  transition:opacity .3s ease;
}
:is(.workflow-mini,.service-card,.web-project-card,.capability-preview-card,.contact-panel,.project-summary>div):hover::before{opacity:1}

/* Workflow feels like a real animated chain rather than five unrelated boxes. */
.workflow-teaser{--dv73-chain:0}
.workflow-teaser::after{
  content:"";position:absolute;left:8%;right:8%;top:27px;height:2px;z-index:0;
  transform-origin:left center;transform:scaleX(var(--dv73-chain));
  background:linear-gradient(90deg,#8ccce9,#e5f5ff 70%,rgba(255,255,255,.12));
  box-shadow:0 0 22px rgba(140,204,233,.28);transition:transform .12s linear;
}
.workflow-mini{z-index:1}
.workflow-node i{animation:dv73-node-breathe 2.5s ease-in-out infinite}
.workflow-mini:nth-child(2) .workflow-node i{animation-delay:.18s}.workflow-mini:nth-child(3) .workflow-node i{animation-delay:.36s}.workflow-mini:nth-child(4) .workflow-node i{animation-delay:.54s}.workflow-mini:nth-child(5) .workflow-node i{animation-delay:.72s}
@keyframes dv73-node-breathe{50%{transform:scale(1.55);box-shadow:0 0 18px rgba(142,227,182,.72)}}

/* Five Visual Worlds: ORIGINAL GRID stays. Motion only affects contents and glass response. */
.home-worlds-nav,.visual-worlds-nav{background-size:48px 48px!important}
.home-worlds-nav::before,.visual-worlds-nav::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.48;
  background:radial-gradient(600px circle at var(--dv-world-x,52%) var(--dv-world-y,35%),rgba(151,214,244,.10),transparent 64%);
}
.world-card{overflow:hidden}
.world-card .world-index,.world-card .world-kicker,.world-card h3,.world-card p,.world-card .world-arrow{will-change:transform}
.world-card:hover .world-index{transform:translate3d(0,-4px,36px) rotate(-3deg)}
.world-card:hover h3{transform:translate3d(4px,-2px,28px)}
.world-card:hover p{transform:translate3d(2px,-1px,22px)}
.world-card:hover .world-kicker{transform:translate3d(0,-3px,26px)}

/* Photography: cinematic inner-camera drift. */
:is(.editorial-photo,.client-photo-cell,.photo-card){overflow:hidden;isolation:isolate}
:is(.editorial-photo,.client-photo-cell,.photo-card)::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:0;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.16) 48%,transparent 66%);
  transform:translateX(-110%);transition:opacity .3s ease;
}
:is(.editorial-photo,.client-photo-cell,.photo-card):hover::after{opacity:.72;animation:dv73-photo-glint 1.05s var(--dv73-ease)}
@keyframes dv73-photo-glint{to{transform:translateX(110%)}}

/* Big CTA becomes a slow liquid destination. */
.big-cta{isolation:isolate}
.big-cta::before,.big-cta::after{content:"";position:absolute;border-radius:50%;pointer-events:none;filter:blur(3px);mix-blend-mode:soft-light;z-index:0}
.big-cta::before{width:430px;height:430px;right:-110px;top:-180px;background:rgba(255,255,255,.24);animation:dv73-cta-a 10s ease-in-out infinite alternate}
.big-cta::after{width:280px;height:280px;left:8%;bottom:-180px;background:rgba(6,25,39,.16);animation:dv73-cta-b 8s ease-in-out infinite alternate}
.big-cta>.container{position:relative;z-index:1}
@keyframes dv73-cta-a{to{transform:translate(-65px,70px) scale(.88);border-radius:38% 62% 43% 57%/61% 38% 62% 39%}}
@keyframes dv73-cta-b{to{transform:translate(80px,-60px) scale(1.2);border-radius:59% 41% 64% 36%/37% 63% 37% 63%}}

/* ---------- Motion HUD ---------- */
.dv73-motion-hud{
  position:fixed;z-index:9997;left:50%;bottom:18px;transform:translateX(-50%);
  display:grid;grid-template-columns:auto minmax(90px,170px) auto;align-items:center;gap:12px;
  padding:8px 10px 8px 13px;border-radius:999px;color:rgba(239,249,254,.78);
  background:rgba(4,22,34,.52);border:1px solid rgba(217,241,253,.16);
  box-shadow:0 16px 44px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.12);
  backdrop-filter:blur(24px) saturate(170%);-webkit-backdrop-filter:blur(24px) saturate(170%);
  font:800 8px/1 var(--font-ui);letter-spacing:.11em;text-transform:uppercase;
  transition:opacity .3s ease,transform .45s var(--dv73-ease);
}
.dv73-motion-hud strong{font:400 13px/1 var(--font-accent);letter-spacing:.08em;color:#f2fbff;white-space:nowrap}
.dv73-motion-hud-track{height:3px;border-radius:99px;background:rgba(255,255,255,.09);overflow:hidden}
.dv73-motion-hud-track i{display:block;width:100%;height:100%;transform-origin:left;transform:scaleX(var(--dv73-scroll));background:linear-gradient(90deg,#8fc9e9,#e7f8ff);box-shadow:0 0 12px rgba(143,201,233,.5)}
.dv73-motion-hud em{font-style:normal;color:rgba(239,249,254,.45)}

/* ---------- Cursor upgraded with inertia / glass droplet trail ---------- */
.dv-cursor-ring{border-radius:var(--dv73-cursor-radius,50%);transform-origin:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 10px 34px rgba(0,0,0,.16),0 0 calc(18px + var(--dv73-cursor-speed,0px)) rgba(137,205,239,.12)!important}
.dv73-cursor-trail{position:fixed;z-index:10040;width:10px;height:10px;border-radius:50%;pointer-events:none;background:rgba(153,215,244,.22);filter:blur(2px);box-shadow:0 0 18px rgba(153,215,244,.20);transform:translate3d(-100px,-100px,0);mix-blend-mode:screen}

/* ---------- Tactile ripple ---------- */
.dv73-ripple{position:absolute;z-index:20;border-radius:50%;pointer-events:none;width:12px;height:12px;margin:-6px 0 0 -6px;background:rgba(232,248,255,.34);transform:scale(0);animation:dv73-ripple .72s var(--dv73-ease) forwards}
@keyframes dv73-ripple{70%{opacity:.5}to{transform:scale(18);opacity:0}}

/* ---------- Responsive / performance ---------- */
@media(max-width:980px){
  .dv73-motion-hud{display:none}
  .dv73-ambient{opacity:.52}
  .dv73-motion-status{right:16px;bottom:14px}
}
@media(max-width:680px){
  .dv73-hero-fluid i:nth-child(1){width:82vw;right:-38%;top:10%;opacity:.28}
  .dv73-hero-fluid i:nth-child(2){width:48vw;left:4%;bottom:16%;opacity:.20}
  .dv73-hero-fluid i:nth-child(3){display:none}
  .hero-media img{transform:scale(1.035)!important;filter:none!important}
  .hero-inner,.hero-note,.client-brand-visual,.client-brand-copy{transform:none!important}
  .dv73-motion-status{font-size:7px;padding:7px 9px;opacity:.78}
  .workflow-teaser::after{display:none}
}
@media(hover:none),(pointer:coarse){
  .dv73-cursor-trail{display:none}
}
@media(prefers-reduced-motion:reduce){
  .dv73-transition,.dv73-ambient,.dv73-hero-fluid,.dv73-motion-hud,.dv73-cursor-trail,.dv73-motion-status{display:none!important}
  .hero-media img,.hero-inner,.hero-note,.client-brand-visual,.client-brand-copy{transform:none!important;filter:none!important}
  .workflow-node i,.big-cta::before,.big-cta::after{animation:none!important}
  .dv73-active-section .type-accent{animation:none!important;background:none!important;color:inherit!important}
}


/* =========================================================
   V74 — MOTION SAFETY + MOBILE RESTORE
   Keeps the V72/V73 premium motion on desktop while ensuring
   animated typography always ends fully visible and the mobile
   home returns to the proven V69 full-bleed stacked composition.
   ========================================================= */

/* Never use transparent text as the resting state of an accent.
   V73's sheen used currentColor after color:transparent, so after
   the sheen moved away the word could visually disappear. */
.dv73-active-section .type-accent,
.type-accent{
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
  background:none!important;
  -webkit-background-clip:border-box!important;
  background-clip:border-box!important;
}
.dv73-active-section .type-accent{
  animation:dv74-accent-arrive .82s var(--dv73-ease) both!important;
}
@keyframes dv74-accent-arrive{
  0%{opacity:.42;filter:blur(3px) brightness(1.45);transform:translate3d(0,.12em,0) scale(.985)}
  58%{opacity:1;filter:blur(0) brightness(1.16);transform:translate3d(0,0,0) scale(1.015)}
  100%{opacity:1;filter:none;transform:none}
}

/* The final state of every animated headline is normal layout text. */
.dv73-kinetic,
.dv73-active-section .dv73-kinetic{
  opacity:1!important;
  clip-path:none!important;
  -webkit-clip-path:none!important;
  overflow:visible;
}

/* Keep the motion response in the variable axis only. Never push a
   headline sideways based on scroll velocity. */
.dv73-kinetic{transform:none!important}

/* Prevent a reveal animation from becoming a persistent clipping mask. */
.dv73-image-ready{opacity:1;}

@media(max-width:680px){
  /* Mobile is intentionally a different motion direction: the V69
     composition is the source of truth. No desktop-only liquid/HUD
     layers may alter its sizing, stacking or perceived viewport. */
  html,body{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    overflow-x:hidden!important;
  }
  body[data-page="index.html"] main{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
  }
  body[data-page="index.html"] .hero{
    box-sizing:border-box!important;
    width:100vw!important;
    max-width:none!important;
    margin:0!important;
    min-height:100dvh!important;
    padding:
      calc(102px + env(safe-area-inset-top))
      0
      max(94px,calc(72px + env(safe-area-inset-bottom)))!important;
    border:0!important;
    border-radius:0!important;
    overflow:visible!important;
    transform:none!important;
  }
  body[data-page="index.html"] .hero-media{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    max-width:none!important;
    height:100dvh!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
    transform:none!important;
  }
  body[data-page="index.html"] .hero-media picture,
  body[data-page="index.html"] .hero-media img{
    width:100vw!important;
    max-width:none!important;
    height:100%!important;
    margin:0!important;
  }
  body[data-page="index.html"] .hero-media img{
    object-fit:cover!important;
    object-position:58% center!important;
    transform:scale(1.025)!important;
    filter:none!important;
  }
  body[data-page="index.html"] .hero-inner{
    box-sizing:border-box!important;
    width:min(calc(100% - 28px),var(--max))!important;
    max-width:calc(100% - 28px)!important;
    margin-inline:auto!important;
    transform:none!important;
  }
  body[data-page="index.html"] .hero h1{
    max-width:100%!important;
    font-size:clamp(38px,10.5vw,52px)!important;
    line-height:.96!important;
    overflow:visible!important;
  }
  body[data-page="index.html"] .hero-copy{font-size:16px!important;max-width:100%!important}
  body[data-page="index.html"] .hero-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    width:100%!important;
    margin-top:24px!important;
    transform:none!important;
  }
  body[data-page="index.html"] .hero-actions .btn{
    width:100%!important;
    min-width:0!important;
    min-height:48px!important;
  }
  body[data-page="index.html"] .hero-note{
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
    transform:none!important;
  }
  body[data-page="index.html"] .home-worlds-nav{
    width:100%!important;
    max-width:none!important;
    margin-top:-34px!important;
    border-radius:30px 30px 0 0!important;
    overflow:hidden!important;
  }

  /* Desktop motion layers are intentionally suppressed on mobile so
     they cannot create false whitespace or cover hero controls. */
  .dv73-ambient,
  .dv73-hero-fluid,
  .dv73-motion-status,
  .dv-hero-lens,
  .dv73-section-aura,
  .dv73-motion-hud,
  .dv73-cursor-trail,
  .dv-cursor-dot,
  .dv-cursor-ring{
    display:none!important;
  }
  .hero-inner,.hero-note,.client-brand-visual,.client-brand-copy,
  .page-hero>.container,.dv73-kinetic{
    transform:none!important;
  }
  .world-card,
  .workflow-mini,
  .web-project-card,
  .capability-preview-card,
  .client-space-card-photo,
  .explore-project-card{
    transform:none!important;
    perspective:none!important;
  }
  .world-card:hover{transform:none!important}
  .dv73-active-section .type-accent{animation:dv74-mobile-accent .5s ease-out both!important}
  @keyframes dv74-mobile-accent{
    from{opacity:.65;filter:blur(1.5px)}
    to{opacity:1;filter:none}
  }
}

@media(max-width:420px){
  body[data-page="index.html"] .hero{
    padding-top:calc(94px + env(safe-area-inset-top))!important;
    padding-bottom:max(88px,calc(66px + env(safe-area-inset-bottom)))!important;
  }
  body[data-page="index.html"] .hero-inner{
    width:calc(100% - 24px)!important;
    max-width:calc(100% - 24px)!important;
    min-height:calc(100dvh - 182px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
  }
}


/* =========================================================
   V75 — MOTION POLISH / TYPOGRAPHY SAFETY / CLIENT FRAMES
   Restores the V73 accent sheen and brand colours, but keeps a
   solid resting state. Stabilizes animated headings and client
   hero frames while preserving the advanced motion system.
   ========================================================= */

/* 1) Restore the original accent palette that V74 accidentally neutralized. */
.type-accent,.hero h1 em{color:var(--blue)!important}
.hero h1 em,.page-hero.dark .type-accent,.section-dark .type-accent,.project-strip .type-accent{color:var(--blue-soft)!important}
.big-cta .type-accent{color:var(--ink)!important}
.client-theme .type-accent{color:var(--client-accent)!important}
.client-brand-hero-dai .type-accent{color:#dbd3ba!important}
.client-theme-dai .client-system-section .type-accent{color:#b43330!important}

/* 2) Restore the animated sheen, but NEVER leave the word transparent.
   The brand colour remains the CSS `color`; only WebKit text fill is
   temporarily transparent while the gradient passes through it. */
.type-accent{
  position:relative;
  display:inline-block;
  -webkit-text-fill-color:currentColor!important;
  background:none!important;
  background-clip:border-box!important;
  -webkit-background-clip:border-box!important;
}
.dv73-active-section .type-accent{
  background-image:linear-gradient(100deg,currentColor 0%,currentColor 25%,#f1fbff 48%,currentColor 68%,currentColor 100%)!important;
  background-size:260% 100%!important;
  background-repeat:no-repeat!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  -webkit-text-fill-color:transparent!important;
  animation:dv75-type-sheen 1.65s var(--dv73-ease) both!important;
}
@keyframes dv75-type-sheen{
  0%{background-position:180% 0;filter:brightness(.98);-webkit-text-fill-color:transparent}
  72%{background-position:-30% 0;filter:brightness(1.08);-webkit-text-fill-color:transparent}
  99%{background-position:-70% 0;filter:none;-webkit-text-fill-color:transparent}
  100%{background-position:-70% 0;filter:none;-webkit-text-fill-color:currentColor}
}

/* 3) Keep kinetic type subtle enough that scrolling feels alive, never unstable. */
.dv73-kinetic{
  transform:none!important;
  will-change:font-variation-settings,letter-spacing!important;
}
.section-title.dv73-kinetic,
.hero h1.dv73-kinetic,
.page-hero h1.dv73-kinetic,
.client-brand-copy h1.dv73-kinetic{
  transition:font-variation-settings .16s linear,letter-spacing .16s linear!important;
}

/* 4) Work section headings and card UI bars must stay in their own layout layers. */
.world-section{overflow:clip!important}
.world-section-head{
  position:relative;
  z-index:5;
  grid-template-columns:minmax(118px,.24fr) minmax(0,1fr)!important;
  gap:clamp(28px,4vw,58px)!important;
  align-items:start!important;
  margin-bottom:clamp(42px,5vw,72px)!important;
}
.world-section-head>div{min-width:0}
.world-section-head>div:last-child{max-width:980px}
.world-section-head .section-title{margin:0!important;padding:0!important;position:relative;z-index:2}
.world-section-head .section-intro{position:relative;z-index:2;margin-top:24px!important}
.video-showcase-grid,.capability-preview-grid,.web-showcase-grid,.lightroom-only-stage{position:relative;z-index:1}
.media-card{position:relative!important;isolation:isolate}
.media-card .media-ui-bar{z-index:8!important}

/* 5) Controlled line composition for 1370 + DAI client heroes. */
.client-title-lines{display:block!important;max-width:100%}
.client-title-line{display:block!important;white-space:nowrap}
.client-brand-copy{min-width:0!important;max-width:100%!important}
.client-brand-copy h1{
  max-width:100%!important;
  width:100%!important;
  overflow:visible!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}
.client-brand-hero-1370 .client-brand-copy h1,
.client-brand-hero-dai .client-brand-copy h1{
  font-size:clamp(46px,4.35vw,72px)!important;
  line-height:.95!important;
  letter-spacing:-.04em!important;
}
.client-brand-hero-1370 .client-brand-copy h1 .type-accent,
.client-brand-hero-dai .client-brand-copy h1 .type-accent{font-size:.90em!important}

/* Allocate real breathing room to the photography column. */
@media(min-width:981px){
  .client-brand-hero-grid{
    grid-template-columns:minmax(0,.88fr) minmax(500px,1.12fr)!important;
    gap:clamp(48px,5vw,82px)!important;
  }
  .client-brand-hero-1370 .client-brand-copy,
  .client-brand-hero-dai .client-brand-copy{align-self:center}
}

/* 6) Animate the image INSIDE its frame. Never move the frame geometry itself. */
.client-brand-photo-main,
.client-brand-photo-secondary{
  transform:none!important;
  isolation:isolate!important;
  overflow:hidden!important;
}
.client-brand-photo-main img{
  transform:scale(1.025) translate3d(var(--dv-main-x,0px),var(--dv-main-y,0px),0)!important;
  transition:transform .65s var(--dv73-ease),filter .45s ease!important;
}
.client-brand-photo-secondary img{
  transform:scale(1.035) translate3d(var(--dv-secondary-x,0px),var(--dv-secondary-y,0px),0)!important;
  transition:transform .65s var(--dv73-ease),filter .45s ease!important;
}
.client-brand-photo::after{
  content:"";
  position:absolute;
  z-index:4;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.24),inset 0 1px 0 rgba(255,255,255,.20);
}
.client-brand-hero-1370 .client-brand-photo-main{
  border-radius:250px 250px 28px 28px!important;
  border:1px solid rgba(14,56,39,.12)!important;
  box-shadow:0 36px 90px rgba(14,56,39,.22),inset 0 0 0 1px rgba(255,255,255,.28)!important;
}
.client-brand-hero-1370 .client-brand-photo-secondary{
  border-radius:14px!important;
  outline:9px solid #f3f0e9!important;
  box-shadow:0 25px 62px rgba(14,56,39,.22)!important;
}
.client-brand-hero-dai .client-brand-photo-main{
  border-radius:10px!important;
  border:1px solid rgba(255,255,255,.20)!important;
  box-shadow:14px 14px 0 #dbd3ba,0 30px 74px rgba(60,0,0,.28)!important;
}
.client-brand-hero-dai .client-brand-photo-secondary{
  border-radius:8px!important;
  border:8px solid #b43330!important;
  box-shadow:0 24px 58px rgba(60,0,0,.24)!important;
}

/* 7) Motion HUD: keep the system, brand it with the actual DVSTUDIO logo. */
.dv73-motion-hud{grid-template-columns:auto minmax(70px,1fr) auto!important;align-items:center!important}
.dv73-motion-hud .dv73-hud-logo{display:block;width:88px;height:22px;object-fit:contain;object-position:left center;filter:brightness(0) invert(1);opacity:.92}

/* Responsive safety: client titles become natural wrapping again before they can crowd the visual. */
@media(max-width:1100px){
  .client-title-line{white-space:normal}
  .client-brand-hero-1370 .client-brand-copy h1,
  .client-brand-hero-dai .client-brand-copy h1{font-size:clamp(45px,6.3vw,66px)!important;line-height:.98!important}
}
@media(max-width:680px){
  .world-section-head{grid-template-columns:1fr!important;gap:14px!important;margin-bottom:34px!important}
  .world-section-head .section-intro{margin-top:17px!important}
  .client-title-line{white-space:normal!important}
  .client-brand-hero-1370 .client-brand-copy h1,
  .client-brand-hero-dai .client-brand-copy h1{font-size:clamp(36px,9.8vw,45px)!important;line-height:1.04!important;letter-spacing:-.026em!important}
  .client-brand-photo-main img,.client-brand-photo-secondary img{transform:scale(1.02)!important}
  .dv73-active-section .type-accent{animation:dv75-mobile-sheen .8s ease-out both!important}
  @keyframes dv75-mobile-sheen{
    0%{background-position:160% 0;-webkit-text-fill-color:transparent}
    85%{background-position:-40% 0;-webkit-text-fill-color:transparent}
    100%{-webkit-text-fill-color:currentColor}
  }
}

@media(prefers-reduced-motion:reduce){
  .dv73-active-section .type-accent{
    animation:none!important;background:none!important;-webkit-text-fill-color:currentColor!important;color:inherit;
  }
}


/* =========================================================
   V76 — MOBILE SCROLL RECOVERY + STATIC TITLE TYPOGRAPHY
   Keep the advanced card/photo/liquid motion, but remove the
   title effects that could clip, overlap or disappear.
   ========================================================= */

/* Headings keep the exact authored font, colour and layout.
   No sheen, no scroll-linked blur/tracking, no kinetic axis. */
.type-accent,
.dv73-active-section .type-accent{
  animation:none!important;
  background:none!important;
  background-image:none!important;
  background-position:initial!important;
  background-clip:border-box!important;
  -webkit-background-clip:border-box!important;
  -webkit-text-fill-color:currentColor!important;
  filter:none!important;
  opacity:1!important;
  transform:none!important;
}
.hero h1,
.page-hero h1,
.client-brand-copy h1,
.section-title,
.copy-large h2,
.project-summary h2{
  animation:none!important;
  animation-timeline:auto!important;
  filter:none!important;
  opacity:1!important;
  transform:none!important;
}
.dv73-kinetic{
  transform:none!important;
  --dv73-wght:0!important;
  --dv73-track:0em!important;
}

/* The browser may restore <details open> across history/reload.
   Outside an actually open menu, scrolling must always be available. */
@media(max-width:680px){
  html{
    height:auto!important;
    min-height:100%!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:auto!important;
    touch-action:pan-y pinch-zoom!important;
  }
  body{
    height:auto!important;
    min-height:100vh!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:auto!important;
    touch-action:pan-y pinch-zoom!important;
  }
  body:not(.menu-open){
    overflow-y:auto!important;
    touch-action:pan-y pinch-zoom!important;
  }
  body.menu-open{
    overflow:hidden!important;
    touch-action:none!important;
  }
  body[data-page="index.html"] main,
  body[data-page="index.html"] .hero,
  body[data-page="index.html"] .home-worlds-nav{
    touch-action:pan-y!important;
  }
  body[data-page="index.html"] main{
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
  body[data-page="index.html"] .hero{
    height:auto!important;
    min-height:100svh!important;
  }
  /* Keep the fixed photographic backdrop, but never let it become
     a touch/scroll layer. */
  body[data-page="index.html"] .hero-media,
  body[data-page="index.html"] .hero-media *{
    pointer-events:none!important;
    touch-action:none!important;
  }
}

/* =========================================================
   V77 — ABOUT / CONTACT BRAND ACCENT
   Keep Subway Berlin accents bright on the light pages.
   ========================================================= */
body[data-page="about.html"] :is(.page-hero h1,.about-copy h2,.big-cta h2) .type-accent,
body[data-page="contact.html"] :is(.contact-grid h1,.big-cta h2) .type-accent{
  color:var(--blue-soft)!important;
  text-shadow:0 0 26px rgba(122,167,196,.10);
}

/* On pale sections use the slightly stronger studio blue for legibility. */
body[data-page="about.html"] .section-paper .about-copy h2 .type-accent,
body[data-page="contact.html"] .section-mist .contact-grid h1 .type-accent{
  color:var(--blue)!important;
  text-shadow:none;
}

/* V78 — cinematic image-field homepage inspired by editorial motion systems */
.home-page .hero{min-height:100svh;align-items:center;padding:150px 0 82px;background:#061927;isolation:isolate}
.home-page .hero-media{inset:0;background:radial-gradient(circle at 70% 35%,rgba(122,167,196,.18),transparent 34%),#061927;overflow:hidden}
.home-page .hero-media>picture{display:none}
.home-page .hero-media::after{background:linear-gradient(90deg,rgba(2,12,20,.96) 0%,rgba(2,12,20,.74) 45%,rgba(2,12,20,.18) 78%,rgba(2,12,20,.5) 100%),linear-gradient(180deg,rgba(2,12,20,.2),rgba(2,12,20,.75))}
.home-page .hero-inner{grid-template-columns:minmax(0,.92fr) minmax(420px,.78fr);align-items:center;gap:30px}
.home-page .hero h1{font-size:clamp(64px,9.2vw,140px);max-width:850px;margin-top:18px}
.home-page .hero-note{display:none}
.dv78-stage{position:relative;z-index:2;height:min(70vh,720px);min-height:520px;perspective:1100px;transform-style:preserve-3d;pointer-events:none}
.dv78-frame{position:absolute;overflow:hidden;border-radius:18px;border:1px solid rgba(255,255,255,.2);box-shadow:0 28px 80px rgba(0,0,0,.36);background:#0b2638;will-change:transform;animation:dv78-float 8s ease-in-out infinite alternate}
.dv78-frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.dv78-frame::after{content:attr(data-label);position:absolute;left:10px;bottom:10px;padding:6px 8px;border:1px solid rgba(255,255,255,.2);border-radius:7px;background:rgba(4,18,28,.58);backdrop-filter:blur(10px);font-size:8px;font-weight:850;letter-spacing:.12em;color:white}
.dv78-f1{width:44%;height:43%;left:3%;top:8%;transform:rotate(-7deg) translateZ(20px);animation-delay:-2s}.dv78-f2{width:48%;height:48%;right:1%;top:21%;transform:rotate(5deg) translateZ(70px);animation-delay:-5s}.dv78-f3{width:37%;height:34%;left:18%;bottom:2%;transform:rotate(4deg) translateZ(110px);animation-delay:-3.5s}.dv78-f4{width:29%;height:31%;right:10%;bottom:0;transform:rotate(-6deg) translateZ(150px);animation-delay:-6s}.dv78-f5{width:25%;height:26%;right:4%;top:0;transform:rotate(8deg) translateZ(-10px);animation-delay:-1s}
@keyframes dv78-float{0%{margin-top:-7px}100%{margin-top:9px}}
.dv78-stage-word{position:absolute;z-index:-1;right:-2%;top:42%;transform:translateY(-50%) rotate(90deg);font-size:clamp(48px,6vw,92px);font-weight:900;letter-spacing:-.07em;color:rgba(255,255,255,.055);white-space:nowrap}
.dv78-manifesto{position:relative;overflow:hidden;padding:clamp(90px,12vw,180px) 0;background:var(--cream)}
.dv78-manifesto-grid{display:grid;grid-template-columns:.75fr 1.6fr;gap:8vw;align-items:start}
.dv78-manifesto h2{margin:0;font-size:clamp(58px,9vw,132px);line-height:.82;letter-spacing:-.075em;max-width:980px}.dv78-manifesto h2 em{font-family:var(--font-brand);font-weight:400;font-style:normal;color:var(--blue)}
.dv78-manifesto-copy{max-width:390px;font-size:17px;color:var(--muted);padding-top:10px}.dv78-manifesto-kicker{font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.dv78-ribbon{margin-top:70px;display:flex;gap:10px;overflow:hidden}.dv78-ribbon span{flex:1;padding:16px 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
@media(max-width:900px){.home-page .hero-inner{grid-template-columns:1fr}.dv78-stage{position:absolute;inset:12% -10% auto 42%;height:52vh;min-height:420px;opacity:.72}.home-page .hero-inner>div:first-child{position:relative;z-index:5;max-width:680px}.home-page .hero-media::after{background:linear-gradient(90deg,rgba(2,12,20,.96) 0%,rgba(2,12,20,.78) 55%,rgba(2,12,20,.45)),linear-gradient(180deg,transparent,rgba(2,12,20,.85))}.dv78-manifesto-grid{grid-template-columns:1fr;gap:34px}.dv78-ribbon{flex-wrap:wrap}.dv78-ribbon span{flex:1 1 40%}}
@media(max-width:680px){.home-page .hero{min-height:96svh;padding-top:122px}.dv78-stage{inset:11% -42% auto 29%;height:48vh;min-height:360px;opacity:.55}.dv78-f1{width:52%}.dv78-f2{width:55%}.dv78-f3{width:45%}.dv78-f4{width:36%}.dv78-f5{display:none}.home-page .hero h1{font-size:clamp(55px,16vw,82px)}.dv78-manifesto h2{font-size:clamp(54px,16vw,86px)}.dv78-ribbon span{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.dv78-frame{animation:none!important}}

/* V79 — AXIS-style full hero motion wall */
.home-page .hero{overflow:hidden;background:#061927}
.home-page .hero-inner{position:relative;z-index:8;display:block;pointer-events:none}
.home-page .hero-inner>div:first-child{max-width:820px;pointer-events:auto}
.home-page .hero-media::after{z-index:4;background:linear-gradient(90deg,rgba(2,12,20,.94) 0%,rgba(2,12,20,.72) 35%,rgba(2,12,20,.18) 68%,rgba(2,12,20,.48) 100%),linear-gradient(180deg,rgba(2,12,20,.28),rgba(2,12,20,.62))}
.dv78-stage{position:absolute!important;inset:-15vh -10vw!important;width:120vw!important;height:130vh!important;min-height:0!important;z-index:2!important;opacity:1!important;perspective:1500px;transform-style:preserve-3d;overflow:hidden}
.dv79-orbit{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform;animation:dv79-orbit-a 32s linear infinite}
.dv79-orbit-b{inset:-10%;animation-name:dv79-orbit-b;animation-duration:42s;animation-direction:reverse;opacity:.82}
.dv78-frame{width:clamp(180px,18vw,330px)!important;height:clamp(125px,13vw,235px)!important;left:50%!important;top:50%!important;right:auto!important;bottom:auto!important;margin:0!important;border-radius:12px;animation:none!important;transform-origin:center;backface-visibility:hidden;box-shadow:0 22px 65px rgba(0,0,0,.42);border:1px solid rgba(255,255,255,.25)}
.dv79-orbit-a .dv78-frame:nth-child(1){transform:translate3d(-49vw,-42vh,40px) rotate(-10deg)}
.dv79-orbit-a .dv78-frame:nth-child(2){transform:translate3d(-14vw,-48vh,130px) rotate(7deg) scale(.82)}
.dv79-orbit-a .dv78-frame:nth-child(3){transform:translate3d(23vw,-39vh,80px) rotate(-4deg) scale(1.12)}
.dv79-orbit-a .dv78-frame:nth-child(4){transform:translate3d(45vw,-12vh,180px) rotate(9deg) scale(.88)}
.dv79-orbit-a .dv78-frame:nth-child(5){transform:translate3d(34vw,24vh,60px) rotate(-8deg) scale(1.08)}
.dv79-orbit-a .dv78-frame:nth-child(6){transform:translate3d(3vw,39vh,160px) rotate(6deg) scale(.92)}
.dv79-orbit-a .dv78-frame:nth-child(7){transform:translate3d(-34vw,31vh,30px) rotate(-5deg) scale(1.14)}
.dv79-orbit-a .dv78-frame:nth-child(8){transform:translate3d(-50vw,2vh,120px) rotate(8deg) scale(.84)}
.dv79-orbit-b .dv78-frame:nth-child(1){transform:translate3d(-31vw,-21vh,-100px) rotate(12deg) scale(.66)}
.dv79-orbit-b .dv78-frame:nth-child(2){transform:translate3d(12vw,-26vh,-50px) rotate(-9deg) scale(.72)}
.dv79-orbit-b .dv78-frame:nth-child(3){transform:translate3d(18vw,10vh,-80px) rotate(7deg) scale(.62)}
.dv79-orbit-b .dv78-frame:nth-child(4){transform:translate3d(-17vw,18vh,-40px) rotate(-11deg) scale(.68)}
.dv79-orbit-b .dv78-frame::after{display:none}
.dv79-vignette{position:absolute;inset:0;z-index:3;background:radial-gradient(circle at 52% 48%,transparent 0 25%,rgba(2,12,20,.08) 50%,rgba(2,12,20,.58) 100%);pointer-events:none}
@keyframes dv79-orbit-a{from{transform:rotateZ(0deg) rotateX(1deg) scale(1.02)}50%{transform:rotateZ(180deg) rotateX(-2deg) scale(1.07)}to{transform:rotateZ(360deg) rotateX(1deg) scale(1.02)}}
@keyframes dv79-orbit-b{from{transform:rotateZ(0deg) scale(.96)}50%{transform:rotateZ(180deg) scale(1.04)}to{transform:rotateZ(360deg) scale(.96)}}
@media(max-width:900px){.dv78-stage{inset:-8vh -35vw!important;width:170vw!important;height:115vh!important}.home-page .hero-media::after{background:linear-gradient(180deg,rgba(2,12,20,.46),rgba(2,12,20,.78) 62%,rgba(2,12,20,.9)),linear-gradient(90deg,rgba(2,12,20,.7),rgba(2,12,20,.18))}.dv78-frame{width:clamp(150px,34vw,240px)!important;height:clamp(105px,24vw,170px)!important}.dv79-orbit-b{opacity:.62}}
@media(prefers-reduced-motion:reduce){.dv79-orbit{animation:none!important}}

/* V80 — AXIS-inspired travelling gallery. Frames remain upright; the camera moves. */
.home-page .hero{min-height:100svh;background:#03080c;isolation:isolate}
.home-page .hero-media>picture{display:none!important}
.home-page .hero-media::after{z-index:5;background:linear-gradient(180deg,rgba(0,0,0,.32),rgba(0,0,0,.18) 45%,rgba(0,0,0,.55)),radial-gradient(circle at 50% 48%,rgba(0,0,0,.02) 0 25%,rgba(0,0,0,.56) 100%)}
.home-page .hero-inner{min-height:100svh;display:flex!important;align-items:center;justify-content:center;text-align:center;z-index:9!important;padding-top:84px;padding-bottom:50px}
.home-page .hero-inner>div:first-child{max-width:1120px!important;margin:auto;display:flex;flex-direction:column;align-items:center}
.home-page .hero .eyebrow,.home-page .hero .ui-page-meta{display:none}
.home-page .hero h1{font-size:clamp(64px,8.1vw,132px);line-height:.9;max-width:1120px;margin:0 0 26px;letter-spacing:-.065em;text-wrap:balance}
.home-page .hero-copy{max-width:620px;margin:0 auto 28px;color:rgba(255,255,255,.72)}
.home-page .hero-actions{justify-content:center}
.dv80-gallery-stage{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;overflow:hidden!important;z-index:2!important;opacity:1!important;perspective:none!important;transform:none!important;background:#020609}
.dv80-gallery-world{position:absolute;width:190vw;height:180vh;left:50%;top:50%;transform:translate(-50%,-50%);will-change:transform;animation:dv80-camera 34s cubic-bezier(.45,0,.55,1) infinite;transform-origin:center center}
.dv80-frame{position:absolute;overflow:hidden;border-radius:20px;background:#10151a;border:1px solid rgba(255,255,255,.08);box-shadow:0 22px 55px rgba(0,0,0,.28);margin:0}
.dv80-frame img{width:100%;height:100%;display:block;object-fit:cover}
.dv80-f1{left:3%;top:7%;width:24%;height:25%}.dv80-f2{left:31%;top:2%;width:31%;height:21%}.dv80-f3{left:66%;top:5%;width:19%;height:28%}.dv80-f4{left:88%;top:10%;width:16%;height:20%}
.dv80-f5{left:-4%;top:37%;width:27%;height:28%}.dv80-f6{left:27%;top:29%;width:23%;height:31%}.dv80-f7{left:54%;top:27%;width:31%;height:24%}.dv80-f8{left:89%;top:34%;width:20%;height:29%}
.dv80-f9{left:7%;top:70%;width:28%;height:22%}.dv80-f10{left:39%;top:65%;width:20%;height:28%}.dv80-f11{left:63%;top:58%;width:25%;height:31%}.dv80-f12{left:92%;top:69%;width:18%;height:23%}
.dv80-f13{left:-7%;top:96%;width:24%;height:22%}.dv80-f14{left:23%;top:98%;width:32%;height:23%}.dv80-f15{left:61%;top:94%;width:22%;height:27%}
.dv80-vignette{z-index:4!important;background:radial-gradient(ellipse at 50% 48%,rgba(0,0,0,.04) 0 22%,rgba(0,0,0,.24) 53%,rgba(0,0,0,.72) 100%)!important}
@keyframes dv80-camera{
  0%,8%{transform:translate(-50%,-50%) scale(.72)}
  17%,25%{transform:translate(-59%,-55%) scale(.92)}
  34%,42%{transform:translate(-43%,-59%) scale(.82)}
  51%,59%{transform:translate(-58%,-39%) scale(.98)}
  68%,76%{transform:translate(-42%,-43%) scale(.88)}
  86%,94%{transform:translate(-51%,-52%) scale(.76)}
  100%{transform:translate(-50%,-50%) scale(.72)}
}
@media(max-width:900px){
 .home-page .hero-inner{padding-top:100px}.home-page .hero h1{font-size:clamp(54px,13vw,92px)}
 .dv80-gallery-world{width:300vw;height:180vh;animation-duration:30s}
 .dv80-frame{border-radius:14px}
 .home-page .hero-media::after{background:linear-gradient(180deg,rgba(0,0,0,.46),rgba(0,0,0,.18) 45%,rgba(0,0,0,.7)),radial-gradient(circle at 50% 48%,transparent 0 18%,rgba(0,0,0,.55) 100%)}
}
@media(max-width:680px){.home-page .hero-copy{max-width:88%;font-size:15px}.home-page .hero-actions{width:min(88%,380px)}.home-page .hero h1{font-size:clamp(52px,15vw,78px)}}
@media(prefers-reduced-motion:reduce){.dv80-gallery-world{animation:none!important;transform:translate(-50%,-50%) scale(.76)}}

/* V81 — dense full-hero travelling gallery, based on the supplied AXIS screen recording. */
.home-page .hero{
  position:relative;
  min-height:100svh;
  height:100svh;
  overflow:hidden;
  background:#020406;
}
.home-page .hero-media{position:absolute!important;inset:0!important;z-index:1!important;pointer-events:none}
.home-page .hero-media::after{content:none!important;display:none!important}

/* The moving gallery occupies the complete hero, not a panel inside it. */
.dv80-gallery-stage{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  z-index:2!important;
  overflow:hidden!important;
  background:#020406!important;
  pointer-events:none;
}
.dv80-gallery-world{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:156vw!important;
  height:146vh!important;
  transform-origin:center center!important;
  animation:dv81-camera 32s cubic-bezier(.55,.02,.45,.98) infinite!important;
  will-change:transform;
}

/* Denser, ordered gallery: small black gutters, no rotations, every frame upright. */
.dv80-frame{
  position:absolute!important;
  margin:0!important;
  overflow:hidden!important;
  border-radius:18px!important;
  border:1px solid rgba(255,255,255,.06)!important;
  background:#111!important;
  box-shadow:none!important;
  transform:none!important;
}
.dv80-frame img{width:100%!important;height:100%!important;display:block!important;object-fit:cover!important;transform:none!important}

.dv80-f1 {left: 0%; top: 0%;  width:23%; height:24%}
.dv80-f2 {left:25%; top:-2%;  width:27%; height:27%}
.dv80-f3 {left:54%; top: 0%;  width:20%; height:24%}
.dv80-f4 {left:76%; top:-1%;  width:24%; height:27%}

.dv80-f5 {left:-3%; top:27%; width:25%; height:28%}
.dv80-f6 {left:24%; top:27%; width:22%; height:31%}
.dv80-f7 {left:48%; top:27%; width:29%; height:27%}
.dv80-f8 {left:79%; top:28%; width:23%; height:31%}

.dv80-f9  {left: 0%; top:58%; width:27%; height:25%}
.dv80-f10 {left:29%; top:60%; width:21%; height:30%}
.dv80-f11 {left:52%; top:57%; width:26%; height:29%}
.dv80-f12 {left:80%; top:61%; width:22%; height:26%}

.dv80-f13 {left:-2%; top:86%; width:24%; height:25%}
.dv80-f14 {left:24%; top:91%; width:31%; height:23%}
.dv80-f15 {left:57%; top:88%; width:24%; height:28%}

/* AXIS-like camera travel: translate across the image wall + gentle zooms. */
@keyframes dv81-camera{
  0%,8%   {transform:translate(-50%,-50%) scale(.91)}
  18%,27% {transform:translate(-57%,-54%) scale(1.04)}
  38%,47% {transform:translate(-44%,-57%) scale(.98)}
  58%,67% {transform:translate(-56%,-43%) scale(1.08)}
  78%,87% {transform:translate(-43%,-46%) scale(1.00)}
  100%     {transform:translate(-50%,-50%) scale(.91)}
}

/* Dark cinematic veil like the reference, while keeping the gallery visible. */
.dv80-vignette{
  position:absolute!important;
  inset:0!important;
  z-index:4!important;
  background:
    linear-gradient(180deg,rgba(0,0,0,.26),rgba(0,0,0,.10) 38%,rgba(0,0,0,.30)),
    radial-gradient(ellipse at 50% 50%,rgba(0,0,0,.05) 0 30%,rgba(0,0,0,.38) 100%)!important;
  pointer-events:none!important;
}

/* H1/content always above the animated gallery. */
.home-page .hero-inner{
  position:relative!important;
  z-index:20!important;
  min-height:100svh!important;
  height:100svh!important;
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  padding-top:90px!important;
  padding-bottom:70px!important;
  pointer-events:none;
}
.home-page .hero-inner>div:first-child{
  position:relative!important;
  z-index:21!important;
  max-width:1120px!important;
  margin:auto!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  pointer-events:auto;
}
.home-page .hero h1{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  position:relative!important;
  z-index:22!important;
  color:#f6f2ea!important;
  text-shadow:0 2px 26px rgba(0,0,0,.42);
}
.home-page .hero h1 em{color:inherit!important}
.home-page .hero-copy,.home-page .hero-actions{position:relative!important;z-index:22!important}
.home-page .scroll-cue{z-index:22!important}

@media(max-width:900px){
  .dv80-gallery-world{width:245vw!important;height:150vh!important;animation-duration:28s!important}
  .dv80-frame{border-radius:13px!important}
  .home-page .hero-inner{padding-top:92px!important;padding-bottom:56px!important}
}
@media(max-width:680px){
  .dv80-gallery-world{width:310vw!important;height:150vh!important}
  .home-page .hero h1{font-size:clamp(50px,15vw,76px)!important}
  .dv80-vignette{background:linear-gradient(180deg,rgba(0,0,0,.36),rgba(0,0,0,.16) 42%,rgba(0,0,0,.45)),radial-gradient(ellipse at 50% 50%,rgba(0,0,0,.04),rgba(0,0,0,.45))!important}
}
@media(prefers-reduced-motion:reduce){.dv80-gallery-world{animation:none!important;transform:translate(-50%,-50%) scale(.94)!important}}


/* V82 — denser gallery path + cinematic speed ramps. Every frame enters the viewport during one loop. */
.dv80-gallery-world{
  width:164vw!important;
  height:166vh!important;
  animation:dv82-camera 46s linear infinite!important;
}

/* Expand the wall to five rows with tight, consistent gutters. */
.dv80-f1 {left: 0%; top: 0%; width:22%; height:18%}
.dv80-f2 {left:23.5%; top:0%; width:25%; height:18%}
.dv80-f3 {left:50%; top:0%; width:20%; height:18%}
.dv80-f4 {left:71.5%; top:0%; width:28.5%; height:18%}

.dv80-f5 {left:0%; top:19.5%; width:25%; height:19%}
.dv80-f6 {left:26.5%; top:19.5%; width:20%; height:19%}
.dv80-f7 {left:48%; top:19.5%; width:27%; height:19%}
.dv80-f8 {left:76.5%; top:19.5%; width:23.5%; height:19%}

.dv80-f9 {left:0%; top:40%; width:27%; height:18%}
.dv80-f10{left:28.5%; top:40%; width:20%; height:18%}
.dv80-f11{left:50%; top:40%; width:25%; height:18%}
.dv80-f12{left:76.5%; top:40%; width:23.5%; height:18%}

.dv80-f13{left:0%; top:59.5%; width:23%; height:18.5%}
.dv80-f14{left:24.5%; top:59.5%; width:29%; height:18.5%}
.dv80-f15{left:55%; top:59.5%; width:20%; height:18.5%}
.dv80-f16{left:76.5%; top:59.5%; width:23.5%; height:18.5%}

.dv80-f17{left:0%; top:79.5%; width:26%; height:20.5%}
.dv80-f18{left:27.5%; top:79.5%; width:20%; height:20.5%}
.dv80-f19{left:49%; top:79.5%; width:24%; height:20.5%}
.dv80-f20{left:74.5%; top:79.5%; width:25.5%; height:20.5%}

/*
  Long glides are interrupted by short bursts (speed ramps). The close keyframe pairs
  create fast camera moves, followed by slower settling shots, without rotating the artwork.
*/
@keyframes dv82-camera{
  0%   {transform:translate(-50%,-50%) scale(.72)}
  7%   {transform:translate(-50%,-50%) scale(.72)}

  15%  {transform:translate(-59%,-59%) scale(.92)}
  19%  {transform:translate(-60%,-60%) scale(.96)}
  20.8%{transform:translate(-43%,-59%) scale(.91)} /* speed ramp */
  27%  {transform:translate(-41%,-58%) scale(.88)}

  34%  {transform:translate(-42%,-48%) scale(.98)}
  35.8%{transform:translate(-59%,-47%) scale(1.03)} /* speed ramp */
  43%  {transform:translate(-60%,-44%) scale(.97)}

  51%  {transform:translate(-52%,-38%) scale(.90)}
  52.6%{transform:translate(-40%,-39%) scale(1.02)} /* speed ramp */
  60%  {transform:translate(-39%,-38%) scale(.95)}

  68%  {transform:translate(-50%,-31%) scale(.90)}
  69.6%{transform:translate(-61%,-32%) scale(1.00)} /* speed ramp */
  77%  {transform:translate(-60%,-31%) scale(.94)}

  84%  {transform:translate(-48%,-42%) scale(.82)}
  85.5%{transform:translate(-50%,-50%) scale(.70)} /* quick pull-back */
  92%  {transform:translate(-50%,-50%) scale(.70)}
  100% {transform:translate(-50%,-50%) scale(.72)}
}

@media(max-width:900px){
  .dv80-gallery-world{width:255vw!important;height:172vh!important;animation-duration:42s!important}
}
@media(prefers-reduced-motion:reduce){
  .dv80-gallery-world{animation:none!important;transform:translate(-50%,-50%) scale(.72)!important}
}

/* =========================================================
   V83 — HERO CTA SAFE AREA FIX
   Keep the centered AXIS-style composition fully inside the hero.
   Previous V82 set hero-inner to height:100svh and then added vertical
   padding on top of that content height, pushing the CTA below the hero.
   ========================================================= */
.home-page .hero{
  min-height:100svh!important;
  height:100svh!important;
  overflow:hidden!important;
}
.home-page .hero-inner{
  box-sizing:border-box!important;
  height:100%!important;
  min-height:0!important;
  padding:clamp(104px,12vh,142px) 24px clamp(54px,7vh,84px)!important;
  align-items:center!important;
  justify-content:center!important;
}
.home-page .hero-inner>div:first-child{
  max-height:100%!important;
}
.home-page .hero-actions{
  flex-shrink:0!important;
  margin-top:clamp(18px,2.4vh,30px)!important;
}
.home-page .hero-actions .btn{
  position:relative!important;
  z-index:30!important;
}

/* Short desktop/laptop viewports: compact the copy instead of letting
   the buttons collide with the following section. */
@media (min-width:681px) and (max-height:820px){
  .home-page .hero-inner{padding-top:96px!important;padding-bottom:42px!important}
  .home-page .hero h1{font-size:clamp(54px,7.5vw,102px)!important;margin:10px 0 16px!important}
  .home-page .hero-copy{font-size:clamp(15px,1.5vw,19px)!important}
  .home-page .hero-actions{margin-top:18px!important}
  .home-page .hero-actions .btn{min-height:46px!important;padding-top:11px!important;padding-bottom:11px!important}
}
@media (max-width:680px){
  .home-page .hero{height:100dvh!important;min-height:100dvh!important;overflow:hidden!important}
  .home-page .hero-inner{
    height:100%!important;
    min-height:0!important;
    padding:calc(92px + env(safe-area-inset-top)) 14px calc(42px + env(safe-area-inset-bottom))!important;
  }
}

/* =========================================================
   V84 — REBUILT CAMERA MOTION
   AXIS-inspired gallery travel: shorter loop, curved waypoints,
   smooth acceleration/deceleration and controlled speed ramps.
   Artwork stays upright at all times.
   ========================================================= */
.home-page .dv80-gallery-world{
  width:168vw!important;
  height:168vh!important;
  transform-origin:50% 50%!important;
  animation:dv84-camera-path 29s infinite!important;
  animation-fill-mode:both!important;
  will-change:transform!important;
}

/*
  Each keyframe owns the easing INTO the next keyframe.
  Several intermediate points turn straight pans into soft arcs.
  Tight percentage pairs create short, intentional speed ramps.
*/
@keyframes dv84-camera-path{
  /* overview / breathing room */
  0%{
    transform:translate(-50%,-50%) scale(.69);
    animation-timing-function:cubic-bezier(.42,0,.18,1);
  }
  5%{
    transform:translate(-50%,-51%) scale(.73);
    animation-timing-function:cubic-bezier(.32,.02,.20,1);
  }

  /* arc toward upper-left */
  11%{
    transform:translate(-55%,-57%) scale(.82);
    animation-timing-function:cubic-bezier(.36,.02,.16,1);
  }
  16%{
    transform:translate(-59%,-59%) scale(.88);
    animation-timing-function:cubic-bezier(.20,.70,.12,1);
  }

  /* SPEED RAMP 01 — sweep across the upper wall */
  18.2%{
    transform:translate(-43%,-60%) scale(.91);
    animation-timing-function:cubic-bezier(.08,.72,.16,1);
  }
  23%{
    transform:translate(-40%,-57%) scale(.86);
    animation-timing-function:cubic-bezier(.42,0,.18,1);
  }

  /* curved diagonal into the middle-right */
  29%{
    transform:translate(-43%,-51%) scale(.90);
    animation-timing-function:cubic-bezier(.38,.02,.14,1);
  }
  35%{
    transform:translate(-47%,-46%) scale(.94);
    animation-timing-function:cubic-bezier(.20,.70,.12,1);
  }

  /* SPEED RAMP 02 — cross through centre */
  37.1%{
    transform:translate(-58%,-45%) scale(.96);
    animation-timing-function:cubic-bezier(.08,.72,.16,1);
  }
  42.5%{
    transform:translate(-61%,-42%) scale(.89);
    animation-timing-function:cubic-bezier(.42,0,.18,1);
  }

  /* broad S curve down the left side */
  49%{
    transform:translate(-58%,-36%) scale(.87);
    animation-timing-function:cubic-bezier(.35,.02,.16,1);
  }
  55%{
    transform:translate(-52%,-32%) scale(.91);
    animation-timing-function:cubic-bezier(.20,.70,.12,1);
  }

  /* SPEED RAMP 03 — lower sweep */
  57.2%{
    transform:translate(-40%,-33%) scale(.95);
    animation-timing-function:cubic-bezier(.08,.72,.16,1);
  }
  63%{
    transform:translate(-39%,-36%) scale(.88);
    animation-timing-function:cubic-bezier(.42,0,.18,1);
  }

  /* curve through lower-centre so the fifth row is clearly shown */
  69%{
    transform:translate(-44%,-29%) scale(.86);
    animation-timing-function:cubic-bezier(.36,.02,.15,1);
  }
  74%{
    transform:translate(-51%,-27%) scale(.90);
    animation-timing-function:cubic-bezier(.20,.70,.12,1);
  }

  /* SPEED RAMP 04 — lower-left */
  76.1%{
    transform:translate(-60%,-31%) scale(.94);
    animation-timing-function:cubic-bezier(.08,.72,.16,1);
  }
  81.5%{
    transform:translate(-60%,-36%) scale(.87);
    animation-timing-function:cubic-bezier(.42,0,.18,1);
  }

  /* return on a different arc, not the same path backwards */
  87%{
    transform:translate(-56%,-43%) scale(.82);
    animation-timing-function:cubic-bezier(.36,.02,.18,1);
  }
  92%{
    transform:translate(-48%,-49%) scale(.76);
    animation-timing-function:cubic-bezier(.30,.02,.18,1);
  }
  96%{
    transform:translate(-50%,-51%) scale(.70);
    animation-timing-function:cubic-bezier(.38,0,.24,1);
  }
  100%{
    transform:translate(-50%,-50%) scale(.69);
  }
}

/* Slightly tighter wall on desktop: frames read as one continuous visual field. */
.home-page .dv80-frame{
  border-radius:clamp(12px,1vw,18px)!important;
}

@media(max-width:900px){
  .home-page .dv80-gallery-world{
    width:250vw!important;
    height:170vh!important;
    animation-duration:27s!important;
  }
}

@media(max-width:680px){
  .home-page .dv80-gallery-world{
    width:295vw!important;
    height:164vh!important;
    animation-duration:25s!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .home-page .dv80-gallery-world{
    animation:none!important;
    transform:translate(-50%,-50%) scale(.69)!important;
  }
}

/* V85 — longer camera gestures: preserve the path, give every sweep room to breathe. */
.home-page .dv80-gallery-world{animation-duration:48s!important;}
@media(max-width:900px){.home-page .dv80-gallery-world{animation-duration:44s!important;}}
@media(max-width:680px){.home-page .dv80-gallery-world{animation-duration:41s!important;}}

/* =========================================================
   V86 — LONG S-CURVE CAMERA TRAVELS
   Few, broad camera moves with moderate sustained speed.
   The gallery remains upright; the camera crosses the wall on
   long S-shaped trajectories instead of hopping between points.
   ========================================================= */
.home-page .dv80-gallery-world{
  animation:dv86-long-s-camera 38s infinite!important;
  animation-fill-mode:both!important;
  will-change:transform!important;
}

@keyframes dv86-long-s-camera{
  /* MOVE 1 — upper-left -> upper-right, broad S sweep */
  0%{
    transform:translate(-61%,-58%) scale(.88);
    animation-timing-function:cubic-bezier(.42,0,.58,1);
  }
  7%{
    transform:translate(-55%,-62%) scale(.91);
    animation-timing-function:cubic-bezier(.33,.02,.30,.98);
  }
  14%{
    transform:translate(-47%,-54%) scale(.94);
    animation-timing-function:cubic-bezier(.28,.02,.24,1);
  }
  23%{
    transform:translate(-38%,-59%) scale(.90);
    animation-timing-function:cubic-bezier(.40,0,.60,1);
  }

  /* MOVE 2 — upper-right -> lower-left, large diagonal S */
  30%{
    transform:translate(-43%,-49%) scale(.93);
    animation-timing-function:cubic-bezier(.32,.02,.26,1);
  }
  38%{
    transform:translate(-51%,-44%) scale(.96);
    animation-timing-function:cubic-bezier(.28,.02,.23,1);
  }
  49%{
    transform:translate(-61%,-34%) scale(.90);
    animation-timing-function:cubic-bezier(.40,0,.60,1);
  }

  /* MOVE 3 — lower-left -> lower-right, second broad S */
  57%{
    transform:translate(-55%,-28%) scale(.92);
    animation-timing-function:cubic-bezier(.31,.02,.25,1);
  }
  65%{
    transform:translate(-47%,-35%) scale(.95);
    animation-timing-function:cubic-bezier(.27,.02,.23,1);
  }
  75%{
    transform:translate(-38%,-30%) scale(.89);
    animation-timing-function:cubic-bezier(.40,0,.60,1);
  }

  /* MOVE 4 — lower-right -> start, long return on a different S */
  82%{
    transform:translate(-42%,-40%) scale(.93);
    animation-timing-function:cubic-bezier(.31,.02,.25,1);
  }
  90%{
    transform:translate(-52%,-48%) scale(.95);
    animation-timing-function:cubic-bezier(.28,.02,.24,1);
  }
  100%{
    transform:translate(-61%,-58%) scale(.88);
  }
}

@media(max-width:900px){
  .home-page .dv80-gallery-world{animation-duration:35s!important;}
}
@media(max-width:680px){
  .home-page .dv80-gallery-world{animation-duration:33s!important;}
}
@media(prefers-reduced-motion:reduce){
  .home-page .dv80-gallery-world{
    animation:none!important;
    transform:translate(-50%,-50%) scale(.72)!important;
  }
}

/* =========================================================
   V87 — DESKTOP HERO CTA STABILITY FIX
   Keep hero buttons visually and interactively stable above the motion wall.
   ========================================================= */
@media (min-width: 901px){
  .home-page .hero-actions{
    position:relative!important;
    z-index:80!important;
    display:flex!important;
    flex-wrap:nowrap!important;
    justify-content:center!important;
    align-items:center!important;
    gap:12px!important;
    width:auto!important;
    pointer-events:auto!important;
    isolation:isolate!important;
  }
  .home-page .hero-actions .btn{
    position:relative!important;
    z-index:81!important;
    flex:0 0 auto!important;
    width:auto!important;
    min-width:0!important;
    min-height:50px!important;
    padding:0 22px!important;
    white-space:nowrap!important;
    pointer-events:auto!important;
    transform:none!important;
  }
  .home-page .hero-actions .btn:hover,
  .home-page .hero-actions .btn:focus-visible{
    transform:translateY(-2px)!important;
  }
  .home-page .dv80-gallery-stage,
  .home-page .dv80-gallery-world,
  .home-page .dv80-frame,
  .home-page .dv80-vignette{
    pointer-events:none!important;
  }
}

/* V88 — bilingual manifesto balance */
#dv78-manifesto-title .manifesto-lang{display:block;max-width:100%;}
#dv78-manifesto-title .manifesto-lang em{display:block;white-space:nowrap;}
html[data-lang="fr"] #dv78-manifesto-title .manifesto-fr em{font-size:.82em;letter-spacing:-.06em;}
@media(max-width:900px){html[data-lang="fr"] #dv78-manifesto-title .manifesto-fr em{font-size:.78em;}}
@media(max-width:680px){#dv78-manifesto-title .manifesto-lang em{white-space:normal;}html[data-lang="fr"] #dv78-manifesto-title .manifesto-fr em{font-size:.88em;}}

/* =========================================================
   V89 — PERFORMANCE PASS (visual output unchanged)
   - Defer rendering below the fold.
   - Pause the expensive hero wall when it is not visible.
   - Keep compositor work focused on the moving world layer.
   ========================================================= */
.home-page main > .section,
.home-page .big-cta{
  content-visibility:auto;
  contain-intrinsic-size:auto 900px;
}
.home-page .dv80-gallery-world{
  contain:layout paint style;
  backface-visibility:hidden;
  transform-style:flat;
}
.home-page .dv80-frame{
  contain:layout paint style;
  backface-visibility:hidden;
}
html.dv89-hero-offscreen .home-page .dv80-gallery-world{
  animation-play-state:paused!important;
}

/* =========================================================
   V93 — RESPONSIVE HERO + MANIFESTO FIT
   Preserve the visual system while making the hero and manifesto
   resilient to short desktop windows, tablets and mobile screens.
   ========================================================= */

/* Manifesto: keep both languages inside the viewport without changing copy. */
.dv78-manifesto-grid > *{min-width:0}
@media (min-width:1101px){
  .dv78-manifesto-grid{
    grid-template-columns:minmax(220px,280px) minmax(0,1fr)!important;
    gap:clamp(48px,5vw,96px)!important;
    align-items:start!important;
  }
  .dv78-manifesto-copy{
    max-width:24ch!important;
    font-size:clamp(16px,1.15vw,19px)!important;
  }
  .dv78-manifesto h2{
    width:100%!important;
    max-width:none!important;
    font-size:clamp(58px,min(7.35vw,13vh),116px)!important;
    line-height:.82!important;
    letter-spacing:-.07em!important;
  }
  #dv78-manifesto-title .manifesto-lang em{
    font-size:.86em!important;
    letter-spacing:-.055em!important;
    white-space:nowrap!important;
  }
  html[data-lang="fr"] #dv78-manifesto-title .manifesto-fr em{
    font-size:.72em!important;
    letter-spacing:-.045em!important;
  }
}

@media (min-width:681px) and (max-width:1100px){
  .dv78-manifesto-grid{
    grid-template-columns:minmax(180px,.48fr) minmax(0,1.52fr)!important;
    gap:clamp(28px,4vw,52px)!important;
  }
  .dv78-manifesto h2{
    max-width:none!important;
    font-size:clamp(50px,min(8vw,11.5vh),86px)!important;
  }
  #dv78-manifesto-title .manifesto-lang em{font-size:.82em!important;white-space:nowrap!important}
  html[data-lang="fr"] #dv78-manifesto-title .manifesto-fr em{font-size:.68em!important}
}

@media (max-width:680px){
  .dv78-manifesto{padding:clamp(76px,14vw,110px) 0!important}
  .dv78-manifesto-grid{grid-template-columns:1fr!important;gap:30px!important}
  .dv78-manifesto-copy{max-width:32ch!important}
  .dv78-manifesto h2{font-size:clamp(48px,15.2vw,82px)!important;max-width:100%!important}
  #dv78-manifesto-title .manifesto-lang em,
  html[data-lang="fr"] #dv78-manifesto-title .manifesto-fr em{
    font-size:.82em!important;
    white-space:normal!important;
    overflow-wrap:normal!important;
  }
}

/* Hero: size typography from both viewport width AND height so the CTAs
   always remain inside the hero, including browser windows opened by BAT. */
@media (min-width:901px){
  .home-page .hero-inner{
    padding-top:clamp(88px,10vh,124px)!important;
    padding-bottom:clamp(42px,6vh,70px)!important;
  }
  .home-page .hero-inner>div:first-child{
    width:min(1180px,92vw)!important;
    max-width:1180px!important;
  }
  .home-page .hero h1{
    font-size:clamp(62px,min(8.1vw,13.8vh),126px)!important;
    line-height:.78!important;
    margin:clamp(8px,1.4vh,16px) 0 clamp(14px,2vh,24px)!important;
  }
  .home-page .hero-copy{
    max-width:min(920px,76vw)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    font-size:clamp(15px,min(1.45vw,2.45vh),21px)!important;
    line-height:1.45!important;
  }
  .home-page .hero-actions{
    margin-top:clamp(16px,2.5vh,28px)!important;
  }
}

/* Short laptop / preview-server windows. */
@media (min-width:901px) and (max-height:760px){
  .home-page .hero-inner{padding-top:76px!important;padding-bottom:28px!important}
  .home-page .hero .eyebrow{margin-bottom:6px!important}
  .home-page .ui-page-meta{margin-bottom:4px!important}
  .home-page .hero h1{font-size:clamp(54px,min(7.1vw,12.8vh),92px)!important;margin:4px 0 10px!important}
  .home-page .hero-copy{font-size:15px!important;line-height:1.35!important;max-width:760px!important}
  .home-page .hero-actions{margin-top:12px!important}
  .home-page .hero-actions .btn{min-height:44px!important;padding:0 19px!important}
  .home-page .scroll-cue{bottom:12px!important}
}

@media (min-width:901px) and (max-height:620px){
  .home-page .hero-inner{padding-top:64px!important;padding-bottom:20px!important}
  .home-page .hero .eyebrow,.home-page .ui-page-meta{font-size:9px!important}
  .home-page .hero h1{font-size:clamp(46px,min(6.5vw,11.5vh),72px)!important;line-height:.8!important;margin:2px 0 8px!important}
  .home-page .hero-copy{font-size:13px!important;max-width:680px!important}
  .home-page .hero-actions{margin-top:10px!important;gap:8px!important}
  .home-page .hero-actions .btn{min-height:40px!important;padding:0 16px!important;font-size:11px!important}
  .home-page .scroll-cue{display:none!important}
}

/* Tablet portrait / compact desktop. */
@media (min-width:681px) and (max-width:900px){
  .home-page .hero{height:100dvh!important;min-height:100dvh!important}
  .home-page .hero-inner{
    height:100%!important;
    padding:clamp(86px,10vh,112px) 22px clamp(38px,5vh,56px)!important;
  }
  .home-page .hero-inner>div:first-child{width:min(760px,92vw)!important;margin:auto!important;text-align:center!important}
  .home-page .hero h1{font-size:clamp(58px,min(11vw,12vh),92px)!important;line-height:.8!important}
  .home-page .hero-copy{max-width:620px!important;margin-left:auto!important;margin-right:auto!important}
  .home-page .hero-actions{display:flex!important;justify-content:center!important;flex-wrap:wrap!important;width:100%!important}
  .home-page .hero-actions .btn{width:auto!important;min-width:190px!important}
}

/* Phones: preserve full hero, but always keep actions on-screen. */
@media (max-width:680px){
  .home-page .hero-inner{
    padding-top:calc(clamp(82px,12vh,108px) + env(safe-area-inset-top))!important;
    padding-bottom:calc(clamp(28px,5vh,48px) + env(safe-area-inset-bottom))!important;
  }
  .home-page .hero-inner>div:first-child{width:100%!important;max-width:100%!important;text-align:center!important}
  .home-page .hero h1{font-size:clamp(48px,min(15vw,11.8vh),76px)!important;line-height:.8!important;margin:8px 0 12px!important}
  .home-page .hero-copy{max-width:92%!important;margin:0 auto!important;font-size:clamp(13px,3.7vw,15px)!important;line-height:1.4!important}
  .home-page .hero-actions{width:min(92%,390px)!important;margin:14px auto 0!important;gap:8px!important}
  .home-page .hero-actions .btn{width:100%!important;min-height:44px!important;padding:0 16px!important}
}

@media (max-width:680px) and (max-height:690px){
  .home-page .hero-inner{padding-top:72px!important;padding-bottom:18px!important}
  .home-page .hero .eyebrow,.home-page .ui-page-meta{font-size:8px!important}
  .home-page .hero h1{font-size:clamp(42px,min(13vw,10.5vh),60px)!important;margin:4px 0 8px!important}
  .home-page .hero-copy{font-size:12px!important;line-height:1.3!important}
  .home-page .hero-actions{margin-top:10px!important}
  .home-page .hero-actions .btn{min-height:40px!important;font-size:11px!important}
  .home-page .scroll-cue{display:none!important}
}


/* =========================================================
   V127 — FRAMEWORK-FREE INTERACTION LAYER
   Static HTML remains the SEO/content layer; language and Work
   navigation are handled by the small native UI controller.
   ========================================================= */
.language-trigger{touch-action:manipulation}
.language-popover button.is-selected i{opacity:1;transform:scale(1)}
@media (prefers-reduced-motion:reduce){
  .language-popover,.language-chevron{transition:none!important}
}


/* =========================================================
   V95/V127 — RESPONSIVE HEIGHT + NATIVE NAVIGATION PASS
   ========================================================= */
/* Home profile: wide/short screens should not turn the portrait into a multi-screen column. */
@media (min-width:1100px) and (max-height:860px){
  .home-page #home-about{padding-top:clamp(52px,7vh,78px)!important;padding-bottom:clamp(52px,7vh,78px)!important}
  .home-page #home-about .split-panel{grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr)!important;gap:clamp(38px,5vw,82px)!important;align-items:center!important}
  .home-page #home-about .portrait-card{width:min(100%,560px)!important;max-height:72vh!important;justify-self:center!important;display:flex!important;flex-direction:column!important}
  .home-page #home-about .portrait-card picture{display:block!important;min-height:0!important;flex:1 1 auto!important;overflow:hidden!important;border-radius:16px!important}
  .home-page #home-about .portrait-card img{height:100%!important;min-height:0!important;aspect-ratio:auto!important;object-fit:cover!important;object-position:center 38%!important}
  .home-page #home-about .portrait-caption{flex:0 0 auto!important}
  .home-page #home-about .copy-large h2{font-size:clamp(38px,min(4.4vw,8vh),66px)!important;line-height:.93!important;margin-bottom:clamp(14px,2vh,22px)!important}
  .home-page #home-about .copy-large .lead{font-size:clamp(18px,min(1.75vw,3.1vh),24px)!important;line-height:1.4!important}
  .home-page #home-about .copy-large p:not(.lead){font-size:clamp(14px,min(1.22vw,2.35vh),17px)!important;line-height:1.55!important}
  .home-page #home-about .copy-large .btn{margin-top:4px!important}
}
@media (min-width:1100px) and (max-height:690px){
  .home-page #home-about .portrait-card{max-height:68vh!important;max-width:470px!important}
  .home-page #home-about .copy-large h2{font-size:clamp(34px,min(4vw,7.2vh),54px)!important}
  .home-page #home-about .copy-large p:not(.lead){display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
}

/* Tablet: keep profile balanced without a giant portrait. */
@media (min-width:681px) and (max-width:1099px){
  .home-page #home-about .portrait-card{width:min(76vw,520px)!important;margin-inline:auto!important}
  .home-page #home-about .portrait-card img{max-height:66vh!important;object-fit:cover!important;object-position:center 36%!important}
  .home-page #home-about .copy-large{max-width:760px!important;margin-inline:auto!important}
}

/* Native Work enhancement: active destination feels connected to the section below. */
html.dv-ui-work .worlds-bento .world-card{transition:transform .55s cubic-bezier(.16,1,.3,1),opacity .35s ease,border-color .35s ease!important}
html.dv-ui-work .worlds-bento .world-card.is-ui-active{transform:translateY(-5px)!important;border-color:rgba(132,183,213,.72)!important}
@media (prefers-reduced-motion:reduce){
  html.dv-ui-work .worlds-bento .world-card{transition:none!important}
}


/* V99 — client explorer overlay + section numbering consistency */
.explore-project-card{isolation:isolate!important}
.explore-project-bg{z-index:0!important}
.explore-project-shade{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  display:block!important;
  pointer-events:none!important;
  border-radius:inherit!important;
  background:linear-gradient(180deg,rgba(2,12,20,.08) 0%,rgba(2,12,20,.20) 48%,rgba(2,12,20,.88) 100%)!important;
}
.explore-project-logo,.explore-project-meta,.explore-project-arrow{
  position:relative!important;
  z-index:2!important;
}


/* V100 — semantic client rail numbering */
.client-system-section .world-section-number{
  margin-bottom:18px;
}
@media(max-width:680px){
  .client-system-section .world-section-number{
    margin-bottom:10px;
  }
}


/* V103 — definitive About/Home portrait correction */

/* ABOUT page: keep portrait compact and proportionate next to copy. */
body[data-page="about.html"] .about-grid{
  grid-template-columns:minmax(280px,420px) minmax(0,1fr)!important;
  gap:clamp(42px,6vw,92px)!important;
  align-items:start!important;
}
body[data-page="about.html"] .about-grid .portrait-card{
  width:100%!important;
  max-width:420px!important;
  margin:0!important;
  align-self:start!important;
}
body[data-page="about.html"] .about-grid .portrait-card picture{
  display:block!important;
  width:100%!important;
}
body[data-page="about.html"] .about-grid .portrait-card picture>img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-height:560px!important;
  aspect-ratio:4/5!important;
  object-fit:cover!important;
  object-position:50% 28%!important;
}

/* Laptop/short desktop: reduce it further. */
@media (min-width:981px) and (max-height:850px){
  body[data-page="about.html"] .about-grid{
    grid-template-columns:minmax(250px,350px) minmax(0,1fr)!important;
  }
  body[data-page="about.html"] .about-grid .portrait-card{
    max-width:350px!important;
  }
  body[data-page="about.html"] .about-grid .portrait-card picture>img{
    max-height:470px!important;
  }
}

/* HOME About section: preserve chin and lower face.
   Do not crop aggressively; use a slightly taller frame. */
body[data-page="index.html"] #home-about .split-panel{
  align-items:center!important;
}
body[data-page="index.html"] #home-about .portrait-card{
  overflow:hidden!important;
}
body[data-page="index.html"] #home-about .portrait-card picture{
  display:block!important;
  width:100%!important;
}
body[data-page="index.html"] #home-about .portrait-card picture>img{
  width:100%!important;
  height:auto!important;
  aspect-ratio:4/5!important;
  object-fit:cover!important;
  object-position:50% 18%!important;
  transform:none!important;
}

/* Tablets: balanced single-column portrait, full face visible. */
@media (max-width:980px){
  body[data-page="about.html"] .about-grid{
    grid-template-columns:1fr!important;
  }
  body[data-page="about.html"] .about-grid .portrait-card{
    max-width:390px!important;
    margin-inline:auto!important;
  }
  body[data-page="about.html"] .about-grid .portrait-card picture>img{
    max-height:none!important;
    object-position:50% 25%!important;
  }

  body[data-page="index.html"] #home-about .portrait-card{
    max-width:430px!important;
    margin-inline:auto!important;
  }
  body[data-page="index.html"] #home-about .portrait-card picture>img{
    object-position:50% 16%!important;
  }
}

/* Mobile: avoid any chin crop. */
@media (max-width:680px){
  body[data-page="about.html"] .about-grid .portrait-card,
  body[data-page="index.html"] #home-about .portrait-card{
    max-width:100%!important;
  }
  body[data-page="index.html"] #home-about .portrait-card picture>img{
    object-position:50% 12%!important;
  }
}



/* V104 — fast internal navigation after Adobe fonts are warm */
html.dv-fonts-loading body{
  opacity:0;
}
html.dv-fonts-warm body,
html.dv-fonts-ready body,
html.dv-fonts-failed body{
  opacity:1;
}


/* V105 — transition continuity */
html.dv-fonts-warm body,
html.dv-fonts-ready body,
html.dv-fonts-failed body{
  opacity:1!important;
  visibility:visible!important;
}
body{
  min-height:100vh;
}

/* V110 — unified DV transition continuity */
.dv73-transition{
  background:#061927;
}

/* V111 — no-flicker transition handoff */
.dv73-transition{isolation:isolate}
html.dv-internal-arrival body{background:#061927}

/* V112 — Home portrait: preserve the complete photograph, no chin crop. */
body[data-page="index.html"] #home-about .portrait-card{
  width:min(100%,400px)!important;
  max-width:400px!important;
  max-height:none!important;
  justify-self:center!important;
}
body[data-page="index.html"] #home-about .portrait-card picture{
  display:block!important;
  overflow:visible!important;
  flex:none!important;
}
body[data-page="index.html"] #home-about .portrait-card picture>img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  object-position:center!important;
}
/* Subway editorial accents on the light Home About section stay in DVSTUDIO brand blue. */
body[data-page="index.html"] #home-about .type-accent{
  color:var(--blue)!important;
}

/* V112 — real portfolio additions */
.browser-1370{position:relative;min-height:260px;overflow:hidden;background:#f3f0e9}
.browser-1370 img{width:100%;height:100%;min-height:260px;object-fit:cover;object-position:center}
.browser-1370>span{position:absolute;left:18px;bottom:16px;padding:8px 11px;border-radius:999px;background:rgba(243,240,233,.88);color:#0e3827;font-size:11px;letter-spacing:.06em}
.client-digital-section .client-system-panel{margin-top:38px}
.capability-motion-real .youtube-shell{margin:0}
@media(max-width:680px){
 body[data-page="index.html"] #home-about .portrait-card{width:min(88vw,360px)!important}
}

/* =========================================================
   V113 — PORTFOLIO INFORMATION ARCHITECTURE
   ========================================================= */

/* WEB: three compact projects, visually comparable. */
#web-world .web-showcase-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:18px!important;
  align-items:stretch!important;
}
#web-world .web-project-card{
  min-width:0;
  display:flex;
  flex-direction:column;
}
#web-world .browser-frame{border-radius:22px!important;overflow:hidden}
#web-world .browser-content{
  height:clamp(210px,22vw,310px)!important;
  min-height:0!important;
  position:relative!important;
  overflow:hidden!important;
}
#web-world .browser-content img{
  width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;
}
#web-world .browser-content>span{
  position:absolute;left:14px;bottom:14px;
  padding:7px 10px;border-radius:999px;
  background:rgba(6,25,39,.78);color:#fff;
  font-size:10px;letter-spacing:.06em;backdrop-filter:blur(10px);
}
#web-world .web-project-copy{padding-top:18px}
#web-world .web-project-copy h3{font-size:clamp(24px,2vw,32px)!important}
#web-world .web-project-copy p{font-size:15px;line-height:1.55}
#web-world .chip-row{gap:6px}
#web-world .chip-row span{font-size:10px;padding:7px 9px}

/* MOTION + GRAPHICS: equal disciplines, portrait media at sane desktop size. */
.motion-graphics-studio-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start;
}
.studio-discipline-card{
  border:1px solid var(--line);border-radius:28px;padding:20px;background:rgba(255,255,255,.64);
}
.studio-discipline-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px;
}
.studio-discipline-head h3{font-size:clamp(28px,2.5vw,38px);margin:6px 0 0}
.studio-index{font-family:var(--font-accent);color:var(--blue);font-size:11px;letter-spacing:.065em}
.studio-format{font-size:10px;letter-spacing:.08em;border:1px solid var(--line);border-radius:999px;padding:7px 9px}
.studio-media-portrait{
  width:min(100%,300px);margin-inline:auto;
}
.studio-media-portrait .youtube-shell{width:100%;margin:0}
.studio-discipline-copy{max-width:520px;margin:18px auto 0}
.studio-discipline-copy h4{font-family:var(--font-brand);font-size:24px;margin:0 0 8px}
.studio-discipline-copy p{font-size:15px;line-height:1.55;color:var(--muted)}
.graphics-portrait-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;
  width:min(100%,430px);margin-inline:auto;
}
.graphic-portrait-slot{
  aspect-ratio:9/16;border-radius:20px;padding:1px;
  background:linear-gradient(145deg,rgba(77,153,189,.55),rgba(6,25,39,.1));
}
.graphic-portrait-inner{
  height:100%;border-radius:19px;background:#071d2a;color:#fff;
  display:flex;flex-direction:column;justify-content:flex-end;padding:16px;
}
.graphic-portrait-inner>span{font-family:var(--font-accent);color:var(--blue-soft);font-size:34px}
.graphic-portrait-inner strong{font-family:var(--font-brand);font-size:24px;margin-top:auto}
.graphic-portrait-inner small{color:rgba(255,255,255,.6);margin-top:8px}

/* 1150 motion: one story, one player. */
.client-motion-clean-grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);
  gap:clamp(34px,6vw,90px);align-items:center;margin-top:42px;
}
.client-motion-copy{max-width:620px}
.client-motion-copy h3{font-family:var(--font-brand);font-size:clamp(32px,4vw,52px);line-height:1;margin:12px 0 18px}
.client-motion-copy p{font-size:clamp(17px,1.7vw,21px);line-height:1.55;color:rgba(255,255,255,.66)}
.client-motion-video{width:100%;max-width:320px!important;margin-inline:auto!important}

/* 1370 digital: website and product are equal, readable case-study modules. */
.client-digital-clean-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:40px;
}
.digital-project-card{
  overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:28px;
  background:rgba(255,255,255,.055);
}
.digital-project-visual{height:390px;position:relative;overflow:hidden}
.digital-project-visual img{width:100%;height:100%;object-fit:cover;display:block}
.digital-browser-pill{
  position:absolute;left:18px;right:18px;bottom:16px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:rgba(6,25,39,.78);backdrop-filter:blur(14px);border-radius:999px;
  padding:10px 14px;color:#fff;font-size:11px;
}
.digital-browser-pill a{color:#fff;text-decoration:none}
.digital-project-copy{padding:22px}
.digital-project-copy h3{font-family:var(--font-brand);font-size:clamp(28px,3vw,42px);margin:10px 0}
.digital-project-copy p{color:rgba(255,255,255,.66);line-height:1.55}
.reservation-platform-ui{
  min-height:390px;padding:30px;display:flex;flex-direction:column;
  background:
    radial-gradient(circle at 85% 10%,rgba(154,174,147,.28),transparent 34%),
    linear-gradient(145deg,#0e3827,#061927);
}
.platform-kicker{font-size:10px;letter-spacing:.12em;color:#9aae93}
.reservation-platform-ui>strong{
  font-family:var(--font-brand);font-size:clamp(42px,5vw,70px);line-height:.88;margin:auto 0;color:#f3f0e9;
}
.platform-stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.platform-stat-grid span{border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:12px;font-size:10px;color:rgba(255,255,255,.68)}
.platform-stat-grid b{display:block;color:#fff;font-size:18px;margin-bottom:4px}

/* Client hero site link stays part of the same action system. */
.client-brand-copy .hero-actions{flex-wrap:wrap}

/* Tablet */
@media(max-width:1100px){
  #web-world .web-showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #web-world .web-project-card:last-child{grid-column:1/-1;max-width:560px;width:100%;margin-inline:auto}
  .client-digital-clean-grid{grid-template-columns:1fr}
}
/* Mobile */
@media(max-width:720px){
  #web-world .web-showcase-grid{grid-template-columns:1fr!important}
  #web-world .web-project-card:last-child{grid-column:auto;max-width:none}
  #web-world .browser-content{height:230px!important}
  .motion-graphics-studio-grid{grid-template-columns:1fr}
  .studio-media-portrait{width:min(76vw,290px)}
  .graphics-portrait-grid{width:min(100%,360px)}
  .client-motion-clean-grid{grid-template-columns:1fr;gap:26px}
  .client-motion-video{max-width:min(78vw,300px)!important}
  .digital-project-visual,.reservation-platform-ui{min-height:320px;height:320px}
  .client-digital-clean-grid{gap:16px}
}

/* =========================================================
   V114 — WORK TYPOGRAPHY + ORIGINAL LIVE-SITE PREVIEWS
   Reuses the established DVSTUDIO hierarchy instead of
   introducing a second typographic system.
   ========================================================= */

/* Web: 3 compact projects, consistent with existing media cards. */
#web-world .web-showcase-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:18px!important;
}
#web-world .browser-content{
  height:clamp(190px,18vw,260px)!important;
  min-height:0!important;
}
#web-world .browser-live-preview picture,
#web-world .browser-live-preview img{
  width:100%!important;height:100%!important;display:block!important;
}
#web-world .browser-live-preview img{object-fit:cover!important}
#web-world .browser-1150-live img{object-position:center 48%!important}
#web-world .browser-1370-live img{object-position:center 54%!important}

/* Preserve the approved DVSTUDIO web-card artwork. */
#web-world .browser-dv{
  display:flex!important;align-items:center!important;justify-content:center!important;
  flex-direction:column!important;gap:22px!important;
  background:#061927!important;color:#fff!important;
}
#web-world .browser-dv img{
  width:min(38%,150px)!important;height:auto!important;object-fit:contain!important;
}
#web-world .browser-dv>span{
  position:static!important;background:none!important;padding:0!important;
  font-family:var(--font-accent)!important;color:#fff!important;
  font-size:clamp(19px,2vw,29px)!important;letter-spacing:.025em!important;
}

/* 03–04: use the SAME H3/card typography already used elsewhere. */
.capability-duo-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start;
}
.capability-duo-card{
  padding:0!important;overflow:hidden!important;background:rgba(255,255,255,.62)!important;
}
.capability-duo-body{
  display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr);
  gap:clamp(20px,2.5vw,34px);align-items:center;padding:22px;
}
.capability-duo-media{
  width:min(100%,230px);margin-inline:auto;
}
.capability-duo-media .youtube-shell{width:100%!important;margin:0!important}
.capability-duo-copy{
  padding:0!important;
}
/* Explicitly mirror existing .media-card-copy typography. */
.capability-duo-copy h3{
  font-family:var(--font-brand)!important;
  font-size:clamp(23px,2vw,31px)!important;
  font-weight:var(--mod-h3-weight)!important;
  font-variation-settings:"wght" var(--mod-h3-weight)!important;
  line-height:1.04!important;
  letter-spacing:.003em!important;
  margin:8px 0 12px!important;
}
.capability-duo-copy p{
  font-family:var(--font-ui)!important;
  font-size:15px!important;line-height:1.55!important;
  color:var(--muted)!important;margin:0 0 16px!important;
}
.capability-duo-copy .media-number,
.graphics-slots-compact .media-number{
  font-family:var(--font-accent)!important;
  font-weight:400!important;letter-spacing:.055em!important;
}
.graphics-slots-compact{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;
  width:min(100%,250px);margin-inline:auto;
}
.graphic-upload-slot-v114{
  aspect-ratio:9/16;border-radius:16px;border:1px solid rgba(6,25,39,.16);
  background:#061927;color:#fff;padding:12px;
  display:flex;flex-direction:column;justify-content:flex-end;min-width:0;
}
.graphic-upload-slot-v114 .media-number{
  color:var(--blue-soft);font-size:9px;margin-bottom:auto;
}
.graphic-upload-slot-v114 strong{
  font-family:var(--font-brand)!important;font-size:22px!important;
  font-weight:var(--mod-h3-weight)!important;font-variation-settings:"wght" var(--mod-h3-weight)!important;
}
.graphic-upload-slot-v114 small{
  font-family:var(--font-ui)!important;color:rgba(255,255,255,.62);font-size:10px;margin-top:6px;
}

/* Keep the parent section's established H2 scale untouched. */
#capabilities-world .section-title{
  font-family:var(--font-brand)!important;
}
#capabilities-world .section-title .type-accent{
  font-family:var(--font-accent)!important;
}

/* Responsive patterns learned from the 1370 build: no desktop-only assumptions. */
@media(max-width:1100px){
  #web-world .web-showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #web-world .web-project-card:last-child{grid-column:1/-1;max-width:560px;width:100%;margin-inline:auto}
  .capability-duo-grid{grid-template-columns:1fr}
  .capability-duo-body{grid-template-columns:minmax(180px,230px) minmax(0,1fr)}
}
@media(max-width:760px){
  #web-world .web-showcase-grid{grid-template-columns:1fr!important}
  #web-world .web-project-card:last-child{grid-column:auto;max-width:none}
  #web-world .browser-content{height:220px!important}
  .capability-duo-body{grid-template-columns:1fr;padding:16px}
  .capability-duo-media{width:min(68vw,240px)}
  .graphics-slots-compact{width:min(74vw,270px)}
}
@media(max-width:480px){
  .capability-duo-media{width:min(72vw,220px)}
  .graphics-slots-compact{width:min(80vw,250px)}
  .capability-duo-copy h3{font-size:clamp(23px,7vw,29px)!important}
}

/* =========================================================
   V115 — MOTION CONTAINMENT + WEB PRESENTATION SCALE
   ========================================================= */
#capabilities-world .capability-duo-media{
  overflow:hidden!important;
  border-radius:var(--radius-card,28px)!important;
}
#capabilities-world .capability-duo-media .youtube-shell,
#capabilities-world .capability-duo-media .youtube-poster,
#capabilities-world .capability-duo-media .youtube-facade,
#capabilities-world .capability-duo-media iframe{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  border-radius:inherit!important;
  overflow:hidden!important;
  clip-path:inset(0 round var(--radius-card,28px))!important;
}
#capabilities-world .capability-duo-media .youtube-shell{
  aspect-ratio:9/16!important;
  position:relative!important;
  contain:paint!important;
}
#capabilities-world .capability-duo-media .youtube-poster,
#capabilities-world .capability-duo-media iframe{
  position:absolute!important;inset:0!important;height:100%!important;
  object-fit:cover!important;border:0!important;
}

/* Website presentation image is the artwork: it fills the card, never sits as a tiny image. */
#web-world .browser-frame{overflow:hidden!important}
#web-world .browser-content.browser-live-preview{
  padding:0!important;overflow:hidden!important;position:relative!important;
}
#web-world .browser-live-preview picture{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
}
#web-world .browser-live-preview img{
  width:100%!important;height:100%!important;max-width:none!important;
  object-fit:cover!important;display:block!important;
}
@media(min-width:1101px){
  #web-world .browser-content{height:clamp(230px,20vw,310px)!important}
}

/* V116 — clear live-site presentation */
#web-world .browser-content .site-preview-link{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  padding:clamp(28px,4vw,58px);text-decoration:none;overflow:hidden;
  background:linear-gradient(145deg,#eef1f1 0%,#f8f8f5 100%);
}
#web-world .browser-content .site-preview-logo{
  position:static!important;width:min(72%,520px)!important;height:auto!important;
  max-height:62%!important;object-fit:contain!important;display:block!important;
  transition:transform .28s cubic-bezier(.2,.8,.2,1)!important;
}
#web-world .browser-content .site-preview-link:hover .site-preview-logo{transform:scale(1.025)!important}
#web-world .browser-content .site-preview-cta{
  position:absolute;right:18px;bottom:16px;padding:9px 13px;border-radius:999px;
  background:#061b2a;color:#fff;font:700 11px/1 var(--font-body,Arial,sans-serif);
  letter-spacing:.08em;
}
#web-world .browser-content .site-logo-1150{max-width:440px!important}
#web-world .browser-content .site-logo-1370{max-width:460px!important}
@media(max-width:720px){
 #web-world .browser-content .site-preview-link{padding:24px}
 #web-world .browser-content .site-preview-logo{width:min(78%,390px)!important;max-height:58%!important}
 #web-world .browser-content .site-preview-cta{right:12px;bottom:12px;font-size:10px}
}


/* =========================================================
   V117 — PUBLISH POLISH
   Fix containment / overflow / radius regressions only.
   Existing art direction, effects and interaction remain intact.
   ========================================================= */

/* 1. Curated client photography: restore a consistent rounded system.
   Keep special 1150 shapes; normalize accidental square 1370 cells. */
.client-photo-mosaic-1370 .client-photo-cell{
  border-radius:24px!important;
  overflow:hidden!important;
  clip-path:inset(0 round 24px);
}
.client-photo-mosaic-1370 .client-photo-cell-a{
  border-radius:220px 220px 24px 24px!important;
  clip-path:inset(0 round 220px 220px 24px 24px);
}
.client-photo-mosaic-1370 .client-photo-cell-d{
  border-radius:50% 50% 18px 18px!important;
  clip-path:inset(0 round 50% 50% 18px 18px);
}
.client-photo-cell img{border-radius:inherit}

/* 2. Motion player: media belongs inside the card, below its UI bar.
   The previous absolute poster was positioning against the outer media
   container and visually climbing underneath the bar. */
.client-motion-video{
  overflow:hidden!important;
  border-radius:28px!important;
  padding:0!important;
}
.client-motion-video .media-ui-bar{
  position:relative!important;
  z-index:5!important;
  width:100%!important;
}
.client-motion-video .youtube-shell{
  position:relative!important;
  width:100%!important;
  max-width:100%!important;
  aspect-ratio:9/16!important;
  margin:0!important;
  overflow:hidden!important;
  border-radius:0 0 27px 27px!important;
  clip-path:inset(0 round 0 0 27px 27px)!important;
  contain:paint!important;
}
.client-motion-video .youtube-poster,
.client-motion-video .youtube-facade,
.client-motion-video iframe{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  border:0!important;
  border-radius:0 0 27px 27px!important;
  clip-path:inset(0 round 0 0 27px 27px)!important;
  overflow:hidden!important;
}
.client-motion-video .youtube-poster img{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  object-fit:cover!important;border-radius:inherit!important;
}
.client-motion-video .youtube-poster-copy{left:18px!important;right:18px!important;bottom:18px!important}

/* 3. 1370 digital case study: typography must fit its card at every desktop
   width. This retains the brand font but uses the site's normal modular scale. */
.client-digital-clean-grid{min-width:0}
.digital-project-card,.digital-project-copy,.reservation-platform-ui{min-width:0}
.reservation-platform-ui{
  overflow:hidden!important;
  border-radius:27px 27px 0 0;
}
.reservation-platform-ui>strong{
  max-width:100%!important;
  font-size:clamp(34px,3.55vw,58px)!important;
  line-height:.92!important;
  letter-spacing:-.035em!important;
  overflow-wrap:normal!important;
}
.digital-project-copy h3{
  max-width:100%!important;
  font-size:clamp(27px,2.35vw,38px)!important;
  line-height:1.02!important;
  letter-spacing:-.025em!important;
  overflow-wrap:break-word!important;
}
.digital-project-copy p{font-size:clamp(15px,1.25vw,18px)!important}

/* 4. Generic text safety: grid children may shrink instead of forcing cards
   beyond their columns. */
.world-section-head>*,.client-system-grid>*,.capability-duo-body>*,
.web-project-card,.media-card-copy,.client-motion-copy{min-width:0}
.client-theme .section-title,
.world-section .section-title{
  max-width:100%!important;
  overflow-wrap:normal;
}

/* 5. Scope lists: invalid bare LI elements are rendered as normal chips
   after HTML normalization below. */
.client-theme .capability-list{min-width:0}

/* Tablet */
@media(max-width:1100px){
  .reservation-platform-ui>strong{font-size:clamp(38px,6vw,58px)!important}
  .digital-project-copy h3{font-size:clamp(28px,4.3vw,38px)!important}
}
/* Mobile */
@media(max-width:680px){
  .client-photo-mosaic-1370 .client-photo-cell{
    border-radius:20px!important;clip-path:inset(0 round 20px)!important;
  }
  .client-photo-mosaic-1370 .client-photo-cell-a{
    border-radius:110px 110px 20px 20px!important;
    clip-path:inset(0 round 110px 110px 20px 20px)!important;
  }
  .client-motion-video{width:min(82vw,300px)!important}
  .reservation-platform-ui{padding:22px!important}
  .reservation-platform-ui>strong{font-size:clamp(34px,11vw,48px)!important}
  .digital-project-copy h3{font-size:clamp(27px,8vw,34px)!important}
}


/* =========================================================
   V118 — FINAL QA / LAYER & RESPONSIVE SAFETY
   Resolve legacy stacking leaks, narrow-card text collisions,
   client hero crowding and semantic progress consistency.
   ========================================================= */

/* Media chrome must occupy its own row. A legacy project-hero rule had
   leaked absolute positioning to every .media-ui-bar site-wide. */
.media-card > .media-ui-bar{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  flex:0 0 auto;
  overflow:hidden;
}
.media-ui-bar .ui-dots{flex:0 0 auto}
.media-ui-bar > span:nth-child(2){
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.media-ui-bar > a,
.media-ui-bar > span:last-child{
  flex:0 0 auto;
  white-space:nowrap;
}

/* Mid-size laptops are the tightest client-hero state. Preserve the authored
   line composition when it fits, but allow a line to wrap before it can
   invade the photography column. */
@media (min-width:981px) and (max-width:1440px){
  .client-brand-hero-1370 .client-title-line,
  .client-brand-hero-dai .client-title-line{white-space:normal!important}
  .client-brand-hero-1370 .client-brand-copy h1,
  .client-brand-hero-dai .client-brand-copy h1{
    font-size:clamp(44px,4vw,58px)!important;
    line-height:.98!important;
  }
}

/* Small-screen media chrome: keep every label inside the card without
   increasing the fixed visual density of the original design. */
@media(max-width:480px){
  .media-ui-bar{padding-inline:10px!important;gap:8px!important}
  .media-ui-bar > span:nth-child(2){font-size:8px}
}

/* =========================================================
   V120 — GRAPHICS / RESERVATION PRODUCT / WEB ARTWORK
   Content expansion requested for 1150 + 1370 and Work.
   ========================================================= */

/* Video playback stays inside the authored visual layer.
   V63 used a full-card black takeover; V120 preserves card chrome and copy. */
.media-card.is-video-playing{
  animation:none!important;
  background:#fff!important;
  border-color:rgba(6,25,39,.12)!important;
}
.section-dark .media-card.is-video-playing{
  background:rgba(255,255,255,.055)!important;
  border-color:rgba(255,255,255,.14)!important;
}
.capability-duo-card.media-card.is-video-playing{
  background:rgba(255,255,255,.62)!important;
  border-color:rgba(6,25,39,.12)!important;
}
.media-card.is-video-playing>.media-ui-bar{display:flex!important}
.media-card.is-video-playing>.media-card-copy{display:block!important}
.media-card.is-video-playing .youtube-shell{
  border-radius:0!important;
  background:#061927;
}
.client-motion-video.media-card.is-video-playing .youtube-shell{
  border-radius:0 0 var(--radius-card,28px) var(--radius-card,28px)!important;
}

/* ---------- Real graphic design archive ---------- */
.client-graphics-section{overflow:hidden}
.graphic-carousel{margin-top:clamp(28px,4vw,52px)}
.graphic-carousel-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid rgba(6,25,39,.15);
  font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase
}
.graphic-carousel-actions{display:flex;gap:7px}
.graphic-carousel-actions button{
  appearance:none;border:1px solid rgba(6,25,39,.18);background:rgba(255,255,255,.66);
  width:42px;height:42px;border-radius:999px;display:grid;place-items:center;
  color:var(--ink);font:600 18px/1 var(--font-ui);cursor:pointer;
  transition:transform .2s ease,background .2s ease,border-color .2s ease
}
.graphic-carousel-actions button:hover{transform:translateY(-2px);background:#fff;border-color:rgba(6,25,39,.32)}
.graphic-carousel-track{
  display:flex;gap:clamp(14px,1.8vw,24px);overflow-x:auto;overscroll-behavior-inline:contain;
  scroll-snap-type:x mandatory;scroll-padding-inline:2px;padding:2px 2px 18px;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;outline:none
}
.graphic-carousel-track::-webkit-scrollbar{display:none}
.graphic-carousel-track:focus-visible{outline:2px solid var(--blue);outline-offset:6px;border-radius:18px}
.graphic-carousel-slide{
  flex:0 0 clamp(290px,31vw,430px);scroll-snap-align:start;margin:0;
  border-radius:24px;overflow:hidden;background:#fff;border:1px solid rgba(6,25,39,.12);
  box-shadow:0 22px 58px rgba(6,25,39,.09)
}
.graphic-carousel-slide img{display:block;width:100%;height:auto;aspect-ratio:105/126.4;object-fit:cover;background:#f5eee4}
.graphic-carousel-slide figcaption{
  display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;
  font-size:11px;font-weight:750;letter-spacing:.045em;text-transform:uppercase
}
.graphic-carousel-slide figcaption small{font-family:var(--font-accent);font-size:10px;font-weight:400;color:var(--muted)}
.graphic-carousel-progress{height:2px;background:rgba(6,25,39,.1);border-radius:999px;overflow:hidden;margin-top:2px}
.graphic-carousel-progress span{display:block;width:20%;height:100%;background:var(--ink);transform-origin:left center;transform:translateX(0);transition:transform .12s linear}

/* 1150: one real poster gets an editorial feature instead of fake slots. */
.single-graphic-feature{
  display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);gap:clamp(30px,6vw,86px);
  align-items:center;margin-top:clamp(30px,5vw,60px)
}
.single-graphic-poster{margin:0;max-width:520px;justify-self:center;width:100%;border-radius:28px;overflow:hidden;background:#fff;border:1px solid rgba(6,25,39,.12);box-shadow:0 28px 72px rgba(6,25,39,.12)}
.single-graphic-poster img{display:block;width:100%;height:auto}
.single-graphic-poster figcaption{display:flex;justify-content:space-between;gap:14px;padding:13px 16px;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.single-graphic-poster figcaption small{font-family:var(--font-accent);font-weight:400;color:var(--muted)}
.single-graphic-copy{min-width:0;max-width:620px}
.single-graphic-copy h3,.client-web-feature-copy h3,.reservation-intro-copy h3{
  font-family:var(--font-brand);font-size:clamp(34px,4vw,58px);font-weight:315;font-variation-settings:"wght" 315;
  letter-spacing:-.03em;line-height:.98;margin:12px 0 18px
}
.single-graphic-copy p,.client-web-feature-copy p,.reservation-intro-copy p{font-size:clamp(16px,1.5vw,20px);line-height:1.6;color:var(--muted);margin:0 0 22px}

/* ---------- Dedicated client website sections ---------- */
.client-web-feature{
  display:grid;grid-template-columns:minmax(0,1.42fr) minmax(300px,.58fr);gap:0;
  margin-top:clamp(30px,5vw,58px);border:1px solid rgba(255,255,255,.14);border-radius:30px;overflow:hidden;
  background:rgba(255,255,255,.055)
}
.client-web-feature-visual{
  position:relative;display:grid;place-items:center;min-height:clamp(390px,42vw,610px);overflow:hidden;text-decoration:none
}
.client-web-feature-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .4s ease}
.client-web-feature-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,25,39,.18),rgba(6,25,39,.52)),radial-gradient(circle at 50% 46%,transparent 0 26%,rgba(6,25,39,.22) 74%)}
.client-web-logo-plate,.site-preview-logo-plate{
  position:relative;z-index:2;display:grid;place-items:center;width:min(64%,470px);min-height:150px;
  padding:clamp(22px,3vw,40px);border:1px solid rgba(255,255,255,.48);border-radius:24px;
  background:rgba(245,238,228,.79);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:0 20px 60px rgba(6,25,39,.2)
}
.client-web-feature-logo{display:block;width:100%;height:auto;max-height:150px;object-fit:contain}
.client-web-logo-1150{max-width:330px}.client-web-logo-1370{max-width:350px}
.client-web-live{position:absolute;z-index:3;right:18px;bottom:18px;padding:10px 14px;border-radius:999px;background:#061927;color:#fff;font-size:10px;font-weight:800;letter-spacing:.09em}
.client-web-feature-visual:hover .client-web-feature-bg{transform:scale(1.035);filter:saturate(1.05)}
.client-web-feature-copy{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:clamp(26px,4vw,56px);color:#fff}
.client-web-feature-copy p{color:rgba(255,255,255,.68)}
.client-web-feature-copy .studio-index{color:var(--blue-soft)}

/* ---------- 1370 custom reservation product ---------- */
.reservation-case-section{overflow:hidden}
.reservation-showcase{
  display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:clamp(22px,4vw,54px);
  align-items:stretch;margin-top:clamp(32px,5vw,62px)
}
.reservation-hero-panel{
  min-width:0;min-height:470px;padding:clamp(22px,3vw,36px);border-radius:30px;color:#f3f0e9;
  display:flex;flex-direction:column;background:radial-gradient(circle at 86% 12%,rgba(154,174,147,.32),transparent 30%),linear-gradient(145deg,#0e3827,#061927);
  box-shadow:0 28px 72px rgba(6,25,39,.15)
}
.reservation-hero-top{display:flex;justify-content:space-between;gap:18px;font-size:9px;font-weight:800;letter-spacing:.12em;color:rgba(255,255,255,.58)}
.reservation-hero-main{margin:auto 0;padding:34px 0;min-width:0}
.reservation-hero-main>strong{display:block;max-width:100%;font-family:var(--font-brand);font-size:clamp(44px,5vw,72px);font-weight:315;font-variation-settings:"wght" 315;line-height:.9;letter-spacing:-.04em;overflow-wrap:normal}
.reservation-hero-panel .platform-stat-grid{margin-top:auto}
.reservation-intro-copy{min-width:0;align-self:center}
.reservation-intro-copy h3{font-size:clamp(34px,3.6vw,52px)}
.reservation-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:clamp(24px,4vw,44px)}
.reservation-feature{min-width:0;padding:22px;border:1px solid rgba(6,25,39,.13);border-radius:22px;background:rgba(255,255,255,.6)}
.reservation-feature-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#0e3827;color:#f3f0e9;margin-bottom:22px}
.reservation-feature-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.reservation-feature h3{font-family:var(--font-brand);font-size:clamp(24px,2.2vw,31px);font-weight:315;font-variation-settings:"wght" 315;line-height:1.02;margin:0 0 12px}
.reservation-feature p{margin:0;color:var(--muted);font-size:14px;line-height:1.58}

/* ---------- Work: real graphics instead of future placeholders ---------- */
.work-graphics-mini{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;width:min(100%,300px);margin-inline:auto;padding-bottom:4px;scrollbar-width:none}
.work-graphics-mini::-webkit-scrollbar{display:none}
.work-graphics-mini figure{position:relative;flex:0 0 72%;margin:0;border-radius:16px;overflow:hidden;scroll-snap-align:center;background:#eee;border:1px solid rgba(6,25,39,.12)}
.work-graphics-mini img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.work-graphics-mini figure>span{position:absolute;left:9px;bottom:9px;padding:5px 7px;border-radius:999px;background:rgba(6,25,39,.82);color:#fff;font-size:8px;font-weight:800;letter-spacing:.1em}

/* Work website cards: actual project image in the background, logo centered above it. */
#web-world .browser-content .site-preview-link{background:#061927!important;padding:0!important}
#web-world .site-preview-bg{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important;z-index:0;transition:transform .6s cubic-bezier(.2,.8,.2,1),filter .35s ease!important}
#web-world .browser-1150-live .site-preview-bg{object-position:center 58%!important}
#web-world .browser-1370-live .site-preview-bg{object-position:center 55%!important}
#web-world .site-preview-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(6,25,39,.08),rgba(6,25,39,.45)),radial-gradient(circle at center,transparent 0 24%,rgba(6,25,39,.18) 78%)}
#web-world .site-preview-logo-plate{width:min(58%,330px);min-height:100px;padding:20px 26px;border-radius:18px}
#web-world .browser-content .site-preview-logo{position:relative!important;z-index:2!important;width:100%!important;max-width:100%!important;max-height:105px!important;object-fit:contain!important;transform:none!important}
#web-world .browser-content .site-preview-cta{z-index:4}
#web-world .browser-content .site-preview-link:hover .site-preview-bg{transform:scale(1.045)!important;filter:saturate(1.08)!important}
#web-world .browser-content .site-preview-link:hover .site-preview-logo{transform:scale(1.02)!important}

@media(max-width:1100px){
  .reservation-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .client-web-feature{grid-template-columns:1fr}
  .client-web-feature-visual{min-height:460px}
  .client-web-feature-copy{max-width:760px}
}
@media(max-width:820px){
  .single-graphic-feature,.reservation-showcase{grid-template-columns:1fr}
  .single-graphic-copy{max-width:680px}
  .reservation-hero-panel{min-height:420px}
}
@media(max-width:680px){
  .graphic-carousel-slide{flex-basis:min(82vw,360px);border-radius:20px}
  .graphic-carousel-toolbar{align-items:flex-end}
  .graphic-carousel-actions button{width:39px;height:39px}
  .single-graphic-feature{gap:26px}
  .single-graphic-poster{max-width:min(86vw,430px)}
  .client-web-feature{border-radius:24px}
  .client-web-feature-visual{min-height:330px}
  .client-web-logo-plate{width:min(72%,330px);min-height:112px;padding:20px}
  .client-web-live{right:12px;bottom:12px;font-size:9px}
  .reservation-hero-panel{min-height:390px;padding:22px;border-radius:24px}
  .reservation-hero-main>strong{font-size:clamp(40px,13vw,58px)}
  .reservation-feature-grid{grid-template-columns:1fr}
  .reservation-feature{padding:20px}
  #web-world .site-preview-logo-plate{width:min(68%,300px);min-height:90px;padding:16px 20px}
}
@media(prefers-reduced-motion:reduce){
  .graphic-carousel-actions button,.client-web-feature-bg,#web-world .site-preview-bg{transition:none!important}
}
