/* The existing studio colours are the default. Visitor themes are opt-in;
   they recolour the same layout and never remove its films. */
:root {
  --future-paper: var(--bg);
  --future-ink: var(--text);
  --future-muted: #a7a7ae;
  --future-blue: var(--accent);
  --future-text-blue: var(--accent);
  --future-lime: var(--accent);
  --theme-button-ink: #101014;
}
:root[data-visitor-theme="aqua"] {
  --future-paper: #080809; --future-ink: #ffffff; --future-muted: #b7b7bd;
  --future-blue: var(--accent); --future-text-blue: var(--accent); --future-lime: var(--accent);
  --accent: var(--studio-accent, #ff1684);
}
:root[data-visitor-theme="noir"] {
  --future-paper: #080809; --future-ink: #ffffff; --future-muted: #b7b7bd;
  --future-blue: var(--accent); --future-text-blue: var(--accent); --future-lime: var(--accent);
  --accent: var(--studio-accent, #ff1684);
}
:root[data-visitor-theme="ultraviolet"] {
  --future-paper: #080809; --future-ink: #ffffff; --future-muted: #b7b7bd;
  --future-blue: var(--accent); --future-text-blue: var(--accent); --future-lime: var(--accent);
  --accent: var(--studio-accent, #ff1684);
}
:root[data-visitor-theme="solar"] {
  --future-paper: #080809; --future-ink: #ffffff; --future-muted: #b7b7bd;
  --future-blue: var(--accent); --future-text-blue: var(--accent); --future-lime: var(--accent);
  --accent: var(--studio-accent, #ff1684);
}

/* Full-screen opening: film first, compact copy near the bottom. */
.next-home .site-nav { position: fixed; background: transparent; color: #fff; }
.next-home.next-scrolled .site-nav { background: #08080a; }
html:has(.next-home) { scroll-padding-top: 80px; }
.next-home .site-sound-control { position: absolute; top: 84px; bottom: auto; left: 5vw; }
.work-toolbar { font-size: 11px; }
.work-toolbar button { font-size: 18px; line-height: 1; color: var(--future-ink); border-color: currentColor; }
.next-home .site-nav-brand { color: #fff; }
.next-home .menu-toggle { color: #fff; background: #08080bed; border: 1px solid #ffffff30; }
html.menu-open .next-home .site-nav { background: #08080a; }
.next-main { padding-top: 0; }
.future-hero {
  position: relative; isolation: isolate; display: flex; flex-direction: column;
  justify-content: flex-end; min-height: 100svh; padding: 110px 5vw 28px;
  background: #080809; color: #fff;
}
.future-hero .next-cinema { position: absolute; inset: 0; z-index: -2; transform: none; }
.future-hero .cinema-viewport { height: 100%; width: 100%; border-radius: 0; }
.future-hero .cinema-viewport video { transform: none; object-position: center; }
.future-hero::after {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(180deg,#0005 0%,transparent 38%,#0003 53%,#080809ed 100%);
}
.future-hero .next-intro { max-width: 820px; }
.future-hero .next-eyebrow { font-size: 12px; color: #fff; }
.future-hero .intro-location { display: none; }
.future-hero .next-intro h1 { font-size: clamp(46px,7vw,100px); line-height: 1; letter-spacing: -.05em; margin: 18px 0; animation: panel-arrival .5s .4s both; }
.future-hero .headline-line { transform: none; font-size: 1em; }
.future-hero .outline-line { color: var(--accent); }
.future-hero .intro-bottom { position: static; width: auto; display: flex; align-items: flex-start; flex-direction: column; gap: 16px; margin: 0; }
.future-hero .intro-bottom p { max-width: 38ch; font-size: 16px; }
.future-hero .hero-footnote { color: #d3d3d7; font-size: 10px; padding: 32px 0 0; }
.future-hero .cinema-top { top: 84px; left: auto; right: 5vw; z-index: 2; }
.future-hero .cinema-top button { font-size: 12px; min-height: 36px; padding: 7px 12px; }
.next-cta, .next-dark, .next-home .menu-search button { color: var(--theme-button-ink) !important; }
.next-cta:hover { background: var(--future-blue); filter: brightness(1.08); }
.next-home .mobile-dock a { color: #fff; }
.next-home .mobile-dock a:last-child { color: #101014; }
.next-home .site-footer { color: #fff; }

/* Dark editions use dark surfaces, rather than inverting entire sections. */
:root:not([data-visitor-theme]) :is(.next-capabilities,.next-about),
:root:is([data-visitor-theme="original"],[data-visitor-theme="noir"]) :is(.next-capabilities,.next-about) { background: #141418; color: #fff; }
:root:is([data-visitor-theme="original"],[data-visitor-theme="noir"]) .next-tabs button[aria-selected=true] { color: var(--accent); }
:root:is([data-visitor-theme="original"],[data-visitor-theme="noir"]) .next-proof img { filter: grayscale(1) brightness(0) invert(1); }
.next-ticker, .next-close { color: #101014; }
.next-close .next-label, .next-close .close-link em { color: #101014; }
.next-about { color: #171a17; }
.next-about .next-label, .next-about h2 em { color: inherit; opacity: .75; }
.next-capabilities { color: #fff; background: #171a17; }
.next-capabilities .next-dark { color: #ffffff !important; }

/* A second cinematic section remains in every theme; no stacked films. */
.kinetic-bridge { position: relative; isolation: isolate; min-height: 65svh; display: flex; flex-direction: column; justify-content: flex-end; padding-bottom: 45px; background: #080809; color: #fff; }
.kinetic-bridge video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.kinetic-bridge::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 45%,#000b); z-index: -1; }
.kinetic-bridge .kinetic-word { font-size: clamp(58px,10vw,150px); }
.kinetic-bridge .kinetic-outline { -webkit-text-stroke-color: #fff; }

/* Compact navigation. Secondary destinations are immediately visible. */
.mobile-menu .mobile-menu-content { padding: calc(76px + env(safe-area-inset-top)) max(18px,calc((100vw - 780px)/2)) max(20px,env(safe-area-inset-bottom)); }
.mobile-menu .menu-title { margin-bottom: 8px; font-size: 13px; }
.mobile-menu .menu-search { margin-bottom: 10px; }
.mobile-menu .mobile-menu-links > a,
.mobile-menu .mobile-menu-links > .menu-priority { min-height: 48px; padding: 9px 0; font: 650 26px/1.15 Arial,sans-serif; letter-spacing: -.025em; align-items: center; gap: 10px; }
.mobile-menu .mobile-menu-links > a > span { width: 21px; color: #aaa; font-size: 11px; }
.mobile-menu .mobile-menu-links a::after { content: none !important; }
.mobile-menu .menu-secondary-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 20px; margin-top: 10px; }
.mobile-menu .menu-secondary-links a { min-height: 42px; padding: 10px 0; font: 400 14px/1.4 Arial,sans-serif; letter-spacing: 0; color: #d7d7dd; align-items: center; }
.mobile-menu .mobile-menu-actions { display: grid; margin-top: 12px; gap: 0; }
.menu-theme-picker > summary, .mobile-menu .menu-control-panel > summary { min-height: 44px; font: 600 14px/1.3 Arial,sans-serif; padding: 12px 0; }
.visitor-theme-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.visitor-theme-grid button:first-child { grid-column: 1 / -1; }
.visitor-theme-grid button { min-height: 64px; padding: 8px; }
.visitor-theme-grid button > span { font-size: 12px; }
.visitor-theme-grid button > small { font-size: 10px; }
.visitor-theme-grid button > i { height: 16px; margin-bottom: 6px; }
[data-visitor-theme="original"] > i b:nth-child(1) { background: #080809; }
[data-visitor-theme="original"] > i b:nth-child(2) { background: var(--studio-accent,#ff1684); }
[data-visitor-theme="original"] > i b:nth-child(3) { background: #ffffff; }

/* Remove inherited hero/reel spacing, keeping artwork beneath the title. */
.gallery-experience .page-hero { padding-top: 20px; padding-bottom: 12px; }
.gallery-experience.page .page-hero .page-hero-copy h1 { max-width: none; font: 700 clamp(26px,3.5vw,42px)/1.15 Arial,sans-serif; letter-spacing: -.04em; }
.gallery-experience.page .page-hero .page-hero-copy h1 em { font: inherit; }
.gallery-experience .gallery-showreel { margin: 0 0 20px; padding: 12px 0 18px; transform: none; }
.gallery-experience .gallery-showreel-head { margin-bottom: 12px; align-items: center; }
.gallery-experience .gallery-showreel-viewport { rotate: -2deg; overflow: hidden; padding-block: 12px; }
.gallery-rail-toggle { color: #fff; background: #ffffff10; border: 1px solid #ffffff40; border-radius: 20px; min-height: 36px; padding: 6px 12px; font: 12px Arial,sans-serif; cursor: pointer; }
.gallery-showreel:is(.is-paused,.is-offscreen) .gallery-showreel-track { animation-play-state: paused; }

/* Forms must size to content, not stretch to fill a tall grid row. */
.enquiry-page { grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: start; gap: 24px; }
.enquiry-copy, .enquiry-panel { min-width: 0; }
.enquiry-panel { width: 100%; max-width: 540px; padding: 20px; }
.enquiry-panel > p:first-child { font-size: 14px; line-height: 1.5; margin-bottom: 16px; }
.enquiry-panel form { align-content: start; grid-auto-rows: min-content; gap: 7px; }
.enquiry-panel label { font-size: 14px; line-height: 1.3; }
.enquiry-panel input:not([type=hidden]) { display: block; box-sizing: border-box; height: 44px; min-height: 44px; max-height: 44px; padding: 10px 12px; margin-bottom: 6px; }
.enquiry-panel textarea { box-sizing: border-box; min-height: 88px; height: 88px; max-height: 200px; padding: 10px 12px; }
.enquiry-panel input, .enquiry-panel textarea { max-width: 100%; font-size: 16px; }
.enquiry-panel .button { width: 100%; max-width: 100%; min-height: 44px; padding: 12px; white-space: normal; font-size: 14px; background: var(--accent); color: #ffffff !important; }
.enquiry-panel .contact-note { margin: 6px 0; font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.enquiry-panel #enquiry-status:empty { display: none; }
.enquiry-copy .whatsapp-button { max-width: 100%; font-size: 14px; padding: 12px 14px; white-space: normal; }

@media (max-width: 700px) {
  .future-hero { padding: 100px 20px 102px; }
  .future-hero .next-intro h1 { font-size: clamp(40px,10.7vw,60px); }
  .future-hero .next-eyebrow { font-size: 10px; }
  .future-hero .intro-bottom { gap: 13px; }
  .future-hero .intro-bottom p { max-width: 31ch; font-size: 14px; }
  .future-hero .intro-bottom .next-cta { font-size: 13px; min-height: 44px; padding: 12px 18px; }
  .future-hero .hero-footnote { display: none; }
  .next-home .next-heading-row h2, .next-home .next-capabilities h2, .next-home .about-grid h2 { font-size: clamp(32px,9.7vw,43px); }
  .close-link { font-size: clamp(50px,15vw,69px); }
  .close-link > span { font-size: 28px; }
  .next-tabs button[aria-selected=true] { color: #ffffff !important; }
  .next-home .site-sound-control { display: block; bottom: auto; top: 76px; left: 18px; }
  .visitor-theme-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .gallery-experience.page .page-hero .page-hero-copy h1 { font-size: clamp(23px,6.4vw,30px); max-width: none; }
  .gallery-experience .page-hero-copy { padding-inline: 16px; }
  .gallery-experience .gallery-showreel-head { padding-inline: 16px; }
  .gallery-experience .gallery-showreel { padding-top: 0; }
  .gallery-experience .gallery-showreel-head .eyebrow { display: none; }
  .gallery-experience .gallery-showreel-head { justify-content: flex-end; margin-bottom: 0; }
  .enquiry-page { grid-template-columns: minmax(0,1fr); gap: 16px; padding-top: calc(var(--nav-height) + 18px); padding-inline: 16px; }
  .enquiry-copy h1 { font-size: clamp(28px,8vw,36px); }
  .enquiry-copy > p { margin: 10px 0; }
  .enquiry-copy .contact-note { font-size: 13px; }
  .contact-direct { gap: 3px; margin-top: 12px; }
  .enquiry-panel { padding: 16px; max-width: none; }
  .enquiry-copy > .contact-note, .contact-number { display: none; }
  .contact-direct { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; }
  .contact-email-link { font-size: 13px; }
  .contact-breadcrumbs { margin: 0; }
  .enquiry-copy .eyebrow { margin-top: 0; font-size: 10px; }
  .enquiry-copy > p:not(.eyebrow) { font-size: 14px; }
  .enquiry-panel > p:first-child { margin-bottom: 12px; font-size: 13px; }
  .enquiry-panel form { gap: 5px; }
  .enquiry-panel label { font-size: 13px; }
  .next-home .site-sound-control button { border-radius: 24px; padding: 7px 11px; min-height: 36px; font-size: 12px; }
}
/* Optional art directions reuse the same content and semantic reading order.
   The original stays cinematic; every experiment is deliberately opt-in. */
:root[data-visitor-theme="aqua"] .next-work { background: radial-gradient(ellipse at 90% 10%,#ff168455,transparent 55%),var(--future-paper); }
:root[data-visitor-theme="aqua"] .project-art { border-radius: 100px 18px 100px 18px; }
:root[data-visitor-theme="aqua"] .next-capabilities { border-radius: 90px 0 0 0; background: #073e3e; }
:root[data-visitor-theme="aqua"] .next-art-grid a { transform: none; }
:root[data-visitor-theme="aqua"] .next-art-grid a:nth-child(even) { transform: translateY(26px); }
:root[data-visitor-theme="aqua"] .next-art-grid img { border: 0; border-radius: 100px; }
:root[data-visitor-theme="aqua"] .next-about { background: #bdf4e9; border-radius: 0 0 90px 0; }
:root[data-visitor-theme="aqua"] .next-close { border-radius: 90px 90px 0 0; }
:root[data-visitor-theme="aqua"] .future-hero .next-cta { background: #ff1684c9; border: 1px solid #a7fff0; backdrop-filter: blur(12px); }

:root[data-visitor-theme="noir"] .next-ticker { display: none; }
:root[data-visitor-theme="noir"] .next-home :is(h1,h2,h3) { font-weight: 400; letter-spacing: -.045em; }
:root[data-visitor-theme="noir"] .future-hero .outline-line { color: #fff; }
:root[data-visitor-theme="noir"] .next-work { border-top: 1px solid #ffffff30; }
:root[data-visitor-theme="noir"] :is(.project-art,.next-close,.next-capabilities) { border-radius: 0; }
:root[data-visitor-theme="noir"] :is(.next-cinema video,.project-art img,.next-art-grid img) { filter: grayscale(1); }
:root[data-visitor-theme="noir"] .next-project:nth-child(even) { padding-top: 0; }
:root[data-visitor-theme="noir"] .next-art-grid a { transform: none; }
:root[data-visitor-theme="noir"] .next-art-grid img { border: 1px solid #ffffff50; }
:root[data-visitor-theme="noir"] .next-cta { border-radius: 0; }
:root[data-visitor-theme="noir"] .next-about { border-block: 1px solid #ffffff26; }

:root[data-visitor-theme="ultraviolet"] .next-work { background: linear-gradient(135deg,#171719 25%,#080809 25%,#080809 75%,#171719 75%); }
:root[data-visitor-theme="ultraviolet"] .next-home :is(h1,h2,h3) { font-weight: 800; letter-spacing: -.06em; }
:root[data-visitor-theme="ultraviolet"] .project-art { border-radius: 0; clip-path: polygon(0 0,85% 0,100% 12%,100% 100%,0 100%); }
:root[data-visitor-theme="ultraviolet"] .next-capabilities { background: #171719; border-radius: 0 70px 0 0; }
:root[data-visitor-theme="ultraviolet"] .next-about { background: #171719; }
:root[data-visitor-theme="ultraviolet"] .next-proof { border-top: 2px solid #171719; }
:root[data-visitor-theme="ultraviolet"] .next-art-grid a { transform: rotate(-3deg); }
:root[data-visitor-theme="ultraviolet"] .next-art-grid a:nth-child(even) { transform: translateY(35px) rotate(3deg); }
:root[data-visitor-theme="ultraviolet"] .next-art-grid img { border: 5px solid #ff1684; box-shadow: 7px 7px 0 #171719; }
:root[data-visitor-theme="ultraviolet"] .next-cta { border-radius: 8px 24px 8px 8px; }
:root[data-visitor-theme="ultraviolet"] .next-close { border-radius: 0; background: #ff1684; }

:root[data-visitor-theme="solar"] .next-work { background: repeating-linear-gradient(0deg,transparent 0,transparent 39px,#28181408 40px),var(--future-paper); }
:root[data-visitor-theme="solar"] .next-home h2 { text-transform: uppercase; font-weight: 800; letter-spacing: -.055em; }
:root[data-visitor-theme="solar"] .project-art { border-radius: 12px; border: 6px solid #281814; }
:root[data-visitor-theme="solar"] .project-caption { padding-bottom: 14px; border-bottom: 2px solid #281814; }
:root[data-visitor-theme="solar"] .next-capabilities { background: #171719; border-radius: 0; }
:root[data-visitor-theme="solar"] .next-about { background: #ff1684; }
:root[data-visitor-theme="solar"] .next-ticker { background: #ff1684; color: #281814; transform: rotate(1deg); }
:root[data-visitor-theme="solar"] .next-art-grid a { transform: rotate(-4deg); }
:root[data-visitor-theme="solar"] .next-art-grid a:nth-child(even) { transform: translateY(20px) rotate(4deg); }
:root[data-visitor-theme="solar"] .next-art-grid img { border: 8px solid #fff9ee; border-bottom-width: 30px; }
:root[data-visitor-theme="solar"] .next-close { border-radius: 0; background: #ff1684; }
:root[data-visitor-theme="solar"] .next-cta { border-radius: 6px; box-shadow: 3px 3px 0 #281814; }

/* Theme-specific forms stay deliberately quiet and high-contrast. */
:root[data-visitor-theme="aqua"] .enquiry-panel { border-color: #ff168470; border-radius: 28px 8px 28px 8px; background: #171719; }
:root[data-visitor-theme="noir"] .enquiry-panel { border-radius: 0; border-color: #ffffff70; }
:root[data-visitor-theme="ultraviolet"] .enquiry-panel { border-radius: 8px 28px 8px 8px; border-color: #ff168490; background: #171719; }
:root[data-visitor-theme="solar"] .enquiry-panel { border-radius: 8px; border-color: #ff168490; background: #171719; }
:root[data-visitor-theme="aqua"] .gallery-rail-media { border-radius: 45px 10px; }
:root[data-visitor-theme="noir"] .gallery-rail-media { border-radius: 0; }
:root[data-visitor-theme="ultraviolet"] .gallery-rail-media { border-radius: 0 35px 0 0; }
:root[data-visitor-theme="solar"] .gallery-rail-media { border: 3px solid #ff1684; border-radius: 6px; }
@media (max-width: 700px) {
  :root[data-visitor-theme="aqua"] :is(.next-capabilities,.next-close) { border-top-left-radius: 45px; }
  :root[data-visitor-theme="aqua"] .next-close { border-top-right-radius: 45px; }
  :root[data-visitor-theme="aqua"] .next-art-grid img { border-radius: 65px; }
  :root[data-visitor-theme="solar"] .next-home h2 { font-size: clamp(28px,8.5vw,38px); }
}
@media (prefers-reduced-motion: reduce) {
  .future-hero .next-intro h1 { animation: none; }
  .gallery-rail-toggle { display: none; }
}
