/* RAW Sound Healing v3 — posters on desktop, composed mobile */
:root {
  --pearl: #F3EEE4; --pearl-2: #EDE5D8; --ink: #1C1915; --ink-2: #3E372F; --ink-3: #5E554A;
  --graphite: #191816; --cream: #F3EADB; --cream-2: #D9CDBA;
  --bronze: #8C6A3E; --gold: #D8B983; --gold-2: #E9D3A6;
  --ease: cubic-bezier(.22, .61, .12, 1);
  --g: 20px;
  --ch0: #F06A5E; --ch1: #F09A4A; --ch2: #EDC74E; --ch3: #4FD07E; --ch4: #56B4E6; --ch5: #7E86E8; --ch6: #B996F0;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 70px; }
body { margin: 0; background: var(--pearl); color: var(--ink); font: 400 16px/1.6 var(--sans); overflow-x: hidden; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button { font: inherit; color: inherit; }
h1, h2, h3, h4, p, figure, blockquote, ol, ul { margin: 0; padding: 0; }
ul, ol { list-style: none; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--ink); color: var(--pearl); padding: 10px 14px; }
.skip:focus { top: 12px; }
:focus-visible { outline: 1px solid var(--bronze); outline-offset: 3px; }
.dark :focus-visible { outline-color: var(--gold); }

/* metal lettering (concept bronze) */
.metal { background: linear-gradient(176deg, #A17A45 0%, #6E4E28 30%, #B48C55 52%, #5C3F1F 74%, #8F6B3B 100%); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }
.metal-light { background-image: linear-gradient(176deg, #F6E3BE 0%, #D9B57A 35%, #FFF0D2 55%, #B98C52 80%, #E6C892 100%); }
.dark .metal-light { filter: drop-shadow(0 0 18px rgba(255, 210, 150, .12)); }

/* media + skeleton */
.media { position: relative; display: block; overflow: hidden; background: var(--pearl-2); }
.dark .media { background: #24221F; }
.media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, transparent 30%, rgba(255,255,255,.32) 50%, transparent 70%) 0 0 / 220% 100%; animation: skel 1.5s linear infinite; }
.dark .media::after { background-image: linear-gradient(100deg, transparent 30%, rgba(255,255,255,.06) 50%, transparent 70%); }
.media img { width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 50%); opacity: 0; transition: opacity 1s var(--ease); }
.media.is-loaded::after { display: none; }
.media.is-loaded img { opacity: 1; }
@keyframes skel { from { background-position: 120% 0; } to { background-position: -120% 0; } }

/* header */
.hdr { position: fixed; inset: 0 0 auto; z-index: 50; display: flex; align-items: center; gap: 18px; padding: calc(10px + env(safe-area-inset-top, 0px)) max(var(--g), env(safe-area-inset-right, 0px)) 10px max(var(--g), env(safe-area-inset-left, 0px)); transition: background .6s, box-shadow .6s, color .6s; }
.hdr.is-solid { background: rgba(243, 238, 228, .9); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 1px 0 rgba(28,25,21,.08); }
.hdr.on-dark:not(.is-solid) { color: var(--cream); }
.brand { display: flex; align-items: center; gap: 9px; text-decoration: none; margin-right: auto; }
.logo-mark { width: 32px; height: 38px; }
.brand span { display: flex; flex-direction: column; line-height: 1; }
.brand b { font: 500 20px/1 var(--sans); letter-spacing: .34em; }
.brand i { font: 400 11px/1.2 var(--sans); font-style: normal; letter-spacing: .08em; margin-top: 4px; }
.nav { display: none; }
.lang { display: flex; gap: 2px; }
.lang a { font: 500 12px/1 var(--sans); letter-spacing: .16em; padding: 9px 9px; text-decoration: none; opacity: .55; }
.lang a[aria-current] { opacity: 1; box-shadow: inset 0 -1px 0 currentColor; }
.burger { width: 44px; height: 44px; border: 0; background: transparent; display: grid; place-content: center; gap: 7px; cursor: pointer; }
.burger span { display: block; width: 22px; height: 1px; background: currentColor; transition: transform .35s var(--ease); }
.burger[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { transform: translateY(-4px) rotate(-45deg); }
.menu { position: fixed; inset: 0; z-index: 45; background: var(--pearl); padding: 110px max(var(--g), env(safe-area-inset-left, 0px)) 40px; display: flex; flex-direction: column; gap: 32px; }
.menu[hidden] { display: none; }
.menu nav { display: flex; flex-direction: column; }
.menu nav a { font: 400 36px/1.1 var(--serif); text-transform: uppercase; text-decoration: none; padding: 16px 0; border-bottom: 1px solid rgba(28,25,21,.12); display: flex; gap: 16px; align-items: baseline; }
.menu nav small { font: 500 12px var(--sans); letter-spacing: .2em; color: var(--bronze); }
.menu p { color: var(--ink-3); }
body.menu-open { overflow: hidden; }

/* buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 16px; min-height: 54px; padding: 0 24px; font: 500 13px/1 var(--sans); letter-spacing: .24em; text-transform: uppercase; text-decoration: none; cursor: pointer; border: 1px solid currentColor; background: transparent; }
.btn .ico { width: 22px; height: 11px; flex: none; }
.btn-frame { border-color: rgba(60, 45, 28, .55); }
.dark .btn-frame { border-color: rgba(233, 211, 166, .6); color: var(--gold-2); }
.coin { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: radial-gradient(circle at 35% 30%, #B48C55, #6E4E28); color: #FFF5E4; flex: none; }
.coin .ico-d { width: 10px; height: 16px; }
.btn-gold { width: 100%; min-height: 58px; border: 0; color: #2B2117; background: linear-gradient(180deg, #F0D9AA 0%, #D2AE70 55%, #BC965A 100%); box-shadow: inset 0 1px 0 rgba(255,255,255,.55), 0 10px 30px -12px rgba(220,170,90,.55); font: 400 20px/1 var(--serif); letter-spacing: .06em; }

/* type (mobile values) */
.eyebrow { font: 500 12px/1.5 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--ink-2); }
.dark .eyebrow, .eyebrow-gold { color: var(--gold-2); }
.body { font: 400 16px/1.65 var(--sans); color: var(--ink-2); }
.dark .body { color: var(--cream); }
.lead { font: 400 17px/1.6 var(--sans); color: var(--ink); }
.h-sec { font: 400 40px/1.04 var(--serif); text-transform: uppercase; letter-spacing: .005em; text-wrap: balance; }
.dark .h-sec { color: #F4EBDD; }
.fine { font: 400 13px/1.55 var(--sans); color: var(--ink-3); }
.dark .fine { color: rgba(243,234,219,.72); }
.pending { display: inline-block; font: 500 11px/1.4 var(--sans); letter-spacing: .14em; text-transform: uppercase; padding: 3px 8px; border: 1px dashed currentColor; color: var(--bronze); }
.dark .pending { color: var(--gold-2); }
.meta { font: 500 11px/1.4 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--ink-3); }

/* reveal: text rises out of a mask */
.js .rv { opacity: 0; transform: translateY(26px); filter: blur(6px); transition: opacity 1.2s var(--ease), transform 1.2s var(--ease), filter 1.2s var(--ease); transition-delay: calc(var(--d, 0) * 110ms + 80ms); }
.js .is-in .rv, .js .rv.is-in { opacity: 1; transform: none; filter: none; }
.js .plate .media img { transform: scale(1.07); transition: opacity 1.2s var(--ease), transform 2.6s var(--ease); }
.js .is-in .plate .media img { transform: scale(1); }

/* living light waves (canvas) */
.wave { position: absolute; left: 0; width: 100%; pointer-events: none; z-index: 1; }

/* =============== MOBILE (default) =============== */
.poster { position: relative; isolation: isolate; overflow: hidden; padding: 0 max(var(--g), env(safe-area-inset-right, 0px)) 72px max(var(--g), env(safe-area-inset-left, 0px)); padding-top: var(--pt, 140vw); background: var(--bg, var(--pearl)); }
.poster.dark { color: var(--cream); }
.plate { position: absolute; inset: 0 0 auto; height: var(--ph, 150vw); z-index: 0; }
.plate .media { width: 100%; height: 100%; background: transparent; }
.plate::after { content: ""; position: absolute; inset: auto 0 0; height: 30%; background: linear-gradient(to bottom, transparent, var(--bg, var(--pearl))); }
.copy { position: relative; display: flex; flex-direction: column; gap: 22px; }
.mhead { position: absolute; z-index: 2; left: 0; right: 0; top: calc(var(--mh, 96px) - var(--pt, 140vw)); display: flex; flex-direction: column; gap: 14px; }
.side, .mirror, .r-dot, .sign, .top-tags, .scroll-cue, .rule-short, .rule-dot, .cc-side, .rail, .wave.d-only, .vlad-line { display: none; }
.poster .wave { top: calc(var(--ph, 150vw) * var(--wy) / 100 - 70px); height: 140px; }
.s-formats .wave, .s-after .wave, .s-faq .wave, .s-centers .wave, .s-ritual .wave, .s-book .wave { display: none; }
.formula.mirror { display: none; }
.h-wide { font-size: 8.6vw; }
.s-faq .h-big { font-size: 9vw; }


/* section-specific mobile */
.s-hero { --pt: 158vw; --ph: 166vw; --mh: 92px; }
.s-hero .plate::after { height: 26%; }
.h-hero { font: 400 50px/.98 var(--serif); letter-spacing: -.005em; }
.s-hero .lead { max-width: 30em; }
.s-hero .btn { align-self: flex-start; padding-right: 10px; }

.s-rec { --pt: 138vw; --mh: 96px; }
.s-rec .plate::after { height: 22%; }
.states { display: grid; gap: 16px; padding: 8px 0 6px 22px; border-left: 1px solid rgba(217,185,131,.35); }
.state { position: relative; font: 500 13px/1.45 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gold-2); }
.state::before { content: ""; position: absolute; left: -26px; top: .45em; width: 7px; height: 7px; border-radius: 50%; background: #FFEBC4; box-shadow: 0 0 0 4px rgba(255,220,160,.12), 0 0 14px 3px rgba(255,214,150,.55); }
.statement { font: italic 400 21px/1.45 var(--serif); color: #F4EBDD; text-align: left; }

.s-path { --bg: #F1ECE3; --pt: 122vw; --mh: 92px; }
.s-path .plate::after { height: 20%; }
.formula { font: 400 34px/1.08 var(--serif); text-transform: uppercase; display: flex; flex-direction: column; }
.formula b { font-weight: 400; color: var(--bronze); font-size: .7em; line-height: 1.2; }

.s-inst { --pt: 104px; padding-bottom: 56px; }
.s-inst > .plate { display: none; }
.s-inst .h-sec { text-align: left; }
.inst-cap { display: none; }
.inst-m { position: relative; z-index: 2; display: grid; gap: 30px; margin-top: 28px; }
.inst-m figcaption { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.inst-m b { font: 400 32px/1 var(--serif); text-transform: uppercase; font-weight: 400; }
.inst-m span { font: 500 12px var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--ink-3); }
.inst-m .media { aspect-ratio: 4 / 4.4; }

.s-vlad { --bg: #F2ECE1; --pt: 138vw; --mh: 80px; }
.h-vlad { display: flex; flex-direction: column; font: 400 21vw/.84 var(--serif); text-transform: uppercase; letter-spacing: -.02em; }
.h-vlad > span:last-child { padding-left: .55em; }
.lead-serif { font: 400 28px/1.2 var(--serif); }
.quote-v { font: italic 400 21px/1.45 var(--serif); color: var(--ink); padding-top: 20px; border-top: 1px solid rgba(140,106,62,.35); }
.eyebrow-c { color: var(--ink-3); }

.ritual-run { position: relative; }
.s-ritual { --pt: 86vw; }
.s-ritual .plate::after { height: 30%; }
.h-big { font-size: 46px; }
.r-panel { padding-top: 18px; border-top: 1px solid rgba(217,185,131,.3); min-height: 170px; }
.r-count { font: 500 13px var(--sans); letter-spacing: .2em; color: var(--gold); display: flex; align-items: center; gap: 12px; }
.r-count b { color: #FFF1D8; font-weight: 500; }
.r-count i { width: 60px; height: 1px; background: rgba(217,185,131,.5); }
.r-panel h3 { font: 400 28px/1.1 var(--serif); text-transform: uppercase; color: #F4EBDD; margin: 12px 0 8px; }
.r-steps { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(217,185,131,.25); }
.r-step { text-align: left; padding: 16px 10px 16px 0; background: none; border: 0; border-bottom: 1px solid rgba(217,185,131,.2); font: 500 12px/1.4 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: rgba(243,234,219,.62); cursor: pointer; display: flex; flex-direction: column; gap: 6px; min-height: 76px; }
.r-step small { font: 400 20px/1 var(--serif); letter-spacing: 0; color: var(--gold); }
.r-step[aria-selected="true"] { color: #FFF1D8; }
.r-quote { font: 500 12px/1.9 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--gold-2); text-align: center; }

.s-formats { --bg: #F3EDE3; --pt: 96px; --ph: 100%; }
.s-formats .plate { height: 100%; }
.s-formats .plate .media img { object-position: 50% 30%; }
.s-formats .plate::after { inset: 0; height: auto; background: linear-gradient(180deg, rgba(243,237,227,.9) 0%, rgba(243,237,227,.55) 30%, rgba(243,237,227,.72) 100%); }
.cards { display: grid; gap: 26px; }
.card { background: #FBF7F0; box-shadow: 0 30px 60px -34px rgba(70, 45, 20, .45); display: grid; }
.card:nth-child(odd) { transform: rotate(-.8deg); }
.card:nth-child(even) { transform: rotate(.8deg); }
.card-img { aspect-ratio: 4 / 3.2; }
.card-solo .card-img { aspect-ratio: 4 / 4; }
.card-txt { padding: 18px 18px 22px; display: grid; gap: 10px; justify-items: start; }
.card h3 { font: 400 34px/1 var(--serif); text-transform: uppercase; }
.price-note { font: 500 12px/1.4 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--bronze); }
.eyebrow-l::before { content: ""; display: inline-block; width: 40px; height: 1px; background: currentColor; vertical-align: middle; margin-right: 14px; opacity: .6; }

.s-vib { --pt: 70vw; --mh: 92px; }
.rhythms { display: grid; gap: 22px; padding-top: 22px; border-top: 1px solid rgba(217,185,131,.35); }
.rhythm { position: relative; padding-left: 24px; }
.rhythm::before { content: ""; position: absolute; left: 0; top: 12px; width: 8px; height: 8px; border-radius: 50%; background: #FFEBC4; box-shadow: 0 0 12px 3px rgba(255,214,150,.55); }
.rhythm h3 { font: 400 30px/1.1 var(--serif); text-transform: uppercase; color: #F4EBDD; }
.rhythm small { font: 400 15px var(--serif); color: var(--gold); }
.r-state { font: 500 12px/1.5 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--gold); margin-top: 6px; }
.r-tags { font: 500 12px/1.5 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: rgba(243,234,219,.78); margin-top: 2px; }
.quote-c { font: italic 400 22px/1.45 var(--serif); color: #F4EBDD; position: relative; }
.quote-c .q { font-size: 1.6em; line-height: 0; color: var(--gold); margin-right: .15em; vertical-align: -.25em; }

.s-centers { --pt: 100px; padding-bottom: 60px; }
.m-flow .plate { position: relative; inset: auto; height: auto; margin: 4px calc(var(--g) * -1) -8vw; aspect-ratio: 2 / 3; order: 3; }
.m-flow .plate::after { display: none; }
.m-flow .copy > .at:nth-child(1) { order: 1; } .m-flow .copy > .at:nth-child(2) { order: 2; }
.s-centers .copy { display: contents; }
.s-centers .poster-flex, .s-centers { display: flex; flex-direction: column; gap: 18px; }
.s-centers .h-sec { order: 1; } .s-centers .body-c { order: 2; } .s-centers .cc { order: 4; } .s-centers .copy > .fine { order: 5; text-align: center; }
.cc { position: relative; z-index: 2; }
.cc-card { position: relative; background: rgba(252,249,244,.94); border: 1px solid #D6BE90; outline: 1px solid rgba(214,190,144,.45); outline-offset: 5px; padding: 22px 20px 20px; }
.cc-top { display: flex; align-items: center; gap: 12px; font: 400 14px var(--serif); color: var(--ink-3); }
.cc-top i { flex: 1; height: 1px; background: rgba(140,106,62,.35); }
.cc-top .meta { font-size: 10px; letter-spacing: .16em; color: var(--bronze); text-align: right; }
.cc-icon { width: 48px; height: 48px; margin: 18px auto 6px; color: var(--bronze); }
.cc-card h3 { font: 400 50px/1 var(--serif); text-transform: uppercase; text-align: center; letter-spacing: .02em; }
.cc-freq { text-align: center; font: 500 12px var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--ink-2); margin-top: 8px; }
.cc-cols { display: grid; gap: 16px; margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(140,106,62,.25); }
.cc-cols h4 { font: 400 20px/1 var(--serif); text-transform: uppercase; margin-bottom: 6px; }
.cc-cols p { font-size: 15px; line-height: 1.55; color: var(--ink-2); }
.cc-after { text-transform: uppercase; letter-spacing: .14em; font-size: 13px !important; }
.cc-arr { display: none; }
.cc-dots { display: flex; justify-content: center; gap: 4px; margin-top: 20px; }
.cc-dots button { width: 32px; height: 32px; border: 0; background: none; display: grid; place-items: center; cursor: pointer; }
.cc-dots button::before { content: ""; width: 9px; height: 9px; border-radius: 50%; border: 1px solid var(--c); }
.cc-dots button[aria-current]::before { background: var(--c); box-shadow: 0 0 10px 2px var(--c); }
.cc-note { display: flex; gap: 12px; align-items: flex-start; margin-top: 18px; padding-top: 14px; border-top: 1px solid rgba(140,106,62,.25); font-size: 12.5px; line-height: 1.5; color: var(--ink-3); }
.cc-note i { flex: none; width: 24px; height: 24px; border: 1px solid var(--bronze); border-radius: 50%; display: grid; place-items: center; font: italic 400 13px var(--serif); color: var(--bronze); }
.cc-nav { position: absolute; top: 112px; width: 40px; height: 56px; border: 0; background: none; cursor: pointer; color: var(--bronze); display: grid; place-items: center; }
.cc-nav svg { width: 11px; height: 22px; }
.cc-prev { left: 4px; } .cc-next { right: 4px; }
.cc-card.swap h3, .cc-card.swap .cc-cols, .cc-card.swap .cc-freq { opacity: 0; transform: translateY(8px); }
.cc-card h3, .cc-card .cc-cols, .cc-card .cc-freq { transition: opacity .45s var(--ease), transform .45s var(--ease); }

.s-after { --pt: 96px; --ph: 100%; }
.s-after .plate { height: 100%; }
.s-after .plate::after { inset: 0; height: auto; background: linear-gradient(180deg, rgba(243,238,228,.9) 0%, rgba(243,238,228,.45) 35%, rgba(243,238,228,.6) 100%); }
.s-after .h-sec, .s-after .body-c, .s-after .eyebrow-center { text-align: center; }
.pane { position: relative; padding: 28px 22px 24px; text-align: center; background: linear-gradient(180deg, rgba(255,255,255,.62), rgba(255,255,255,.34)); border: 1px solid rgba(255,255,255,.9); -webkit-backdrop-filter: blur(12px) saturate(1.1); backdrop-filter: blur(12px) saturate(1.1); box-shadow: 0 30px 60px -40px rgba(80,60,30,.45), inset 0 1px 0 rgba(255,255,255,.9); }
.pane h3 { font: 400 40px/1 var(--serif); text-transform: uppercase; color: #6E5232; }
.pane-after { margin-top: 14px; font: 500 12px/1.6 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-2); }
.pane-art { height: 230px; margin: 16px auto 14px; max-width: 280px; background: transparent; -webkit-mask-image: radial-gradient(closest-side, #000 62%, transparent 100%); mask-image: radial-gradient(closest-side, #000 62%, transparent 100%); }
.pane-before { font-size: 15px; color: var(--ink-2); }
.pane-before b { font: 500 12px var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--ink); }
.note-ico { display: flex; gap: 14px; align-items: flex-start; font-size: 14px; line-height: 1.55; color: var(--ink-2); }
.ring { flex: none; width: 40px; height: 40px; border: 1px solid rgba(140,106,62,.6); border-radius: 50%; display: grid; place-items: center; color: var(--bronze); }
.ring svg { width: 20px; height: 20px; }
.statement-l { display: flex; align-items: center; justify-content: center; gap: 14px; text-align: center; font: 400 21px/1.25 var(--serif); text-transform: uppercase; }
.statement-l i { flex: 0 0 30px; height: 1px; background: rgba(28,25,21,.4); }
.eyebrow-center { display: flex; align-items: center; justify-content: center; gap: 14px; }
.eyebrow-center::before, .eyebrow-center::after { content: ""; width: 40px; height: 1px; background: currentColor; opacity: .5; }

.s-faq { --bg: #F0E9DE; --pt: 96px; --ph: 100%; }
.s-faq .plate { height: 100%; }
.s-faq .plate .media img { object-position: 60% 40%; }
.s-faq .plate::after { inset: 0; height: auto; background: linear-gradient(180deg, rgba(240,233,222,.95) 0%, rgba(240,233,222,.6) 28%, rgba(240,233,222,.5) 70%, rgba(240,233,222,.9) 100%); }
.sheets { display: grid; gap: 8px; perspective: 1200px; }
.sheet { background: linear-gradient(180deg, rgba(255,253,249,.94), rgba(250,245,236,.86)); border: 1px solid rgba(255,255,255,.95); box-shadow: 0 14px 30px -22px rgba(70,50,30,.55), inset 0 1px 0 #fff; transform: rotate(calc((var(--i) - 3.5) * -.25deg)); transition: transform .6s var(--ease), box-shadow .6s var(--ease); }
.sheet h3 { font: inherit; }
.sheet button { width: 100%; display: grid; grid-template-columns: 30px 1fr 20px; align-items: center; gap: 10px; padding: 17px 16px; background: none; border: 0; text-align: left; cursor: pointer; font: 400 19px/1.25 var(--serif); color: var(--ink); }
.sheet small { font: 500 11px var(--sans); color: var(--ink-3); letter-spacing: .08em; }
.pm { position: relative; width: 14px; height: 14px; }
.pm::before, .pm::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: var(--ink-2); transition: transform .45s var(--ease); }
.pm::after { transform: rotate(90deg); }
.sheet.is-open .pm::before { transform: rotate(45deg); } .sheet.is-open .pm::after { transform: rotate(-45deg); }
.sheet.is-open { transform: none; box-shadow: 0 26px 50px -26px rgba(70,50,30,.6), inset 0 1px 0 #fff; }
.sheet.is-open button { font-size: 23px; }
.sheet-a { padding: 0 18px 20px 56px; font-size: 16px; line-height: 1.6; color: var(--ink-2); }
.faq-note { display: flex; gap: 14px; align-items: flex-start; font-size: 14px; }
.faq-note i { flex: 0 0 30px; height: 1px; background: rgba(28,25,21,.4); margin-top: .7em; }
.btn-lg { width: 100%; min-height: 60px; font: 400 21px/1 var(--serif); letter-spacing: .06em; border-color: rgba(60,45,28,.6); background: rgba(250,246,239,.55); }

.s-book { --pt: 78vw; padding-bottom: 30px; }
.s-book .plate::after { height: 34%; }
.body-lg { font-size: 17px; }
.formbox { position: relative; }
.glass-back { position: absolute; inset: 14px -8px -10px 10px; border-radius: 38% 46% 40% 50% / 6% 8% 6% 7%; border: 1px solid rgba(233,211,166,.25); background: rgba(255, 236, 205, .04); transform: rotate(1.6deg); }
.form, .sent { position: relative; padding: 26px 20px 24px; display: grid; gap: 20px; border-radius: 30px 46px 34px 40px / 26px 30px 30px 34px; border: 1px solid rgba(233, 211, 166, .38); background: linear-gradient(160deg, rgba(255, 238, 210, .17), rgba(255, 238, 210, .05) 60%, rgba(255,238,210,.1)); -webkit-backdrop-filter: blur(16px) saturate(1.1); backdrop-filter: blur(16px) saturate(1.1); box-shadow: inset 0 1px 0 rgba(255,240,215,.35), 0 40px 80px -40px rgba(0,0,0,.7); }
.demo { display: flex; gap: 10px; align-items: baseline; font-size: 13px; line-height: 1.5; color: rgba(243,234,219,.78); }
.demo span { flex: none; font: 500 10px var(--sans); letter-spacing: .2em; text-transform: uppercase; padding: 3px 7px; border: 1px dashed var(--gold); color: var(--gold); }
.row { display: grid; gap: 20px; }
.field { display: grid; gap: 6px; }
.field > span { font: 600 11px var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--gold-2); }
.field input, .field select, .field textarea { width: 100%; font: 400 16px/1.4 var(--sans); color: #FBF3E5; background: transparent; border: 0; border-bottom: 1px solid rgba(233,211,166,.6); padding: 8px 0 10px; border-radius: 0; -webkit-appearance: none; appearance: none; color-scheme: dark; resize: vertical; }
.field select { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23E9D3A6'/%3E%3C/svg%3E") right 4px center no-repeat; padding-right: 24px; }
.field select option { background: #24221F; color: #FBF3E5; }
.field ::placeholder { color: rgba(243,234,219,.55); }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-bottom-color: #F3DDB1; }
.field.invalid input { border-bottom-color: #F0A994; }
.err { font: normal 500 13px var(--sans); color: #F6BBA8; }
.err:empty { display: none; }
.check { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; line-height: 1.5; color: rgba(243,234,219,.85); cursor: pointer; }
.check input { flex: none; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--gold); }
.check a { color: var(--gold-2); }
.sent { text-align: center; justify-items: center; }
.sent[hidden], .form[hidden] { display: none; }
.sent h3 { font: 400 28px/1.15 var(--serif); color: #F4EBDD; }
.sent-ring { width: 56px; height: 56px; border-radius: 50%; border: 1px solid var(--gold); display: grid; place-items: center; color: var(--gold-2); }
.sent-ring svg { width: 26px; height: 26px; }
.bsteps { display: grid; gap: 16px; padding-top: 24px; border-top: 1px solid rgba(217,185,131,.3); }
.bstep { display: grid; grid-template-columns: 48px 1fr; column-gap: 14px; align-items: center; }
.bstep i { grid-row: span 2; width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(217,185,131,.7); display: grid; place-items: center; font: normal 400 18px var(--serif); color: var(--gold-2); }
.bstep b { font: 600 12px var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--gold-2); }
.bstep span { font-size: 14px; color: rgba(243,234,219,.85); }
.foot { display: grid; gap: 12px; padding-top: 24px; border-top: 1px solid rgba(217,185,131,.25); font-size: 14px; color: rgba(243,234,219,.8); }
.foot a { color: #F3EADB; text-underline-offset: 4px; }

/* legal */
.legal { max-width: 760px; margin: 0 auto; padding: 130px max(var(--g), env(safe-area-inset-right, 0px)) 90px max(var(--g), env(safe-area-inset-left, 0px)); }
.legal h1 { font: 400 clamp(38px, 8vw, 64px)/1.05 var(--serif); text-transform: uppercase; margin: 12px 0 16px; }
.legal-draft { color: var(--bronze); font-size: 13px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 28px; }
.legal section { padding: 22px 0; border-top: 1px solid rgba(28,25,21,.14); }
.legal h2 { font: 400 25px/1.2 var(--serif); margin-bottom: 8px; }
.legal section p { color: var(--ink-2); }
.legal > p:last-child { margin-top: 30px; }

@media (min-width: 600px) and (max-width: 1179px) {
  .inst-m b { font-size: 24px; }
}

/* =============== DESKTOP POSTERS =============== */
@media (min-width: 1180px) {
  body { font-size: 16px; }
  .hdr { padding: 16px 3.2vw; transition: background .6s, box-shadow .6s, color .6s, transform .6s var(--ease); }
  .hdr.is-hidden { transform: translateY(-110%); }
  .burger { display: none; }
  .nav { display: flex; align-items: center; gap: 14px; margin-right: 22px; }
  .nav a { font: 500 12px var(--sans); letter-spacing: .24em; text-transform: uppercase; text-decoration: none; }
  .nav span { color: var(--bronze); }
  .hdr.on-dark:not(.is-solid) .nav span { color: var(--gold); }

  .poster { padding: 0; min-height: 0; }
  .poster .plate { inset: -3% 0; height: auto; }
  .poster .plate .media img { object-fit: cover; }
  .poster .plate::after { display: none; }
  .copy { position: absolute; inset: 0; display: block; }
  .mhead { display: contents; }
  .at { position: absolute; left: calc(var(--x) * 1%); top: calc(var(--y) * 1%); width: calc(var(--w, 30) * 1%); margin: 0; }
  .side, .mirror, .r-dot, .sign, .top-tags, .scroll-cue, .rule-short, .rule-dot, .cc-side, .rail, .vlad-line { display: block; }
  .side { width: max-content; font: 500 .62cqw/1.65 var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--ink-3); }
  .side::after { content: ""; display: block; width: 1.6cqw; height: 1px; background: currentColor; margin-top: .9cqw; opacity: .7; }
  .dark .side { color: rgba(243,234,219,.75); }
  .poster .wave { display: block; height: 22cqw; transform: translateY(-50%); top: calc(var(--wy) * 1%); }
  .formula.mirror { display: flex; }

  /* shared desktop type, in poster units (1cqw = 1% of poster width) */
  .eyebrow { font-size: .82cqw; letter-spacing: .3em; }
  .body { font-size: 1.14cqw; line-height: 1.6; }
  .lead { line-height: 1.55; }
  .fine { font-size: .78cqw; }
  .meta { font-size: .66cqw; }
  .h-sec { font-size: 4.05cqw; line-height: 1.04; }
  .h-big { font-size: 6.4cqw; line-height: .98; letter-spacing: -.005em; }
  .h-center { text-align: center; }
  .h-wide { white-space: nowrap; text-wrap: nowrap; }
  .body-c { text-align: center; }
  .btn { min-height: 3.9cqw; padding: 0 1.7cqw; gap: 1.3cqw; }
  .btn-sm { min-height: 2.6cqw; padding: 0 1.2cqw; gap: .9cqw; }
  .btn .ico { width: 1.5cqw; height: .75cqw; }
  .pending { font-size: .62cqw; padding: .2cqw .5cqw; }

  /* 1 hero */
  .h-hero { font-size: 7.15cqw; line-height: .98; letter-spacing: -.01em; }
  .s-hero .btn { min-height: 4.7cqw; font-size: .98cqw; width: 100%; padding-right: .8cqw; justify-content: space-between; padding-left: 2.2cqw; border-color: rgba(60,45,28,.5); }
  .coin { width: 2.6cqw; height: 2.6cqw; }
  .coin .ico-d { width: .7cqw; height: 1.2cqw; }
  .sign { font: 500 .66cqw var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--ink-2); }
  .sign::before { content: ""; display: inline-block; width: 2cqw; height: 1px; background: currentColor; vertical-align: middle; margin-right: .8cqw; }
  .sign::after { display: none; }

  /* 2 recognition */
  .states { display: block; padding: 0; border: 0; }
  .state { width: max-content !important; transform: translateX(-50%); text-align: center; line-height: 1.5; letter-spacing: .2em; max-width: 21cqw; }
  .s-rec .body { font-size: 1.22cqw; }
  .js .state.rv { transform: translate(-50%, 20px); }
  .js .is-in .state.rv { transform: translateX(-50%); }
  .state::before { display: none; }
  .statement { text-align: center; font: 400 1.3cqw/1.6 var(--sans); color: #F4EBDD; }

  /* 3 path */
  .formula { flex-direction: row; justify-content: space-between; align-items: baseline; font-size: 4.05cqw; line-height: 1; white-space: nowrap; }
  .formula b { font-size: 1em; color: #B88E50; }
  .mirror { transform: scaleY(-1); opacity: .16; -webkit-mask-image: linear-gradient(0deg, #000 0%, transparent 65%); mask-image: linear-gradient(0deg, #000, transparent 65%); filter: blur(.5px); }

  /* 4 instruments */
  .s-inst > .plate { display: block; }
  .inst-m { display: none; }
  .s-inst .h-sec { font-size: 2.85cqw; }
  .inst-cap { display: block; text-align: center; }
  .inst-cap h3 { font: 400 2.55cqw/1 var(--serif); text-transform: uppercase; }
  .inst-cap p { font: 500 .9cqw var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--ink); margin-top: 1cqw; }

  /* 5 vlad */
  .h-vlad { line-height: .8; letter-spacing: -.03em; display: block; }
  .h-vlad > span { display: block; }
  .h-vlad > span:last-child { padding-left: 1.15em; margin-top: .02em; }
  .vlad-line { position: absolute; left: 37%; right: -3%; top: 25%; height: 1px; background: linear-gradient(90deg, rgba(140,106,62,0), rgba(140,106,62,.8)); }
  .vlad-line::after { content: ""; position: absolute; right: 0; top: -.35cqw; width: .75cqw; height: .75cqw; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #D3AC6F, #7A5830); }
  .eyebrow-dot { text-align: right; letter-spacing: .34em; }
  .lead-serif { font-size: 2.25cqw; line-height: 1.12; }
  .quote-v { font: 400 1.14cqw/1.6 var(--sans); border: 0; padding: 0; color: var(--ink-2); }
  .rule-short { width: 2.4cqw !important; height: 1px; background: #B88E50; }
  .rule-dot { height: 1px; background: linear-gradient(90deg, transparent, rgba(140,106,62,.6) 15%, rgba(140,106,62,.6) 85%, transparent); }
  .rule-dot i { position: absolute; left: 50%; top: -.4cqw; width: .8cqw; height: .8cqw; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #D3AC6F, #7A5830); transform: translateX(-50%); }
  .eyebrow-c { text-align: center; color: var(--ink-2); }

  /* 6 ritual: sticky poster, steps follow scroll */
  .s-ritual { position: sticky; top: max(0px, calc((100vh - min(100vw / 1.405, 100svh)) / 2)); }
  .r-panel { border: 0; padding: 0; min-height: 0; }
  .r-count { font: 400 1.05cqw var(--serif); letter-spacing: .1em; gap: 1cqw; }
  .r-count i { width: 8cqw; }
  .r-panel h3 { font-size: 2.05cqw; margin: 1.6cqw 0 1.4cqw; }
  .r-steps { display: block; border: 0; }
  .r-step { width: max-content !important; min-height: 0; padding: .6cqw 0; border: 0; flex-direction: row; align-items: baseline; gap: .9cqw; letter-spacing: .2em; color: rgba(243,234,219,.6); }
  .r-step small { color: rgba(243,234,219,.6); }
  .r-step[aria-selected="true"], .r-step[aria-selected="true"] small { color: #F7E6C4; }
  .r-dot { width: 2.6cqw !important; height: 2.6cqw; margin: -1.3cqw 0 0 -1.3cqw; border-radius: 50%; opacity: 0; transition: opacity .6s var(--ease); background: radial-gradient(circle, #FFF4DE 0 10%, rgba(255,214,150,.55) 22%, rgba(255,214,150,0) 60%); border: 1px solid rgba(255,220,170,.28); }
  .r-dot.on { opacity: 1; }
  .r-quote { font-size: .92cqw; letter-spacing: .3em; line-height: 2; }
  .r-quote::after { content: ""; display: block; width: 5cqw; height: 1px; margin: 2cqw auto 0; background: rgba(217,185,131,.6); }

  /* 7 formats */
  .s-formats .plate { inset: -3% 0; height: auto; }
  .s-formats .plate::after { display: none; }
  .top-tags { display: flex; gap: 1.2cqw; justify-content: flex-end; align-items: center; font: 500 .62cqw var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--ink-2); }
  .top-tags::after { content: ""; width: 2cqw; height: 1px; background: currentColor; }
  .top-tags i { font-style: normal; color: var(--bronze); }
  .eyebrow-l::before { width: 2.6cqw; margin-right: 1cqw; }
  .cards { display: block; }
  .card { position: absolute; display: block; box-shadow: 0 2cqw 4cqw -1.6cqw rgba(60, 40, 18, .55); background: #F8F3EA; }
  .card .card-img { position: absolute; inset: 0; aspect-ratio: auto; }
  .card-txt { position: absolute; padding: 0; gap: .8cqw; }
  .card h3 { font-size: 2.05cqw; }
  .card .meta { display: none; }
  .card-solo { height: 37.5cqw; }
  .card-solo .card-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(20,14,8,.7)); }
  .card-solo .card-txt { left: 4%; bottom: 7%; color: #FBF3E5; }
  .card-solo h3 { font-size: 2.6cqw; color: #FBF3E5; }
  .card-solo h3::before { content: ""; display: inline-block; width: 1.4cqw; height: 1px; background: currentColor; vertical-align: middle; margin-right: .7cqw; }
  .card-solo .btn-frame { color: #FBF3E5; border-color: rgba(251,243,229,.7); }
  .card-couple { height: 34cqw; }
  .card-syn { height: 30cqw; }
  .card-couple .card-img, .card-syn .card-img { bottom: 26%; }
  .card-couple .card-txt, .card-syn .card-txt { left: 8%; right: 8%; bottom: 7%; }
  .card-couple h3, .card-syn h3 { font-size: 1.55cqw; }
  .card-prac { height: 15cqw; background: transparent; box-shadow: none; }
  .card-prac .card-img { left: 32%; -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%); mask-image: linear-gradient(90deg, transparent, #000 12%); }
  .card-prac .card-txt { left: 1%; top: 22%; }
  .card-prac h3 { font-size: 1.45cqw; }
  .price-note { font-size: .62cqw; }

  /* 8 vibration */
  .s-vib .h-sec { font-size: 3.6cqw; }
  .s-vib .body { font-size: .95cqw; }
  .eyebrow-gold { color: var(--gold); margin-bottom: .9cqw; font-size: .9cqw; }
  .rhythms { display: block; border: 0; padding: 0; }
  .rhythm { padding: 0; }
  .rhythm::before { display: none; }
  .rhythm h3 { font-size: 2.1cqw; }
  .rhythm small { font-size: 1.2cqw; }
  .r-state { font-size: .78cqw; margin-top: 1.4cqw; }
  .r-tags { font-size: .78cqw; margin-top: .6cqw; max-width: 18cqw; margin-left: auto; margin-right: auto; color: rgba(243,234,219,.86); }
  .quote-c { font-size: 1.85cqw; text-align: center; line-height: 1.45; }
  .fine-c { text-align: center; font-size: .78cqw; }

  /* 9 centers */
  .s-centers { display: block; }
  .s-centers .copy { display: block; }
  .m-flow .plate { position: absolute; inset: -3% 0; height: auto; margin: 0; aspect-ratio: auto; }
  .s-centers .h-sec { font-size: 3.7cqw; }
  .s-centers .body-c { font-size: 1.25cqw; line-height: 1.45; color: var(--ink-2); }
  .rail-dot { border: 0; background: none; border-radius: 50%; cursor: pointer; }
  .cc-dots { display: none; }
  .cc-card { position: relative; padding: 2.2cqw 2.6cqw 2cqw; border-radius: .9cqw; outline-offset: .45cqw; background: rgba(252,249,244,.9); min-height: 45.5cqw; }
  .cc-side { position: absolute; top: 3cqw; bottom: 3cqw; width: 4.5cqw; border: 1px solid rgba(214,190,144,.5); background: rgba(250,246,238,.7); z-index: -1; border-radius: .6cqw; font: 500 .52cqw var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); display: flex; align-items: center; }
  .cc-side span { display: block; transform: translateY(-3cqw); }
  .cc-l { left: -4cqw; padding-left: .5cqw; } .cc-r { right: -4cqw; justify-content: flex-end; padding-right: .5cqw; }
  .cc-top { font-size: 1.05cqw; gap: 1cqw; }
  .cc-top .meta { font-size: .62cqw; }
  .cc-icon { width: 5cqw; height: 5cqw; margin: 1.6cqw auto .6cqw; }
  .cc-card h3 { font-size: 5.3cqw; }
  .cc-freq { font-size: 1.05cqw; margin-top: .6cqw; }
  .cc-cols { grid-template-columns: 1fr auto 1fr auto 1fr; gap: 1.2cqw; margin-top: 4.6cqw; padding-top: 0; border: 0; }
  .cc-cols > div { border-left: 1px solid rgba(140,106,62,.25); padding-left: 1.2cqw; }
  .cc-cols > div:first-child { border: 0; padding: 0; }
  .cc-cols h4 { font-size: 1.45cqw; margin-bottom: 1cqw; }
  .cc-cols p { line-height: 1.6; }
  .cc-after { font-size: .82cqw !important; line-height: 2 !important; }
  .cc-arr { display: block; padding-top: 3.4cqw; color: var(--ink-3); }
  .cc-arr .ico { width: 1.4cqw; height: .7cqw; }
  .cc-note { margin-top: 3.6cqw; padding-top: 1.6cqw; font-size: .74cqw; gap: 1.2cqw; align-items: center; }
  .cc-note i { width: 2.2cqw; height: 2.2cqw; font-size: 1.1cqw; }
  .cc-nav { top: 13cqw; width: 2.4cqw; height: 4cqw; }
  .cc-prev { left: -3.4cqw; } .cc-next { right: -3.4cqw; }
  .cc-nav svg { width: .8cqw; height: 1.6cqw; }
  .s-centers .copy > .fine { font-size: .72cqw; color: var(--ink-3); }

  /* 10 after */
  .s-after .plate { inset: -3% 0; height: auto; }
  .s-after .plate::after { display: none; }
  .s-after .h-sec { font-size: 3.95cqw; }
  .s-after .body-c { font-size: 1.02cqw; line-height: 1.45; color: var(--ink-2); }
  .eyebrow-center { font-size: .66cqw; }
  .eyebrow-center::before, .eyebrow-center::after { width: 9cqw; }
  .pane { background: none; border: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; padding: 0; height: 58cqw; }
  .pane h3 { font-size: 2.65cqw; margin-top: 2.8cqw; }
  .pane:nth-of-type(2) h3 { margin-top: 3.6cqw; }
  .pane-after { font-size: .74cqw; line-height: 1.7; margin: 1.4cqw auto 0; max-width: 18cqw; }
  .pane-art { display: none; }
  .pane-before { position: absolute; left: 0; right: 0; top: 32cqw; line-height: 1.5; }
  .pane-before b { font-size: .8cqw; }
  .note-ico { gap: 1.4cqw; color: var(--ink-2); }
  .ring { width: 3cqw; height: 3cqw; }
  .ring svg { width: 1.5cqw; height: 1.5cqw; }
  .statement-l { font-size: 1.45cqw; gap: 2cqw; }
  .statement-l i { flex: 0 0 4cqw; }

  /* 11 faq */
  .s-faq .plate { inset: -3% 0; height: auto; }
  .s-faq .plate .media img { object-position: 50% 50%; }
  .s-faq .plate::after { display: none; }
  .s-faq .body { font-size: 1.12cqw; line-height: 1.45; color: var(--ink-2); }
  .scroll-cue { font: 500 .58cqw var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--ink-3); writing-mode: vertical-rl; transform: rotate(180deg); }
  .scroll-cue::after { content: ""; display: inline-block; width: 1px; height: 8cqw; background: currentColor; margin-top: 1cqw; }
  .s-faq .h-big { font-size: 5.25cqw; white-space: nowrap; }
  .sheets { gap: .45cqw; transform: rotateY(-6deg) rotateZ(-1.2deg); transform-origin: 0 50%; transform-style: preserve-3d; }
  .sheet { margin-left: calc(var(--i) * 1.6cqw); background: linear-gradient(180deg, rgba(255,253,249,.86), rgba(248,242,232,.74)); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transform: none; }
  .sheet.is-open { margin-left: calc(var(--i) * 1.6cqw - 2cqw); margin-top: .4cqw; margin-bottom: .4cqw; }
  .sheet button { grid-template-columns: 3.2cqw 1fr 1.4cqw; padding: 1.15cqw 2cqw 1.15cqw 1.8cqw; gap: .8cqw; }
  .sheet.is-open button { font-size: 2.1cqw; padding-top: 1.8cqw; }
  .sheet small { font-size: .78cqw; }
  .pm { width: 1cqw; height: 1cqw; }
  .sheet-a { padding: 0 3cqw 2cqw 5cqw; }
  .faq-note { gap: 1.6cqw; }
  .faq-note i { flex-basis: 4cqw; }
  .btn-lg { min-height: 5.4cqw; font-size: 1.7cqw; }

  /* 12 booking */
  .s-book .plate { inset: -3% 0; height: auto; }
  .s-book .plate::after { display: none; }
  .s-book .h-big { font-size: 6.3cqw; }
  .body-lg { font-size: 1.15cqw; line-height: 1.5; color: #F7EEDF; }
  .glass-back { inset: -1cqw -6cqw -1cqw 1cqw; border-radius: 26% 34% 24% 30% / 22% 26% 20% 24%; transform: rotate(2deg); }
  .form, .sent { padding: 3.4cqw 3cqw 2.6cqw; gap: 1.6cqw; border-radius: 22% 18% 20% 24% / 10% 12% 9% 11%; }
  .demo { font-size: .7cqw; }
  .demo span { font-size: .55cqw; }
  .row { grid-template-columns: 1fr 1fr; gap: 2cqw; }
  .field > span { font-size: .66cqw; }
  .field input, .field select, .field textarea { padding: .5cqw 0 .7cqw; }
  .check { font-size: .8cqw; }
  .check input { width: 1.3cqw; height: 1.3cqw; }
  .btn-gold { min-height: 3.9cqw; font-size: 1.55cqw; }
  .err { font-size: .72cqw; }
  .sent h3 { font-size: 2cqw; }
  .sent-ring { width: 3.6cqw; height: 3.6cqw; }
  .bsteps { display: block; padding: 0; border: 0; }
  .bstep { width: 22cqw !important; grid-template-columns: 3.2cqw 1fr; column-gap: 1.6cqw; }
  .bstep i { width: 3.2cqw; height: 3.2cqw; font-size: 1.3cqw; }
  .bstep b { font-size: .8cqw; }
  .bstep span { font-size: .8cqw; }
  .foot { display: flex; justify-content: space-between; align-items: center; gap: 2cqw; padding-top: 1.6cqw; border-top-color: rgba(217,185,131,.3); }
  .foot p + p { border-left: 1px solid rgba(217,185,131,.3); padding-left: 2cqw; }
}

@media (prefers-reduced-motion: reduce) {
  .js .rv, .js .plate .media img { opacity: 1; transform: none !important; filter: none; transition: none; }
  .js .state.rv, .js .rhythm.rv { transform: translateX(-50%) !important; }
  .media::after { animation: none; }
  .wave { display: none; }
  .ritual-run { height: auto !important; }
  .s-ritual { position: relative !important; top: 0 !important; }
}
@media (prefers-reduced-motion: reduce) and (max-width: 1179px) { .js .state.rv, .js .rhythm.rv { transform: none !important; } }
@media (min-width: 1180px) {
  .h-tight { line-height: .9; }
  .card-prac .card-img img { object-position: 50% 30%; }
  .sheet { width: calc(100% - 4cqw); }
  .sheet.is-open { width: calc(100% + 2cqw); }
}
@media (max-width: 1179px) {
  .s-vlad .plate::before, .s-hero .plate::before { content: ""; position: absolute; inset: 0 0 auto; height: 42%; z-index: 1; background: linear-gradient(180deg, rgba(243,238,228,.82) 0%, rgba(243,238,228,.55) 55%, rgba(243,238,228,0) 100%); }
  .s-vlad .plate::before { background: linear-gradient(180deg, rgba(242,236,225,.85) 0%, rgba(242,236,225,.6) 60%, rgba(242,236,225,0) 100%); }
}

/* ===================== v4: typography, motion, interaction ===================== */
:root { --serif: "Noto Serif Display", "Didot", "Bodoni 72", Georgia, serif; --acc: #8A6A40; --acc-d: #D9BC88; }
.h-hero, .h-sec, .h-vlad, .lead-serif, .h-big { font-weight: 300; }
.metal, .ttl { background: none; -webkit-text-fill-color: currentColor; color: inherit; filter: none !important; }
.acc { font-style: italic; color: var(--acc); -webkit-text-fill-color: var(--acc); }
.dark .acc { color: var(--acc-d); -webkit-text-fill-color: var(--acc-d); }
.dark .h-sec, .dark .h-big { color: #F2E8D6; }
.h-hero { color: var(--ink); }
.h-hero .acc { font-weight: 300; }
.h-vlad { color: var(--ink); }
.h-vlad > .acc { letter-spacing: -.02em; }
.legal h1.metal { color: var(--ink); }
body { font-weight: 300; }
.body, .lead { font-weight: 300; }
.dark .body { font-weight: 300; }
.eyebrow, .meta, .state, .r-step, .btn, .field > span { font-weight: 500; }

/* word-by-word heading reveal */
.js .split .w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .06em; margin-bottom: -.06em; }
.js .split .wi { display: inline-block; transform: translateY(108%) rotate(2deg); transform-origin: 0 100%; transition: transform 1.25s var(--ease); transition-delay: calc(var(--wd, 0) * 70ms + 120ms); }
.js .is-in .split .wi, .js .split.is-in .wi { transform: none; }

/* cutout of Vlad sits above the light threads */
.cut { position: absolute; inset: 0 0 auto; height: var(--ph, 150vw); z-index: 2; pointer-events: none; }
.cut picture, .cut img { display: block; width: 100%; height: 100%; object-fit: cover; }
.copy { z-index: 3; }
.poster .wave { z-index: 1; }
@media (max-width: 1179px) { .cut { -webkit-mask-image: linear-gradient(180deg, #000 68%, transparent 100%); mask-image: linear-gradient(180deg, #000 68%, transparent 100%); } }
@media (min-width: 1180px) { .cut { inset: -3% 0; height: auto; } }
.js .cut img { transform: scale(1.07); transition: transform 2.6s var(--ease); }
.js .is-in .cut img { transform: scale(1); }
.js .is-in .plate .media img, .js .is-in .cut img { transition: transform 2.6s var(--ease), translate 1.4s var(--ease), opacity 1.2s var(--ease); }

/* wavy seams between screens */
main > section:not(:first-child) { position: relative; }
.seam { position: absolute; left: 0; top: 0; width: 100%; z-index: 6; pointer-events: none; overflow: visible; }
.seam path { fill: none; stroke: #C9A46A; vector-effect: non-scaling-stroke; stroke-dasharray: 1600; stroke-dashoffset: 1600; filter: drop-shadow(0 0 4px rgba(233, 200, 140, .7)); }
.dark .seam path, .s-vib .seam path { stroke: #E6C88F; }
.is-in .seam path { stroke-dashoffset: 0; transition: stroke-dashoffset 2.8s var(--ease) .1s; }

/* buttons: fill sweep, arrow glide, shine */
.btn { position: relative; overflow: hidden; isolation: isolate; transition: color .55s var(--ease), border-color .55s var(--ease), translate .35s var(--ease), box-shadow .55s var(--ease); }
.btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--btn-fill, #2A231B); transform: scaleX(0); transform-origin: 100% 50%; transition: transform .7s var(--ease); }
.btn:hover::before, .btn:focus-visible::before { transform: scaleX(1); transform-origin: 0 50%; }
.dark .btn-frame { --btn-fill: #E9D3A6; }
.dark .btn-frame:hover, .dark .btn-frame:focus-visible { color: #1E1912; }
.card-solo .btn-frame { --btn-fill: #FBF3E5; }
.card-solo .btn-frame:hover { color: #1E1912; }
.btn .ico { transition: transform .6s var(--ease); }
.btn:hover .ico { transform: translateX(5px); }
.coin { transition: transform .7s var(--ease), background .6s; }
.btn:hover .coin { transform: translateY(3px) rotate(-360deg); background: radial-gradient(circle at 35% 30%, #E6C48A, #8C6A3E); }
.btn-gold { --btn-fill: #F7E7C4; }
.btn-gold:hover, .btn-gold:focus-visible { color: #2B2117; }
.btn-gold::after { content: ""; position: absolute; inset: -20% auto -20% -40%; width: 30%; transform: skewX(-20deg) translateX(0); background: linear-gradient(90deg, transparent, rgba(255,255,255,.75), transparent); animation: shine 5.5s var(--ease) infinite 2s; z-index: 1; pointer-events: none; }
@keyframes shine { 0%, 70% { transform: skewX(-20deg) translateX(0); } 100% { transform: skewX(-20deg) translateX(560%); } }
.btn-lg:hover { color: #FBF3E5; }

/* tilt + sheen for cards and panes */
[data-tilt] { transform-style: preserve-3d; will-change: transform; }
.tilting { transition: transform .15s linear !important; }
.sheen { position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .6s var(--ease); background: radial-gradient(520px circle at var(--sx, 50%) var(--sy, 50%), rgba(255, 248, 230, .38), transparent 42%); mix-blend-mode: soft-light; z-index: 3; }
[data-tilt]:hover .sheen { opacity: 1; }

/* cursor aura (desktop) */
.aura { position: fixed; left: 0; top: 0; width: 560px; height: 560px; margin: -280px 0 0 -280px; border-radius: 50%; pointer-events: none; z-index: 40; background: radial-gradient(circle, rgba(255, 228, 180, .22), rgba(255, 228, 180, 0) 62%); mix-blend-mode: soft-light; opacity: 0; transition: opacity .8s; }
.aura.on { opacity: 1; }
@media (hover: none), (max-width: 1179px) { .aura { display: none; } }

/* 2 · floating states */
.state .fl { display: inline-block; animation: float var(--f, 8s) ease-in-out infinite; animation-delay: calc(var(--d) * -1.3s); }
@keyframes float { 0%, 100% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(0, -9px, 0); } }
.state { transition: translate 1.2s var(--ease), color .5s, text-shadow .5s; translate: calc(var(--px, 0) * var(--z) * 18px) calc(var(--py, 0) * var(--z) * 14px); cursor: default; }
.state:hover { color: #FFF4DD; text-shadow: 0 0 18px rgba(255, 214, 150, .65); }
.star { display: none; }
@media (min-width: 1180px) {
  .state .star { display: block; position: absolute; left: 50%; bottom: -1.9cqw; width: .7cqw; height: .7cqw; margin-left: -.35cqw; border-radius: 50%; background: #FFF0CF; box-shadow: 0 0 .8cqw .3cqw rgba(255, 210, 140, .7); animation: twinkle 3.2s ease-in-out infinite; animation-delay: calc(var(--d) * -.7s); }
}
@keyframes twinkle { 0%, 100% { opacity: .55; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.25); } }

/* 4 · instrument cards and popups */
.inst-card { position: absolute; padding: 0; border: 0; background: none; cursor: pointer; height: calc(75% / 1 * 1); bottom: 0; top: auto !important; overflow: hidden; perspective: 900px; }
.inst-card .media { position: absolute; inset: 0; background: transparent; }
.inst-card .media::after { display: none; }
.inst-card .media img { opacity: 1; transition: transform 1.4s var(--ease), filter .8s; }
.inst-card:hover .media img, .inst-card:focus-visible .media img { transform: scale(1.06); filter: brightness(1.04) saturate(1.05); }
.inst-more { position: absolute; left: 50%; bottom: 7%; translate: -50% 12px; opacity: 0; display: inline-flex; gap: .8cqw; align-items: center; padding: .7cqw 1.4cqw; font: 500 .7cqw var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--ink); background: rgba(251, 247, 240, .82); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,.9); transition: opacity .6s var(--ease), translate .6s var(--ease); z-index: 4; }
.inst-more i { font-style: normal; font-size: 1.2em; color: var(--acc); }
.inst-card:hover .inst-more, .inst-card:focus-visible .inst-more { opacity: 1; translate: -50% 0; }
.inst-card { display: none; }
@media (min-width: 1180px) { .inst-card { display: block; } }
.inst-mcard { display: block; width: 100%; text-align: left; border: 0; padding: 0; background: none; cursor: pointer; position: relative; }
.inst-mcap { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.inst-mcap b { font: 300 32px/1 var(--serif); text-transform: uppercase; }
.inst-mcap span { font: 500 12px var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--ink-3); }
.inst-mcard .media { aspect-ratio: 4 / 4.4; }
.inst-mcard .inst-more { opacity: 1; translate: -50% 0; font-size: 11px; padding: 10px 16px; gap: 10px; bottom: 16px; }
.pop { border: 0; padding: 0; background: transparent; max-width: min(1080px, calc(100vw - 32px)); width: 100%; max-height: calc(100dvh - 32px); color: var(--ink); overflow: visible; }
.pop::backdrop { background: rgba(24, 20, 15, .55); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.pop[open] { animation: popIn .8s var(--ease); }
.pop[open]::backdrop { animation: fadeIn .6s var(--ease); }
@keyframes popIn { from { opacity: 0; transform: translateY(30px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes fadeIn { from { opacity: 0; } }
.pop-in { position: relative; display: grid; background: #F7F2E9; max-height: calc(100dvh - 32px); overflow: auto; box-shadow: 0 60px 120px -40px rgba(0,0,0,.6); }
.pop-img { aspect-ratio: 4 / 3; background: var(--pearl-2); }
.pop-txt { padding: 28px 22px 30px; display: grid; gap: 14px; }
.pop-txt h3 { font: 300 40px/1 var(--serif); text-transform: uppercase; }
.pop-meta { font: 500 12px var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--acc); }
.pop-lead { font-size: 17px; line-height: 1.65; color: var(--ink-2); }
.pop dl { display: grid; gap: 14px; margin: 4px 0; padding-top: 16px; border-top: 1px solid rgba(140,106,62,.3); }
.pop dt { font: 500 11px var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 4px; }
.pop dd { margin: 0; font: italic 300 19px/1.45 var(--serif); color: var(--ink); }
.pop-x { position: absolute; top: 10px; right: 10px; width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(28,25,21,.2); background: rgba(247,242,233,.85); cursor: pointer; display: grid; place-items: center; transition: transform .6s var(--ease), background .4s; }
.pop-x span { position: absolute; width: 18px; height: 1px; background: var(--ink); transform: rotate(45deg); }
.pop-x span + span { transform: rotate(-45deg); }
.pop-x:hover { transform: rotate(90deg); background: #fff; }
@media (min-width: 1180px) {
  .pop-in { grid-template-columns: 1fr 1.05fr; }
  .pop-img { aspect-ratio: auto; min-height: 560px; }
  .pop-txt { padding: 56px 52px 48px; align-content: center; gap: 18px; }
  .pop-txt h3 { font-size: 54px; }
}

/* 7 · formats cards fly in */
.js .card { opacity: 0; translate: 0 90px; scale: .96; transition: opacity 1.1s var(--ease), translate 1.3s var(--ease), scale 1.3s var(--ease), box-shadow .6s var(--ease); transition-delay: calc(var(--d, 0) * 140ms + 150ms); }
.js .is-in .card { opacity: 1; translate: 0 0; scale: 1; }
.card { --rot: 0deg; transform: rotate(var(--rot)) translateY(var(--sy, 0px)) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); }
.card:hover { box-shadow: 0 3cqw 6cqw -2cqw rgba(60, 40, 18, .6); z-index: 5; }
.card .card-img img { transition: transform 1.6s var(--ease), opacity 1s; }
.card:hover .card-img img { transform: scale(1.05); }
@media (max-width: 1179px) { .card:nth-child(odd) { --rot: -.8deg; transform: rotate(var(--rot)); } .card:nth-child(even) { --rot: .8deg; transform: rotate(var(--rot)); } }
@media (min-width: 1180px) {
  .card-solo { --rot: -1.3deg; transform: rotate(var(--rot)) translateY(var(--sy, 0px)) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); }
  .card-couple { --rot: .6deg; transform: rotate(var(--rot)) translateY(var(--sy, 0px)) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); }
  .card-syn { --rot: 1.6deg; transform: rotate(var(--rot)) translateY(var(--sy, 0px)) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); }
  .card-prac { --rot: -.3deg; transform: rotate(var(--rot)) translateY(var(--sy, 0px)); }
}

/* 8 · interactive vibration */
.vib-wave { position: absolute; left: 0; width: 100%; top: calc(var(--ph, 150vw) * .4 - 18vw); height: 36vw; z-index: 1; pointer-events: none; }
.vib-line { display: none; }
.rhythm { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; text-align: left; display: grid; gap: 4px; transition: opacity .6s var(--ease); }
.rhythm .r-h b { font: 300 30px/1.1 var(--serif); text-transform: uppercase; color: #F2E8D6; font-weight: 300; }
.rhythm .r-h small { font: 300 15px var(--serif); color: var(--gold); }
.rhythm[aria-selected="false"] { opacity: .5; }
.rhythm .rh-dot { position: absolute; left: 0; top: 14px; width: 8px; height: 8px; border-radius: 50%; background: #FFEBC4; box-shadow: 0 0 12px 3px rgba(255,214,150,.55); transition: transform .6s var(--ease), box-shadow .6s; }
.rhythm[aria-selected="true"] .rh-dot { transform: scale(1.5); box-shadow: 0 0 0 5px rgba(255,220,160,.14), 0 0 20px 5px rgba(255,214,150,.75); }
.rhythm::before { display: none !important; }
@media (min-width: 1180px) {
  .s-vib { position: sticky; top: max(0px, calc((100vh - min(100vw / 1.3, 100svh)) / 2)); }
  .vib-wave { top: 22%; height: 34%; }
  .vib-line { display: block; height: 1px; }
  .vib-line i { position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(217,185,131,.75) 8%, rgba(217,185,131,.75) 92%, transparent); }
  .vib-line::before, .vib-line::after { content: ""; position: absolute; top: -.35cqw; width: .8cqw; height: .8cqw; border-top: 1px solid rgba(217,185,131,.8); border-right: 1px solid rgba(217,185,131,.8); }
  .vib-line::before { left: 0; transform: rotate(-135deg); } .vib-line::after { right: 0; transform: rotate(45deg); }
  .rhythm { width: 22cqw !important; transform: translateX(-50%); text-align: center; justify-items: center; padding-top: 2.6cqw; gap: .4cqw; }
  .js .rhythm.rv { transform: translate(-50%, 20px); }
  .js .is-in .rhythm.rv { transform: translateX(-50%); }
  .rhythm .rh-dot { left: 50%; top: 0; width: 1.1cqw; height: 1.1cqw; margin-left: -.55cqw; border: 1px solid rgba(255,230,190,.6); }
  .rhythm .r-h b { font-size: 2.1cqw; }
  .rhythm .r-h small { font-size: 1.2cqw; }
  .rhythm:hover { opacity: 1; }
}

/* 9 · centres: yantra, colour, glows, scroll */
.glows { position: absolute; inset: 0; pointer-events: none; z-index: 2; }
.glow { position: absolute; left: 50%; top: calc(var(--gym) * 1%); width: 26vw; height: 26vw; margin: -13vw 0 0 -13vw; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--c) 55%, transparent) 0%, color-mix(in srgb, var(--c) 18%, transparent) 30%, transparent 62%); mix-blend-mode: screen; opacity: .35; transform: scale(.6); transition: opacity 1s var(--ease), transform 1.2s var(--ease); }
.glow.on { opacity: 1; transform: scale(1.15); animation: breathe 3.6s ease-in-out infinite; }
@keyframes breathe { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.35); } }
@media (min-width: 1180px) {
  .plate .glows { inset: 0 -3%; }
  .glow { left: calc(var(--gx) * 1%); top: calc(var(--gy) * 1%); width: 12cqw; height: 12cqw; margin: -6cqw 0 0 -6cqw; }
  .rail-name { position: absolute; top: 50%; white-space: nowrap; font: 500 .62cqw var(--sans); letter-spacing: .2em; text-transform: uppercase; opacity: 0; transition: opacity .5s var(--ease), translate .5s var(--ease); pointer-events: none; }
  .rail-dot:hover .rail-name, .rail-dot[aria-selected="true"] .rail-name { opacity: 1; }
  .rail-dot::after { content: ""; position: absolute; inset: 30%; border-radius: 50%; border: 1px solid color-mix(in srgb, var(--c) 70%, transparent); opacity: 0; transition: opacity .5s, inset .6s var(--ease); }
  .rail-dot:hover::after, .rail-dot[aria-selected="true"]::after { opacity: 1; inset: 8%; }
  .rail-dot[aria-selected="true"] { background: radial-gradient(circle, color-mix(in srgb, var(--c) 70%, transparent) 0 18%, color-mix(in srgb, var(--c) 25%, transparent) 34%, transparent 64%); box-shadow: none; }
}
.cc-icon { display: none; }
.cc-yantras { position: relative; width: 86px; height: 86px; margin: 16px auto 4px; }
.cc-yantras span { position: absolute; inset: 0; opacity: 0; transform: scale(.7) rotate(-40deg); transition: opacity .9s var(--ease), transform 1.2s var(--ease); color: var(--c); }
.cc-yantras span.on { opacity: 1; transform: none; }
.yantra { width: 100%; height: 100%; overflow: visible; filter: drop-shadow(0 0 6px color-mix(in srgb, currentColor 55%, transparent)); }
.yantra g { fill: none; stroke: currentColor; stroke-width: .9; }
.yantra .f { fill: currentColor; stroke: none; }
.cc-yantras span.on .yantra g { animation: spinSlow 60s linear infinite; transform-origin: 0 0; }
@keyframes spinSlow { to { transform: rotate(360deg); } }
.cc-card { transition: border-color 1s, box-shadow 1s, transform .2s; border-color: color-mix(in srgb, var(--c) 45%, #D6BE90); box-shadow: 0 40px 80px -50px rgba(80,60,30,.55), 0 0 60px -30px color-mix(in srgb, var(--c) 60%, transparent); }
.cc-card h3 { transition: opacity .45s var(--ease), transform .45s var(--ease), color 1s; }
.cc-top b { color: color-mix(in srgb, var(--c) 60%, #6E5232); transition: color 1s; }
@media (min-width: 1180px) { .cc-yantras { width: 6.4cqw; height: 6.4cqw; margin: 1.4cqw auto .4cqw; } }

/* 10 · after panes */
.pane { transition: translate .8s var(--ease); }
.pane h3, .pane-after, .pane-before { transition: transform .8s var(--ease), color .6s; }
.pane:hover h3 { transform: translateY(-6px); color: var(--acc); }
.pane:hover .pane-after { transform: translateY(-4px); }
.pane .sheen { mix-blend-mode: overlay; background: radial-gradient(420px circle at var(--sx, 50%) var(--sy, 30%), rgba(255,255,255,.65), transparent 45%); }
.pane-art img { animation: drift 9s ease-in-out infinite; }
.pane:nth-of-type(2) .pane-art img { animation-delay: -3s; } .pane:nth-of-type(3) .pane-art img { animation-delay: -6s; }
@keyframes drift { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-8px) scale(1.03); } }

/* 11 · faq motion */
.js .sheet { opacity: 0; translate: 60px 0; transition: opacity 1s var(--ease), translate 1.1s var(--ease), transform .6s var(--ease), box-shadow .6s var(--ease), width .7s var(--ease), margin .7s var(--ease); transition-delay: calc(var(--i) * 90ms + 200ms), calc(var(--i) * 90ms + 200ms), 0s, 0s, 0s, 0s; }
.js .is-in .sheet { opacity: 1; translate: 0 0; }
.sheet:not(.is-open):hover { transform: translateX(8px); box-shadow: 0 20px 40px -24px rgba(70,50,30,.6), inset 0 1px 0 #fff; }
.sheet-a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .7s var(--ease), padding .7s var(--ease); padding-top: 0; padding-bottom: 0; }
.sheet-a > p { overflow: hidden; min-height: 0; opacity: 0; transition: opacity .6s var(--ease) .1s; }
.sheet.is-open .sheet-a { grid-template-rows: 1fr; padding-bottom: 20px; }
.sheet.is-open .sheet-a > p { opacity: 1; }
@media (min-width: 1180px) { .sheet.is-open .sheet-a { padding-bottom: 2cqw; } }
.sheet button { transition: font-size .6s var(--ease), padding .6s var(--ease); }

@media (prefers-reduced-motion: reduce) {
  .js .split .wi, .js .card, .js .sheet { transform: none !important; translate: none !important; opacity: 1 !important; transition: none !important; }
  .state .fl, .pane-art img, .btn-gold::after, .glow.on, .cc-yantras span.on .yantra g, .state .star { animation: none !important; }
  .vib-run, .centers-run { height: auto !important; }
  .s-vib, .centers-run > .s-centers { position: relative !important; top: 0 !important; }
  .seam path { stroke-dashoffset: 0 !important; }
}
.vib-veil { display: none; position: absolute; left: 0; right: 0; top: calc(var(--ph, 150vw) * .3); height: 22vw; z-index: 1; pointer-events: none; background: linear-gradient(180deg, transparent, #1B1A18 30%, #1B1A18 70%, transparent); }
@media (min-width: 1180px) { .vib-veil { display: none; top: 25%; height: 31%; right: 0; background: linear-gradient(180deg, rgba(27,26,24,0), rgba(27,26,24,.97) 26%, rgba(27,26,24,.97) 74%, rgba(27,26,24,0)); -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 64%, rgba(0,0,0,.35) 84%, rgba(0,0,0,0) 100%); mask-image: linear-gradient(90deg, #000 0%, #000 64%, rgba(0,0,0,.35) 84%, rgba(0,0,0,0) 100%); } }

@media (min-width: 1180px) {
  .h-vlad { font-size: 11.2cqw; }
  .s-inst .inst-card { height: 72%; }
}

/* stage: posters fit the screen height */
.stage { display: contents; }
.backdrop { display: none; }
@media (min-width: 1180px) {
  .poster.narrow .stage { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); }
  .poster.narrow .backdrop { display: block; position: absolute; inset: -60px; z-index: 0; background: var(--bg, var(--pearl)) center / cover no-repeat; filter: blur(46px) saturate(1.05); transform: scale(1.12); opacity: .9; }
  .poster.narrow.dark .backdrop { filter: blur(46px) brightness(.75); }
  .seam { z-index: 6; }
}

/* ===================== v6: full-bleed plates, centred text stage, seamless seams ===================== */
.geo { display: contents; }
@media (min-width: 1180px) {
  .poster { height: var(--hh); aspect-ratio: auto; container-type: normal; }
  .poster.narrow .stage, .poster .stage { -webkit-mask-image: none; mask-image: none; }
  .poster .backdrop { display: none !important; }
  .poster > .plate, .poster > .cut { position: absolute; inset: auto; left: 50%; translate: -50% 0; margin: 0; }
  .poster > .plate .media, .poster > .plate .media img, .poster > .cut img, .poster > .cut picture { width: 100%; height: 100%; }
  .poster > .plate .media img, .poster > .cut img { object-fit: fill; }
  .s-inst { --pw: 2.23; }
  .stage { display: block; position: absolute; top: 0; bottom: 0; left: 50%; translate: -50% 0; transform: none; container-type: inline-size; z-index: 3; }
  .geo { display: block; position: absolute; inset: -3%; z-index: 0; pointer-events: none; }
  .geo .rail, .geo .rail-dot { pointer-events: auto; }
  .geo .glows { position: absolute; inset: 0; }
  .geo .glow { left: calc(var(--gx) * 1%); top: calc(var(--gy) * 1%); width: 12cqw; height: 12cqw; margin: -6cqw 0 0 -6cqw; }
  .s-ritual, .s-vib, .centers-run > .s-centers { height: var(--hh); }
  /* wide screens: the extended plate fades into the section colour beyond its edges */
  .poster { background: var(--bg, var(--pearl)); }
}

/* seams: next screen overlaps the previous one; its top edge is a soft wave, no gap */
:root { --seam-h: 7vw; }
@media (min-width: 1180px) { :root { --seam-h: 4.2vw; } }
main > section:not(:first-child) { margin-top: calc(var(--seam-h) * -1) !important; z-index: 1; }
main > section:not(:first-child) > .poster, main > .poster:not(:first-child) {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0,70 C240,20 480,112 720,64 C960,16 1200,104 1440,54 L1440,120 L0,120Z' fill='%23000'/%3E%3C/svg%3E") 0 0 / 100% var(--seam-h) no-repeat, linear-gradient(#000, #000) 0 calc(var(--seam-h) - 1px) / 100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0,70 C240,20 480,112 720,64 C960,16 1200,104 1440,54 L1440,120 L0,120Z' fill='%23000'/%3E%3C/svg%3E") 0 0 / 100% var(--seam-h) no-repeat, linear-gradient(#000, #000) 0 calc(var(--seam-h) - 1px) / 100% 100% no-repeat; }
.seam { height: var(--seam-h); }
.seam path { d: path("M0,70 C240,20 480,112 720,64 C960,16 1200,104 1440,54"); stroke-width: 1; opacity: .9; }
/* soft blend: the top of every following plate melts into the edge */
main > section:not(:first-child) .poster > .plate::before { content: ""; position: absolute; inset: 0 0 auto; height: calc(var(--seam-h) * 2.2); z-index: 1; pointer-events: none; background: linear-gradient(180deg, color-mix(in srgb, var(--bg, var(--pearl)) 55%, transparent), transparent); }

/* header always visible */
.hdr.is-hidden { transform: none !important; }

/* 2 · problems light up one after another */
.js .s-rec .state.rv { transition-duration: 1.6s; transition-delay: calc(var(--d) * 480ms + 700ms); }
.js .s-rec .state.rv .star { opacity: 0; }
.js .s-rec .is-in .state.rv .star, .js .s-rec .state.rv.is-in .star { animation: starOn 1.6s var(--ease) both, twinkle 3.2s ease-in-out infinite 1.6s; animation-delay: calc(var(--d) * 480ms + 500ms), calc(var(--d) * 480ms + 2.1s); }
@keyframes starOn { 0% { opacity: 0; transform: scale(0); } 50% { opacity: 1; transform: scale(2.2); } 100% { opacity: 1; transform: scale(1); } }

/* 7 · formats: dealt out of a stack, zoom on hover */
@media (min-width: 1180px) {
  .js .s-formats .card { opacity: clamp(0, calc(var(--q, 0) * 2.2), 1); translate: calc(var(--dx, 0px) * (1 - var(--q, 0))) calc(var(--dy, 0px) * (1 - var(--q, 0))); scale: calc(.42 + .58 * var(--q, 0)); transition: transform .7s var(--ease), box-shadow .7s var(--ease), opacity .2s linear; }
  .s-formats .card-solo { --r0: -9deg; } .s-formats .card-couple { --r0: 7deg; } .s-formats .card-syn { --r0: -5deg; } .s-formats .card-prac { --r0: 4deg; }
  .s-formats .card:hover { z-index: 8; box-shadow: 0 4cqw 8cqw -2.4cqw rgba(50, 32, 12, .65); }
  .s-formats .card-prac:hover { --hs: 1.04; }
}

/* 8 · vibration wave sits where the old drawn one was */
@media (min-width: 1180px) { .s-vib .vib-wave { top: calc(var(--hh) * .22); height: calc(var(--hh) * .34); left: 0; width: 100%; } }

/* 9 · centre card text never spills */
.cc-card h3 { white-space: nowrap; overflow: hidden; max-width: 100%; }
.cc-cols > div { min-width: 0; }
.cc-cols p { overflow-wrap: anywhere; hyphens: auto; }

/* readability: floor sizes on desktop, soft halos behind text on photos */
@media (min-width: 1180px) {
  .side, .top-tags, .scroll-cue, .sign, .meta, .rail-name { font-size: .62cqw; }
}
.dark .body, .dark .lede, .dark .fine, .dark .r-step, .dark .r-quote, .dark .rhythm, .dark .state, .dark .bstep, .dark .foot, .dark .side, .dark .demo { text-shadow: 0 1px 14px rgba(10, 8, 6, .85), 0 0 2px rgba(10, 8, 6, .6); }
.poster:not(.dark) .body, .poster:not(.dark) .lead, .poster:not(.dark) .fine, .poster:not(.dark) .side, .poster:not(.dark) .eyebrow, .poster:not(.dark) .note-ico, .poster:not(.dark) .pane-before, .poster:not(.dark) .pane-after, .poster:not(.dark) .top-tags { text-shadow: 0 0 14px rgba(250, 246, 238, .95), 0 0 3px rgba(250, 246, 238, .9); }
.poster:not(.dark) .body, .poster:not(.dark) .fine { color: #2E2821; }
.s-hero .lead, .s-vlad .body { color: #2A241D; }
@media (min-width: 1180px) {
  .body, .s-faq .body, .s-vib .body, .s-formats .body, .s-rec .body, .quote-v { font-size: 1.14cqw; }
  .cc-cols p { font-size: .92cqw; hyphens: manual; overflow-wrap: normal; }
  .pane-before { font-size: .9cqw; }
  .btn { white-space: nowrap; }
}
/* header is always visible: screens fit the space below it */
@media (min-width: 1180px) {
  :root { --hdr: 64px; }
  html { scroll-padding-top: var(--hdr); }
  .hdr { height: var(--hdr); padding-top: 0; padding-bottom: 0; background: rgba(243, 238, 228, .9); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 1px 0 rgba(28,25,21,.08); }
  .hdr.on-dark:not(.is-solid) { color: inherit; }
  .hdr:not(.is-solid) .logo-mark { width: 32px; height: 38px; }
  .hdr:not(.is-solid) .brand b { font-size: 20px; }
  .hdr:not(.is-solid) .brand i { font-size: 11px; }
  main { padding-top: var(--hdr); }
  .faq-note { font-size: .78cqw; }
  .r-state, .r-tags { font-size: .78cqw; }
}
/* the wavy seam lives in extra space above each screen, so it never covers content */
@media (min-width: 1180px) {
  main > section:not(:first-child) .poster, main > .poster:not(:first-child) { height: calc(var(--hh) + var(--seam-h)); }
  main > section:not(:first-child) .poster > .stage, main > .poster:not(:first-child) > .stage { top: var(--seam-h); bottom: auto; height: var(--hh); }
  main > section:not(:first-child) .poster > .plate, main > section:not(:first-child) .poster > .cut,
  main > .poster:not(:first-child) > .plate, main > .poster:not(:first-child) > .cut { top: calc(var(--seam-h) - var(--hh) * .03); }
  main > .poster:not(:first-child) > .vib-wave, main > section:not(:first-child) .poster > .vib-wave { top: calc(var(--seam-h) + var(--hh) * .22); }
  .s-ritual, .s-vib, .centers-run > .s-centers { top: calc(var(--hdr) - var(--seam-h)) !important; }
  .note-ico { font-size: .7cqw; }
}
@media (min-width: 1180px) {
  .poster { --so: 0px; }
  main > section:not(:first-child) .poster, main > .poster:not(:first-child) { --so: var(--seam-h); }
  .poster > .wave { top: calc(var(--so) + var(--hh) * var(--wy) / 100); height: calc(var(--hh) * .3); }
}
@media (min-width: 1180px) {
  .eyebrow-center { white-space: nowrap; }
  .s-formats .body { font-size: .98cqw; }
}
@media (min-width: 1180px) {
  .poster, .s-inst { --pw: 3; }
  .poster > .plate { -webkit-mask-image: none; mask-image: none; }
}

/* poster mode: the stage is never narrower than 1180px, so text keeps its concept proportions;
   on a short window the block may be taller than the screen instead of squeezing */
/* 600–1179px: the flowing layout, with a comfortable reading width */
@media (min-width: 600px) and (max-width: 1179px) {
  :root { --g: max(40px, calc((100vw - 760px) / 2)); }
  .h-sec { font-size: 52px; } .h-hero { font-size: 66px; } .h-vlad { font-size: 130px; } .h-big { font-size: 58px; }
  .s-vib { --pt: min(70vw, 560px); }
  .s-ritual { --pt: min(86vw, 700px); }
  .s-book { --pt: min(78vw, 640px); }
  .plate .media img { object-position: 50% 30%; }
  .row { grid-template-columns: 1fr 1fr; }
  .inst-m { grid-template-columns: repeat(3, 1fr); gap: 18px; }
  .inst-mcap b { font-size: 24px; }
  .cards { grid-template-columns: 1fr 1fr; }
  .after-panes, .pane { max-width: 100%; }
}
/* tablet 600–1179: wide plate on top, text flows below it */
@media (min-width: 600px) and (max-width: 1179px) {
  .poster { --ph: calc(100vw / 1.55); --pt: calc(var(--ph) + 40px); }
  .s-inst, .s-formats, .s-centers, .s-after, .s-faq { --pt: 110px; }
  .mhead { position: static; }
  .poster > .plate, .poster > .cut { height: var(--ph); }
  .poster > .plate .media img, .poster > .cut img { object-fit: cover; object-position: 50% 50%; }
  .poster > .plate::after { height: 22%; }
  .s-formats > .plate, .s-after > .plate, .s-faq > .plate { height: 100%; }
  .s-formats > .plate .media img, .s-after > .plate .media img, .s-faq > .plate .media img { object-position: 50% 50%; }
  .m-flow > .plate { aspect-ratio: 1.55; }
  .poster .wave { top: calc(var(--ph) * var(--wy) / 100 - 70px); }
  .s-vib .vib-wave { top: calc(var(--ph) * .3); height: calc(var(--ph) * .3); }
  .cut { -webkit-mask-image: none; mask-image: none; }
}
@media (min-width: 600px) and (max-width: 1179px) { .glows { display: none; } }
@media (min-width: 1180px) {
  .poster.fit > .stage { width: var(--sw) !important; height: var(--dh) !important; top: calc(var(--so) + var(--dy)) !important; bottom: auto !important; }
  .poster.fit > .wave { top: calc(var(--so) + var(--dy) + var(--dh) * var(--wy) / 100) !important; height: calc(var(--dh) * .3) !important; }
  .poster.fit > .vib-wave { top: calc(var(--so) + var(--dy) + var(--dh) * .22) !important; height: calc(var(--dh) * .34) !important; }
}
/* no cursor drift on backgrounds */
.js .is-in .plate .media img, .js .is-in .cut img { translate: none !important; }
.aura { display: none !important; }
/* seam: plates overhang more so parallax never shows the section colour */
.poster.dark { --bg: #1E1D1B; }
main > section:not(:first-child) .poster > .plate::before { display: none; }
/* formats: pinned while the cards fly in, then they keep drifting */
@property --fy { syntax: "<length>"; inherits: false; initial-value: 0px; }
@property --fr { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
@media (min-width: 1180px) {
  .formats-run { position: relative; }
  .formats-run > .s-formats { position: sticky; top: calc(var(--hdr) - var(--seam-h)); }
  .s-formats .card { transform: translateY(var(--fy)) rotate(calc(var(--rot) + var(--fr) + (1 - var(--q, 1)) * var(--r0, 0deg) * 2.2)) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) scale(var(--hs, 1)) !important; transition: transform .8s var(--ease), box-shadow .8s var(--ease), opacity .2s linear !important; }
  .s-formats .card.landed { animation: drift2 7s ease-in-out infinite; }
  .s-formats .card-couple.landed { animation-duration: 8.5s; animation-delay: -2s; }
  .s-formats .card-syn.landed { animation-duration: 9.5s; animation-delay: -4s; }
  .s-formats .card-prac.landed { animation-duration: 10s; animation-delay: -1s; }
  .s-formats .card:hover { animation-play-state: paused; --hs: 1.08; }
}
@keyframes drift2 { 0%, 100% { --fy: 0px; --fr: 0deg; } 50% { --fy: -10px; --fr: .6deg; } }
@media (prefers-reduced-motion: reduce) { .formats-run { height: auto !important; } .formats-run > .s-formats { position: relative !important; } .s-formats .card.landed { animation: none; } }
/* bigger desktop text (+15%) */
@media (min-width: 1180px) {
  .body, .s-faq .body, .s-vib .body, .s-formats .body, .s-rec .body, .quote-v, .s-vlad .body { font-size: 1.3cqw; }
  .lead { font-size: 1.42cqw; }
  .fine, .fine-c, .faq-note, .cc-note, .note-ico { font-size: .9cqw; }
  .eyebrow, .eyebrow-center { font-size: .92cqw; }
  .meta, .rail-name, .price-note { font-size: .74cqw; }
  .state { font-size: 1.3cqw; }
  .r-step { font-size: 1.02cqw; }
  .r-step small { font-size: 1.5cqw; }
  .r-state, .r-tags, .bstep b, .bstep span, .pane-after, .inst-cap p { font-size: .9cqw; }
  .pane-before, .cc-cols p { font-size: 1.02cqw; }
  .field input, .field select, .field textarea { font-size: 1.05cqw; }
  .field > span, .check { font-size: .82cqw; }
  .foot { font-size: .82cqw; }
  .btn { font-size: .95cqw; }
  .btn-sm { font-size: .74cqw; }
  .sheet button { font-size: 1.75cqw; }
  .sheet-a { font-size: 1.22cqw; }
  .r-panel .body { font-size: 1.3cqw; }
  .r-step, .r-quote { text-shadow: 0 0 10px #0d0c0b, 0 0 22px #0d0c0b, 0 1px 2px #000; }
  .r-steps .r-step { background: radial-gradient(closest-side, rgba(14,13,12,.75), transparent); padding: .5cqw 1.2cqw; margin-left: -1.2cqw; }
}
/* frosted glass header */
@media (min-width: 1180px) {
  .hdr, .hdr.is-solid { background: linear-gradient(180deg, rgba(250, 246, 239, .62), rgba(243, 238, 228, .38)); -webkit-backdrop-filter: blur(22px) saturate(1.5); backdrop-filter: blur(22px) saturate(1.5); box-shadow: inset 0 -1px 0 rgba(255, 255, 255, .55), 0 1px 0 rgba(140, 106, 62, .22), 0 10px 30px -18px rgba(40, 28, 14, .35); transition: background .6s, color .6s, box-shadow .6s; }
  .hdr.on-dark, .hdr.on-dark.is-solid { color: #F3EADB; background: linear-gradient(180deg, rgba(28, 26, 23, .55), rgba(28, 26, 23, .32)); box-shadow: inset 0 -1px 0 rgba(255, 240, 215, .12), 0 1px 0 rgba(217, 185, 131, .25), 0 10px 30px -18px rgba(0, 0, 0, .6); }
  .hdr.on-dark .nav span { color: var(--gold); }
  .hdr.on-dark .lang a[aria-current] { box-shadow: inset 0 -1px 0 var(--gold); }
  .hdr .nav a { position: relative; padding: 6px 0; }
  .hdr .nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: 100% 50%; transition: transform .5s var(--ease); }
  .hdr .nav a:hover::after { transform: scaleX(1); transform-origin: 0 50%; }
}
@media (min-width: 1180px) { .s-vlad .body, .s-vlad .quote-v { font-size: 1.2cqw; line-height: 1.5; } }

/* pinned screens with stepped reveal */
@media (min-width: 1180px) {
  .pin-run { position: relative; }
  .pin-run > .poster { position: sticky; }
  .js .stepped .copy .at { opacity: 0; translate: 0 34px; filter: blur(8px); transition: opacity 1.1s var(--ease), translate 1.2s var(--ease), filter 1.1s var(--ease); }
  .js .stepped .copy .at.shown { opacity: 1; translate: 0 0; filter: none; }
  .js .stepped .copy .at.rv, .js .stepped .copy .at.rv.is-in { transform: none; }
  .js .stepped .copy .state.rv { transform: translateX(-50%) !important; }
  .js .stepped .copy .at.shown .wi { transform: none; }
  .js .stepped .copy .split:not(.shown) .wi { transform: translateY(108%) rotate(2deg); }
  .js .stepped .copy .at.rv:not(.shown) { opacity: 0 !important; }
  .js .stepped .copy .at.rv.shown { opacity: 1 !important; filter: none !important; }
}

/* ===== 6 · ritual, editorial layout ===== */
.s-rit { position: relative; overflow: hidden; color: var(--cream); }
main > section.s-rit:not(:first-child) {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0,70 C240,20 480,112 720,64 C960,16 1200,104 1440,54 L1440,120 L0,120Z' fill='%23000'/%3E%3C/svg%3E") 0 0 / 100% var(--seam-h) no-repeat, linear-gradient(#000, #000) 0 calc(var(--seam-h) - 1px) / 100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0,70 C240,20 480,112 720,64 C960,16 1200,104 1440,54 L1440,120 L0,120Z' fill='%23000'/%3E%3C/svg%3E") 0 0 / 100% var(--seam-h) no-repeat, linear-gradient(#000, #000) 0 calc(var(--seam-h) - 1px) / 100% 100% no-repeat; }
.rit-top { display: grid; gap: 28px; max-width: 1440px; margin: 0 auto; }
.rit-copy { align-content: center; }
.rit-copy .body { max-width: 30em; }
.rit-space { margin: 0; aspect-ratio: 3 / 2; border-radius: 2px; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 14%); mask-image: linear-gradient(90deg, transparent 0, #000 14%); }
.rit-space .media { width: 100%; height: 100%; }
.rit-space img { transition: transform 8s linear, opacity 1s; }
.is-in .rit-space img, .rit-space.is-in img { transform: scale(1.06); }
.s-rit .rit-wave { display: block; left: auto; top: auto; }
.rit-steps { max-width: 1440px; }
.rit-step h3 { align-items: baseline; gap: 10px; }
.rit-n { letter-spacing: 0; }
.rit-dot { color: var(--gold); }
.rit-step p { font-size: 15px; line-height: 1.55; color: rgba(243,234,219,.78); min-height: 3.1em; }
.rit-step::after { content: ""; height: 1px; background: linear-gradient(90deg, var(--gold), transparent); transform: scaleX(0); transform-origin: 0 50%; transition: transform 1s var(--ease); }
.rit-step:hover::after { transform: scaleX(1); }
.rit-quote { display: flex; align-items: center; justify-content: center; gap: 22px; text-align: center; font: 500 13px/2 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--gold-2); }
.rit-quote i { flex: 0 1 120px; height: 1px; background: linear-gradient(90deg, transparent, rgba(217,185,131,.7)); }
.rit-quote i:last-child { transform: scaleX(-1); }
@media (min-width: 700px) { .rit-steps { grid-template-columns: 1fr 1fr; } .h-rit { font-size: 56px; } }
@media (min-width: 1180px) {
  .rit-top { grid-template-columns: .82fr 1.6fr; gap: 3vw; align-items: center; }
  .rit-space { aspect-ratio: 3 / 2; max-height: 56vh; width: 100%; justify-self: end; }
  .s-rit .rit-wave { height: 9vw; margin-top: -4.6vw; margin-bottom: -1.4vw; z-index: 2; }
  .rit-step p { font-size: clamp(14px, .98vw, 16.5px); }
  .rit-quote { margin-top: 2.6vw; }
}
.js .rit-step.rv { transition-delay: calc(var(--d) * 160ms + 120ms); }
@media (min-width: 1180px) { .rit-img { max-height: none; } }

/* ===== 6 · ritual v3: in the site's own language ===== */
.s-rit { padding: 0 0 64px; background: #1B1A18; }
.rit-top, .rit-space { display: none; }
.rit-scene { position: relative; min-height: 118vw; display: flex; align-items: flex-end; padding: calc(var(--seam-h) + 40px) max(var(--g), env(safe-area-inset-right, 0px)) 0 max(var(--g), env(safe-area-inset-left, 0px)); }
.rit-bg { position: absolute; inset: 0; margin: 0; }
.rit-bg .media { width: 100%; height: 100%; background: transparent; }
.rit-bg img { object-position: 62% 30%; }
.rit-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(27,26,24,.2) 0%, rgba(27,26,24,0) 30%, rgba(27,26,24,.75) 70%, #1B1A18 100%); }
.rit-copy { position: relative; z-index: 2; display: grid; gap: 16px; max-width: 34em; }
.h-rit { font: 300 46px/1 var(--serif); text-transform: uppercase; color: #F2E8D6; }
.rit-copy .body { color: rgba(243,234,219,.9); }
.rit-line { position: relative; height: 110px; margin-top: 10px; }
.s-rit .rit-wave { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; }
.rit-pt { display: none; }
.rit-steps { list-style: none; margin: 0; padding: 0 max(var(--g), env(safe-area-inset-right, 0px)) 0 max(var(--g), env(safe-area-inset-left, 0px)); display: grid; gap: 34px; }
.rit-step { display: grid; gap: 8px; align-content: start; }
.rit-step::after { display: none; }
.rit-n { font: 300 40px/1 var(--serif); color: var(--gold); }
.rit-step h3 { font: 500 13px/1.4 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: #F4EBDD; display: block; }
.rit-t { font-size: 15px; line-height: 1.6; color: rgba(243,234,219,.78); max-width: 26em; }
.rit-img { position: relative; margin: 10px 0 0; aspect-ratio: 4 / 4.6; overflow: hidden; border: 0; }
.rit-img .media { width: 100%; height: 100%; background: #24221F; }
.rit-img img { filter: none; transition: transform 1.8s var(--ease), opacity 1s; }
.rit-img::before { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(180deg, #1B1A18 0%, rgba(27,26,24,0) 22%, rgba(27,26,24,0) 80%, rgba(27,26,24,.55) 100%); }
.rit-img::after { content: ""; position: absolute; inset: 10px; z-index: 3; pointer-events: none; border: 1px solid rgba(217,185,131,.38); }
.rit-step:hover .rit-img img { transform: scale(1.05); filter: none; }
.rit-quote { margin: 40px max(var(--g), 16px) 0; }

@media (min-width: 1180px) {
  .s-rit { padding: 0 0 3vw; }
  .rit-scene { min-height: 0; align-items: center; padding: calc(var(--seam-h) + 2vw) 6vw 0; }
  .rit-bg::after { background: linear-gradient(90deg, #1B1A18 0%, rgba(27,26,24,.92) 22%, rgba(27,26,24,.35) 46%, rgba(27,26,24,0) 62%), linear-gradient(180deg, rgba(27,26,24,0) 55%, #1B1A18 100%); }
  .rit-copy { max-width: 30vw; gap: 1.3vw; }
  .h-rit { font-size: clamp(56px, 5.4vw, 92px); }
  .rit-copy .body { font-size: clamp(15px, 1.15vw, 19px); line-height: 1.6; }
  .rit-line { height: 7vw; margin-top: -3.4vw; z-index: 3; }
  .rit-pt { display: block; position: absolute; top: 50%; left: calc(6vw + (100vw - 12vw) / 4 * var(--i) + 1px); width: 11px; height: 11px; margin: -5px 0 0 -5px; border-radius: 50%; background: #FFF0CF; box-shadow: 0 0 0 5px rgba(255,220,160,.1), 0 0 18px 5px rgba(255,210,140,.6); opacity: 0; transform: scale(.2); transition: opacity .8s var(--ease), transform .8s var(--ease); transition-delay: calc(var(--i) * 160ms + 300ms); }
  .s-rit.is-in .rit-pt, .rit-line.is-in .rit-pt { opacity: 1; transform: none; }
  .rit-steps { grid-template-columns: repeat(4, 1fr); gap: 2.2vw; padding: 0 6vw; }
  .rit-step:nth-child(even) { margin-top: 4.2vw; }
  .rit-n { font-size: clamp(34px, 2.8vw, 50px); }
  .rit-step h3 { font-size: clamp(12px, .85vw, 15px); }
  .rit-t { font-size: clamp(14px, .98vw, 17px); min-height: 3.2em; }
  .rit-img { aspect-ratio: auto; width: 100%; margin-top: 1vw; }
  .rit-quote { margin: 3.4vw 6vw 0; font-size: clamp(12px, .9vw, 15px); }
}
.rit-step .rit-n { font: 300 40px/1 var(--serif); color: var(--gold); min-height: 0; }
.rit-step .rit-t { min-height: 0; }
@media (max-width: 1179px) {
  .rit-scene { min-height: 0; display: block; padding-top: calc(86vw + 10px); }
  .rit-bg { inset: 0 0 auto; height: 96vw; }
  .rit-bg::after { background: linear-gradient(180deg, rgba(27,26,24,.15) 0%, rgba(27,26,24,0) 40%, rgba(27,26,24,.7) 78%, #1B1A18 100%); }
}
@media (min-width: 1180px) {
  .rit-step .rit-n { font-size: clamp(36px, 3vw, 54px); }
  .rit-img { height: min(40vh, 25vw); }
  .rit-scene { height: min(68vh, 42vw); }
  .rit-bg img { object-position: 50% 18%; }
}
/* plates back to exact concept scale (text and picture must line up) */
@media (min-width: 1180px) {
  .poster > .plate, .poster > .cut { top: calc(var(--so) - var(--hh) * .03) !important; height: calc(var(--hh) * 1.06) !important; width: calc(var(--hh) * 1.06 * var(--pw, 3)) !important; }
  .poster.fit > .plate, .poster.fit > .cut { top: calc(var(--so) + var(--dy) - var(--dh) * .03) !important; height: calc(var(--dh) * 1.06) !important; width: calc(var(--dh) * 1.06 * var(--pw, 3)) !important; }
}
.pane-after b { font: 500 1em var(--sans); letter-spacing: .2em; color: var(--acc); }
/* faq: note + button flow under the list, so an open answer never pushes cards onto them */
.faq-foot { display: flex; flex-wrap: wrap; gap: 18px 24px; align-items: center; justify-content: space-between; margin-top: 26px; }
.faq-foot .faq-note { flex: 1 1 260px; margin: 0; max-width: 30em; }
@media (min-width: 1180px) {
  .faq-col { display: flex; flex-direction: column; }
  .faq-col .sheet button { padding-top: .85cqw; padding-bottom: .85cqw; }
  .faq-foot { margin: 2cqw 0 0 1.6cqw; gap: 2cqw; flex-wrap: nowrap; }
  .faq-foot .btn { flex: none; }
}
@media (min-width: 1180px) {
  .faq-foot .faq-note { flex: 1 1 auto; max-width: 52%; }
  .faq-foot .btn-lg { width: auto; min-width: 34%; padding: 0 3.2cqw; }
}
@media (min-width: 1180px) {
  .faq-foot .btn-lg { min-height: 4.4cqw; font-size: 1.25cqw; letter-spacing: .14em; }
  .faq-foot .faq-note { font-size: .95cqw; line-height: 1.5; }
}
/* no italics anywhere */
*, *::before, *::after { font-style: normal !important; }
.acc { letter-spacing: .01em; }
/* formats: intro reads clean above the cards */
@media (min-width: 1180px) {
  .s-formats .copy .body { font-size: 1.22cqw !important; line-height: 1.45; }
  .s-formats .price-note { display: none; }
}
/* ritual: picture of the current step, changes with the step */
.r-photo { position: relative; margin: 24px 0 0; aspect-ratio: 4 / 5; overflow: hidden; background: #1a1714; box-shadow: 0 30px 60px -30px rgba(0,0,0,.85); }
.r-photo .media { position: absolute; inset: 0; opacity: 0; transform: scale(1.06); transition: opacity 1.1s var(--ease), transform 2.4s var(--ease); }
.r-photo .media.on { opacity: 1; transform: none; }
.r-photo .media img { width: 100%; height: 100%; object-fit: cover; }
.r-photo::before { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(180deg, rgba(18,16,14,0) 60%, rgba(18,16,14,.6)); }
.r-photo::after { content: ""; position: absolute; inset: 10px; z-index: 3; pointer-events: none; border: 1px solid rgba(217,185,131,.45); }
.r-photo figcaption { position: absolute; z-index: 4; left: 22px; bottom: 18px; font: 300 30px/1 var(--serif); color: #F2DFC0; letter-spacing: .02em; }
@media (min-width: 1180px) {
  .r-photo { margin: 0; }
  .r-photo::after { inset: .7cqw; }
  .r-photo figcaption { left: 1.6cqw; bottom: 1.3cqw; font-size: 2.6cqw; }
}
@media (max-width: 1179px) { .r-photo { max-width: 420px; } }
/* ===== 6 · ritual: scene on top, step cards below ===== */
.rit2 { position: relative; background: #1B1A18; }
.rit2 > .s-ritual { position: relative !important; top: 0 !important; }
.rit-below { padding-top: 8px; }
.rit-below .rit-step { gap: 10px; }
.rit-below .rit-img { margin: 0 0 8px; }
.rit-below .rit-img::before { background: linear-gradient(180deg, rgba(27,26,24,0) 65%, rgba(27,26,24,.5) 100%); }
.rit-below .rit-n { font-weight: 300; }
@media (min-width: 1180px) {
  .rit-below { padding: 1.2vw 0 3.2vw; }
  .rit-below .rit-step:nth-child(even) { margin-top: 0; }
  .rit-below .rit-img { margin-bottom: 1.2vw; }
  .rit-below .rit-t { min-height: 0; }
  .rit-below .rit-quote { margin-top: 2.6vw; }
}
@media (min-width: 1180px) {
  .rit2 > .s-ritual .plate::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; top: auto; height: 22%; display: block; background: linear-gradient(180deg, rgba(27,26,24,0), #1B1A18); z-index: 2; pointer-events: none; }
}
.rit-below .rit-img::after { border-color: rgba(217,185,131,.22); }
@media (min-width: 1180px) { .rit2 > .s-ritual .copy .body { line-height: 1.55; } }
/* ritual steps: staggered unveil, picture opens from below, then number, title, text rise */
.js .rit-below .rit-step.rv { opacity: 1; transform: none; filter: none; }
.js .rit-below .rit-step .rit-img { clip-path: inset(100% 0 0 0); transition: clip-path 1.5s cubic-bezier(.7,0,.2,1); transition-delay: calc(var(--d) * 220ms); }
.js .rit-below .rit-step .rit-img img { transform: scale(1.18); transition: transform 2.4s cubic-bezier(.2,.7,.1,1), opacity 1s; transition-delay: calc(var(--d) * 220ms); }
.js .rit-below .rit-step .rit-img::after { opacity: 0; transform: scale(.94); transition: opacity 1s var(--ease), transform 1.4s var(--ease); transition-delay: calc(var(--d) * 220ms + 900ms); }
.js .rit-below .rit-step > p, .js .rit-below .rit-step > h3 { opacity: 0; transform: translateY(18px); filter: blur(5px); transition: opacity 1s var(--ease), transform 1.1s var(--ease), filter 1s var(--ease); }
.js .rit-below .rit-step > .rit-n { transition-delay: calc(var(--d) * 220ms + 650ms); }
.js .rit-below .rit-step > h3 { transition-delay: calc(var(--d) * 220ms + 780ms); }
.js .rit-below .rit-step > .rit-t { transition-delay: calc(var(--d) * 220ms + 900ms); }
.js .rit-below .rit-step.is-in .rit-img { clip-path: inset(0 0 0 0); }
.js .rit-below .rit-step.is-in .rit-img img { transform: none; }
.js .rit-below .rit-step.is-in .rit-img::after { opacity: 1; transform: none; }
.js .rit-below .rit-step.is-in > p, .js .rit-below .rit-step.is-in > h3 { opacity: 1; transform: none; filter: none; }
.rit-below .rit-step:hover .rit-img img { transform: scale(1.04); transition-delay: 0s; }
@media (prefers-reduced-motion: reduce) { .js .rit-below .rit-step * { clip-path: none !important; opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important; } }
/* ===== ritual steps screen: one screen tall, pinned, unified type scale ===== */
.rit-below .rit-line { position: relative; height: 90px; margin: 0 0 6px; }
.rit-below .rit-pt { display: block; position: absolute; top: 50%; left: calc((var(--i) + .5) * 25%); width: 11px; height: 11px; margin: -5px 0 0 -5px; border-radius: 50%; background: #FFF0CF; box-shadow: 0 0 0 5px rgba(255,220,160,.1), 0 0 18px 5px rgba(255,210,140,.6); opacity: 0; transform: scale(.2); transition: opacity .9s var(--ease), transform .9s var(--ease); transition-delay: 0s; }
.rit-below .rit-pt.on { opacity: 1; transform: none; }
.rit-below .rit-line .rit-wave { opacity: 0; transition: opacity 1.6s var(--ease); }
.rit-below .rit-line.is-in .rit-wave { opacity: 1; }
.rit-below .rit-steps { grid-template-columns: 1fr; padding: 0; }
.js .rit-below .rit-quote { opacity: 0; transform: translateY(16px); transition: opacity 1.1s var(--ease) .5s, transform 1.1s var(--ease) .5s; }
.js .rit-below .rit-quote.is-in { opacity: 1; transform: none; }
.rit-box { padding: 0 max(var(--g), 16px); }
/* with the pin, each step appears on its own scroll beat: no stagger delay */
.rit-run.pinned .rit-step { --d: 0 !important; }
@media (min-width: 1180px) {
  .rit2 > .s-ritual .copy .body { font-size: 1.3cqw !important; }
  .rit-run { --u: calc(min(1050px, (100svh - var(--hdr, 64px)) * 1.405, 100vw) / 100); position: relative; background: #1B1A18; }
  .rit-run.pinned { height: calc(100svh - var(--hdr, 64px) + 4 * 34vh); }
  .rit-run .rit-below { padding: 0; height: calc(100svh - var(--hdr, 64px)); display: flex; align-items: center; justify-content: center; }
  .rit-run.pinned .rit-below { position: sticky; top: var(--hdr, 64px); }
  .rit-box { width: min(92vw, calc(var(--u) * 132)); padding: 0; }
  .rit-below .rit-steps { grid-template-columns: repeat(4, 1fr); gap: calc(var(--u) * 2.4); padding: 0; }
  .rit-below .rit-img { aspect-ratio: auto; width: 100%; height: min(calc(var(--u) * 26), calc((100svh - var(--hdr, 64px)) * .42)); margin: 0 0 calc(var(--u) * 1.6); }
  .rit-below .rit-n { font-size: calc(var(--u) * 3.4); margin: 0; }
  .rit-below .rit-step h3 { font-size: calc(var(--u) * 1.05); letter-spacing: .22em; margin: calc(var(--u) * .6) 0 0; }
  .rit-below .rit-t { font-size: calc(var(--u) * 1.3); line-height: 1.5; max-width: 24em; }
  .rit-below .rit-step { gap: calc(var(--u) * .7); }
  .rit-below .rit-quote { margin: calc(var(--u) * 3) 0 0; font-size: calc(var(--u) * 1.0); }
}
.rit-below.is-in .rit-pt:not(.on), .rit-below .rit-line.is-in .rit-pt:not(.on) { opacity: 0; transform: scale(.2); }
@media (max-width: 1179px) { .rit-below .rit-pt { display: none; } .rit-below .rit-line { height: 70px; } }
@media (min-width: 1180px) { .rit-below .rit-line { height: calc(var(--u) * 13); margin: calc(var(--u) * -3) 0 calc(var(--u) * -2.2); } }
/* ===== 6 · ritual v4: cards on the thread ===== */
.s-rit4 .wave { display: block; }
.r-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 14px; margin-top: 26px; }
.r-card { display: grid; gap: 10px; align-content: start; text-align: left; padding: 0; background: none; border: 0; color: inherit; cursor: pointer; }
.r-img { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; outline: 1px solid rgba(217,185,131,.22); outline-offset: -1px; transition: outline-color .7s var(--ease), box-shadow .7s var(--ease), transform .7s var(--ease); }
.r-img .media { position: absolute; inset: 0; }
.r-img img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.78) saturate(.9); transition: filter .8s var(--ease), transform 1.6s var(--ease); }
.r-lab { display: flex; gap: 10px; align-items: baseline; font: 500 11px/1.3 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: rgba(243,234,219,.62); transition: color .6s var(--ease); }
.r-lab small { font: 300 18px/1 var(--serif); letter-spacing: 0; color: rgba(217,185,131,.75); }
.r-txt { font: 400 13px/1.5 var(--sans); color: rgba(243,234,219,.66); transition: color .6s var(--ease); }
.r-card[aria-selected="true"] .r-img { outline: 1px solid rgba(232,200,140,.85); box-shadow: 0 0 0 1px rgba(232,200,140,.25), 0 18px 50px -12px rgba(255,190,110,.35); }
.r-card[aria-selected="true"] .r-img img { filter: none; }
.r-card[aria-selected="true"] .r-lab { color: #FFF1D8; }
.r-card[aria-selected="true"] .r-lab small { color: #F0CF95; }
.r-card[aria-selected="true"] .r-txt { color: rgba(250,240,224,.9); }
@media (min-width: 1180px) {
  .r-cards { display: block; margin: 0; }
  .r-card { display: block; }
  .r-img { aspect-ratio: auto; transform-origin: 50% 100%; }
  .r-card[aria-selected="true"] .r-img { transform: scale(1.08) translateY(-.4cqw); }
  .r-card:not([aria-selected="true"]):hover .r-img img { filter: brightness(.92); }
  .r-lab { gap: .8cqw; letter-spacing: .2em; }
  .r-lab small { font-size: 1.45cqw; }
  .r-txt { display: block; margin-top: .7cqw; line-height: 1.45; }
  .s-rit4 .r-dot::after { content: ""; position: absolute; left: 50%; top: 50%; width: .55cqw; height: .55cqw; margin: -.275cqw; border-radius: 50%; background: #F6DDB0; box-shadow: 0 0 .8cqw .2cqw rgba(255,210,140,.7); }
  .s-rit4 .r-dot { display: block; }
  .s-rit4 .r-dot.on { opacity: 1; }
  .s-rit4 .r-panel h3 { font-size: 2.2cqw; }
  .s-rit4 .copy .body { font-size: 1.3cqw; }
}
@media (max-width: 1179px) { .s-rit4 .r-dot { display: none; } }
@media (min-width: 1180px) {
  .r-img { height: 12.6cqw; }
  .r-lab { margin-top: 4.3cqw; font-size: 1cqw; }
  .r-txt { font-size: 1.12cqw; max-width: 17cqw; }
}
@media (min-width: 1180px) {
  .s-rit4 > .wave { height: calc(var(--hh) * .17) !important; }
  .s-rit4.fit > .wave { height: calc(var(--dh) * .17) !important; }
}
@media (max-width: 1179px) { .s-rit4 .wave { display: none !important; } }

/* ===== natural scale: blocks keep the full width, text at a normal size ===== */
:root { --sans: "Montserrat", "Helvetica Neue", Arial, sans-serif; }
@media (min-width: 1180px) {
  /* pinned screens taller than the window hold with their lower part in view */
  .s-ritual, .s-vib, .centers-run > .s-centers, .formats-run > .s-formats, .pin-run > .poster { top: calc(min(var(--hdr, 64px), 100svh - var(--hh)) - var(--seam-h)) !important; }
}
/* ===== ritual v5: exactly the approved picture ===== */
@media (min-width: 1180px) {
  .s-rit4 > .wave-fine { display: block; top: calc(var(--so) + var(--hh) * .832); height: calc(var(--hh) * .16) !important; transform: translateY(-50%); z-index: 2; }
  .s-rit4 .h-big { font-size: 5.6cqw; }
  .s-rit4 .r-intro { font-size: 1.08cqw !important; line-height: 1.7; color: rgba(243,234,219,.9); }
  .s-rit4 .r-count { font: 400 1.05cqw var(--serif); letter-spacing: .08em; color: rgba(243,234,219,.8); }
  .s-rit4 .r-count b { color: #F4EBDD; font-weight: 400; }
  .s-rit4 .r-count i { width: 8cqw; background: linear-gradient(90deg, rgba(217,185,131,.8), rgba(217,185,131,0)); }
  .s-rit4 .r-panel h3 { font: 400 2.05cqw/1.15 var(--serif); letter-spacing: .01em; margin: 1.7cqw 0 1.3cqw; }
  .s-rit4 .r-panel .body { font-size: 1.08cqw; line-height: 1.6; color: rgba(243,234,219,.88); }
  .s-rit4 .r-img { height: 11.4cqw; border-radius: 1cqw; outline: 0; border: 1px solid rgba(255,236,205,.26); box-shadow: 0 1.4cqw 3cqw -1cqw rgba(0,0,0,.7); -webkit-mask-image: linear-gradient(180deg, #000 72%, rgba(0,0,0,.72) 100%); mask-image: linear-gradient(180deg, #000 72%, rgba(0,0,0,.72) 100%); transform-origin: 50% 100%; transition: transform .9s var(--ease), border-color .9s var(--ease), box-shadow .9s var(--ease); }
  .s-rit4 .r-img img { filter: brightness(.82) saturate(.92); }
  .s-rit4 .r-card[aria-selected="true"] .r-img { transform: scale(1.085) translateY(-.3cqw); border: 1.5px solid rgba(240,206,146,.95); box-shadow: 0 0 0 1px rgba(240,206,146,.25), 0 0 2.6cqw .2cqw rgba(255,190,105,.38), 0 1.6cqw 3.4cqw -1cqw rgba(0,0,0,.75); -webkit-mask-image: none; mask-image: none; }
  .s-rit4 .r-card[aria-selected="true"] .r-img img { filter: brightness(1.04) saturate(1.02); }
  .s-rit4 .r-lab { margin-top: 3.55cqw; gap: .9cqw; font: 500 .92cqw/1.3 var(--sans); letter-spacing: .16em; color: rgba(243,234,219,.78); white-space: nowrap; }
  .s-rit4 .r-lab small { font: 400 1.35cqw/1 var(--serif); color: rgba(243,234,219,.8); }
  .s-rit4 .r-card[aria-selected="true"] .r-lab { color: #F3D9A6; }
  .s-rit4 .r-card[aria-selected="true"] .r-lab small { color: #F3D9A6; }
  .s-rit4 .r-dot { width: 1.1cqw !important; height: 1.1cqw; margin: -.55cqw 0 0 -.55cqw; border: 0; background: radial-gradient(circle, #F7DDAE 0 30%, rgba(247,221,174,.35) 55%, rgba(247,221,174,0) 72%); opacity: .9; z-index: 3; transition: all .8s var(--ease); }
  .s-rit4 .r-dot::after { display: none; }
  .s-rit4 .r-dot.on { width: 3.2cqw !important; height: 3.2cqw; margin: -1.6cqw 0 0 -1.6cqw; background: radial-gradient(circle, #FFF8EA 0 9%, #FFD99A 16%, rgba(255,205,130,.45) 30%, rgba(255,205,130,0) 62%); border: 1px solid rgba(255,220,170,.22); border-radius: 50%; }
  .s-rit4 .r-quote4 { text-align: center; font: 500 .98cqw/1.95 var(--sans); letter-spacing: .3em; text-transform: uppercase; color: #D6AE72; }
  .s-rit4 .r-quote4 i { display: block; width: 5.2cqw; height: 1px; margin: 1.6cqw auto 0; background: linear-gradient(90deg, transparent, rgba(217,185,131,.85), transparent); }
}
@media (min-width: 1180px) { .s-rec .copy .body { font-size: 1.12cqw !important; line-height: 1.6; } }
/* ===== 7 · formats v2: Solo scene + two cards + Practice band ===== */
.s-f2 .f2-img { position: relative; overflow: hidden; aspect-ratio: 4 / 3; }
.s-f2 .f2-img .media { position: absolute; inset: 0; }
.s-f2 .f2-img img, .s-f2 .f2-prac-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.8s var(--ease); }
.s-f2 h3 { font: 400 30px/1.05 var(--serif); text-transform: uppercase; letter-spacing: .01em; margin: 0; }
.s-f2 h3 i { display: inline-block; width: 1.2em; height: 1px; background: currentColor; vertical-align: .32em; margin-right: .45em; opacity: .7; }
.s-f2 .f2-meta { font: 500 14px/1.4 var(--sans); color: var(--ink); margin: 10px 0 2px; }
.s-f2 .f2-sub { font: 500 15px/1.4 var(--sans); margin: 10px 0 2px; }
.s-f2 .f2-t { font: 400 14px/1.5 var(--sans); color: var(--ink-2); margin: 0; }
.s-f2 .f2-btn { margin-top: 16px; }
.s-f2 .f2-solo-txt, .s-f2 .f2-card-txt, .s-f2 .f2-prac { padding: 16px 0 0; }
.s-f2 .f2-card, .s-f2 .f2-solo, .s-f2 .f2-prac-img, .s-f2 .f2-prac { margin-bottom: 28px; }
.s-f2 .f2-prac-img { aspect-ratio: 16 / 7; overflow: hidden; }
.s-f2 .f2-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; }
.s-f2 .f2-row .f2-btn { margin: 0; }
@media (min-width: 1180px) {
  .s-f2 .plate::after { display: none; }
  .s-f2 .h-f2 { letter-spacing: -.005em; }
  .s-f2 .f2-intro { font-size: 1.12cqw !important; line-height: 1.6; padding-left: 2cqw; border-left: 1px solid rgba(60,45,28,.35); }
  .s-f2 .f2-solo { margin: 0; }
  .s-f2 .f2-solo .f2-img { aspect-ratio: auto; }
  .s-f2 .f2-solo .f2-img::after { content: ""; position: absolute; inset: 0; }
  .s-f2 .f2-solo-txt { position: absolute; left: 11.5%; padding: 0; color: #FBF3E5; }
  .s-f2 .f2-solo h3 { margin-left: -2.6cqw; }
  .s-f2 .f2-solo h3 i { width: 2cqw; margin-right: .6cqw; vertical-align: .9cqw; }
  .s-f2 .f2-solo .f2-meta { color: #FBF3E5; font-size: 1.12cqw; margin: .5cqw 0 .15cqw; }
  .s-f2 .f2-solo .f2-t { color: rgba(251,243,229,.92); font-size: 1.12cqw; }
  .s-f2 .f2-btn { margin-top: 1.4cqw; font-size: .95cqw; min-height: 3.1cqw; padding: 0 2cqw; letter-spacing: .2em; }
  .s-f2 .f2-btn-light { color: #FBF3E5; border-color: rgba(251,243,229,.75); --btn-fill: #FBF3E5; }
  .s-f2 .f2-btn-light:hover { color: #1E1912; }
  .s-f2 .f2-card { margin: 0; background: #FBF6EE; border: 1px solid rgba(255,255,255,.9); }
  .s-f2 .f2-card .f2-img { aspect-ratio: auto; }
  .s-f2 .f2-card .f2-meta { font-size: .98cqw; }
  .s-f2 .f2-card .f2-t { font-size: .98cqw; }
  .s-f2 .f2-card .btn-sm { min-height: 2.5cqw; font-size: .8cqw; padding: 0 1.3cqw; letter-spacing: .18em; }
  .s-f2 .f2-prac-img { margin: 0; aspect-ratio: auto; -webkit-mask-composite: source-in; mask-composite: intersect; }
  .s-f2 .f2-prac { margin: 0; }
  .s-f2 .f2-prac h3 { font-size: 2.45cqw; }
  .s-f2 .f2-prac h3 i { width: 1.8cqw; margin-right: .6cqw; vertical-align: .75cqw; }
  .s-f2 .f2-sub { font-size: 1.12cqw; margin: .8cqw 0 .2cqw; }
  .s-f2 .f2-prac .f2-t { font-size: 1.12cqw; }
  .s-f2 .f2-solo:hover .f2-img img, .s-f2 .f2-card:hover .f2-img img { transform: scale(1.04); }
  .s-f2 .wave { display: block; }
  /* entrance: cards drift in from their side */
  .js .s-f2 .f2-solo.rv { transform: translateX(-60px); }
  .js .s-f2 .f2-card.rv { transform: translateX(70px); }
  .js .s-f2 .f2-prac-img.rv, .js .s-f2 .f2-prac.rv { transform: translateY(60px); }
  .js .s-f2 .rv.is-in, .js .s-f2.is-in .rv { transform: none; }
}
@media (min-width: 1180px) {
  .s-f2 .f2-row { flex-wrap: nowrap; }
  .s-f2 .f2-row .btn, .s-f2 .f2-btn { width: auto; flex: none; }
  .s-f2 .f2-btn { display: inline-flex; }
}
@media (min-width: 1180px) {
  .s-f2 .f2-card h3 { font-size: 2cqw; white-space: nowrap; }
  .s-f2 .f2-card .f2-row .btn-sm { font-size: .68cqw !important; min-height: 2.2cqw; padding: 0 1cqw; letter-spacing: .16em; gap: .8cqw; }
  .s-f2 .f2-card .f2-row .btn-sm svg { width: 1.1cqw; }
  .s-f2 .f2-card .f2-meta, .s-f2 .f2-card .f2-t { font-size: .92cqw; }
}
/* ===== 11 · FAQ v2: stacked glass plates, exactly the approved picture ===== */
@media (min-width: 1180px) {
  .s-faq .h-faq { font-size: 5.6cqw; letter-spacing: -.01em; color: #2A221A; }
  .s-faq .copy > .body { font-size: 1.15cqw !important; line-height: 1.55; color: #3B3127; }
  .s-faq .sheet { position: relative; z-index: calc(var(--i) + 1); overflow: visible; }
  .s-faq .sheet button { grid-template-columns: 4.4cqw 1fr 1.4cqw; font: 400 1.68cqw/1.2 var(--serif); color: #2A221A; }
  .s-faq .sheet small { font: 400 .98cqw/1 var(--serif); color: #6E6152; letter-spacing: .02em; }
  .s-faq .pm { width: 1.05cqw; height: 1.05cqw; }
  .s-faq .sheet.is-open { z-index: 20; margin-top: .5cqw; margin-bottom: .2cqw; }
  .s-faq .sheet.is-open button { grid-template-columns: 4.4cqw 1fr 1.4cqw; }
  .s-faq .sheet.is-open .pm { position: absolute; right: 3.2cqw; top: 2.6cqw; }
  .s-faq .sheet.is-open::before { content: ""; position: absolute; right: 6.4cqw; top: 2.4cqw; bottom: 2.4cqw; width: 1px; background: rgba(70,52,32,.35); }
  .s-faq .sheet-a p { font: 400 1.2cqw/1.65 var(--sans); color: #3B3127; }
  /* layers of glass behind the open plate */
  .s-faq .sheet.is-open::after { content: ""; position: absolute; z-index: -1; border: 1px solid rgba(255,255,255,.8); pointer-events: none; }
  /* foot: note left, big serif button right */
  .s-faq .faq-foot { align-items: center; }
  .s-faq .faq-foot .faq-note { font-size: .95cqw; line-height: 1.55; color: #4A3F33; }
  .s-faq .faq-foot .btn-lg { flex: none; width: 24cqw; min-width: 0; min-height: 5.3cqw; padding: 0; justify-content: center; font: 400 1.9cqw/1 var(--serif); letter-spacing: .04em; text-transform: uppercase; color: #2A221A; border: 1px solid rgba(60,45,28,.6); background: rgba(250,246,239,.35); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
  /* entrance: plates float up out of depth one after another, a sheen passes over each */
  .js .s-faq .sheet { scale: .9; filter: blur(6px); transition-delay: calc(var(--i) * 120ms + 200ms), calc(var(--i) * 120ms + 200ms), calc(var(--i) * 120ms + 200ms), calc(var(--i) * 120ms + 200ms), 0s, 0s, 0s, 0s; }
  .js .s-faq.is-in .sheet, .js .s-faq .is-in .sheet { opacity: 1; translate: 0 0; scale: 1; filter: none; }
  .s-faq .sheet > h3 { position: relative; overflow: hidden; }
  .s-faq .sheet > h3::after { content: ""; position: absolute; top: 0; bottom: 0; left: -40%; width: 30%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.75), transparent); transform: skewX(-18deg); opacity: 0; pointer-events: none; }
  .js .s-faq.is-in .sheet > h3::after { animation: faqSheen 1.6s var(--ease) both; animation-delay: calc(var(--i) * 120ms + 900ms); }
}
@keyframes faqSheen { 0% { left: -40%; opacity: 0; } 15% { opacity: 1; } 100% { left: 120%; opacity: 0; } }
@media (min-width: 1180px) {
  .s-faq .sheet.is-open::after { inset: .8cqw auto .8cqw -1.3cqw; width: 8cqw; border-right: 0; box-shadow: -1.3cqw .6cqw 0 -1px rgba(255,255,255,.22), -1.3cqw .6cqw 0 0 rgba(255,255,255,.5); }
}

/* ===== balanced scale: a block is about one window tall, never squeezed into a narrow strip ===== */
@media (min-width: 1180px) {
  .ritual-run { --hh: calc(clamp(960px, (100svh - var(--hdr, 64px)) * 1.405 * 1.12, min(100vw, 1600px)) / 1.405); }
  .centers-run { --hh: calc(clamp(960px, (100svh - var(--hdr, 64px)) * 1.405 * 1.12, min(100vw, 1600px)) / 1.405); }
  .formats-run { --hh: calc(clamp(960px, (100svh - var(--hdr, 64px)) * 1.405 * 1.12, min(100vw, 1600px)) / 1.405); }
  .stage { width: calc(var(--hh) * var(--ar)) !important; }
}
@media (min-width: 1180px) {
  .s-f2 .f2-solo .f2-img { -webkit-mask-composite: source-in; mask-composite: intersect; }
  .s-f2 .f2-solo h3 { font-size: 3.2cqw; }
  .s-f2 .f2-solo .f2-meta, .s-f2 .f2-solo .f2-t { font-size: 1.02cqw; }
  .s-f2 .f2-solo-txt { bottom: 13%; max-width: 30cqw; }
  .s-f2 .f2-card { box-shadow: 0 1.2cqw 2.6cqw -1.4cqw rgba(70,48,22,.45); }
  .s-f2 .f2-card .f2-t { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
}
@media (min-width: 1180px) {
  .s-f2 .f2-card .f2-meta { margin: .35cqw 0 .1cqw; }
}
@media (min-width: 1180px) {
  .s-f2 .f2-prac::before { content: ""; position: absolute; z-index: -1; background: radial-gradient(closest-side, rgba(250,244,234,.92), rgba(250,244,234,.6) 60%, rgba(250,244,234,0)); pointer-events: none; }
}
.s-f2 .f2-prac-img { position: relative; }
.s-f2 .f2-prac-img .media { position: absolute; inset: 0; }
/* pinned screens: stick at the header; a block taller than the window glides up slowly while its parts appear */
@media (min-width: 1180px) {
  .pin-run > .poster { top: calc(var(--hdr, 64px) - var(--seam-h)) !important; }
  .top.poster, #top.poster, .ritual-run { --hh: min(calc(100svh - var(--hdr, 64px)), calc(clamp(960px, (100svh - var(--hdr, 64px)) * 1.405 * 1.12, min(100vw, 1600px)) / 1.405)) !important; }
}
/* masks: no tiling, so no hairline from the opposite edge */
.s-f2 .f2-solo .f2-img, .s-f2 .f2-prac-img, .s-rit4 .r-img { -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: 100% 100%; mask-size: 100% 100%; }
@media (min-width: 1180px) {
  .js .s-f2 .rv.is-in, .js .s-f2.is-in .rv, .s-f2 .shown { will-change: auto; }
  /* FAQ: no movement on hover, so the text stays crisp */
  .s-faq .sheet:not(.is-open):hover { translate: 0 0; }
  .s-faq .sheet, .s-faq .sheet * { -webkit-font-smoothing: antialiased; }
  .s-faq .sheets { will-change: auto; }
}
/* FAQ: milky frosted glass with a stack of thin plates behind every row, like the picture */
@media (min-width: 1180px) {
  .s-faq .sheet { border: 1px solid rgba(255,255,255,.95); }
  .s-faq .sheet:not(.is-open)::after { content: ""; position: absolute; z-index: -1; left: -1.5cqw; top: -.55cqw; width: 4.5cqw; bottom: .55cqw; border: 1px solid rgba(255,255,255,.75); border-right: 0; background: linear-gradient(90deg, rgba(255,255,255,.42), rgba(255,255,255,0)); pointer-events: none; }
  .s-faq .sheet.is-open::after { background: linear-gradient(90deg, rgba(255,255,255,.55), rgba(255,255,255,0)); border-color: rgba(255,255,255,.85); }
}
/* ===== 4 · instruments v2: scene of the three instruments, three columns below ===== */
@media (min-width: 1180px) {
  .s-inst2 .plate::after { display: none; }
  .s-inst2 .wave { display: block; }
  .s-inst2 .h-inst { font-size: 4.7cqw; line-height: 1.04; text-align: center; color: #2E2419; }
  .s-inst2 .inst-intro { text-align: center; font-size: 1.12cqw !important; line-height: 1.6; color: #2E2419; }
  .s-inst2 .inst-col { color: #2E2419; }
  .s-inst2 .inst-rule { display: block; width: 6.6cqw; height: 1px; background: #B08A52; }
  .s-inst2 .inst-col h3 { font: 400 2.5cqw/1 var(--serif); text-transform: uppercase; letter-spacing: -.005em; margin: 0; white-space: nowrap; }
  .s-inst2 .inst-tags { font: 500 .98cqw/1 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: #3A2E22; }
  .s-inst2 .inst-txt { font: 400 1.12cqw/1.45 var(--sans); max-width: 23cqw; margin: 0; color: #2E2419; }
  .s-inst2 .inst-link { display: inline-flex; align-items: center; gap: 1cqw; padding: 0 0 .7cqw; background: none; border: 0; border-bottom: 1px solid #B08A52; font: 500 .92cqw/1 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: #2E2419; cursor: pointer; transition: gap .5s var(--ease), color .4s; }
  .s-inst2 .inst-link svg { width: 1.3cqw; transition: transform .5s var(--ease); }
  .s-inst2 .inst-link:hover { color: #8A6533; gap: 1.5cqw; }
  .s-inst2 .inst-link:hover svg { transform: translateX(.3cqw); }
}
@media (min-width: 1180px) {
  .s-inst2.poster > .plate { height: calc(var(--hh) * 1.2) !important; width: calc(var(--hh) * 1.2 * var(--pw, 3)) !important; }
  .s-inst2 .inst-rule { margin-bottom: 1.6cqw; }
  .s-inst2 .inst-tags { margin: .9cqw 0 1.5cqw; }
}

/* ===== ritual: back to the full-width scale (before the height fit) ===== */
@media (min-width: 1180px) {
  .ritual-run, .ritual-run > .poster { --hh: calc(clamp(960px, (100svh - var(--hdr, 64px)) * 1.405 * 1.12, min(100vw, 1600px)) / 1.405) !important; }
}

/* ===== one type scale: every block gets the same canvas width, so the same cqw size reads the same everywhere ===== */
@media (min-width: 1180px) {
  :root { --cw: clamp(960px, calc((100svh - var(--hdr, 64px)) * 1.405 * 1.12), min(100vw, 1600px)); }
  .poster { --hh: calc(var(--cw) / var(--ar)) !important; }
  .vib-run { --hh: calc(var(--cw) / 1.3); }
  .centers-run, .formats-run, .ritual-run, .ritual-run > .poster { --hh: calc(var(--cw) / 1.405) !important; }
  #top.poster { --hh: min(calc(100svh - var(--hdr, 64px)), calc(var(--cw) / 1.5)) !important; }
  .poster .copy .body, .poster .copy .lead, .poster .copy .body-lg, .s-f2 .f2-t, .s-f2 .f2-meta, .s-f2 .f2-sub, .s-inst2 .inst-txt, .s-faq .sheet-a p, .s-rit4 .r-panel .body, .s-rit4 .r-intro, .s-inst2 .inst-intro, .s-f2 .f2-intro, .s-book .bstep span { font-size: 1.1cqw !important; line-height: 1.6 !important; }
  .poster .copy .fine, .poster .copy .faq-note, .poster .copy .cc-note, .poster .copy .fine-c, .poster .copy .note-ico span, .s-after .pane-before, .s-after .pane-after { font-size: .9cqw !important; line-height: 1.55 !important; }
  .poster .copy .eyebrow, .s-inst2 .inst-tags, .s-rit4 .r-lab, .s-book .bstep b { font-size: .8cqw !important; }
  .s-f2 .f2-card h3, .s-inst2 .inst-col h3, .s-rit4 .r-panel h3, .s-f2 .f2-prac h3 { font-size: 2.1cqw !important; }
  /* readable over any background */
  .poster:not(.dark) .copy .body, .poster:not(.dark) .copy .lead, .poster:not(.dark) .copy .fine, .poster:not(.dark) .copy .eyebrow, .poster:not(.dark) .copy .note-ico, .poster:not(.dark) .copy .statement-l { text-shadow: 0 0 1.2cqw rgba(250,245,236,.95), 0 0 .3cqw rgba(250,245,236,.9); }
  .poster.dark .copy .body, .poster.dark .copy .fine, .poster.dark .copy .eyebrow { text-shadow: 0 0 1.2cqw rgba(16,13,10,.95), 0 0 .3cqw rgba(16,13,10,.9); }
}
/* after: glass panes hide the threads behind them */
.s-after > .wave { -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 16%, transparent 24%, transparent 76%, #000 84%, #000 100%); mask-image: linear-gradient(90deg, #000 0%, #000 16%, transparent 24%, transparent 76%, #000 84%, #000 100%); }
.s-after > .wave { z-index: 1; }
.s-after .copy, .s-after .stage { z-index: 4; }

/* ===== formats: nothing overlaps, the whole of Vlad is visible ===== */
@media (min-width: 1180px) {
  .s-f2 .h-f2 { line-height: .96 !important; }
  .s-f2 .f2-card-txt { padding: 1.1cqw 1.7cqw 1.3cqw; }
  .s-f2 .f2-card .f2-t { -webkit-line-clamp: 3; }
  .s-f2 .f2-prac::before { inset: -2cqw -3cqw; }
}

/* ===== instruments: each source appears on its own, its words follow it; a warm light finds the instrument ===== */
@media (min-width: 1180px) {
  .js .stepped .inst-col > * { opacity: 0; transform: translateY(18px); transition: opacity .9s var(--ease), transform 1s var(--ease); }
  .js .stepped .inst-col > .inst-rule { transform: scaleX(0); transform-origin: 0 50%; }
  .js .stepped .inst-col.shown > * { opacity: 1; transform: none; }
  .js .stepped .inst-col.shown > .inst-rule { transition-delay: .1s; }
  .js .stepped .inst-col.shown > h3 { transition-delay: .35s; }
  .js .stepped .inst-col.shown > .inst-tags { transition-delay: .55s; }
  .js .stepped .inst-col.shown > .inst-txt { transition-delay: .75s; }
  .js .stepped .inst-col.shown > .inst-link { transition-delay: .95s; }
  .inst-spot { position: absolute; z-index: 1; top: 34%; left: 6%; width: 34vw; height: 34vw; max-width: 560px; max-height: 560px; translate: -50% -50%; border-radius: 50%; pointer-events: none; background: radial-gradient(closest-side, rgba(255,226,170,.55), rgba(255,214,150,.18) 45%, rgba(255,214,150,0) 70%); mix-blend-mode: soft-light; opacity: 0; transition: left 1.6s var(--ease), opacity 1.2s var(--ease); }
  .s-inst2[data-shown="3"] .inst-spot { opacity: 1; left: 7%; top: 56%; }
  .s-inst2[data-shown="4"] .inst-spot { opacity: 1; left: 46%; top: 60%; }
  .s-inst2[data-shown="5"] .inst-spot { opacity: 1; left: 79%; top: 56%; }
}
@media (max-width: 1179px) { .inst-spot { display: none; } }

/* ===== FAQ: a fan of frosted plates in perspective, the open one in front; a plate grows under the cursor ===== */
@media (min-width: 1180px) {
  .s-faq .sheets { transform-style: preserve-3d; }
  .s-faq .sheet { backface-visibility: hidden; }
}

/* ===== booking: organic double glass, a ghost of the sent state, three steps on the thread, footer columns ===== */
@media (min-width: 1180px) {
  .s-book .h-big .acc, .s-book .h-big { color: #E4C58F; -webkit-text-fill-color: #E4C58F; }
  .s-book .formbox { position: relative; }
  .s-book .formbox .glass-back, .s-book .formbox .glass-back2 { position: absolute; pointer-events: none; border: 1px solid rgba(236,206,150,.38); background: linear-gradient(140deg, rgba(255,240,215,.10), rgba(255,240,215,.03) 60%, rgba(255,240,215,.08)); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
  .s-book .formbox .glass-back { inset: -2.4cqw -2.2cqw -2.2cqw -2.6cqw; border-radius: 14% 10% 12% 9% / 9% 13% 8% 12%; transform: rotate(-1.6deg); }
  .s-book .formbox .glass-back2 { inset: -1cqw -1.2cqw -1.6cqw -1.4cqw; border-radius: 9% 14% 10% 13% / 12% 8% 13% 9%; transform: rotate(1.1deg); border-color: rgba(236,206,150,.5); }
  .s-book .form { position: relative; z-index: 2; background: transparent !important; border: 0 !important; box-shadow: none !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
  .s-book .demo { display: none; }
  .s-book .btn-gold { border-radius: 2px; }
  .s-book .ghost-sent { z-index: 1; height: 26cqw; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.6cqw; border: 1px solid rgba(236,206,150,.35); border-radius: 0 10% 8% 0 / 0 7% 9% 0; border-left: 0; background: linear-gradient(140deg, rgba(255,240,215,.08), rgba(255,240,215,.02)); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: #EBD3A6; text-align: center; padding-left: 2cqw; }
  .s-book .ghost-sent i { display: grid; place-items: center; width: 4.4cqw; height: 4.4cqw; border: 1px solid rgba(236,206,150,.6); border-radius: 50%; }
  .s-book .ghost-sent svg { width: 2cqw; }
  .s-book .ghost-sent b { font: 400 var(--t-h3)/1.1 var(--serif); text-transform: uppercase; font-weight: 400; }
  .s-book .bstep { display: grid; grid-template-columns: auto 1fr; column-gap: 1.6cqw; align-items: center; }
  .s-book .bstep i { grid-row: span 2; display: grid; place-items: center; width: 3.8cqw; height: 3.8cqw; border: 1px solid rgba(236,206,150,.7); border-radius: 50%; font: 400 calc(var(--t-h3) * .8)/1 var(--serif); color: #EBD3A6; font-style: normal; }
  .s-book .bstep b { font: 500 var(--t-label)/1.2 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: #EBD3A6; }
  .s-book .bstep span { font-size: var(--t-body); color: rgba(244,234,216,.86); }
  .s-book .bstep:not(:last-child)::after { content: ""; position: absolute; left: calc(100% + 1cqw); top: 1.9cqw; width: 6cqw; height: 1px; background: rgba(236,206,150,.5); }
  .s-book .foot { display: grid; grid-template-columns: repeat(4, auto); justify-content: space-between; align-items: center; padding-top: 1.6cqw; border-top: 1px solid rgba(236,206,150,.28); }
  .s-book .foot p { margin: 0; padding: 0 2.2cqw; color: rgba(244,234,216,.82); }
  .s-book .foot p + p { border-left: 1px solid rgba(236,206,150,.3); }
  .s-book .foot p:first-child { padding-left: 0; }
  .s-book .foot .pending { display: none; }
}
/* after: "before" on top, "after" at the bottom of each pane */
@media (min-width: 1180px) {
  .s-after .pane-before { position: static; margin: 1.4cqw auto 0; max-width: 19cqw; text-align: center; }
  .s-after .pane-after { position: absolute; left: 0; right: 0; top: 32cqw; margin: 0 auto; max-width: 19cqw; text-align: center; text-transform: none; letter-spacing: .02em; font-weight: 500; }
  .s-after .pane-after b, .s-after .pane-before b { display: inline-block; margin-bottom: .3cqw; font: 500 .8cqw var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--acc); }
}
/* formula: Sound, +, Intention, =, Transformation appear one after another */
.js .formula > * { display: inline-block; opacity: 0; transform: translateY(.4em); filter: blur(6px); transition: opacity .9s var(--ease), transform 1s var(--ease), filter .9s var(--ease); }
.js .formula.is-in > *, .js .formula.shown > * { opacity: 1; transform: none; filter: none; }
.js .formula > :nth-child(1) { transition-delay: .1s; } .js .formula > :nth-child(2) { transition-delay: .6s; } .js .formula > :nth-child(3) { transition-delay: 1s; } .js .formula > :nth-child(4) { transition-delay: 1.5s; } .js .formula > :nth-child(5) { transition-delay: 1.9s; }
/* recognition: labels sit on the dots drawn in the picture; only the lone label gets its own light */
@media (min-width: 1180px) {
  .s-rec .state .fl { animation: none !important; }
  .s-rec .state { translate: 0 0 !important; }
  .s-rec .state:not(:nth-child(5)):not(:nth-child(6)) .star { display: none !important; }
  .s-rec .state:nth-child(5) .star, .s-rec .state:nth-child(6) .star { width: .8cqw; height: .8cqw; margin-left: -.4cqw; bottom: -2.4cqw; }
}
/* ===== 5 · Vlad: bronze title like the concept, fine gold arcs, the line from VLAD ending in a dot ===== */
@media (min-width: 1180px) {
  .s-vlad .vlad-arcs { height: 100%; z-index: 0; pointer-events: none; }
  .s-vlad .vlad-arcs svg { width: 100%; height: 100%; overflow: visible; }
  .s-vlad .vlad-arcs circle, .s-vlad .vlad-arcs path { stroke-dasharray: 260; stroke-dashoffset: 260; transition: stroke-dashoffset 3.2s cubic-bezier(.3,.6,.2,1); }
  .s-vlad .vlad-arcs.shown circle, .s-vlad .vlad-arcs.shown path, .s-vlad.is-in .vlad-arcs:not(.at) circle { stroke-dashoffset: 0; }
  .s-vlad .h-vlad, .s-vlad .h-vlad > span, .s-vlad .h-vlad .acc { color: #9C7342 !important; -webkit-text-fill-color: #9C7342 !important; font-weight: 300; }
  .s-vlad .h-vlad { font-size: 12.4cqw; line-height: .82; letter-spacing: -.02em; }
  .s-vlad .h-vlad > span:last-child { padding-left: 1.05em; }
  .s-vlad .vlad-line { left: 78%; right: -6%; top: 30%; }
  .s-vlad .vlad-line::after { top: -.32cqw; width: .7cqw; height: .7cqw; }
  .s-vlad .lead-serif { line-height: 1.12; color: #2C241B; }
}
/* formats: RAW Practice is a real card like the others */
@media (min-width: 1180px) {
  .s-f2 .f2-prac-img { -webkit-mask-image: none !important; mask-image: none !important; border: 1px solid rgba(255,255,255,.9); box-shadow: 0 1.2cqw 2.6cqw -1.4cqw rgba(70,48,22,.45); }
  .s-f2 .f2-prac { background: #FBF6EE; border: 1px solid rgba(255,255,255,.9); box-shadow: 0 1.2cqw 2.6cqw -1.4cqw rgba(70,48,22,.45); padding: 2cqw 2.2cqw 2cqw 3.6cqw !important; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; }
  .s-f2 .f2-prac::before { display: none; }
  .s-f2 .f2-prac h3 { margin-left: -2.6cqw !important; }
}
@media (min-width: 1180px) {
  .s-vlad .lead-serif { font-size: 2.15cqw !important; }
  .s-f2 .f2-solo .f2-img { height: 41cqw; }
  .s-f2 .f2-card .f2-img { height: 10.4cqw; }
  .s-f2 .f2-prac-img { height: 17cqw; }
  .s-f2 .f2-prac { height: 17cqw; padding-top: 1.4cqw !important; padding-bottom: 1.4cqw !important; }
  .s-f2 .f2-prac .btn { margin-top: 1.1cqw; }
}

@media (min-width: 1180px) {
  .s-faq .sheet button { padding-top: .8cqw !important; padding-bottom: .8cqw !important; }
  .s-faq .sheet.is-open button { padding-top: 1.3cqw !important; }
  .s-faq .faq-foot { margin-top: 1.8cqw !important; }
}
/* instruments: each instrument is its own layer and steps into the scene with its column */
.inst-layer { display: none; }
@media (min-width: 1180px) {
  .s-inst2 > .inst-layer { display: block; pointer-events: none; }
  .s-inst2 > .inst-layer img { width: 100%; height: 100%; object-fit: cover; filter: drop-shadow(0 1.4vw 1.6vw rgba(90,62,30,.28)); }
  .js .s-inst2 > .inst-layer .media { opacity: 0; transform: translateY(5%) scale(.94); filter: blur(10px); transform-origin: 50% 70%; transition: opacity 1.4s var(--ease), transform 1.8s cubic-bezier(.16,.84,.24,1), filter 1.4s var(--ease); }
  .js .s-inst2[data-shown="3"] > .inst-layer[data-k="0"] .media,
  .js .s-inst2[data-shown="4"] > .inst-layer[data-k="0"] .media, .js .s-inst2[data-shown="4"] > .inst-layer[data-k="1"] .media,
  .js .s-inst2[data-shown="5"] > .inst-layer .media { opacity: 1; transform: none; filter: none; }
  .s-inst2 .copy, .s-inst2 .stage { z-index: 3; }
}
@media (prefers-reduced-motion: reduce) { .js .s-inst2 > .inst-layer .media { opacity: 1 !important; transform: none !important; filter: none !important; } }
/* Vlad: RAW lines up with the text, VLAD steps out to the left as in the concept; brushed bronze metal on the letters */
@media (min-width: 1180px) {
  .s-vlad .h-vlad > .acc { padding-left: .88em !important; }
  .s-vlad .h-vlad > span { background-size: 100% 100%; }
  .s-vlad .vlad-arcs { -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 48%, transparent 56%); mask-image: linear-gradient(90deg, #000 0%, #000 48%, transparent 56%); }
}
/* after: panes fly in one by one from depth */
@media (min-width: 1180px) {
  .js .s-after.stepped .copy .pane.at:not(.shown) { opacity: 0 !important; translate: 0 22cqw; rotate: calc((var(--d) - 1) * 6deg); scale: .82; filter: blur(10px); }
  .js .s-after.stepped .copy .pane.at { transition: opacity 1.2s var(--ease), translate 1.5s cubic-bezier(.16,.84,.24,1), rotate 1.5s cubic-bezier(.16,.84,.24,1), scale 1.5s cubic-bezier(.16,.84,.24,1), filter 1.2s var(--ease), transform .8s var(--ease) !important; }
  .js .s-after.stepped .copy .pane.at.shown { opacity: 1 !important; translate: 0 0; rotate: 0deg; scale: 1; filter: none !important; }
}
/* formats: whole heads in Synergy, Practice framed from head to bowls */
@media (min-width: 1180px) {
  .s-f2 .f2-card:nth-of-type(3) .f2-img img, .s-f2 .f2-card .f2-img img { object-position: 50% 22%; }
  .s-f2 .f2-prac-img, .s-f2 .f2-prac { height: 21cqw !important; }
  .s-f2 .f2-prac-img img { object-position: 50% 62% !important; }
}
@media (min-width: 1180px) {
  .s-f2 .f2-card .f2-img img { object-position: 50% 55%; }
  .s-f2 article.f2-card:nth-of-type(3) .f2-img img { object-position: 50% 12%; }
}
/* formats: cards like the ritual steps, rounded corners and a fine gold outline with a warm glow */
@media (min-width: 1180px) {
  .s-f2 .f2-solo .f2-img { -webkit-mask-image: none !important; mask-image: none !important; border-radius: 1.2cqw; }
  .s-f2 .f2-solo, .s-f2 .f2-card { border-radius: 1.2cqw; }
  .s-f2 .f2-solo, .s-f2 .f2-card, .s-f2 .f2-prac-img, .s-f2 .f2-prac { border: 1.5px solid rgba(214,172,104,.9) !important; box-shadow: 0 0 0 1px rgba(240,206,146,.22), 0 0 2.4cqw .1cqw rgba(255,196,120,.28), 0 1.6cqw 3.4cqw -1.4cqw rgba(70,45,18,.5) !important; }
  .s-f2 .f2-card { overflow: hidden; }
  .s-f2 .f2-prac-img { border-radius: 1.2cqw 0 0 1.2cqw; border-right: 0 !important; overflow: hidden; }
  .s-f2 .f2-prac { border-radius: 0 1.2cqw 1.2cqw 0; border-left: 0 !important; }
  .s-f2 .f2-solo { overflow: hidden; }
  .s-f2 .f2-solo .f2-img::after { background: linear-gradient(180deg, rgba(14,10,6,0) 45%, rgba(14,10,6,.55) 75%, rgba(14,10,6,.72)) !important; }
  .s-f2 .f2-solo:hover, .s-f2 .f2-card:hover { border-color: rgba(240,206,146,1) !important; box-shadow: 0 0 0 1px rgba(240,206,146,.35), 0 0 3.4cqw .3cqw rgba(255,190,105,.42), 0 2cqw 4cqw -1.4cqw rgba(70,45,18,.55) !important; }
  .s-f2 .f2-solo, .s-f2 .f2-card { transition: border-color .6s var(--ease), box-shadow .6s var(--ease), opacity 1.1s var(--ease), translate 1.2s var(--ease), filter 1.1s var(--ease); }
}
/* centres: the longer title fits its column */
@media (min-width: 1180px) { #h9 { font-size: 3.8cqw !important; white-space: nowrap; } }

/* ===== FAQ motion, rebuilt for smoothness: only transform and opacity move, no blur and no backdrop filters inside the 3D stack ===== */
@media (min-width: 1180px) {
  .js .stepped .copy .faq-col.at, .js .stepped .copy .faq-col.at.shown { opacity: 1 !important; translate: none !important; filter: none !important; transition: none !important; }
  .s-faq .sheet { will-change: transform, opacity; filter: none !important; }
  .s-faq .sheet.is-open { width: calc(100% - 11cqw) !important; transform: translate3d(-2.6cqw, 0, 60px) !important; }
  .s-faq .sheet:not(.is-open):hover { box-shadow: 0 1.8cqw 3.4cqw -1.4cqw rgba(78,58,36,.5) !important; z-index: 18; }
  .s-faq .sheet > h3::after { display: none; }
  .s-faq .sheet button { transition: none !important; }
  /* entrance: the plates rise out of depth one after another once the list is revealed */
  .js .s-faq .faq-col:not(.shown) .sheet { opacity: 0 !important; transform: translate3d(4cqw, 2cqw, -160px) !important; }
  .js .s-faq .faq-col.shown .sheet { transition-delay: calc(var(--i) * 110ms) !important; }
  .js .s-faq .faq-col.shown .sheet:hover, .js .s-faq .faq-col.shown .sheet.is-open { transition-delay: 0s !important; }
  .js .s-faq .faq-col.shown .faq-foot { opacity: 1; transform: none; }
}
/* booking: tidy form, no overlaps, one type scale */
@media (min-width: 1180px) {
  .s-book .form { padding: 1.6cqw 2.2cqw 1.8cqw !important; gap: 1.15cqw !important; }
  .s-book .form .row { gap: 2cqw !important; }
  .s-book .field > span { font-size: .8cqw !important; letter-spacing: .22em; }
  .s-book .field input, .s-book .field select, .s-book .field textarea { font-size: 1.1cqw !important; padding-top: .6cqw !important; padding-bottom: .6cqw !important; }
  .s-book .field select { padding-right: 2cqw !important; text-overflow: ellipsis; }
  .s-book .check span { font-size: .85cqw !important; line-height: 1.5; }
  .s-book .btn-gold { min-height: 3.8cqw !important; font-size: 1.25cqw !important; letter-spacing: .14em; }
  .s-book .sent { position: absolute; inset: 0; z-index: 3; display: grid; place-content: center; justify-items: center; gap: 1.2cqw; text-align: center; padding: 3cqw; }
  .s-book .sent[hidden] { display: none; }
  .s-book .formbox.is-sent .form { visibility: hidden; }
  .s-book .sent h3 { font: 400 2.4cqw/1.1 var(--serif) !important; text-transform: uppercase; color: #EBD3A6; }
  .s-book .sent .body { font-size: 1.1cqw !important; max-width: 26cqw; }
  .s-book .sent-ring { display: grid; place-items: center; width: 4.4cqw; height: 4.4cqw; border: 1px solid rgba(236,206,150,.6); border-radius: 50%; color: #EBD3A6; }
  .s-book .sent-ring svg { width: 2cqw; }
}
.s-book .ghost-sent { display: none !important; }
@media (min-width: 1180px) {
  .s-faq .sheet { pointer-events: auto; }
  .s-faq .faq-col.shown .sheet:not(.is-open):not(:hover) { transform: translate3d(0, 0, 1px) !important; }
}
/* instruments: the threads run behind the gong and the bowls */
@media (min-width: 1180px) {
  .s-inst2 > .plate:not(.inst-layer) { z-index: 0; }
  .s-inst2 > .wave { z-index: 1 !important; }
  .s-inst2 > .inst-layer { z-index: 2 !important; }
}
/* Vlad's own words, set apart as a quiet pull quote */
@media (min-width: 1180px) {
  .s-vlad .quote-v2 { margin: 0; padding: 1.6cqw 1.8cqw 1.4cqw 2.4cqw; position: relative; border-left: 1px solid #B88E50; background: linear-gradient(90deg, rgba(196,154,92,.14), rgba(196,154,92,0) 85%); }
  .s-vlad .quote-v2 .qm { position: absolute; left: .9cqw; top: -1.9cqw; font: 400 6cqw/1 var(--serif); color: rgba(176,132,74,.45); pointer-events: none; }
  .s-vlad .quote-v2 p { margin: 0; font: 400 1.5cqw/1.42 var(--serif); color: #2C241B; letter-spacing: .005em; }
  .s-vlad .quote-v2 cite { display: block; margin-top: .9cqw; font: 500 .8cqw/1 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: #9C7342; font-style: normal; }
  .s-vlad .quote-v2 cite::before { content: ""; display: inline-block; width: 1.8cqw; height: 1px; background: #B88E50; vertical-align: middle; margin-right: .8cqw; }
  .js .s-vlad .quote-v2.shown .qm { animation: qmIn 1.4s var(--ease) both; }
}
@keyframes qmIn { from { opacity: 0; transform: translateY(1cqw) scale(.8); } to { opacity: 1; transform: none; } }
@media (max-width: 1179px) { .quote-v2 { margin: 24px 0 0; padding: 18px 0 0 18px; border-left: 1px solid #B88E50; } .quote-v2 .qm { display: none; } .quote-v2 p { margin: 0; font: 400 21px/1.42 var(--serif); } .quote-v2 cite { display: block; margin-top: 10px; font: 500 11px var(--sans); letter-spacing: .24em; text-transform: uppercase; color: #9C7342; font-style: normal; } }
/* path: the body line under the formula reads as its quiet conclusion */
@media (min-width: 1180px) {
  .s-path .path-cap, .path-cap { display: flex; align-items: center; justify-content: center; gap: 1.6cqw; text-align: center; margin: 0; font: 400 1.55cqw/1.45 var(--serif) !important; color: #2C241B; text-shadow: 0 0 1.4cqw rgba(250,245,236,1), 0 0 .4cqw rgba(250,245,236,1); }
  .path-cap span { max-width: 40cqw; }
  .path-cap i { flex: 0 0 5cqw; }
  .path-cap i:last-child { transform: scaleX(-1); }
}
@media (max-width: 1179px) { .path-cap { font: 400 20px/1.45 var(--serif); text-align: center; } .path-cap i { display: none; } }
@media (min-width: 1180px) {
  .path-cap { display: block !important; text-align: left !important; font-size: 1.5cqw !important; }
  .path-cap i { display: block; width: 4cqw; height: 1px; margin-bottom: 1.2cqw; background: #B88E50 !important; transform: none !important; }
  .s-vlad .quote-v2 { padding-top: 1.2cqw; padding-bottom: 1.1cqw; }
  .s-vlad .quote-v2 p { font-size: 1.3cqw; }
  /* VLAD RAW: brushed copper texture inside the letters */
  .s-vlad .h-vlad > span { background:
      repeating-linear-gradient(94deg, rgba(255,236,210,.10) 0 1px, rgba(0,0,0,0) 1px 3px, rgba(60,24,8,.08) 3px 4px, rgba(0,0,0,0) 4px 7px),
      radial-gradient(120% 90% at 30% 20%, rgba(255,214,168,.55), rgba(255,214,168,0) 55%),
      linear-gradient(100deg, #5B2D14 0%, #9A5229 14%, #DD9461 28%, #F5C99A 37%, #B4693A 50%, #6E361A 62%, #C47A45 76%, #EDB27E 88%, #8E4A24 100%) !important;
    -webkit-background-clip: text !important; background-clip: text !important; color: transparent !important; -webkit-text-fill-color: transparent !important; filter: drop-shadow(0 .12cqw .2cqw rgba(70,30,10,.25)); }
  .s-vlad .vlad-line { background: linear-gradient(90deg, #B4693A, #DD9461) !important; }
  .s-vlad .vlad-line::after { background: radial-gradient(circle at 35% 30%, #F5C99A, #9A5229) !important; }
}
@media (min-width: 1180px) {
  .path-cap { position: relative; }
  .path-cap::before { content: ""; position: absolute; z-index: -1; inset: -2.4cqw -5cqw -2.4cqw -3cqw; background: radial-gradient(closest-side, rgba(250,245,236,.96), rgba(250,245,236,.8) 55%, rgba(250,245,236,0)); pointer-events: none; }
}
/* vibration: the quote as a framed glass panel with gold marks */
@media (min-width: 1180px) {
  .s-vib .quote-c { text-align: center; font: 400 1.75cqw/1.5 var(--serif) !important; color: #F4EBDD; border: 1px solid rgba(217,185,131,.55); border-radius: 1.2cqw; background: linear-gradient(140deg, rgba(255,240,215,.08), rgba(255,240,215,.02) 60%, rgba(255,240,215,.06)); box-shadow: 0 0 0 1px rgba(217,185,131,.12), 0 0 3cqw rgba(255,196,120,.12), inset 0 1px 0 rgba(255,240,215,.18); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
  .s-vib .quote-c .q { font: 400 4.2cqw/0 var(--serif); color: #D9B983; margin: 0 .5cqw; }
  .s-vib .quote-c::before, .s-vib .quote-c::after { content: ""; position: absolute; left: 50%; width: 7cqw; height: 1px; translate: -50% 0; background: linear-gradient(90deg, transparent, #D9B983, transparent); }
  .s-vib .quote-c::before { top: -1px; } .s-vib .quote-c::after { bottom: -1px; }
}
/* centres: the chakra rail runs straight along the figure's spine, each dot on its own centre, root red at the bottom, crown violet at the top */
@media (min-width: 1180px) {
  .geo .rail { position: absolute; inset: 0; display: block; pointer-events: none; }
  .geo .rail::before { content: ""; position: absolute; left: 19.85%; top: 20.6%; height: 49.7%; width: 1px; translate: -50% 0; background: linear-gradient(0deg, var(--ch0), var(--ch1) 17%, var(--ch2) 33%, var(--ch3) 50%, var(--ch4) 67%, var(--ch5) 84%, var(--ch6)); opacity: .55; }
  .rail-dot { width: 2.4cqw !important; height: 2.4cqw; margin: -1.2cqw 0 0 -1.2cqw; }
  .rail-dot::before { content: ""; position: absolute; left: 50%; top: 50%; width: .55cqw; height: .55cqw; translate: -50% -50%; border-radius: 50%; background: var(--c); box-shadow: 0 0 .6cqw .15cqw color-mix(in srgb, var(--c) 70%, transparent); }
  .rail-name { right: auto !important; left: 125%; translate: -6px -50%; color: #3A2E22; text-shadow: 0 0 .8cqw #FBF6EE, 0 0 .3cqw #FBF6EE; }
  .rail-dot:hover .rail-name, .rail-dot[aria-selected="true"] .rail-name { translate: 0 -50%; }
}
@media (min-width: 1180px) {
  .s-faq .faq-col { perspective-origin: 30% 20%; }
  .s-faq .sheets { transform-origin: 0 0; }
}
/* ===== 9 · centres v2: pinned scene, cards slide sideways with the scroll ===== */
@media (min-width: 1180px) {
  .centers-run > .s-centers { position: sticky; top: calc(var(--hdr, 64px) - var(--seam-h)) !important; }
  .cc2 { position: absolute; }
  .cc2 .cc-card { position: absolute; left: 0; top: 0; width: 100%; box-sizing: border-box; transform-origin: 50% 50%; will-change: transform, opacity; transition: none !important; animation: none !important; }
  .cc2 .cc-card .cc-in { opacity: var(--inner, 1); }
  .cc2 .cc-card .cc-top b { color: var(--c); }
  .cc2 .cc-card { border-color: color-mix(in srgb, var(--c) 45%, rgba(200,170,120,.5)) !important; }
  .cc2 .cc-card .cc-note { position: relative; }
  .cc2 .cc-yantras span { opacity: 1 !important; position: static; }
  .s-centers .cc-side, .s-centers .cc-dots, .s-centers .cc-nav { display: none !important; }
  .glows .glow { opacity: calc(.15 + .85 * var(--on, 0)) !important; transition: none !important; }
  .rail-dot::before { opacity: calc(.45 + .55 * var(--on, 0)); transform: scale(calc(1 + .6 * var(--on, 0))); }
  .cc-pulse { position: absolute; left: 19.85%; top: calc(var(--gy) * 1%); width: 1.4cqw; height: 1.4cqw; translate: -50% -50%; border-radius: 50%; background: radial-gradient(circle, #fff 0 18%, rgba(255,240,210,.6) 40%, rgba(255,240,210,0) 70%); pointer-events: none; opacity: 0; }
  .s-centers > .wave { z-index: 1; }
}
@media (prefers-reduced-motion: reduce) and (min-width: 1180px) { .centers-run { height: calc(var(--hh) + var(--seam-h) + 7 * 62vh) !important; } .centers-run > .s-centers { position: sticky !important; top: calc(var(--hdr, 64px) - var(--seam-h)) !important; } }
@media (min-width: 1180px) {
  .centers-run, .centers-run > .poster { --hh: min(calc(100svh - var(--hdr, 64px)), calc(var(--cw) / 1.405)) !important; }
  .cc2 .cc-card h3 { white-space: nowrap; overflow: hidden; }
}
@media (min-width: 1180px) {
  /* RAW gets the same copper as VLAD */
  .s-vlad .h-vlad > span.acc, .s-vlad .h-vlad .ttl.acc { background:
      repeating-linear-gradient(94deg, rgba(255,236,210,.10) 0 1px, rgba(0,0,0,0) 1px 3px, rgba(60,24,8,.08) 3px 4px, rgba(0,0,0,0) 4px 7px),
      radial-gradient(120% 90% at 30% 20%, rgba(255,214,168,.55), rgba(255,214,168,0) 55%),
      linear-gradient(100deg, #5B2D14 0%, #9A5229 14%, #DD9461 28%, #F5C99A 37%, #B4693A 50%, #6E361A 62%, #C47A45 76%, #EDB27E 88%, #8E4A24 100%) !important;
    -webkit-background-clip: text !important; background-clip: text !important; color: transparent !important; -webkit-text-fill-color: transparent !important; }
  /* centres card: three columns always fit */
  .cc2 .cc-cols { gap: 1cqw !important; }
  .cc2 .cc-cols > div { min-width: 0; }
  .cc2 .cc-cols p { font-size: .95cqw !important; line-height: 1.5 !important; overflow-wrap: break-word; }
  .cc2 .cc-cols h4 { font-size: 1.25cqw !important; white-space: nowrap; }
}
@media (min-width: 1180px) {
  .cc2 .cc-cols h4 { overflow: visible !important; letter-spacing: .02em; }
  .cc2 .cc-after { letter-spacing: .08em !important; font-size: .82cqw !important; }
  .cc2 .cc-cols { grid-template-columns: 1fr auto 1fr auto 1.1fr !important; }
  /* formats: cards come in together with the title, quickly */
  .js .s-f2.stepped .copy .at { transition-duration: .7s !important; }
}
@media (min-width: 1180px) {
  .s-vib .quote-c { font-size: 1.35cqw !important; padding: 1.4cqw 3cqw 1.5cqw; }
  .s-vib .quote-c .q { font-size: 3cqw; vertical-align: -1.1cqw; }
}
/* booking: the thread starts at the edge of the glass and appears only after the form, so it never seems to jump behind it */
@media (min-width: 1180px) {
  .s-book > .wave { z-index: 1 !important; opacity: 0; transition: opacity 1.6s var(--ease) .4s; -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 12%, transparent 15%, transparent 46%, #000 49%, #000 100%); mask-image: linear-gradient(90deg, #000 0%, #000 12%, transparent 15%, transparent 46%, #000 49%, #000 100%); }
  .s-book[data-shown] > .wave { opacity: 1; }
  .s-book .copy, .s-book .stage { z-index: 3; }
}

/* ===== one button for the whole site: same frame, type, size, arrow and hover sweep ===== */
.btn, .btn.btn-sm, .btn.btn-lg, .btn.btn-gold, .btn.f2-btn, .btn.inst-link {
  display: inline-flex !important; align-items: center; justify-content: center; gap: 14px !important;
  width: auto !important; min-width: 0 !important; min-height: 52px !important; padding: 0 28px !important; margin-top: 0;
  font: 500 12px/1 var(--sans) !important; letter-spacing: .24em !important; text-transform: uppercase !important; white-space: nowrap;
  border: 1px solid rgba(201,160,106,.85) !important; border-radius: 999px !important; overflow: hidden; isolation: isolate;
  background: rgba(255,252,246,.42) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 12px 28px -18px rgba(90,60,30,.5) !important;
  color: #2A231B !important; --btn-fill: #2A231B; -webkit-backdrop-filter: blur(14px) saturate(1.2) !important; backdrop-filter: blur(14px) saturate(1.2) !important;
}
.btn::after { display: none !important; animation: none !important; }
.btn:hover, .btn:focus-visible { color: #FBF3E5 !important; border-color: #2A231B !important; box-shadow: 0 18px 40px -20px rgba(60,40,15,.55) !important; }
.btn .ico, .btn svg { width: 22px !important; height: 11px !important; }
/* on dark backgrounds and over photos: light frame, light sweep */
.dark .btn, .s-book .btn, .s-rit .btn, .s-f2 .f2-btn-light, .m-dark .btn, .bookpop .btn { color: #EBD3A6 !important; border-color: rgba(217,185,131,.75) !important; --btn-fill: #EBD3A6; background: rgba(255,240,215,.08) !important; box-shadow: inset 0 1px 0 rgba(255,240,215,.2), 0 12px 28px -18px rgba(0,0,0,.6) !important; }
.dark .btn:hover, .s-book .btn:hover, .s-rit .btn:hover, .s-f2 .f2-btn-light:hover, .dark .btn:focus-visible, .s-book .btn:focus-visible { color: #1E1912 !important; border-color: #EBD3A6 !important; }
.s-f2 .f2-btn-light { color: #FBF3E5 !important; border-color: rgba(251,243,229,.75) !important; --btn-fill: #FBF3E5; }
/* the form's submit spans the form width, otherwise identical */
.s-book .form .btn { width: 100% !important; }
@media (min-width: 1180px) {
  .btn, .btn.btn-sm, .btn.btn-lg, .btn.btn-gold, .btn.f2-btn, .btn.inst-link { padding: 0 2cqw !important; gap: 1.1cqw !important; }
  .btn .ico, .btn svg { width: 1.45cqw !important; height: .72cqw !important; }
  .s-inst2 .inst-link { margin-top: 1.5cqw; }
}
/* hero title: the same copper letters as VLAD RAW */
@media (min-width: 1180px) {
  .s-hero .h-hero { text-transform: uppercase; font-weight: 300; letter-spacing: -.015em; }
  .s-hero .h-hero .ttl, .s-hero .h-hero .ttl.acc { background:
      repeating-linear-gradient(94deg, rgba(255,236,210,.10) 0 1px, rgba(0,0,0,0) 1px 3px, rgba(60,24,8,.08) 3px 4px, rgba(0,0,0,0) 4px 7px),
      radial-gradient(120% 90% at 30% 20%, rgba(255,214,168,.55), rgba(255,214,168,0) 55%),
      linear-gradient(100deg, #5B2D14 0%, #9A5229 14%, #DD9461 28%, #F5C99A 37%, #B4693A 50%, #6E361A 62%, #C47A45 76%, #EDB27E 88%, #8E4A24 100%) !important;
    -webkit-background-clip: text !important; background-clip: text !important; color: transparent !important; -webkit-text-fill-color: transparent !important; filter: drop-shadow(0 .12cqw .2cqw rgba(70,30,10,.25)); }
  .s-hero .h-hero .wi { background: inherit; -webkit-background-clip: text; background-clip: text; }
}
@media (min-width: 1180px) {
  .js .stepped .copy .at { transition-duration: .8s, .9s, .8s !important; }
}
@media (min-width: 1180px) { .s-hero .h-hero .ttl { white-space: nowrap; } }
@media (min-width: 1180px) {
  .s-hero .h-hero { font-size: 1cqw !important; line-height: 1 !important; display: block; }
  .s-hero .h-hero .h-raw { display: block; line-height: .8; letter-spacing: -.02em; }
  .s-hero .h-hero .h-sub { display: block; padding-left: .5cqw; line-height: 1; letter-spacing: .04em; }
}
@media (min-width: 1180px) {
  .s-inst2.poster > .plate { top: calc(var(--so) - var(--hh) * .25) !important; }

  .s-inst2 .inst-col::before { content: ""; position: absolute; z-index: -1; inset: -1.6cqw -2.4cqw -1.4cqw -2.4cqw; background: radial-gradient(closest-side, rgba(246,239,228,.9), rgba(246,239,228,.6) 60%, rgba(246,239,228,0)); pointer-events: none; }
}

/* ===== FAQ v3: a calm accordion of light sheets; not pinned, opens on click ===== */
@media (min-width: 1180px) {
  .s-faq .faq-col { perspective: none !important; }
  .s-faq .sheets { transform: none !important; pointer-events: auto !important; gap: 0 !important; }
  .s-faq .sheet { transform: none !important; translate: none !important; margin-top: .5cqw !important; margin-left: calc(var(--i) * 1.7cqw) !important; width: calc(100% - 12cqw) !important; border-radius: 2px;
    background: linear-gradient(115deg, rgba(255,255,255,.74), rgba(251,247,240,.62) 55%, rgba(255,255,255,.7)) !important;
    -webkit-backdrop-filter: blur(10px) !important; backdrop-filter: blur(10px) !important;
    box-shadow: 0 .6cqw 1.6cqw -1cqw rgba(78,58,36,.35), inset 0 1px 0 rgba(255,255,255,.95) !important;
    transition: margin .42s cubic-bezier(.22,.8,.24,1), background .35s ease, box-shadow .42s ease, border-color .35s ease !important; transition-delay: 0s !important; }
  .s-faq .sheet:first-child { margin-top: 0 !important; }
  .s-faq .sheet::after { display: none !important; }
  .s-faq .sheet:not(.is-open):hover { transform: none !important; background: linear-gradient(115deg, rgba(255,255,255,.9), rgba(253,250,245,.8) 55%, rgba(255,255,255,.86)) !important; border-color: #fff; }
  .s-faq .sheet.is-open { margin-left: calc(var(--i) * 1.7cqw + 1.6cqw) !important; background: linear-gradient(115deg, rgba(255,255,255,.97), rgba(253,250,246,.94) 55%, rgba(255,255,255,.96)) !important; box-shadow: 0 1.6cqw 3.4cqw -1.6cqw rgba(78,58,36,.5), inset 0 1px 0 #fff !important; }
  .s-faq .sheet.is-open:hover { transform: none !important; }
  .s-faq .sheet.is-open::before { display: none; }
  .s-faq .sheet button { width: 100%; font-size: 1.55cqw !important; padding: .95cqw 2cqw !important; cursor: pointer; }
  .s-faq .sheet.is-open button { font-size: 1.9cqw !important; padding: 1.3cqw 2cqw .6cqw !important; }
  .s-faq .sheet button:focus-visible { outline: 2px solid #9C7342; outline-offset: 2px; }
  .s-faq .pm { position: relative !important; right: auto !important; top: auto !important; transition: transform .42s cubic-bezier(.22,.8,.24,1), opacity .3s; opacity: .7; }
  .s-faq .sheet:hover .pm { opacity: 1; }
  .s-faq .sheet.is-open .pm { opacity: 1; }
  .s-faq .sheet-a { transition: grid-template-rows .42s cubic-bezier(.22,.8,.24,1), padding .42s cubic-bezier(.22,.8,.24,1) !important; padding: 0 5cqw 0 6.4cqw !important; }
  .s-faq .sheet.is-open .sheet-a { padding-bottom: 1.6cqw !important; }
  .s-faq .sheet-a > p { transform: translateY(5px); transition: opacity .35s ease .08s, transform .42s cubic-bezier(.22,.8,.24,1) .05s !important; }
  .s-faq .sheet.is-open .sheet-a > p { transform: none; }
  /* entrance: quick and short, the list is reachable at once */
  .js .s-faq .sheet { opacity: 0; translate: 0 16px !important; transition: opacity .55s ease, translate .6s cubic-bezier(.22,.8,.24,1), margin .42s cubic-bezier(.22,.8,.24,1), background .35s ease, box-shadow .42s ease !important; }
  .js .s-faq.is-in .sheet, .js .s-faq .is-in .sheet, .js .s-faq .faq-col.shown .sheet { opacity: 1 !important; translate: 0 0 !important; }
  .js .s-faq.is-in .sheet { transition-delay: calc(var(--i) * 40ms), calc(var(--i) * 40ms), 0s, 0s, 0s !important; }
  .js .s-faq:not(.is-in) .faq-col .sheet { opacity: 0 !important; transform: none !important; }
  .js .s-faq .faq-foot { opacity: 0; transition: opacity .6s ease .45s; transform: none; }
  .js .s-faq.is-in .faq-foot { opacity: 1; }
  .s-faq .faq-foot .btn:hover svg { transform: translateX(4px); }
}
@media (prefers-reduced-motion: reduce) { .s-faq .sheet, .s-faq .sheet-a, .s-faq .sheet-a > p, .s-faq .pm { transition: none !important; } .s-faq .sheet.is-open { margin-left: calc(var(--i) * 1.7cqw) !important; } }
@media (min-width: 1180px) {
  .js .s-faq.is-in .faq-col:not(.shown) .sheet, .js .s-faq.is-in .faq-col .sheet { opacity: 1 !important; transform: none !important; translate: 0 0 !important; }
  .js .s-faq.is-in .faq-col:not(.shown) .faq-foot { opacity: 1 !important; transform: none !important; }
  .s-faq .faq-col.at { opacity: 1 !important; translate: none !important; filter: none !important; }
}
@media (min-width: 1180px) {
  .s-faq .faq-foot { width: calc(100% - 4cqw) !important; margin: 2.4cqw 0 0 0 !important; justify-content: space-between; gap: 3cqw !important; }
  .s-faq .faq-foot .faq-note { flex: 1 1 auto !important; max-width: 30cqw !important; text-shadow: 0 0 1.2cqw rgba(250,245,236,1), 0 0 .3cqw rgba(250,245,236,1); }
  .s-faq .faq-foot .btn { flex: none !important; background: rgba(250,246,239,.7) !important; }
}
@media (min-width: 1180px) { .s-faq .sheet.is-open .pm { transform: none !important; } }

/* ===== QA: readable minimums on small laptops, no long titles over their intros ===== */
@media (min-width: 1180px) {
  .poster .copy .body, .poster .copy .lead, .s-f2 .f2-t, .s-f2 .f2-meta, .s-inst2 .inst-txt, .s-faq .sheet-a p, .s-rit4 .r-panel .body, .s-rit4 .r-intro, .s-inst2 .inst-intro, .s-f2 .f2-intro, .s-book .bstep span, .s-book .field input, .s-book .field select, .s-book .field textarea { font-size: max(13px, 1.1cqw) !important; }
  .poster .copy .fine, .poster .copy .faq-note, .poster .copy .note-ico span, .s-after .pane-before, .s-after .pane-after, .s-book .check span, .cc2 .cc-cols p, .foot p { font-size: max(11.5px, .9cqw) !important; }
  .poster .copy .eyebrow, .s-inst2 .inst-tags, .s-rit4 .r-lab, .s-book .bstep b, .s-book .field > span, .poster .copy .meta, .state { font-size: max(10.5px, .8cqw) !important; }
  .btn, .btn.btn-sm, .btn.btn-lg, .btn.btn-gold, .btn.f2-btn, .btn.inst-link { font-size: max(11px, .8cqw) !important; min-height: max(44px, 3.3cqw) !important; }
  .s-hero .h-hero .h-sub { font-size: max(26px, 4.1cqw); }
  .s-book .h-book .ttl { white-space: nowrap; }
}
@media (min-width: 1180px) {
  .s-hero .hero-flow { display: flex; flex-direction: column; align-items: flex-start; gap: max(18px, 2.2cqw); }
  .s-hero .hero-flow .lead { margin: 0; font-size: max(13px, 1.1cqw) !important; line-height: 1.55; }
  .s-hero .eyebrow { white-space: nowrap; }
  .s-hero .h-hero .h-raw { font-size: max(84px, 13.2cqw); }
  .s-hero .h-hero .h-sub { margin-top: max(8px, 1.4cqw); }
  .s-f2 .h-f2 { font-size: min(var(--t-h2, 4.4cqw), 4.6cqw) !important; }
  .s-f2 .f2-intro { margin-top: .6cqw; }
  .s-vlad .eyebrow-dot { white-space: nowrap; }
}
@media (min-width: 1180px) {
  .s-rec .state:nth-child(5) .star { bottom: auto !important; top: -2.6cqw; }
}
@media (min-width: 1180px) { .s-hero .hero-flow .lead { min-width: 0 !important; max-width: 23cqw !important; } }
/* header: the booking button is always at hand */
.hdr-cta { display: none !important; }
@media (min-width: 1180px) {
  .hdr .hdr-cta { display: inline-flex !important; min-height: 38px !important; padding: 0 20px !important; margin-right: 26px; font-size: 11px !important; }
  .hdr.on-dark .hdr-cta { color: #EBD3A6 !important; border-color: rgba(235,211,166,.65) !important; --btn-fill: #EBD3A6; }
  .hdr.on-dark .hdr-cta:hover { color: #1E1912 !important; }
  /* shorter holds, so the path to the form is not endless */
  .ritual-run { height: calc(4 * 40vh + var(--hh) + var(--seam-h)) !important; }
  .vib-run { height: calc(3 * 40vh + var(--hh) + var(--seam-h)) !important; }
  .centers-run { height: calc(var(--hh) + var(--seam-h) + 7 * 44vh) !important; }
  .formats-run { height: calc(40vh + var(--hh) + var(--seam-h)) !important; }
}
@media (min-width: 1180px) {
  .s-hero .hero-flow .btn { background: rgba(250,246,239,.62) !important; }
  .s-after .note-ico { text-shadow: 0 0 1cqw rgba(250,245,236,1), 0 0 .3cqw rgba(250,245,236,1); }
  .s-after .note-ico::before { content: ""; position: absolute; z-index: -1; inset: -1.2cqw -2cqw; background: radial-gradient(closest-side, rgba(250,245,236,.85), rgba(250,245,236,0)); pointer-events: none; }
}
/* copper titles: the copper fill can't paint into sliding words, so these titles rise as a whole and are visible from the first moment */
.js .s-hero .h-hero .wi, .js .s-vlad .h-vlad .wi { transform: none !important; transition: none !important; }
.js .s-hero .h-hero.split, .js .s-vlad .h-vlad.split { transition: opacity .9s var(--ease), translate 1s var(--ease) !important; transition-delay: 0s !important; }
.js .s-hero .h-hero.split:not(.is-in) { opacity: 0; translate: 0 24px; }
.js .s-vlad .h-vlad.split:not(.shown):not(.is-in) { opacity: 0; translate: 0 24px; }
.js .stepped .copy .h-vlad.split.shown { opacity: 1 !important; translate: 0 0 !important; filter: none !important; }
/* the formula is quicker: Sound, +, Intention, =, Transformation within a second */
.js .formula > :nth-child(1) { transition-delay: 0s !important; } .js .formula > :nth-child(2) { transition-delay: .2s !important; } .js .formula > :nth-child(3) { transition-delay: .35s !important; } .js .formula > :nth-child(4) { transition-delay: .55s !important; } .js .formula > :nth-child(5) { transition-delay: .7s !important; }
.js .formula > * { transition-duration: .7s, .8s, .7s !important; }
/* instruments intro: dark, slightly larger, on a soft light veil so it reads over the sky and hills */
@media (min-width: 1180px) {
  .s-inst2 .inst-intro { color: #241B12 !important; font-weight: 500; font-size: max(14px, 1.2cqw) !important; text-shadow: 0 0 1.2cqw rgba(250,244,234,1), 0 0 .35cqw rgba(250,244,234,1) !important; }
  .s-inst2 .inst-intro::before { content: ""; position: absolute; z-index: -1; inset: -1.4cqw -4cqw; background: radial-gradient(closest-side, rgba(250,244,234,.92), rgba(250,244,234,.7) 60%, rgba(250,244,234,0)); pointer-events: none; }
}
/* after: the two notes sit on light plates so they read over the curtains and bowls */
@media (min-width: 1180px) {
  .s-after .note-ico { padding: 1.1cqw 1.4cqw; background: rgba(250,246,239,.9); border: 1px solid rgba(255,255,255,.95); box-shadow: 0 .8cqw 2cqw -1.2cqw rgba(78,58,36,.35); text-shadow: none !important; align-items: flex-start; }
  .s-after .note-ico::before { display: none !important; }
  .s-after .note-ico span { color: #2A2119 !important; font-size: max(12.5px, .95cqw) !important; line-height: 1.55 !important; }
}
@media (min-width: 1180px) {
  .s-after .statement-l { text-shadow: 0 0 1.2cqw rgba(250,245,236,1), 0 0 .3cqw rgba(250,245,236,1); color: #2A2119; }
  /* FAQ note before booking: dark on a light plate */
  .s-faq .faq-foot .faq-note { padding: 1cqw 1.3cqw; background: rgba(250,246,239,.9); border: 1px solid rgba(255,255,255,.95); box-shadow: 0 .8cqw 2cqw -1.2cqw rgba(78,58,36,.35); color: #2A2119 !important; text-shadow: none !important; font-size: max(12.5px, .95cqw) !important; }
  .s-faq .faq-foot .faq-note i { display: none; }
}
@media (min-width: 1180px) and (max-width: 1440px) {
  .s-after .note-ico { --w: 45 !important; translate: 0 1.4cqw; padding-top: .8cqw; padding-bottom: .8cqw; }
  .s-after .note-ico:first-of-type, .s-after .copy > .note-ico:nth-of-type(1) { --x: 3.5 !important; }
}
@media (min-width: 1180px) and (max-width: 1440px) { .s-after .note-a { --x: 3 !important; --w: 46 !important; } .s-after .note-b { --x: 51 !important; --w: 46 !important; } }
@media (min-width: 1180px) and (max-width: 1440px) { .s-after .pane-after { top: 30.2cqw !important; line-height: 1.4 !important; } .s-after .note-ico { translate: 0 2cqw; } }
@media (min-width: 1180px) { .s-faq .faq-foot { justify-content: flex-start !important; } }
@media (min-width: 1180px) { .s-faq .faq-foot { justify-content: flex-end !important; width: calc(100% - 3cqw) !important; } }
/* every in-page link and button glides to its block */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
main > section { scroll-margin-top: var(--hdr, 64px); }
/* posters never scroll internally (a focused button used to drag the FAQ sideways) */
.poster { overflow: clip !important; }
/* gong sound toggle in the header */
.snd { display: none; }
@media (min-width: 1180px) {
  .hdr .snd { display: inline-flex; align-items: center; gap: 10px; margin-right: 22px; padding: 6px 0; background: none; border: 0; cursor: pointer; color: inherit; font: 500 11px/1 var(--sans); letter-spacing: .24em; text-transform: uppercase; opacity: .75; transition: opacity .4s; }
  .hdr .snd:hover, .hdr .snd[aria-pressed="true"] { opacity: 1; }
  .snd-ring { position: relative; width: 18px; height: 18px; border: 1px solid currentColor; border-radius: 50%; display: grid; place-items: center; }
  .snd-ring b { position: absolute; inset: 5px; border-radius: 50%; border: 1px solid currentColor; opacity: 0; }
  .snd-ring::after { content: ""; width: 4px; height: 4px; border-radius: 50%; background: currentColor; }
  .snd[aria-pressed="true"] .snd-ring b { animation: sndWave 2.6s ease-out infinite; }
  .snd[aria-pressed="true"] .snd-ring b:nth-child(2) { animation-delay: .85s; }
  .snd[aria-pressed="true"] .snd-ring b:nth-child(3) { animation-delay: 1.7s; }
  .snd[aria-pressed="false"] .snd-ring::before { content: ""; position: absolute; left: -3px; right: -3px; top: 50%; height: 1px; background: currentColor; transform: rotate(-45deg); }
}
@keyframes sndWave { from { inset: 5px; opacity: .9; } to { inset: -9px; opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .snd-ring b { animation: none !important; } }

/* ============ MOBILE v1 (< 1180 px): one composed column per block, from the mobile mockups ============ */
@media (min-width: 1180px) { .mob { display: none !important; } }
@media (max-width: 1179px) {
  main > section { height: auto !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; overflow: visible !important; display: block !important; aspect-ratio: auto !important; position: relative !important; top: auto !important; background: none !important; }
  main > section > :not(.mob):not(dialog) { display: none !important; }
  main > section::before, main > section::after { display: none !important; }
  main { overflow-x: clip; }
  .mob { display: block; position: relative; overflow: hidden; background: var(--pearl); color: var(--ink); --gut: clamp(20px, 6vw, 28px); }
  .mob.m-dark { background: #141210; color: #F3EADB; }
  .mob > * { max-width: 640px; margin-left: auto; margin-right: auto; }
  .m-pad { padding-left: var(--gut); padding-right: var(--gut); }
  .m-center { text-align: center; }

  /* type */
  .m-eyebrow { font: 500 11px/1.5 var(--sans); letter-spacing: .28em; text-transform: uppercase; color: var(--ink-3); }
  .m-dark .m-eyebrow { color: var(--gold); }
  .m-gold { color: var(--gold) !important; }
  .m-h { font: 400 clamp(34px, 10vw, 48px)/1.02 var(--serif); text-transform: uppercase; letter-spacing: .005em; text-wrap: balance; color: var(--ink); }
  .m-h-light, .m-dark .m-h { color: #F6EEDF; }
  .m-body { font: 400 16px/1.6 var(--sans); color: var(--ink-2); }
  .m-body-light, .m-dark .m-body { color: rgba(243,234,219,.86); }
  .m-lead { font: 400 clamp(25px, 7vw, 32px)/1.2 var(--serif); color: var(--ink); }
  .m-fine { font: 400 12.5px/1.55 var(--sans); color: var(--ink-3); }
  .m-copper { font-family: var(--serif); font-weight: 400; text-transform: uppercase; background:
      repeating-linear-gradient(94deg, rgba(255,236,210,.10) 0 1px, rgba(0,0,0,0) 1px 3px, rgba(60,24,8,.08) 3px 4px, rgba(0,0,0,0) 4px 7px),
      radial-gradient(120% 90% at 30% 20%, rgba(255,214,168,.55), rgba(255,214,168,0) 55%),
      linear-gradient(100deg, #5B2D14 0%, #9A5229 14%, #DD9461 28%, #F5C99A 37%, #B4693A 50%, #6E361A 62%, #C47A45 76%, #EDB27E 88%, #8E4A24 100%);
    -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }
  .m-copper > span { display: block; background: inherit; -webkit-background-clip: text; background-clip: text; }

  /* reveal: opacity + 12px rise, once */
  .js .mob .mv { opacity: 0; translate: 0 12px; transition: opacity .6s var(--ease), translate .65s var(--ease); transition-delay: calc(var(--d, 0) * 110ms); }
  .js .mob .mv.is-in { opacity: 1; translate: 0 0; }
  .js .mob .mv-img img { opacity: 0; scale: 1.04; transition: opacity 1s var(--ease), scale 1.6s var(--ease); }
  .js .mob .mv-img.is-in img { opacity: 1; scale: 1; }

  /* buttons */
  .mob .btn { min-height: 52px; padding: 0 22px; font-size: 12px; letter-spacing: .22em; gap: 14px; }
  .m-btn-wide { width: 100%; }

  /* photos */
  .m-photo { position: relative; margin-top: 22px; }
  .m-photo img { width: 100%; height: auto; }
  .m-fade-edges img { -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 14%, #000 82%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0, #000 14%, #000 82%, transparent 100%); }
  .mob canvas.m-wave { display: block !important; position: absolute; left: 0; width: 100%; height: 34%; top: 42%; z-index: 2; pointer-events: none; }

  /* scenes: a clean picture with the live text set on it */
  .m-scene { position: relative; aspect-ratio: var(--ar); container-type: inline-size; }
  .m-scene .m-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .m-at { position: absolute; left: calc(var(--x) * 1%); top: calc(var(--y) * 1%); width: calc(var(--w) * 1%); z-index: 3; }
  .m-scene .m-h { font-size: max(32px, 9.6cqw); }
  .m-scene .m-body { font-size: max(14.5px, 3.75cqw); line-height: 1.55; }

  /* 01 hero */
  .m-hero { background: linear-gradient(180deg, #F6F0E6 0%, #EFE6D8 100%); padding-top: 88px; }
  .m-hero-h { font-size: clamp(58px, 19vw, 92px); line-height: .9; margin-top: 12px; }
  .m-hero-h .m-raw { font-size: 1em; letter-spacing: -.01em; }
  .m-hero-h .m-sub { font-size: .44em; letter-spacing: .04em; line-height: 1.05; }
  .m-hero .m-body { margin-top: 16px; max-width: 34ch; }
  .m-hero-photo { margin-top: 6px; }
  .m-hero-photo img { -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 18%); mask-image: linear-gradient(180deg, transparent 0, #000 18%); }
  .m-hero-cta { padding-top: 22px; padding-bottom: 40px; }

  /* 02 recognition */
  .m-state { font: 500 max(11px, 2.85cqw)/1.45 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gold-2); text-align: center; translate: -50% 0; text-shadow: 0 1px 10px rgba(0,0,0,.8); }
  .js .mob .m-state.mv { translate: -50% 12px; } .js .mob .m-state.mv.is-in { translate: -50% 0; }
  .m-close { font: 400 max(16px, 4.1cqw)/1.5 var(--serif); text-align: center; color: #F3EADB; }

  /* 03 path */
  .m-formula .m-fw { font: 400 max(38px, 11.4cqw)/1 var(--serif); text-transform: uppercase; color: var(--ink); white-space: nowrap; }
  .m-formula .m-fw-long { font-size: max(30px, 8.6cqw); }
  .m-formula .m-fsign { font: 300 max(36px, 9cqw)/1 var(--serif); color: #B88E50; }
  .m-cap { font: 400 max(15px, 3.9cqw)/1.5 var(--sans); color: var(--ink-2); }
  .m-cap i { display: block; width: 36px; height: 1px; background: #B88E50; margin-bottom: 12px; }

  /* 04 instruments */
  .m-inst h3 { font: 400 max(26px, 7.2cqw)/1 var(--serif); text-transform: uppercase; color: var(--ink); }
  .m-inst p { font: 500 max(10.5px, 2.6cqw)/1.4 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--ink-3); margin-top: 6px; }
  .m-inst.m-r { text-align: right; }
  .m-more { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin-top: 4px; padding: 0; background: none; border: 0; border-bottom: 1px solid rgba(140,106,62,.5); font: 500 11px/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--bronze); cursor: pointer; }
  .m-more i { font-style: normal; font-size: 16px; }
  .m-inst h3, .m-inst p { text-shadow: 0 0 14px rgba(250,245,236,.95), 0 0 4px rgba(250,245,236,.9); }

  /* 05 vlad */
  .m-vlad { padding-top: 72px; padding-bottom: 48px; }
  .m-vlad-h { font-size: clamp(76px, 25vw, 120px); line-height: .84; margin-top: 10px; letter-spacing: -.01em; }
  .m-vlad .m-photo { margin-top: 12px; }
  .m-vlad .m-photo img { -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 12%, #000 86%, transparent); mask-image: linear-gradient(180deg, transparent 0, #000 12%, #000 86%, transparent); }
  .m-vlad .m-lead { margin-top: 14px; }
  .m-vlad .m-body { margin-top: 14px; }
  .m-quote { position: relative; margin-top: 28px; padding: 28px 24px 22px; border: 1px solid rgba(184,142,80,.5); border-radius: 18px; background: linear-gradient(150deg, rgba(255,252,246,.9), rgba(246,238,226,.7)); box-shadow: 0 18px 40px -28px rgba(90,60,30,.5); }
  .m-quote .qm { position: absolute; top: -18px; left: 20px; font: 400 56px/1 var(--serif); color: #B88E50; background: var(--pearl); padding: 0 8px; }
  .m-quote p { font: 400 20px/1.42 var(--serif); color: var(--ink); }
  .m-quote cite { display: block; margin-top: 12px; font: 500 11px/1 var(--sans); font-style: normal; letter-spacing: .24em; text-transform: uppercase; color: var(--bronze); }
  .m-rule-dot { position: relative; height: 1px; margin: 30px 0 16px; background: linear-gradient(90deg, transparent, #C9A06A, transparent); }
  .m-rule-dot i { position: absolute; left: 50%; top: 50%; width: 9px; height: 9px; border-radius: 50%; translate: -50% -50%; background: radial-gradient(circle at 35% 30%, #F5C99A, #9A5229); }

  /* 06 ritual */
  .m-ritual { padding-top: 72px; padding-bottom: 56px; background: radial-gradient(120% 60% at 50% 10%, #2A231B, #121010 70%); }
  .m-ritual .m-body { margin-top: 12px; }
  .m-steps { position: relative; padding: 18px var(--gut) 8px; display: grid; gap: 30px; }
  .m-path { position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: linear-gradient(180deg, transparent, rgba(217,185,131,.45) 8%, rgba(217,185,131,.45) 92%, transparent); }
  .m-path b { position: absolute; left: -1px; top: 0; width: 3px; height: var(--p, 0%); background: linear-gradient(180deg, rgba(190,226,248,0), #CFE6F6 60%, #F6DAA8); box-shadow: 0 0 12px rgba(190,226,248,.9); border-radius: 2px; transition: height .3s linear; }
  .m-step { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 26px; align-items: center; }
  .m-step-r .m-step-img { order: 2; }
  .m-step-img { border-radius: 14px; overflow: hidden; border: 1px solid rgba(217,185,131,.35); aspect-ratio: 4/5; }
  .m-step-img img { width: 100%; height: 100%; object-fit: cover; }
  .m-dot { position: absolute; left: 50%; top: 50%; width: 11px; height: 11px; border-radius: 50%; translate: -50% -50%; background: #3A2F22; border: 1px solid rgba(217,185,131,.6); transition: background .5s, box-shadow .5s; z-index: 2; }
  .m-step.is-active .m-dot { background: #F6DAA8; box-shadow: 0 0 0 5px rgba(246,218,168,.14), 0 0 16px rgba(246,218,168,.9); }
  .m-step-txt .m-n { font: 400 30px/1 var(--serif); color: var(--gold); }
  .m-step-txt h3 { margin-top: 6px; font: 400 19px/1.1 var(--serif); text-transform: uppercase; color: #F6EEDF; }
  .m-step-txt p:last-child { margin-top: 10px; font: 400 14px/1.5 var(--sans); color: rgba(243,234,219,.78); }
  .m-step { opacity: .55; transition: opacity .6s var(--ease); }
  .m-step.is-active { opacity: 1; }
  .js .mob .m-step.mv:not(.is-in) { opacity: 0; }
  .m-ritual-q { margin-top: 36px; text-align: center; font: 500 12px/1.9 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--gold-2); }

  /* 07 formats */
  .m-formats { padding-top: 72px; padding-bottom: 40px; background: linear-gradient(180deg, #F6F0E6, #EFE6D8); }
  .m-formats .m-body { margin-top: 14px; }
  .m-format { margin-top: 30px; }
  .m-format-img { aspect-ratio: 16/10; overflow: hidden; }
  .m-format-img img { width: 100%; height: 100%; object-fit: cover; }
  .m-format-txt { padding: 20px var(--gut) 6px; text-align: center; }
  .m-format-txt h3 { font: 400 clamp(30px, 8.6vw, 38px)/1 var(--serif); text-transform: uppercase; color: var(--ink); }
  .m-format-sub { margin-top: 8px; font: 500 13px/1.4 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--bronze); }
  .m-format-dur { margin-top: 6px; font: 500 12px/1.4 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--ink-3); }
  .m-format-t { margin: 10px auto 18px; max-width: 32ch; font: 400 15.5px/1.55 var(--sans); color: var(--ink-2); }

  /* 08 vibration */
  .m-rhythm h3 { font: 400 max(30px, 8cqw)/1 var(--serif); text-transform: uppercase; color: #F6EEDF; display: flex; align-items: baseline; gap: 14px; }
  .m-rhythm h3 small { font: 500 max(12px, 3cqw)/1 var(--sans); letter-spacing: .06em; text-transform: none; color: var(--gold); }
  .m-rhythm p { margin-top: 8px; font: 500 max(10.5px, 2.7cqw)/1.5 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: rgba(233,211,166,.85); }
  .m-vquote { font: 400 max(18px, 4.8cqw)/1.42 var(--serif); color: #F3EADB; padding: 6% 7%; border: 1px solid rgba(217,185,131,.5); border-radius: 16px; background: linear-gradient(140deg, rgba(255,240,215,.07), rgba(255,240,215,.02)); text-align: center; }
  .m-vquote .q { font-size: 1.8em; line-height: 0; color: var(--gold); vertical-align: -.35em; margin: 0 .15em; }
  .m-note { font: 400 max(12.5px, 3.2cqw)/1.5 var(--sans); text-align: center; }

  /* 09 centres */
  .m-centers { padding-top: 72px; padding-bottom: 44px; background: linear-gradient(180deg, #F6F0E6, #EEE5D7); }
  .m-fig { margin-top: 10px; }
  .m-fig img { width: 100%; height: auto; -webkit-mask-image: linear-gradient(180deg, transparent, #000 10%, #000 80%, transparent); mask-image: linear-gradient(180deg, transparent, #000 10%, #000 80%, transparent); }
  .m-cards { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 var(--gut) 8px; margin-top: -26%; position: relative; z-index: 2; scrollbar-width: none; overscroll-behavior-x: contain; scroll-padding: 0 var(--gut); max-width: none; }
  .m-cards::-webkit-scrollbar { display: none; }
  .m-card { flex: 0 0 calc(100% - 2 * var(--gut) - 20px); max-width: 520px; scroll-snap-align: start; padding: 22px 20px 18px; border-radius: 18px; border: 1px solid rgba(184,142,80,.45); background: linear-gradient(165deg, rgba(255,253,249,.97), rgba(247,240,229,.94)); box-shadow: 0 22px 44px -30px rgba(90,60,30,.55); text-align: center; }
  .m-card-n { text-align: left; font: 500 12px/1 var(--sans); letter-spacing: .14em; color: var(--ink-3); }
  .m-card-n b { color: var(--c); font-weight: 600; }
  .m-card-y { display: block; width: 64px; height: 64px; margin: 4px auto 6px; color: var(--c); }
  .m-card-y svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.1; }
  .m-card-y svg .f { fill: currentColor; }
  .m-card h3 { font: 400 clamp(28px, 8vw, 36px)/1 var(--serif); text-transform: uppercase; color: var(--ink); }
  .m-card-f { margin-top: 8px; font: 500 12.5px/1.4 var(--sans); letter-spacing: .06em; color: var(--ink-3); }
  .m-card dl { margin: 16px 0 0; text-align: left; }
  .m-card dl > div { display: grid; grid-template-columns: 72px 1fr; gap: 12px; padding: 11px 0; border-top: 1px solid rgba(140,106,62,.2); }
  .m-card dt { font: 400 16px/1.3 var(--serif); text-transform: uppercase; color: var(--ink); }
  .m-card dd { margin: 0; font: 400 14px/1.45 var(--sans); color: var(--ink-2); }
  .m-cnav { display: flex; align-items: center; justify-content: center; gap: 22px; margin-top: 14px; }
  .m-arrow { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(140,106,62,.45); border-radius: 50%; background: rgba(255,253,249,.6); color: var(--bronze); cursor: pointer; transition: opacity .3s; }
  .m-arrow svg { width: 9px; height: 18px; }
  .m-arrow:disabled { opacity: .3; cursor: default; }
  .m-count { font: 500 13px/1 var(--sans); letter-spacing: .16em; color: var(--ink-3); min-width: 64px; text-align: center; }
  .m-count b { color: var(--ink); font-weight: 600; }
  .m-centers .m-fine { margin-top: 22px; }

  /* 10 after */
  .m-sp { display: none; }
  .m-after h3 { font: 400 max(30px, 8.2cqw)/1 var(--serif); text-transform: uppercase; color: var(--ink); text-shadow: 0 0 18px rgba(250,245,236,.9); }
  .m-after p { margin-top: 8px; font: 500 max(10.5px, 2.65cqw)/1.5 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--ink-3); text-shadow: 0 0 10px rgba(250,245,236,.95); }
  .m-after i { display: block; width: 34px; height: 1px; margin-top: 12px; background: #B88E50; }
  .m-statement { font: 400 max(20px, 5.4cqw)/1.3 var(--serif); text-align: center; color: var(--ink); text-shadow: 0 0 18px rgba(250,245,236,.95); }

  /* 11 faq */
  .m-faq { padding-top: 72px; padding-bottom: 48px; background: linear-gradient(180deg, #F6F0E6, #EFE6D8); }
  .m-faq-bg { position: absolute; left: 0; right: 0; bottom: 0; max-width: none; z-index: 0; }
  .m-faq-bg img { width: 100%; height: auto; -webkit-mask-image: linear-gradient(180deg, transparent, #000 40%); mask-image: linear-gradient(180deg, transparent, #000 40%); opacity: .9; }
  .m-faq > .m-pad { position: relative; z-index: 1; }
  .m-faq .m-h { margin-top: 10px; }
  .m-faq .m-body { margin-top: 14px; }
  .mob .faq-col { position: static !important; width: auto !important; margin-top: 26px; transform: none !important; opacity: 1 !important; }
  .mob .faq-col .sheets { display: grid; gap: 8px; }
  .mob .sheet { margin: 0 !important; width: auto !important; transform: none !important; translate: none !important; opacity: 1 !important; border-radius: 12px; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); background: linear-gradient(180deg, rgba(255,253,249,.92), rgba(250,245,236,.82)); }
  .mob .sheet button { grid-template-columns: 26px 1fr 18px !important; gap: 10px !important; padding: 15px 16px !important; font: 400 18px/1.25 var(--serif) !important; min-height: 56px; }
  .mob .sheet small { font-size: 11px !important; }
  .mob .sheet.is-open button { font-size: 19px !important; }
  .mob .sheet-a { padding: 0 18px 18px 52px !important; font-size: 15px !important; line-height: 1.6 !important; }
  .mob .faq-foot { margin-top: 22px; }
  .mob .faq-foot .btn { width: 100%; }

  /* 12 booking */
  .m-book { padding-top: 60px; padding-bottom: 28px; background: #121010; }
  .m-book .m-photo { margin-top: 0; }
  .m-book-h { font-size: clamp(52px, 16vw, 78px); line-height: .95; margin-top: 8px; }
  .m-book .m-body { margin-top: 12px; }
  .mob .formbox { position: relative !important; width: auto !important; left: auto !important; top: auto !important; margin-top: 26px; transform: none !important; opacity: 1 !important; }
  .mob .formbox .glass-back, .mob .formbox .glass-back2 { display: none; }
  .mob .form { padding: 24px 20px; border-radius: 20px; border: 1px solid rgba(217,185,131,.45); background: linear-gradient(160deg, rgba(60,48,34,.55), rgba(28,24,20,.7)); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
  .mob .form .row { display: grid !important; grid-template-columns: 1fr !important; gap: 0 !important; }
  .mob .form .field { display: block; margin-bottom: 16px; }
  .mob .form .field input, .mob .form .field select, .mob .form .field textarea { font-size: 16px !important; min-height: 44px; }
  .mob .sent { padding: 32px 20px; text-align: center; border-radius: 20px; border: 1px solid rgba(217,185,131,.45); }
  .m-bsteps { margin-top: 30px; display: grid; gap: 14px; }
  .m-bsteps li { display: grid; grid-template-columns: 44px 1fr; column-gap: 14px; align-items: center; }
  .m-bsteps i { grid-row: span 2; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(217,185,131,.6); display: grid; place-items: center; font: 400 17px/1 var(--serif); font-style: normal; color: var(--gold); }
  .m-bsteps b { font: 500 13px/1.3 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gold-2); }
  .m-bsteps span { font: 400 14px/1.45 var(--sans); color: rgba(243,234,219,.75); }
  .m-foot { margin-top: 40px; padding-top: 22px; border-top: 1px solid rgba(217,185,131,.25); display: grid; gap: 8px; text-align: center; font: 400 12.5px/1.6 var(--sans); color: rgba(243,234,219,.6); }
  .m-foot a { color: rgba(243,234,219,.85); }
}
@media (max-width: 1179px) and (prefers-reduced-motion: reduce) {
  .js .mob .mv, .js .mob .mv-img img { opacity: 1 !important; translate: none !important; scale: none !important; transition: none !important; }
  .mob canvas.m-wave { display: none !important; }
}
@media (max-width: 1179px) {
  .m-vline { height: calc(var(--h) * 1%); width: 1px !important; background: linear-gradient(180deg, rgba(184,142,80,.15), #B88E50, rgba(184,142,80,.15)); }
  .js .mob .m-vline.mv { translate: 0 0; transform-origin: top; scale: 1 0; transition: opacity .6s var(--ease), scale .9s var(--ease); transition-delay: calc(var(--d) * 260ms); }
  .js .mob .m-vline.mv.is-in { scale: 1 1; }
  .js .mob .m-formula .mv { transition-delay: calc(var(--d) * 260ms); }
  .m-eb-s { font-size: max(9.5px, 2.4cqw); }
  .m-formula .m-fw-long { font-size: max(29px, 9cqw); }
  .m-cap { padding: 14px 16px; margin-left: -16px; background: radial-gradient(closest-side, rgba(250,245,236,.92), rgba(250,245,236,.7) 70%, rgba(250,245,236,0)); }
  .m-inst.m-c { text-align: center; }
  .m-scene .m-h { font-size: max(29px, 8.4cqw); }
  .m-close { font: 400 max(14.5px, 3.75cqw)/1.55 var(--sans); }
  .m-state { width: max-content !important; max-width: calc(var(--w) * 1%); text-wrap: balance; }
  .mob .btn.m-btn-wide { display: flex; }
}
@media (max-width: 1179px) {
  .m-step-img { aspect-ratio: 5/4; }
  .m-step { gap: 22px; }
  .m-steps { gap: 26px; }
  .m-format { margin-top: 26px; }
  .m-format-img { aspect-ratio: 16/9; }
  .m-format-txt { padding-top: 16px; }
  .m-format-t { margin: 8px auto 14px; }
}
@media (max-width: 1179px) {
  .m-vib-after { position: relative; z-index: 3; margin-top: -58%; padding-bottom: 48px; }
  .m-vquote { position: static; font-size: clamp(18px, 5vw, 22px); padding: 26px 22px; }
  .m-note { margin-top: 18px; font-size: 13px; }
  .m-cc-h { font-size: clamp(30px, 8.6vw, 42px); }
  .m-fig { aspect-ratio: 1 / 1.12; overflow: hidden; margin-top: 0; }
  .m-fig img { height: 100%; object-fit: cover; object-position: 50% 8%; }
  .m-cards { margin-top: -34%; }
  .m-card { padding: 18px 18px 14px; }
  .m-card dl > div { grid-template-columns: 64px 1fr; gap: 10px; padding: 9px 0; }
  .m-card dt { font-size: 15px; padding-right: 10px; border-right: 1px solid rgba(140,106,62,.25); }
  .m-card dd { font-size: 13.5px; line-height: 1.42; }
  .m-statement { font-size: max(18px, 4.8cqw); }
}
@media (max-width: 1179px) {
  .m-scene .m-small { font-size: max(13px, 3.35cqw); line-height: 1.5; }
  .mob .faq-foot, .mob .faq-foot .btn { opacity: 1 !important; transform: none !important; translate: none !important; visibility: visible !important; }
  .m-book-h { font-size: clamp(44px, 13.4vw, 72px); white-space: nowrap; }
}
/* scenes scale with the picture; floors only where reading needs them */
@media (max-width: 1179px) {
  .m-scene .m-h { font-size: max(24px, 8.4cqw); }
  .m-scene .m-body, .m-scene .m-small { font-size: max(12.5px, 3.35cqw); }
  .m-state { font-size: max(9.5px, 2.85cqw); }
  .m-formula .m-fw { font-size: 11.4cqw; }
  .m-formula .m-fw-long { font-size: 9cqw; }
  .m-formula .m-fsign { font-size: 9cqw; }
  .m-cap { font-size: max(13px, 3.7cqw); }
  .m-inst h3 { font-size: max(21px, 7.2cqw); }
  .m-inst p { font-size: max(9.5px, 2.6cqw); }
  .m-rhythm h3 { font-size: max(24px, 8cqw); }
  .m-rhythm p { font-size: max(9.5px, 2.7cqw); }
  .m-after h3 { font-size: max(24px, 8.2cqw); }
  .m-after p { font-size: max(9.5px, 2.65cqw); }
  .m-close { font-size: max(13px, 3.75cqw); }
  .m-statement { font-size: max(16px, 4.8cqw); }
}
@media (max-width: 1179px) {
  .m-formula .m-fw-mid { font-size: 10cqw; }
  .m-statement { font-size: max(16px, 4.4cqw); text-wrap: balance; }
}
@media (max-width: 1179px) {
  .m-at { display: block; }
  .m-statement { text-align: left; }
  .m-more { min-height: 36px; padding: 0 14px; margin-top: 8px; border: 1px solid rgba(140,106,62,.35); border-radius: 999px; background: rgba(250,245,236,.82); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
  .m-more::after { content: ""; position: absolute; inset: -6px; }
  .m-more { position: relative; }
  .m-cap { background: radial-gradient(closest-side, rgba(250,245,236,.97), rgba(250,245,236,.88) 75%, rgba(250,245,236,0)); padding: 18px 20px; margin-left: -20px; }
  @container (max-width: 350px) { .m-scene .m-small { font-size: 12px; } }
}
@media (max-width: 1179px) {
  .m-formula .m-fsign { font: 300 11cqw/1 var(--serif); color: #A87E45; }
  .m-vline { width: 1.5px !important; background: linear-gradient(180deg, rgba(168,126,69,.1), #A87E45 30%, #A87E45 70%, rgba(168,126,69,.1)); }
  .m-eb-s { padding: 4px 8px 4px 0; background: linear-gradient(90deg, rgba(250,245,236,.85), rgba(250,245,236,0)); }
}
@media (max-width: 1179px) {
  .m-state, .m-inst p, .m-rhythm p, .m-after p { font-size: max(11px, 2.8cqw); }
}
@media (max-width: 1179px) {
  .m-scene .m-body, .m-scene .m-small { font-size: clamp(12.5px, 3.35cqw, 17px); }
  .m-close { font-size: clamp(13px, 3.75cqw, 18px); }
}

/* ============ MOBILE v2: seams, threads, stronger reveal, readable sizes, new blocks ============ */
@media (max-width: 1179px) {
  /* every block after the first rises over the previous one with a soft wave edge */
  main > section:not(:first-child) { margin-top: calc(var(--seam-h) * -1) !important; }
  main > section:not(:first-child) > .mob {
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0,70 C240,20 480,112 720,64 C960,16 1200,104 1440,54 L1440,120 L0,120Z' fill='%23000'/%3E%3C/svg%3E") 0 0 / 100% var(--seam-h) no-repeat, linear-gradient(#000, #000) 0 calc(var(--seam-h) - 1px) / 100% 100% no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0,70 C240,20 480,112 720,64 C960,16 1200,104 1440,54 L1440,120 L0,120Z' fill='%23000'/%3E%3C/svg%3E") 0 0 / 100% var(--seam-h) no-repeat, linear-gradient(#000, #000) 0 calc(var(--seam-h) - 1px) / 100% 100% no-repeat;
    padding-top: calc(var(--seam-h) + 40px);
  }
  .mob { overflow: clip; }
  .mob.m-hero { padding-top: 124px; }

  /* readable sizes */
  .m-body { font-size: 16.5px; line-height: 1.6; }
  .m-scene .m-body, .m-scene .m-small { font-size: clamp(14.5px, 3.8cqw, 17px); }
  .m-eyebrow { font-size: 12px; }
  .m-state, .m-inst p, .m-after p, .m-format-dur { font-size: 12px !important; }
  .m-fine { font-size: 13.5px; }
  .m-step-txt p:last-child { font-size: 15px; }
  .m-card dd { font-size: 15px !important; }
  .m-card-f, .m-card-n { font-size: 13px; }
  .m-format-t { font-size: 16px; }
  .m-format-sub { font-size: 13px; }
  .m-close { font-size: clamp(16px, 4.3cqw, 19px) !important; font-family: var(--serif) !important; }

  /* reveal: rise, unblur, settle */
  .js .mob .mv { opacity: 0; translate: 0 24px; filter: blur(6px); transition: opacity .9s var(--ease), translate 1s var(--ease), filter .9s var(--ease); transition-delay: calc(var(--d, 0) * 160ms); }
  .js .mob .mv.is-in { opacity: 1; translate: 0 0; filter: none; }
  .js .mob .m-state.mv { translate: -50% calc(-100% + 18px); } .js .mob .m-state.mv.is-in { translate: -50% -100%; }
  .js .mob .mv-img img { opacity: 0; scale: 1.08; clip-path: inset(8% 0 8% 0); transition: opacity 1.2s var(--ease), scale 2s var(--ease), clip-path 1.4s var(--ease); }
  .js .mob .mv-img.is-in img { opacity: 1; scale: 1; clip-path: inset(0 0 0 0); }

  /* heads in the flow; the picture's empty top tucks in under them */
  .m-head { position: relative; z-index: 4; }
  .m-head + .m-scene { margin-top: calc(var(--tuck) * -1); }
  .m-head .m-body { margin-top: 14px; max-width: 34ch; }
  .m-rec .m-head { padding-bottom: 8px; }
  .m-rec .m-head .m-h, .m-instr .m-head .m-h, .m-after-b .m-head .m-h { font-size: clamp(32px, 9vw, 44px); }

  /* threads drawn over a picture: a faint line and two lights running along it */
  .m-thread { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; overflow: visible; }
  .m-thread path, .m-thread ellipse { fill: none; vector-effect: non-scaling-stroke; }
  .m-thread .t-base { stroke: rgba(205,236,255,.55); stroke-width: 1.2; stroke-dasharray: 1 1; stroke-dashoffset: 1; filter: drop-shadow(0 0 3px rgba(120,190,255,.9)); transition: stroke-dashoffset 3.2s var(--ease) .2s; }
  .m-thread.is-in .t-base { stroke-dashoffset: 0; }
  .m-thread .t-run { stroke: #F2FAFF; stroke-width: 2.6; stroke-linecap: round; stroke-dasharray: .07 .93; stroke-dashoffset: 1; filter: drop-shadow(0 0 4px #9ED2FF) drop-shadow(0 0 10px rgba(120,190,255,.9)); animation: tRun 6.5s linear infinite; opacity: 0; transition: opacity 1s 1.6s; }
  .m-thread .t-run2 { stroke: #FFE7BE; filter: drop-shadow(0 0 4px #FFC77A) drop-shadow(0 0 10px rgba(255,190,110,.9)); animation-delay: -3.25s; stroke-dasharray: .05 .95; }
  .m-thread.is-in .t-run { opacity: 1; }
  .m-thread .t-thin { stroke-width: .8; }
  .m-thread .t-dot { fill: #FFF3DC; r: 1px; filter: drop-shadow(0 0 3px #FFD9A0) drop-shadow(0 0 8px rgba(255,200,130,.9)); opacity: 0; transform-box: fill-box; transform-origin: center; }
  .m-thread.is-in .t-dot { animation: tDot 3.4s ease-in-out infinite; animation-delay: calc(var(--d) * 420ms + 1.2s); }
  .m-thread.t-ring .t-base { stroke: rgba(220,242,255,.5); }
  @keyframes tRun { to { stroke-dashoffset: 0; } }
  @keyframes tDot { 0%, 100% { opacity: .55; scale: 1; } 50% { opacity: 1; scale: 1.9; } }

  /* canvas threads over photos */
  .mob canvas.m-wave { display: block !important; position: absolute; left: 0; width: 100%; z-index: 2; pointer-events: none; opacity: 0; transition: opacity 1.6s var(--ease) .6s; }
  .mob .is-in ~ canvas.m-wave, .mob .mv-img.is-in + canvas.m-wave, .mob .m-scene canvas.m-wave { opacity: 1; }
  .m-photo-wrap { position: relative; }
  .m-wave-hero { top: 30%; height: 30%; }
  .m-wave-vlad { top: 38%; height: 26%; }
  .m-wave-ritual { top: 44%; height: 26%; }
  .m-wave-after { top: 8%; height: 84%; opacity: .9 !important; }
  .m-wave-formats { top: 46%; height: 26%; }

  /* 01 hero: the button sits on the picture */
  .m-hero-stage { position: relative; }
  .m-hero-photo img { -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 18%); mask-image: linear-gradient(180deg, transparent 0, #000 18%); }
  .m-hero-cta { position: absolute; left: 0; right: 0; bottom: calc(var(--seam-h) + 18px); z-index: 3; padding-top: 0 !important; padding-bottom: 0 !important; }
  .m-hero-cta .btn { background: rgba(250,245,236,.86); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); border-color: rgba(60,45,28,.45); color: var(--ink); }
  .m-hero { padding-bottom: 0; }

  /* 02 recognition: labels sit just above their dot */
  .m-rec .m-state { translate: -50% -100%; width: max-content !important; max-width: 40%; }
  .m-rec .m-scene { margin-bottom: 0; }

  /* 03 path: the caption is a calm card under the formula */
  .m-cap-wrap { position: relative; z-index: 3; margin-top: -26%; padding-bottom: 36px; }
  .m-cap-wrap .m-cap { position: static; margin: 0; padding: 20px 22px 22px; font-size: 16.5px !important; line-height: 1.6; color: var(--ink); background: rgba(251,248,242,.94); border: 1px solid rgba(184,142,80,.38); box-shadow: 0 20px 40px -28px rgba(90,60,30,.45); }
  .m-cap-wrap .m-cap i { width: 40px; margin-bottom: 14px; }

  /* 04 instruments: labels on soft light plates */
  .m-inst { padding: 12px 14px 10px; }
  .m-inst::before { content: ""; position: absolute; inset: -14px -10px; z-index: -1; background: radial-gradient(closest-side, rgba(251,248,242,.94), rgba(251,248,242,.78) 60%, rgba(251,248,242,0)); pointer-events: none; }
  .m-inst h3 { text-shadow: none !important; }
  .m-inst p { color: var(--ink-2) !important; text-shadow: none !important; font-weight: 600; }
  .m-more { margin-top: 10px; font-size: 11.5px; color: var(--bronze); }

  /* 05 Vlad: the quote mark lives inside the card */
  .m-quote { padding: 22px 22px 22px; }
  .m-quote .qm { position: static; display: block; height: 30px; padding: 0; background: none; font-size: 64px; line-height: 1; color: #B88E50; }

  /* 06 ritual */
  .m-ritual .m-photo-wrap { margin-top: 18px; }
  .m-ritual .m-photo { margin-top: 0; }

  /* 07 formats: sea head, framed cards, threads between them */
  .m-formats { padding-top: 0 !important; background: linear-gradient(180deg, #F3ECE0, #EFE6D8 40%, #F4EEE4); }
  .m-formats-head { position: relative; padding-top: calc(var(--seam-h) + 52px); padding-bottom: 54px; }
  .m-formats-bg { position: absolute; inset: 0; max-width: none; margin: 0; z-index: 0; }
  .m-formats-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent); mask-image: linear-gradient(180deg, #000 55%, transparent); }
  .m-formats-head::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(246,240,230,.15), rgba(246,240,230,.55) 45%, rgba(246,240,230,.9)); z-index: 1; }
  .m-formats-head .m-pad { position: relative; z-index: 3; }
  .m-formats-head .m-body { color: var(--ink); }
  .m-format-list { padding: 0 var(--gut) 20px; display: grid; gap: 30px; }
  .m-format { margin-top: 0 !important; position: relative; background: rgba(252,249,243,.92); border: 1px solid rgba(184,142,80,.45); box-shadow: 0 26px 50px -36px rgba(90,60,30,.55); padding: 8px; }
  .m-format + .m-format::before { content: ""; position: absolute; left: 50%; top: -31px; width: 1px; height: 30px; background: linear-gradient(180deg, rgba(184,142,80,0), #C9A06A, rgba(184,142,80,0)); }
  .m-format-img { aspect-ratio: 16 / 10 !important; }
  .m-format-txt { padding: 18px 12px 14px !important; }
  .m-format-n { font: 400 15px/1 var(--serif); color: #B88E50; letter-spacing: .1em; margin-bottom: 8px; }
  .js .mob .m-format.mv { filter: none; }
  .js .mob .m-format .m-format-img img { clip-path: inset(0 0 100% 0); scale: 1.12; transition: clip-path 1.3s cubic-bezier(.7,0,.2,1) .15s, scale 2.2s var(--ease) .15s; }
  .js .mob .m-format.is-in .m-format-img img { clip-path: inset(0 0 0 0); scale: 1; }
  .js .mob .m-format .m-format-txt > * { opacity: 0; translate: 0 14px; transition: opacity .8s var(--ease), translate .9s var(--ease); }
  .js .mob .m-format.is-in .m-format-txt > * { opacity: 1; translate: 0 0; }
  .m-format.is-in .m-format-txt > :nth-child(1) { transition-delay: .55s; } .m-format.is-in .m-format-txt > :nth-child(2) { transition-delay: .65s; } .m-format.is-in .m-format-txt > :nth-child(3) { transition-delay: .75s; } .m-format.is-in .m-format-txt > :nth-child(4) { transition-delay: .85s; } .m-format.is-in .m-format-txt > :nth-child(5) { transition-delay: .95s; } .m-format.is-in .m-format-txt > :nth-child(6) { transition-delay: 1.05s; }

  /* 08 vibration: pinned and interactive */
  .m-vib2 { background: #141210; }
  .m-vib2 { height: 300svh; padding-top: 0 !important; }
  .m-vib-pin { position: sticky; top: 0; height: 100svh; max-width: none !important; overflow: hidden; display: flex; flex-direction: column; padding-top: calc(64px + 18px); padding-bottom: 20px; }
  .m-vib-bg { position: absolute; inset: 0; margin: 0; z-index: 0; max-width: none; }
  .m-vib-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; opacity: .55; }
  .m-vib-pin::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(180deg, rgba(20,18,16,.75), rgba(20,18,16,.25) 40%, rgba(20,18,16,.85)); }
  .m-vib-pin > * { position: relative; z-index: 1; max-width: 640px; width: 100%; margin-left: auto; margin-right: auto; }
  .m-vib-top .m-body { margin-top: 10px; font-size: 15.5px; max-width: 32ch; }
  .m-vib-cv { flex: 1 1 auto; min-height: 140px; width: 100%; display: block; }
  .m-vib-info { position: relative; height: 112px; }
  .m-vib-r { position: absolute; left: var(--gut); right: var(--gut); top: 0; opacity: 0; translate: 0 14px; filter: blur(4px); transition: opacity .7s var(--ease), translate .8s var(--ease), filter .7s var(--ease); }
  .m-vib-r.is-on { opacity: 1; translate: 0 0; filter: none; }
  .m-vib-r h3 { font: 400 clamp(38px, 11vw, 52px)/1 var(--serif); text-transform: uppercase; color: #F6EEDF; display: flex; align-items: baseline; gap: 14px; }
  .m-vib-r h3 small { font: 500 15px/1 var(--sans); color: var(--gold); letter-spacing: .04em; }
  .m-vib-state { margin-top: 8px; font: 400 17px/1.4 var(--serif); color: #F3EADB; }
  .m-vib-tags { margin-top: 6px; font: 600 12px/1.5 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: rgba(233,211,166,.9); }
  .m-vib-tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 14px; }
  .m-vib-tabs button { min-height: 54px; display: grid; gap: 3px; place-content: center; text-align: center; background: rgba(255,240,215,.04); border: 1px solid rgba(217,185,131,.3); color: rgba(243,234,219,.7); cursor: pointer; transition: border-color .4s, background .4s, color .4s; }
  .m-vib-tabs button b { font: 400 17px/1 var(--serif); text-transform: uppercase; }
  .m-vib-tabs button span { font: 500 11px/1 var(--sans); letter-spacing: .04em; color: rgba(217,185,131,.8); }
  .m-vib-tabs button[aria-selected="true"] { border-color: #E6C88F; background: rgba(230,200,143,.12); color: #FFF5E4; box-shadow: 0 0 18px -6px rgba(230,200,143,.7); }
  .m-vib-after { margin-top: 0 !important; padding-top: 40px; padding-bottom: 60px; }

  /* 09 centres: spine line, glowing centres, coloured cards, breathing yantra */
  .m-fig { position: relative; aspect-ratio: 1 / 1.35 !important; }
  .m-fig img { object-position: 50% 10% !important; -webkit-mask-image: linear-gradient(180deg, transparent, #000 8%, #000 86%, transparent) !important; mask-image: linear-gradient(180deg, transparent, #000 8%, #000 86%, transparent) !important; }
  .m-spine { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
  .m-spine line { vector-effect: non-scaling-stroke; }
  .m-spine .sp-line { stroke: url(#m-sp-g); stroke-width: 1.5; opacity: .7; stroke-dasharray: 1 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.6s var(--ease) .4s; filter: drop-shadow(0 0 3px rgba(255,255,255,.8)); }
  .m-fig.is-in .sp-line { stroke-dashoffset: 0; }
  .m-spine .sp-run { stroke: #fff; stroke-width: 3; stroke-linecap: round; stroke-dasharray: .08 .92; stroke-dashoffset: 1; animation: spRun 4.2s cubic-bezier(.5,0,.5,1) infinite; filter: drop-shadow(0 0 5px #fff) drop-shadow(0 0 12px rgba(255,240,210,.9)); }
  @keyframes spRun { to { stroke-dashoffset: -0; } from { stroke-dashoffset: 1; } }
  .m-chk { position: absolute; left: 49.1%; top: var(--cy); width: 44px; height: 44px; translate: -50% -50%; border: 0; padding: 0; background: none; cursor: pointer; z-index: 2; }
  .m-chk i { position: absolute; left: 50%; top: 50%; width: 10px; height: 10px; translate: -50% -50%; border-radius: 50%; background: var(--c); box-shadow: 0 0 10px 2px var(--c); opacity: .0; transition: opacity .6s, scale .6s; }
  .m-chk.is-on i { opacity: 1; scale: 1.5; animation: chk 2.2s ease-in-out infinite; }
  .m-chk.is-on i::after { content: ""; position: absolute; inset: -10px; border-radius: 50%; border: 1px solid var(--c); animation: chkRing 2.2s ease-out infinite; }
  @keyframes chk { 50% { box-shadow: 0 0 22px 7px var(--c); } }
  @keyframes chkRing { from { opacity: .9; scale: .4; } to { opacity: 0; scale: 2.2; } }
  .m-cards { margin-top: -12% !important; }
  .m-card { position: relative; border-color: color-mix(in srgb, var(--c) 45%, rgba(184,142,80,.45)); transition: box-shadow .8s var(--ease), border-color .8s; overflow: hidden; }
  .m-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, transparent, var(--c), transparent); opacity: .85; }
  .m-card::after { content: ""; position: absolute; left: 50%; top: 40px; width: 160px; height: 160px; translate: -50% -50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--c) 30%, transparent), transparent); pointer-events: none; opacity: .5; transition: opacity .8s; }
  .m-card.is-on { box-shadow: 0 24px 50px -30px color-mix(in srgb, var(--c) 80%, #000), 0 0 0 1px color-mix(in srgb, var(--c) 35%, transparent); }
  .m-card.is-on::after { opacity: 1; }
  .m-card > * { position: relative; z-index: 1; }
  .m-card-y svg g { transform-origin: 0 0; }
  .m-card.is-on .m-card-y svg g { animation: yRot 40s linear infinite; }
  .m-card.is-on .m-card-y { animation: yBreath 4s ease-in-out infinite; }
  @keyframes yRot { to { rotate: 360deg; } }
  @keyframes yBreath { 50% { scale: 1.08; filter: drop-shadow(0 0 8px var(--c)); } }

  /* 10 after: a glowing thread across the scene, the closing line on its own */
  .m-after-b .m-head { padding-bottom: 6px; }
  .m-after h3 { text-shadow: 0 0 18px rgba(250,245,236,.95), 0 0 4px rgba(250,245,236,.9); }
  .m-after p { color: var(--ink-2) !important; font-weight: 600; }
  .m-after i { transform-origin: left; scale: 0 1; transition: scale 1.2s var(--ease) .5s; }
  .m-after.is-in i { scale: 1 1; }
  .m-statement-wrap { position: relative; z-index: 3; margin-top: -14%; padding-top: 26px; padding-bottom: 60px; text-align: center; background: linear-gradient(180deg, rgba(244,238,228,0), #F4EEE4 30%); }
  .m-statement-wrap .m-statement { position: static; font: 400 clamp(26px, 7.6vw, 34px)/1.22 var(--serif) !important; color: var(--ink); text-align: center; text-shadow: none; max-width: 16ch; margin: 18px auto 0; }
  .m-glowline { display: block; width: 70%; height: 2px; margin: 0 auto; background: linear-gradient(90deg, transparent, #9ED2FF 25%, #FFE2B0 50%, #9ED2FF 75%, transparent); box-shadow: 0 0 12px rgba(120,190,255,.8); border-radius: 2px; }
  .js .mob .m-glowline.mv { scale: 0 1; filter: none; translate: none; transition: scale 1.6s var(--ease), opacity 1s; }
  .js .mob .m-glowline.mv.is-in { scale: 1 1; animation: glowPulse 3.6s ease-in-out infinite 1.6s; }
  @keyframes glowPulse { 50% { box-shadow: 0 0 22px rgba(120,190,255,1), 0 0 40px rgba(255,214,150,.6); } }

  /* 11 faq: a full background */
  .m-faq { background: #EFE7DA !important; }
  .m-faq-bg { position: absolute; inset: 0 !important; z-index: 0; margin: 0; max-width: none; }
  .m-faq-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 100%; -webkit-mask-image: none; mask-image: none; opacity: 1; }
  .m-faq-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(244,238,228,.96) 0%, rgba(244,238,228,.78) 30%, rgba(244,238,228,.35) 70%, rgba(244,238,228,.2)); }

  /* 12 booking: steps above the form */
  .m-bsteps { margin-top: 26px; margin-bottom: 4px; }
  .m-bsteps span { font-size: 15px; }

  /* instrument windows on phones: a sheet from the bottom */
  dialog.pop:not(.bookpop) { margin: auto 0 0; width: 100%; max-width: none; max-height: 92dvh; }
  dialog.pop:not(.bookpop) .pop-in { display: block; max-height: 92dvh; overflow: auto; overscroll-behavior: contain; border-top: 1px solid rgba(184,142,80,.5); }
  dialog.pop:not(.bookpop) .pop-img { aspect-ratio: 16 / 11; position: relative; }
  dialog.pop:not(.bookpop) .pop-img img { width: 100%; height: 100%; object-fit: cover; }
  dialog.pop:not(.bookpop) .pop-img::after { content: ""; position: absolute; inset: auto 0 0; height: 45%; background: linear-gradient(180deg, rgba(247,242,233,0), #F7F2E9); }
  dialog.pop:not(.bookpop) .pop-txt { margin-top: -54px; position: relative; padding: 0 22px 34px; gap: 12px; }
  dialog.pop:not(.bookpop) .pop-txt h3 { font-size: 42px; font-weight: 400; }
  dialog.pop:not(.bookpop) .pop-lead { font-size: 16.5px; }
  dialog.pop:not(.bookpop) .pop-x { position: fixed; top: calc(8dvh + 12px); right: 12px; background: rgba(250,245,236,.9); z-index: 5; }
  dialog.pop[open]:not(.bookpop) { animation: sheetUp .6s var(--ease); }
  @keyframes sheetUp { from { translate: 0 40px; opacity: 0; } }
}
.pop dd { font-style: normal !important; }

/* ===== booking window (all sizes) ===== */
dialog.bookpop { border: 0; padding: 0; background: transparent; color: #F3EADB; width: min(980px, calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 32px); }
dialog.bookpop::backdrop { background: rgba(18,15,12,.62); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
dialog.bookpop[open] { animation: popIn .7s var(--ease); }
.bp-in { position: relative; display: grid; grid-template-columns: 1fr; background: #151210; border: 1px solid rgba(217,185,131,.4); max-height: calc(100dvh - 32px); overflow: auto; overscroll-behavior: contain; box-shadow: 0 60px 120px -40px rgba(0,0,0,.8); }
.bp-img { margin: 0; aspect-ratio: 16 / 9; position: relative; overflow: hidden; }
.bp-img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.bp-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(21,18,16,0) 40%, #151210); }
.bp-body { position: relative; padding: 0 22px 28px; margin-top: -40px; }
.bp-eyebrow { font: 500 12px/1.5 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--gold); }
.bp-h { margin-top: 6px; font: 400 clamp(44px, 12vw, 64px)/1 var(--serif); text-transform: uppercase; background: linear-gradient(100deg, #9A5229 0%, #DD9461 25%, #F5C99A 40%, #B4693A 60%, #EDB27E 85%); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }
.bp-chosen { margin-top: 10px; display: inline-block; padding: 6px 12px; border: 1px solid rgba(217,185,131,.5); font: 500 13px/1.3 var(--sans); letter-spacing: .06em; color: var(--gold-2); }
.bp-chosen[hidden] { display: none; }
.bp-steps { margin: 20px 0 6px; display: grid; gap: 10px; }
.bp-steps li { display: grid; grid-template-columns: 40px 1fr; column-gap: 12px; align-items: center; }
.bp-steps i { grid-row: span 2; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(217,185,131,.6); display: grid; place-items: center; font: 400 16px/1 var(--serif); font-style: normal; color: var(--gold); }
.bp-steps b { font: 500 12.5px/1.3 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gold-2); }
.bp-steps span { font: 400 14.5px/1.4 var(--sans); color: rgba(243,234,219,.75); }
.bookpop .formbox { position: relative !important; left: auto !important; top: auto !important; width: auto !important; margin-top: 18px; transform: none !important; opacity: 1 !important; translate: none !important; }
.bookpop .formbox .glass-back, .bookpop .formbox .glass-back2 { display: none !important; }
.bookpop .form, .bookpop .sent { padding: 20px 18px !important; gap: 16px !important; border-radius: 0 !important; border: 1px solid rgba(217,185,131,.35) !important; background: rgba(255,240,215,.03) !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; box-shadow: none !important; visibility: visible !important; }
.bookpop .form .row { display: grid !important; grid-template-columns: 1fr !important; gap: 16px !important; }
.bookpop .demo { display: flex !important; font-size: 13px !important; }
.bookpop .demo span { font-size: 10px !important; }
.bookpop .field > span { font-size: 11.5px !important; }
.bookpop .field input, .bookpop .field select, .bookpop .field textarea { font-size: 16px !important; padding: 8px 0 10px !important; min-height: 44px; }
.bookpop .check, .bookpop .check span { font-size: 14px !important; }
.bookpop .check input { width: 20px !important; height: 20px !important; }
.bookpop .formbox.is-sent .form { display: none; }
.bookpop .pop-x { position: absolute; top: 12px; right: 12px; width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(217,185,131,.5); background: rgba(21,18,16,.6); z-index: 3; display: grid; place-items: center; cursor: pointer; }
.bookpop .pop-x span { background: var(--gold-2); }
@media (min-width: 760px) {
  .bp-in { grid-template-columns: .9fr 1.1fr; }
  .bp-img { aspect-ratio: auto; min-height: 100%; }
  .bp-img::after { background: linear-gradient(90deg, rgba(21,18,16,0) 55%, #151210); }
  .bp-body { margin-top: 0; padding: 40px 40px 36px 10px; }
  .bookpop .form .row { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 759px) {
  dialog.bookpop { width: 100%; margin: auto 0 0; max-height: 94dvh; }
  .bp-in { max-height: 94dvh; border-width: 1px 0 0; }
  dialog.bookpop[open] { animation: sheetUp .6s var(--ease); }
}
@keyframes sheetUp { from { translate: 0 40px; opacity: 0; } }
@media (max-width: 1179px) {
  .m-hero-cta { bottom: calc(var(--seam-h) + 30px); }
  .m-hero-cta .btn.btn-frame { background: rgba(250,245,236,.88) !important; color: var(--ink) !important; }
}
@media (max-width: 1179px) {
  .m-vib-pin > .m-vib-bg { position: absolute; inset: 0; z-index: 0; max-width: none; }
  .m-vib-pin::before { z-index: 0; }
  dialog.pop:not(.bookpop) .pop-txt { z-index: 1; margin-top: -34px; }
}
@media (max-width: 1179px) {
  .m-vib2 { height: auto !important; }
  .m-vib-run { height: 300svh; max-width: none !important; position: relative; }
  .m-vib-after { position: relative; z-index: 2; background: #141210; }
}
.bookpop .btn[type="submit"] { color: var(--gold-2) !important; background: transparent !important; border: 1px solid rgba(233,211,166,.6) !important; opacity: 1 !important; visibility: visible !important; }
.bookpop .btn[type="submit"] * { color: inherit !important; opacity: 1 !important; }
@media (max-width: 1179px) {
  .m-head + .m-scene .m-bg { -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 9%); mask-image: linear-gradient(180deg, transparent 0, #000 9%); }
  .m-rec .m-scene { background: #141210; }
}

/* ============ MOBILE v3 ============ */
@media (max-width: 1179px) {
  /* buttons: text turns light when the fill comes in */
  .m-hero-cta .btn:hover .coin { background: radial-gradient(circle at 35% 30%, #E6C48A, #8C6A3E); }

  /* glowing thread canvases */
  .mob canvas.m-glow { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; display: block; }
  .js .mob canvas.m-glow.mv { opacity: 1; translate: none; filter: none; transition: none; }
  .m-thread, .mob canvas.m-wave { display: none !important; }
  .m-fig .m-chk { z-index: 3; }
  .m-chk:not(.is-on) i { opacity: 0 !important; }

  /* photos: a calm fade that waits for the picture to load (no jump) */
  .js .mob .mv-img img { opacity: 0; scale: 1; clip-path: none; transition: opacity 1.4s var(--ease); }
  .js .mob .mv-img.is-in img.ld { opacity: 1; }

  /* 03 path: the title is a real heading */
  .m-h-path { font-size: clamp(30px, 8.6vw, 38px) !important; line-height: 1.08; max-width: 12ch; }
  .m-path-b .m-head { padding-bottom: 4px; }

  /* 04 instruments: labels on real light cards */
  .m-inst { padding: 14px 16px 12px; background: rgba(251,248,242,.93); border: 1px solid rgba(184,142,80,.35); box-shadow: 0 16px 34px -24px rgba(80,55,25,.55); width: auto !important; max-width: 48%; }
  .m-inst.m-r { left: auto !important; right: 4%; }
  .m-inst.m-c { left: 4% !important; text-align: left; }
  .m-inst::before { display: none; }
  .m-inst h3 { font-size: clamp(24px, 7cqw, 30px) !important; line-height: 1; }
  .m-inst p { font-size: 12px !important; color: var(--ink-2) !important; margin-top: 8px; }
  .m-more { min-height: 44px; margin-top: 10px; padding: 0 14px; font-size: 12px; }

  /* instrument windows: one family of type, air between picture and title */
  dialog.pop:not(.bookpop) { max-height: calc(100svh - 12px); }
  dialog.pop:not(.bookpop) .pop-in { max-height: calc(100svh - 12px); }
  dialog.pop:not(.bookpop) .pop-img::after { display: none; }
  dialog.pop:not(.bookpop) .pop-txt { margin-top: 0 !important; padding: 26px 22px 34px !important; gap: 0 !important; display: block; }
  dialog.pop:not(.bookpop) .pop-txt .eyebrow { font: 500 12px/1.5 var(--sans); letter-spacing: .24em; color: var(--ink-3); }
  dialog.pop:not(.bookpop) .pop-txt h3 { margin-top: 10px; font: 400 40px/1 var(--serif) !important; text-transform: uppercase; }
  dialog.pop:not(.bookpop) .pop-meta { margin-top: 12px; font: 600 12px/1.5 var(--sans); letter-spacing: .2em; }
  dialog.pop:not(.bookpop) .pop-lead { margin-top: 18px; font: 400 16px/1.6 var(--sans); color: var(--ink-2); }
  dialog.pop:not(.bookpop) dl { margin-top: 22px; padding-top: 18px; gap: 18px; }
  dialog.pop:not(.bookpop) dt { font: 600 12px/1.4 var(--sans); letter-spacing: .2em; margin-bottom: 6px; }
  dialog.pop:not(.bookpop) dd { font: 400 16px/1.6 var(--sans) !important; color: var(--ink); }
  dialog.pop:not(.bookpop) .fine { margin-top: 20px; font-size: 13px; }
  dialog.pop:not(.bookpop) .pop-x { position: absolute; top: 12px; }

  /* 05 / 06 photos with threads */
  .m-photo-wrap .m-photo { margin-top: 0; }
  .m-vlad .m-photo-wrap { margin-top: 12px; }

  /* 07 formats: the sea-and-curtain photo stays behind while the cards pass over it */
  .m-formats { background: #EFE6D8 !important; }
  .m-formats-bg { position: sticky; top: 0; height: 100svh; margin: 0 0 -100svh !important; max-width: none !important; z-index: 0; }
  .m-formats-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; -webkit-mask-image: none; mask-image: none; }
  .m-formats-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(246,240,230,.25), rgba(246,240,230,.1) 40%, rgba(246,240,230,.35)); }
  .m-formats-head { position: relative; z-index: 1; padding-top: calc(var(--seam-h) + 30px); padding-bottom: 40px; }
  .m-formats-head::after { display: none; }
  .m-formats-head .m-pad { padding-top: 22px; padding-bottom: 22px; background: radial-gradient(closest-side, rgba(250,246,238,.9), rgba(250,246,238,.6) 70%, rgba(250,246,238,0)); }
  .m-format-list { position: relative; z-index: 1; }
  .m-format { background: rgba(252,249,243,.95); }
  .m-format + .m-format::before { background: linear-gradient(180deg, rgba(255,255,255,0), #fff, rgba(255,255,255,0)); box-shadow: 0 0 8px rgba(120,190,255,.9); width: 2px; }

  /* 08 vibration: no mask on the tall pinned block (it flickered in Safari); its own wave edge instead */
  main > section:not(:first-child) > .mob.m-vib2 { -webkit-mask: none; mask: none; padding-top: 0 !important; }
  .m-vib2::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: var(--seam-h); z-index: 3; pointer-events: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0,0 L1440,0 L1440,54 C1200,104 960,16 720,64 C480,112 240,20 0,70Z' fill='%23EFE6D8'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat; }
  .m-vib-r { filter: none !important; transition: opacity .7s var(--ease), translate .8s var(--ease) !important; }
  .m-vib-pin, .m-vib-cv { transform: translateZ(0); }

  /* 09 centres: the note as a calm card */
  .m-cnote { margin-top: 26px; padding: 18px 20px; border-top: 1px solid rgba(184,142,80,.5); border-bottom: 1px solid rgba(184,142,80,.5); background: rgba(252,249,243,.7); text-align: left; }
  .m-cnote-k { font: 600 12px/1.4 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--bronze); margin-bottom: 10px; }
  .m-cnote p:not(.m-cnote-k) { font: 400 14.5px/1.6 var(--sans); color: var(--ink-2); }
  .m-cnote p + p:not(.m-cnote-k) { margin-top: 8px; }
  .m-centers { padding-bottom: 60px !important; }

  /* 11 FAQ: closed questions are exactly their row */
  .mob .sheet-a { padding: 0 18px 0 52px !important; }
  .mob .sheet.is-open .sheet-a { padding-bottom: 18px !important; }
  .m-faq-bg::after { background: linear-gradient(180deg, rgba(244,238,228,.92) 0%, rgba(244,238,228,.55) 26%, rgba(244,238,228,.08) 60%, rgba(244,238,228,0)) !important; }

  /* booking window on phones: always fits the visible screen */
  dialog.bookpop { max-height: calc(100svh - 10px) !important; }
  .bp-in { max-height: calc(100svh - 10px) !important; }
  .bp-img { aspect-ratio: 16 / 7 !important; }
}

/* FAQ: real glass sheets (all sizes) */
.sheet { background: linear-gradient(160deg, rgba(255,255,255,.42), rgba(255,255,255,.16)) !important; -webkit-backdrop-filter: blur(16px) saturate(1.35) !important; backdrop-filter: blur(16px) saturate(1.35) !important; border: 1px solid rgba(255,255,255,.7) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.9), inset 0 -1px 0 rgba(255,255,255,.25), 0 18px 40px -26px rgba(60,40,20,.45) !important; }
.sheet.is-open { background: linear-gradient(160deg, rgba(255,255,255,.62), rgba(255,255,255,.34)) !important; }
.sheet button span, .sheet-a p { text-shadow: 0 1px 0 rgba(255,255,255,.35); }
.sheet button { align-items: center !important; }
.sheet h3 { margin: 0; line-height: inherit; }

/* booking window: no steps, the form starts right under the title */
.bp-chosen { margin-bottom: 4px; }
.bookpop .formbox { margin-top: 16px; }

/* ===== type norms on phones (Apple / Material / WCAG): body ≥ 16, secondary 14–15, caps labels 12, controls ≥ 44 ===== */
@media (max-width: 1179px) {
  .mob .m-body, .mob .m-scene .m-body, .mob .m-scene .m-small, .m-vib-top .m-body, .m-cap-wrap .m-cap, .m-format-t, .mob .sheet-a, .mob .sheet-a p { font-size: 16px !important; line-height: 1.6 !important; }
  .m-step-txt p:last-child, .m-card dd, .m-bsteps span, .m-foot, .m-cnote p, .m-vib-state, .bp-steps span { font-size: 15px !important; }
  .m-card dd { line-height: 1.5 !important; }
  .m-eyebrow, .m-state, .m-inst p, .m-after p, .m-format-sub, .m-format-dur, .m-rhythm p, .m-vib-tags, .m-ritual-q, .m-bsteps b, .m-card-n, .m-count, .mob .field > span, .bookpop .field > span, .m-more, .mob .btn, .bookpop .btn { font-size: 12px !important; }
  .m-card-f, .m-fine { font-size: 14px !important; }
  .mob .sheet small { font-size: 12px !important; }
  .mob .sheet button { font-size: 19px !important; min-height: 56px; }
  .m-h { line-height: 1.06 !important; }
  .mob .field input, .mob .field select, .mob .field textarea, .bookpop .field input, .bookpop .field select, .bookpop .field textarea { font-size: 16px !important; }
  .mob .check, .mob .check span, .bookpop .check span { font-size: 14px !important; }
  .m-vib-tabs button span { font-size: 12px !important; }
  .m-arrow { width: 48px; height: 48px; }
}
@media (max-width: 1179px) {
  .m-format-list { gap: 72px; padding-left: calc(var(--gut) + 6px); padding-right: calc(var(--gut) + 6px); padding-bottom: 60px; }
  .m-format + .m-format::before { top: -72px; height: 72px; }
  .bp-img { aspect-ratio: 16 / 9 !important; }
  .bp-img img { object-position: 50% 15% !important; }
  .mob .sheet-a p { color: var(--ink) !important; }
}

/* ============ MOBILE v4 ============ */
@media (max-width: 1179px) {
  /* labels placed by script beside their dots */
  .m-state.m-placed { translate: none !important; width: max-content !important; max-width: 46%; }
  .js .mob .m-state.m-placed.mv { translate: 0 12px !important; } .js .mob .m-state.m-placed.mv.is-in { translate: 0 0 !important; }
  .m-state { text-shadow: 0 0 10px rgba(10,9,8,.95), 0 0 3px rgba(10,9,8,.9) !important; }

  /* Sources: magazine labels on a softly brightened patch, no cards */
  .m-inst { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; max-width: 50% !important; }
  .m-inst::before { display: block !important; content: ""; position: absolute; inset: -46px -56px -40px -56px; z-index: -1; background: radial-gradient(closest-side, rgba(252,249,243,.97), rgba(252,249,243,.88) 45%, rgba(252,249,243,.5) 72%, rgba(252,249,243,0)); pointer-events: none; }
  .m-inst h3 { font: 400 clamp(28px, 8.4cqw, 36px)/.98 var(--serif) !important; letter-spacing: .005em; color: var(--ink) !important; }
  .m-inst p { margin-top: 10px !important; font: 600 12px/1.4 var(--sans) !important; letter-spacing: .22em; color: #6B5233 !important; }
  .m-inst.m-r { right: 6% !important; }
  .m-inst.m-c { left: 7% !important; }
  .m-more { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin-top: 4px !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: none !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; font: 600 12px/1 var(--sans) !important; letter-spacing: .22em; color: var(--ink) !important; }
  .m-more::before { content: ""; width: 26px; height: 1px; background: #B88E50; }
  .m-more i { font-style: normal; color: #B88E50; font-size: 15px; }
  .m-inst.m-r .m-more { flex-direction: row-reverse; }

  /* ritual: the big numeral that follows the active stage */
  .m-steps { position: relative; }
  .m-rit-big { position: absolute; inset: 0; pointer-events: none; z-index: 0; list-style: none; }
  .m-rit-big span { position: sticky; top: 30svh; display: block; text-align: center; font: 300 clamp(150px, 46vw, 220px)/1 var(--serif); color: rgba(217,185,131,.09); letter-spacing: -.02em; }
  .m-rit-big span.is-new { animation: ritNum .9s var(--ease); }
  @keyframes ritNum { from { opacity: 0; translate: 0 18px; } }
  .m-step { z-index: 1; }

  /* the reading thread on the right edge */
  .m-rail { position: fixed; right: 3px; top: 0; bottom: 0; width: 2px; z-index: 45; pointer-events: none; }
  .m-rail b { position: absolute; inset: 0; transform-origin: top; scale: 1 var(--p, 0); background: linear-gradient(180deg, rgba(190,226,248,0), #CFE6F6 12%, #F6DAA8 60%, #CFE6F6); box-shadow: 0 0 6px rgba(120,190,255,.8); border-radius: 2px; }
  .m-rail i { position: absolute; left: 50%; top: calc(var(--p, 0) * 100%); width: 6px; height: 6px; translate: -50% -50%; border-radius: 50%; background: #fff; box-shadow: 0 0 8px 2px rgba(150,205,255,.95), 0 0 16px 4px rgba(255,214,150,.5); }

  /* gong switch in the phone header */
  .hdr .snd { display: inline-grid !important; place-items: center; width: 44px; height: 44px; margin: 0 2px 0 auto; padding: 0; background: none; border: 0; color: inherit; cursor: pointer; opacity: .85; }
  .hdr .snd span { display: none; }
  .hdr .snd[aria-pressed="true"] { opacity: 1; }
}
@media (max-width: 1179px) and (prefers-reduced-motion: reduce) { .m-rail { display: none; } }
@media (min-width: 1180px) { .m-rail { display: none; } }
.lite .m-rail i { box-shadow: 0 0 6px 1px rgba(150,205,255,.9); }

/* FAQ glass: warmer and denser, no white rim, so the text reads */
.sheet { background: linear-gradient(160deg, rgba(250,246,239,.78), rgba(246,240,231,.66)) !important; border: 0 !important; -webkit-backdrop-filter: blur(18px) saturate(1.2) !important; backdrop-filter: blur(18px) saturate(1.2) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.55), 0 16px 36px -24px rgba(60,40,20,.5) !important; }
.sheet.is-open { background: linear-gradient(160deg, rgba(251,248,242,.9), rgba(248,243,235,.82)) !important; }
.sheet button span, .sheet-a p { text-shadow: none !important; color: #221D17 !important; }
.sheet small { color: #6B5233 !important; }

/* booking sent: the thread closes into a ring and draws the check */
.sent-ring svg { overflow: visible; }
.sent-ring .sr-c { stroke-dasharray: 1; stroke-dashoffset: 1; }
.sent-ring .sr-k { stroke-dasharray: 1; stroke-dashoffset: 1; }
.sent:not([hidden]) .sent-ring .sr-c { animation: srDraw 1.4s cubic-bezier(.65,0,.25,1) .1s forwards; filter: drop-shadow(0 0 3px rgba(150,205,255,.9)); }
.sent:not([hidden]) .sent-ring .sr-k { animation: srDraw .6s cubic-bezier(.65,0,.25,1) 1.3s forwards; }
@keyframes srDraw { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .sent-ring .sr-c, .sent-ring .sr-k { stroke-dashoffset: 0 !important; animation: none !important; } }
@media (max-width: 1179px) { .hdr .brand i, .hdr .brand span { white-space: nowrap; } }
@media (max-width: 1179px) {
  .snd-ring { position: relative; width: 18px; height: 18px; border: 1px solid currentColor; border-radius: 50%; display: grid; place-items: center; }
  .snd-ring b { position: absolute; inset: 5px; border-radius: 50%; border: 1px solid currentColor; opacity: 0; }
  .snd-ring::after { content: ""; width: 4px; height: 4px; border-radius: 50%; background: currentColor; }
  .snd[aria-pressed="true"] .snd-ring b { animation: sndWave 2.6s ease-out infinite; }
  .snd[aria-pressed="true"] .snd-ring b:nth-child(2) { animation-delay: .85s; }
  .snd[aria-pressed="true"] .snd-ring b:nth-child(3) { animation-delay: 1.7s; }
  .snd[aria-pressed="false"] .snd-ring::before { content: ""; position: absolute; left: -3px; right: -3px; top: 50%; height: 1px; background: currentColor; transform: rotate(-45deg); }
}
@keyframes sndWave { from { inset: 5px; opacity: .9; } to { inset: -9px; opacity: 0; } }
@media (max-width: 1179px) { .hdr .snd .snd-ring { width: 20px; height: 20px; } .hdr .snd { margin-left: auto !important; } .hdr .lang { margin-left: 4px !important; } }

/* ===== instrument windows (phones), from design/…/03-instrument-popups ===== */
dialog.mpop { border: 0; padding: 0; margin: auto; width: calc(100% - 20px); max-width: 560px; max-height: calc(100svh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); background: transparent; color: var(--ink); overflow: visible; }
dialog.mpop::backdrop { background: rgba(24,20,15,.55); }
dialog.mpop[open] { animation: mpopIn .36s var(--ease); }
dialog.mpop[open]::backdrop { animation: fadeIn .2s ease; }
dialog.mpop.is-closing { animation: mpopOut .23s ease forwards; }
dialog.mpop.is-closing::backdrop { animation: fadeOut .23s ease forwards; }
@keyframes mpopIn { from { opacity: 0; translate: 0 20px; } }
@keyframes mpopOut { to { opacity: 0; translate: 0 12px; } }
@keyframes fadeOut { to { opacity: 0; } }
.mpop-in { position: relative; max-height: inherit; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; border: 1px solid rgba(184,142,80,.55); border-radius: 10px; background: linear-gradient(180deg, #FBF7F0, #F4ECDF); box-shadow: 0 40px 80px -30px rgba(0,0,0,.6); }
.mpop-bar { position: sticky; top: 0; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 6px 6px 22px; background: linear-gradient(180deg, rgba(251,247,240,.96), rgba(251,247,240,.86)); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.mpop-bar p { font: 500 12px/1.4 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--ink-2); }
.mpop-x { position: relative; flex: none; width: 44px; height: 44px; border: 0; background: none; cursor: pointer; }
.mpop-x span { position: absolute; left: 11px; top: 21px; width: 22px; height: 1.2px; background: var(--ink); rotate: 45deg; }
.mpop-x span + span { rotate: -45deg; }
.mpop-img { margin: 0; position: relative; }
.mpop-img img { display: block; width: 100%; height: auto; -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent); mask-image: linear-gradient(180deg, #000 70%, transparent); }
.mpop-txt { position: relative; z-index: 1; margin-top: -54px; padding: 0 22px 22px; }
.mpop-txt h3 { font: 400 clamp(44px, 13vw, 58px)/.95 var(--serif); text-transform: uppercase; color: var(--ink); outline: none; }
.mpop-tags { margin-top: 12px; font: 500 12px/1.4 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--ink); }
.mpop-lead { margin-top: 22px; }
.mpop-txt > p:not(.mpop-tags):not(.mpop-note) { font: 400 16px/1.6 var(--sans); color: var(--ink); }
.mpop-txt h4 { display: flex; align-items: center; gap: 14px; margin: 26px 0 10px; font: 600 12px/1.4 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--ink); }
.mpop-txt h4::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(184,142,80,.7), rgba(184,142,80,.15)); }
.mpop-note { margin-top: 26px; font: 400 13px/1.55 var(--sans); color: var(--ink-3); }
.mpop-close { width: 100%; margin-top: 22px; min-height: 54px; }
.js dialog.mpop .mpop-txt > * { opacity: 0; translate: 0 10px; transition: opacity .5s var(--ease), translate .6s var(--ease); }
dialog.mpop[open] .mpop-txt > * { opacity: 1; translate: 0 0; }
dialog.mpop[open] .mpop-txt > :nth-child(1) { transition-delay: .08s; } dialog.mpop[open] .mpop-txt > :nth-child(2) { transition-delay: .14s; } dialog.mpop[open] .mpop-txt > :nth-child(3) { transition-delay: .2s; }
@starting-style { dialog.mpop[open] .mpop-txt > * { opacity: 0; translate: 0 10px; } }
@media (prefers-reduced-motion: reduce) { dialog.mpop[open], dialog.mpop.is-closing { animation-duration: .15s; translate: none; } dialog.mpop .mpop-txt > * { transition: none !important; opacity: 1 !important; translate: none !important; } }
.mpop .mpop-close { display: flex !important; width: 100% !important; }
@media (max-width: 1179px) { .m-book .m-photo-wrap .m-photo { margin-top: 0; } }

/* instrument windows on wide screens: instrument left, description right (design/…/03-instrument-popups/desktop) */
.mpop-img picture { display: block; }
@media (min-width: 900px) {
  dialog.mpop { width: min(1180px, calc(100vw - 64px)); max-width: none; max-height: calc(100dvh - 64px); }
  dialog.mpop[open] { animation: mpopInD .32s var(--ease); }
  dialog.mpop.is-closing { animation: mpopOutD .2s ease forwards; }
  @keyframes mpopInD { from { opacity: 0; scale: .98; } }
  @keyframes mpopOutD { to { opacity: 0; scale: .98; } }
  .mpop-in { display: grid; grid-template-columns: 45fr 55fr; grid-template-rows: auto 1fr; overflow: hidden; max-height: calc(100dvh - 64px); border-radius: 12px; }
  .mpop-img { grid-column: 1; grid-row: 1 / 3; min-height: 0; overflow: hidden; }
  .mpop-img picture, .mpop-img img { height: 100%; }
  .mpop-img img { width: 100%; object-fit: cover; object-position: 40% 50%; -webkit-mask-image: linear-gradient(90deg, #000 78%, transparent); mask-image: linear-gradient(90deg, #000 78%, transparent); }
  .mpop-bar { grid-column: 2; grid-row: 1; position: static; padding: 26px 22px 0 10px; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .mpop-bar p { font-size: 13px; }
  .mpop-x { width: 52px; height: 52px; }
  .mpop-x span { left: 13px; top: 25px; width: 26px; }
  .mpop-txt { grid-column: 2; grid-row: 2; margin-top: 0; padding: 14px 48px 36px 10px; overflow-y: auto; overscroll-behavior: contain; min-height: 0; }
  .mpop-txt h3 { font-size: clamp(56px, 5.4vw, 78px); }
  .mpop-tags { font-size: 13px; margin-top: 14px; }
  .mpop-txt > p:not(.mpop-tags):not(.mpop-note) { font-size: 18px; line-height: 1.55; }
  .mpop-lead { margin-top: 22px; }
  .mpop-txt h4 { margin: 24px 0 10px; font-size: 13px; }
  .mpop-note { font-size: 14px; margin-top: 22px; }
  .mpop .mpop-close { width: auto !important; display: inline-flex !important; float: right; min-width: 200px; margin-top: 18px; }
  .mpop-txt::after { content: ""; display: block; clear: both; }
}
@media (min-width: 900px) and (max-height: 640px) { .mpop-txt h3 { font-size: 48px; } }
@media (min-width: 900px) and (prefers-reduced-motion: reduce) { dialog.mpop[open], dialog.mpop.is-closing { animation-duration: .15s; scale: none; } }

/* responsive pictures: the wrapper adds AVIF without changing layout; pictures show their blurred preview at once */
picture.rp { display: contents; }
@media (max-width: 1179px) {
  .js .mob .mv-img img, .js .mob .mv-img.is-in img { opacity: 1 !important; transition: none; }
  .js .mob .mv-img { opacity: 0; transition: opacity 1s var(--ease); }
  .js .mob .mv-img.is-in { opacity: 1; }
}

/* ===== frosted glass with a gold rim (variant A), used for every text card ===== */
:root { --glass-rim: rgba(201,160,106,.85); }
@media (max-width: 1179px) {
  .m-cap-wrap .m-cap, .m-cnote, .m-quote, .m-format {
    background: rgba(255,252,246,.42) !important; -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2);
    border: 1px solid var(--glass-rim) !important; border-radius: 18px !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 18px 40px -26px rgba(90,60,30,.5) !important;
  }
  .m-cap-wrap .m-cap { padding: 24px !important; font-size: 17px !important; }
  .m-cap-wrap .m-cap i, .m-cnote .m-cnote-k::before { background: linear-gradient(90deg, #C9A06A, transparent) !important; width: 56px !important; }
  .m-cnote { padding: 22px !important; }
  .m-quote { padding: 24px !important; }
  .m-quote .qm { background: none !important; }
  .m-vquote { background: rgba(255,240,215,.06) !important; -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); border: 1px solid var(--glass-rim) !important; border-radius: 18px !important; box-shadow: inset 0 1px 0 rgba(255,240,215,.18), 0 18px 40px -26px rgba(0,0,0,.6) !important; }
  /* formats: the photo sits inside the glass with its own soft corners */
  .m-format { padding: 10px !important; overflow: hidden; }
  .m-format-img { border-radius: 12px; overflow: hidden; }
  .m-format + .m-format::before { display: none; }
}
@media (min-width: 1180px) {
  .path-cap { padding: 1.6cqw 1.8cqw !important; background: rgba(255,252,246,.42); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); border: 1px solid var(--glass-rim); border-radius: 1.2cqw; box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 1.2cqw 2.8cqw -1.8cqw rgba(90,60,30,.5); }
  .path-cap::before { display: none !important; }
}

/* buttons, variant 4: frosted glass capsule with a gold rim (all sizes); the hover sweep follows the capsule */
.btn::before { border-radius: inherit; }
.m-dark .btn:hover, .bookpop .btn:hover, .m-dark .btn:focus-visible, .bookpop .btn:focus-visible { color: #1E1912 !important; border-color: #EBD3A6 !important; }
.bookpop .btn[type="submit"] { color: #EBD3A6 !important; background: rgba(255,240,215,.08) !important; border: 1px solid rgba(217,185,131,.75) !important; }
.bookpop .btn[type="submit"]:hover { color: #1E1912 !important; }
@media (max-width: 1179px) { .m-hero-cta .btn.btn-frame { background: rgba(255,252,246,.6) !important; } }

/* ===== preloader: a gong strike, one thread, then the page ===== */
.pre { display: none; }
.pre-on .pre { display: grid; position: fixed; inset: 0; z-index: 200; place-content: center; justify-items: center; gap: 22px; background: radial-gradient(120% 80% at 50% 45%, #F8F3EA, #EFE6D8); transition: opacity .6s var(--ease), visibility 0s .6s; }
.pre-out .pre { opacity: 0; visibility: hidden; }
.pre-mark { position: relative; width: 96px; height: 96px; display: grid; place-items: center; color: #3A2F22; animation: preIn .9s var(--ease) both; }
.pre-mark .logo-mark { width: 74px; height: 88px; }
.pre-ring { position: absolute; left: 50%; top: 56%; width: 96px; height: 96px; margin: -48px 0 0 -48px; border-radius: 50%; border: 1px solid rgba(184,142,80,.7); opacity: 0; animation: preRing 2.2s cubic-bezier(.2,.6,.3,1) infinite; }
.pre-ring:nth-child(2) { animation-delay: .5s; } .pre-ring:nth-child(3) { animation-delay: 1s; }
.pre-thread { width: min(320px, 70vw); height: 34px; overflow: visible; }
.pre-thread path { fill: none; stroke: #9ED2FF; stroke-width: 1.4; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; filter: drop-shadow(0 0 3px rgba(110,180,255,.9)); animation: preDraw 1.4s cubic-bezier(.6,0,.3,1) .25s forwards; }
.pre-thread .pre-thread-2 { stroke: #D9B07A; stroke-width: 1; filter: drop-shadow(0 0 3px rgba(255,190,110,.8)); animation-delay: .45s; }
.pre-word { font: 500 13px/1 var(--sans); letter-spacing: .34em; color: #3A2F22; animation: preIn .9s var(--ease) .3s both; }
.pre-word span { font-weight: 400; letter-spacing: .12em; text-transform: lowercase; color: var(--ink-3); margin-left: 6px; }
@keyframes preIn { from { opacity: 0; translate: 0 8px; } }
@keyframes preRing { 0% { opacity: .9; scale: .7; } 100% { opacity: 0; scale: 2.4; } }
@keyframes preDraw { to { stroke-dashoffset: 0; } }
/* the first screen starts its own entrance only when the preloader lifts */
html.pre-on:not(.pre-out) .m-hero .mv, html.pre-on:not(.pre-out) .s-hero .rv { opacity: 0 !important; transition: none !important; }
html.pre-on { overflow: hidden; }
@media (min-width: 1180px) { .s-f2 .f2-card .btn.btn, .s-f2 .f2-btn.btn { padding: 0 18px !important; } }
/* preloader uses the final vertical lockup: mark, RAW, sound healing */
.pre-word { display: grid; justify-items: center; gap: 8px; font: 300 30px/1 var(--sans) !important; letter-spacing: .3em !important; padding-left: .3em; color: #171717 !important; }
.pre-word span { margin: 0 !important; font: 300 11px/1 var(--sans); letter-spacing: .28em !important; text-transform: lowercase; color: #171717 !important; padding-left: .28em; }
.pre-mark { color: #171717; }
.pre { gap: 18px !important; }
@media (min-width: 1180px) {
  .path-cap { padding: 1.3cqw 1.7cqw !important; margin: -1.3cqw 0 0 -1.7cqw !important; translate: 0 -2.4cqw; }
}

/* tablets (and safety on phones): scenes keep phone proportions in a centred column; the sides are filled by the same picture, blurred */
@media (max-width: 1179px) {
  :root { --col: min(100vw, 640px); }
  .mob > .m-scene-wrap { max-width: none !important; position: relative; }
  .m-scene-wrap > .m-scene { max-width: 640px; margin: 0 auto; }
  .m-head + .m-scene-wrap > .m-scene { margin-top: calc(var(--col) * var(--tuckf) * -1); }
  .m-head + .m-scene-wrap .m-bg { -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 9%); mask-image: linear-gradient(180deg, transparent 0, #000 9%); }
  .m-cap-wrap { margin-top: calc(var(--col) * -.26) !important; }
  .m-cards { margin-top: calc(var(--col) * -.12) !important; }
}
@media (min-width: 641px) and (max-width: 1179px) {
  .m-scene-wrap::before { content: ""; position: absolute; inset: 0; z-index: 0; background: var(--fill) center / cover no-repeat; filter: blur(28px) saturate(1.1); opacity: .9; transform: scale(1.1); }
  .m-head + .m-scene-wrap::before { -webkit-mask-image: linear-gradient(180deg, transparent, #000 12%); mask-image: linear-gradient(180deg, transparent, #000 12%); }
  .m-scene-wrap { overflow: hidden; }
  .m-scene-wrap > .m-scene { z-index: 1; box-shadow: 0 0 60px rgba(0,0,0,.18); }
  /* full-width photos: the picture blurs out to the edges as well */
  .m-photo-wrap, .m-hero-stage { max-width: none !important; }
  .m-photo-wrap > .m-photo, .m-hero-stage > .m-photo { max-width: 640px; margin-left: auto; margin-right: auto; }
}

/* ===== button motion: 1 gold glow on hover · 2 light orbiting the rim · 4 gong rings on press ===== */
@property --ba { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
html .btn.btn::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; display: block !important; background: radial-gradient(120% 140% at 50% 125%, rgba(240,205,150,.6), rgba(240,205,150,0) 62%) !important; transform: none !important; opacity: 0; transition: opacity .6s var(--ease) !important; }
html .btn.btn::after { content: ""; display: block !important; position: absolute; inset: 0 !important; width: auto !important; height: auto !important; transform: none !important; z-index: 2; pointer-events: none; border-radius: inherit; padding: 3px;
  background: conic-gradient(from var(--ba), rgba(214,160,80,0) 0 52%, rgba(214,160,80,.6) 62%, #D9A85E 70%, #FFF1D6 77%, #FFFFFF 79%, #8FCBFF 83%, rgba(120,190,255,.55) 88%, rgba(120,190,255,0) 96%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  animation: btnOrbit 5.5s linear infinite !important; animation-play-state: paused !important; opacity: .85; transition: opacity .5s; }
html .btn.btn.btn-vis::after { animation-play-state: running !important; }
html .btn.btn:hover::after, html .btn.btn:focus-visible::after { animation-duration: 1.7s !important; opacity: 1; }
html .btn.btn:hover::before, html .btn.btn:focus-visible::before { opacity: 1; }
html .btn.btn:hover, html .btn.btn:focus-visible { color: #2A231B !important; border-color: #E2BE84 !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 0 0 1px rgba(226,190,132,.45), 0 0 26px 2px rgba(226,190,132,.55) !important; animation: btnBreathe 2.2s ease-in-out infinite; }
html :is(.dark, .m-dark, .s-book, .s-rit, .bookpop) .btn.btn:hover, html :is(.dark, .m-dark, .s-book, .s-rit, .bookpop) .btn.btn:focus-visible, html .hdr.on-dark .hdr-cta.btn:hover { color: #F3DDB1 !important; }
html :is(.dark, .m-dark, .s-book, .s-rit, .bookpop) .btn.btn::before { background: radial-gradient(120% 140% at 50% 125%, rgba(235,200,140,.35), rgba(235,200,140,0) 62%) !important; }
@keyframes btnOrbit { to { --ba: 360deg; } }
@keyframes btnBreathe { 50% { box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 0 0 1px rgba(226,190,132,.6), 0 0 40px 6px rgba(226,190,132,.7); } }
/* gong rings, drawn outside the button so they can spread */
.btn-ring { position: fixed; z-index: 150; pointer-events: none; border: 1px solid rgba(226,190,132,.95); border-radius: 999px; box-shadow: 0 0 10px rgba(226,190,132,.6); animation: btnRing 1.2s cubic-bezier(.2,.6,.3,1) forwards; }
@keyframes btnRing { 0% { opacity: .95; scale: 1; } 100% { opacity: 0; scale: 1.28 1.9; } }
@media (prefers-reduced-motion: reduce) { html .btn.btn::after { display: none !important; } html .btn.btn:hover { animation: none; } .btn-ring { display: none; } }

/* rim light only while the button is hovered (or just pressed on a phone) */
html .btn.btn::after, html .btn.btn.btn-vis::after { opacity: 0; animation-play-state: paused !important; animation-duration: 1.8s !important; transition: opacity .45s var(--ease); }
html .btn.btn:hover::after, html .btn.btn:focus-visible::after, html .btn.btn.btn-press::after { opacity: 1; animation-play-state: running !important; }

/* «Подробнее» in the Sources: the gold line reaches out, the plus turns */
.m-more { transition: color .4s var(--ease); }
.m-more::before { transition: width .5s var(--ease), background .4s; }
.m-more i { display: inline-block; transition: transform .5s var(--ease); }
.m-more:hover, .m-more:focus-visible, .m-more.btn-press { color: #8C6A3E !important; }
.m-more:hover::before, .m-more:focus-visible::before, .m-more.btn-press::before { width: 44px !important; background: linear-gradient(90deg, #C9A06A, #F0D3A0) !important; box-shadow: 0 0 6px rgba(226,190,132,.8); }
.m-more:hover i, .m-more:focus-visible i, .m-more.btn-press i { transform: rotate(90deg); }

@media (max-width: 1179px) { html .m-hero-cta .btn.btn:hover, html .m-hero-cta .btn.btn:focus-visible { color: var(--ink) !important; } }
.m-photo { position: relative; }

/* glass needs something behind it: a soft slice of the block's picture and a living thread under each glass card */
@media (max-width: 1179px) {
  .m-gstage { position: relative; isolation: isolate; margin-top: 26px; padding: 26px 0; }
  .m-gs-bg { position: absolute; inset: 0 -24px; z-index: -2; background-size: cover; background-position: 50% 40%; opacity: .55; -webkit-mask-image: radial-gradient(70% 60% at 50% 50%, #000 30%, transparent 100%); mask-image: radial-gradient(70% 60% at 50% 50%, #000 30%, transparent 100%); }
  .m-gstage-dark .m-gs-bg { opacity: .7; }
  .m-gstage > canvas.m-glow { z-index: -1 !important; inset: 0 -24px !important; width: calc(100% + 48px) !important; }
  .m-gstage .m-quote, .m-gstage .m-cnote { margin-top: 0 !important; background: rgba(255,252,246,.34) !important; -webkit-backdrop-filter: blur(16px) saturate(1.3) !important; backdrop-filter: blur(16px) saturate(1.3) !important; }
  .m-gstage .m-vquote { background: rgba(30,24,18,.35) !important; -webkit-backdrop-filter: blur(16px) saturate(1.3) !important; backdrop-filter: blur(16px) saturate(1.3) !important; }
  .m-vib-after .m-gstage { margin-top: 0; }
}
@media (min-width: 1180px) {
  .path-cap { translate: 0 0 !important; font-size: 1.32cqw !important; line-height: 1.45 !important; padding: 1cqw 1.5cqw !important; margin: -1cqw 0 0 -1.5cqw !important; }
  .path-cap span { max-width: none !important; }
  .path-cap i { margin-bottom: .8cqw !important; }
}
/* Sources (desktop): the three descriptions take the same height, so the buttons line up */
@media (min-width: 1180px) { .inst-col .inst-txt { min-height: calc(4lh + 0px); } }

/* ===== v67 desktop: glass quotes (Vlad, vibration) with light behind them, centres card wider, formats fit short screens ===== */
.gl-orbs { display: none; }
@media (min-width: 1180px) {
  .gl-orbs { display: block; aspect-ratio: 2.4; pointer-events: none; z-index: 0; }
  .gl-orbs i { position: absolute; border-radius: 50%; filter: blur(1.4cqw); animation: glDrift 14s ease-in-out infinite alternate; }
  .gl-orbs i:nth-child(1) { left: 6%; top: 18%; width: 34%; height: 70%; }
  .gl-orbs i:nth-child(2) { left: 42%; top: 6%; width: 26%; height: 62%; animation-duration: 17s; animation-delay: -5s; }
  .gl-orbs i:nth-child(3) { left: 62%; top: 34%; width: 32%; height: 64%; animation-duration: 12s; animation-delay: -8s; }
  .gl-orbs-light i:nth-child(1) { background: radial-gradient(closest-side, rgba(226,178,104,.55), rgba(226,178,104,0)); }
  .gl-orbs-light i:nth-child(2) { background: radial-gradient(closest-side, rgba(176,212,236,.6), rgba(176,212,236,0)); }
  .gl-orbs-light i:nth-child(3) { background: radial-gradient(closest-side, rgba(240,200,140,.5), rgba(240,200,140,0)); }
  .gl-orbs-dark i:nth-child(1) { background: radial-gradient(closest-side, rgba(232,170,88,.42), rgba(232,170,88,0)); }
  .gl-orbs-dark i:nth-child(2) { background: radial-gradient(closest-side, rgba(150,196,236,.3), rgba(150,196,236,0)); }
  .gl-orbs-dark i:nth-child(3) { background: radial-gradient(closest-side, rgba(255,214,150,.36), rgba(255,214,150,0)); }
  @keyframes glDrift { from { transform: translate(-6%, 4%) scale(.94); } to { transform: translate(8%, -6%) scale(1.08); } }

  /* Vlad: frosted glass card */
  .s-vlad .quote-v2 { z-index: 2; border: 1px solid var(--glass-rim) !important; border-left: 1px solid var(--glass-rim) !important; border-radius: 1.2cqw; background: rgba(255,252,246,.38) !important; -webkit-backdrop-filter: blur(16px) saturate(1.3); backdrop-filter: blur(16px) saturate(1.3); box-shadow: inset 0 1px 0 rgba(255,255,255,.75), 0 0 2.2cqw rgba(255,200,130,.18), 0 1.4cqw 3cqw -1.8cqw rgba(90,60,30,.5); padding: 1.7cqw 2cqw 1.5cqw 2.4cqw !important; }
  .s-vlad .quote-v2 .qm { top: -2.2cqw; left: 1.2cqw; color: rgba(176,132,74,.6); }

  /* vibration: smoked glass over warm light */
  .s-vib .quote-c { z-index: 2; background: rgba(36,28,20,.32) !important; -webkit-backdrop-filter: blur(18px) saturate(1.4) !important; backdrop-filter: blur(18px) saturate(1.4) !important; border: 1px solid rgba(217,185,131,.75) !important; border-radius: 1.4cqw !important; box-shadow: inset 0 1px 0 rgba(255,236,205,.28), inset 0 0 2.4cqw rgba(255,214,150,.07), 0 0 3cqw rgba(255,196,120,.16), 0 1.6cqw 3.4cqw -1.6cqw rgba(0,0,0,.6) !important; }

  /* centres: wider card, words never split */
  .cc2 .cc-cols p, .cc-cols p { overflow-wrap: normal !important; word-break: normal !important; hyphens: manual !important; }
  .cc2 .cc-after { letter-spacing: .05em !important; }
  .cc2 .cc-cols { grid-template-columns: 1fr auto 1fr auto 1fr !important; }

  /* formats: the small cards get a short button, and short screens get more height */
  .s-f2 { --hh: calc(var(--cw) / 1.18 + max(0px, (1400px - var(--cw)) * .36)) !important; }
  .s-f2 .f2-row { gap: 1cqw; }
  .s-f2 .f2-row h3 { min-width: 0; }
  .s-f2 .f2-card .f2-row .btn-sm { padding: 0 1.3cqw !important; }
  .s-f2 .f2-card .f2-t { -webkit-line-clamp: 3; }
  .s-f2 .f2-intro { padding-top: .2cqw; }
}
@media (min-width: 1180px) and (prefers-reduced-motion: reduce) { .gl-orbs i { animation: none; } }
@media (min-width: 1180px) { .s-f2 > .plate .media img { object-fit: cover !important; } }
@media (min-width: 1180px) {
  .cc2 .cc-cols { margin-top: 2.8cqw !important; }
  .cc2 .cc-note { margin-top: 2.2cqw !important; padding-top: 1.2cqw !important; }
}
/* v68 mobile hero: the button sits under Vlad's legs, not over them */
@media (max-width: 1179px) {
  .m-hero-cta { bottom: calc(var(--seam-h) + 22px) !important; }
}
/* v68 desktop hero: threads from the bowl over the photo */
@media (min-width: 1180px) { .s-hero > .cut { z-index: 1; } .s-hero > canvas.wave { z-index: 2; } }

/* ===== v68 desktop type norms: body ≥16, secondary ≥14, caps ≥12, buttons ≥13, inputs 16 ===== */
@media (min-width: 1180px) {
  :root { --cw: clamp(min(100vw, 1380px), calc((100svh - var(--hdr, 64px)) * 1.405 * 1.12), min(100vw, 1600px)); }
  .ritual-run, .ritual-run > .poster { --hh: calc(var(--cw) / 1.405) !important; }
  .poster .copy .body, .poster .copy .lead, .s-f2 .f2-t, .s-f2 .f2-meta, .s-inst2 .inst-txt, .s-faq .sheet-a p, .s-rit4 .r-panel .body, .s-rit4 .r-intro, .s-inst2 .inst-intro, .s-f2 .f2-intro, .s-book .bstep span, .s-hero .hero-flow .lead { font-size: max(16px, 1.1cqw) !important; }
  .s-book .field input, .s-book .field select, .s-book .field textarea { font-size: max(16px, 1.1cqw) !important; }
  .poster .copy .fine, .poster .copy .faq-note, .poster .copy .note-ico span, .s-after .pane-before, .s-after .pane-after, .s-book .check span, .cc2 .cc-cols p, .foot p, .s-after .note-ico span, .s-faq .faq-foot .faq-note, .poster .copy .cc-note, .poster .copy .fine-c, .path-cap { font-size: max(14px, .95cqw) !important; }
  .poster .copy .eyebrow, .s-inst2 .inst-tags, .s-rit4 .r-lab, .s-book .bstep b, .s-book .field > span, .poster .copy .meta, .state, .r-state, .r-tags, .cc-top .meta, .cc-freq, .cc2 .cc-after { font-size: max(12px, .8cqw) !important; }
  .btn, .btn.btn-sm, .btn.btn-lg, .btn.btn-gold, .btn.f2-btn, .btn.inst-link, .s-f2 .f2-card .f2-row .btn-sm { font-size: max(13px, .85cqw) !important; min-height: max(44px, 3.3cqw) !important; }
  .nav a, .nav span { font-size: max(13px, .8cqw); }
}
@media (min-width: 1180px) {
  .cc-trad { text-align: center; }
  .cc2 .cc-yantras { width: 4.6cqw !important; height: 4.6cqw !important; margin: .8cqw auto .2cqw !important; }
  .cc2 .cc-card { min-height: 0 !important; padding: 1.8cqw 2.6cqw 1.6cqw !important; }
}
@media (min-width: 1180px) { .cc2 .cc-cols { grid-template-columns: 1fr auto 1fr auto 1.25fr !important; } .cc2 .cc-after { letter-spacing: .02em !important; } }
@media (min-width: 1180px) {
  .inst-more { font-size: max(13px, .85cqw) !important; }
  .s-vlad .quote-v2 cite, .s-after .pane b, .s-after B, .poster .copy .pending { font-size: max(12px, .8cqw) !important; }
  .cc2 .cc-cols h4 { font-size: max(15px, 1.25cqw) !important; }
  .rail-name { font-size: max(12px, .8cqw) !important; }
}
/* v69 */
@media (min-width: 1180px) {
  .s-vlad > .cut { z-index: 1; } .s-vlad > canvas.wave { z-index: 2; }
  .cc2 .cc-card { min-height: calc(var(--hh) * .76) !important; display: flex !important; flex-direction: column; }
  .cc2 .cc-card .cc-in { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: .6cqw; }
  .cc2 .cc-card .cc-note { margin-top: 1.4cqw !important; }
  .cc-trad { white-space: nowrap; }
}
@media (max-width: 1179px) {
  .m-photo .m-cutover { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 3; pointer-events: none; }
  .m-book .m-photo canvas.m-glow { z-index: 2; }
}
/* v73 mobile hero: the photo continues up behind the title */
@media (max-width: 1179px) {
  .m-hero { position: relative; isolation: isolate; }
  .m-hero > .m-pad { position: relative; z-index: 2; }
  .m-hero-stage { margin-top: calc(min(100vw, 640px) * -.578); z-index: 1; }
  .m-hero-photo { margin-top: 0 !important; }
  .m-hero-photo img { -webkit-mask-image: linear-gradient(180deg, transparent 0, rgba(0,0,0,.35) 9%, #000 24%) !important; mask-image: linear-gradient(180deg, transparent 0, rgba(0,0,0,.35) 9%, #000 24%) !important; }
  .m-hero .m-body { text-shadow: 0 0 14px rgba(250,245,236,.95), 0 0 4px rgba(250,245,236,.9); }
}
/* v74 sound invitation */
.snd-hint { position: fixed; z-index: 60; display: inline-flex; align-items: center; gap: 10px; padding: 10px 18px 10px 14px; min-height: 40px; border-radius: 999px; border: 1px solid var(--glass-rim, rgba(201,160,106,.85)); background: rgba(250,245,236,.86); -webkit-backdrop-filter: blur(12px) saturate(1.2); backdrop-filter: blur(12px) saturate(1.2); color: #2A231B; font: 500 13px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; white-space: nowrap; opacity: 0; translate: 0 -6px; transition: opacity .8s var(--ease, ease), translate .8s var(--ease, ease); box-shadow: 0 10px 28px -16px rgba(70,48,22,.55); }
.snd-hint.on { opacity: 1; translate: 0 0; animation: sndHintBreathe 2.8s ease-in-out .8s infinite; }
.snd-hint::before { content: ""; position: absolute; top: -6px; left: calc(var(--ax, 50%) - 6px); width: 10px; height: 10px; rotate: 45deg; background: inherit; border-left: 1px solid var(--glass-rim, rgba(201,160,106,.85)); border-top: 1px solid var(--glass-rim, rgba(201,160,106,.85)); -webkit-backdrop-filter: none; backdrop-filter: none; }
.snd-hint-dot { position: relative; width: 8px; height: 8px; border-radius: 50%; background: #B88E50; flex: none; }
.snd-hint-dot::after { content: ""; position: absolute; inset: -5px; border-radius: 50%; border: 1px solid rgba(184,142,80,.7); animation: sndHintRing 2.8s ease-out .8s infinite; }
@keyframes sndHintBreathe { 0%, 100% { box-shadow: 0 10px 28px -16px rgba(70,48,22,.55), 0 0 0 0 rgba(214,170,100,0); } 50% { box-shadow: 0 10px 28px -16px rgba(70,48,22,.55), 0 0 18px 2px rgba(214,170,100,.35); } }
@keyframes sndHintRing { 0% { transform: scale(.6); opacity: .9; } 100% { transform: scale(1.9); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .snd-hint.on, .snd-hint-dot::after { animation: none; } }
/* v75 phone: sticky booking capsule */
.m-stick { display: none; }
@media (max-width: 1179px) {
  .m-stick { display: inline-flex; position: fixed; z-index: 55; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); translate: -50% 18px; width: auto; min-width: 0; max-width: calc(100% - 48px); min-height: 48px; padding: 0 22px 0 26px; gap: 14px; opacity: 0; pointer-events: none; transition: opacity .6s var(--ease, ease), translate .6s var(--ease, ease); background: rgba(250,245,236,.72) !important; -webkit-backdrop-filter: blur(14px) saturate(1.3); backdrop-filter: blur(14px) saturate(1.3); color: #2A231B !important; box-shadow: 0 14px 30px -18px rgba(40,28,14,.6); white-space: nowrap; }
  .m-stick.on { opacity: 1; translate: -50% 0; pointer-events: auto; }
  .m-stick .ico { width: 18px; height: 9px; }
}
@media (max-width: 1179px) and (prefers-reduced-motion: reduce) { .m-stick { transition: opacity .3s; translate: -50% 0; } }

/* booking form: honeypot field for bots, sending state */
.hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form button[aria-busy="true"] { opacity: .6; cursor: progress; }
