/* Heaven on Earth 144, Private guidance tab: The Inner Liberation and The Embodiment.
   See guidance_tab.py. Words live in sources/guidance.html. */

:root {
  --gd-ivory: #fff9ea;
  --gd-cream: #fbefd0;
  --gd-honey: #e3a53a;
  --gd-gold: #a85f00;
  --gd-ink: var(--ink, #1b2332);
  --gd-body: #3b4559;
  --gd-soft: #6f7891;
  --gd-line: rgba(196, 146, 52, .32);
  --gd-glass: rgba(255, 250, 238, .8);
  --gd-card: rgba(255, 252, 244, .9);
  --gd-haze: 255, 249, 234;
  --gd-shadow: 0 22px 60px rgba(168, 95, 0, .13);
  --gd-navy: #121a29;
  --gd-cinzel: 'Cinzel', var(--serif, Georgia, serif);
  --gd-gutter: clamp(18px, 5vw, 48px);
}
@media screen {
  :root[data-theme="dark"] {
    --gd-ivory: #111720;
    --gd-cream: #161d29;
    --gd-honey: #dbad4f;
    --gd-gold: #dbad4f;
    --gd-body: #e9d4a1;
    --gd-soft: #c9b27a;
    --gd-line: rgba(219, 173, 79, .24);
    --gd-glass: rgba(17, 23, 32, .78);
    --gd-card: rgba(22, 29, 41, .92);
    --gd-haze: 17, 23, 32;
    --gd-shadow: 0 22px 60px rgba(0, 0, 0, .4);
    --gd-navy: #0b111b;
  }
}

/* Image width/height attributes only reserve space; CSS sets the shapes. */
.gd img { height: auto; max-width: 100%; }
.gd { background: var(--gd-ivory); color: var(--gd-ink); overflow-x: clip; }
.gd h2 { font-size: clamp(38px, 5vw, 62px); line-height: 1.04; margin: 0 0 22px; color: var(--gd-ink); }
.gd h2 em, .gd h1 em { font-style: italic; color: var(--gd-gold); }
.gd h3 { font-size: 27px; line-height: 1.15; margin: 0 0 12px; color: var(--gd-ink); }
.gd p { color: var(--gd-body); }
.gd-wrap { max-width: 1180px; margin: 0 auto; padding: 0 var(--gd-gutter); }
.gd .gd-eyebrow { margin: 0 0 16px; font: 700 11px/1.5 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--gd-gold); }
.gd-section-head { text-align: center; max-width: 760px; margin: 0 auto 48px; }

/* Buttons and links */
.gd-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.gd-actions--center { justify-content: center; }
.gd-btn { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 54px; padding: 15px 30px; border-radius: 999px; border: 1px solid transparent; font: 700 13px/1.3 var(--sans); letter-spacing: .04em; text-decoration: none; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.gd-btn span { font-size: 16px; }
.gd-btn:hover { transform: translateY(-2px); }
.gd-btn--gold { color: #2b1a04; background: linear-gradient(135deg, #f8dc8c 0%, #eab353 48%, #cf8a24 100%); box-shadow: 0 10px 28px rgba(214, 150, 40, .32), inset 0 1px 0 rgba(255, 255, 255, .65); }
.gd-btn--gold:hover { box-shadow: 0 14px 40px rgba(214, 150, 40, .45), 0 0 0 6px rgba(248, 220, 140, .25), inset 0 1px 0 rgba(255, 255, 255, .65); }
/* A slow sheen crosses the gold buttons, like light on polished gold. */
.gd-btn--gold::after { content: ''; position: absolute; inset: -2px auto -2px -40%; width: 34%; z-index: -1; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .7), transparent); transform: skewX(-18deg); animation: gd-sheen 5.5s ease-in-out infinite; }
.gd-btn--line { color: var(--gd-ink); background: var(--gd-glass); border-color: rgba(168, 95, 0, .4); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.gd-btn--wide { width: 100%; }
.gd-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font: 700 13px/1.4 var(--sans); color: var(--gd-ink); text-decoration: underline; text-decoration-color: var(--gd-honey); text-underline-offset: 6px; }
.gd-link:hover { color: var(--gd-gold); }
[data-theme="dark"] .gd-btn--line { color: var(--gd-body); border-color: rgba(219, 173, 79, .6); }

/* Reveal on scroll. Without the script everything is simply visible. */
.gd-js .gd-reveal { opacity: 0; transform: translateY(22px); transition: opacity .9s ease, transform .9s cubic-bezier(.2, .7, .2, 1); transition-delay: var(--gd-delay, 0s); }
.gd-js .gd-reveal.is-in { opacity: 1; transform: none; }

/* ---------- Opening ---------- */
.gd-hero { position: relative; display: grid; place-items: center; min-height: clamp(560px, calc(100vh - var(--header-height, 100px)), 860px); padding: 90px var(--gd-gutter) 120px; text-align: center; overflow: hidden; }
.gd-hero__plate { position: absolute; inset: 0; z-index: 0; }
.gd-hero__plate img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; transform-origin: 50% 40%; animation: gd-drift 38s ease-in-out infinite alternate; }
.gd-hero__rays { position: absolute; left: 50%; top: 44%; width: 170vmax; height: 170vmax; translate: -50% -50%; background: repeating-conic-gradient(from 0deg, rgba(255, 236, 180, .32) 0deg 4deg, transparent 4deg 13deg); -webkit-mask: radial-gradient(circle, #000 0, rgba(0, 0, 0, .55) 18%, transparent 46%); mask: radial-gradient(circle, #000 0, rgba(0, 0, 0, .55) 18%, transparent 46%); mix-blend-mode: soft-light; animation: gd-turn 140s linear infinite; }
.gd-hero::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(ellipse 62% 54% at 50% 52%, rgba(var(--gd-haze), .86) 0, rgba(var(--gd-haze), .62) 42%, rgba(var(--gd-haze), 0) 78%), linear-gradient(to bottom, rgba(var(--gd-haze), 0) 64%, var(--gd-ivory) 100%); }
.gd-motes { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; pointer-events: none; }
.gd-hero__copy { position: relative; z-index: 3; max-width: 780px; }
.gd-hero h1 { font-size: clamp(54px, 7.4vw, 104px); line-height: .98; letter-spacing: -.035em; margin: 0 0 26px; color: var(--gd-ink); }
.gd-lead { max-width: 600px; margin: 0 auto 32px; font: 500 clamp(21px, 2.1vw, 25px)/1.5 var(--serif); }
.gd-hero .gd-actions { justify-content: center; }
/* The second door stays a quiet link, so one gold path leads the page. */
.gd-hero__more, .gd-final__more { margin-top: 12px; }
[data-theme="dark"] .gd-hero__plate img { filter: brightness(.55) saturate(.9); }

/* ---------- Behind the clouds ---------- */
.gd-sky { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(32px, 6vw, 90px); align-items: center; max-width: 1180px; margin: 0 auto; padding: 70px var(--gd-gutter) 110px; }
/* A painted dawn sky (sky.webp) in a gold-rimmed arch. Overcast first: the sky is muted and two
   painted cloud banks overlap in front of the sun; as the scene comes into view they drift apart,
   the colour returns and the sun blooms. Art and how it was made: original-art/guidance/sky/. */
.gd-sky__scene { position: relative; isolation: isolate; aspect-ratio: 4 / 5; border-radius: 240px 240px 26px 26px; overflow: hidden; background: #efe2c6; box-shadow: var(--gd-shadow), inset 0 0 0 1px rgba(255, 255, 255, .55); outline: 1px solid var(--gd-line); outline-offset: 10px; }
.gd-sky__plate, .gd-cloud { position: absolute; inset: 0; display: block; width: 100%; height: 100% !important; max-width: none; object-fit: cover; pointer-events: none; }
.gd-sky__plate { z-index: 0; object-position: 50% 30%; transform: scale(1.06); filter: brightness(.93) contrast(.95); transition: filter 3s ease, transform 7s cubic-bezier(.2, .7, .2, 1); }
.gd-sun { position: absolute; z-index: 1; left: 50%; top: 31%; width: 52%; aspect-ratio: 1; translate: -50% -50%; border-radius: 50%; background: radial-gradient(circle, rgba(255, 253, 240, .95) 0, rgba(255, 233, 170, .62) 18%, rgba(255, 205, 110, .24) 44%, rgba(255, 205, 110, 0) 70%); mix-blend-mode: screen; opacity: 0; transform: scale(.55); transition: opacity 2.6s ease .5s, transform 3.2s cubic-bezier(.2, .7, .2, 1) .5s; pointer-events: none; }
.gd-sky__scene::after { content: ''; position: absolute; z-index: 1; inset: 0; background: repeating-conic-gradient(from 0deg at 50% 31%, rgba(255, 236, 180, .55) 0deg 2.5deg, transparent 2.5deg 11deg); -webkit-mask: radial-gradient(circle at 50% 31%, #000 0, transparent 58%); mask: radial-gradient(circle at 50% 31%, #000 0, transparent 58%); mix-blend-mode: soft-light; opacity: 0; transition: opacity 2.4s ease .9s; pointer-events: none; }
/* The overcast veil sits over everything and takes most of the colour out, until the clouds part. */
.gd-sky__scene::before { content: ''; position: absolute; z-index: 4; inset: 0; background: #8f93a0; mix-blend-mode: saturation; opacity: .68; transition: opacity 3.2s ease; pointer-events: none; }
.gd-cloud { z-index: 3; transition: transform 3.6s cubic-bezier(.3, .6, .2, 1), opacity 3.6s ease; }
.gd-cloud--left { transform-origin: 0 50%; transform: scale(1.32); animation: gd-bob 12s ease-in-out infinite; }
.gd-cloud--right { transform-origin: 100% 50%; transform: scale(1.32); animation: gd-bob 15s ease-in-out -6s infinite; }
.gd-sky__scene.is-open .gd-sky__plate { filter: none; transform: scale(1); }
.gd-sky__scene.is-open .gd-sun { opacity: 1; transform: scale(1); }
.gd-sky__scene.is-open::after { opacity: .7; }
.gd-sky__scene.is-open::before { opacity: 0; }
.gd-sky__scene.is-open .gd-cloud--left { transform: translateX(-62%) scale(1.06); opacity: .8; }
.gd-sky__scene.is-open .gd-cloud--right { transform: translateX(62%) scale(1.06); opacity: .8; }
[data-theme="dark"] .gd-sky__plate { filter: saturate(.4) brightness(.55) contrast(.95); }
[data-theme="dark"] .gd-sky__scene.is-open .gd-sky__plate { filter: brightness(.82) saturate(.95); }
[data-theme="dark"] .gd-cloud { filter: brightness(.74) saturate(.9); }
[data-theme="dark"] .gd-sky__scene { background: #1a2130; box-shadow: var(--gd-shadow), inset 0 0 0 1px rgba(219, 173, 79, .3); }
.gd-sky__copy p { font-size: 18px; line-height: 1.85; margin: 0 0 18px; }
.gd-land { font: italic 500 40px/1.2 var(--serif) !important; color: var(--gd-gold) !important; margin: 4px 0 22px !important; }

/* ---------- The path ---------- */
.gd-path { padding: 30px 0 110px; }
.gd-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, .55fr) minmax(0, 1fr); align-items: center; gap: 0; }
.gd-step { position: relative; padding: 40px 36px 30px; border-radius: 28px; background: var(--gd-card); border: 1px solid var(--gd-line); box-shadow: var(--gd-shadow); text-align: center; }
.gd-step__num { display: inline-grid; place-items: center; width: 58px; height: 58px; margin: 0 auto 16px; border-radius: 50%; font: 700 19px/1 var(--gd-cinzel); color: #2b1a04; background: radial-gradient(circle at 35% 30%, #fff3cc, #eab353 60%, #cf8a24); box-shadow: 0 0 0 6px rgba(234, 179, 83, .16), 0 0 34px rgba(234, 179, 83, .45); }
.gd-step__time { margin: 0 0 8px; font: 700 11px/1.4 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gd-soft) !important; }
.gd-step h3 { font-size: 34px; margin-bottom: 12px; }
.gd-step p { font-size: 16px; line-height: 1.7; margin: 0 0 14px; }
.gd-bridge { position: relative; padding: 0 10px; text-align: center; }
.gd-thread { display: block; width: 100%; height: 40px; overflow: visible; }
.gd-thread path { fill: none; stroke: var(--gd-honey); stroke-width: 2; vector-effect: non-scaling-stroke; stroke-dasharray: 2 7; stroke-linecap: round; }
.gd-bridge p { margin: 14px auto 0; max-width: 190px; font: italic 500 18px/1.35 var(--serif); color: var(--gd-gold) !important; }

/* ---------- Offers ---------- */
.gd-offer { padding: 100px 0 90px; scroll-margin-top: 110px; }
.gd-offer--liberation { background: linear-gradient(to bottom, var(--gd-ivory), var(--gd-cream) 55%, var(--gd-ivory)); }
.gd-offer__grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: clamp(32px, 6vw, 88px); align-items: start; }
.gd-offer__grid--flip { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); align-items: center; }
.gd-offer__grid--flip .gd-offer__art { order: 2; }
.gd-offer__art { position: relative; margin: 0; border-radius: 260px 260px 28px 28px; overflow: hidden; aspect-ratio: 4 / 5; box-shadow: var(--gd-shadow); outline: 1px solid var(--gd-line); outline-offset: 10px; }
.gd-offer--liberation .gd-offer__art { position: sticky; top: calc(var(--header-height, 100px) + 30px); }
.gd-offer__art img { width: 100%; height: 100%; object-fit: cover; }
.gd-offer--liberation .gd-offer__art img { object-position: 46% 50%; }
.gd-offer--embodiment .gd-offer__art img { object-position: 74% 50%; }
.gd-js .gd-offer__art.gd-reveal { transform: scale(.97); }
.gd-js .gd-offer__art.gd-reveal.is-in { transform: none; }
/* Two banks of cloud cover the plate, then part as it comes into view. */
.gd-part { position: absolute; top: -6%; width: 78%; height: 52%; pointer-events: none; background: radial-gradient(ellipse at 50% 60%, rgba(244, 241, 238, .97) 0, rgba(232, 229, 233, .9) 42%, rgba(232, 229, 233, 0) 70%); filter: blur(6px); transition: transform 3.2s cubic-bezier(.3, .6, .2, 1) .3s, opacity 3.2s ease .3s; }
.gd-part--left { left: -12%; }
.gd-part--right { right: -12%; }
.gd-js [data-gd-part]:not(.is-in) .gd-part--left { transform: translateX(22%); }
.gd-js [data-gd-part]:not(.is-in) .gd-part--right { transform: translateX(-22%); }
.gd-js [data-gd-part].is-in .gd-part { opacity: 0; }
.gd-js [data-gd-part].is-in .gd-part--left { transform: translateX(-70%); }
.gd-js [data-gd-part].is-in .gd-part--right { transform: translateX(70%); }
.gd:not(.gd-js) .gd-part { opacity: 0; }
.gd-offer__body h2 { font-size: clamp(46px, 5.6vw, 72px); }
.gd .gd-promise { font: italic 500 clamp(24px, 2.4vw, 31px)/1.35 var(--serif); color: var(--gd-ink); margin: 0 0 22px; }
.gd-offer__body > p { font-size: 17px; line-height: 1.85; }
.gd-offer__body h3 { margin-top: 40px; }

.gd-moves { list-style: none; counter-reset: gd-move; margin: 22px 0 10px; padding: 0; position: relative; }
.gd-moves::before { content: ''; position: absolute; left: 21px; top: 22px; bottom: 30px; width: 1px; background: linear-gradient(to bottom, var(--gd-honey), var(--gd-line)); }
.gd-moves li { counter-increment: gd-move; position: relative; padding: 4px 0 22px 64px; font-size: 16px; line-height: 1.7; color: var(--gd-body); }
.gd-moves li::before { content: counter(gd-move); position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 43px; height: 43px; border-radius: 50%; font: 700 15px/1 var(--gd-cinzel); color: var(--gd-gold); background: var(--gd-ivory); border: 1px solid var(--gd-honey); box-shadow: 0 0 0 5px var(--gd-cream); transition: background .8s ease, color .8s ease, box-shadow .8s ease; transition-delay: calc(var(--gd-delay, 0s) + .25s); }
.gd-js .gd-moves li.is-in::before { color: #2b1a04; background: radial-gradient(circle at 35% 30%, #fff3cc, #eab353 70%); box-shadow: 0 0 0 5px var(--gd-cream), 0 0 22px rgba(234, 179, 83, .55); }
.gd-moves strong { display: block; font: 600 22px/1.25 var(--serif); color: var(--gd-ink); margin-bottom: 2px; }
.gd-after { margin: 6px 0 34px; padding: 20px 24px; border-radius: 18px; background: var(--gd-glass); border: 1px dashed var(--gd-line); font-size: 16px; line-height: 1.7; }
.gd-after .gd-eyebrow { display: block; margin-bottom: 6px; }

.gd-buy { position: relative; padding: 30px 30px 26px; border-radius: 26px; background: var(--gd-card); border: 1px solid var(--gd-line); box-shadow: var(--gd-shadow); text-align: center; }
.gd-buy::before { content: ''; position: absolute; inset: -1px; border-radius: inherit; padding: 1px; background: linear-gradient(135deg, rgba(248, 220, 140, .9), rgba(207, 138, 36, .25) 45%, rgba(248, 220, 140, .9)); -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); pointer-events: none; }
.gd-facts { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 0 16px; padding: 0; }
.gd-facts li { padding: 7px 14px; border-radius: 999px; font: 700 11px/1.3 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--gd-gold); background: rgba(234, 179, 83, .12); border: 1px solid var(--gd-line); }
.gd-price { margin: 4px 0 18px; display: flex; align-items: baseline; justify-content: center; gap: 14px; flex-wrap: wrap; }
.gd-price__num { font: 700 clamp(46px, 5vw, 60px)/1 var(--gd-cinzel); letter-spacing: .02em; background: linear-gradient(180deg, #e9b558, #a85f00); -webkit-background-clip: text; background-clip: text; color: transparent; }
[data-theme="dark"] .gd-price__num { background: linear-gradient(180deg, #f8dc8c, #dbad4f); -webkit-background-clip: text; background-clip: text; }
.gd-price__spots { font: 700 12px/1.3 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--gd-soft); }
.gd-small { margin: 14px auto 0; max-width: 380px; font-size: 13px; line-height: 1.6; color: var(--gd-soft) !important; }
.gd-inline { color: var(--gd-gold); text-decoration: underline; text-decoration-color: var(--gd-honey); text-underline-offset: 4px; font-weight: 700; }
/* What the $222 leaves in your hands, right above the button. */
.gd .gd-leave { margin: 0 auto 20px; max-width: 400px; font-size: 15px; line-height: 1.65; color: var(--gd-body); }
.gd-leave strong { display: block; margin-bottom: 4px; font: 700 11px/1.5 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gd-gold); }
.gd-small--left { margin: 0 auto 18px; }

/* Five stages: a little light growing into a sun. */
.gd-stages__title { text-align: center; margin: 80px 0 34px !important; font-size: clamp(30px, 3.4vw, 40px) !important; }
.gd-stages { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; position: relative; }
.gd-stages::before { content: ''; position: absolute; left: 10%; right: 10%; top: 50px; height: 1px; background: linear-gradient(to right, var(--gd-line), var(--gd-honey), var(--gd-line)); }
.gd-stage { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 0 6px; }
.gd-orb { --s: 22px; display: block; width: var(--s); height: var(--s); margin: calc(50px - var(--s) / 2) 0 calc(56px - var(--s) / 2); border-radius: 50%; background: radial-gradient(circle at 38% 34%, #fffaf0, #ffd979 45%, #e9a33d 80%); box-shadow: 0 0 calc(var(--s) * .6) calc(var(--s) * .2) rgba(255, 205, 105, .45); transform: scale(.55); opacity: .45; transition: transform 1.2s cubic-bezier(.2, .8, .2, 1.2), opacity 1.2s ease, box-shadow 1.2s ease; transition-delay: var(--gd-delay, 0s); }
.gd-stage:nth-child(2) .gd-orb { --s: 30px; }
.gd-stage:nth-child(3) .gd-orb { --s: 40px; }
.gd-stage:nth-child(4) .gd-orb { --s: 52px; }
.gd-stage:nth-child(5) .gd-orb { --s: 68px; }
.gd-stages.is-in .gd-orb, .gd:not(.gd-js) .gd-orb { transform: none; opacity: 1; }
.gd-stages.is-in .gd-stage:nth-child(5) .gd-orb { animation: gd-breathe 5s ease-in-out 2.6s infinite; }
.gd-stage__num { font: 700 13px/1 var(--gd-cinzel); letter-spacing: .1em; color: var(--gd-gold); margin-bottom: 8px; }
.gd-stage strong { font: 600 25px/1.2 var(--serif); color: var(--gd-ink); margin-bottom: 8px; }
.gd-stage__what { font-size: 14.5px; line-height: 1.65; color: var(--gd-body); }
/* Wide screens: the five stages share one set of rows, so every "In your day" starts on one level. */
@media (min-width: 861px) {
  .gd-stages { row-gap: 0; }
  .gd-stage { display: grid; grid-row: span 5; grid-template-rows: subgrid; justify-items: center; }
  .gd-stage__what, .gd-stage__life { justify-self: stretch; align-self: start; }
}
/* What the reader notices in everyday life, under each stage. */
.gd-stage__life { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--gd-line); font: italic 500 17px/1.45 var(--serif); color: var(--gd-ink); }
.gd-stage__life b { display: block; margin-bottom: 4px; font: normal 700 10px/1.4 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--gd-gold); }
.gd-js .gd-stage { opacity: 0; transform: translateY(16px); transition: opacity .9s ease, transform .9s ease; transition-delay: var(--gd-delay, 0s); }
.gd-js .gd-stages.is-in .gd-stage { opacity: 1; transform: none; }

.gd-embody-card { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(28px, 5vw, 64px); align-items: center; margin-top: 80px; padding: clamp(28px, 4vw, 52px); border-radius: 34px; background: linear-gradient(140deg, var(--gd-cream), var(--gd-ivory)); border: 1px solid var(--gd-line); }
/* The offer's name again, so the card reads on its own. */
.gd .gd-embody-card__name { margin: 0 0 4px; font-size: clamp(34px, 3.6vw, 44px); line-height: 1.05; }
.gd .gd-embody-card__sub { margin: 0; font: 700 11px/1.5 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gd-gold); }
.gd-checks { list-style: none; margin: 18px 0 0; padding: 0; }
.gd-checks li { position: relative; padding: 0 0 12px 26px; font-size: 17px; line-height: 1.6; color: var(--gd-body); }
.gd-checks li::before { content: ''; position: absolute; left: 4px; top: .62em; width: 8px; height: 8px; border-radius: 50%; background: var(--gd-honey); box-shadow: 0 0 8px rgba(234, 179, 83, .55); }
.gd .gd-raise { margin: -8px auto 18px; }
.gd-doors { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 14px; padding: 8px 16px; border-radius: 999px; font: 700 12px/1.3 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--gd-ink) !important; background: rgba(234, 179, 83, .16); border: 1px solid var(--gd-line); }
.gd-doors::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #e9a33d; box-shadow: 0 0 0 0 rgba(233, 163, 61, .6); animation: gd-ping 2.4s ease-out infinite; }

/* ---------- The ripple ---------- */
.gd-ripple { position: relative; padding: 120px 0; background: radial-gradient(ellipse at 50% 40%, #1d2840 0, var(--gd-navy) 70%); color: #f8eac0; overflow: hidden; }
.gd-ripple__inner { position: relative; text-align: center; max-width: 960px; }
.gd-rings { position: absolute; left: 50%; top: 46%; width: 1400px; height: 1400px; translate: -50% -50%; pointer-events: none; }
.gd-ripple .gd-eyebrow { color: #dbad4f; position: relative; }
.gd-ripple__text { position: relative; font: 500 clamp(30px, 3.6vw, 46px)/1.25 var(--serif) !important; letter-spacing: -.01em; color: #fbefd0 !important; margin: 0 0 56px !important; }
.gd-quote { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 22px; align-items: center; max-width: 620px; margin: 0 auto 44px; padding: 20px 26px 20px 20px; text-align: left; border-radius: 999px 40px 40px 999px; background: rgba(255, 250, 238, .06); border: 1px solid rgba(219, 173, 79, .3); }
.gd-quote img { grid-row: span 2; width: 96px; height: 96px; border-radius: 50%; object-fit: cover; object-position: 50% 22%; border: 2px solid #dbad4f; box-shadow: 0 0 30px rgba(219, 173, 79, .45); }
.gd-quote blockquote { margin: 0; }
.gd-quote blockquote p { margin: 0; font: italic 500 25px/1.35 var(--serif); color: #fff7e2 !important; }
.gd-quote figcaption { font: 700 11px/1.4 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: #dbad4f; }
.gd-call { position: relative; margin: 0; font: 700 clamp(18px, 2vw, 24px)/1.3 var(--gd-cinzel); letter-spacing: .06em; color: #f8dc8c !important; }

/* ---------- Questions ---------- */
.gd-faq { padding: 110px 0 60px; }
.gd-faq__inner { max-width: 820px; }
.gd-faq h2 { text-align: center; margin-bottom: 36px; }
.gd-faq details { border-bottom: 1px solid var(--gd-line); }
.gd-faq details:first-of-type { border-top: 1px solid var(--gd-line); }
.gd-faq summary { position: relative; list-style: none; cursor: pointer; padding: 24px 50px 24px 0; font: 600 24px/1.3 var(--serif); color: var(--gd-ink); }
.gd-faq summary::-webkit-details-marker { display: none; }
.gd-faq summary::after { content: '+'; position: absolute; right: 6px; top: 50%; translate: 0 -50%; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--gd-honey); font: 400 22px/1 var(--sans); color: var(--gd-gold); transition: transform .3s ease, background .3s ease; }
.gd-faq details[open] summary::after { transform: rotate(45deg); background: rgba(234, 179, 83, .16); }
.gd-faq details p { margin: -6px 0 24px; font-size: 17px; line-height: 1.8; max-width: 680px; }

/* ---------- The last word ---------- */
.gd-final { position: relative; padding: 100px 0 110px; text-align: center; overflow: hidden; }
.gd-final__glow { position: absolute; left: 50%; top: 34%; width: min(900px, 140vw); aspect-ratio: 1; translate: -50% -50%; border-radius: 50%; background: radial-gradient(circle, rgba(255, 214, 128, .55) 0, rgba(255, 214, 128, .18) 38%, transparent 66%); animation: gd-breathe-glow 7s ease-in-out infinite; pointer-events: none; }
.gd-final__inner { position: relative; }
.gd-final h2 { font-size: clamp(46px, 6.4vw, 84px); margin-bottom: 14px; }
.gd-final__inner > p { font: italic 500 clamp(22px, 2.3vw, 28px)/1.4 var(--serif); margin: 0 0 34px; }
.gd-contact { max-width: 560px; margin: 70px auto 0; padding-top: 34px; border-top: 1px solid var(--gd-line); }
.gd-contact h3 { font-size: 28px; }
.gd-contact p { font-size: 15px; line-height: 1.8; margin: 0 0 8px; }

/* ---------- The booking bar on phones ---------- */
.gd-dock { display: none; }
@media (max-width: 760px) {
  .gd-dock { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 40; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 18px; border-radius: 999px; background: var(--gd-glass); border: 1px solid var(--gd-line); box-shadow: 0 14px 40px rgba(60, 40, 10, .22); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); transform: translateY(140%); opacity: 0; transition: transform .5s cubic-bezier(.2, .8, .2, 1), opacity .4s ease; pointer-events: none; }
  .gd-dock.is-on { transform: none; opacity: 1; pointer-events: auto; }
  .gd-dock p { margin: 0; font: 600 17px/1.2 var(--serif); color: var(--gd-ink); }
  .gd-dock p small { display: block; font: 700 10px/1.4 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--gd-gold); }
  .gd-dock .gd-btn { min-height: 46px; padding: 12px 22px; flex: none; }
  body:has(.gd-dock.is-on) .back-top { bottom: 84px; }
}

/* ---------- Motion ---------- */
@keyframes gd-sheen { 0%, 62% { left: -40%; } 100% { left: 120%; } }
@keyframes gd-drift { from { transform: scale(1.08) translateY(-1.2%); } to { transform: scale(1) translateY(0); } }
@keyframes gd-turn { to { rotate: 360deg; } }
/* Up and down only, so a cloud bank never uncovers the edge of its window. */
@keyframes gd-bob { 0%, 100% { translate: 0 0; } 50% { translate: 0 -1.4%; } }
@keyframes gd-breathe { 0%, 100% { box-shadow: 0 0 40px 14px rgba(255, 205, 105, .45); } 50% { box-shadow: 0 0 70px 30px rgba(255, 205, 105, .6); } }
@keyframes gd-breathe-glow { 0%, 100% { opacity: .75; scale: 1; } 50% { opacity: 1; scale: 1.06; } }
@keyframes gd-ping { 0% { box-shadow: 0 0 0 0 rgba(233, 163, 61, .6); } 80%, 100% { box-shadow: 0 0 0 12px rgba(233, 163, 61, 0); } }

/* Devices that ask for less motion get the still, finished picture.
   ?motion=on (data-motion="on") shows the full motion for review. */
@media (prefers-reduced-motion: reduce) {
  html:not([data-motion="on"]) .gd :is(.gd-hero__plate img, .gd-hero__rays, .gd-cloud, .gd-orb, .gd-final__glow) { animation: none !important; }
  html:not([data-motion="on"]) .gd .gd-doors::before { animation: none; }
  html:not([data-motion="on"]) .gd .gd-btn--gold::after { display: none; }
  html:not([data-motion="on"]) .gd :is(.gd-reveal, .gd-stage, .gd-sun, .gd-cloud, .gd-sky__plate, .gd-part, .gd-orb) { transition: none !important; }
  html:not([data-motion="on"]) .gd .gd-moves li::before { transition: none; }
}

/* ---------- Phones ---------- */
@media (max-width: 860px) {
  .gd-sky { grid-template-columns: 1fr; padding: 40px var(--gd-gutter) 80px; }
  .gd-sky__scene { max-width: 420px; width: 100%; margin: 0 auto; aspect-ratio: 1 / 1; border-radius: 200px 200px 24px 24px; outline-offset: 7px; }
  .gd-steps { grid-template-columns: 1fr; gap: 0; max-width: 520px; margin: 0 auto; }
  .gd-thread { width: 40px; height: 90px; margin: 0 auto; transform: rotate(90deg); }
  .gd-bridge { padding: 14px 0 22px; }
  .gd-bridge p { margin-top: 0; max-width: 260px; }
  .gd-offer { padding: 70px 0 60px; }
  .gd-offer__grid, .gd-offer__grid--flip { grid-template-columns: 1fr; }
  .gd-offer__grid--flip .gd-offer__art { order: 0; }
  .gd-offer__art { max-width: 460px; width: 100%; margin: 0 auto; aspect-ratio: 1 / 1; border-radius: 200px 200px 24px 24px; outline-offset: 7px; }
  .gd-offer--liberation .gd-offer__art { position: relative; top: auto; }
  .gd-stages__title { margin-top: 60px !important; }
  .gd-stages { grid-template-columns: 1fr; gap: 6px; max-width: 520px; margin: 0 auto; }
  .gd-stages::before { left: 37px; right: auto; top: 30px; bottom: 30px; width: 1px; height: auto; background: linear-gradient(to bottom, var(--gd-line), var(--gd-honey), var(--gd-line)); }
  .gd-stage { display: grid; grid-template-columns: 74px minmax(0, 1fr); grid-template-rows: auto auto auto auto; column-gap: 14px; align-items: start; text-align: left; padding: 10px 0; }
  .gd-orb { grid-row: 1 / span 4; justify-self: center; margin: 4px 0 0; }
  .gd-stage__life { margin-top: 10px; padding-top: 8px; }
  .gd-stage__num { margin: 6px 0 4px; }
  .gd-stage strong { margin-bottom: 4px; }
  .gd-embody-card { grid-template-columns: 1fr; margin-top: 56px; border-radius: 28px; }
  .gd-ripple { padding: 90px 0; }
  .gd-quote { grid-template-columns: 1fr; justify-items: center; text-align: center; border-radius: 28px; padding: 26px 22px; }
  .gd-quote img { grid-row: auto; }
  .gd-faq { padding: 80px 0 40px; }
  .gd-faq summary { font-size: 21px; }
}
@media (max-width: 760px) {
  .gd-hero { padding: 64px var(--gd-gutter) 90px; min-height: 0; }
  .gd-hero__plate img { object-position: 50% 40%; }
  .gd-lead { font-size: 20px; }
  .gd-actions { flex-direction: column; align-items: stretch; }
  .gd-actions .gd-btn { width: 100%; }
  .gd-step { padding: 34px 24px 24px; }
  .gd-buy { padding: 26px 20px 22px; }
  .gd-moves li { padding-left: 58px; }
  .gd-doors { font-size: 11px; letter-spacing: .05em; }
}
