@font-face {
  font-family: "Instrument Serif";
  src: url("../fonts/InstrumentSerif-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Instrument Serif";
  src: url("../fonts/InstrumentSerif-Italic.woff2") format("woff2");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Manrope";
  src: url("../fonts/Manrope-Variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}

@font-face {
  font-family: "Bricolage";
  src: url("../fonts/BricolageGrotesque-Variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}

:root {
  --navy-1000: #020713;
  --navy-950: #050d20;
  --navy-900: #071632;
  --navy-850: #0a1d42;
  --navy-800: #0d2a5e;
  --navy-700: #143571;
  --royal: #2e6be6;
  --royal-bright: #4d94ff;
  --ice: #cbdcff;
  --cream: #f4efe5;
  --paper: #fcfaf5;
  --ink: #071632;
  --ink-soft: #4e5d79;
  --white: #ffffff;
  --mist: #b9c5dc;
  --line-dark: rgba(171, 199, 255, .2);
  --line-light: rgba(7, 22, 50, .16);
  --serif: "Instrument Serif", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
  --display: "Bricolage", "Manrope", Arial, sans-serif;
  --gutter: clamp(20px, 4vw, 78px);
  --header-h: clamp(72px, 8vw, 106px);
  --ease-cinema: cubic-bezier(.16, 1, .3, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { min-width: 0; scroll-behavior: auto; overscroll-behavior-y: none; background: var(--navy-950); }
body { margin: 0; min-width: 0; color: var(--white); background: var(--navy-950); font-family: var(--sans); user-select: none; -webkit-font-smoothing: antialiased; }
html.has-custom-cursor, html.has-custom-cursor * { cursor: none !important; }
body.menu-open, body.cart-open { overflow: hidden; }
main, section, article, footer { position: relative; }
main { z-index: 2; }
img, svg { display: block; max-width: 100%; }
img { object-fit: cover; }
button, a { color: inherit; font: inherit; -webkit-tap-highlight-color: transparent; }
button { border: 0; }
a { text-decoration: none; }
svg { width: 1.1em; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
p, h1, h2, h3, blockquote { margin-top: 0; }
:focus-visible { outline: 2px solid var(--royal-bright); outline-offset: 5px; }
::selection { color: var(--white); background: var(--royal); }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

.skip-link { position: fixed; z-index: 12000; top: 14px; left: 14px; padding: 12px 18px; color: var(--white); background: var(--royal); transform: translateY(-160%); transition: transform .2s ease; }
.skip-link:focus { transform: none; }
.section-index { margin: 0; font-size: .66rem; font-weight: 700; letter-spacing: .2em; line-height: 1.4; text-transform: uppercase; }
.section-index::before { content: ""; display: inline-block; width: 32px; height: 1px; margin-right: 12px; vertical-align: middle; background: currentColor; opacity: .5; }
em { color: var(--royal-bright); font-family: var(--serif); font-style: italic; font-weight: 400; }

/* Ambient layers */
.world-canvas { position: fixed; z-index: 0; inset: 0; width: 100%; height: 100%; pointer-events: none; opacity: 0; transition: opacity .8s ease; }
html.world-active .world-canvas { opacity: 1; }
html.world-fallback .world-canvas { display: none; }
.film-grain { position: fixed; z-index: 8000; inset: -40%; pointer-events: none; opacity: .045; background-image: repeating-radial-gradient(circle at 17% 31%, rgba(255,255,255,.9) 0 1px, transparent 1px 4px); background-size: 7px 7px; mix-blend-mode: soft-light; animation: grain-shift .25s steps(2) infinite; }
body.hero-video-active .film-grain, body.hero-video-active .page-progress, body.hero-video-active .world-canvas { opacity: 0; }
@keyframes grain-shift { 0% { transform: translate3d(-1%, 1%, 0); } 50% { transform: translate3d(1%, -1%, 0); } 100% { transform: translate3d(0, 1%, 0); } }
.page-progress { position: fixed; z-index: 8100; top: 0; left: 0; width: 100%; height: 2px; pointer-events: none; background: rgba(255,255,255,.08); }
.page-progress i { display: block; width: 100%; height: 100%; background: var(--royal-bright); transform: scaleX(0); transform-origin: left; }

.cursor { position: fixed; z-index: 11000; top: 0; left: 0; width: 28px; height: 28px; display: grid; place-items: center; pointer-events: none; opacity: 0; transform: translate3d(-100px,-100px,0); transition: opacity .18s ease; }
.cursor i { position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.86); border-radius: 50%; background: rgba(7,22,50,.16); box-shadow: 0 0 18px rgba(6,19,43,.2); backdrop-filter: blur(3px); transition: transform .35s var(--ease-cinema), background .35s, border-color .35s; }
.cursor.is-visible { opacity: 1; }
.cursor.is-hover i { background: rgba(46,107,230,.36); border-color: var(--royal-bright); transform: scale(1.65); }

/* Preloader */
.preloader { position: fixed; z-index: 11000; inset: 0; display: grid; place-items: center; overflow: hidden; color: var(--white); background: radial-gradient(circle at 50% 47%, #0c234c 0, #06142e 24%, var(--navy-1000) 62%); }
.preloader.is-hidden { visibility: hidden; pointer-events: none; }
.preloader__ambient { position: absolute; inset: 0; overflow: hidden; opacity: .72; }
.preloader__ambient::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(156,185,235,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(156,185,235,.045) 1px, transparent 1px); background-size: min(8vw, 132px) min(8vw, 132px); mask-image: radial-gradient(circle at center, #000, transparent 72%); }
.preloader__ambient i { position: absolute; left: 50%; top: 50%; aspect-ratio: 1; border: 1px solid rgba(155,186,241,.1); border-radius: 50%; transform: translate(-50%,-50%); }
.preloader__ambient i:nth-child(1) { width: min(42vw, 620px); }.preloader__ambient i:nth-child(2) { width: min(64vw, 980px); }.preloader__ambient i:nth-child(3) { width: min(86vw, 1360px); }
.preloader__curtain { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(12, 1fr); }
.preloader__curtain i { background: rgba(2,7,19,.96); border-right: 1px solid rgba(255,255,255,.026); }
.preloader__mark { position: relative; z-index: 2; width: clamp(104px, 8vw, 148px); aspect-ratio: 649 / 472; display: grid; place-items: center; }
.preloader__mark > img { position: relative; z-index: 2; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 10px 36px rgba(0,0,0,.32)); }
.preloader__halo { position: absolute; inset: -70%; border-radius: 50%; background: radial-gradient(circle, rgba(179,209,255,.16), rgba(77,148,255,.05) 42%, transparent 70%); filter: blur(12px); }
.preloader__orbit { --loader-progress: 0%; position: absolute; z-index: 1; inset: -48px; border-radius: 50%; background: conic-gradient(from -90deg, rgba(203,220,255,.94) var(--loader-progress), rgba(203,220,255,.1) 0); mask: radial-gradient(circle, transparent calc(50% - 1px), #000 50%, #000 calc(50% + 1px), transparent calc(50% + 2px)); }
.preloader__orbit i { position: absolute; left: 50%; top: 0; width: 7px; aspect-ratio: 1; border-radius: 50%; background: var(--ice); box-shadow: 0 0 18px rgba(203,220,255,.9); transform: translate(-50%,-50%); }
.preloader__meta { position: absolute; z-index: 2; left: var(--gutter); right: var(--gutter); bottom: clamp(30px, 5vw, 72px); display: flex; justify-content: space-between; align-items: end; border-top: 1px solid rgba(255,255,255,.14); padding-top: 16px; }
.preloader__meta p { margin: 0; color: var(--mist); font-size: .62rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.preloader__meta strong { font-family: var(--serif); font-size: clamp(2.4rem, 4vw, 5rem); font-weight: 400; line-height: .8; }
.no-js .preloader { display: none; }

/* Header + navigation */
.site-header { position: fixed; z-index: 8200; top: 12px; left: 50%; width: min(calc(100% - 24px), 1780px); height: clamp(62px, 5vw, 72px); display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: clamp(18px, 3vw, 52px); padding: 6px 8px 6px 18px; color: var(--navy-950); border: 1px solid rgba(7,22,50,.12); border-radius: 999px; background: rgba(255,255,255,.94); box-shadow: 0 18px 58px -32px rgba(0,18,44,.5); backdrop-filter: blur(18px) saturate(1.12); transform: translateX(-50%); pointer-events: auto; }
.site-header > * { pointer-events: auto; }
.brand-mark { width: clamp(46px, 4vw, 58px); height: 50px; display: grid; place-items: center; }
.brand-mark img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 5px 14px rgba(18,53,113,.12)); }
.chapter-readout { display: flex; align-items: center; gap: 12px; font-size: .58rem; letter-spacing: .18em; text-transform: uppercase; }
.chapter-readout span { min-width: 28px; color: var(--royal-bright); font-weight: 800; }
.chapter-readout i { width: 34px; height: 1px; background: currentColor; opacity: .42; }
.chapter-readout strong { font-weight: 650; white-space: nowrap; }
.header-contact { min-height: 46px; display: flex; align-items: center; gap: 12px; padding: 4px 4px 4px 18px; border: 1px solid rgba(7,22,50,.18); border-radius: 999px; background: rgba(255,255,255,.72); font-size: .66rem; font-weight: 700; }
.header-contact svg { width: 36px; height: 36px; padding: 10px; border-radius: 50%; color: var(--white); background: var(--royal); }
.menu-trigger { position: relative; width: 72px; min-height: 44px; padding: 0 26px 0 0; color: var(--navy-950); background: transparent; cursor: pointer; }
.menu-trigger span { font-size: .63rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.menu-trigger i { position: absolute; right: 0; width: 17px; height: 1px; background: currentColor; transition: transform .3s var(--ease-cinema); }
.menu-trigger i:nth-of-type(1) { top: 18px; }
.menu-trigger i:nth-of-type(2) { top: 26px; width: 11px; }
.menu-trigger:hover i:nth-of-type(1) { transform: translateX(-4px); }
.menu-trigger:hover i:nth-of-type(2) { width: 17px; }

.site-menu { position: fixed; z-index: 10000; inset: 0; min-height: 100svh; height: 100svh; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; display: grid; grid-template-rows: auto 1fr auto; padding: clamp(26px, 4vw, 68px) var(--gutter); color: var(--white); background: var(--navy-1000); visibility: hidden; opacity: 0; pointer-events: none; }
.site-menu::before { content: ""; position: absolute; inset: 0; opacity: .5; background: linear-gradient(110deg, transparent 0 47%, rgba(46,107,230,.12) 47.2% 47.4%, transparent 47.6%), radial-gradient(circle at 74% 32%, rgba(46,107,230,.2), transparent 27%); }
.site-menu.is-open { visibility: visible; opacity: 1; pointer-events: auto; }
.site-menu__top, .site-menu nav, .site-menu__footer { position: relative; z-index: 1; }
.site-menu__top { display: grid; grid-template-columns: 90px 1fr auto; align-items: center; gap: 30px; padding-bottom: 24px; border-bottom: 1px solid rgba(255,255,255,.16); }
.site-menu__top img { width: 74px; height: auto; object-fit: contain; }
.site-menu__top p { max-width: 390px; margin: 0; color: var(--mist); font-size: .78rem; line-height: 1.55; }
.site-menu__top button { position: relative; width: 52px; height: 52px; border: 1px solid rgba(255,255,255,.26); border-radius: 50%; color: var(--white); background: transparent; cursor: pointer; }
.site-menu__top button i { position: absolute; left: 15px; top: 25px; width: 20px; height: 1px; background: currentColor; transform: rotate(45deg); }
.site-menu__top button i:last-child { transform: rotate(-45deg); }
.site-menu nav { align-self: center; width: min(100%, 1180px); margin-inline: auto; }
.site-menu nav a { min-height: clamp(58px, 8.2vh, 102px); display: grid; grid-template-columns: 62px 1fr; align-items: center; border-bottom: 1px solid rgba(255,255,255,.12); overflow: hidden; }
.site-menu nav a span { color: var(--royal-bright); font-size: .63rem; letter-spacing: .15em; }
.site-menu nav a strong { font-family: var(--display); font-size: clamp(2rem, 4.4vw, 5.2rem); font-weight: 430; letter-spacing: -.045em; line-height: .9; transition: transform .45s var(--ease-cinema), color .3s; }
.site-menu nav a:hover strong { color: var(--royal-bright); transform: translateX(24px); }
.site-menu__footer { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.16); }
.site-menu__footer > span { color: var(--mist); font-size: .61rem; letter-spacing: .15em; text-transform: uppercase; }

.button { min-height: 52px; display: inline-flex; justify-content: center; align-items: center; gap: 16px; padding: 14px 22px; border: 1px solid transparent; border-radius: 999px; font-size: .71rem; font-weight: 750; letter-spacing: .01em; transition: background .3s, color .3s, border-color .3s, transform .3s; }
.button svg { width: 18px; }
.button--light { color: var(--navy-950); background: var(--white); }
.button--light:hover { color: var(--white); background: var(--royal); }
.button--navy { color: var(--white); background: var(--navy-950); }
.button--navy:hover { background: var(--royal); }
.text-link { min-height: 48px; display: inline-flex; align-items: center; gap: 12px; font-size: .72rem; font-weight: 700; }
.text-link svg { transition: transform .3s var(--ease-cinema); }
.text-link:hover svg { transform: translate(3px, 3px); }

/* Hero */
.hero { z-index: 4; height: 188svh; min-height: 100svh; color: var(--ink); background: var(--white); }
.hero__sticky { position: sticky; top: 0; height: 100svh; min-height: 100svh; overflow: hidden; isolation: isolate; background: var(--white); }
body.is-loading .hero__content, body.is-loading .hero__scroll-cue { opacity: 0; }
.hero-media { position: absolute; z-index: 0; inset: 0; overflow: hidden; background: var(--white); transform: translateZ(0); backface-visibility: hidden; will-change: transform; contain: paint; }
.hero-media__fallback, .hero-video { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: cover; object-position: 50% 50%; }
.hero-video { opacity: 0; transition: opacity .72s ease; }
.hero-video.is-ready { opacity: 1; }
@media (min-aspect-ratio: 21 / 9) { .hero-media__fallback, .hero-video { object-position: 50% 62%; } }
.hero__contrast { position: absolute; z-index: 1; inset: 0; pointer-events: none; background: radial-gradient(ellipse 58% 45% at 50% 42%, rgba(255,255,255,.7), rgba(255,255,255,.18) 60%, transparent 82%); }
.hero__content { position: absolute; z-index: 3; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 0; padding: calc(var(--header-h) + 3vh) var(--gutter) 16vh; text-align: center; }
.hero__eyebrow { margin: 0 0 clamp(18px, 2.2vh, 30px); padding: 9px 14px; border: 1px solid rgba(7,22,50,.16); border-radius: 999px; color: rgba(7,22,50,.78); background: rgba(255,255,255,.4); backdrop-filter: blur(7px); font-size: .6rem; font-weight: 750; letter-spacing: .2em; line-height: 1.2; text-transform: uppercase; }
.hero__content h1 { max-width: 1420px; margin: 0; color: var(--navy-950); filter: drop-shadow(0 4px 24px rgba(255,255,255,.68)); font-family: var(--display); font-size: clamp(3.8rem, 6.9vw, 8.75rem); font-weight: 410; letter-spacing: -.075em; line-height: .79; }
.hero__content h1 span { display: block; }
.hero__content h1 em { display: inline-block; color: var(--royal); font-size: 1.08em; }
.hero__lead { max-width: 660px; margin: clamp(20px, 2.6vh, 34px) 0 0; padding: 8px 14px; border-radius: 14px; color: rgba(7,22,50,.82); background: rgba(255,255,255,.34); backdrop-filter: blur(7px); font-size: clamp(.78rem, .95vw, 1rem); line-height: 1.65; }
.hero__contact { margin-top: clamp(14px, 2.2vh, 26px); color: var(--white); background: var(--navy-950); box-shadow: 0 14px 40px rgba(7,22,50,.22); }
.hero__contact:hover { color: var(--white); background: var(--royal); transform: translateY(-2px); }
.hero__proof { position: absolute; left: var(--gutter); bottom: clamp(24px, 3.5vh, 46px); display: flex; align-items: center; gap: 18px; color: rgba(255,255,255,.9); filter: drop-shadow(0 2px 10px rgba(7,22,50,.3)); font-size: .55rem; font-weight: 720; letter-spacing: .14em; text-transform: uppercase; }
.hero__proof span + span::before { content: ""; display: inline-block; width: 3px; height: 3px; margin: 0 18px 2px 0; border-radius: 50%; background: currentColor; opacity: .68; }
.hero__scroll-cue { position: absolute; z-index: 3; right: var(--gutter); bottom: clamp(24px, 3.5vh, 46px); display: flex; align-items: center; gap: 12px; margin: 0; color: rgba(255,255,255,.88); filter: drop-shadow(0 2px 10px rgba(7,22,50,.34)); font-size: .54rem; font-weight: 720; letter-spacing: .15em; text-transform: uppercase; }
.hero__scroll-cue i { width: 34px; height: 1px; background: currentColor; transform-origin: left; animation: hero-cue 1.8s var(--ease-cinema) infinite; }
@keyframes hero-cue { 0%, 100% { transform: scaleX(.45); opacity: .45; } 50% { transform: scaleX(1); opacity: 1; } }
.hero-transition { position: absolute; z-index: 6; inset: 0; display: flex; overflow: hidden; pointer-events: none; }
.hero-transition i { min-width: 0; height: 100%; flex: 1 1 0; margin-inline: -1px; background: var(--white); box-shadow: 0 0 0 1.5px var(--white); transform: scaleY(0); transform-origin: 50% 0; backface-visibility: hidden; will-change: transform; }
.hero-transition i:first-child { margin-left: 0; }
.hero-transition i:last-child { margin-right: 0; }
.hero-transition__message { position: absolute; z-index: 2; left: 50%; top: 50%; width: min(1180px, calc(100% - (2 * var(--gutter)))); color: var(--navy-950); text-align: center; visibility: hidden; opacity: 0; transform: translate(-50%, -50%); }
.hero-transition__message span { display: block; margin-bottom: clamp(18px, 2.4vh, 30px); color: rgba(7,22,50,.58); font-size: .61rem; font-weight: 780; letter-spacing: .18em; text-transform: uppercase; }
.hero-transition__message strong { display: block; font-family: var(--display); font-size: clamp(4rem, 7.8vw, 9.7rem); font-weight: 410; letter-spacing: -.07em; line-height: .82; }
.hero-transition__message em { color: var(--royal); }
.brand-film { position: absolute; overflow: hidden; background-repeat: no-repeat; background-position: center; background-size: cover; pointer-events: none; will-change: transform, opacity, clip-path; }
.brand-film__video { width: 100%; height: 100%; display: block; object-fit: cover; }

/* Manifesto */
.manifesto { z-index: 5; height: 220svh; margin-top: -1px; color: var(--ink); background: var(--white); }
.manifesto__sticky { position: sticky; top: 0; height: 100svh; display: grid; grid-template-columns: 1fr minmax(280px, 28vw); align-content: center; gap: clamp(36px, 7vw, 140px); overflow: hidden; padding: calc(var(--header-h) + 3vh) var(--gutter) 6vh; background: var(--cream); }
.manifesto .section-index { position: absolute; top: calc(var(--header-h) + 2vh); left: var(--gutter); }
.manifesto__statement { position: relative; z-index: 2; max-width: 1200px; font-family: var(--display); font-size: clamp(3.1rem, 6.8vw, 9rem); font-weight: 420; letter-spacing: -.06em; line-height: .86; }
.manifesto__statement span, .manifesto__statement em { opacity: .12; transition: color .2s; }
.manifesto__statement em { white-space: nowrap; }
.manifesto__aside { position: relative; z-index: 2; align-self: end; max-width: 430px; padding-left: 26px; border-left: 1px solid var(--line-light); }
.manifesto__aside p { margin: 0 0 28px; color: var(--ink-soft); font-size: clamp(.86rem, 1vw, 1.05rem); line-height: 1.8; }
.manifesto__aside strong { display: block; font-family: var(--serif); font-size: clamp(1.5rem, 2.2vw, 2.8rem); font-weight: 400; line-height: 1.05; }
.manifesto__orbit { position: absolute; right: -13vw; top: 50%; width: 48vw; aspect-ratio: 1; border: 1px solid rgba(46,107,230,.18); border-radius: 50%; transform: translateY(-50%); }
.manifesto__orbit::before, .manifesto__orbit::after { content: ""; position: absolute; inset: 14%; border: 1px solid rgba(46,107,230,.16); border-radius: 50%; }
.manifesto__orbit::after { inset: 32%; }
.manifesto__orbit i { position: absolute; width: 9px; aspect-ratio: 1; border: 2px solid var(--royal); border-radius: 50%; background: var(--cream); box-shadow: 0 0 20px rgba(46,107,230,.4); }
.manifesto__orbit i:nth-child(1) { left: 3%; top: 42%; }.manifesto__orbit i:nth-child(2) { left: 33%; top: 10%; }.manifesto__orbit i:nth-child(3) { left: 37%; bottom: 8%; }
.manifesto__orbit span { position: absolute; left: 4%; top: 43%; width: 43%; height: 1px; background: var(--royal); transform: rotate(-44deg); transform-origin: left; opacity: .4; }

/* Case overture */
.case-overture { z-index: 6; height: 155svh; color: var(--white); background: var(--navy-1000); }
.case-overture__sticky { position: sticky; top: 0; height: 100svh; display: flex; flex-direction: column; justify-content: center; overflow: hidden; isolation: isolate; padding: calc(var(--header-h) + 2vh) var(--gutter) 8vh; background: linear-gradient(145deg, var(--navy-1000), var(--navy-900)); }
.brand-film--bridge { z-index: 0; inset: 0; opacity: .58; background-image: url("../img/film/paper-keyframe-v2.png"); }
.brand-film--bridge .brand-film__video { filter: saturate(.86) contrast(1.05) brightness(.72); }
.brand-film--bridge::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(2,7,19,.92) 0 18%, rgba(2,7,19,.34) 52%, rgba(2,7,19,.55)), linear-gradient(180deg, rgba(2,7,19,.64), transparent 34% 62%, rgba(2,7,19,.88)); }
.case-overture .section-index { position: absolute; z-index: 3; top: calc(var(--header-h) + 2vh); left: var(--gutter); color: var(--mist); }
.case-overture h2 { position: relative; z-index: 2; margin: 0; font-family: var(--display); font-size: clamp(3.8rem, 8vw, 10.8rem); font-weight: 410; letter-spacing: -.07em; line-height: .78; }
.case-overture h2 span { display: block; overflow: hidden; padding-bottom: .09em; }
.case-overture h2 span:nth-child(2) { padding-left: 18vw; }
.case-overture h2 span:nth-child(3) { text-align: right; }
.case-overture > .case-overture__sticky > p:not(.section-index) { position: relative; z-index: 2; align-self: flex-end; max-width: 520px; margin: 40px 3vw 0 0; color: var(--mist); font-size: clamp(.9rem, 1.05vw, 1.15rem); line-height: 1.75; }
.case-overture__rail { position: absolute; z-index: 3; left: 0; bottom: 0; width: max-content; display: flex; align-items: center; gap: 28px; padding: 20px 0; border-top: 1px solid rgba(255,255,255,.13); color: rgba(255,255,255,.56); font-size: .6rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.case-overture__rail i { width: 44px; height: 1px; background: var(--royal-bright); }

/* Case framework */
.case-reel { position: relative; z-index: 7; background: var(--navy-1000); }
.case { --case-bg: var(--cream); --case-ink: var(--ink); height: 285svh; color: var(--case-ink); background: var(--navy-1000); }
.case__sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; isolation: isolate; background: var(--navy-1000); }
.case__header { position: absolute; z-index: 8; top: calc(var(--header-h) + 1vh); left: var(--gutter); right: var(--gutter); display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 18px 40px; color: var(--case-ink); pointer-events: none; }
.case__header::before { content: none; display: none; }
.case__header p { grid-column: 1 / -1; margin: 0; font-size: .61rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.case__header p span { margin-right: 14px; color: var(--royal); }
.case__header h2 { margin: 0; font-family: var(--display); font-size: clamp(2.5rem, 4.4vw, 6.2rem); font-weight: 430; letter-spacing: -.055em; line-height: .85; }
.case-domain { min-height: 44px; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; align-items: center; gap: 1px 14px; padding: 10px 12px 10px 16px; border: 1px solid color-mix(in srgb, var(--case-ink) 34%, transparent); border-radius: 999px; background: color-mix(in srgb, var(--case-bg) 78%, transparent); backdrop-filter: blur(14px); font-size: .68rem; font-weight: 750; pointer-events: auto; touch-action: manipulation; -webkit-tap-highlight-color: transparent; transition: color .3s, background .3s, border-color .3s, transform .3s var(--ease-cinema); }
.case-domain > span { grid-column: 1; line-height: 1.1; }.case-domain > small { grid-column: 1; color: currentColor; font-size: .48rem; font-weight: 650; line-height: 1.2; opacity: .58; }
.case-domain svg { grid-column: 2; grid-row: 1 / 3; width: 34px; height: 34px; padding: 8px; border-radius: 50%; color: var(--case-bg); background: var(--case-ink); transition: transform .3s var(--ease-cinema); }
.case-domain:hover { border-color: var(--case-ink); transform: translateY(-2px); }
.case-domain:hover svg { transform: translate(3px,-3px); }
.case__stage { position: absolute; z-index: 2; left: 50%; top: 50%; width: 66vw; height: 78svh; overflow: hidden; border-radius: 8vw; background: var(--case-bg); transform: none; will-change: width, height, border-radius, transform; }
.case__scene { position: absolute; inset: 0; overflow: hidden; visibility: hidden; opacity: 0; transform: scale(1.04); pointer-events: none; }
.case__scene.is-active { visibility: visible; opacity: 1; transform: none; pointer-events: auto; }
.case__scene-nav { position: absolute; z-index: 9; left: 50%; bottom: clamp(18px, 2.6vh, 38px); display: flex; padding: 5px; border: 1px solid color-mix(in srgb, var(--case-ink) 22%, transparent); border-radius: 999px; color: var(--case-ink); background: color-mix(in srgb, var(--case-bg) 78%, transparent); backdrop-filter: blur(18px); transform: translateX(-50%); }
.case__scene-nav button { min-height: 46px; display: flex; align-items: center; gap: 9px; padding: 10px 16px; border-radius: 999px; color: inherit; background: transparent; font-size: .6rem; font-weight: 750; cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; transition: color .25s, background .25s; }
.case__scene-nav button span { opacity: .55; font-size: .54rem; }
.case__scene-nav button.is-active { color: var(--white); background: var(--navy-950); }
.micro-button { min-height: 46px; display: inline-flex; align-items: center; gap: 12px; padding: 11px 16px; border: 1px solid currentColor; border-radius: 999px; color: inherit; background: transparent; font-size: .65rem; font-weight: 750; cursor: pointer; }
.micro-button svg { width: 17px; transition: transform .25s; }
.micro-button:hover svg { transform: translateX(4px); }

/* Brasil Fit */
.case--brasil { --case-bg: #eee5d6; --case-ink: #173522; }
.brasil-hero, .brasil-shop { width: 100%; height: 100%; }
.brasil-hero { display: grid; grid-template-columns: .88fr 1.12fr; background: linear-gradient(120deg, #f0e6d3 0 47%, #53744c 47%); }
.brasil-hero__copy { align-self: center; padding: 12vh 4.5vw 7vh; }
.brasil-hero__copy > img { width: clamp(88px, 8vw, 138px); height: auto; margin-bottom: 14px; object-fit: contain; }
.brasil-hero__copy > p, .brasil-shop__intro > p { margin: 0 0 18px; font-size: .57rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.brasil-hero__copy h3, .brasil-shop__intro h3 { margin: 0 0 28px; font-family: var(--serif); font-size: clamp(2.6rem, 4.5vw, 6rem); font-weight: 400; line-height: .87; }
.brasil-hero__copy h3 em, .brasil-shop__intro h3 em { color: #52784b; }
.brasil-hero__gallery { position: relative; min-width: 0; height: 100%; overflow: hidden; }
.brasil-hero__gallery figure { position: absolute; inset: 0; margin: 0; opacity: 0; clip-path: inset(0 100% 0 0); }
.brasil-hero__gallery figure.is-active { opacity: 1; clip-path: inset(0); }
.brasil-hero__gallery img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.brasil-hero__gallery > span { position: absolute; z-index: 2; right: 24px; bottom: 24px; padding: 10px 14px; border: 1px solid rgba(255,255,255,.4); border-radius: 999px; color: var(--white); background: rgba(23,53,34,.46); backdrop-filter: blur(10px); font-size: .57rem; font-weight: 800; letter-spacing: .12em; }
.brasil-shop { position: relative; display: grid; grid-template-columns: clamp(240px, 21vw, 370px) minmax(0, 1fr) clamp(220px, 18vw, 320px); align-items: stretch; overflow: hidden; background: #eee5d6; }
.brasil-shop__intro { align-self: center; padding: 10vh 2.7vw 7vh 3.6vw; }
.brasil-shop__intro h3 { font-size: clamp(2.25rem, 3.45vw, 4.9rem); }
.brasil-shop__intro > span { display: block; max-width: 280px; color: #667466; font-size: .73rem; line-height: 1.6; }
.brasil-shop__status { width: fit-content; display: flex; align-items: center; gap: 8px; margin-top: 28px; padding: 8px 11px; border: 1px solid rgba(23,53,34,.16); border-radius: 999px; color: #446048; font-size: .52rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.brasil-shop__status i { width: 7px; height: 7px; border-radius: 50%; background: #6fa755; box-shadow: 0 0 0 4px rgba(111,167,85,.13); }
.brasil-menu { min-width: 0; min-height: 0; display: flex; flex-direction: column; gap: 12px; padding: clamp(94px, 12vh, 132px) 12px clamp(92px, 11vh, 118px); }
.brasil-menu__header { min-height: 50px; display: flex; align-items: end; justify-content: space-between; gap: 20px; padding: 0 3px; }
.brasil-menu__header span { display: block; margin-bottom: 2px; color: #6c7868; font-size: .48rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.brasil-menu__header h4 { margin: 0; font-family: var(--serif); font-size: clamp(1.45rem, 2.05vw, 2.5rem); font-weight: 400; line-height: .9; }
.brasil-menu__header p { margin: 0 0 3px; color: #708072; font-size: .55rem; }
.brasil-products { min-height: 0; flex: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 10px; }
.brasil-product-card { min-width: 0; min-height: 0; display: grid; grid-template-columns: minmax(100px, .8fr) minmax(0, 1.2fr); overflow: hidden; border: 1px solid rgba(23,53,34,.12); border-radius: 3px; background: #f8f1e4; box-shadow: 0 15px 34px rgba(55,66,44,.06); }
.brasil-product-card__image { position: relative; min-width: 0; min-height: 0; overflow: hidden; background: #dce4d2; }
.brasil-product-card__image::after { content: ""; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, rgba(22,51,31,.42)); }
.brasil-product-card__image img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.9); transform: scale(1.045); transition: transform .7s var(--ease-cinema), filter .4s; }
.brasil-product-card:hover .brasil-product-card__image img { transform: scale(1.09); filter: saturate(1.08); }
.brasil-product-card__image span { position: absolute; z-index: 2; left: 10px; bottom: 9px; color: #fff; font-size: .43rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.brasil-product-card__body { min-width: 0; min-height: 0; display: flex; flex-direction: column; padding: clamp(11px, 1.2vw, 18px); }
.brasil-product-card__body > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: start; }
.brasil-product-card h5 { margin: 0; font-size: clamp(.67rem, .78vw, .9rem); font-weight: 760; line-height: 1.18; }
.brasil-product-card strong { color: #4d7048; font-family: var(--serif); font-size: clamp(.78rem, .9vw, 1.05rem); font-weight: 400; white-space: nowrap; }
.brasil-product-card p { margin: 7px 0 9px; color: #748074; font-size: clamp(.49rem, .55vw, .62rem); line-height: 1.4; }
.brasil-product-card button { min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding: 7px 8px 7px 12px; border: 1px solid rgba(23,53,34,.18); border-radius: 999px; color: #173522; background: transparent; font-size: .54rem; font-weight: 800; cursor: pointer; transition: color .25s, background .25s, border-color .25s; }
.brasil-product-card button:hover, .brasil-product-card button[aria-pressed="true"] { color: #fff; border-color: #284a30; background: #284a30; }
.brasil-product-card button i { position: relative; width: 21px; aspect-ratio: 1; flex: none; border: 1px solid currentColor; border-radius: 50%; }
.brasil-product-card button i::before, .brasil-product-card button i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 7px; height: 1px; background: currentColor; transform: translate(-50%,-50%); }
.brasil-product-card button i::after { transform: translate(-50%,-50%) rotate(90deg); }
.brasil-selection { display: flex; flex-direction: column; justify-content: end; padding: 5vh 1.8vw 6vh; color: var(--white); background: #284a30; }
.brasil-selection span { font-size: .54rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.brasil-selection strong { margin: 12px 0; font-family: var(--serif); font-size: clamp(2rem, 3vw, 4rem); font-weight: 400; line-height: .9; }
.brasil-selection p { min-height: 3.6em; margin: 0; color: rgba(255,255,255,.7); font-size: .67rem; line-height: 1.6; }
.brasil-selection__total { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.18); }
.brasil-selection__total span { font-size: .46rem; }
.brasil-selection__total b { font-family: var(--serif); font-size: 1.1rem; font-weight: 400; }
.brasil-cart-trigger { min-height: 48px; display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 10px; margin-top: 22px; padding: 8px 9px 8px 16px; border: 1px solid rgba(255,255,255,.32); border-radius: 999px; color: #173522; background: #f8f1e3; box-shadow: 0 12px 30px -24px rgba(9,35,18,.55); font-size: .61rem; font-weight: 800; cursor: pointer; }
.brasil-cart-trigger > span { color: inherit; font-size: inherit; letter-spacing: 0; text-transform: none; }.brasil-cart-trigger:disabled { opacity: .42; cursor: not-allowed; }.brasil-cart-trigger b { min-width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: var(--white); background: #52784b; font-size: .55rem; }.brasil-cart-trigger svg { width: 18px; height: 18px; padding: 4px; border-radius: 50%; color: #52784b; background: rgba(82,120,75,.1); }
.brasil-cart__scrim { position: fixed; z-index: 8690; inset: 0; visibility: hidden; opacity: 0; background: rgba(5,22,12,.5); backdrop-filter: blur(5px); transition: opacity .35s, visibility .35s; }
.brasil-cart__scrim.is-open { visibility: visible; opacity: 1; }
.brasil-cart { position: fixed; z-index: 8700; top: 12px; right: 12px; width: min(480px, calc(100vw - 24px)); height: calc(100svh - 24px); display: grid; grid-template-rows: auto 1fr auto; overflow: hidden; color: #173522; border: 1px solid rgba(23,53,34,.14); border-radius: 26px; background: #fbf6eb; box-shadow: -34px 24px 90px rgba(8,34,17,.25); transform: translateX(calc(100% + 28px)); transition: transform .65s var(--ease-cinema); }
.brasil-cart.is-open { transform: none; }
.brasil-cart header { min-height: 104px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 24px; border-bottom: 1px solid rgba(23,53,34,.12); background: rgba(255,255,255,.38); }
.brasil-cart header span { display: block; margin-bottom: 6px; color: #687667; font-size: .51rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }.brasil-cart h4 { margin: 0; font-family: var(--serif); font-size: clamp(2rem, 3vw, 3.4rem); font-weight: 400; line-height: .9; }
.brasil-cart header > button { position: relative; width: 44px; height: 44px; flex: none; border: 1px solid rgba(23,53,34,.24); border-radius: 50%; background: transparent; cursor: pointer; }.brasil-cart header > button i { position: absolute; left: 12px; right: 12px; top: 50%; height: 1px; background: currentColor; transform: rotate(45deg); }.brasil-cart header > button i:last-child { transform: rotate(-45deg); }
.brasil-cart__body { min-height: 0; overflow-y: auto; padding: 18px 24px 26px; }.brasil-cart__empty { margin: 24px 0; color: #687667; font-family: var(--serif); font-size: 1.5rem; line-height: 1.15; }.brasil-cart__empty[hidden] { display: none; }
.brasil-cart ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }.brasil-cart li { display: grid; grid-template-columns: 1fr auto; gap: 8px 14px; padding: 13px 14px; border: 1px solid rgba(23,53,34,.1); border-radius: 14px; background: rgba(255,255,255,.56); }.brasil-cart li > strong { align-self: center; font-family: var(--serif); font-size: 1.08rem; font-weight: 400; }.brasil-cart li > button { min-width: 44px; min-height: 44px; align-self: center; display: grid; place-items: center; padding: 8px; color: #6f786e; background: transparent; font-size: .52rem; text-decoration: underline; cursor: pointer; }
.cart-quantity { grid-column: 1 / -1; display: flex; align-items: center; gap: 9px; }.cart-quantity button { width: 38px; height: 38px; border: 1px solid rgba(23,53,34,.18); border-radius: 50%; color: inherit; background: #fffaf1; cursor: pointer; }.cart-quantity span { min-width: 20px; text-align: center; font-size: .67rem; font-weight: 800; }
.brasil-cart__subtotal { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 14px; padding: 16px 2px 2px; border-top: 1px solid rgba(23,53,34,.13); }.brasil-cart__subtotal span { color: #687667; font-size: .58rem; }.brasil-cart__subtotal strong { font-family: var(--serif); font-size: 1.55rem; font-weight: 400; }
.brasil-cart footer { padding: 15px 24px 18px; border-top: 1px solid rgba(23,53,34,.12); background: rgba(255,255,255,.35); }.brasil-cart footer > div { display: flex; align-items: center; justify-content: space-between; gap: 20px; }.brasil-cart footer > div > strong { font-family: var(--serif); font-size: 1.2rem; font-weight: 400; }.brasil-cart footer button { min-height: 44px; cursor: pointer; }.brasil-cart [data-cart-clear] { padding: 0; color: #687667; background: transparent; font-size: .56rem; text-decoration: underline; }.brasil-cart [data-cart-feedback] { min-height: 1.2em; margin: 7px 0 0; color: #52784b; font-size: .57rem; line-height: 1.35; }
.brasil-message[hidden] { display: none; }.brasil-message { position: relative; margin-top: 18px; padding: 17px; border-radius: 18px 18px 4px 18px; color: #fff; background: linear-gradient(145deg, #1c533e, #12392d); box-shadow: 0 18px 44px -30px rgba(15,61,42,.8); }.brasil-message::after { content: ""; position: absolute; right: 0; bottom: -8px; border-width: 9px 0 0 12px; border-style: solid; border-color: transparent transparent transparent #12392d; }.brasil-message > span { color: #bfe5d2; font-size: .49rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }.brasil-message pre { max-height: 220px; overflow-y: auto; margin: 12px 0 16px; color: #fff; font: 500 .66rem/1.55 var(--sans); user-select: text; white-space: pre-wrap; }.brasil-message > div { display: grid; grid-template-columns: 1fr; gap: 8px; }.brasil-message button { min-height: 44px; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 9px 12px; border: 1px solid rgba(255,255,255,.42); border-radius: 999px; color: #fff; background: transparent; font-size: .56rem; font-weight: 800; cursor: pointer; }

/* CMB */
.case--cmb { --case-bg: #08182f; --case-ink: #f6f9ff; }
.cmb-services, .cmb-place { width: 100%; height: 100%; color: var(--white); background: #08182f; }
.cmb-services { display: grid; grid-template-columns: .68fr 1.32fr; gap: 4vw; align-items: center; padding: 15vh 5vw 7vh; }
.cmb-services__intro > img { width: min(250px, 19vw); height: auto; margin-bottom: 40px; object-fit: contain; }
.cmb-services__intro > p, .cmb-place__copy > p { margin: 0 0 20px; color: #83aef9; font-size: .56rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.cmb-services__intro h3, .cmb-place__copy h3 { margin: 0 0 24px; font-family: var(--serif); font-size: clamp(2.5rem, 4vw, 5.4rem); font-weight: 400; line-height: .88; }
.cmb-services__intro > span, .cmb-place__copy > span { color: #a8b8d2; font-size: .75rem; line-height: 1.6; }
.cmb-deck { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; perspective: 1400px; }
.cmb-deck__cover { position: absolute; z-index: 4; inset: 0; margin: 0; overflow: hidden; border: 1px solid rgba(143,181,250,.22); background: #0e2c59; pointer-events: none; }
.cmb-deck__cover::after { content: ""; position: absolute; inset: 34% 0 0; background: linear-gradient(transparent, rgba(4,13,26,.88)); }.cmb-deck__cover img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; object-position: 50% 48%; transform: scale(1.16); }.cmb-deck__cover figcaption { position: absolute; z-index: 2; left: clamp(18px, 2vw, 34px); right: clamp(18px, 2vw, 34px); bottom: clamp(18px, 2vw, 34px); display: flex; justify-content: space-between; gap: 20px; align-items: end; }.cmb-deck__cover figcaption span { color: #b9cdf1; font-size: .54rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }.cmb-deck__cover figcaption strong { max-width: 240px; font-family: var(--serif); font-size: clamp(1.2rem, 1.8vw, 2.2rem); font-weight: 400; text-align: right; }
.flip-card { min-width: 0; aspect-ratio: .54; }
.flip-card button { position: relative; width: 100%; height: 100%; padding: 0; color: var(--white); background: transparent; transform-style: preserve-3d; transition: transform .7s var(--ease-cinema); cursor: pointer; }
.flip-card.is-flipped button { transform: rotateY(180deg); }
.flip-card__face { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(18px, 2vw, 34px); border: 1px solid rgba(143,181,250,.26); background: linear-gradient(155deg, #0e2c59, #07162c); backface-visibility: hidden; }
.flip-card__face--back { color: var(--navy-950); background: linear-gradient(145deg, #d9e5ff, #8ab5ff); transform: rotateY(180deg); }
.flip-card small { color: #82adfb; font-size: .49rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.flip-card__face--back small { color: #17458e; }
.flip-card strong { font-family: var(--display); font-size: clamp(1.4rem, 2.5vw, 3.5rem); font-weight: 430; letter-spacing: -.045em; line-height: .9; }
.flip-card__face--back strong { font-family: var(--serif); font-weight: 400; }
.flip-card i { font-size: .53rem; font-style: normal; font-weight: 750; letter-spacing: .15em; text-transform: uppercase; opacity: .65; }
.cmb-place { display: grid; grid-template-columns: .66fr 1.34fr; gap: 3vw; padding: 15vh 4vw 6vh; }
.cmb-place__copy { align-self: center; }
.cinema-carousel { position: relative; min-width: 0; overflow: hidden; background: #0e2851; }
.cinema-carousel__track, .cinema-carousel__track figure { position: absolute; inset: 0; }
.cinema-carousel__track figure { margin: 0; opacity: 0; clip-path: inset(0 100% 0 0); }
.cinema-carousel__track figure.is-active { opacity: 1; clip-path: inset(0); }
.cinema-carousel img { width: 100%; height: 100%; object-position: center 48%; }
.cinema-carousel figcaption { position: absolute; left: 22px; bottom: 22px; max-width: calc(100% - 180px); padding: 11px 14px; color: var(--white); background: rgba(5,13,32,.68); backdrop-filter: blur(12px); font-size: .61rem; line-height: 1.5; }
.cinema-carousel__controls { position: absolute; z-index: 3; right: 18px; bottom: 18px; display: flex; align-items: center; gap: 8px; padding: 5px; color: var(--white); background: rgba(5,13,32,.72); backdrop-filter: blur(12px); border-radius: 999px; }
.cinema-carousel__controls button { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border-radius: 50%; color: inherit; background: transparent; cursor: pointer; }
.cinema-carousel__controls button:hover { background: rgba(255,255,255,.13); }
.cinema-carousel__controls span { min-width: 56px; text-align: center; font-size: .54rem; font-weight: 750; letter-spacing: .12em; }
.cinema-carousel__controls svg { width: 17px; }

/* Almira */
.case--almira { --case-bg: #121d33; --case-ink: #fbf9f5; }
.almira-portrait, .almira-paths { width: 100%; height: 100%; color: #fbf9f5; background: radial-gradient(circle at 75% 16%, rgba(191,161,92,.14), transparent 32%), #121d33; }
.almira-portrait { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; overflow: hidden; }
.almira-portrait__copy { position: relative; z-index: 2; padding: 14vh 3vw 6vh 5vw; }
.almira-brand { width: clamp(126px, 11vw, 205px); height: auto; margin-bottom: clamp(22px, 3vh, 38px); object-fit: contain; object-position: left center; }
.almira-portrait__copy > p, .almira-paths__panel > p { margin: 0 0 18px; color: #d9c48e; font-size: .56rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.almira-portrait__copy h3 { margin: 0 0 26px; font-family: var(--serif); font-size: clamp(2.7rem, 4.7vw, 6rem); font-weight: 400; line-height: .88; }
.almira-portrait__copy h3 em { color: #d9c48e; }
.almira-portrait__copy > span { color: rgba(251,249,245,.68); font-size: .76rem; line-height: 1.65; }
.portrait-deck { position: relative; height: 100%; perspective: 1200px; }
.portrait-deck::before { content: ""; position: absolute; width: 65%; height: 74%; left: 20%; top: 14%; border: 1px solid rgba(217,196,142,.34); transform: rotate(6deg); }
.portrait-deck::after { content: ""; position: absolute; width: 32%; aspect-ratio: 1; right: 3%; bottom: 7%; border: 1px solid rgba(191,161,92,.16); border-radius: 50%; }
.portrait-deck figure { position: absolute; width: 48%; height: 70%; left: 26%; top: 15%; margin: 0; overflow: hidden; opacity: 0; transform: translateX(16%) rotate(8deg) scale(.9); transition: opacity .55s, transform .8s var(--ease-cinema); box-shadow: 0 35px 70px rgba(0,0,0,.32); }
.portrait-deck figure.is-active { z-index: 2; opacity: 1; transform: none; }
.portrait-deck figure.was-active { z-index: 1; opacity: .32; transform: translateX(-33%) rotate(-8deg) scale(.88); }
.portrait-deck img { width: 100%; height: 100%; object-position: center 21%; }
.portrait-deck button { position: absolute; z-index: 4; right: 10%; bottom: 11%; min-height: 46px; display: flex; align-items: center; gap: 14px; padding: 8px 12px 8px 16px; border: 1px solid rgba(217,196,142,.36); border-radius: 999px; color: #121d33; background: #d9c48e; cursor: pointer; }
.portrait-deck button span { font-size: .55rem; font-weight: 750; letter-spacing: .12em; }
.portrait-deck button svg { width: 32px; height: 32px; padding: 8px; border: 1px solid rgba(18,29,51,.3); border-radius: 50%; }
.almira-paths { display: grid; grid-template-columns: .55fr .78fr 1fr; gap: 0; padding: 14vh 4vw 6vh; }
.almira-paths__nav { align-self: center; display: flex; flex-direction: column; border-top: 1px solid rgba(217,196,142,.24); }
.almira-paths__nav button { min-height: 62px; display: grid; grid-template-columns: 40px 1fr; align-items: center; text-align: left; border-bottom: 1px solid rgba(217,196,142,.24); color: rgba(251,249,245,.58); background: transparent; cursor: pointer; }
.almira-paths__nav button span { color: #bfa15c; font-size: .52rem; font-weight: 800; }
.almira-paths__nav button.is-active { color: #fbf9f5; transform: translateX(12px); }
.almira-paths__panel { align-self: center; padding: 3vw; }
.almira-paths__panel h3 { margin: 0 0 24px; font-family: var(--serif); font-size: clamp(2.4rem, 4vw, 5.3rem); font-weight: 400; line-height: .9; }
.almira-paths__panel > span { color: rgba(251,249,245,.64); font-size: .77rem; line-height: 1.75; }
.almira-paths__image { position: relative; overflow: hidden; border: 1px solid rgba(217,196,142,.2); }
.almira-paths__image::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 80px rgba(18,29,51,.28); pointer-events: none; }
.almira-paths__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-position: center 21%; opacity: 0; transform: scale(1.08); }
.almira-paths__image img.is-active { opacity: 1; transform: none; }

/* Alessandra */
.case--alessandra { --case-bg: #ebe6dc; --case-ink: #344136; }
.alessandra-editorial, .alessandra-reveal { width: 100%; height: 100%; background: #ebe6dc; }
.alessandra-editorial { position: relative; display: grid; grid-template-columns: .72fr 1.28fr; overflow: hidden; }
.alessandra-editorial__title { align-self: center; padding: 14vh 3vw 6vh 5vw; }
.alessandra-editorial__title img { width: clamp(110px, 11vw, 190px); height: auto; margin-bottom: 26px; object-fit: contain; object-position: left center; }
.alessandra-editorial__title > p, .alessandra-reveal > div:first-child > p { margin: 0 0 18px; color: #6e796d; font-size: .55rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.alessandra-editorial__title h3, .alessandra-reveal > div:first-child h3 { margin: 0; font-family: var(--serif); font-size: clamp(3rem, 5vw, 6.4rem); font-weight: 400; line-height: .87; }
.alessandra-editorial__title h3 em, .alessandra-reveal h3 em { color: #59705e; }
.editorial-gallery { position: relative; min-width: 0; height: 100%; overflow: hidden; }
.editorial-gallery figure { position: absolute; inset: 0; margin: 0; opacity: 0; clip-path: inset(100% 0 0); }
.editorial-gallery figure.is-active { opacity: 1; clip-path: inset(0); }
.editorial-gallery img { width: 100%; height: 100%; object-position: 58% 44%; filter: saturate(.78); }
.editorial-gallery figure:nth-child(2) img { object-position: 50% 34%; }.editorial-gallery figure:nth-child(3) img { object-position: 50% 22%; }
.editorial-gallery > div { position: absolute; z-index: 3; right: 22px; bottom: 22px; display: flex; gap: 6px; padding: 6px; background: rgba(45,57,47,.72); backdrop-filter: blur(10px); }
.editorial-gallery button { width: 44px; height: 44px; color: rgba(255,255,255,.62); background: transparent; font-size: .55rem; cursor: pointer; }
.editorial-gallery button.is-active { color: #344136; background: var(--white); }
.alessandra-editorial__note { position: absolute; z-index: 4; left: 48%; bottom: 5vh; width: min(310px, 22vw); margin: 0; padding: 18px; color: var(--white); background: #344136; font-family: var(--serif); font-size: clamp(1rem, 1.35vw, 1.55rem); line-height: 1.1; }
.alessandra-reveal { display: grid; grid-template-columns: .72fr 1.28fr; gap: 4vw; align-items: center; padding: 14vh 4vw 6vh; }
.alessandra-reveal > div:first-child > span { display: block; margin-top: 28px; color: #6c776d; font-size: .75rem; line-height: 1.7; }
.image-comparison { position: relative; height: 100%; min-height: 430px; overflow: hidden; background: #d9d3c8; }
.image-comparison > img, .image-comparison > span, .image-comparison > span img { position: absolute; inset: 0; width: 100%; height: 100%; }
.image-comparison > img { object-position: 58% 44%; }
.image-comparison > span { overflow: hidden; width: var(--reveal); border-right: 1px solid var(--white); }
.image-comparison > span img { width: calc(10000% / var(--reveal-n, 52)); min-width: 100%; max-width: none; object-position: 50% 22%; }
.image-comparison input { position: absolute; z-index: 4; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.image-comparison > i { position: absolute; z-index: 3; left: var(--reveal); top: 50%; width: 54px; height: 54px; border: 1px solid rgba(255,255,255,.6); border-radius: 50%; background: rgba(7,22,50,.7); transform: translate(-50%,-50%); pointer-events: none; }
.image-comparison > i::before, .image-comparison > i::after { content: ""; position: absolute; top: 50%; width: 8px; height: 8px; border-top: 1px solid var(--white); border-left: 1px solid var(--white); }
.image-comparison > i::before { left: 15px; transform: translateY(-50%) rotate(-45deg); }.image-comparison > i::after { right: 15px; transform: translateY(-50%) rotate(135deg); }
.alessandra-environment { position: relative; width: 100%; height: 100%; overflow: hidden; color: var(--white); background: #26382d; }
.environment-pages, .environment-page { position: absolute; inset: 0; }
.environment-page { display: grid; grid-template-columns: repeat(3, 1fr); visibility: hidden; opacity: 0; transform: scale(1.025); }
.environment-page.is-active { z-index: 1; visibility: visible; opacity: 1; transform: none; }
.environment-page:not(.is-active) { visibility: hidden !important; opacity: 0 !important; pointer-events: none; }
.environment-page figure { min-width: 0; height: 100%; margin: 0; overflow: hidden; border-right: 1px solid rgba(255,255,255,.16); }
.environment-page img { width: 100%; height: 100%; object-position: center; filter: saturate(.78) contrast(.96); }
.environment-page figure:nth-child(2) img { object-position: 50% 42%; }.environment-page figure:nth-child(3) img { object-position: 52% 52%; }
.environment-overlay { position: absolute; z-index: 2; inset: 0; background: linear-gradient(90deg, rgba(27,42,32,.82), rgba(27,42,32,.16) 52%, rgba(27,42,32,.3)), linear-gradient(0deg, rgba(21,33,25,.72), transparent 48%); pointer-events: none; }
.environment-copy { position: absolute; z-index: 3; left: 5vw; bottom: 10vh; width: min(560px, 42vw); }
.environment-copy > p { margin: 0 0 16px; color: #d7c4a9; font-size: .55rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.environment-copy h3 { margin: 0 0 20px; font-family: var(--serif); font-size: clamp(2.7rem, 4.5vw, 6rem); font-weight: 400; line-height: .87; }.environment-copy h3 em { color: #eadcca; }
.environment-copy > span { color: rgba(255,255,255,.72); font-size: .74rem; line-height: 1.65; }
.environment-controls { position: absolute; z-index: 4; right: 3vw; bottom: 4vh; display: flex; align-items: center; gap: 10px; padding: 7px; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; background: rgba(32,49,37,.65); backdrop-filter: blur(14px); }
.environment-controls > button { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; color: var(--white); background: transparent; cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }.environment-controls > button:hover { background: rgba(255,255,255,.13); }.environment-controls > button svg { width: 16px; }
.environment-controls > span { min-width: 55px; text-align: center; font-size: .52rem; font-weight: 800; letter-spacing: .1em; }
.environment-controls > div { display: flex; align-items: center; gap: 0; }.environment-controls > div button { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border-radius: 50%; background: transparent; cursor: pointer; }.environment-controls > div button::after { content: ""; width: 5px; height: 5px; border-radius: 50%; background: rgba(255,255,255,.42); }.environment-controls > div button.is-active::after { background: var(--white); box-shadow: 0 0 0 3px rgba(255,255,255,.2); }

/* Meire */
.case--meire { --case-bg: #f3e9dd; --case-ink: #263b36; }
.meire-hero, .meire-moments { width: 100%; height: 100%; background: #f3e9dd; }
.meire-hero { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; overflow: hidden; }
.meire-hero__copy { position: relative; z-index: 3; padding: 14vh 2vw 6vh 5vw; }
.meire-hero__copy > img { width: 54px; height: auto; margin-bottom: 26px; }
.meire-hero__copy > p { margin: 0 0 18px; color: #286d60; font-size: .55rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.meire-hero__copy h3 { margin: 0 0 28px; font-family: var(--serif); font-size: clamp(3rem, 5vw, 6.4rem); font-weight: 400; line-height: .87; }
.meire-hero__copy h3 em { color: #379884; }
.meire-hero__copy > span { color: #556660; font-size: .75rem; line-height: 1.7; }
.meire-layers { position: relative; height: 100%; perspective: 1200px; }
.meire-layers::before { content: ""; position: absolute; width: 70%; aspect-ratio: 1; left: 10%; top: 18%; border: 1px solid rgba(55,152,132,.3); border-radius: 50%; }
.meire-layers__main { position: absolute; width: 45%; height: 74%; left: 24%; bottom: 0; object-position: 50% 36%; box-shadow: 0 34px 70px rgba(73,57,64,.22); }
.meire-layers__inset { position: absolute; width: 27%; height: 38%; right: 9%; top: 20%; object-position: 50% 28%; border: 7px solid #f3e9dd; box-shadow: 0 24px 54px rgba(38,59,54,.18); }
.meire-layers span { position: absolute; left: 9%; top: 28%; padding: 12px 15px; color: var(--white); background: #214f47; font-size: .55rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.meire-layers b { position: absolute; right: 10%; bottom: 8%; font-family: var(--serif); font-size: clamp(1.2rem, 2vw, 2.5rem); font-weight: 400; }
.meire-layers i { position: absolute; left: 12%; bottom: 16%; width: 42%; height: 1px; background: #379884; transform: rotate(-21deg); transform-origin: left; opacity: .45; }
.meire-moments { display: grid; grid-template-rows: auto 1fr; gap: 3vh; overflow: hidden; padding: 13vh 4vw 5vh; color: #faf5ee; background: radial-gradient(circle at 82% 8%, rgba(148,184,172,.18), transparent 28%), #163f38; }
.meire-moments__heading { position: relative; z-index: 2; display: grid; grid-template-columns: .45fr 1.55fr; align-items: end; gap: 3vw; }.meire-moments__heading > p { margin: 0; color: #bcd3c9; font-size: .55rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }.meire-moments__heading h3 { max-width: 820px; margin: 0; font-family: var(--serif); font-size: clamp(2.4rem, 4vw, 5.3rem); font-weight: 400; line-height: .88; }.meire-moments__heading h3 em { color: #bcd3c9; }
.meire-mosaic { position: relative; z-index: 2; min-height: 0; display: grid; grid-template-columns: repeat(12, 1fr); grid-template-rows: repeat(2, 1fr); gap: 10px; }
.meire-bubble { position: relative; min-width: 0; min-height: 0; margin: 0; overflow: hidden; background: #214f47; }.meire-bubble::after { content: ""; position: absolute; inset: 58% 0 0; background: linear-gradient(transparent, rgba(14,42,37,.74)); }.meire-bubble img { width: 100%; height: 100%; transition: transform 1.1s var(--ease-cinema), filter .7s; }.meire-bubble:hover img { filter: saturate(1.05); transform: scale(1.025); }.meire-bubble figcaption { position: absolute; z-index: 2; left: 16px; bottom: 13px; color: #faf5ee; font-size: .48rem; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.meire-bubble--tall { grid-column: 1 / 4; grid-row: 1 / 3; border-radius: 46% 46% 10px 10px; }.meire-bubble--tall img { object-position: 58% 8%; }
.meire-bubble--wide { grid-column: 4 / 10; grid-row: 1; border-radius: 10px 90px 10px 10px; }.meire-bubble--wide img { object-position: center; }
.meire-bubble--round { grid-column: 10 / 13; grid-row: 1; border-radius: 10px 10px 48% 48%; }.meire-bubble--round img { object-position: 50% 40%; }
.meire-bubble--soft { grid-column: 4 / 8; grid-row: 2; border-radius: 90px 10px 10px; }.meire-bubble--soft img { object-position: center; }
.meire-mosaic blockquote { grid-column: 8 / 13; grid-row: 2; display: flex; align-items: center; margin: 0; padding: clamp(18px, 2.5vw, 42px); border: 1px solid rgba(250,245,238,.13); border-radius: 10px; background: rgba(250,245,238,.06); font-family: var(--serif); font-size: clamp(1.2rem, 2vw, 2.5rem); line-height: 1.12; }

/* Capabilities */
.capabilities { z-index: 8; height: 310svh; color: var(--white); background: transparent; }
.capabilities__sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; padding: calc(var(--header-h) + 2vh) var(--gutter) 6vh; background: rgba(2,7,19,.67); }
.capabilities .section-index { position: relative; z-index: 2; color: var(--mist); }
.capabilities__lead { position: absolute; z-index: 2; left: var(--gutter); top: 23vh; margin: 0; font-family: var(--display); font-size: clamp(2.3rem, 4vw, 5.3rem); font-weight: 420; letter-spacing: -.05em; line-height: .88; }
.capability-word { position: absolute; z-index: 1; inset: 0; display: grid; place-items: center; pointer-events: none; }
.capability-word span { position: absolute; font-family: var(--display); font-size: clamp(7rem, 18vw, 24rem); font-weight: 720; letter-spacing: -.09em; line-height: .75; color: rgba(255,255,255,.035); opacity: 0; transform: scale(.72); }
.capability-word span:first-child { opacity: 1; transform: none; }
.capability-copy { position: absolute; z-index: 3; right: var(--gutter); bottom: 8vh; width: min(440px, 32vw); min-height: 210px; }
.capability-copy article { position: absolute; inset: auto 0 0; opacity: 0; transform: translateY(28px); }
.capability-copy article.is-active { opacity: 1; transform: none; }
.capability-copy article > span { display: block; margin-bottom: 16px; color: var(--royal-bright); font-size: .62rem; font-weight: 800; letter-spacing: .14em; }
.capability-copy h3 { margin: 0 0 20px; font-family: var(--serif); font-size: clamp(2.3rem, 3.5vw, 4.7rem); font-weight: 400; line-height: .9; }
.capability-copy p { margin: 0; color: var(--mist); font-size: clamp(.8rem, .93vw, 1rem); line-height: 1.75; }
.capabilities__meter { position: absolute; z-index: 3; left: var(--gutter); bottom: 7vh; width: min(280px, 24vw); display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; color: var(--mist); font-size: .56rem; font-weight: 800; }
.capabilities__meter i { height: 1px; grid-column: 2; grid-row: 1; background: rgba(255,255,255,.18); }
.capabilities__meter i::after { content: ""; display: block; width: var(--meter, 33.333%); height: 100%; background: var(--royal-bright); transform-origin: left; transition: width .5s var(--ease-cinema); }
.capabilities__meter span { grid-column: 1; grid-row: 1; color: var(--royal-bright); }.capabilities__meter b { grid-column: 3; grid-row: 1; font-weight: 800; }

/* Process */
.process { z-index: 9; height: 380svh; color: var(--ink); background: var(--cream); }
.process__sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; background: var(--cream); }
.process__track { width: 500vw; height: 100%; display: flex; will-change: transform; }
.process__track > article { position: relative; width: 100vw; height: 100%; flex: none; padding: calc(var(--header-h) + 5vh) var(--gutter) 7vh; }
.process__intro { display: grid; grid-template-columns: 1fr .55fr; grid-template-rows: auto 1fr auto; align-items: center; gap: 30px; }
.process__intro .section-index { grid-column: 1 / -1; align-self: start; }
.process__intro h2 { grid-column: 1; margin: 0; font-family: var(--display); font-size: clamp(4.4rem, 9vw, 12rem); font-weight: 420; letter-spacing: -.075em; line-height: .78; }
.process__intro > p:not(.section-index) { max-width: 430px; margin: 0; color: var(--ink-soft); font-size: clamp(.9rem, 1.05vw, 1.1rem); line-height: 1.75; }
.process__intro > span { grid-column: 1 / -1; align-self: end; color: var(--ink-soft); font-size: .57rem; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.process-step { display: flex; flex-direction: column; justify-content: center; overflow: hidden; border-left: 1px solid var(--line-light); }
.process-step > span { position: absolute; top: 8vh; right: 2vw; color: rgba(7,22,50,.055); font-family: var(--display); font-size: 38vw; font-weight: 750; letter-spacing: -.1em; line-height: .8; }
.process-step small { position: relative; z-index: 2; margin-bottom: 4vh; color: var(--royal); font-size: .6rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.process-step h3 { position: relative; z-index: 2; margin: 0; font-family: var(--serif); font-size: clamp(6rem, 15vw, 18rem); font-weight: 400; letter-spacing: -.055em; line-height: .72; }
.process-step p { position: relative; z-index: 2; align-self: flex-end; width: min(420px, 36vw); margin: 6vh 5vw 0 0; color: var(--ink-soft); font-size: clamp(.9rem, 1vw, 1.08rem); line-height: 1.75; }
.process-step > i { position: absolute; z-index: 1; left: 5vw; right: 5vw; top: 50%; height: 1px; background: var(--line-light); }
.process-step > i::after { content: ""; position: absolute; right: 0; top: -5px; width: 11px; aspect-ratio: 1; border: 2px solid var(--royal); border-radius: 50%; background: var(--cream); }
.process-step--last { background: var(--paper); }
.process__mobile-meter { display: none; }

/* Packages */
.packages { z-index: 10; height: 340svh; color: var(--white); background: var(--navy-1000); }
.packages__sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; padding: calc(var(--header-h) + 2vh) var(--gutter) 6vh; background: linear-gradient(145deg, #020713, #071632); }
.packages__intro { position: absolute; z-index: 1; left: var(--gutter); top: calc(var(--header-h) + 3vh); width: min(520px, 38vw); }
.packages__intro h2 { margin: clamp(46px, 8vh, 90px) 0 28px; font-family: var(--display); font-size: clamp(3.5rem, 6.7vw, 8.4rem); font-weight: 420; letter-spacing: -.07em; line-height: .8; }
.packages__intro > p:last-child { max-width: 420px; margin: 0; color: var(--mist); font-size: .84rem; line-height: 1.75; }
.package-stack { position: absolute; z-index: 3; inset: 0; perspective: 1800px; pointer-events: none; }
.package-panel { position: absolute; top: 10vh; right: var(--gutter); width: min(720px, 48vw); height: 82vh; display: grid; grid-template-rows: auto auto auto 1fr auto; align-content: start; padding: clamp(24px, 3vw, 50px); color: var(--ink); background: var(--cream); border: 1px solid rgba(255,255,255,.25); box-shadow: 0 44px 120px rgba(0,0,0,.45); transform-origin: 50% 100%; pointer-events: auto; }
.package-panel--basic { z-index: 1; transform: translate(8vw, 12vh) rotate(6deg) scale(.88); }
.package-panel--pro { z-index: 2; color: var(--white); background: var(--royal); transform: translate(5vw, 104vh) rotate(3deg) scale(.94); }
.package-panel--premium { z-index: 3; background: #dfe9ff; transform: translate(2vw, 110vh) rotate(-2deg); }
.package-panel__top { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 18px; border-bottom: 1px solid currentColor; font-size: .55rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; opacity: .72; }
.package-panel__top small { font: inherit; }
.package-panel__title { display: flex; justify-content: space-between; align-items: end; gap: 22px; margin: 5vh 0 3vh; }
.package-panel__title h3 { margin: 0; font-family: var(--display); font-size: clamp(4rem, 7vw, 9rem); font-weight: 480; letter-spacing: -.08em; line-height: .7; }
.package-panel__title p { display: flex; flex-direction: column; align-items: end; margin: 0; }
.package-panel__title strong { max-width: 180px; font-family: var(--serif); font-size: clamp(1.35rem, 2vw, 2.5rem); font-weight: 400; line-height: .9; text-align: right; }
.package-panel__title p span { margin-top: 10px; font-size: .52rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; opacity: .7; }
.package-panel > p { width: 80%; margin: 0 0 3vh; color: inherit; font-size: .79rem; line-height: 1.65; opacity: .75; }
.package-panel ul { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; align-content: start; margin: 0 0 3vh; padding: 0; list-style: none; }
.package-panel li { position: relative; padding-left: 18px; font-size: .66rem; line-height: 1.5; }
.package-panel li::before { content: ""; position: absolute; left: 0; top: .55em; width: 7px; height: 1px; background: currentColor; }
.package-panel .button { justify-self: start; align-self: end; }
.packages__counter { position: absolute; z-index: 4; left: var(--gutter); bottom: 6vh; width: min(300px, 27vw); display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 13px; color: var(--mist); font-size: .57rem; font-weight: 800; }
.packages__counter i { height: 1px; background: rgba(255,255,255,.19); }
.packages__counter i::after { content: ""; display: block; width: var(--meter, 33.333%); height: 100%; background: var(--royal-bright); transform-origin: left; transition: width .5s var(--ease-cinema); }
.packages__counter span { color: var(--royal-bright); }.packages__counter b { font-weight: 800; }

/* Signature */
.signature { z-index: 11; height: 180svh; color: var(--white); background: transparent; }
.signature__sticky { position: sticky; top: 0; height: 100svh; display: grid; align-content: center; overflow: hidden; padding: calc(var(--header-h) + 3vh) var(--gutter) 6vh; background: rgba(7,22,50,.72); }
.signature .section-index { position: absolute; z-index: 2; top: calc(var(--header-h) + 2vh); left: var(--gutter); color: var(--mist); }
.signature__mark { position: absolute; z-index: 0; width: min(54vw, 820px); height: auto; right: -9vw; top: 50%; opacity: .08; object-fit: contain; transform: translateY(-50%) rotate(-8deg); filter: grayscale(1) brightness(2); }
.signature blockquote { position: relative; z-index: 2; margin: 0; font-family: var(--display); font-size: clamp(4rem, 8vw, 10.5rem); font-weight: 420; letter-spacing: -.075em; line-height: .78; }
.signature blockquote span { display: block; overflow: hidden; padding-bottom: .08em; }
.signature blockquote span:nth-child(2) { padding-left: 8vw; }
.signature blockquote span:nth-child(3) { text-align: right; }
.signature__copy { position: relative; z-index: 2; width: min(500px, 35vw); margin: 6vh 3vw 0 auto; padding-left: 24px; border-left: 1px solid rgba(255,255,255,.22); }
.signature__copy p { margin: 0 0 20px; color: var(--mist); font-size: .84rem; line-height: 1.75; }
.signature__copy span { color: var(--royal-bright); font-size: .57rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }

/* Final */
.final-cta { z-index: 12; height: 165svh; color: var(--white); background: transparent; }
.final-cta__sticky { position: sticky; top: 0; height: 100svh; display: flex; flex-direction: column; justify-content: center; align-items: center; overflow: hidden; padding: calc(var(--header-h) + 2vh) var(--gutter) 8vh; text-align: center; background: rgba(2,7,19,.54); }
.final-cta .section-index { position: absolute; top: calc(var(--header-h) + 2vh); left: var(--gutter); color: var(--mist); }
.final-cta h2 { position: relative; z-index: 2; margin: 0; font-family: var(--display); font-size: clamp(4rem, 8.7vw, 11.8rem); font-weight: 420; letter-spacing: -.08em; line-height: .76; }
.final-cta h2 span { display: block; overflow: hidden; padding-bottom: .08em; }
.final-cta > .final-cta__sticky > p:not(.section-index) { position: relative; z-index: 2; width: min(560px, 46vw); margin: 5vh 0 0; color: var(--mist); font-size: clamp(.86rem, 1vw, 1.08rem); line-height: 1.75; }
.final-cta__actions { position: relative; z-index: 3; display: flex; align-items: center; gap: 34px; margin-top: 5vh; }
.final-orbit { position: relative; width: clamp(178px, 13vw, 230px); aspect-ratio: 1; display: grid; place-items: center; padding: 30px; border: 1px solid rgba(255,255,255,.38); border-radius: 50%; background: rgba(46,107,230,.12); font-size: .71rem; font-weight: 750; line-height: 1.35; }
.final-orbit span, .final-orbit svg { position: relative; z-index: 2; }
.final-orbit svg { position: absolute; right: 34px; bottom: 32px; }
.final-orbit i { position: absolute; inset: 8px; border: 1px solid rgba(77,148,255,.42); border-radius: 50%; transition: inset .45s var(--ease-cinema), background .45s; }
.final-orbit:hover i { inset: -1px; background: var(--royal); }
.final-cta__nodes { position: absolute; inset: 0; pointer-events: none; }
.final-cta__nodes i { position: absolute; width: 10px; aspect-ratio: 1; border: 2px solid var(--royal-bright); border-radius: 50%; box-shadow: 0 0 24px rgba(77,148,255,.6); }
.final-cta__nodes i:nth-child(1) { left: 11%; top: 26%; }.final-cta__nodes i:nth-child(2) { right: 13%; top: 31%; }.final-cta__nodes i:nth-child(3) { left: 22%; bottom: 18%; }
.final-cta__nodes span { position: absolute; height: 1px; background: linear-gradient(90deg, transparent, rgba(77,148,255,.4), transparent); }
.final-cta__nodes span:nth-of-type(1) { left: 11%; top: 27%; width: 78%; transform: rotate(4deg); }.final-cta__nodes span:nth-of-type(2) { left: 22%; bottom: 19%; width: 58%; transform: rotate(-18deg); }

.site-footer { z-index: 13; min-height: 220px; display: grid; grid-template-columns: 1fr auto auto; align-items: end; gap: 42px; padding: 54px var(--gutter); color: var(--white); background: var(--navy-1000); border-top: 1px solid rgba(255,255,255,.13); }
.site-footer > div { display: flex; align-items: center; gap: 20px; }
.site-footer img { width: 62px; height: auto; object-fit: contain; }
.site-footer p { margin: 0; color: var(--mist); font-size: .65rem; line-height: 1.5; }
.site-footer nav { display: flex; gap: 28px; font-size: .63rem; font-weight: 700; }
.site-footer nav a { min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; }

/* Intermediate responsive */
@media (max-width: 1180px) {
  .case__stage { width: 78vw; }
  .case__header { grid-template-columns: 1fr; }
  .case-domain { justify-self: start; }
  .cmb-services { grid-template-columns: .64fr 1.36fr; gap: 2.5vw; padding-inline: 3vw; }
  .brasil-shop { grid-template-columns: clamp(210px, 21vw, 280px) minmax(0, 1fr) clamp(200px, 20vw, 250px); }
  .package-panel { width: 53vw; }
}

@media (max-width: 920px) {
  :root { --gutter: clamp(20px, 4vw, 40px); --header-h: 78px; }
  .header-contact { display: none; }
  .site-header { grid-template-columns: auto 1fr auto; }
  .menu-trigger { justify-self: end; }
  .manifesto__sticky { grid-template-columns: 1fr; align-content: center; }
  .manifesto__aside { width: min(70vw, 520px); justify-self: end; }
  .case__stage { width: 88vw; height: 80svh; }
  .brasil-hero, .almira-portrait, .alessandra-editorial, .meire-hero { grid-template-columns: .85fr 1.15fr; }
  .cmb-services { grid-template-columns: 1fr; align-content: center; }
  .cmb-services__intro { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 12px 28px; }
  .cmb-services__intro > img { grid-row: 1 / 4; width: 135px; margin: 0; }.cmb-services__intro h3 { font-size: 2.5rem; margin-bottom: 10px; }.cmb-services__intro p { margin-bottom: 3px; }
  .cmb-deck { max-height: 46vh; }
  .cmb-place, .meire-office { grid-template-columns: .75fr 1.25fr; }
  .almira-paths { grid-template-columns: .55fr 1fr; grid-template-rows: 1fr minmax(150px, .72fr); }
  .almira-paths__nav { grid-row: 1 / 3; }
  .almira-paths__image { grid-column: 2; min-height: 150px; }
  .environment-copy { width: 56vw; }
  .capability-copy { width: 42vw; }
  .package-panel { width: 58vw; }
  .signature__copy { width: 48vw; }
}

/* Mobile: the desktop cinematic script is preserved; only the composition is reframed. */
@media (max-width: 768px) {
  :root { --header-h: 70px; }
  .film-grain { opacity: .025; }
  .site-header { top: 7px; width: calc(100% - 12px); height: 58px; gap: 10px; padding: 4px 7px 4px 12px; }
  .chapter-readout i { display: none; }
  .chapter-readout strong { max-width: 94px; overflow: hidden; font-size: .49rem; text-overflow: ellipsis; white-space: nowrap; }
  .chapter-readout { margin-left: auto; }
  .brand-mark { width: 44px; height: 44px; }
  .menu-trigger { width: 58px; }
  .site-menu { padding-top: 22px; }
  .site-menu__top { grid-template-columns: 60px 1fr auto; gap: 16px; }
  .site-menu__top img { width: 52px; }
  .site-menu__top p { display: none; }
  .site-menu nav a { grid-template-columns: 40px 1fr; }
  .site-menu nav a strong { font-size: clamp(1.8rem, 9.5vw, 3.2rem); }
  .site-menu__footer { align-items: flex-start; flex-direction: column; }
  .site-menu__footer .button { width: 100%; }

  .hero { height: 188svh; min-height: 100svh; }
  .hero__sticky { position: sticky; top: 0; height: 100svh; min-height: 100svh; }
  .hero__contrast { background: radial-gradient(ellipse 86% 46% at 50% 40%, rgba(255,255,255,.76), rgba(255,255,255,.2) 65%, transparent 86%); }
  .hero__content { padding: calc(var(--header-h) + 2vh) 18px 20vh; }
  .hero__eyebrow { margin-bottom: 16px; padding: 8px 11px; font-size: .5rem; letter-spacing: .15em; }
  .hero__content h1 { max-width: 720px; font-size: clamp(3.05rem, 14.4vw, 5.5rem); line-height: .8; }
  .hero__lead { max-width: 520px; margin-top: 16px; padding: 6px 10px; font-size: .72rem; line-height: 1.55; }
  .hero__contact { min-height: 48px; margin-top: 13px; padding: 12px 19px; }
  .hero__proof { left: 20px; right: 20px; bottom: 17px; justify-content: center; gap: 9px; font-size: .44rem; letter-spacing: .09em; }
  .hero__proof span + span::before { margin-right: 9px; }
  .hero__scroll-cue { left: 50%; right: auto; bottom: 50px; display: flex; transform: translateX(-50%); }
  .hero-transition i:nth-child(n) { display: block; }
  .hero-transition__message { width: calc(100% - 40px); }
  .hero-transition__message span { margin-bottom: 16px; font-size: .5rem; }
  .hero-transition__message strong { font-size: clamp(3.2rem, 14vw, 6rem); line-height: .84; }
  .brand-film--bridge { opacity: .48; }

  .manifesto { height: 220svh; min-height: 100svh; }
  .manifesto__sticky { position: sticky; top: 0; height: 100svh; min-height: 100svh; align-content: center; gap: 36px; padding: calc(var(--header-h) + 3vh) 20px 5vh; }
  .manifesto .section-index { left: 20px; }
  .manifesto__statement { font-size: clamp(3rem, 14vw, 5.2rem); line-height: .87; }
  .manifesto__statement span, .manifesto__statement em { opacity: .12; }
  .manifesto__aside { width: 90%; padding-left: 16px; }
  .manifesto__aside p { font-size: .8rem; }.manifesto__aside strong { font-size: 1.65rem; }
  .manifesto__orbit { width: 92vw; right: -58vw; opacity: .6; }

  .case-overture { height: 155svh; min-height: 100svh; }
  .case-overture__sticky { position: sticky; top: 0; height: 100svh; min-height: 100svh; padding: calc(var(--header-h) + 3vh) 20px 70px; }
  .case-overture .section-index { left: 20px; }
  .case-overture h2 { font-size: clamp(3.4rem, 15vw, 5.6rem); line-height: .8; }
  .case-overture h2 span:nth-child(2) { padding-left: 10vw; }
  .case-overture h2 span:nth-child(3) { text-align: left; }
  .case-overture > .case-overture__sticky > p:not(.section-index) { align-self: flex-start; margin: 28px 0 0; font-size: .8rem; }

  .case { height: 285svh; min-height: 100svh; padding: 0; color: var(--case-ink); background: var(--navy-1000); }
  .case__sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; background: var(--navy-1000); }
  .case__header { position: absolute; top: calc(var(--header-h) + 1vh); right: calc(12px + env(safe-area-inset-right)); bottom: 0; left: calc(20px + env(safe-area-inset-left)); display: grid; grid-auto-rows: max-content; align-content: start; padding: 0; }
  .case__header::before { display: none; }
  .case__header p { margin-bottom: 14px; }
  .case__header h2 { font-size: clamp(2.35rem, 11vw, 3.5rem); }
  .case-domain { position: absolute; left: auto; right: 0; top: calc(100svh - var(--header-h) - 146px); width: 52px; height: 52px; min-height: 52px; display: grid; grid-template-columns: 1fr; grid-template-rows: 1fr; place-items: center; margin-top: 0; padding: 0; border-radius: 50%; overflow: hidden; }
  .case-domain > span, .case-domain > small { display: none; }
  .case-domain svg { grid-column: 1; grid-row: 1; width: 36px; height: 36px; padding: 9px; }
  .case__stage { position: absolute; left: 50%; top: 50%; width: calc(100% - 24px); height: 78svh; overflow: hidden; display: block; border-radius: 34px; background: var(--case-bg); will-change: width, height, border-radius, transform; }
  .case__scene { position: absolute; inset: 0; width: 100%; min-width: 0; height: 100%; visibility: hidden; opacity: 0; transform: scale(1.04); pointer-events: none; }
  .case__scene.is-active { visibility: visible; opacity: 1; transform: none; pointer-events: auto; }
  .case__scene-nav { position: absolute; left: 50%; right: auto; bottom: 14px; width: calc(100% - 28px); margin: 0; justify-content: stretch; background: color-mix(in srgb, var(--case-bg) 88%, transparent); transform: translateX(-50%); }
  .case__scene-nav button { min-width: 0; flex: 1; justify-content: center; padding-inline: 10px; font-size: .53rem; }

  .brasil-hero { grid-template-columns: 1fr; grid-template-rows: .88fr 1.12fr; background: #f0e6d3; }
  .brasil-hero__copy { z-index: 2; padding: 42px 24px 18px; }
  .brasil-hero__copy > img { width: 62px; margin-bottom: 8px; }.brasil-hero__copy > p { margin-bottom: 8px; font-size: .44rem; }.brasil-hero__copy h3 { margin-bottom: 10px; font-size: clamp(2.05rem, 9.5vw, 3.1rem); }.brasil-hero__copy .micro-button { min-height: 44px; display: inline-flex; padding-block: 8px; }
  .brasil-hero__gallery { min-height: 0; background: #53744c; }.brasil-hero__gallery > span { right: 12px; bottom: 12px; }
  .brasil-shop { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr) 210px; }
  .brasil-shop__intro { padding: 24px 20px 8px; }.brasil-shop__intro h3 { margin-bottom: 6px; font-size: 1.95rem; }.brasil-shop__intro > p { margin-bottom: 5px; }.brasil-shop__intro > span { max-width: none; font-size: .56rem; }.brasil-shop__status { display: flex; margin-top: 8px; padding: 5px 8px; }
  .brasil-menu { gap: 6px; padding: 0 16px 8px; }.brasil-menu__header { min-height: 38px; }.brasil-menu__header h4 { font-size: 1.35rem; }.brasil-menu__header p { font-size: .47rem; }
  .brasil-products { gap: 6px; }.brasil-product-card { grid-template-columns: 1fr; grid-template-rows: minmax(0, .82fr) minmax(0, 1.18fr); }.brasil-product-card__body { padding: 7px; }.brasil-product-card h5 { font-size: .57rem; }.brasil-product-card strong { font-size: .69rem; }.brasil-product-card p { margin: 3px 0 4px; font-size: .43rem; }.brasil-product-card button { min-height: 44px; padding: 5px 6px 5px 9px; font-size: .48rem; }.brasil-product-card button i { width: 18px; }.brasil-product-card__image span { left: 7px; bottom: 6px; font-size: .38rem; }
  .brasil-selection { position: relative; min-height: 210px; display: grid; grid-template-columns: 1fr auto; align-items: start; align-content: start; gap: 6px 10px; padding: 16px 20px 82px; }.brasil-selection strong { margin: 0; font-size: 1.8rem; }.brasil-selection p { grid-column: 1 / -1; min-height: auto; font-size: .56rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.brasil-selection__total { margin: 3px 0 0; padding: 0; border: 0; }.brasil-cart-trigger { position: absolute; left: 20px; right: 20px; bottom: 74px; min-height: 48px; margin: 0; }
  .case--brasil .case-domain { left: 50%; right: auto; top: calc(100svh - var(--header-h) - 220px); margin-left: -26px; }
  .brasil-cart { top: auto; right: 8px; bottom: 8px; width: calc(100% - 16px); height: min(90svh, 720px); border-radius: 24px; transform: translateY(calc(100% + 16px)); }.brasil-cart header { min-height: 88px; padding: 15px 18px; }.brasil-cart h4 { font-size: 2rem; }.brasil-cart__body { padding: 14px 18px 22px; }.brasil-cart footer { padding: 13px 18px 14px; }.brasil-message > div { grid-template-columns: 1fr; }

  .cmb-services { display: flex; flex-direction: column; gap: 18px; align-items: stretch; padding: 40px 20px 20px; }
  .cmb-services__intro { display: block; }.cmb-services__intro > img { width: 105px; margin-bottom: 10px; }.cmb-services__intro h3 { margin-bottom: 8px; font-size: 2.05rem; }.cmb-services__intro > span { display: block; font-size: .6rem; }
  .cmb-deck { min-height: 0; flex: 1; gap: 6px; }.cmb-deck__cover { display: block; }.flip-card { aspect-ratio: auto; min-height: 250px; }.flip-card__face { padding: 15px; }.flip-card strong { font-size: 1.35rem; }
  .cmb-place, .meire-office { display: grid; grid-template-columns: 1fr; grid-template-rows: auto 1fr; gap: 14px; padding: 40px 20px 20px; }
  .cmb-place__copy h3, .meire-office__copy h3 { margin-bottom: 8px; font-size: 2.05rem; }.cmb-place__copy > p, .meire-office__copy > p { margin-bottom: 7px; }.cmb-place__copy > span, .meire-office__copy > span { display: block; font-size: .58rem; }
  .cinema-carousel { min-height: 0; }

  .almira-portrait { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
  .almira-portrait__copy { padding: 40px 20px 10px; }.almira-portrait__copy h3 { margin-bottom: 10px; font-size: 2.4rem; }.almira-portrait__copy > span { font-size: .64rem; }
  .portrait-deck figure { width: 45%; height: 90%; left: 28%; top: 3%; }.portrait-deck button { right: 8%; bottom: 4%; }
  .almira-paths { grid-template-columns: 1fr; grid-template-rows: auto auto minmax(230px, 1fr); padding: 40px 20px 20px; }.almira-paths__nav { grid-row: auto; display: grid; grid-template-columns: repeat(3, 1fr); }.almira-paths__nav button { min-height: 50px; grid-template-columns: 1fr; text-align: center; border-right: 1px solid rgba(217,196,142,.2); }.almira-paths__nav button span { display: none; }.almira-paths__nav button.is-active { transform: none; background: rgba(217,196,142,.1); }.almira-paths__panel { padding: 20px 4px 14px; }.almira-paths__panel h3 { margin-bottom: 14px; font-size: 2.45rem; }.almira-paths__image { grid-column: auto; min-height: 230px; }

  .alessandra-editorial { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
  .alessandra-editorial__title { padding: 38px 20px 15px; }.alessandra-editorial__title img { width: 112px; margin: 0 0 12px; }.alessandra-editorial__title > p { margin-bottom: 8px; }.alessandra-editorial__title h3 { font-size: 2.65rem; }
  .editorial-gallery > div { top: 14px; right: 14px; bottom: auto; }
  .alessandra-editorial__note { right: 14px; bottom: 76px; display: block; width: min(165px, 44vw); padding: 12px; font-size: .52rem; }
  .environment-page { grid-template-columns: .8fr 1.4fr .8fr; }.environment-copy { left: 20px; bottom: 116px; width: calc(100% - 40px); }.environment-copy > p { margin-bottom: 7px; }.environment-copy h3 { max-width: 320px; margin-bottom: 7px; font-size: 2.1rem; }.environment-copy > span { display: block; font-size: .56rem; }.environment-controls { left: 20px; right: auto; top: 82px; bottom: auto; max-width: calc(100% - 40px); }.environment-controls > div { display: none; }

  .meire-hero { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
  .meire-hero__copy { padding: 38px 20px 10px; }.meire-hero__copy > img { float: left; width: 38px; margin: 0 12px 2px 0; }.meire-hero__copy > p { margin-bottom: 8px; }.meire-hero__copy h3 { margin-bottom: 10px; font-size: 2.6rem; }.meire-hero__copy > span { font-size: .62rem; }
  .meire-layers__main { width: 48%; height: 96%; left: 20%; }.meire-layers__inset { width: 32%; height: 44%; right: 5%; top: 14%; }.meire-layers span { left: 5%; top: 15%; font-size: .45rem; }.meire-layers b { right: 5%; bottom: 5%; font-size: 1.2rem; }
  .meire-moments { gap: 10px; padding: 30px 14px 16px; }.meire-moments__heading { display: block; }.meire-moments__heading > p { margin-bottom: 6px; font-size: .43rem; }.meire-moments__heading h3 { max-width: 390px; font-size: 1.9rem; }.meire-mosaic { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(4, 1fr); gap: 5px; }.meire-bubble--tall { grid-column: 1; grid-row: 1 / 3; border-radius: 68px 68px 7px 7px; }.meire-bubble--wide { grid-column: 2; grid-row: 1; border-radius: 7px 60px 7px 7px; }.meire-bubble--round { grid-column: 2; grid-row: 2; border-radius: 7px 7px 60px 60px; }.meire-bubble--soft { grid-column: 1 / 3; grid-row: 3; border-radius: 60px 7px 7px; }.meire-mosaic blockquote { grid-column: 1 / 3; grid-row: 4; display: flex; padding: 10px 14px; font-size: .92rem; }.meire-bubble figcaption { left: 10px; bottom: 8px; font-size: .4rem; }

  /* Cases: composição mobile com áreas seguras e controles unificados */
  .case {
    --case-safe-top: 76px;
    --case-safe-bottom: calc(76px + env(safe-area-inset-bottom));
    --case-pad: clamp(14px, 5vw, 20px);
  }
  .case .case-domain,
  .case--brasil .case-domain {
    z-index: 11;
    left: auto;
    right: 0;
    top: auto;
    bottom: calc(12px + env(safe-area-inset-bottom));
    width: 54px;
    height: 54px;
    min-height: 54px;
    margin: 0;
    border-width: 1px;
    background: color-mix(in srgb, var(--case-bg) 94%, transparent);
    box-shadow: 0 10px 24px -12px color-mix(in srgb, var(--case-ink) 28%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--case-bg) 56%, transparent);
  }
  .case .case-domain svg { width: 38px; height: 38px; }
  .case__scene-nav {
    z-index: 11;
    left: calc(12px + env(safe-area-inset-left));
    right: calc(76px + env(safe-area-inset-right));
    bottom: calc(12px + env(safe-area-inset-bottom));
    width: auto;
    height: 54px;
    padding: 4px;
    border-color: color-mix(in srgb, var(--case-ink) 20%, transparent);
    background: color-mix(in srgb, var(--case-bg) 94%, transparent);
    box-shadow: 0 10px 24px -12px color-mix(in srgb, var(--case-ink) 26%, transparent);
    transform: none;
  }
  .case__scene-nav button {
    min-height: 44px;
    gap: 6px;
    padding: 7px 8px;
    font-size: clamp(.56rem, 2.3vw, .62rem);
    line-height: 1.15;
    text-align: center;
    text-wrap: balance;
    white-space: normal;
  }
  .case__scene-nav button span { flex: none; font-size: .5rem; }

  .brasil-hero {
    grid-template-rows: auto minmax(0, 1fr);
    padding: var(--case-safe-top) 0 var(--case-safe-bottom);
  }
  .brasil-hero__copy { padding: 14px var(--case-pad) 12px; }
  .brasil-hero__copy > img { width: 56px; margin-bottom: 6px; }
  .brasil-hero__copy > p { margin-bottom: 6px; }
  .brasil-hero__copy h3 { margin-bottom: 9px; font-size: clamp(1.9rem, 8.7vw, 2.55rem); line-height: .9; }
  .brasil-hero__gallery { min-height: 0; }
  .brasil-shop {
    grid-template-rows: auto minmax(0, 1fr) auto;
    padding: var(--case-safe-top) 0 var(--case-safe-bottom);
  }
  .brasil-shop__intro { padding: 10px var(--case-pad) 6px; }
  .brasil-shop__intro h3 { margin-bottom: 4px; font-size: clamp(1.55rem, 7.2vw, 1.85rem); line-height: .9; }
  .brasil-shop__intro > span { font-size: .52rem; line-height: 1.35; }
  .brasil-shop__status { margin-top: 6px; }
  .brasil-menu { gap: 5px; padding: 0 12px 6px; }
  .brasil-menu__header { min-height: 32px; }
  .brasil-menu__header h4 { font-size: 1.2rem; }
  .brasil-products { gap: 5px; }
  .brasil-product-card { grid-template-rows: minmax(0, .9fr) minmax(0, 1.1fr); }
  .brasil-product-card__body { padding: 6px; }
  .brasil-product-card__body > div { gap: 4px; }
  .brasil-product-card h5 { font-size: .53rem; }
  .brasil-product-card strong { font-size: .63rem; }
  .brasil-product-card p { margin: 2px 0 3px; font-size: .4rem; line-height: 1.25; }
  .brasil-product-card button { min-height: 44px; padding: 4px 5px 4px 8px; }
  .brasil-selection {
    position: relative;
    min-height: 118px;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto 42px;
    align-content: center;
    gap: 4px 12px;
    padding: 10px var(--case-pad) 12px;
  }
  .brasil-selection > strong { align-self: center; margin: 0; font-size: 1.45rem; }
  .brasil-selection > p { grid-column: 1; min-width: 0; font-size: .51rem; }
  .brasil-selection__total { grid-column: 2; align-self: center; gap: 7px; margin: 0; padding: 0; border: 0; }
  .brasil-cart-trigger {
    position: static;
    grid-column: 1 / -1;
    width: 100%;
    min-height: 42px;
    margin: 0;
  }

  .cmb-services {
    gap: 10px;
    padding: calc(var(--case-safe-top) + 10px) var(--case-pad) calc(var(--case-safe-bottom) + 10px);
  }
  .cmb-services__intro > img { width: 82px; margin-bottom: 6px; }
  .cmb-services__intro > p { margin-bottom: 6px; }
  .cmb-services__intro h3 { margin-bottom: 6px; font-size: clamp(1.65rem, 7.6vw, 2rem); line-height: .9; }
  .cmb-services__intro > span { font-size: .55rem; line-height: 1.4; }
  .cmb-deck { min-height: 0; }
  .flip-card { min-height: 0; height: 100%; }
  .cmb-place {
    grid-template-rows: auto minmax(0, 1fr);
    gap: 12px;
    padding: calc(var(--case-safe-top) + 10px) var(--case-pad) calc(var(--case-safe-bottom) + 10px);
  }
  .cmb-place__copy > p { margin-bottom: 6px; }
  .cmb-place__copy h3 { margin-bottom: 6px; font-size: clamp(1.7rem, 7.5vw, 2rem); line-height: .9; }
  .cmb-place__copy > span { font-size: .54rem; line-height: 1.4; }
  .cinema-carousel { min-height: 0; border: 1px solid rgba(143,181,250,.16); border-radius: 14px; }
  .case--cmb .cinema-carousel figcaption { left: 10px; right: 10px; bottom: 78px; max-width: calc(100% - 20px); border-radius: 8px; }
  .case--cmb .cinema-carousel__controls { right: 10px; bottom: 10px; }

  .almira-portrait {
    grid-template-rows: auto minmax(0, 1fr);
    padding: var(--case-safe-top) 0 var(--case-safe-bottom);
  }
  .almira-portrait__copy { padding: 12px var(--case-pad) 9px; }
  .almira-brand { width: 88px; margin-bottom: 7px; }
  .almira-portrait__copy > p { margin-bottom: 6px; font-size: .48rem; }
  .almira-portrait__copy h3 { margin-bottom: 7px; font-size: clamp(1.95rem, 8.8vw, 2.4rem); line-height: .9; }
  .almira-portrait__copy > span { font-size: .56rem; line-height: 1.4; }
  .portrait-deck figure { width: 58%; height: 94%; left: 21%; top: 3%; }
  .portrait-deck button { right: 6%; bottom: 4%; }
  .almira-paths {
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 0;
    padding: calc(var(--case-safe-top) + 10px) var(--case-pad) calc(var(--case-safe-bottom) + 10px);
  }
  .almira-paths__nav { overflow: hidden; border: 1px solid rgba(217,196,142,.22); border-radius: 14px; }
  .almira-paths__nav button { min-height: 44px; border-bottom: 0; font-size: .57rem; }
  .almira-paths__nav button:last-child { border-right: 0; }
  .almira-paths__panel { padding: 12px 2px 10px; }
  .almira-paths__panel > p { margin-bottom: 6px; }
  .almira-paths__panel h3 { margin-bottom: 8px; font-size: clamp(1.9rem, 8.5vw, 2.3rem); line-height: .92; }
  .almira-paths__panel > span { font-size: .64rem; line-height: 1.5; }
  .almira-paths__image { min-height: 0; border-radius: 14px; }

  .alessandra-editorial {
    grid-template-rows: auto minmax(0, 1fr);
    padding: var(--case-safe-top) 0 var(--case-safe-bottom);
  }
  .alessandra-editorial__title { padding: 11px var(--case-pad) 12px; }
  .alessandra-editorial__title img { width: 82px; margin: 0 0 6px; }
  .alessandra-editorial__title > p { margin-bottom: 6px; }
  .alessandra-editorial__title h3 { font-size: clamp(2rem, 9vw, 2.45rem); line-height: .9; }
  .editorial-gallery { min-height: 0; }
  .editorial-gallery > div { top: 10px; right: 10px; }
  .alessandra-editorial__note { right: 10px; bottom: calc(var(--case-safe-bottom) + 10px); width: min(154px, 44vw); padding: 10px; }
  .environment-page { grid-template-columns: minmax(34px, .35fr) minmax(0, 2.4fr) minmax(34px, .35fr); }
  .environment-controls { left: var(--case-pad); top: calc(var(--case-safe-top) + 10px); max-width: calc(100% - (var(--case-pad) * 2)); }
  .environment-copy { left: var(--case-pad); bottom: calc(var(--case-safe-bottom) + 18px); width: calc(100% - (var(--case-pad) * 2)); }
  .environment-copy h3 { max-width: 350px; font-size: clamp(1.8rem, 8vw, 2.15rem); }

  .meire-hero {
    grid-template-rows: auto minmax(0, 1fr);
    padding: var(--case-safe-top) 0 var(--case-safe-bottom);
  }
  .meire-hero__copy { padding: 11px var(--case-pad) 8px; }
  .meire-hero__copy > img { width: 32px; margin: 0 9px 2px 0; }
  .meire-hero__copy > p { margin-bottom: 6px; font-size: .47rem; }
  .meire-hero__copy h3 { margin-bottom: 7px; font-size: clamp(2rem, 9vw, 2.45rem); line-height: .9; }
  .meire-hero__copy > span { font-size: .56rem; line-height: 1.4; }
  .meire-layers__main { width: 60%; height: 96%; left: 10%; }
  .meire-layers__inset { width: 34%; height: 43%; right: 4%; top: 10%; }
  .meire-layers span { left: 4%; top: 14%; }
  .meire-layers b { right: 4%; bottom: 4%; }
  .meire-moments {
    gap: 8px;
    padding: calc(var(--case-safe-top) + 8px) 12px calc(var(--case-safe-bottom) + 10px);
  }
  .meire-moments__heading > p { margin-bottom: 5px; }
  .meire-moments__heading h3 { font-size: clamp(1.55rem, 7.2vw, 1.9rem); line-height: .9; }
  .meire-mosaic { min-height: 0; }
  .meire-mosaic blockquote { font-size: clamp(.76rem, 3.5vw, .92rem); line-height: 1.12; }

  .capabilities { height: 310svh; color: var(--white); background: transparent; }
  .capabilities__sticky { position: sticky; top: 0; height: 100svh; min-height: 100svh; padding: calc(var(--header-h) + 3vh) 20px 5vh; background: rgba(2,7,19,.7); }
  .capabilities__lead { position: absolute; left: 20px; top: 20vh; margin: 0; font-size: clamp(2.65rem, 12vw, 4.2rem); }
  .capability-word { display: grid; }
  .capability-word span { font-size: clamp(4rem, 21vw, 9.5rem); }
  .capability-copy { position: absolute; right: 20px; bottom: 12vh; width: calc(100% - 40px); min-height: 205px; display: block; }
  .capability-copy article { position: absolute; inset: auto 0 0; min-height: 0; padding: 0; border: 0; opacity: 0; transform: translateY(28px); }
  .capability-copy article.is-active { opacity: 1; transform: none; }
  .capability-copy h3 { font-size: 2.5rem; }.capability-copy p { max-width: 100%; }
  .capabilities__meter { left: 20px; bottom: 5vh; width: calc(100% - 40px); display: grid; }

  .process { height: 380svh; background: var(--cream); }
  .process__sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; }
  .process__track { width: 500vw; height: 100%; display: flex; }
  .process__track > article { width: 100vw; height: 100%; min-height: 0; padding: calc(var(--header-h) + 4vh) 20px 50px; }
  .process__intro { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
  .process__intro h2 { font-size: clamp(4.2rem, 18vw, 6.4rem); }.process__intro > p:not(.section-index) { font-size: .82rem; }.process__intro > span { margin-top: 28px; }
  .process-step > span { top: 8vh; right: 0; font-size: 70vw; }.process-step h3 { font-size: clamp(5.2rem, 25vw, 8rem); }.process-step p { align-self: flex-start; width: 90%; margin: 36px 0 0; font-size: .82rem; }.process-step > i { left: 20px; right: 20px; }

  .process.is-mobile-stacked { height: 500svh; }
  .process.is-mobile-stacked .process__track { position: relative; width: 100%; height: 100%; display: block; transform: none !important; will-change: auto; }
  .process.is-mobile-stacked .process__track > article {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: calc(var(--header-h) + 5vh) 20px 74px;
    border-left: 0;
    background: radial-gradient(circle at 82% 18%, rgba(46,107,230,.055), transparent 30%), var(--cream);
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
  }
  .process.is-mobile-stacked .process__track > article:first-child { visibility: visible; opacity: 1; }
  .process.is-mobile-stacked .process__intro { display: flex; }
  .process.is-mobile-stacked .process__intro h2 { font-size: clamp(3.85rem, 16.5vw, 5.8rem); line-height: .8; }
  .process.is-mobile-stacked .process-step { justify-content: center; overflow: hidden; }
  .process.is-mobile-stacked .process-step > span { top: 12vh; right: -.08em; font-size: clamp(12rem, 62vw, 17rem); }
  .process.is-mobile-stacked .process-step small { margin-bottom: 30px; }
  .process.is-mobile-stacked .process-step h3 { max-width: 100%; font-size: clamp(3.9rem, 19.5vw, 5.8rem); line-height: .76; }
  .process.is-mobile-stacked .process-step p { align-self: flex-end; width: min(310px, 88%); margin: 44px 0 0; font-size: .78rem; line-height: 1.68; }
  .process.is-mobile-stacked .process-step > i { left: 20px; right: 20px; top: 53%; }
  .process.is-mobile-stacked .process-step--last { background: radial-gradient(circle at 82% 18%, rgba(46,107,230,.055), transparent 30%), var(--cream); }
  .process.is-mobile-stacked .process__mobile-meter {
    position: absolute;
    z-index: 5;
    right: 20px;
    bottom: calc(28px + env(safe-area-inset-bottom));
    left: 20px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 12px;
    color: var(--ink-soft);
    font-size: .54rem;
    font-weight: 800;
    letter-spacing: .12em;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .35s ease, transform .35s var(--ease-cinema);
  }
  .process.is-mobile-stacked .process__mobile-meter.is-visible { opacity: 1; transform: none; }
  .process.is-mobile-stacked .process__mobile-meter > i { position: relative; height: 1px; overflow: hidden; background: rgba(7,22,50,.16); }
  .process.is-mobile-stacked .process__mobile-meter > i b { position: absolute; inset: 0; background: var(--royal); transform: scaleX(var(--process-meter, .25)); transform-origin: left; }
  .process.is-mobile-stacked .process__mobile-meter strong { font: inherit; }

  .packages { height: 340svh; }
  .packages__sticky { position: sticky; top: 0; height: 100svh; min-height: 100svh; padding: calc(var(--header-h) + 3vh) 20px 5vh; }
  .packages__intro { position: absolute; left: 20px; top: calc(var(--header-h) + 3vh); width: calc(100% - 40px); }
  .packages__intro h2 { margin: 5vh 0 18px; font-size: clamp(3.7rem, 16vw, 5.7rem); }.packages__intro > p:last-child { font-size: .72rem; }
  .package-stack { position: absolute; inset: 0; margin: 0; display: block; perspective: 1400px; }
  .package-panel { position: absolute; top: 15vh; right: 12px; width: calc(100% - 24px); height: 80vh; min-height: 0; padding: 22px 18px; }
  .package-panel__title { margin: 24px 0 18px; }.package-panel__title h3 { font-size: 3.8rem; }.package-panel__title strong { font-size: 1.4rem; }.package-panel > p { width: 100%; margin-bottom: 16px; font-size: .7rem; }.package-panel ul { grid-template-columns: 1fr 1fr; gap: 7px 12px; margin-bottom: 14px; }.package-panel li { padding-left: 12px; font-size: .58rem; }.package-panel .button { width: 100%; min-height: 46px; margin-top: 0; }
  .packages__counter { left: 20px; bottom: 4vh; width: calc(100% - 40px); display: grid; }

  .signature { height: 180svh; min-height: 100svh; }
  .signature__sticky { position: sticky; top: 0; height: 100svh; min-height: 100svh; padding: calc(var(--header-h) + 4vh) 20px 50px; }
  .signature .section-index { left: 20px; }
  .signature blockquote { font-size: clamp(3.55rem, 15vw, 5.5rem); line-height: .81; }.signature blockquote span:nth-child(2) { padding-left: 0; }.signature blockquote span:nth-child(3) { text-align: left; }
  .signature__mark { width: 100vw; right: -38vw; }
  .signature__copy { width: 90%; margin: 45px 0 0 auto; }.signature__copy p { font-size: .79rem; }

  .final-cta { height: 165svh; min-height: 100svh; }
  .final-cta__sticky { position: sticky; top: 0; height: 100svh; min-height: 100svh; align-items: flex-start; padding: calc(var(--header-h) + 5vh) 20px 46px; text-align: left; }
  .final-cta .section-index { left: 20px; }
  .final-cta h2 { font-size: clamp(3.7rem, 16.5vw, 6.2rem); line-height: .8; }
  .final-cta > .final-cta__sticky > p:not(.section-index) { width: 92%; font-size: .8rem; }
  .final-cta__actions { width: 100%; flex-direction: column; align-items: flex-start; gap: 12px; }
  .final-orbit { width: 168px; }
  .site-footer { grid-template-columns: 1fr; gap: 28px; align-items: start; padding: 42px 20px; }.site-footer nav { flex-wrap: wrap; gap: 10px 24px; }.site-footer nav a { min-width: 44px; justify-content: center; }
}

@media (min-width: 560px) and (max-width: 768px) {
  .hero-transition i:nth-child(n) { display: block; }
}

@media (max-width: 390px) {
  .site-header { grid-template-columns: auto 1fr auto; }
  .chapter-readout { display: flex; justify-self: end; }
  .chapter-readout strong { display: none; }
  .hero__content { padding-inline: 14px; }
  .hero__content h1 { font-size: clamp(2.86rem, 14.4vw, 3.6rem); }
  .hero__lead { max-width: 340px; }
  .hero__proof { font-size: .4rem; letter-spacing: .06em; }
  .hero-transition__message strong { font-size: clamp(2.85rem, 14vw, 3.8rem); }
  .manifesto__statement { font-size: clamp(2.75rem, 13.5vw, 3.8rem); }
  .case-overture h2 { font-size: clamp(3.05rem, 14vw, 4.2rem); }
  .case__scene-nav button { min-height: 48px; gap: 5px; padding-inline: 6px; font-size: .56rem; }
  .case__scene-nav button span { display: inline; }
  .brasil-product-card p { display: block; }
  .flip-card__face { padding: 11px; }.flip-card strong { font-size: 1.15rem; }.flip-card small { font-size: .42rem; }
  .cinema-carousel figcaption { left: 10px; bottom: 10px; max-width: 58%; font-size: .52rem; }.cinema-carousel__controls { right: 8px; bottom: 8px; }
  .package-panel__title { align-items: end; flex-direction: row; }.package-panel__title p { align-items: end; }
}

@media (max-width: 330px) {
  .button { padding-inline: 16px; }
  .case-domain { font-size: .55rem; }
  .flip-card strong { font-size: 1rem; }
  .package-panel { top: 13vh; height: 82vh; padding: 18px 15px; }
  .package-panel__title h3 { font-size: 3.2rem; }
  .final-cta__sticky { justify-content: flex-start; padding-top: 118px; }
  .final-cta h2 { font-size: 3.2rem; }
  .final-cta > .final-cta__sticky > p:not(.section-index) { margin-top: 24px; }
  .final-cta__actions { margin-top: 20px; }
  .final-orbit { width: 150px; }
}

@media (max-height: 690px) and (min-width: 768px) {
  .hero__content { padding-top: calc(var(--header-h) + 1vh); padding-bottom: 13vh; }
  .hero__eyebrow { margin-bottom: 12px; }
  .hero__content h1 { font-size: clamp(3.4rem, 6.2vw, 5.7rem); }
  .hero__lead { margin-top: 12px; }
  .hero__contact { margin-top: 10px; }
  .hero__proof, .hero__scroll-cue { bottom: 18px; }
  .case__header { top: calc(var(--header-h) - 4px); }
  .case__header p { display: none; }
  .case__stage { height: 83svh; }
  .case__scene-nav { bottom: 14px; }
  .case .case-domain { bottom: calc(14px + env(safe-area-inset-bottom)); }
  .package-panel { top: 8vh; height: 86vh; }
  .package-panel__title { margin-block: 3vh 2vh; }
}

@media (max-height: 690px) {
  .site-menu { grid-template-rows: auto auto auto; align-content: start; gap: 10px; padding-block: 14px; }
  .site-menu__top { padding-bottom: 10px; }
  .site-menu nav { align-self: start; }
  .site-menu nav a { min-height: 50px; }
  .site-menu__footer { padding-top: 12px; }
}

@media (max-width: 768px) and (max-height: 690px) {
  .final-cta__sticky { justify-content: flex-start; padding-top: calc(var(--header-h) + 7vh); padding-bottom: 24px; }
  .final-cta h2 { font-size: clamp(3.05rem, 14.5vw, 3.45rem); }
  .final-cta > .final-cta__sticky > p:not(.section-index) { margin-top: 18px; line-height: 1.6; }
  .final-cta__actions { gap: 8px; margin-top: 14px; }
  .final-orbit { width: 132px; padding: 24px; }
  .final-orbit svg { right: 25px; bottom: 23px; }
}

@media (hover: none), (pointer: coarse) {
  .cursor { display: none; }
  .magnetic { transform: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .film-grain, .world-canvas, .cursor, .hero-transition, .hero__scroll-cue { display: none !important; }
  .hero__content, .manifesto__sticky { opacity: 1 !important; filter: none !important; clip-path: none !important; transform: none !important; }
  .hero-video, .brand-film__video { display: none; }
  .hero, .manifesto, .case-overture, .case, .capabilities, .process, .packages, .signature, .final-cta { height: auto; min-height: 100svh; }
  .hero__sticky, .manifesto__sticky, .case-overture__sticky, .case__sticky, .capabilities__sticky, .process__sticky, .packages__sticky, .signature__sticky, .final-cta__sticky { position: relative; top: auto; min-height: 100svh; }
  .cmb-deck__cover { display: none; }
  .manifesto__statement span, .manifesto__statement em { opacity: 1; }
  .case__stage { width: 100%; height: 78svh; border-radius: 0; transform: none; }
  .capability-copy article { opacity: 1; transform: none; }
  .process { height: auto; }.process__sticky { height: auto; overflow: visible; }.process__track { width: 100%; height: auto; display: block; transform: none !important; }.process__track > article { width: 100%; min-height: 90svh; }
  .packages { height: auto; }.packages__sticky { height: auto; overflow: visible; }.package-stack { position: relative; inset: auto; display: grid; gap: 20px; margin-top: 360px; }.package-panel { position: relative; inset: auto; width: min(760px, 100%); height: auto; min-height: 620px; margin-left: auto; transform: none !important; }
}

@media (min-width: 769px) and (prefers-reduced-motion: reduce) {
  .case { padding-bottom: 5vh; }
  .case__sticky { height: auto; display: flex; flex-direction: column; }
  .case__stage { position: relative; left: auto; top: auto; height: clamp(620px, 78svh, 900px); margin-top: calc(var(--header-h) + 8vh); }
  .case__scene-nav { position: relative; left: auto; bottom: auto; align-self: center; margin-top: 18px; transform: none; }
  .capabilities__sticky { height: auto; min-height: 100svh; overflow: visible; padding-bottom: 8vh; background: radial-gradient(circle at 60% 30%, rgba(46,107,230,.18), transparent 40%), var(--navy-950); }
  .capabilities__lead { position: relative; left: auto; top: auto; max-width: 880px; margin: 12vh 0 9vh; }
  .capability-word, .capabilities__meter { display: none; }
  .capability-copy { position: relative; right: auto; bottom: auto; width: min(920px, 100%); min-height: 0; margin-left: auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(22px, 3vw, 52px); }
  .capability-copy article { position: relative; inset: auto; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.18); }
}

@media (max-width: 768px) and (prefers-reduced-motion: reduce) {
  .case { padding-bottom: 18px; }
  .case__sticky { height: auto; min-height: 0; overflow: visible; }
  .case__header { position: relative; inset: auto; width: calc(100% - 40px); height: auto; margin: calc(var(--header-h) + 24px) 20px 18px; }
  .case .case-domain, .case--brasil .case-domain { position: relative; inset: auto; grid-column: 2; grid-row: 2; justify-self: end; }
  .case__stage { position: relative; left: auto; top: auto; width: 100%; height: 680px; transform: none; }
  .case__scene { height: 680px; }
  .case__scene-nav { position: relative; left: auto; right: auto; bottom: auto; width: calc(100% - 24px); margin: 12px auto 0; transform: none; }
  .package-stack { margin-top: 52px; }
}

.no-js .manifesto__statement span, .no-js .manifesto__statement em { opacity: 1; }
.no-js .hero { height: 100svh; }
.no-js .hero__sticky { position: relative; }
.no-js .hero-transition, .no-js .hero__scroll-cue { display: none; }
.no-js .case { height: auto; min-height: 100svh; }
.no-js .case__sticky { position: relative; min-height: 100svh; }
.no-js .case__stage { position: relative; left: auto; top: auto; width: 100%; height: 78svh; margin-top: calc(var(--header-h) + 8vh); border-radius: 0; transform: none; }
.no-js .case__scene:first-child { visibility: visible; opacity: 1; transform: none; }
