/* Shared ACE components. Palette channels remain in tokens.css. */
html { scroll-padding-top: 104px; }
body { overflow-wrap: break-word; }
*, *::before, *::after { letter-spacing: 0 !important; }
h1, h2, h3 { text-wrap: balance; font-style: normal; }
p { text-wrap: pretty; }
:is(h1,h2,h3) .accent-italic { font-style: normal; color: inherit; }
:is(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline: 2px solid rgb(var(--trust-bronze)); outline-offset: 4px; }
:is(footer,.bg-deep-ink,.bg-brand-navy) :focus-visible { outline-color: rgb(var(--warm-paper)); }
[hidden] { display: none !important; }
.ace-skip { position: fixed; z-index: 100; top: 8px; left: 8px; transform: translateY(-180%); background: rgb(var(--brand-navy)); color: rgb(var(--warm-paper)); padding: 16px 24px; border-radius: 999px; }
.ace-skip:focus { transform: none; }
.ace-icon-button, .ace-dropdown-toggle { width: 44px; height: 44px; flex: 0 0 44px; display: inline-grid; place-items: center; border: 1px solid rgb(var(--hairline)); border-radius: 999px; background: transparent; color: rgb(var(--brand-navy)); cursor: pointer; }
.ace-icon-button:hover, .ace-dropdown-toggle:hover { border-color: rgb(var(--terracotta)); }
.ace-dropdown-toggle { width: 32px; flex-basis: 32px; border: 0; border-radius: 4px; }
.ace-disclosure { display: flex; align-items: center; }
header nav .ace-disclosure > div { visibility: hidden; opacity: 0; pointer-events: none; }
header nav .ace-disclosure.is-open > div { visibility: visible; opacity: 1; pointer-events: auto; }
.ace-dropdown-panel { translate: var(--dropdown-shift,0) 0; max-width: calc(100vw - 32px); max-height: calc(100dvh - 96px); overflow-y: auto; overscroll-behavior: contain; }
.ace-disclosure.is-open > .ace-dropdown-toggle .material-symbols-outlined { transform: rotate(180deg); }
header nav .ace-dropdown-panel a { text-decoration: none; }
header nav .ace-dropdown-panel a:is(:hover,:focus-visible) { text-decoration: underline; text-underline-offset: 4px; }
header nav > .group:focus-within:not(.ace-disclosure) > div { visibility: visible; opacity: 1; }
header > div { min-width: 0; }
header nav { gap: 16px !important; }
.ace-mb-drawer { position: fixed; inset: 0 0 0 auto; margin: 0; width: min(420px,90vw); max-width: 100%; height: 100dvh; max-height: 100dvh; padding: 0; border: 0; background: rgb(var(--warm-paper)); color: rgb(var(--body-text)); overscroll-behavior: contain; }
.ace-mb-drawer[open] { display: flex; flex-direction: column; }
.ace-mb-drawer::backdrop { background: rgb(var(--deep-ink)/.55); }
.ace-mb-head { display: flex; justify-content: space-between; align-items: center; padding: 16px 24px; border-bottom: 1px solid rgb(var(--hairline)); }
.ace-mb-head > span { font: 400 28px/1.2 'Instrument Serif',serif; color: rgb(var(--brand-navy)); }
.ace-mb-body { flex: 1; overflow-y: auto; padding: 16px 24px; }
.ace-mb-section { margin-bottom: 24px; }
.ace-mb-eyebrow { display: block; font-size: 12px; font-weight: 500; color: rgb(var(--trust-bronze)); margin: 16px 0 8px; }
.ace-mb-link,.ace-mb-sublink { display: flex; align-items: center; min-height: 44px; padding-block: 10px; color: rgb(var(--brand-navy)); line-height: 1.5; }
.ace-mb-link { font-size: 18px; border-bottom: 1px solid rgb(var(--hairline)); }
.ace-mb-sublink { font-size: 14px; }
.ace-mb-foot { display: grid; gap: 12px; padding: 20px 24px; border-top: 1px solid rgb(var(--hairline)); }
.ace-mb-locked { overflow: hidden; }
.ace-action { display: inline-flex; justify-content: center; align-items: center; gap: 12px; min-height: 48px; padding: 14px 24px; border: 1px solid rgb(var(--brand-navy)); border-radius: 999px; background: rgb(var(--brand-navy)); color: rgb(var(--warm-paper)); font-size: 14px; font-weight: 500; text-align: center; }
.ace-text-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: rgb(var(--trust-bronze)); text-decoration: underline; text-underline-offset: 5px; }
.ace-toast { position: fixed; z-index: 100; bottom: 24px; left: 24px; right: 24px; width: fit-content; max-width: min(520px,calc(100% - 48px)); margin: auto; padding: 16px 24px; background: rgb(var(--brand-navy)); color: rgb(var(--warm-paper)); border: 1px solid rgb(var(--warm-paper)/.3); border-radius: 8px; font-size: 14px; }
.ace-search-field { position: relative; height: 56px; }
.ace-search-field input { height: 56px; }
.ace-search-field > .ace-icon-button { top: 6px; right: 6px; }
footer :is(.text-warm-paper\/40,.text-warm-paper\/50) { color: rgb(var(--warm-paper)/.75); }
footer :is(.w-10.h-10) { width: 44px; height: 44px; }
main .ace-accent-readable { color: rgb(var(--trust-bronze)) !important; }
.ace-ink-on-dark { color: rgb(var(--warm-paper)/.8) !important; }
.dark .ace-reading-page .ace-accent-readable { color: rgb(var(--reading-body)) !important; }
.dark .ace-reading-page main :is(p,li) a { color: rgb(var(--reading-paper)) !important; }
.dark .ace-reading-page main aside a { color: rgb(var(--reading-body)) !important; }
.dark .ace-reading-page main .aspect-video .text-brand-navy { color: rgb(var(--reading-paper)); }
main p a:not([class*="rounded-full"]):not(.ace-action), .legal-content li a { text-decoration: underline; text-underline-offset: 4px; }
main .ace-action { background: rgb(var(--brand-navy)) !important; color: rgb(var(--warm-paper)) !important; }
body:has(#palette) main nav a { display: inline-flex; align-items: center; min-height: 44px; padding-inline: 4px; }
.ace-on-dark .ace-accent-readable { color: rgb(var(--warm-paper)/.8) !important; }
.ace-cinema #about .text-terracotta { color: rgb(var(--trust-bronze)) !important; }
.ace-tablewrap { overflow-x: auto; max-width: 100%; scrollbar-width: thin; }
.ace-tablewrap > table { min-width: 0 !important; width: 100%; table-layout: auto; }
.ace-tablewrap :is(th,td) { white-space: normal !important; overflow-wrap: anywhere; min-width: 96px; padding: 16px; }
.ace-tablewrap th { font-size: 12px; }
.ace-legal main { padding-top: 136px; }
.ace-legal .ace-legal-masthead { margin-bottom: 48px; padding-bottom: 40px; border-bottom: 1px solid rgb(var(--hairline)); }
.ace-legal-masthead h1 { font: 400 56px/1.05 'Instrument Serif',serif; color: rgb(var(--brand-navy)); margin: 16px 0; }
.ace-legal-masthead p { max-width: 62ch; font-size: 18px; line-height: 1.7; color: rgb(var(--muted)); }
.ace-legal :is(.legal-content,.ace-reading) { font-size: 16px; line-height: 1.75; max-width: 68ch; }
.ace-legal :is(.legal-content,.ace-reading) h2 { font: 400 28px/1.2 'Instrument Serif',serif; margin: 40px 0 16px; color: rgb(var(--brand-navy)); }
.ace-legal :is(.legal-content,.ace-reading) h3 { font: 400 24px/1.25 'Instrument Serif',serif; margin: 24px 0 12px; }
.ace-legal :is(.legal-content,.ace-reading) p { margin-bottom: 20px; }
.ace-legal :is(.legal-content,.ace-reading) ul { list-style: disc; padding-left: 24px; margin-bottom: 24px; }
.ace-legal :is(.legal-content,.ace-reading) li { margin-bottom: 8px; }
.ace-mobile-contents { margin: 24px 0 40px; border-block: 1px solid rgb(var(--hairline)); padding: 16px 0; }
.ace-mobile-contents summary { min-height: 44px; cursor: pointer; font-weight: 500; }
.ace-mobile-contents a { display: block; padding: 10px 0; text-decoration: underline; text-underline-offset: 4px; }
.ace-search-results { text-align: left; margin-top: 24px; line-height: 1.6; }
.ace-search-results a { display: block; padding: 12px 0; color: rgb(var(--trust-bronze)); text-decoration: underline; }
.ace-caption { display: block; font-size: 12px; line-height: 1.6; margin-top: 12px; color: rgb(var(--muted)); }
.ace-on-dark .ace-caption { color: rgb(var(--warm-paper)/.8); }
.ace-project-tile { box-shadow: none !important; transform: none !important; }
.ace-project-tile .ace-project-caption { position: relative; inset: auto; padding: 20px 24px; background: rgb(var(--card)); color: rgb(var(--brand-navy)); }
.ace-project-caption h3 { font-size: 28px; }
.ace-project-caption p { font-size: 12px; color: rgb(var(--muted)); }
.ace-project-index { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 48px; }
.ace-project-record { padding: 28px 0; border-top: 1px solid rgb(var(--hairline)); }
.ace-project-record h3 { font: 400 28px/1.15 'Instrument Serif',serif; color: rgb(var(--brand-navy)); margin-bottom: 12px; }
.ace-project-record p { color: rgb(var(--muted)); font-size: 14px; }
.ace-project-record a { margin-top: 12px; font-size: 14px; }
.cinema-proof { background: rgb(var(--card)); border-block: 1px solid rgb(var(--hairline)); }
.ace-proof-facts { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 32px; border-top: 1px solid rgb(var(--hairline)); margin-top: 40px; padding-top: 24px; font-size: 14px; line-height: 1.6; }
.ace-proof-facts dt { color: rgb(var(--muted)); margin-bottom: 12px; font-size: 12px; }
.ace-service-evidence { margin: 48px 0; }
.ace-service-evidence img { display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; }
.ace-service-evidence figcaption { margin-top: 12px; font-size: 12px; color: rgb(var(--muted)); }
.cinema-coordination-visual img { aspect-ratio: 16/9; object-fit: contain; }
.ace-study-frame { position: relative; aspect-ratio: 16/9; width: 100%; background: rgb(var(--warm-paper)); }
.ace-study-frame > img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ace-study-frame > hyperframes-player { position: absolute; inset: 0; display: block; width: 100%; height: 100%; opacity: 0; }
.ace-study-frame.is-ready > hyperframes-player { opacity: 1; }
.ace-study-controls { display: flex; align-items: center; gap: 12px; padding-block: 12px; }
.ace-study-controls input { flex: 1; min-width: 60px; accent-color: rgb(var(--terracotta)); }
.ace-study-controls .ace-icon-button { color: inherit; }
#ace-globe-toggle { display: grid; margin: 16px auto 0; color: rgb(var(--warm-paper)); }
[data-study-start] { margin-top: 16px; }
.cinema-coordination [data-study-start] { color: rgb(var(--warm-paper)); }
.ace-method-rows { display: grid; grid-template-columns: 1fr; gap: 0; }
.ace-method-rows > div:not(.method-line) { display: grid; grid-template-columns: 64px 180px 1fr; gap: 24px; align-items: start; padding: 24px 0; border: 0; border-top: 1px solid rgb(var(--hairline)); border-radius: 0; background: transparent; box-shadow: none; transform: none; }
.ace-method-rows .method-line { display: none; }
.ace-method-rows h3 { font-size: 28px; margin: 0; }
.ace-method-rows h2 { font-size: 28px; margin: 0; }
.ace-method-rows .method-rail { display: none; }
.ace-method-rows p { font-size: 16px; line-height: 1.65; }
.ace-method-rows .font-stat-number { font-size: 28px; margin: 0; }
.ace-programme { margin-top: 32px; padding-block: 24px; border-block: 1px solid rgb(var(--hairline)); }
.ace-programme-row { display: grid; grid-template-columns: 180px 1fr; gap: 24px; padding-block: 12px; font-size: 14px; }
.ace-programme-track { background: rgb(var(--hairline)); min-height: 20px; position: relative; }
.ace-programme-track span { display: block; height: 20px; width: var(--span); margin-left: var(--start); background: rgb(var(--brand-navy)); transform-origin: left; }
.ace-programme-row:nth-child(2) .ace-programme-track span { background: rgb(var(--terracotta)); }
.ace-form-section { scroll-margin-top: 104px; }
.ace-market-hero { min-height: 640px; padding-block: 80px; }
.ace-market-label { margin-bottom: 24px; color: rgb(var(--warm-paper)); font-size: 12px; text-transform: uppercase; }
.ace-market-hero .text-terracotta { color: rgb(var(--warm-paper)) !important; }
.ace-market-facts { display: grid; grid-template-columns: 1fr 1.4fr 1fr; max-width: 760px; gap: 24px; margin-top: 36px; color: rgb(var(--warm-paper)); }
.ace-market-facts > div { border-top: 1px solid rgb(var(--warm-paper)/.45); padding-top: 16px; }
.ace-market-facts dt { font-size: 12px; margin-bottom: 8px; }
.ace-market-facts dd { font-size: 16px; line-height: 1.5; }
.ace-market-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; margin-top: 32px; color: rgb(var(--warm-paper)); text-decoration: underline; text-underline-offset: 5px; }
.ace-market-hero > .absolute > div { background: linear-gradient(90deg,rgb(var(--deep-ink)/.88),rgb(var(--deep-ink)/.5) 65%,rgb(var(--deep-ink)/.1)); }
.ace-form-section > div > div:first-child { padding: 0; border: 0; box-shadow: none; background: transparent; }
.ace-form-context { font-size: 16px; line-height: 1.6; margin: -12px 0 24px; color: rgb(var(--muted)); }
.bk-chip,.bk-slot { min-height: 44px; }
.bk-chip.sel,.bk-slot.sel { background: rgb(var(--brand-navy)) !important; border-color: rgb(var(--brand-navy)) !important; color: rgb(var(--warm-paper)) !important; }
.ace-reading-page #theme-toggle { width: 44px; height: 44px; }
.dark .ace-mobile-contents { border-color: rgb(var(--reading-hair)); }
.dark .ace-mobile-contents a { color: rgb(var(--reading-paper)); }
.dark :is(.ace-icon-button,.ace-dropdown-toggle) { color: rgb(var(--reading-paper)); border-color: rgb(var(--reading-hair)); }
.dark .ace-mb-drawer { background: rgb(var(--reading-ink)); color: rgb(var(--reading-body)); }
.dark :is(.ace-mb-link,.ace-mb-sublink,.ace-mb-head > span) { color: rgb(var(--reading-paper)); }
.dark :is(.ace-mb-head,.ace-mb-link,.ace-mb-foot) { border-color: rgb(var(--reading-hair)); }
.dark .ace-mb-foot .ace-text-link { color: rgb(var(--reading-paper)); }
.dark .ace-mb-eyebrow { color: rgb(var(--reading-body)); }
@media (min-width:1024px) { #ace-mobile-hamburger,.ace-mobile-contents { display: none; } }
@media (max-width:1100px) and (min-width:1024px) { header nav { gap: 10px !important; } header nav a { font-size: 12px !important; } header > div { padding-inline: 20px; } header > div > div:last-child > a { padding-inline: 16px; } }
@media (max-width:820px) {
  .ace-market-hero { min-height: 0; padding-block: 56px; }
  .ace-market-hero .ace-framed-source { transform: scale(1.43); }
  .ace-market-facts { grid-template-columns: 1fr; gap: 16px; margin-top: 24px; }
  .ace-market-facts > div { display: grid; grid-template-columns: 76px 1fr; gap: 16px; padding-top: 12px; }
  .ace-market-hero > .absolute > div { background: rgb(var(--deep-ink)/.75); }
  .ace-proof-facts { grid-template-columns: 1fr; gap: 24px; }
  .ace-method-rows > div:not(.method-line) { grid-template-columns: 40px 1fr; gap: 16px; }
  .ace-method-rows p { grid-column: 2; }
  .ace-programme-row { grid-template-columns: 100px 1fr; gap: 16px; }
  main h1, .ace-cinema .cinema-opening h1, .ace-cinema .cinema-service-hero h1 { font-size: 44px !important; line-height: 1.05 !important; overflow-wrap: anywhere; }
  main h2.text-h2, main h2.text-h1 { font-size: 36px !important; }
  main .py-section-v-desktop { padding-block: 72px; }
  main .mb-20 { margin-bottom: 48px; }
  main .px-gutter { padding-inline: 24px; }
  main > section[class*="min-h-"] { min-height: 0; }
  .ace-legal main { padding-top: 120px; }
  .ace-legal .ace-legal-masthead { margin-bottom: 32px; }
  .ace-form-section > div { gap: 40px; }
  .ace-contact-strip { margin-top: 0; padding-top: 32px; }
  .ace-contact-strip > div { gap: 0; }
  .ace-contact-strip > div > div { padding: 24px 0; border: 0; border-bottom: 1px solid rgb(var(--hairline)); border-radius: 0; box-shadow: none; }
  .ace-contact-strip a { font-size: 24px; }
  .ace-tablewrap :is(th,td) { padding: 12px; font-size: 14px; }
}
@media (max-width:480px) {
  .ace-project-index { grid-template-columns: 1fr; }
  main .ace-narrow-grid { grid-template-columns: minmax(0,1fr) !important; }
  main .ace-narrow-grid > * { grid-column: auto !important; }
  main .p-10 { padding: 24px; }
  main h2.text-h2 { font-size: 32px !important; }
  .ace-mb-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto !important; }
  *,*::before,*::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}
