:root {
  --teal: #164b45;
  --teal-deep: #0d3733;
  --teal-black: #082a27;
  --gold: #e8b35c;
  --gold-soft: #f0c87b;
  --warm-white: #fffdf9;
  --cream: #f8f1e5;
  --sage: #eaf2ef;
  --sage-deep: #c9ddd5;
  --blush: #f4dde2;
  --ink: #102b28;
  --muted: #6c7d79;
  --line: rgba(22, 75, 69, .14);
  --shadow: 0 30px 80px rgba(14, 52, 48, .12);
  --radius-lg: 36px;
  --radius-md: 24px;
  --radius-sm: 14px;
  --font-display: "Playfair Display", Georgia, serif;
  --font-body: "DM Sans", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: auto; background: var(--warm-white); }
body { margin: 0; font-family: var(--font-body); color: var(--ink); background: var(--warm-white); overflow-x: hidden; line-height: 1.55; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
::selection { background: var(--gold); color: var(--teal-deep); }

.skip-link { position: fixed; left: 1rem; top: 1rem; z-index: 9999; padding: .8rem 1rem; background: white; color: var(--teal); transform: translateY(-200%); transition: .2s; border-radius: 10px; }
.skip-link:focus { transform: translateY(0); }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); }

.noise { position: fixed; inset: 0; z-index: 999; opacity: .035; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E"); }
#particle-canvas { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 4; pointer-events: none; opacity: .55; }

.page-loader { position: fixed; inset: 0; background: var(--teal-deep); z-index: 10000; display: grid; place-items: center; align-content: center; gap: 1rem; color: var(--cream); }
.loader-mark { width: 82px; height: 54px; position: relative; }
.loader-mark span { position: absolute; width: 36px; height: 36px; border: 2px solid var(--gold); border-radius: 50% 50% 50% 0; transform: rotate(-45deg); left: 22px; top: 10px; transform-origin: 50% 100%; }
.loader-mark span:nth-child(1) { transform: translateX(-18px) rotate(-58deg); }
.loader-mark span:nth-child(2) { transform: rotate(-45deg); }
.loader-mark span:nth-child(3) { transform: translateX(18px) rotate(-32deg); }
.loader-copy { font-size: .8rem; letter-spacing: .45em; font-weight: 700; }

.cursor, .cursor-orbit { position: fixed; z-index: 10001; pointer-events: none; mix-blend-mode: difference; border-radius: 50%; transform: translate(-50%, -50%); }
.cursor { width: 8px; height: 8px; background: white; }
.cursor-orbit { width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.7); transition: width .25s ease, height .25s ease, opacity .2s; }
.cursor-orbit.is-hover { width: 68px; height: 68px; }

.site-header { position: fixed; z-index: 1000; top: 16px; left: 50%; transform: translateX(-50%); width: min(1180px, calc(100vw - 32px)); padding: 10px 12px 10px 14px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 24px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; background: rgba(8,42,39,.5); backdrop-filter: blur(22px) saturate(130%); color: white; box-shadow: 0 10px 45px rgba(0,0,0,.08); transition: background .35s, color .35s, border-color .35s, transform .35s; }
.site-header.is-light { background: rgba(255,253,249,.8); color: var(--teal-deep); border-color: rgba(22,75,69,.12); box-shadow: 0 12px 45px rgba(18,60,56,.08); }
.brand { display: flex; align-items: center; gap: 10px; min-width: 198px; }
.brand img { width: 44px; height: 44px; object-fit: cover; object-position: 50% 53%; border-radius: 50%; filter: saturate(.85) contrast(1.08); }
.brand-copy { display: grid; line-height: 1.08; }
.brand-copy strong { font-family: var(--font-display); font-size: 1.05rem; letter-spacing: .06em; }
.brand-copy small { font-size: .61rem; opacity: .72; max-width: 110px; }
.site-nav { display: flex; justify-content: center; align-items: center; gap: clamp(12px, 1.4vw, 24px); font-size: .78rem; }
.site-nav a { position: relative; opacity: .84; }
.site-nav a::after { content: ""; position: absolute; width: 0; height: 1px; left: 0; bottom: -5px; background: currentColor; transition: .3s; }
.site-nav a:hover::after, .site-nav a:focus-visible::after { width: 100%; }
.menu-toggle { display: none; background: transparent; border: 0; width: 46px; height: 46px; padding: 12px; }
.menu-toggle span:not(.sr-only) { display: block; height: 1px; background: currentColor; margin: 7px 0; transition: .3s; }

.pill-button, .primary-button, .ghost-button { display: inline-flex; align-items: center; justify-content: center; gap: 18px; border-radius: 999px; padding: 14px 20px; font-weight: 600; font-size: .88rem; position: relative; overflow: hidden; isolation: isolate; border: 1px solid transparent; }
.pill-button { background: var(--gold); color: var(--teal-deep); min-height: 48px; }
.primary-button { background: var(--teal); color: white; min-height: 54px; }
.primary-button::before, .pill-button::before { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, transparent 20%, rgba(255,255,255,.24), transparent 80%); transform: translateX(-110%); transition: .7s ease; z-index: -1; }
.primary-button:hover::before, .pill-button:hover::before { transform: translateX(110%); }
.ghost-button { border-color: currentColor; color: inherit; background: rgba(255,255,255,.05); min-height: 54px; }
.text-button { background: none; border: 0; padding: 0; color: var(--teal); font-weight: 650; text-decoration: underline; text-underline-offset: 5px; cursor: pointer; }

section { position: relative; z-index: 5; overflow: clip; }
.section-shell { width: min(1180px, calc(100vw - 40px)); margin: 0 auto; position: relative; z-index: 5; }
.section-dark { background: var(--teal-deep); color: white; }
.section-cream { background: var(--warm-white); }
.section-warm { background: var(--cream); }
.section-sage { background: var(--sage); }
.section-gold { background: var(--gold); color: var(--teal-deep); }
.eyebrow { text-transform: uppercase; letter-spacing: .18em; font-size: .75rem; font-weight: 700; margin: 0 0 18px; opacity: .7; }
.display-title { font-family: var(--font-display); font-size: clamp(3rem, 6vw, 6.6rem); font-weight: 500; letter-spacing: -.045em; line-height: .98; margin: 0; text-wrap: balance; }
.display-title em { font-weight: 500; color: var(--gold); }
.body-large { font-size: clamp(1.08rem, 1.55vw, 1.38rem); color: var(--muted); max-width: 720px; }
.section-dark .body-large { color: rgba(255,255,255,.7); }
.section-heading { margin-bottom: 70px; }
.split-heading { display: grid; grid-template-columns: 1.3fr .7fr; gap: 80px; align-items: end; }

.hero { min-height: 100svh; display: grid; align-items: center; padding: 150px 0 90px; background: radial-gradient(circle at 72% 42%, #275f55 0, var(--teal-deep) 40%, #072925 100%); }
.hero-shell { width: min(1180px, calc(100vw - 40px)); margin: auto; position: relative; z-index: 8; }
.hero-kicker { letter-spacing: .18em; text-transform: uppercase; font-size: .74rem; opacity: .7; margin-bottom: 26px; }
.hero-title { font-family: var(--font-display); font-size: clamp(4rem, 9.4vw, 10.3rem); line-height: .75; letter-spacing: -.068em; margin: 0; max-width: 1040px; position: relative; }
.hero-word { display: block; transform-origin: left center; will-change: transform, opacity; }
.hero-exhale { color: var(--gold); font-style: italic; margin-top: .12em; letter-spacing: -.05em; }
.hero-lead { max-width: 670px; margin: 34px 0 0; font-size: clamp(1.05rem, 1.7vw, 1.45rem); line-height: 1.45; color: rgba(255,255,255,.78); }
.hero-actions { display: flex; gap: 12px; margin-top: 34px; }
.hero-meta { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 46px; font-size: .78rem; opacity: .65; }
.hero-meta span { position: relative; }
.hero-meta span:not(:last-child)::after { content: "·"; position: absolute; right: -14px; }
.hero-mesh { position: absolute; inset: -20%; opacity: .9; background: radial-gradient(circle at 20% 25%, rgba(232,179,92,.14), transparent 32%), radial-gradient(circle at 70% 25%, rgba(125,180,164,.19), transparent 28%), radial-gradient(circle at 55% 80%, rgba(244,221,226,.08), transparent 32%); filter: blur(18px); animation: meshFlow 14s ease-in-out infinite alternate; }
@keyframes meshFlow { to { transform: translate3d(5%, -3%, 0) scale(1.08) rotate(3deg); } }
.hero-cloud { position: absolute; border-radius: 50%; filter: blur(55px); opacity: .14; background: white; }
.cloud-one { width: 46vw; height: 20vw; right: -8vw; top: 12vh; animation: cloudDrift 18s ease-in-out infinite alternate; }
.cloud-two { width: 34vw; height: 13vw; left: -10vw; bottom: 12vh; animation: cloudDrift 22s ease-in-out infinite alternate-reverse; }
@keyframes cloudDrift { to { transform: translate3d(9vw, 4vh, 0) scale(1.18); } }
.hero-glow { position: absolute; width: 52vw; height: 52vw; right: -18vw; top: 18vh; background: radial-gradient(circle, rgba(232,179,92,.17), transparent 64%); filter: blur(10px); }
.hero-orbit { position: absolute; right: -130px; bottom: -170px; width: 540px; height: 540px; z-index: 6; opacity: .42; }
.orbit-ring { position: absolute; inset: 0; border: 1px solid rgba(232,179,92,.32); border-radius: 50%; }
.ring-b { inset: 70px; border-color: rgba(255,255,255,.13); }
.orbit-label { position: absolute; left: 50%; top: 8%; letter-spacing: .28em; font-size: .68rem; transform: translateX(-50%); color: var(--gold-soft); }
.scroll-cue { position: absolute; z-index: 8; right: 4vw; bottom: 40px; display: flex; align-items: center; gap: 16px; transform: rotate(90deg) translateX(40%); transform-origin: right center; font-size: .68rem; letter-spacing: .15em; text-transform: uppercase; opacity: .6; }
.scroll-line { width: 72px; height: 1px; background: rgba(255,255,255,.5); position: relative; overflow: hidden; }
.scroll-line::after { content: ""; position: absolute; inset: 0; background: white; transform: translateX(-100%); animation: scrollPulse 2s infinite; }
@keyframes scrollPulse { 0% { transform: translateX(-100%); } 55%,100% { transform: translateX(100%); } }

.breathing { min-height: 100svh; padding: 140px 0; display: grid; align-items: center; }
.breathing::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 78% 48%, rgba(232,179,92,.12), transparent 32%), linear-gradient(135deg, transparent 0 58%, rgba(201,221,213,.2) 58% 100%); }
.breathing-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 80px; }
.breathing-copy .display-title { font-size: clamp(3.3rem, 5.7vw, 6rem); }
.breathing-copy .body-large { margin: 30px 0; }
.breathing-controls { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.breath-status { margin-top: 28px; display: flex; align-items: baseline; gap: 8px; color: var(--muted); font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; }
.breath-status strong { font-family: var(--font-display); color: var(--teal); font-size: 2rem; font-weight: 500; letter-spacing: 0; }
.breath-visual-wrap { min-height: 650px; display: grid; place-items: center; position: relative; }
.breath-circle { width: clamp(240px, 30vw, 410px); aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center; position: relative; background: radial-gradient(circle at 35% 28%, rgba(255,255,255,.9), rgba(234,242,239,.75) 42%, rgba(201,221,213,.62) 76%, rgba(22,75,69,.08)); box-shadow: 0 0 0 1px rgba(22,75,69,.08), 0 40px 120px rgba(22,75,69,.16), inset 0 0 60px rgba(255,255,255,.9); transform: scale(.9); }
.breath-command { position: relative; z-index: 2; font-size: .78rem; letter-spacing: .28em; font-weight: 700; color: var(--teal); }
.lottie-breath { position: absolute; width: 74%; height: 74%; opacity: .72; }
.breath-halo { position: absolute; width: 58%; aspect-ratio: 1; border-radius: 50%; border: 1px solid rgba(232,179,92,.25); }
.halo-2 { width: 76%; border-color: rgba(22,75,69,.09); }
.breath-caption { position: absolute; bottom: 32px; max-width: 470px; text-align: center; color: var(--muted); font-size: .85rem; }

.story { padding: 160px 0; }
.story-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 110px; align-items: start; }
.story-sticky { position: sticky; top: 160px; }
.story-sticky .display-title { font-size: clamp(3rem, 5vw, 5.5rem); }
.story-intro { font-family: var(--font-display); font-style: italic; font-size: 1.7rem; color: var(--teal); margin-top: 30px; }
.story-flow { display: grid; gap: 38px; }
.story-chapter { min-height: 420px; padding: 45px; border-radius: var(--radius-lg); background: rgba(255,255,255,.72); border: 1px solid rgba(22,75,69,.08); box-shadow: var(--shadow); display: flex; flex-direction: column; justify-content: flex-end; position: relative; overflow: hidden; }
.story-chapter::before { content: attr(data-year); position: absolute; top: 20px; right: 25px; font-family: var(--font-display); font-size: 7rem; color: rgba(22,75,69,.055); line-height: 1; }
.chapter-index { position: absolute; top: 28px; left: 30px; width: 40px; height: 40px; border: 1px solid rgba(22,75,69,.15); display: grid; place-items: center; border-radius: 50%; font-size: .72rem; }
.story-chapter h3 { font-family: var(--font-display); font-size: 2.4rem; line-height: 1.05; margin: 0 0 18px; font-weight: 500; max-width: 560px; }
.story-chapter p { color: var(--muted); font-size: 1.04rem; margin: 0; max-width: 650px; }

.impact { padding: 150px 0 130px; }
.impact-aurora { position: absolute; inset: 0; background: radial-gradient(circle at 20% 40%, rgba(232,179,92,.14), transparent 28%), radial-gradient(circle at 75% 65%, rgba(166,205,191,.13), transparent 33%); }
.impact-heading { max-width: 850px; }
.impact-heading .display-title { font-size: clamp(3.6rem, 6.4vw, 6.8rem); }
.impact-track { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.15); border-left: 1px solid rgba(255,255,255,.15); }
.impact-stat { min-height: 270px; padding: 34px; border-right: 1px solid rgba(255,255,255,.15); border-bottom: 1px solid rgba(255,255,255,.15); display: flex; flex-direction: column; justify-content: space-between; }
.impact-number { font-family: var(--font-display); color: var(--gold); font-size: clamp(4rem, 7vw, 7.6rem); line-height: .9; letter-spacing: -.06em; }
.impact-stat p { max-width: 260px; color: rgba(255,255,255,.72); margin: 0; }
.impact-closing { font-family: var(--font-display); font-style: italic; font-size: clamp(2rem, 4vw, 4rem); text-align: right; margin: 70px 0 0; color: var(--gold-soft); }

.pillars { padding: 150px 0; }
.pillar-stack { display: grid; gap: 26px; }
.pillar-world { min-height: 610px; padding: 52px; border-radius: 42px; position: relative; overflow: hidden; display: grid; grid-template-columns: 90px 1fr .9fr; gap: 20px; align-items: center; isolation: isolate; box-shadow: var(--shadow); }
.pillar-world::before { content: ""; position: absolute; inset: 0; background: linear-gradient(115deg, rgba(255,255,255,.72), rgba(255,255,255,.15)); z-index: -2; }
.pillar-mental { background: linear-gradient(135deg, #0e4943, #103a36); color: white; }
.pillar-mentor { background: linear-gradient(135deg, #f7ead6, #f4dde2); }
.pillar-capacity { background: linear-gradient(135deg, #e8f1ed, #cfe0d9); }
.pillar-number { align-self: start; font-size: .82rem; letter-spacing: .18em; opacity: .62; }
.pillar-copy { max-width: 670px; z-index: 2; }
.pillar-copy h3 { font-family: var(--font-display); font-size: clamp(3rem, 5.8vw, 6rem); line-height: .95; letter-spacing: -.04em; font-weight: 500; margin: 0 0 26px; }
.pillar-copy h3 em { color: var(--gold); font-weight: 500; }
.pillar-copy > p { font-size: 1.05rem; max-width: 590px; opacity: .8; }
.pill-list { display: flex; flex-wrap: wrap; gap: 9px; padding: 0; margin: 28px 0 0; list-style: none; }
.pill-list li { border: 1px solid currentColor; border-color: color-mix(in srgb, currentColor 16%, transparent); border-radius: 999px; padding: 8px 13px; font-size: .75rem; opacity: .76; backdrop-filter: blur(8px); }
.pillar-art { min-height: 430px; position: relative; display: grid; place-items: center; }
.fluid-orb { width: 290px; aspect-ratio: 1; border-radius: 44% 56% 62% 38% / 46% 35% 65% 54%; background: radial-gradient(circle at 32% 27%, rgba(255,255,255,.38), rgba(232,179,92,.34) 30%, rgba(255,255,255,.03) 70%); box-shadow: 0 0 90px rgba(232,179,92,.22); animation: blobMorph 8s ease-in-out infinite alternate; }
@keyframes blobMorph { 100% { border-radius: 58% 42% 39% 61% / 35% 62% 38% 65%; transform: rotate(18deg) scale(1.06); } }
.mini-orbit { position: absolute; width: 360px; aspect-ratio: 1; border: 1px solid rgba(232,179,92,.25); border-radius: 50%; }
.mentor-art svg { width: 90%; height: 90%; overflow: visible; }
.mentor-art path { fill: none; stroke: rgba(22,75,69,.24); stroke-width: 2; stroke-dasharray: 8 8; }
.connection-node { width: 80px; aspect-ratio: 1; border-radius: 50%; background: rgba(255,255,255,.55); box-shadow: 0 20px 50px rgba(22,75,69,.12); position: absolute; z-index: 2; border: 1px solid rgba(22,75,69,.1); }
.node-1 { left: 10%; bottom: 18%; }.node-2 { left: 44%; top: 39%; width: 110px; }.node-3 { right: 7%; top: 10%; width: 65px; }
.capacity-grid { width: 330px; height: 330px; border-radius: 26px; background-image: linear-gradient(rgba(22,75,69,.1) 1px, transparent 1px), linear-gradient(90deg, rgba(22,75,69,.1) 1px, transparent 1px); background-size: 40px 40px; transform: perspective(600px) rotateX(58deg) rotateZ(-22deg); }
.capacity-pulse { position: absolute; width: 120px; aspect-ratio: 1; border-radius: 50%; border: 1px solid var(--gold); box-shadow: 0 0 0 22px rgba(232,179,92,.09), 0 0 0 50px rgba(232,179,92,.04); }

.exhale-model { padding: 150px 0 0; }
.model-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; align-items: center; min-height: 760px; }
.model-intro .display-title { font-size: clamp(3.6rem, 6.5vw, 7rem); }
.model-mantra { font-family: var(--font-display); font-style: italic; font-size: 1.7rem; color: var(--teal); margin: 30px 0; }
.model-intro > p:last-child { color: var(--muted); max-width: 560px; font-size: 1.05rem; }
.model-wheel { width: min(640px, 48vw); aspect-ratio: 1; margin: auto; position: relative; border: 1px solid rgba(22,75,69,.12); border-radius: 50%; }
.model-wheel::before, .model-wheel::after { content: ""; position: absolute; border-radius: 50%; border: 1px dashed rgba(22,75,69,.12); }
.model-wheel::before { inset: 12%; }.model-wheel::after { inset: 28%; }
.wheel-core { position: absolute; inset: 36%; display: grid; place-items: center; border-radius: 50%; background: var(--teal); color: white; box-shadow: 0 25px 60px rgba(22,75,69,.2); z-index: 2; }
.wheel-core span { letter-spacing: .18em; font-size: .75rem; }
.wheel-item { position: absolute; width: 120px; aspect-ratio: 1; border-radius: 50%; background: rgba(255,255,255,.72); backdrop-filter: blur(12px); border: 1px solid rgba(22,75,69,.09); display: grid; place-items: center; align-content: center; gap: 4px; box-shadow: 0 16px 42px rgba(22,75,69,.08); }
.wheel-item b { font-size: .66rem; letter-spacing: .12em; color: var(--gold); }.wheel-item span { font-family: var(--font-display); font-size: 1.16rem; }
.wi-1 { left: 50%; top: -5%; transform: translateX(-50%); }.wi-2 { right: 4%; top: 18%; }.wi-3 { right: 6%; bottom: 12%; }.wi-4 { left: 50%; bottom: -5%; transform: translateX(-50%); }.wi-5 { left: 4%; bottom: 12%; }.wi-6 { left: 4%; top: 18%; }
.marquee { overflow: hidden; white-space: nowrap; }
.marquee-track { width: max-content; display: flex; align-items: center; gap: 28px; padding: 26px 0; animation: marquee 28s linear infinite; }
.marquee-track span { font-family: var(--font-display); font-size: 1.45rem; }
.marquee-track i { color: var(--gold); font-style: normal; }
@keyframes marquee { to { transform: translateX(-50%); } }

.circle-feature { padding: 150px 0; }
.circle-card { min-height: 680px; border-radius: 42px; background: var(--teal-deep); color: white; overflow: hidden; display: grid; grid-template-columns: 1fr 1fr; box-shadow: var(--shadow); }
.circle-copy { padding: 60px; align-self: center; }
.circle-copy .display-title { font-size: clamp(3.2rem, 5vw, 5.2rem); }
.circle-copy > p:not(.eyebrow) { color: rgba(255,255,255,.72); max-width: 560px; font-size: 1.03rem; }
.circle-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 40px; border-top: 1px solid rgba(255,255,255,.15); padding-top: 26px; }
.circle-facts strong { display: block; font-family: var(--font-display); font-size: 2.8rem; color: var(--gold); font-weight: 500; }.circle-facts span { font-size: .7rem; opacity: .7; }
.circle-visual { min-height: 640px; background: radial-gradient(circle at 60% 25%, rgba(232,179,92,.24), transparent 26%), linear-gradient(160deg, #2b665c, #0d3733); position: relative; overflow: hidden; }
.portrait-silhouette { position: absolute; width: 68%; height: 82%; left: 18%; bottom: -5%; border-radius: 50% 50% 36% 36%; background: radial-gradient(circle at 50% 22%, #d9b68b 0 11%, transparent 11.5%), radial-gradient(ellipse at 50% 24%, #1b191a 0 17%, transparent 17.5%), radial-gradient(ellipse at 50% 75%, #f5e7d7 0 42%, transparent 42.5%); opacity: .96; filter: saturate(.7); }
.circle-quote { position: absolute; right: 7%; top: 12%; width: 220px; font-family: var(--font-display); font-style: italic; font-size: 1.55rem; color: var(--gold-soft); transform: rotate(-6deg); }
.circle-benefits { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 30px; }
.circle-benefits span { padding: 10px 18px; border: 1px solid rgba(22,75,69,.13); border-radius: 999px; background: rgba(255,255,255,.62); }

.community { padding: 150px 0; }
.community-carousel { overflow: hidden; }
.carousel-track { display: flex; gap: 18px; will-change: transform; }
.community-slide { flex: 0 0 min(58vw, 680px); min-height: 440px; padding: 44px; border-radius: var(--radius-lg); background: linear-gradient(135deg, rgba(234,242,239,.95), rgba(248,241,229,.9)); border: 1px solid rgba(22,75,69,.08); display: flex; flex-direction: column; justify-content: flex-end; position: relative; overflow: hidden; }
.community-slide:nth-child(even) { background: linear-gradient(135deg, rgba(244,221,226,.82), rgba(255,253,249,.95)); }
.community-slide::before { content: ""; width: 180px; height: 180px; position: absolute; top: -30px; right: -20px; border: 1px solid rgba(22,75,69,.12); border-radius: 50%; box-shadow: 0 0 0 30px rgba(22,75,69,.03), 0 0 0 60px rgba(22,75,69,.02); }
.slide-kicker { font-size: .72rem; text-transform: uppercase; letter-spacing: .18em; color: var(--teal); font-weight: 700; }.community-slide h3 { font-family: var(--font-display); font-size: 3rem; line-height: 1; font-weight: 500; margin: 18px 0; max-width: 520px; }.community-slide p { color: var(--muted); max-width: 540px; }
.carousel-controls { margin-top: 28px; display: flex; align-items: center; gap: 16px; }
.carousel-button { width: 48px; height: 48px; border-radius: 50%; background: transparent; border: 1px solid var(--line); cursor: pointer; }
.carousel-progress { height: 1px; background: var(--line); flex: 1; position: relative; overflow: hidden; }.carousel-progress span { position: absolute; inset: 0 auto 0 0; width: 20%; background: var(--teal); transform-origin: left; }

.conference { padding: 150px 0; min-height: 100svh; }
.conference-spotlight { position: absolute; width: 70vw; height: 70vw; border-radius: 50%; left: 50%; top: 50%; transform: translate(-50%, -50%); background: radial-gradient(circle, rgba(232,179,92,.18), transparent 62%); filter: blur(15px); }
.conference-intro { max-width: 900px; }
.conference-intro .display-title { font-size: clamp(3.4rem, 6.5vw, 7rem); }.conference-intro > p:last-child { color: rgba(255,255,255,.68); max-width: 650px; }
.conference-years { margin-top: 90px; display: grid; grid-template-columns: repeat(9, 1fr); position: relative; }
.conference-years::before { content: ""; position: absolute; left: 4%; right: 4%; top: 50%; height: 1px; background: linear-gradient(90deg, rgba(255,255,255,.08), var(--gold), rgba(255,255,255,.08)); }
.year-node { aspect-ratio: 1; display: grid; place-items: center; align-content: center; gap: 3px; border-radius: 50%; border: 1px solid rgba(255,255,255,.16); background: rgba(8,42,39,.88); position: relative; z-index: 2; transform: scale(.72); }
.year-node span { font-size: .65rem; opacity: .65; }.year-node strong { font-family: var(--font-display); font-size: 1.4rem; font-weight: 500; color: var(--gold-soft); }
.year-node.active { background: var(--gold); color: var(--teal-deep); transform: scale(.9); border-color: transparent; }.year-node.active strong { color: inherit; }
.decade-reveal { margin: 100px 0 0 auto; max-width: 720px; text-align: right; position: relative; }
.decade-label { text-transform: uppercase; letter-spacing: .2em; font-size: .72rem; opacity: .55; }.decade-year { font-family: var(--font-display); font-size: clamp(7rem, 16vw, 14rem); line-height: .72; color: var(--gold); letter-spacing: -.08em; }.decade-reveal h3 { font-size: clamp(2rem, 4vw, 4rem); letter-spacing: .12em; margin: 30px 0 5px; }.decade-reveal p { letter-spacing: .4em; color: rgba(255,255,255,.62); }.decade-line { width: 80%; height: 1px; margin: 34px 0 0 auto; background: linear-gradient(90deg, transparent, var(--gold)); }

.consultancy { padding: 150px 0; }
.consultancy-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 110px; align-items: start; }
.consultancy-intro { position: sticky; top: 150px; }.consultancy-intro .display-title { font-size: clamp(3.4rem, 5.7vw, 6rem); }.consultancy-statement { margin-top: 35px; display: grid; gap: 4px; font-family: var(--font-display); font-style: italic; font-size: 1.45rem; color: var(--teal); }
.service-accordion { border-top: 1px solid var(--line); }
.service-item { border-bottom: 1px solid var(--line); }
.service-item button { width: 100%; border: 0; background: transparent; min-height: 105px; display: grid; grid-template-columns: 45px 1fr 30px; text-align: left; align-items: center; gap: 16px; cursor: pointer; }.service-item button span { font-size: .75rem; color: var(--gold); }.service-item button strong { font-family: var(--font-display); font-size: 2rem; font-weight: 500; }.service-item button i { font-style: normal; font-size: 1.5rem; transition: .35s; }.service-item.is-open button i { transform: rotate(45deg); }
.service-panel { height: 0; overflow: hidden; }.service-panel p { color: var(--muted); margin: 0; padding: 0 40px 32px 60px; }
.consultancy-cta { margin-top: 100px; padding: 40px 46px; border-radius: var(--radius-lg); background: var(--sage); display: flex; justify-content: space-between; align-items: center; gap: 40px; }.consultancy-cta h3 { font-family: var(--font-display); font-size: 2.3rem; font-weight: 500; margin: 8px 0 0; max-width: 680px; }

.partner { padding: 150px 0 0; }
.partner-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; align-items: center; }
.partner-layout .display-title { font-size: clamp(4rem, 7vw, 7.7rem); }.partner-layout .body-large { color: rgba(13,55,51,.72); }
.partner-options { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; }.partner-chip { padding: 18px 22px; border: 1px solid rgba(13,55,51,.22); border-radius: 999px; background: rgba(255,255,255,.22); backdrop-filter: blur(12px); transition: .3s; }.partner-chip:hover { transform: translateY(-5px); background: rgba(255,255,255,.45); }
.partner-marquee { margin-top: 110px; border-top: 1px solid rgba(13,55,51,.15); }.marquee-track.huge span { font-size: clamp(5rem, 12vw, 12rem); line-height: .9; letter-spacing: -.04em; }.marquee-track.huge i { color: var(--teal-deep); }

.stories { padding: 150px 0; }
.story-cards { display: flex; gap: 18px; overflow: hidden; }
.reflection-card { flex: 0 0 min(72vw, 560px); min-height: 450px; border-radius: var(--radius-lg); padding: 40px; background: rgba(255,255,255,.7); border: 1px solid rgba(22,75,69,.08); display: flex; flex-direction: column; justify-content: space-between; }.reflection-card span { font-size: .72rem; text-transform: uppercase; letter-spacing: .16em; color: var(--gold); font-weight: 700; }.reflection-card blockquote { font-family: var(--font-display); font-size: 2.4rem; line-height: 1.12; margin: 0; }.reflection-card small { color: var(--muted); }

.gallery { padding: 150px 0; }
.gallery-heading { max-width: 800px; }.gallery-grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 190px; gap: 14px; }.gallery-tile { grid-column: span 4; grid-row: span 2; border-radius: 24px; overflow: hidden; position: relative; background: #123f3a; }.gallery-tile.tall { grid-row: span 3; }.gallery-tile.wide { grid-column: span 8; }.gallery-art { position: absolute; inset: 0; transition: transform .7s cubic-bezier(.2,.7,.2,1), filter .7s; }.gallery-tile:hover .gallery-art { transform: scale(1.06); filter: saturate(1.15); }.gallery-tile span { position: absolute; left: 20px; bottom: 18px; z-index: 2; font-family: var(--font-display); font-size: 1.3rem; }.gallery-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(4,25,23,.78)); }
.ga-1 { background: radial-gradient(circle at 45% 25%, #e3c29e 0 9%, transparent 9.5%), radial-gradient(ellipse at 50% 80%, #f5e8da 0 36%, transparent 36.5%), linear-gradient(135deg, #4a7e72, #163e39); }.ga-2 { background: radial-gradient(circle at 30% 45%, #e8b35c 0 6%, transparent 6.5%), radial-gradient(circle at 58% 43%, #f2d5b2 0 7%, transparent 7.5%), radial-gradient(circle at 72% 52%, #d6a988 0 6%, transparent 6.5%), linear-gradient(135deg, #9bb6ad, #345f57); }.ga-3 { background: linear-gradient(120deg, rgba(232,179,92,.38), transparent 30%), repeating-linear-gradient(115deg, rgba(255,255,255,.09) 0 2px, transparent 2px 18px), linear-gradient(135deg, #632f45, #1c4b46); }.ga-4 { background: radial-gradient(circle at 40% 38%, #d8ac86 0 7%, transparent 7.5%), radial-gradient(circle at 58% 45%, #aa765c 0 8%, transparent 8.5%), linear-gradient(135deg, #f1d9d8, #6f887f); }.ga-5 { background: linear-gradient(135deg, #d8c8a8, #f1dfc2 45%, #487168); }
.gallery-note { margin-top: 24px; color: rgba(255,255,255,.48); font-size: .82rem; }

.journal { padding: 150px 0; }.journal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }.journal-card { min-height: 390px; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 34px; display: flex; flex-direction: column; align-items: flex-start; background: linear-gradient(145deg, rgba(255,255,255,.9), rgba(234,242,239,.46)); transition: transform .35s, box-shadow .35s; }.journal-card:hover { transform: translateY(-8px); box-shadow: var(--shadow); }.journal-card span { color: var(--gold); text-transform: uppercase; letter-spacing: .17em; font-size: .7rem; font-weight: 700; }.journal-card h3 { font-family: var(--font-display); font-size: 2.45rem; line-height: 1; font-weight: 500; margin: 50px 0 18px; }.journal-card p { color: var(--muted); }.journal-card a { margin-top: auto; font-weight: 700; font-size: .83rem; }

.contact { padding: 160px 0 120px; }.contact-glow { position: absolute; width: 70vw; height: 70vw; right: -20vw; top: -15vw; border-radius: 50%; background: radial-gradient(circle, rgba(232,179,92,.16), transparent 60%); }.contact-layout { display: grid; grid-template-columns: 1.35fr .65fr; gap: 100px; }.contact-main .display-title { font-size: clamp(3.5rem, 6.7vw, 7.4rem); }.contact-main > p:not(.eyebrow) { font-size: 1.1rem; color: rgba(255,255,255,.65); }.contact-actions { margin-top: 40px; display: flex; gap: 12px; flex-wrap: wrap; }.contact-details { border-left: 1px solid rgba(255,255,255,.15); padding-left: 38px; display: grid; align-content: end; gap: 28px; }.contact-details div { display: grid; gap: 4px; }.contact-details span { text-transform: uppercase; letter-spacing: .15em; font-size: .68rem; opacity: .48; }.contact-details a, .contact-details p { margin: 0; color: rgba(255,255,255,.84); }

.site-footer { background: #061f1d; color: white; min-height: 260px; padding: 48px max(20px, calc((100vw - 1180px)/2)); display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 30px; border-top: 1px solid rgba(255,255,255,.08); }.footer-logo-wrap { width: 74px; height: 74px; border-radius: 50%; overflow: hidden; }.footer-logo-wrap img { width: 100%; height: 100%; object-fit: cover; }.site-footer p { font-family: var(--font-display); font-size: 1.5rem; }.footer-links { display: flex; gap: 18px; font-size: .78rem; }.site-footer small { grid-column: 1 / -1; opacity: .44; font-size: .68rem; letter-spacing: .08em; }

@media (max-width: 1080px) {
  .site-nav { display: none; }
  .site-header { grid-template-columns: auto 1fr auto auto; }
  .menu-toggle { display: block; justify-self: end; }
  .site-nav.is-open { display: flex; position: fixed; top: 78px; left: 0; width: 100%; min-height: calc(100svh - 88px); background: rgba(8,42,39,.97); color: white; flex-direction: column; align-items: flex-start; justify-content: center; padding: 40px; border-radius: 28px; font-size: clamp(1.8rem, 7vw, 4rem); font-family: var(--font-display); gap: 12px; }
  .site-header.is-light .site-nav.is-open { background: rgba(255,253,249,.98); color: var(--teal-deep); }
  .split-heading, .story-layout, .breathing-grid, .model-layout, .partner-layout, .consultancy-layout, .contact-layout { grid-template-columns: 1fr; gap: 55px; }
  .story-sticky, .consultancy-intro { position: static; }
  .impact-track { grid-template-columns: repeat(2, 1fr); }
  .pillar-world { grid-template-columns: 60px 1fr; }
  .pillar-art { grid-column: 2; min-height: 300px; }
  .model-wheel { width: min(640px, 82vw); }
  .circle-card { grid-template-columns: 1fr; }
  .circle-visual { min-height: 560px; }
  .conference-years { grid-template-columns: repeat(5, 1fr); gap: 10px; }.conference-years::before { display: none; }
  .journal-grid { grid-template-columns: 1fr 1fr; }
  .contact-details { border-left: 0; padding-left: 0; border-top: 1px solid rgba(255,255,255,.14); padding-top: 36px; }
}

@media (max-width: 760px) {
  .cursor, .cursor-orbit { display: none; }
  #particle-canvas { opacity: .32; }
  .site-header { top: 8px; width: calc(100vw - 16px); padding: 8px 9px 8px 11px; gap: 8px; }
  .brand { min-width: auto; }.brand-copy small { display: none; }.brand img { width: 38px; height: 38px; }.header-cta { display: none; }
  .hero { padding-top: 125px; }.hero-title { font-size: clamp(4rem, 19vw, 7.6rem); line-height: .78; }.hero-lead { margin-top: 30px; }.hero-actions { flex-direction: column; align-items: stretch; max-width: 340px; }.hero-meta { flex-direction: column; gap: 8px; }.hero-meta span::after { display: none; }.hero-orbit { width: 350px; height: 350px; right: -180px; bottom: -80px; }.scroll-cue { display: none; }
  .section-shell { width: min(100% - 28px, 1180px); }.display-title { font-size: clamp(2.8rem, 13vw, 4.8rem); }.section-heading { margin-bottom: 42px; }.split-heading { gap: 26px; }
  .breathing, .story, .impact, .pillars, .circle-feature, .community, .conference, .consultancy, .stories, .gallery, .journal, .contact { padding: 100px 0; }.breathing-grid { gap: 40px; }.breath-visual-wrap { min-height: 470px; }.breath-caption { position: static; margin-top: 22px; }
  .story-chapter { min-height: 360px; padding: 30px; }.story-chapter h3 { font-size: 2rem; }.story-chapter::before { font-size: 5rem; }
  .impact-track { grid-template-columns: 1fr; }.impact-stat { min-height: 210px; }.impact-closing { text-align: left; }
  .pillar-world { min-height: auto; padding: 30px 22px; border-radius: 28px; grid-template-columns: 1fr; }.pillar-number { margin-bottom: 20px; }.pillar-copy h3 { font-size: clamp(3rem, 13vw, 4.6rem); }.pillar-art { grid-column: 1; min-height: 300px; }.fluid-orb { width: 220px; }.mini-orbit { width: 270px; }.capacity-grid { width: 240px; height: 240px; }
  .exhale-model { padding-top: 100px; }.model-layout { min-height: auto; }.model-wheel { width: min(94vw, 520px); margin: 20px auto 40px; }.wheel-item { width: 82px; }.wheel-item span { font-size: .85rem; }.wi-2 { right: -2%; }.wi-3 { right: -2%; }.wi-5 { left: -2%; }.wi-6 { left: -2%; }
  .circle-copy { padding: 34px 28px; }.circle-facts { grid-template-columns: 1fr 1fr; }.circle-visual { min-height: 440px; }.circle-quote { width: 170px; font-size: 1.2rem; }
  .community-slide { flex-basis: 88vw; min-height: 390px; padding: 30px; }.community-slide h3 { font-size: 2.35rem; }
  .conference-years { grid-template-columns: repeat(3, 1fr); }.decade-reveal { text-align: left; margin-top: 70px; }.decade-line { margin-left: 0; }.decade-reveal p { letter-spacing: .2em; }.year-node { transform: scale(.82); }.year-node.active { transform: scale(.9); }
  .service-item button { grid-template-columns: 36px 1fr 25px; min-height: 90px; }.service-item button strong { font-size: 1.55rem; }.service-panel p { padding-left: 52px; }.consultancy-cta { padding: 28px; flex-direction: column; align-items: flex-start; }.consultancy-cta h3 { font-size: 1.9rem; }
  .partner-options { justify-content: flex-start; }.partner-marquee { margin-top: 70px; }
  .story-cards { overflow-x: auto; scrollbar-width: none; }.story-cards::-webkit-scrollbar { display: none; }.reflection-card { flex-basis: 86vw; min-height: 400px; }.reflection-card blockquote { font-size: 2rem; }
  .gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 300px; }.gallery-tile, .gallery-tile.tall, .gallery-tile.wide { grid-column: 1; grid-row: auto; min-height: 300px; }
  .journal-grid { grid-template-columns: 1fr; }.journal-card { min-height: 340px; }
  .contact-actions { flex-direction: column; align-items: stretch; }.site-footer { grid-template-columns: 1fr; text-align: left; }.footer-links { flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  #particle-canvas, .cursor, .cursor-orbit { display: none !important; }
}

/* ========================================================================== 
   ERO PHOTO-FIRST EXPERIENCE — V2
   Real programme photography is treated as documentary evidence, not decoration.
   ========================================================================== */

:root {
  --photo-radius: 30px;
  --hairline-light: rgba(255,255,255,.14);
  --hairline-dark: rgba(22,75,69,.14);
}

.photo-interactive { cursor: zoom-in; }
.photo-interactive:focus-visible { outline: 3px solid var(--gold); outline-offset: 5px; }
.photo-interactive img { user-select: none; -webkit-user-drag: none; }
.photo-tilt { transform-style: preserve-3d; will-change: transform; }
.photo-sheen { position:absolute; inset:0; pointer-events:none; background:linear-gradient(115deg, transparent 25%, rgba(255,255,255,.14) 44%, transparent 63%); transform:translateX(-130%); transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.photo-tilt:hover .photo-sheen { transform:translateX(130%); }

.cursor-orbit { display:grid; place-items:center; }
.cursor-orbit span { opacity:0; font-size:.5rem; line-height:1; letter-spacing:.14em; font-weight:800; transition:opacity .2s; }
.cursor-orbit.is-view { width:78px; height:78px; background:rgba(255,255,255,.08); backdrop-filter:blur(5px); }
.cursor-orbit.is-view span { opacity:1; }

.site-header { overflow: visible; }
.page-progress { position:absolute; left:18px; right:18px; bottom:-1px; height:2px; overflow:hidden; border-radius:999px; pointer-events:none; }
.page-progress span { display:block; width:100%; height:100%; transform:scaleX(0); transform-origin:left; background:linear-gradient(90deg,var(--gold),#f6ddb1); }
.site-nav a[aria-current="true"] { opacity:1; }
.site-nav a[aria-current="true"]::after { width:100%; background:var(--gold); }

/* HERO — editorial split with human evidence */
.hero { min-height: 100svh; padding: 132px 0 84px; }
.hero-shell-v2 { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(360px,.72fr); gap:clamp(30px,5vw,86px); align-items:center; }
.hero-copy-v2 { position:relative; z-index:4; min-width:0; }
.hero-shell-v2 .hero-title { font-size:clamp(4.5rem,7.8vw,8.9rem); line-height:.78; max-width:760px; }
.hero-shell-v2 .hero-lead { max-width:610px; }
.hero-photo-stage { position:relative; min-height:min(70vh,720px); z-index:3; perspective:1200px; }
.hero-photo { position:absolute; margin:0; overflow:hidden; border-radius:32px; border:1px solid rgba(255,255,255,.18); box-shadow:0 38px 100px rgba(0,0,0,.28); background:#204f49; }
.hero-photo img { width:100%; height:100%; object-fit:cover; transition:transform 1.1s cubic-bezier(.2,.7,.2,1), filter .8s ease; }
.hero-photo:hover img { transform:scale(1.035); }
.hero-photo-main { inset:2% 5% 6% 12%; transform:rotate(1.6deg); }
.hero-photo-main img { object-position:50% 45%; }
.hero-photo-main::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 50%, rgba(5,29,27,.68)); pointer-events:none; }
.hero-photo-main figcaption { position:absolute; z-index:2; left:22px; right:22px; bottom:20px; display:flex; justify-content:space-between; gap:20px; align-items:end; color:white; }
.hero-photo-main figcaption span { font-family:var(--font-display); font-size:1.4rem; }
.hero-photo-main figcaption small { max-width:120px; text-align:right; opacity:.72; }
.hero-photo-float { width:44%; aspect-ratio:1.23; right:-6%; top:8%; transform:rotate(5deg); z-index:2; border-radius:20px; }
.hero-photo-float img { object-position:center; }
.hero-photo-note { position:absolute; left:-1%; bottom:1%; z-index:4; width:152px; aspect-ratio:1; border-radius:50%; background:var(--gold); color:var(--teal-deep); display:grid; place-content:center; text-align:center; transform:rotate(-8deg); box-shadow:0 18px 50px rgba(0,0,0,.18); }
.hero-photo-note span, .hero-photo-note strong { display:block; text-transform:uppercase; letter-spacing:.12em; font-size:.61rem; }
.hero-photo-note strong { font-family:var(--font-display); font-size:1.15rem; letter-spacing:-.02em; text-transform:none; margin-top:2px; }
.hero-orbit { z-index:2; opacity:.25; }

/* STORY — documentary rail */
.story-documentary { margin-top:110px; padding-top:42px; border-top:1px solid var(--hairline-dark); }
.story-documentary-head { display:grid; grid-template-columns:.38fr 1fr; gap:40px; align-items:start; margin-bottom:26px; }
.story-documentary-head p { max-width:660px; margin:0; color:var(--muted); font-size:1.05rem; }
.story-filmrail { display:grid; grid-template-columns:1.4fr .65fr 1.2fr; gap:16px; align-items:stretch; }
.film-frame { position:relative; margin:0; min-height:420px; border-radius:26px; overflow:hidden; background:#d7e2dc; box-shadow:0 20px 60px rgba(22,75,69,.1); }
.film-frame img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.film-frame:hover img { transform:scale(1.045); }
.film-frame.frame-portrait img { object-position:50% 38%; }
.film-frame::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(6,32,29,.72)); }
.film-frame figcaption { position:absolute; z-index:2; left:20px; bottom:18px; right:20px; color:white; font-family:var(--font-display); font-size:1.25rem; }

/* PILLARS — replace decorative shapes with actual programme imagery */
.pillar-world { overflow:hidden; }
.pillar-art.pillar-photo { min-height:430px; position:relative; margin:0; border-radius:28px; overflow:hidden; box-shadow:0 26px 70px rgba(13,55,51,.16); }
.pillar-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1s cubic-bezier(.2,.7,.2,1); }
.pillar-photo:hover img { transform:scale(1.04); }
.pillar-mental .pillar-photo img { object-position:50% 46%; }
.pillar-mentor .pillar-photo img { object-position:50% 35%; }
.pillar-capacity .pillar-photo img { object-position:52% 37%; }
.pillar-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 50%,rgba(8,42,39,.78)); }
.pillar-photo figcaption { position:absolute; z-index:3; left:18px; right:18px; bottom:17px; color:white; font-size:.72rem; text-transform:uppercase; letter-spacing:.13em; font-weight:700; }

/* FEATURE PROJECT — photo-led editorial story */
.circle-feature { padding:150px 0; }
.circle-editorial { display:grid; grid-template-columns:.83fr 1.17fr; gap:68px; align-items:center; }
.circle-copy { padding:0; background:none; color:inherit; }
.circle-copy .display-title { font-size:clamp(3.4rem,5.4vw,6rem); }
.circle-copy > p:not(.eyebrow) { color:var(--muted); max-width:650px; }
.circle-copy > p + p { margin-top:18px; }
.circle-facts { margin:38px 0 34px; }
.circle-benefits { margin:0; padding:0; justify-content:flex-start; border:0; gap:8px; }
.circle-benefits span { border:1px solid var(--hairline-dark); background:rgba(255,255,255,.6); padding:8px 12px; border-radius:999px; font-size:.73rem; }
.circle-mosaic { position:relative; min-height:730px; }
.circle-shot { position:absolute; margin:0; overflow:hidden; border-radius:28px; box-shadow:0 30px 90px rgba(13,55,51,.16); background:#d8e3de; border:1px solid rgba(255,255,255,.55); }
.circle-shot img { width:100%; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.2,.7,.2,1); }
.circle-shot:hover img { transform:scale(1.035); }
.circle-shot-a { inset:0 8% 16% 0; }
.circle-shot-a img { object-position:50% 46%; }
.circle-shot-b { width:34%; height:49%; right:0; top:4%; transform:rotate(2.8deg); z-index:2; }
.circle-shot-b img { object-position:50% 42%; }
.circle-shot-c { width:39%; height:42%; right:2%; bottom:0; transform:rotate(-2.4deg); z-index:3; }
.circle-shot-c img { object-position:50% 48%; }
.circle-shot::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 62%,rgba(6,35,32,.72)); pointer-events:none; }
.circle-shot figcaption { position:absolute; z-index:3; left:18px; right:18px; bottom:16px; color:#fff; display:grid; }
.circle-shot figcaption span { font-family:var(--font-display); font-size:1.35rem; }
.circle-shot figcaption small { opacity:.7; }
.circle-story-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:86px; }
.circle-story-card { margin:0; min-height:520px; position:relative; overflow:hidden; border-radius:26px; background:var(--teal); }
.circle-story-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.2,.7,.2,1); }
.circle-story-card:nth-child(1) img { object-position:50% 43%; }
.circle-story-card:nth-child(2) img { object-position:50% 50%; }
.circle-story-card:nth-child(3) img { object-position:50% 50%; }
.circle-story-card:hover img { transform:scale(1.045); }
.circle-story-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 38%,rgba(5,31,29,.9)); }
.circle-story-card figcaption { position:absolute; z-index:2; left:24px; right:24px; bottom:22px; color:#fff; display:grid; grid-template-columns:auto 1fr; gap:4px 12px; align-items:center; }
.circle-story-card figcaption strong { grid-row:1/3; font-family:var(--font-display); font-size:3.6rem; font-weight:500; color:var(--gold); line-height:1; }
.circle-story-card figcaption span { font-family:var(--font-display); font-size:1.7rem; }
.circle-story-card figcaption small { opacity:.72; line-height:1.35; }

/* COMMUNITY CAROUSEL — tactile, image-rich */
.community-carousel-v2 { overflow:hidden; }
.community-carousel-v2 .carousel-track { gap:18px; }
.community-carousel-v2 .community-slide { position:relative; flex:0 0 min(830px,74vw); min-height:560px; padding:0; overflow:hidden; isolation:isolate; border-radius:34px; background:var(--teal-deep); color:#fff; }
.community-slide.with-photo > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.community-slide.with-photo:nth-child(2) > img { object-position:50% 46%; }
.community-slide.with-photo:nth-child(3) > img { object-position:50% 52%; }
.community-slide.with-photo:nth-child(4) > img { object-position:50% 46%; }
.community-slide-overlay { position:absolute; inset:0; z-index:-1; background:linear-gradient(100deg,rgba(5,34,31,.94) 0%,rgba(5,34,31,.64) 48%,rgba(5,34,31,.14) 100%); }
.community-slide-copy { position:absolute; left:42px; right:42px; bottom:38px; max-width:590px; }
.community-slide-copy .slide-kicker { color:var(--gold-soft); }
.community-slide-copy h3 { max-width:560px; margin:14px 0 14px; font-size:clamp(2.6rem,4vw,4.8rem); color:#fff; }
.community-slide-copy p { color:rgba(255,255,255,.78); font-size:1.05rem; }
.community-slide-copy small { opacity:.55; text-transform:uppercase; letter-spacing:.12em; }
.community-slide-textual { background:linear-gradient(145deg,#184f49,#0c302d); }
.community-slide-bg { position:absolute; inset:-15%; z-index:-1; background:radial-gradient(circle at 72% 26%,rgba(232,179,92,.4),transparent 25%), radial-gradient(circle at 26% 73%,rgba(201,221,213,.24),transparent 28%); animation:meshFlow 10s ease-in-out infinite alternate; }
.community-slide-bg.alt { background:radial-gradient(circle at 25% 28%,rgba(244,221,226,.22),transparent 25%), radial-gradient(circle at 78% 67%,rgba(232,179,92,.32),transparent 31%); }
.carousel-controls { gap:14px; }
.carousel-counter { margin-left:auto; display:flex; gap:7px; align-items:center; font-size:.72rem; letter-spacing:.12em; color:var(--muted); }
.carousel-counter i { font-style:normal; opacity:.4; }

/* CONSULTANCY — adds credible human context */
.consultancy-photo { margin:44px 0 0; min-height:460px; border-radius:28px; overflow:hidden; position:relative; background:#cbd9d3; box-shadow:var(--shadow); }
.consultancy-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 40%; position:absolute; inset:0; transition:transform .9s cubic-bezier(.2,.7,.2,1); }
.consultancy-photo:hover img { transform:scale(1.035); }
.consultancy-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 52%,rgba(8,42,39,.76)); }
.consultancy-photo figcaption { position:absolute; z-index:2; left:20px; right:20px; bottom:18px; color:#fff; display:grid; }
.consultancy-photo figcaption span { font-family:var(--font-display); font-size:1.35rem; }
.consultancy-photo figcaption small { opacity:.68; }

/* STORIES — editorial cards rather than invented testimonials */
.story-cards-v2 { align-items:stretch; }
.reflection-card.reflection-photo { padding:0; min-height:560px; overflow:hidden; position:relative; flex-basis:min(430px,76vw); background:#fff; border:1px solid var(--hairline-dark); }
.reflection-photo > img { width:100%; height:245px; object-fit:cover; flex:0 0 auto; }
.reflection-photo:nth-child(1) > img { object-position:50% 37%; }
.reflection-photo:nth-child(2) > img { object-position:50% 52%; }
.reflection-photo:nth-child(3) > img { object-position:50% 50%; }
.reflection-photo:nth-child(4) > img { object-position:50% 35%; }
.reflection-photo > div { padding:28px; display:flex; flex-direction:column; height:100%; }
.reflection-photo span { text-transform:uppercase; letter-spacing:.16em; font-size:.68rem; font-weight:800; color:var(--gold); }
.reflection-photo h3 { font-family:var(--font-display); font-size:2.25rem; line-height:1.04; font-weight:500; margin:18px 0 16px; }
.reflection-photo p { color:var(--muted); margin:0 0 24px; }
.reflection-photo small { margin-top:auto; color:var(--teal); }

/* GALLERY — actual visual archive */
.gallery-grid-v2 { grid-template-columns:repeat(12,1fr); grid-auto-rows:150px; gap:14px; }
.gallery-grid-v2 .gallery-tile { margin:0; min-height:0; grid-column:span 4; grid-row:span 3; border-radius:24px; overflow:hidden; position:relative; background:#123f3a; }
.gallery-grid-v2 .gallery-feature { grid-column:span 8; grid-row:span 4; }
.gallery-grid-v2 .gallery-wide { grid-column:span 8; grid-row:span 3; }
.gallery-grid-v2 .gallery-portrait { grid-column:span 4; grid-row:span 4; }
.gallery-grid-v2 .gallery-tile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1s cubic-bezier(.2,.7,.2,1), filter .7s; }
.gallery-grid-v2 .gallery-tile:hover img { transform:scale(1.045); filter:saturate(1.06); }
.gallery-grid-v2 .gallery-tile::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 48%,rgba(4,25,23,.82)); }
.gallery-grid-v2 figcaption { position:absolute; z-index:2; left:20px; right:20px; bottom:17px; display:grid; color:#fff; }
.gallery-grid-v2 figcaption span { position:static; font-family:var(--font-display); font-size:1.35rem; }
.gallery-grid-v2 figcaption small { opacity:.67; }
.gallery-grid-v2 .gallery-feature img { object-position:50% 46%; }

/* QUICK ACTION DOCK */
.experience-dock { position:fixed; z-index:900; right:18px; bottom:18px; display:flex; align-items:center; gap:8px; padding:7px; border:1px solid rgba(255,255,255,.18); border-radius:999px; background:rgba(8,42,39,.74); backdrop-filter:blur(18px) saturate(130%); box-shadow:0 16px 50px rgba(0,0,0,.14); color:#fff; }
.experience-dock button, .experience-dock a { border:0; cursor:pointer; color:inherit; background:transparent; min-height:42px; padding:0 14px; border-radius:999px; display:inline-flex; align-items:center; gap:9px; font-size:.73rem; font-weight:700; }
.experience-dock .dock-breathe { background:rgba(255,255,255,.08); }
.experience-dock .dock-partner { background:var(--gold); color:var(--teal-deep); }
.dock-icon { width:20px; aspect-ratio:1; border:1px solid currentColor; border-radius:50%; display:grid; place-items:center; }

/* LIGHTBOX */
.media-lightbox { position:fixed; inset:0; z-index:12000; background:rgba(4,24,22,.96); backdrop-filter:blur(24px); display:grid; grid-template-columns:80px minmax(0,1fr) 80px; align-items:center; padding:74px 36px 42px; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .35s ease, visibility .35s; }
.media-lightbox.is-open { opacity:1; visibility:visible; pointer-events:auto; }
.media-lightbox figure { margin:0 auto; max-width:min(1160px,82vw); max-height:82vh; width:100%; height:100%; display:grid; grid-template-rows:minmax(0,1fr) auto; gap:14px; align-items:center; justify-items:center; }
.media-lightbox figure img { max-width:100%; max-height:calc(82vh - 60px); width:auto; height:auto; object-fit:contain; border-radius:20px; box-shadow:0 35px 120px rgba(0,0,0,.48); }
.media-lightbox figcaption { color:rgba(255,255,255,.74); text-align:center; max-width:760px; }
.lightbox-close, .lightbox-nav { border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.08); color:#fff; width:54px; height:54px; border-radius:50%; cursor:pointer; backdrop-filter:blur(8px); }
.lightbox-close { position:absolute; top:20px; right:24px; font-size:1.8rem; line-height:1; }
.lightbox-nav { justify-self:center; font-size:1.25rem; }
.lightbox-count { position:absolute; left:26px; top:27px; color:rgba(255,255,255,.6); display:flex; gap:8px; font-size:.72rem; letter-spacing:.12em; }
.lightbox-count i { font-style:normal; opacity:.4; }
body.lightbox-open { overflow:hidden; }

@media (max-width:1180px) {
  .hero-shell-v2 { grid-template-columns:1fr .72fr; gap:34px; }
  .hero-shell-v2 .hero-title { font-size:clamp(4.4rem,8vw,7.8rem); }
  .hero-photo-stage { min-height:610px; }
  .circle-editorial { grid-template-columns:1fr; }
  .circle-mosaic { min-height:760px; }
}

@media (max-width:900px) {
  .hero { padding-top:120px; }
  .hero-shell-v2 { grid-template-columns:1fr; }
  .hero-shell-v2 .hero-title { max-width:860px; font-size:clamp(4.8rem,14vw,8.2rem); }
  .hero-photo-stage { min-height:72vw; max-height:720px; margin-top:18px; }
  .hero-photo-main { inset:0 6% 7% 4%; }
  .hero-photo-float { width:38%; right:0; top:4%; }
  .hero-photo-note { left:0; bottom:0; }
  .story-documentary-head { grid-template-columns:1fr; gap:6px; }
  .story-filmrail { grid-template-columns:1fr 1fr; }
  .story-filmrail .frame-wide:last-child { grid-column:1 / -1; min-height:360px; }
  .circle-story-strip { grid-template-columns:1fr 1fr; }
  .circle-story-card:last-child { grid-column:1 / -1; min-height:460px; }
  .community-carousel-v2 .community-slide { flex-basis:min(780px,88vw); }
  .gallery-grid-v2 .gallery-feature, .gallery-grid-v2 .gallery-wide { grid-column:span 8; }
  .gallery-grid-v2 .gallery-portrait { grid-column:span 4; }
}

@media (max-width:760px) {
  .page-progress { left:12px; right:12px; }
  .hero { padding:105px 0 84px; }
  .hero-shell-v2 { width:min(100% - 28px,1180px); gap:26px; }
  .hero-shell-v2 .hero-title { font-size:clamp(4rem,18vw,7rem); line-height:.79; }
  .hero-photo-stage { min-height:118vw; max-height:none; }
  .hero-photo-main { inset:0 3% 4% 0; border-radius:26px; }
  .hero-photo-float { width:46%; right:-1%; top:5%; border-radius:17px; }
  .hero-photo-note { width:116px; left:-2%; bottom:1%; }
  .hero-photo-note strong { font-size:.96rem; }
  .hero-photo-main figcaption small { display:none; }
  .hero-photo-main figcaption span { font-size:1.15rem; }
  .story-documentary { margin-top:70px; }
  .story-filmrail { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; padding-bottom:8px; scrollbar-width:none; }
  .story-filmrail::-webkit-scrollbar { display:none; }
  .film-frame, .story-filmrail .frame-wide:last-child { min-width:82vw; min-height:430px; scroll-snap-align:start; }
  .film-frame.frame-portrait { min-width:65vw; }
  .pillar-art.pillar-photo { min-height:360px; }
  .circle-feature { padding:100px 0; }
  .circle-mosaic { min-height:118vw; margin-top:14px; }
  .circle-shot-a { inset:0 6% 18% 0; }
  .circle-shot-b { width:42%; height:46%; right:0; top:5%; }
  .circle-shot-c { width:48%; height:36%; right:1%; bottom:0; }
  .circle-story-strip { display:flex; overflow-x:auto; gap:12px; scroll-snap-type:x mandatory; margin-top:64px; scrollbar-width:none; }
  .circle-story-strip::-webkit-scrollbar { display:none; }
  .circle-story-card, .circle-story-card:last-child { min-width:82vw; min-height:500px; grid-column:auto; scroll-snap-align:start; }
  .community-carousel-v2 .community-slide { flex-basis:88vw; min-height:520px; }
  .community-slide-copy { left:26px; right:26px; bottom:27px; }
  .community-slide-copy h3 { font-size:2.5rem; }
  .carousel-counter { display:none; }
  .consultancy-photo { min-height:520px; }
  .reflection-card.reflection-photo { min-height:530px; flex-basis:86vw; }
  .gallery-grid-v2 { display:grid; grid-template-columns:1fr 1fr; grid-auto-rows:240px; }
  .gallery-grid-v2 .gallery-tile, .gallery-grid-v2 .gallery-feature, .gallery-grid-v2 .gallery-wide, .gallery-grid-v2 .gallery-portrait { grid-column:span 1; grid-row:span 1; min-height:0; }
  .gallery-grid-v2 .gallery-feature, .gallery-grid-v2 .gallery-wide { grid-column:1 / -1; }
  .gallery-grid-v2 .gallery-feature { grid-row:span 2; }
  .experience-dock { left:50%; right:auto; transform:translateX(-50%); bottom:max(10px, env(safe-area-inset-bottom)); width:calc(100vw - 22px); justify-content:space-between; }
  .experience-dock button, .experience-dock a { flex:1; justify-content:center; white-space:nowrap; }
  .media-lightbox { grid-template-columns:46px minmax(0,1fr) 46px; padding:70px 8px 28px; }
  .media-lightbox figure { max-width:calc(100vw - 106px); }
  .lightbox-nav { width:42px; height:42px; }
  .lightbox-close { width:46px; height:46px; top:12px; right:12px; }
  .lightbox-count { top:23px; left:16px; }
  .site-footer { padding-bottom:100px; }
}

@media (max-width:480px) {
  .hero-photo-float { width:50%; }
  .circle-shot-b { width:46%; }
  .gallery-grid-v2 { grid-template-columns:1fr; grid-auto-rows:320px; }
  .gallery-grid-v2 .gallery-tile, .gallery-grid-v2 .gallery-feature, .gallery-grid-v2 .gallery-wide, .gallery-grid-v2 .gallery-portrait { grid-column:1; grid-row:auto; }
  .gallery-grid-v2 .gallery-feature { min-height:460px; }
  .experience-dock .dock-breathe span:last-child { display:none; }
  .experience-dock .dock-breathe { flex:0 0 52px; padding:0; }
}

@media (prefers-reduced-motion: reduce) {
  .photo-tilt, .hero-photo, .circle-shot { transform:none !important; }
}


/* ==========================================================================
   V3 — COMPLETE ARCHIVE / EDITORIAL EXPERIENCE
   ========================================================================== */

:root { --hairline-light: rgba(255,255,255,.14); --hairline-dark: rgba(22,75,69,.14); }

/* Hero: editorial image constellation */
.hero-shell-v2 { grid-template-columns:minmax(0,.92fr) minmax(470px,.82fr); gap:clamp(42px,6vw,88px); }
.hero-photo-stage { min-height:min(72vh,760px); }
.hero-photo-main { inset:3% 4% 10% 8%; transform:rotate(1.2deg); }
.hero-photo-main img { object-position:54% 44%; }
.hero-photo-float-a { width:38%; right:-3%; top:6%; transform:rotate(5.5deg); z-index:4; aspect-ratio:.82; }
.hero-photo-float-a img { object-fit:cover; height:100%; width:100%; object-position:50% 42%; }
.hero-photo-float-b { width:34%; left:-4%; bottom:1%; top:auto; right:auto; transform:rotate(-5deg); z-index:5; aspect-ratio:1.18; }
.hero-photo-float-b img { object-fit:cover; height:100%; width:100%; }
.hero-photo-caption { position:absolute; right:0; bottom:2%; z-index:6; display:grid; gap:2px; text-align:right; color:white; text-shadow:0 3px 24px rgba(0,0,0,.4); }
.hero-photo-caption span { font-size:.7rem; text-transform:uppercase; letter-spacing:.18em; opacity:.7; }
.hero-photo-caption strong { font-family:var(--font-display); font-size:1.6rem; font-weight:500; }

/* UX switchboard */
.journey-switchboard { padding:34px 0 28px; border-bottom:1px solid var(--line); overflow:visible; }
.switchboard-shell { display:grid; grid-template-columns:.34fr 1fr; align-items:stretch; gap:36px; }
.switchboard-intro { display:flex; flex-direction:column; justify-content:center; padding:22px 0; }
.switchboard-intro .eyebrow { margin-bottom:7px; }
.switchboard-intro h2 { font-family:var(--font-display); font-size:clamp(1.8rem,2.5vw,2.8rem); line-height:1; margin:0; font-weight:500; }
.switchboard-paths { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); border-radius:24px; overflow:hidden; background:rgba(255,255,255,.46); }
.path-link { min-height:128px; padding:22px; display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:end; position:relative; transition:background .35s,color .35s; border-right:1px solid var(--line); }
.path-link:last-child { border-right:0; }
.path-link > span { align-self:start; font-size:.68rem; letter-spacing:.15em; opacity:.5; }
.path-link div { display:grid; gap:3px; }
.path-link strong { font-family:var(--font-display); font-size:1.22rem; font-weight:500; line-height:1.05; }
.path-link small { color:var(--muted); font-size:.72rem; }
.path-link i { font-style:normal; opacity:.5; transform:translateY(-2px); transition:transform .35s; }
.path-link:hover, .path-link:focus-visible { background:var(--teal); color:white; }
.path-link:hover small,.path-link:focus-visible small { color:rgba(255,255,255,.68); }
.path-link:hover i,.path-link:focus-visible i { transform:translate(5px,5px); }

/* Story archive rail */
.story-filmrail-v3 { display:grid; grid-template-columns:1.25fr .72fr 1fr .72fr 1.1fr; gap:12px; align-items:end; overflow:visible; }
.story-filmrail-v3 .film-frame { min-width:0; height:clamp(300px,38vw,520px); }
.story-filmrail-v3 .frame-portrait { height:clamp(350px,44vw,590px); }
.story-filmrail-v3 .film-frame:nth-child(odd) { transform:translateY(18px); }

/* Conference photo reel */
.conference-reel { margin:74px 0 40px; min-height:620px; position:relative; perspective:1400px; }
.conference-frame { margin:0; position:absolute; overflow:hidden; border-radius:28px; border:1px solid rgba(255,255,255,.16); box-shadow:0 34px 90px rgba(0,0,0,.3); }
.conference-frame img { width:100%; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.2,.7,.2,1); }
.conference-frame:hover img { transform:scale(1.035); }
.cf-a { left:0; top:5%; width:61%; height:78%; transform:rotate(-1.5deg); }
.cf-b { right:2%; top:0; width:38%; height:46%; transform:rotate(3deg); z-index:2; }
.cf-c { right:7%; bottom:0; width:43%; height:43%; transform:rotate(-2deg); z-index:3; }
.conference-reel-copy { position:absolute; z-index:5; left:4%; bottom:6%; display:flex; flex-wrap:wrap; gap:12px; align-items:center; color:#fff; text-transform:uppercase; letter-spacing:.14em; font-size:.72rem; text-shadow:0 2px 15px rgba(0,0,0,.55); }
.conference-years { margin-top:36px; }

/* Living spaces */
.living-spaces { padding:150px 0 170px; }
.living-spaces-head { display:grid; grid-template-columns:1fr .8fr; gap:52px 80px; align-items:end; }
.living-spaces-head .eyebrow { grid-column:1/-1; margin-bottom:-24px; }
.living-spaces-head .body-large { margin:0; }
.living-spaces-stage { width:min(1320px,calc(100vw - 30px)); margin:86px auto 0; height:min(72vw,850px); max-height:850px; position:relative; }
.living-photo { position:absolute; margin:0; overflow:hidden; border-radius:32px; background:var(--teal); box-shadow:var(--shadow); }
.living-photo img { width:100%; height:100%; object-fit:cover; transition:transform 1s cubic-bezier(.2,.7,.2,1); }
.living-photo:hover img { transform:scale(1.035); }
.living-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 60%,rgba(4,25,23,.75)); }
.living-photo figcaption { position:absolute; z-index:2; left:20px; bottom:18px; color:white; font-family:var(--font-display); font-size:1.3rem; }
.lp-1 { left:0; top:9%; width:42%; height:61%; transform:rotate(-1.5deg); }
.lp-2 { left:38%; top:0; width:37%; height:48%; transform:rotate(1.8deg); z-index:2; }
.lp-3 { right:0; top:24%; width:30%; height:54%; transform:rotate(2.6deg); z-index:3; }
.lp-4 { left:29%; bottom:0; width:32%; height:43%; transform:rotate(-3deg); z-index:4; }

/* Complete archive */
.gallery-v3 { padding:150px 0 120px; }
.gallery-v3 .gallery-heading { display:grid; grid-template-columns:1fr .62fr; gap:60px; align-items:end; }
.gallery-v3 .gallery-heading .body-large { margin:0; }
.archive-toolbar { display:flex; gap:9px; flex-wrap:wrap; margin:-30px 0 42px; position:sticky; top:92px; z-index:30; width:max-content; max-width:100%; padding:8px; border:1px solid rgba(255,255,255,.14); border-radius:999px; background:rgba(8,42,39,.7); backdrop-filter:blur(20px); }
.archive-filter { border:0; background:transparent; color:rgba(255,255,255,.7); border-radius:999px; min-height:42px; padding:8px 14px; cursor:pointer; font-size:.78rem; white-space:nowrap; transition:.3s; }
.archive-filter span { opacity:.5; margin-left:4px; }
.archive-filter:hover,.archive-filter:focus-visible { color:white; }
.archive-filter.is-active { background:var(--gold); color:var(--teal-deep); }
.archive-grid { columns:4 260px; column-gap:14px; }
.archive-item { break-inside:avoid; margin:0 0 14px; position:relative; overflow:hidden; border-radius:22px; background:#123f3a; cursor:zoom-in; transform:translateZ(0); }
.archive-item img { width:100%; height:auto; display:block; transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .65s; }
.archive-item::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 52%,rgba(4,25,23,.86)); opacity:.88; transition:.45s; pointer-events:none; }
.archive-item figcaption { position:absolute; z-index:2; left:16px; right:16px; bottom:14px; display:grid; gap:2px; color:white; transform:translateY(4px); transition:.4s; }
.archive-item figcaption span { text-transform:uppercase; letter-spacing:.13em; font-size:.62rem; opacity:.72; }
.archive-item figcaption small { font-family:var(--font-display); font-size:1rem; line-height:1.15; }
.archive-item:hover img { transform:scale(1.035); filter:saturate(1.05); }
.archive-item:hover figcaption { transform:translateY(0); }
.archive-item.is-hidden { display:none; }
.archive-item.is-filtering { opacity:0; transform:translateY(18px) scale(.98); }
.archive-end { margin-top:58px; display:flex; align-items:center; justify-content:space-between; gap:30px; border-top:1px solid rgba(255,255,255,.14); padding-top:26px; }
.archive-end span { color:var(--gold); letter-spacing:.18em; text-transform:uppercase; font-size:.68rem; }
.archive-end p { margin:0; color:rgba(255,255,255,.6); }

/* More editorial, less card-like on the core pillars */
.pillar-world { border-radius:0; border-left:1px solid var(--line); border-right:0; box-shadow:none; }
.pillar-world + .pillar-world { border-top:1px solid var(--line); }
.pillar-photo { border-radius:30px; }

/* Lightbox safe area for mobile browser chrome */
.media-lightbox { padding-top:max(22px,env(safe-area-inset-top)); padding-bottom:max(22px,env(safe-area-inset-bottom)); }
.lightbox-close { top:max(18px,env(safe-area-inset-top)); right:max(18px,env(safe-area-inset-right)); }

@media (max-width:1080px) {
  .switchboard-shell { grid-template-columns:1fr; gap:12px; }
  .switchboard-paths { grid-template-columns:repeat(2,1fr); }
  .path-link:nth-child(2) { border-right:0; }
  .path-link:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .story-filmrail-v3 { grid-template-columns:repeat(3,1fr); }
  .story-filmrail-v3 .film-frame { height:430px; }
  .story-filmrail-v3 .film-frame:nth-child(4),.story-filmrail-v3 .film-frame:nth-child(5) { display:none; }
  .living-spaces-head { grid-template-columns:1fr; gap:24px; }
  .living-spaces-head .eyebrow { grid-column:auto; margin-bottom:0; }
  .gallery-v3 .gallery-heading { grid-template-columns:1fr; gap:22px; }
}

@media (max-width:760px) {
  .hero-shell-v2 { grid-template-columns:1fr; }
  .hero-photo-stage { min-height:126vw; margin-top:30px; }
  .hero-photo-main { inset:0 4% 10% 0; }
  .hero-photo-float-a { width:42%; right:-1%; top:3%; }
  .hero-photo-float-b { width:43%; left:0; bottom:1%; }
  .hero-photo-caption { right:4%; bottom:3%; }
  .hero-photo-caption strong { font-size:1.15rem; }
  .journey-switchboard { padding:22px 0; }
  .switchboard-paths { grid-template-columns:1fr 1fr; border-radius:20px; }
  .path-link { min-height:112px; padding:16px; grid-template-columns:auto 1fr; }
  .path-link i { display:none; }
  .path-link strong { font-size:1rem; }
  .story-filmrail-v3 { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; padding:0 20px 10px; margin-left:-20px; margin-right:-20px; scrollbar-width:none; }
  .story-filmrail-v3::-webkit-scrollbar { display:none; }
  .story-filmrail-v3 .film-frame,.story-filmrail-v3 .frame-portrait { display:block !important; flex:0 0 78vw; height:480px; transform:none !important; scroll-snap-align:center; }
  .conference-reel { min-height:560px; margin-top:52px; }
  .cf-a { left:0; top:0; width:84%; height:55%; }
  .cf-b { right:0; top:31%; width:53%; height:35%; }
  .cf-c { left:8%; right:auto; bottom:0; width:60%; height:35%; }
  .conference-reel-copy { left:6%; bottom:3%; font-size:.58rem; gap:7px; }
  .living-spaces { padding:100px 0 110px; }
  .living-spaces-stage { height:auto; max-height:none; display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; padding:0 20px 12px; width:100%; margin-top:50px; scrollbar-width:none; }
  .living-spaces-stage::-webkit-scrollbar { display:none; }
  .living-photo { position:relative; inset:auto !important; flex:0 0 78vw; height:520px; transform:none !important; scroll-snap-align:center; border-radius:25px; }
  .gallery-v3 { padding:100px 0 80px; }
  .archive-toolbar { position:relative; top:auto; overflow-x:auto; flex-wrap:nowrap; width:calc(100vw - 20px); max-width:none; margin-left:-10px; border-radius:18px; scrollbar-width:none; }
  .archive-toolbar::-webkit-scrollbar { display:none; }
  .archive-grid { columns:2 145px; column-gap:10px; }
  .archive-item { border-radius:16px; margin-bottom:10px; }
  .archive-item figcaption { left:11px; right:11px; bottom:10px; }
  .archive-item figcaption small { font-size:.8rem; }
  .archive-end { align-items:flex-start; flex-direction:column; }
}

@media (max-width:480px) {
  .switchboard-paths { grid-template-columns:1fr; }
  .path-link { border-right:0 !important; border-bottom:1px solid var(--line); }
  .path-link:last-child { border-bottom:0; }
  .archive-grid { columns:1; }
  .archive-item figcaption small { font-size:1rem; }
}


/* ==========================================================================\n   V4 — CLASSIFIED STORIES + MOBILE UX CLEANUP\n   ========================================================================== */
[id] { scroll-margin-top: 104px; }

/* CTT: deliberate editorial layout; no accidental stacking. */
.ctt-section { padding: 150px 0 132px; }
.ctt-intro-grid { display:grid; grid-template-columns:minmax(0,.86fr) minmax(460px,1.14fr); gap:clamp(42px,6vw,86px); align-items:center; }
.ctt-copy > p:not(.eyebrow) { max-width:680px; color:var(--muted); }
.ctt-copy > p + p { margin-top:18px; }
.ctt-facts { margin:36px 0 30px; }
.ctt-actions { display:flex; flex-wrap:wrap; gap:16px 20px; align-items:center; }
.ctt-hero-photo { min-height:650px; position:relative; margin:0; overflow:hidden; border-radius:34px; background:#d8e4de; box-shadow:var(--shadow); }
.ctt-hero-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 48%; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.ctt-hero-photo:hover img { transform:scale(1.025); }
.ctt-hero-photo::after,.ctt-photo::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,transparent 55%,rgba(5,31,29,.78)); }
.ctt-hero-photo figcaption { position:absolute; z-index:2; left:24px; right:24px; bottom:22px; color:#fff; display:grid; }
.ctt-hero-photo figcaption span { font-family:var(--font-display); font-size:1.55rem; }
.ctt-hero-photo figcaption small { opacity:.72; }
.ctt-flow { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin:82px 0; border:1px solid var(--line); border-radius:28px; overflow:hidden; background:var(--line); }
.ctt-flow article { background:rgba(255,255,255,.76); padding:34px; min-height:230px; display:grid; align-content:start; }
.ctt-flow b { font-family:var(--font-display); font-size:3rem; font-weight:500; line-height:1; color:var(--gold); }
.ctt-flow span { font-family:var(--font-display); font-size:1.8rem; margin-top:24px; }
.ctt-flow p { color:var(--muted); margin:10px 0 0; }
.ctt-gallery-head { display:grid; grid-template-columns:1fr .7fr; gap:50px; align-items:end; margin-bottom:28px; }
.ctt-gallery-head h3 { margin:0; font-family:var(--font-display); font-weight:500; font-size:clamp(3rem,5vw,5.5rem); line-height:1; }
.ctt-gallery-head > p { margin:0; color:var(--muted); max-width:560px; }
.ctt-gallery { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:260px; gap:14px; }
.ctt-photo { margin:0; position:relative; overflow:hidden; border-radius:24px; background:#d1ded8; }
.ctt-photo.ctt-wide { grid-column:span 2; }
.ctt-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.ctt-photo:hover img { transform:scale(1.035); }
.ctt-photo figcaption { position:absolute; z-index:2; left:18px; right:18px; bottom:16px; color:#fff; display:grid; font-family:var(--font-display); font-size:1.25rem; }
.ctt-photo figcaption small { font-family:var(--font-body); font-size:.7rem; opacity:.7; text-transform:uppercase; letter-spacing:.12em; }

/* IWEC editions: chronological archive, horizontally navigable rather than layered. */
.conference-v4 { padding:150px 0 130px; }
.conference-intro-v4 { display:grid; grid-template-columns:1.25fr .55fr; gap:70px; align-items:end; }
.conference-intro-v4 > p { color:rgba(255,255,255,.68); margin:0; max-width:520px; }
.edition-toolbar { margin:60px 0 18px; display:flex; justify-content:space-between; align-items:center; border-top:1px solid rgba(255,255,255,.14); padding-top:18px; }
.edition-toolbar > span { font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.edition-toolbar > div { display:flex; gap:8px; }
.edition-arrow { width:48px; height:48px; border-radius:50%; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.06); color:#fff; cursor:pointer; font-size:1.15rem; }
.edition-track { display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding:8px max(0px,calc((100vw - 1180px)/2)) 20px 0; overscroll-behavior-inline:contain; }
.edition-track::-webkit-scrollbar { display:none; }
.edition-card { position:relative; flex:0 0 clamp(300px,30vw,390px); min-height:570px; border:1px solid rgba(255,255,255,.13); border-radius:30px; overflow:hidden; background:#0b312e; scroll-snap-align:start; }
.edition-card > figure { position:absolute; inset:0; margin:0; }
.edition-card > figure::after,.edition-media-double figure::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(4,25,23,.05) 30%,rgba(4,25,23,.9) 100%); pointer-events:none; }
.edition-card img { width:100%; height:100%; object-fit:cover; }
.edition-meta { position:absolute; z-index:4; left:22px; right:22px; bottom:20px; display:grid; color:#fff; text-shadow:0 3px 18px rgba(0,0,0,.45); pointer-events:none; }
.edition-meta span { color:var(--gold-soft); letter-spacing:.12em; font-size:.72rem; }
.edition-meta strong { font-family:var(--font-display); font-weight:500; font-size:2rem; }
.edition-double .edition-media-double { position:absolute; inset:0; display:grid; grid-template-columns:1.25fr .75fr; gap:3px; }
.edition-media-double figure { margin:0; position:relative; overflow:hidden; }
.edition-media-double figure:nth-child(2) img { object-position:50% 50%; }
.edition-current { background:radial-gradient(circle at 78% 22%,rgba(232,179,92,.28),transparent 30%),linear-gradient(150deg,#174f49,#082a27); }
.edition-current-inner { position:absolute; inset:0; padding:32px; display:flex; flex-direction:column; justify-content:flex-end; }
.edition-current-inner span { color:var(--gold-soft); letter-spacing:.15em; }
.edition-current-inner strong { font-family:var(--font-display); font-weight:500; font-size:3.4rem; line-height:1; margin:10px 0 18px; }
.edition-current-inner p { color:rgba(255,255,255,.65); max-width:250px; }
.edition-current-inner i { position:absolute; right:20px; top:18px; font-family:var(--font-display); font-style:normal; font-size:8rem; color:rgba(255,255,255,.06); line-height:1; }
.decade-reveal-v4 { margin-top:72px; }

/* Contact conversion path */
.partner-actions-v4 { grid-column:1 / -1; display:flex; gap:18px 22px; align-items:center; flex-wrap:wrap; padding-top:18px; }
.whatsapp-button::after { content:"WhatsApp"; font-size:.6rem; letter-spacing:.08em; text-transform:uppercase; opacity:.65; }
.dock-talk { background:var(--gold)!important; color:var(--teal-deep)!important; }
.contact-actions .ghost-button { min-width:150px; }

/* Archive filters can now carry more than one classification. */
.archive-filter[data-filter="ctt"],.archive-filter[data-filter="iwec"] { border-color:rgba(232,179,92,.42); }

/* Mobile UX cleanup: intentional stacking; no decorative overlap. */
@media (max-width:900px) {
  .ctt-intro-grid,.conference-intro-v4,.ctt-gallery-head { grid-template-columns:1fr; gap:28px; }
  .ctt-hero-photo { min-height:62vw; }
  .ctt-gallery { grid-template-columns:repeat(2,1fr); }
  .ctt-flow { grid-template-columns:1fr; }
  .ctt-flow article { min-height:auto; }
}

@media (max-width:760px) {
  html { scroll-padding-top:82px; }
  .site-header { left:8px; right:8px; transform:none; width:auto; top:max(8px,env(safe-area-inset-top)); grid-template-columns:auto 1fr auto; }
  .site-nav.is-open { position:fixed; top:calc(max(8px,env(safe-area-inset-top)) + 62px); left:8px; right:8px; width:auto; min-height:0; height:calc(100svh - 78px - env(safe-area-inset-top)); padding:30px 24px calc(30px + env(safe-area-inset-bottom)); border-radius:24px; overflow-y:auto; justify-content:flex-start; padding-top:clamp(34px,10vh,80px); }
  .site-nav.is-open a { width:100%; padding:10px 0; }
  .menu-toggle[aria-expanded="true"] span:not(.sr-only):first-child { transform:translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:not(.sr-only):nth-child(2) { transform:translateY(-4px) rotate(-45deg); }

  .hero { padding:104px 0 72px; min-height:auto; }
  .hero-shell-v2 .hero-title { font-size:clamp(3.35rem,16vw,5.6rem); line-height:.82; }
  .hero-photo-stage { display:flex; min-height:0; height:auto; max-height:none; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; padding:4px 2px 14px; margin-top:32px; scrollbar-width:none; }
  .hero-photo-stage::-webkit-scrollbar { display:none; }
  .hero-photo-stage .hero-photo { position:relative!important; inset:auto!important; width:auto!important; height:480px!important; min-height:0; flex:0 0 84vw; transform:none!important; border-radius:24px; scroll-snap-align:center; }
  .hero-photo-stage .hero-photo-float { aspect-ratio:auto; }
  .hero-photo-note,.hero-photo-caption { display:none; }
  .hero-photo-main figcaption { left:18px; right:18px; bottom:18px; }

  .breathing,.story,.impact,.pillars,.ctt-section,.community,.conference-v4,.consultancy,.stories,.gallery,.journal,.contact { padding:78px 0; }
  .display-title { font-size:clamp(2.65rem,11.5vw,4.35rem); line-height:1; }
  .pillar-copy h3 { font-size:clamp(2.6rem,10.8vw,4rem); }

  .ctt-hero-photo { min-height:500px; }
  .ctt-actions { align-items:stretch; flex-direction:column; }
  .ctt-actions .primary-button { width:100%; }
  .ctt-flow { margin:52px 0; border-radius:22px; }
  .ctt-flow article { padding:26px; }
  .ctt-gallery-head { margin-bottom:20px; }
  .ctt-gallery { display:flex; overflow-x:auto; gap:12px; scroll-snap-type:x mandatory; padding-bottom:12px; scrollbar-width:none; }
  .ctt-gallery::-webkit-scrollbar { display:none; }
  .ctt-photo,.ctt-photo.ctt-wide { flex:0 0 82vw; height:460px; grid-column:auto; scroll-snap-align:center; border-radius:22px; }

  .conference-intro-v4 { gap:22px; }
  .edition-toolbar { margin-top:42px; }
  .edition-card { flex-basis:82vw; min-height:520px; border-radius:24px; }
  .edition-double .edition-media-double { grid-template-columns:1fr; grid-template-rows:1fr .44fr; }
  .edition-meta strong { font-size:1.75rem; }
  .edition-current-inner strong { font-size:3rem; }

  .experience-dock { left:10px; right:10px; transform:none; width:auto; bottom:max(8px,env(safe-area-inset-bottom)); border-radius:18px; padding:6px; gap:6px; }
  .experience-dock button,.experience-dock a { min-height:48px; font-size:.74rem; }
  .experience-dock .dock-breathe { flex:0 0 50px; padding:0; justify-content:center; }
  .experience-dock .dock-breathe span:last-child { display:none; }
  .experience-dock .dock-talk { flex:1; justify-content:center; }
  .site-footer { padding-bottom:calc(96px + env(safe-area-inset-bottom)); }

  .media-lightbox { display:flex; flex-direction:column; justify-content:center; padding:max(72px,calc(env(safe-area-inset-top) + 58px)) 14px max(96px,calc(env(safe-area-inset-bottom) + 82px)); }
  .media-lightbox figure { max-width:100%; max-height:calc(100svh - 190px); width:100%; height:auto; }
  .media-lightbox figure img { max-height:calc(100svh - 250px); border-radius:14px; }
  .media-lightbox figcaption { font-size:.84rem; line-height:1.35; padding:0 10px; }
  .lightbox-nav { position:absolute; bottom:max(22px,calc(env(safe-area-inset-bottom) + 12px)); }
  .lightbox-prev { left:16px; }
  .lightbox-next { right:16px; }
  .lightbox-count { top:max(26px,calc(env(safe-area-inset-top) + 14px)); }
  .lightbox-close { top:max(14px,env(safe-area-inset-top)); right:14px; }

  .archive-toolbar { width:100%; margin-left:0; padding:6px; }
  .archive-filter { flex:0 0 auto; min-height:42px; }
}

@media (max-width:560px) {
  .section-shell { width:calc(100% - 28px); }
  .hero-shell-v2 { width:calc(100% - 24px); }
  .hero-photo-stage .hero-photo { flex-basis:88vw; height:440px!important; }
  .ctt-hero-photo { min-height:460px; }
  .ctt-gallery .ctt-photo { flex-basis:86vw; height:430px; }
  .edition-card { flex-basis:86vw; min-height:500px; }
  .archive-grid { columns:1!important; }
  .community-carousel-v2 .community-slide { flex-basis:92vw; }
  .community-slide-copy { left:20px; right:20px; bottom:22px; }
  .community-slide-copy h3 { font-size:2.1rem; }
  .consultancy-photo { min-height:430px; }
  .contact-actions { gap:10px; }
  .contact-actions a { width:100%; }
  .whatsapp-button::after { display:none; }
}

@media (max-width:560px) {
  /* The six-step model becomes a clean tap-free list on small screens; the circular desktop composition was too dense here. */
  .model-wheel { width:100%; aspect-ratio:auto; border:0; display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:24px 0 38px; }
  .model-wheel::before,.model-wheel::after,.wheel-core { display:none; }
  .wheel-item,.wi-1,.wi-2,.wi-3,.wi-4,.wi-5,.wi-6 { position:relative; inset:auto; left:auto; right:auto; top:auto; bottom:auto; transform:none; width:auto; aspect-ratio:auto; min-height:104px; border-radius:20px; }
  .wheel-item span { font-size:1rem; }
}

/* ========================================================================== */
/* V5 — MOBILE UX CLEANUP + RESTORED VISUAL CONCEPTS                         */
/* ========================================================================== */
html, body { max-width:100%; overflow-x:clip; }
main, section, .section-shell, .story-layout, .story-flow, .story-chapter { min-width:0; max-width:100%; }
.story-chapter h3, .story-chapter p, .story-sticky h2, .story-intro { overflow-wrap:anywhere; }

/* Make the header read as a clean surface instead of allowing text to bleed through it. */
@media (max-width:760px) {
  .site-header { background:rgba(255,253,249,.96); backdrop-filter:blur(18px) saturate(130%); box-shadow:0 10px 34px rgba(10,45,41,.08); }
}

/* Hero: restore the editorial/clipboard composition instead of a mobile carousel. */
.hero-photo { border:8px solid rgba(255,253,249,.94); box-shadow:0 30px 80px rgba(0,0,0,.26), 0 4px 12px rgba(0,0,0,.12); }
.hero-photo-main::before { content:""; position:absolute; z-index:7; width:74px; height:18px; left:50%; top:-8px; transform:translateX(-50%) rotate(-1deg); border-radius:4px 4px 10px 10px; background:linear-gradient(180deg,#d8b777,#b98a39); box-shadow:0 5px 14px rgba(0,0,0,.24); }
.hero-photo-float-a::before,.hero-photo-float-b::before { content:""; position:absolute; z-index:7; width:48px; height:12px; left:50%; top:-6px; transform:translateX(-50%) rotate(2deg); border-radius:3px 3px 8px 8px; background:rgba(244,223,180,.96); box-shadow:0 4px 10px rgba(0,0,0,.16); }

@media (max-width:760px) {
  .hero-photo-stage { display:block !important; position:relative !important; overflow:visible !important; min-height:118vw !important; height:auto !important; max-height:none !important; margin-top:34px !important; padding:0 !important; perspective:1000px; }
  .hero-photo-stage .hero-photo { position:absolute !important; height:auto !important; min-height:0 !important; width:auto !important; flex:none !important; scroll-snap-align:none !important; }
  .hero-photo-main { inset:5% 7% 8% 5% !important; transform:rotate(-1.2deg) !important; z-index:2; border-radius:24px; }
  .hero-photo-main img { width:100%; height:100%; object-fit:cover; object-position:52% 48%; }
  .hero-photo-float-a { width:39% !important; aspect-ratio:.78 !important; inset:0 0 auto auto !important; transform:rotate(4.5deg) !important; z-index:5; border-radius:17px; }
  .hero-photo-float-b { width:43% !important; aspect-ratio:1.08 !important; inset:auto auto 0 0 !important; transform:rotate(-4deg) !important; z-index:6; border-radius:17px; }
  .hero-photo-note { display:grid !important; width:94px; left:auto; right:5%; bottom:2%; z-index:8; }
  .hero-photo-note strong { font-size:.86rem; }
  .hero-photo-caption { display:none !important; }
  .hero-photo-main figcaption { left:16px; right:16px; bottom:16px; }
  .hero-photo-main figcaption span { font-size:1rem; }
}

/* Story cards: remove unnecessary dead space and ensure all text stays inside viewport. */
@media (max-width:760px) {
  .story-layout { gap:34px !important; }
  .story-sticky { width:100%; }
  .story-sticky .display-title { font-size:clamp(2.8rem,12vw,4.4rem); line-height:.96; }
  .story-intro { font-size:clamp(1.35rem,6vw,1.8rem); line-height:1.12; }
  .story-flow { width:100%; gap:16px; }
  .story-chapter { width:100%; min-height:285px !important; padding:74px 24px 26px !important; justify-content:flex-end; border-radius:24px; overflow:hidden; }
  .story-chapter::before { right:16px; top:18px; font-size:4.2rem; }
  .story-chapter h3 { width:100%; max-width:100%; font-size:clamp(2rem,8.5vw,2.7rem) !important; line-height:1.02; }
  .story-chapter p { width:100%; max-width:100%; font-size:.98rem; line-height:1.62; }
}

/* Story archive rail: explicit discoverability + reliable touch/drag scrolling. */
.filmrail-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 18px; color:var(--muted); font-size:.78rem; }
.filmrail-toolbar > div { display:flex; gap:8px; }
.rail-arrow { width:44px; height:44px; border-radius:50%; border:1px solid rgba(22,75,69,.18); background:rgba(255,255,255,.72); color:var(--teal); cursor:pointer; font-size:1rem; box-shadow:0 8px 24px rgba(22,75,69,.06); }
.story-filmrail-v3 { scroll-behavior:smooth; overscroll-behavior-inline:contain; touch-action:pan-x pan-y pinch-zoom; }
@media (max-width:760px) {
  .story-documentary { margin-top:58px; }
  .story-documentary-head { margin-bottom:14px; }
  .filmrail-toolbar { margin-bottom:12px; }
  .filmrail-toolbar span { font-size:.72rem; }
  .story-filmrail-v3 { padding-left:14px !important; padding-right:14px !important; margin-left:-14px !important; margin-right:-14px !important; }
  .story-filmrail-v3 .film-frame,.story-filmrail-v3 .frame-portrait { flex:0 0 80vw !important; height:410px !important; }
}

/* Exhale Model: keep the circular signature experience on mobile. */
@media (max-width:560px) {
  .model-wheel { width:min(92vw,420px) !important; aspect-ratio:1 !important; border:1px solid rgba(22,75,69,.12) !important; display:block !important; margin:28px auto 42px !important; }
  .model-wheel::before,.model-wheel::after,.wheel-core { display:grid !important; }
  .model-wheel::before,.model-wheel::after { display:block !important; }
  .wheel-core { width:34%; aspect-ratio:1; position:absolute; inset:33%; border-radius:50%; place-items:center; background:var(--teal); color:#fff; box-shadow:0 18px 50px rgba(22,75,69,.18); }
  .wheel-item,.wi-1,.wi-2,.wi-3,.wi-4,.wi-5,.wi-6 { position:absolute !important; width:74px !important; min-height:0 !important; aspect-ratio:1 !important; border-radius:50% !important; transform:none; }
  .wi-1 { top:-2%; left:50%; transform:translateX(-50%) !important; }
  .wi-2 { top:22%; right:-2%; left:auto; }
  .wi-3 { bottom:10%; right:4%; left:auto; top:auto; }
  .wi-4 { bottom:-4%; left:50%; top:auto; transform:translateX(-50%) !important; }
  .wi-5 { bottom:10%; left:4%; top:auto; }
  .wi-6 { top:22%; left:-2%; }
  .wheel-item span { font-size:.78rem !important; }
  .wheel-item b { font-size:.6rem; }
}

/* Breathing experience: make the animation the focal point once started. */
.breath-visual-wrap { isolation:isolate; }
.breath-circle { transition:box-shadow .5s ease, filter .5s ease; }
.breath-circle::before,.breath-circle::after { content:""; position:absolute; inset:10%; border-radius:50%; pointer-events:none; }
.breath-circle::before { border:1px solid rgba(232,179,92,.38); box-shadow:inset 0 0 36px rgba(232,179,92,.12); }
.breath-circle::after { inset:21%; border:1px dashed rgba(22,75,69,.20); }
.breath-visual-wrap.is-breathing .breath-circle { box-shadow:0 0 0 1px rgba(22,75,69,.08), 0 34px 110px rgba(22,75,69,.22), 0 0 90px rgba(232,179,92,.22), inset 0 0 70px rgba(255,255,255,.95); }
.breath-visual-wrap.is-breathing .lottie-breath { opacity:1; filter:drop-shadow(0 0 12px rgba(232,179,92,.34)); }
.breath-visual-wrap.is-breathing .halo-1 { animation:eroHalo 4s ease-in-out infinite; }
.breath-visual-wrap.is-breathing .halo-2 { animation:eroHalo 6s ease-in-out infinite reverse; }
@keyframes eroHalo { 0%,100% { transform:scale(.84); opacity:.18; } 50% { transform:scale(1.14); opacity:.72; } }
@media (max-width:760px) {
  .breath-visual-wrap { min-height:430px !important; margin-top:8px; }
  .breath-circle { width:min(72vw,310px); }
  .breath-caption { max-width:320px; margin-inline:auto; }
}

/* Conference V5: restore a visible 1→9 journey with one clean image stage. */
.conference-v5 { padding:150px 0 130px; }
.conference-intro-v5 { display:grid; grid-template-columns:1.1fr .65fr; gap:70px; align-items:end; }
.conference-intro-v5 > p { margin:0; color:rgba(255,255,255,.62); max-width:560px; line-height:1.75; }
.conference-journey { position:relative; margin-top:76px; padding-top:12px; }
.conference-progress { position:absolute; left:4%; right:4%; top:43px; height:1px; background:rgba(255,255,255,.12); overflow:hidden; }
.conference-progress span { display:block; width:0; height:100%; background:linear-gradient(90deg,var(--gold),#f8ddb0); transition:width .55s cubic-bezier(.2,.7,.2,1); }
.conference-years-v5 { position:relative; z-index:2; display:grid; grid-template-columns:repeat(9,1fr); gap:8px; }
.conference-year { border:0; background:transparent; color:rgba(255,255,255,.55); display:grid; justify-items:center; gap:9px; cursor:pointer; padding:0; }
.conference-year b { width:64px; aspect-ratio:1; border-radius:50%; display:grid; place-items:center; border:1px solid rgba(255,255,255,.18); background:#0d3733; font-family:var(--font-display); font-weight:500; font-size:1.22rem; transition:.4s cubic-bezier(.2,.7,.2,1); }
.conference-year span { font-size:.66rem; letter-spacing:.13em; }
.conference-year:hover b,.conference-year:focus-visible b { border-color:var(--gold); transform:translateY(-4px); }
.conference-year.is-active { color:#fff; }
.conference-year.is-active b { background:var(--gold); border-color:var(--gold); color:var(--teal-deep); box-shadow:0 12px 36px rgba(232,179,92,.24); transform:scale(1.08); }
.conference-focus { margin-top:62px; min-height:560px; }
.conference-edition-panel { display:none; grid-template-columns:.72fr 1.28fr; gap:50px; align-items:center; padding:28px; border-radius:34px; background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.12); }
.conference-edition-panel.is-active { display:grid; animation:conferenceReveal .55s cubic-bezier(.2,.7,.2,1) both; }
@keyframes conferenceReveal { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
.conference-edition-copy { padding:20px 12px 20px 16px; }
.conference-edition-copy h3 { font-family:var(--font-display); font-size:clamp(2.35rem,4.4vw,4.7rem); font-weight:500; line-height:.95; margin:16px 0 22px; }
.conference-edition-copy p { color:rgba(255,255,255,.66); line-height:1.75; max-width:520px; }
.conference-edition-media { position:relative; min-height:500px; border-radius:26px; overflow:hidden; background:#092d2a; }
.conference-focus-image { position:absolute; inset:0; margin:0; opacity:0; visibility:hidden; transition:opacity .45s ease, visibility .45s; }
.conference-focus-image.is-active { opacity:1; visibility:visible; }
.conference-focus-image img { width:100%; height:100%; object-fit:cover; }
.conference-focus-image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 60%,rgba(4,25,23,.32)); pointer-events:none; }
.edition-image-toggles { display:flex; gap:8px; margin-top:28px; flex-wrap:wrap; }
.edition-image-toggles button { border:1px solid rgba(255,255,255,.18); background:transparent; color:rgba(255,255,255,.68); border-radius:999px; min-height:38px; padding:0 14px; cursor:pointer; font-size:.72rem; }
.edition-image-toggles button.is-active { background:var(--gold); border-color:var(--gold); color:var(--teal-deep); }
.conference-edition-current { grid-template-columns:1fr 1fr; }
.conference-current-visual { min-height:500px; border-radius:26px; display:grid; place-content:center; text-align:center; background:radial-gradient(circle at 50% 30%,rgba(232,179,92,.28),transparent 30%),linear-gradient(145deg,#174f49,#082a27); }
.conference-current-visual span { font-family:var(--font-display); font-size:clamp(8rem,18vw,15rem); line-height:.72; color:rgba(255,255,255,.1); }
.conference-current-visual strong { font-family:var(--font-display); font-size:2rem; font-weight:500; margin-top:-18px; }
.conference-current-visual small { margin-top:8px; letter-spacing:.18em; color:var(--gold-soft); }
.decade-reveal-v5 { margin-top:80px; }

@media (max-width:900px) {
  .conference-intro-v5,.conference-edition-panel,.conference-edition-current { grid-template-columns:1fr; gap:24px; }
  .conference-edition-copy { padding:8px 4px; }
  .conference-focus { min-height:0; }
  .conference-edition-media,.conference-current-visual { min-height:470px; }
}
@media (max-width:760px) {
  .conference-v5 { padding:82px 0; }
  .conference-journey { margin-top:44px; }
  .conference-progress { display:none; }
  .conference-years-v5 { grid-template-columns:repeat(3,1fr); gap:14px 8px; }
  .conference-year b { width:58px; }
  .conference-year span { font-size:.62rem; }
  .conference-focus { margin-top:38px; }
  .conference-edition-panel { padding:18px; border-radius:24px; }
  .conference-edition-copy h3 { font-size:clamp(2.25rem,10vw,3.3rem); }
  .conference-edition-media,.conference-current-visual { min-height:410px; border-radius:18px; }
  .decade-reveal-v5 { margin-top:60px; }
}

/* Compact quick actions on mobile so content is never hidden behind a large bar. */
@media (max-width:760px) {
  .experience-dock { left:auto !important; right:10px !important; width:auto !important; bottom:max(10px,env(safe-area-inset-bottom)) !important; transform:none !important; border-radius:999px !important; padding:5px !important; gap:5px !important; }
  .experience-dock .dock-breathe { flex:0 0 48px !important; width:48px; min-width:48px; }
  .experience-dock .dock-talk { flex:0 0 auto !important; min-width:132px; padding-inline:16px; }
  .experience-dock button,.experience-dock a { min-height:48px !important; }
  .site-footer { padding-bottom:calc(82px + env(safe-area-inset-bottom)); }
}
@media (max-width:390px) {
  .experience-dock .dock-talk { min-width:118px; padding-inline:12px; }
}

/* Lightbox ergonomics: obvious close target and no viewport escape. */
.media-lightbox { overscroll-behavior:contain; }
.lightbox-close { z-index:3; }
@media (max-width:760px) {
  .lightbox-close { width:50px; height:50px; background:rgba(255,255,255,.14); }
  .media-lightbox figure { min-width:0; }
}
@media (min-width:761px) { .filmrail-toolbar { display:none; } }
@media (max-width:760px) { .hero-photo-stage { transform:none !important; opacity:1 !important; } }

/* --------------------------------------------------------------------------
   ERO Creative CMS runtime layer · V8
   -------------------------------------------------------------------------- */
.cms-graphic-off,.cms-media-hidden{display:none!important}
.cms-hide-viewer-captions #lightbox-caption{display:none!important}
.hero-photo img{transition:opacity .32s ease,transform .7s cubic-bezier(.2,.7,.2,1),filter .45s ease}
.hero-photo.cms-hero-crossfade-out img{opacity:.08}
.hero-photo.cms-hero-slide-out img{opacity:.05;transform:translateX(-5%) scale(1.02)}
.hero-photo.cms-hero-zoom-out img{opacity:.08;transform:scale(1.07);filter:blur(2px)}
.hero-photo.cms-hero-in img{animation:cmsHeroIn .72s cubic-bezier(.2,.7,.2,1) both}
@keyframes cmsHeroIn{from{opacity:.2;transform:scale(1.035)}to{opacity:1;transform:none}}
body[data-hero-mode="single"] .hero-photo-float-a,body[data-hero-mode="single"] .hero-photo-note{display:none!important}
body[data-hero-mode="single"] .hero-photo-stage-editorial .hero-photo-main{inset:4% 0 4% 4%!important;transform:none!important;border-radius:34px}
body[data-hero-mode="split"] .hero-photo-stage-editorial .hero-photo-main{inset:3% 22% 8% 0!important;transform:rotate(-1deg)!important}
body[data-hero-mode="split"] .hero-photo-stage-editorial .hero-photo-float-a{width:43%!important;inset:auto 0 2% auto!important;aspect-ratio:.88!important;transform:rotate(2deg)!important}
.cms-experience-extras{width:min(1180px,calc(100% - 32px));margin:54px auto 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.cms-experience-photo{margin:0;min-height:300px;border-radius:24px;overflow:hidden;position:relative;background:var(--teal-deep)}
.cms-experience-photo img{width:100%;height:100%;object-fit:cover}
.cms-experience-photo figcaption{position:absolute;left:14px;right:14px;bottom:14px;padding:10px 12px;border-radius:14px;background:rgba(8,42,39,.72);backdrop-filter:blur(12px);color:white;font-size:.82rem}
.cms-added-media{animation:cmsAdded .55s ease both}@keyframes cmsAdded{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(max-width:760px){
 body[data-hero-mode="single"] .hero-photo-stage-editorial{min-height:104vw!important}
 body[data-hero-mode="single"] .hero-photo-stage-editorial .hero-photo-main{inset:0!important;width:100%!important;height:100%!important}
 body[data-hero-mode="split"] .hero-photo-stage-editorial .hero-photo-main{inset:3% 14% 11% 0!important}
 body[data-hero-mode="split"] .hero-photo-stage-editorial .hero-photo-float-a{width:42%!important;right:0!important;bottom:0!important;top:auto!important}
 .cms-experience-extras{grid-template-columns:1fr 1fr;width:min(100% - 22px,1180px);gap:9px}.cms-experience-photo{min-height:220px;border-radius:18px}
}
.cms-floating-graphic{position:absolute;z-index:2;pointer-events:none;max-width:min(38vw,520px);opacity:var(--graphic-opacity,.2);transform:scale(var(--graphic-scale,.6));transform-origin:center;filter:drop-shadow(0 24px 45px rgba(8,42,39,.12))}.cms-graphic-section{top:18%;}.cms-graphic-global{position:fixed;top:45%;z-index:3}.cms-graphic-left{left:-7%}.cms-graphic-right{right:-7%}.cms-graphic-center{left:50%;transform:translateX(-50%) scale(var(--graphic-scale,.6))}.cms-motion-float{animation:cmsFloat calc(8s / var(--graphic-speed,1)) ease-in-out infinite alternate}.cms-motion-drift{animation:cmsDrift calc(18s / var(--graphic-speed,1)) ease-in-out infinite alternate}.cms-motion-spin{animation:cmsSpin calc(40s / var(--graphic-speed,1)) linear infinite}@keyframes cmsFloat{from{translate:0 -10px}to{translate:0 22px}}@keyframes cmsDrift{from{translate:-20px -10px}to{translate:28px 20px}}@keyframes cmsSpin{to{rotate:360deg}}@media(max-width:760px){.cms-floating-graphic{max-width:58vw;opacity:calc(var(--graphic-opacity,.2) * .8)}.cms-graphic-left{left:-20%}.cms-graphic-right{right:-20%}}
/* CMS-adjustable glass strength while retaining the deep-teal identity. */
.site-header,.site-header.is-light{background:color-mix(in srgb,var(--teal-deep) calc(var(--cms-glass,.92) * 100%),transparent)!important}


/* ==========================================================================\n   ERO V9 — PRODUCTION STABILITY + CINEMATIC PHOTO HERO\n   Consolidated layout safety layer. This supersedes the retired V6/V7 patches.\n   ========================================================================== */

/* ---- Global layout safety ------------------------------------------------ */
html { overflow-x:hidden; scroll-padding-top:96px; }
body { min-width:0; overflow-x:hidden; }
main, section, .section-shell, .section-shell > *, .story-layout, .story-layout > *,
.story-flow, .story-documentary, .split-heading, .circle-editorial, .consultancy-layout,
.partner-layout, .contact-layout, .conference-edition-panel, .community-carousel { min-width:0; }
section { overflow:clip; }
h1,h2,h3,h4,p,blockquote,figcaption,a,button { max-width:100%; }
.display-title,h1,h2,h3 { overflow-wrap:break-word; text-wrap:balance; }
p,li,small { overflow-wrap:break-word; }
img { max-width:100%; }
:focus-visible { outline:3px solid color-mix(in srgb,var(--gold) 78%,#fff); outline-offset:4px; }

/* ---- Branded loader ------------------------------------------------------ */
.loader-logo { width:112px; height:112px; position:relative; display:grid; place-items:center; border-radius:50%; background:#fff; box-shadow:0 22px 60px rgba(0,0,0,.24); }
.loader-logo img { width:86px; height:86px; object-fit:contain; border-radius:50%; }
.loader-logo-ring { position:absolute; inset:-12px; border:1px solid rgba(232,179,92,.62); border-radius:50%; box-shadow:0 0 0 10px rgba(232,179,92,.06),0 0 42px rgba(232,179,92,.22); }
.loader-copy { display:grid; gap:4px; justify-items:center; text-align:center; letter-spacing:normal; }
.loader-copy strong { font-family:var(--font-display); font-size:1.55rem; letter-spacing:.14em; }
.loader-copy span { font-size:.64rem; letter-spacing:.16em; text-transform:uppercase; opacity:.74; }

/* ---- Navigation: one premium deep-teal surface everywhere --------------- */
.site-header,.site-header.is-light { background:rgba(8,42,39,.92)!important; color:#fff!important; border-color:rgba(255,255,255,.16)!important; box-shadow:0 16px 50px rgba(4,28,26,.18)!important; backdrop-filter:blur(22px) saturate(140%)!important; }
.site-header .brand img { background:#fff; box-shadow:0 0 0 1px rgba(255,255,255,.16); }
.site-header .page-progress span { background:linear-gradient(90deg,var(--gold),#f9e4bc); }
.site-nav.is-open,.site-header.is-light .site-nav.is-open { background:rgba(8,42,39,.985)!important; color:#fff!important; }

/* ---- Hero: real full-bleed image + three editorial stickers -------------- */
.hero { isolation:isolate; min-height:100svh; overflow:hidden; background:var(--teal-deep); padding:132px 0 82px; }
.hero-background { position:absolute; inset:0; z-index:0; overflow:hidden; background:var(--teal-deep); }
.hero-background img { width:100%; height:100%; object-fit:cover; object-position:var(--ero-focal-x,50%) var(--ero-focal-y,50%); transform:scale(1.015); filter:saturate(.92) contrast(1.02); transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform 1.2s cubic-bezier(.2,.7,.2,1),filter .8s ease; }
.hero-background-veil { position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,30,27,.96) 0%,rgba(4,30,27,.88) 35%,rgba(4,30,27,.55) 63%,rgba(4,30,27,.34) 100%),linear-gradient(180deg,rgba(4,30,27,.14) 0%,rgba(4,30,27,.22) 60%,rgba(4,30,27,.8) 100%); }
.hero-mesh,.hero-cloud,.hero-glow { z-index:1; pointer-events:none; }
.hero-mesh { opacity:.48; }
.hero-shell-v2 { width:min(1180px,calc(100% - 40px)); grid-template-columns:minmax(0,.9fr) minmax(420px,.7fr); gap:clamp(38px,5vw,78px); position:relative; z-index:5; }
.hero-copy-v2 { text-shadow:0 3px 30px rgba(0,0,0,.18); }
.hero-shell-v2 .hero-title { font-size:clamp(4.6rem,7.8vw,8.8rem); line-height:.78; }
.hero-shell-v2 .hero-lead { color:rgba(255,255,255,.88); }
.hero-meta { color:rgba(255,255,255,.88); }
.hero-sticker-stage { min-height:min(70vh,680px); position:relative; overflow:visible; perspective:1100px; }
.hero-sticker { position:absolute; margin:0; overflow:hidden; padding:7px; background:rgba(255,253,249,.97); border:1px solid rgba(255,255,255,.55); border-radius:24px; box-shadow:0 30px 80px rgba(0,0,0,.34); transition:transform .65s cubic-bezier(.2,.7,.2,1),opacity .55s ease; }
.hero-sticker img { width:100%; height:100%; object-fit:cover; border-radius:18px; transition:opacity .55s ease,transform .8s cubic-bezier(.2,.7,.2,1); }
.hero-sticker:hover { z-index:8; }
.hero-sticker:hover img { transform:scale(1.035); }
.hero-sticker-a { width:58%; height:63%; left:0; bottom:5%; transform:rotate(-4deg); z-index:4; }
.hero-sticker-b { width:48%; height:47%; right:1%; top:2%; transform:rotate(3.5deg); z-index:3; }
.hero-sticker-c { width:43%; height:42%; right:-2%; bottom:2%; transform:rotate(5deg); z-index:5; }
.hero-sticker-a img { object-position:50% 48%; }
.hero-sticker-b img { object-position:50% 42%; }
.hero-sticker-c img { object-position:50% 48%; }
.hero-sticker-stage .hero-photo-note { position:absolute; left:39%; bottom:-1%; z-index:7; width:132px; aspect-ratio:1; border-radius:50%; display:grid; place-content:center; text-align:center; background:var(--gold); color:var(--teal-deep); transform:rotate(-7deg); box-shadow:0 18px 54px rgba(0,0,0,.24); }
.hero-sticker-stage .hero-photo-note span,.hero-sticker-stage .hero-photo-note strong { display:block; text-transform:uppercase; letter-spacing:.12em; font-size:.58rem; }
.hero-sticker-stage .hero-photo-note strong { font-family:var(--font-display); font-size:1.08rem; letter-spacing:-.02em; text-transform:none; }
.hero-background.cms-hero-bg-out img { opacity:.08; transform:scale(1.055); filter:blur(2px) saturate(.84); }
.hero-sticker.cms-sticker-out { opacity:.12; transform:translateY(10px) rotate(0deg) scale(.96)!important; }
.hero-sticker.cms-sticker-in img { animation:eroStickerIn .72s cubic-bezier(.2,.7,.2,1) both; }
@keyframes eroStickerIn { from{opacity:.1;transform:scale(1.06)} to{opacity:1;transform:none} }
body[data-hero-mode="single"] .hero-sticker-stage { display:none; }
body[data-hero-mode="split"] .hero-sticker-c { display:none; }

/* ---- Our Story: documentary rail spans the full section ------------------ */
.story-layout { grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:clamp(54px,7vw,104px); }
.story-documentary { grid-column:1 / -1; width:100%; max-width:100%; margin-top:86px; overflow:hidden; }
.story-documentary-head { grid-template-columns:minmax(170px,.38fr) minmax(0,1fr); }
.filmrail-toolbar,.stories-rail-toolbar { display:flex!important; align-items:center; justify-content:space-between; gap:18px; margin:0 0 16px; padding-top:14px; border-top:1px solid var(--hairline-dark); color:var(--muted); font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; }
.filmrail-toolbar > div,.stories-rail-toolbar > div { display:flex; gap:8px; flex:0 0 auto; }
.rail-arrow { width:46px; height:46px; border-radius:50%; border:1px solid var(--line); background:rgba(255,255,255,.72); color:var(--teal-deep); cursor:pointer; display:grid; place-items:center; transition:transform .2s,background .2s; }
.rail-arrow:hover { transform:translateY(-2px); background:#fff; }
.story-filmrail-v3 { display:flex!important; width:100%; max-width:100%; gap:14px; overflow-x:auto!important; overflow-y:hidden!important; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; overscroll-behavior-inline:contain; touch-action:pan-x pan-y pinch-zoom; padding:4px 2px 20px; }
.story-filmrail-v3::-webkit-scrollbar { display:none; }
.story-filmrail-v3 .film-frame,.story-filmrail-v3 .frame-portrait { display:block!important; flex:0 0 clamp(300px,34vw,470px)!important; width:auto!important; height:clamp(380px,42vw,560px)!important; transform:none!important; scroll-snap-align:start; scroll-snap-stop:always; }
.story-filmrail-v3 .frame-wide { flex-basis:clamp(360px,42vw,570px)!important; }

/* ---- Signature Exhale model: preserve the circle on every device -------- */
@media (max-width:560px) {
  .model-wheel { width:min(90vw,430px)!important; aspect-ratio:1!important; border:1px solid rgba(22,75,69,.16)!important; display:block!important; margin:24px auto 44px!important; }
  .model-wheel::before,.model-wheel::after,.wheel-core { display:grid!important; }
  .wheel-item,.wi-1,.wi-2,.wi-3,.wi-4,.wi-5,.wi-6 { position:absolute!important; width:72px!important; aspect-ratio:1!important; min-height:0!important; border-radius:50%!important; }
  .wi-1 { left:50%!important; top:-4%!important; transform:translateX(-50%)!important; }
  .wi-2 { right:-2%!important; top:20%!important; left:auto!important; }
  .wi-3 { right:-2%!important; bottom:20%!important; left:auto!important; top:auto!important; }
  .wi-4 { left:50%!important; bottom:-4%!important; transform:translateX(-50%)!important; top:auto!important; }
  .wi-5 { left:-2%!important; bottom:20%!important; top:auto!important; right:auto!important; }
  .wi-6 { left:-2%!important; top:20%!important; right:auto!important; }
  .wheel-item span { font-size:.72rem!important; }
}

/* ---- Native media rails: no transformed tracks, no clipped content ------ */
.community-carousel-v2 { overflow:visible; }
.community-carousel-v2 .carousel-track { width:100%; max-width:100%; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-behavior:smooth; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; touch-action:pan-x pan-y; scrollbar-width:none; transform:none!important; will-change:auto!important; padding:0 0 12px; }
.community-carousel-v2 .carousel-track::-webkit-scrollbar { display:none; }
.community-carousel-v2 .community-slide { scroll-snap-align:start; scroll-snap-stop:always; }

/* Stories rail: full content remains reachable on desktop and mobile. */
.stories-rail-toolbar { margin-top:-26px; }
.story-cards-v9 { display:flex; gap:16px; width:100%; max-width:100%; overflow-x:auto!important; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; touch-action:pan-x pan-y; transform:none!important; padding:6px 2px 18px; }
.story-cards-v9::-webkit-scrollbar { display:none; }
.story-cards-v9 .reflection-card { flex:0 0 clamp(330px,31vw,390px); min-width:0; scroll-snap-align:start; scroll-snap-stop:always; }
.reflection-card.reflection-photo { min-height:550px; }
.reflection-card.reflection-photo > div { min-width:0; }
.reflection-card.reflection-photo h3 { font-size:clamp(1.9rem,2.7vw,2.35rem); overflow-wrap:break-word; }

/* Consultancy media must always be visibly present, but only the explicit
   viewer affordance should open a lightbox. */
.consultancy-photo-static { opacity:1!important; transform:none!important; visibility:visible!important; cursor:default; }
.consultancy-photo-static img { opacity:1!important; visibility:visible!important; }

/* ---- Viewer -------------------------------------------------------------- */
#lightbox-caption:empty { display:none; }
body.lightbox-open .experience-dock { opacity:0!important; pointer-events:none!important; }
.media-lightbox { overscroll-behavior:contain; }
.lightbox-close { z-index:4; }

/* ---- Quick actions remain descriptive ----------------------------------- */
.experience-dock { background:rgba(8,42,39,.9); border-color:rgba(255,255,255,.14); }

/* ---- CMS V8/V9 compatibility -------------------------------------------- */
.cms-hero-crossfade-out img,.cms-hero-slide-out img,.cms-hero-zoom-out img { opacity:.08; }
body[data-hero-mode="clipboard"] .hero-sticker-stage { display:block; }

/* ---- Tablet and mobile --------------------------------------------------- */
@media (max-width:1080px) {
  .hero-shell-v2 { grid-template-columns:minmax(0,1fr) minmax(350px,.7fr); gap:28px; }
  .story-layout { display:block; }
  .story-sticky { position:static; }
  .story-flow { margin-top:44px; }
  .story-documentary { margin-top:64px; }
}

@media (max-width:760px) {
  html { scroll-padding-top:78px; }
  body { -webkit-text-size-adjust:100%; }
  .section-shell { width:calc(100% - 28px)!important; }
  .site-header { left:8px!important; right:8px!important; width:auto!important; transform:none!important; top:max(8px,env(safe-area-inset-top))!important; padding:8px 9px 8px 11px; grid-template-columns:auto 1fr auto; }
  .site-nav.is-open { position:fixed; left:8px; right:8px; width:auto; top:calc(max(8px,env(safe-area-inset-top)) + 62px); height:calc(100svh - 80px - env(safe-area-inset-top)); min-height:0; overflow-y:auto; justify-content:flex-start; padding:clamp(34px,9vh,74px) 24px calc(30px + env(safe-area-inset-bottom)); border-radius:24px; }
  .site-nav.is-open a { width:100%; padding:9px 0; }

  .hero { min-height:100svh; padding:106px 0 64px; }
  .hero-background-veil { background:linear-gradient(180deg,rgba(4,30,27,.78) 0%,rgba(4,30,27,.88) 42%,rgba(4,30,27,.92) 100%); }
  .hero-shell-v2 { width:calc(100% - 28px); grid-template-columns:1fr; gap:24px; }
  .hero-shell-v2 .hero-title { font-size:clamp(3.45rem,16.2vw,5.55rem); line-height:.81; max-width:100%; }
  .hero-kicker { font-size:.66rem; margin-bottom:18px; }
  .hero-lead { font-size:1rem; margin-top:24px; }
  .hero-actions { max-width:none; }
  .hero-meta { margin-top:28px; gap:6px; font-size:.72rem; }
  .hero-sticker-stage { min-height:108vw; max-height:520px; margin-top:10px; }
  .hero-sticker { padding:5px; border-radius:18px; }
  .hero-sticker img { border-radius:13px; }
  .hero-sticker-a { width:61%; height:68%; left:0; bottom:0; transform:rotate(-3deg); }
  .hero-sticker-b { width:46%; height:47%; right:0; top:0; transform:rotate(3deg); }
  .hero-sticker-c { width:42%; height:39%; right:1%; bottom:3%; transform:rotate(4deg); }
  .hero-sticker-stage .hero-photo-note { width:96px; left:48%; bottom:-1%; }
  .hero-orbit,.scroll-cue { display:none; }

  .display-title { font-size:clamp(2.55rem,11.5vw,4.1rem); line-height:1; letter-spacing:-.035em; }
  .story-sticky .display-title { font-size:clamp(2.55rem,11vw,3.8rem); }
  .story-intro { font-size:clamp(1.18rem,5.5vw,1.55rem); }
  .story-flow { gap:14px; }
  .story-chapter { width:100%; min-height:0; padding:80px 24px 28px; border-radius:24px; }
  .story-chapter h3 { font-size:clamp(1.9rem,8.3vw,2.5rem); line-height:1.05; }
  .story-chapter p { font-size:.96rem; line-height:1.62; }
  .story-chapter::before { font-size:4rem; right:14px; }
  .story-documentary-head { grid-template-columns:1fr; gap:8px; }
  .filmrail-toolbar,.stories-rail-toolbar { align-items:center; font-size:.64rem; letter-spacing:.05em; }
  .filmrail-toolbar > span,.stories-rail-toolbar > span { min-width:0; }
  .rail-arrow { width:44px; height:44px; }
  .story-filmrail-v3 .film-frame,.story-filmrail-v3 .frame-portrait,.story-filmrail-v3 .frame-wide { flex-basis:min(82vw,330px)!important; height:400px!important; }

  .community-carousel-v2 .community-slide { flex:0 0 88vw!important; min-height:520px; }
  .community-slide-copy { left:22px!important; right:22px!important; bottom:24px!important; }
  .community-slide-copy h3 { font-size:clamp(2.05rem,9.5vw,3rem)!important; }

  .stories-rail-toolbar { margin-top:-12px; }
  .story-cards-v9 .reflection-card { flex-basis:86vw; min-height:520px; }
  .reflection-card.reflection-photo h3 { font-size:clamp(1.85rem,8vw,2.3rem); }

  .experience-dock { left:10px!important; right:10px!important; width:auto!important; max-width:none!important; bottom:max(8px,env(safe-area-inset-bottom))!important; transform:none!important; display:grid!important; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:6px!important; padding:6px!important; border-radius:20px!important; }
  .experience-dock .dock-breathe,.experience-dock .dock-talk { width:100%!important; min-width:0!important; max-width:none!important; min-height:48px!important; padding:0 12px!important; border-radius:15px!important; justify-content:center!important; }
  .experience-dock .dock-breathe span:last-child,.experience-dock .dock-talk .dock-label { display:inline!important; }
  .experience-dock .dock-breathe { background:rgba(255,255,255,.09)!important; }
  .experience-dock .dock-talk { background:var(--gold)!important; color:var(--teal-deep)!important; }
  .site-footer { padding-bottom:calc(92px + env(safe-area-inset-bottom)); }

  .media-lightbox { display:flex; flex-direction:column; justify-content:center; padding:max(72px,calc(env(safe-area-inset-top) + 58px)) 14px max(94px,calc(env(safe-area-inset-bottom) + 78px)); }
  .media-lightbox figure { max-width:100%; max-height:calc(100svh - 184px); width:100%; height:auto; min-width:0; }
  .media-lightbox figure img { max-height:calc(100svh - 236px); border-radius:14px; }
  .lightbox-close { width:50px; height:50px; top:max(14px,env(safe-area-inset-top)); right:14px; background:rgba(255,255,255,.14); }
  .lightbox-nav { position:absolute; bottom:max(20px,calc(env(safe-area-inset-bottom) + 10px)); }
  .lightbox-prev { left:16px; } .lightbox-next { right:16px; }
  .lightbox-count { top:max(26px,calc(env(safe-area-inset-top) + 14px)); }
}

@media (max-width:370px) {
  .experience-dock { grid-template-columns:48px minmax(0,1fr); }
  .experience-dock .dock-breathe span:last-child { display:none!important; }
  .hero-sticker-stage { min-height:112vw; }
}

@media (prefers-reduced-motion:reduce) {
  .hero-background img,.hero-sticker,.hero-sticker img { transition:none!important; animation:none!important; }
}


/* ==========================================================================
   ERO V9.1 — FINAL RELEASE HARDENING
   ========================================================================== */
/* Keep sections vertically open so transformed/revealed content can never be
   cropped by a section boundary. Horizontal escape is still contained. */
section { overflow-x:clip; overflow-y:visible; }
.hero { overflow:hidden; }
.hero-background { pointer-events:none; }

/* Drag affordance for desktop media rails. */
[data-story-rail],[data-stories-rail],.ctt-gallery,.community-carousel .carousel-track,.conference-edition-track { cursor:grab; }
[data-story-rail].is-dragging,[data-stories-rail].is-dragging,.ctt-gallery.is-dragging,.community-carousel .carousel-track.is-dragging,.conference-edition-track.is-dragging { cursor:grabbing; user-select:none; scroll-behavior:auto!important; }

/* Model pseudo-rings and core have different display requirements. */
@media (max-width:560px) {
  .model-wheel::before,.model-wheel::after { display:block!important; }
  .wheel-core { display:grid!important; }
}

/* The sticker stage used to inherit an old mobile carousel rule. It is an
   editorial composition, not a rail. */
@media (max-width:760px) {
  .hero-sticker-stage {
    display:block!important;
    overflow:visible!important;
    overflow-x:visible!important;
    scroll-snap-type:none!important;
    padding:0!important;
    touch-action:auto!important;
  }
}

/* Avoid content being hidden behind the fixed dock at the end of sections. */
@media (max-width:760px) {
  main { padding-bottom:18px; }
  #contact { padding-bottom:118px; }
}

/* Prevent layout shifts in image-led cards before files decode. */
.hero-sticker img,.film-frame img,.ctt-photo img,.ctt-hero-photo img,
.reflection-photo img,.community-slide img,.conference-focus-image img,
.consultancy-photo img,.archive-item img { background:#dbe5e0; }

/* ---- CMS controls that must map to visible public behaviour -------------- */
html.cms-motion-off *, html.cms-motion-off *::before, html.cms-motion-off *::after {
  animation-play-state:paused!important;
  scroll-behavior:auto!important;
}
body[data-hero-transition="crossfade"] .hero-background.cms-hero-bg-out img { opacity:.04; transform:scale(1.025); filter:saturate(.82); }
body[data-hero-transition="slide"] .hero-background.cms-hero-bg-out img { opacity:.12; transform:scale(1.035) translateX(-2.4%); filter:saturate(.88); }
body[data-hero-transition="zoom"] .hero-background.cms-hero-bg-out img { opacity:.14; transform:scale(1.085); filter:saturate(.84) contrast(1.02); }
body[data-hero-transition="slide"] .hero-sticker.cms-sticker-out { transform:translateX(22px) rotate(0) scale(.97)!important; }
body[data-hero-transition="zoom"] .hero-sticker.cms-sticker-out { transform:scale(.9) rotate(0)!important; }

/* Experience Studio visual-style choices. */
body[data-breath-style="rings"] .breath-circle { border-radius:50%; }
body[data-breath-style="lotus"] .lottie-breath { opacity:.22; }
body[data-breath-style="lotus"] .breath-circle::before {
  inset:16%; border:0; border-radius:0; clip-path:polygon(50% 0,65% 31%,100% 50%,65% 69%,50% 100%,35% 69%,0 50%,35% 31%);
  background:linear-gradient(135deg,rgba(232,179,92,.30),rgba(255,255,255,.12));
  box-shadow:none;
}
body[data-breath-style="lotus"] .breath-circle::after { inset:28%; border-style:solid; border-color:rgba(22,75,69,.16); }
body[data-breath-style="orbit"] .breath-circle::after { inset:15%; border:1px dashed rgba(22,75,69,.35); animation:eroBreathOrbit 12s linear infinite; }
body[data-breath-style="orbit"] .breath-halo { border-style:dashed; animation:eroBreathOrbit 16s linear infinite; }
body[data-breath-style="orbit"] .halo-2 { animation-direction:reverse; animation-duration:22s; }
@keyframes eroBreathOrbit { to { transform:rotate(360deg); } }


/* ==========================================================================
   ERO V9.2 — DEPLOYMENT SIGN-OFF HARDENING
   ========================================================================== */
/* Keyboard-only skip link: never leaks into normal visual layout or screenshots. */
.skip-link{
  opacity:0!important; visibility:hidden!important; pointer-events:none!important;
  transform:translateY(-180%)!important;
}
.skip-link:focus,.skip-link:focus-visible{
  opacity:1!important; visibility:visible!important; pointer-events:auto!important;
  transform:translateY(0)!important;
}

/* Anchor navigation should land below the fixed glass navigation. */
main section[id]{scroll-margin-top:96px}

/* Keep long editorial copy resilient even when editors add unusually long words/URLs. */
.display-title,.story-chapter h3,.reflection-card h3,.conference-edition-copy h3,
.consultancy-cta h3,.journal-card h3,.partner-chip,.contact-details a{
  overflow-wrap:anywhere;
}

/* Mobile quick actions: descriptive, but deliberately small and peripheral.
   Runtime JS hides them while the reader is actively scrolling. */
@media (max-width:760px){
  .experience-dock{
    left:auto!important; right:10px!important; width:min(174px,calc(100vw - 20px))!important;
    max-width:174px!important; bottom:max(10px,env(safe-area-inset-bottom))!important;
    transform:translateY(0)!important; display:grid!important; grid-template-columns:1fr!important;
    gap:5px!important; padding:5px!important; border-radius:18px!important;
    transition:transform .28s cubic-bezier(.2,.7,.2,1),opacity .22s ease!important;
  }
  .experience-dock .dock-breathe,.experience-dock .dock-talk{
    width:100%!important; min-width:0!important; max-width:none!important; min-height:40px!important;
    padding:0 11px!important; border-radius:13px!important; justify-content:center!important;
    font-size:.69rem!important; gap:7px!important;
  }
  .experience-dock .dock-breathe span:last-child,.experience-dock .dock-talk .dock-label{display:inline!important}
  .experience-dock .dock-icon{width:17px!important}
  .experience-dock.is-dock-hidden{
    opacity:0!important; pointer-events:none!important;
    transform:translateY(calc(100% + 24px))!important;
  }
  .site-footer{padding-bottom:calc(104px + env(safe-area-inset-bottom))!important}
}
@media (max-width:340px){
  .experience-dock{width:158px!important;max-width:158px!important}
  .experience-dock .dock-breathe,.experience-dock .dock-talk{font-size:.65rem!important}
}

/* Horizontal media rails must own horizontal gestures without widening the page. */
[data-story-rail],[data-stories-rail],.ctt-gallery,.edition-track,
.community-carousel .carousel-track{
  min-width:0; max-width:100%; overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch; touch-action:pan-x pan-y;
}

/* Viewer controls remain reachable around mobile browser chrome. */
@media (max-width:760px){
  .media-lightbox{padding-top:max(76px,calc(env(safe-area-inset-top) + 62px))!important}
  .lightbox-close{top:max(12px,calc(env(safe-area-inset-top) + 8px))!important}
  .lightbox-count{top:max(24px,calc(env(safe-area-inset-top) + 12px))!important}
}

/* ==========================================================================\n   ERO V10 — CINEMATIC MOBILE HERO + DESKTOP STORY/RAIL STABILITY\n   ========================================================================== */

/* Horizontal media should feel native on desktop. Mandatory snap was fighting
   trackpads, pointer-drag and Lenis. Desktop uses proximity snapping; mobile
   keeps a stronger snap affordance. */
@media (min-width:761px){
  .story-filmrail-v3,
  .community-carousel-v2 .carousel-track,
  .story-cards-v9{
    scroll-snap-type:x proximity!important;
    scroll-behavior:auto!important;
    overscroll-behavior-x:contain!important;
    overscroll-behavior-y:auto!important;
    touch-action:pan-x pan-y!important;
  }
  .story-filmrail-v3 .film-frame,
  .community-carousel-v2 .community-slide,
  .story-cards-v9 .reflection-card{
    scroll-snap-stop:normal!important;
  }
  [data-story-rail], [data-stories-rail], .community-carousel-v2 .carousel-track{
    scrollbar-width:thin;
    scrollbar-color:rgba(22,75,69,.22) transparent;
  }
  [data-story-rail]::-webkit-scrollbar,
  [data-stories-rail]::-webkit-scrollbar,
  .community-carousel-v2 .carousel-track::-webkit-scrollbar{height:6px;display:block}
  [data-story-rail]::-webkit-scrollbar-thumb,
  [data-stories-rail]::-webkit-scrollbar-thumb,
  .community-carousel-v2 .carousel-track::-webkit-scrollbar-thumb{
    background:rgba(22,75,69,.20);border-radius:999px;
  }
}

/* Our Story regains the cinematic editorial feel. Geometry remains stable;
   motion is transform-only and therefore cannot widen the desktop layout. */
@media (min-width:901px){
  .story{position:relative;isolation:isolate;padding-top:170px;padding-bottom:170px}
  .story::before{
    content:"";position:absolute;inset:6% 0 auto auto;width:min(44vw,690px);aspect-ratio:1;
    background:radial-gradient(circle,rgba(232,179,92,.13),rgba(232,179,92,0) 66%);
    filter:blur(12px);pointer-events:none;z-index:-1;
  }
  .story-layout{align-items:start}
  .story-sticky{top:142px;padding-right:12px}
  .story-sticky .eyebrow{transform-origin:left center}
  .story-flow{gap:54px;perspective:1300px}
  .story-chapter{
    min-height:440px;padding:52px 50px;border-radius:34px;
    background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(255,253,249,.66));
    box-shadow:0 28px 80px rgba(46,57,49,.09);transform-origin:50% 20%;
    backface-visibility:hidden;will-change:transform,opacity;
  }
  .story-chapter::after{
    content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
    background:linear-gradient(120deg,rgba(232,179,92,.09),transparent 34%,rgba(22,75,69,.035));
  }
  .story-chapter .chapter-index{
    width:64px;height:64px;border-radius:50%;display:grid;place-items:center;
    border:1px solid rgba(22,75,69,.16);font-size:.82rem;letter-spacing:.12em;
    position:absolute;top:34px;left:38px;background:rgba(255,255,255,.56);backdrop-filter:blur(9px);
  }
  .story-chapter h3{font-size:clamp(2.55rem,3.35vw,4.15rem);max-width:650px;letter-spacing:-.035em}
  .story-chapter p{font-size:1.07rem;line-height:1.72;max-width:680px}
  .story-documentary{margin-top:118px}
  .story-documentary-head{margin-bottom:26px}
}

/* Mobile hero: one cohesive cinematic composition instead of a long stack of
   copy + controls + a second visual scene. The photo remains the environment,
   while the three CMS-controlled stickers sit within the same viewport story. */
@media (max-width:760px){
  .hero{
    min-height:max(100svh,860px)!important;
    padding:94px 0 34px!important;
    display:block!important;
    overflow:hidden!important;
  }
  .hero-background{inset:0!important}
  .hero-background img{object-position:var(--hero-mobile-position,50% 44%)!important;filter:saturate(.94) contrast(1.04)!important}
  .hero-background-veil{
    background:
      linear-gradient(180deg,rgba(4,30,27,.74) 0%,rgba(4,30,27,.49) 31%,rgba(4,30,27,.34) 54%,rgba(4,30,27,.82) 100%),
      linear-gradient(90deg,rgba(4,30,27,.22),transparent 54%)!important;
  }
  .hero-mesh{opacity:.46!important}
  .hero-cloud,.hero-orbit{display:none!important}
  .hero-glow{width:90vw!important;height:90vw!important;right:-48vw!important;top:46%!important;opacity:.5!important}
  .hero-shell-v2{
    min-height:calc(max(100svh,860px) - 128px);width:min(100% - 30px,560px)!important;
    display:grid!important;grid-template-columns:1fr!important;grid-template-rows:auto 1fr!important;
    gap:14px!important;align-items:start!important;
  }
  .hero-copy-v2{padding-top:10px!important;z-index:8!important}
  .hero-kicker{font-size:.61rem!important;line-height:1.35;letter-spacing:.14em!important;margin-bottom:15px!important;opacity:.8!important}
  .hero-shell-v2 .hero-title{
    font-size:clamp(3.15rem,15vw,4.65rem)!important;line-height:.79!important;
    letter-spacing:-.06em!important;max-width:350px!important;
  }
  .hero-exhale{margin-top:.08em!important}
  .hero-shell-v2 .hero-lead{
    margin-top:20px!important;max-width:350px!important;font-size:.97rem!important;line-height:1.52!important;
    color:rgba(255,255,255,.88)!important;
  }
  .hero-actions{
    display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;
    margin-top:20px!important;max-width:100%!important;
  }
  .hero-actions .primary-button,.hero-actions .secondary-button{
    min-height:48px!important;padding:0 12px!important;font-size:.72rem!important;border-radius:999px!important;
  }
  .hero-meta{
    display:flex!important;flex-direction:row!important;gap:6px!important;margin-top:13px!important;
    max-width:100%!important;overflow-x:auto!important;scrollbar-width:none!important;
  }
  .hero-meta::-webkit-scrollbar{display:none}
  .hero-meta span{
    flex:0 0 auto;padding:6px 9px;border:1px solid rgba(255,255,255,.17);border-radius:999px;
    background:rgba(4,30,27,.25);backdrop-filter:blur(8px);font-size:.61rem!important;opacity:.82!important;
  }
  .hero-photo-stage{
    min-height:0!important;height:300px!important;margin-top:4px!important;position:relative!important;z-index:7!important;
    align-self:end!important;perspective:900px!important;
  }
  .hero-sticker{
    border:5px solid rgba(255,253,249,.96)!important;border-radius:18px!important;
    box-shadow:0 18px 48px rgba(0,0,0,.34)!important;background:#fff!important;
  }
  .hero-sticker-a{width:50%!important;height:236px!important;left:0!important;right:auto!important;bottom:0!important;top:auto!important;transform:rotate(-4deg)!important;z-index:3!important}
  .hero-sticker-b{width:40%!important;height:155px!important;right:3%!important;top:4px!important;bottom:auto!important;left:auto!important;transform:rotate(3.5deg)!important;z-index:2!important}
  .hero-sticker-c{display:block!important;width:36%!important;height:142px!important;right:0!important;bottom:3px!important;left:auto!important;top:auto!important;transform:rotate(5deg)!important;z-index:4!important}
  .hero-sticker img{object-fit:cover!important;width:100%!important;height:100%!important;border-radius:12px!important}
  .hero-photo-note{
    width:86px!important;height:86px!important;left:45%!important;bottom:49px!important;
    font-size:.49rem!important;letter-spacing:.08em!important;box-shadow:0 14px 34px rgba(0,0,0,.24)!important;
  }
  .hero-photo-note strong{font-size:1.08rem!important}
  .scroll-cue{display:none!important}
}
@media (max-width:370px){
  .hero{min-height:max(100svh,820px)!important}
  .hero-shell-v2{min-height:calc(max(100svh,820px) - 122px)}
  .hero-shell-v2 .hero-title{font-size:clamp(2.95rem,14.3vw,4.2rem)!important}
  .hero-photo-stage{height:274px!important}
  .hero-sticker-a{height:214px!important}
  .hero-sticker-b{height:142px!important}
  .hero-sticker-c{height:128px!important}
}

/* Strong snap remains useful for touch. */
@media (max-width:760px){
  .story-filmrail-v3,.community-carousel-v2 .carousel-track,.story-cards-v9{scroll-snap-type:x mandatory!important}
}

/* V10 rail feedback: controls visibly communicate the ends of a collection. */
.rail-arrow:disabled,.carousel-button:disabled{
  opacity:.3!important;cursor:default!important;transform:none!important;pointer-events:none!important;
}
@media (min-width:761px){
  .filmrail-toolbar,.stories-rail-toolbar{position:relative;z-index:3}
  .filmrail-toolbar span,.stories-rail-toolbar span{letter-spacing:.055em;text-transform:none;font-size:.8rem}
}

/* ==========================================================================\n   ERO V11 — STORY SEQUENCE + WHEEL-LED EDITORIAL RAILS\n   ========================================================================== */

/* Our Story is intentionally two distinct beats: the four-chapter sequence,
   followed by a separate visual archive. This lets the opening statement stay
   pinned only while chapters 01–04 pass, then leave naturally with the section. */
.story-shell-v11{display:block!important}
.story-sequence{width:100%;max-width:100%;margin:0}
.story-archive-section{position:relative;padding:0 0 150px;overflow:clip}
.story-archive-section .story-documentary{margin-top:0!important;padding-top:58px}

.story-progress{display:flex;align-items:center;gap:8px;margin-top:38px;width:min(100%,360px)}
.story-progress-step{
  appearance:none;border:0;background:transparent;color:rgba(22,75,69,.44);
  display:flex;align-items:center;gap:8px;padding:8px 0;min-width:0;cursor:pointer;
  font:600 .73rem/1 var(--font-body);letter-spacing:.13em;transition:color .35s ease,opacity .35s ease;
}
.story-progress-step span{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;border:1px solid rgba(22,75,69,.16);background:rgba(255,255,255,.35);transition:all .38s cubic-bezier(.2,.7,.2,1)}
.story-progress-step i{display:block;width:24px;height:1px;background:rgba(22,75,69,.18);transform-origin:left center;transition:width .38s ease,background .38s ease}
.story-progress-step.is-active{color:var(--teal)}
.story-progress-step.is-active span{border-color:rgba(232,179,92,.78);background:rgba(232,179,92,.16);box-shadow:0 8px 24px rgba(232,179,92,.13);transform:scale(1.06)}
.story-progress-step.is-active i{width:42px;background:var(--gold)}
.story-progress-step:last-child i{display:none}

@media (min-width:901px){
  .story{padding-top:170px!important;padding-bottom:150px!important;overflow:visible!important}
  .story-sequence{display:grid!important;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr)!important;gap:clamp(54px,7vw,104px)!important;align-items:start!important}
  .story-sequence .story-sticky{
    position:sticky!important;top:142px!important;align-self:start!important;
    padding-right:12px!important;transform:none!important;will-change:auto!important;
  }
  .story-sequence .story-flow{gap:clamp(54px,7vh,82px)!important;perspective:1300px}
  .story-sequence .story-chapter{
    min-height:clamp(470px,64vh,650px)!important;
    padding:52px 50px!important;
  }
  .story-archive-section{padding-top:24px;padding-bottom:170px}
  .story-archive-section::before{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(180deg,rgba(248,241,229,.78),rgba(255,253,249,.96) 34%,rgba(255,253,249,.94));
    z-index:-1;
  }
  .story-archive-section .story-documentary{border-top:1px solid var(--hairline-dark);padding-top:56px}
}

@media (max-width:900px){
  .story-progress{margin-top:26px;gap:4px}
  .story-progress-step{flex:1;gap:5px}
  .story-progress-step span{width:31px;height:31px;font-size:.66rem}
  .story-progress-step i{width:100%;max-width:30px}
  .story-progress-step.is-active i{width:100%;max-width:40px}
  .story-archive-section{padding:18px 0 100px}
}

/* No visible desktop scrollbar is required. Visitors navigate these editorial
   rails with the wheel/trackpad, swipe/drag, or the explicit arrows. */
@media (min-width:761px){
  [data-story-rail],
  [data-stories-rail],
  .community-carousel-v2 .carousel-track{
    scrollbar-width:none!important;
    -ms-overflow-style:none!important;
    scroll-snap-type:none!important;
    scroll-behavior:auto!important;
    overscroll-behavior-x:contain!important;
    overscroll-behavior-y:auto!important;
  }
  [data-story-rail]::-webkit-scrollbar,
  [data-stories-rail]::-webkit-scrollbar,
  .community-carousel-v2 .carousel-track::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
  [data-story-rail] .film-frame,
  [data-stories-rail] .reflection-card,
  .community-carousel-v2 .community-slide{scroll-snap-align:none!important;scroll-snap-stop:normal!important}
}

/* Subtle desktop affordance: the rail itself reads as scrollable without a
   browser scrollbar or a grab-only interaction. */
@media (hover:hover) and (pointer:fine){
  [data-story-rail], [data-stories-rail], .community-carousel-v2 .carousel-track{cursor:ew-resize!important}
  [data-story-rail].is-dragging, [data-stories-rail].is-dragging, .community-carousel-v2 .carousel-track.is-dragging{cursor:grabbing!important}
  .filmrail-toolbar>span,.stories-rail-toolbar>span{opacity:.68}
}
