:root {
  --exp-navy: #061920;
  --exp-navy-2: #0b2630;
  --exp-petrol: #123641;
  --exp-ivory: #f2efe7;
  --exp-warm: #dcd5c8;
  --exp-gold: #b08a4b;
  --exp-gold-soft: #d2b273;
  --exp-grid: rgba(216, 226, 225, .13);
}

.experience-home { background: var(--exp-navy); color: var(--exp-ivory); }
.experience-home .site-header.scrolled { background: rgba(6,25,32,.9); border-color: rgba(255,255,255,.09); }
.experience-home .site-header { mix-blend-mode: normal; }
.experience-home .nav-cta { border-color: rgba(210,178,115,.55); color: var(--exp-gold-soft); }
.experience-story { position: relative; z-index: 2; overflow: clip; }
#experience-canvas { position: fixed; z-index: 0; inset: 0; width: 100%; height: 100%; pointer-events: none; transition: opacity .7s ease; }
.experience-fallback { position: fixed; z-index: 0; inset: 0; opacity: 0; background: radial-gradient(circle at 72% 46%,rgba(176,138,75,.16),transparent 28%),linear-gradient(135deg,#061920,#0d2c35); pointer-events: none; }
.no-webgl .experience-fallback { opacity: 1; }
.no-webgl #experience-canvas { display: none; }
.ambient-system { position: fixed; z-index: 1; top: 50%; right: clamp(40px,8vw,150px); width: clamp(340px,35vw,580px); aspect-ratio: 1; pointer-events: none; opacity: .96; transform: translate3d(calc(var(--pointer-x,0) * 20px),calc(-50% + var(--pointer-y,0) * 14px),0) scale(1); transition: opacity .8s ease,transform 1.1s cubic-bezier(.22,.8,.2,1),right 1.1s ease,width 1.1s ease; perspective: 1100px; }
.webgl-ready .ambient-system { opacity: .16; mix-blend-mode: screen; }
html[data-visual-scene="0"] .ambient-system { opacity: 0; visibility: hidden; }
html[data-visual-scene="0"] .ambient-halo { border-color: rgba(210,178,115,.42); box-shadow: inset 0 0 80px rgba(18,54,65,.34),0 0 110px rgba(176,138,75,.12); }
html[data-visual-scene="0"] .ambient-axis { opacity: .82; }
html[data-visual-scene="0"] .ambient-documents { opacity: .5; }
html[data-visual-scene="0"] .ambient-seal { background: rgba(6,25,32,.58); box-shadow: 0 22px 65px rgba(0,0,0,.24),inset 0 0 35px rgba(210,178,115,.14); }
.ambient-halo { position: absolute; inset: 8%; border: 1px solid rgba(210,178,115,.2); border-radius: 50%; box-shadow: inset 0 0 80px rgba(18,54,65,.45),0 0 100px rgba(176,138,75,.06); animation: ambient-breathe 6s ease-in-out infinite; }
.ambient-halo::before,.ambient-halo::after { content: ""; position: absolute; border-radius: 50%; }
.ambient-halo::before { inset: 12%; border: 1px solid rgba(255,255,255,.1); border-left-color: var(--exp-gold-soft); animation: ambient-spin 18s linear infinite; }
.ambient-halo::after { inset: 31%; background: radial-gradient(circle,rgba(210,178,115,.14),transparent 67%); }
.ambient-axis { position: absolute; inset: 50% -8% auto -8%; height: 1px; background: linear-gradient(90deg,transparent,rgba(210,178,115,.55),transparent); transform: rotate(-18deg); transition: transform 1.1s ease; }
.ambient-axis i { position: absolute; top: -5px; width: 10px; height: 10px; border: 1px solid var(--exp-gold-soft); border-radius: 50%; background: var(--exp-navy); box-shadow: 0 0 18px rgba(210,178,115,.24); }
.ambient-axis i:nth-child(1) { left: 9%; }.ambient-axis i:nth-child(2) { left: 29%; }.ambient-axis i:nth-child(3) { left: 50%; }.ambient-axis i:nth-child(4) { left: 70%; }.ambient-axis i:nth-child(5) { left: 90%; }
.ambient-documents { position: absolute; inset: 16% 20%; transform-style: preserve-3d; transform: rotateX(58deg) rotateZ(-24deg); transition: transform 1.2s cubic-bezier(.22,.8,.2,1),opacity .7s; }
.ambient-document { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 10%; border: 1px solid rgba(210,178,115,.42); background: linear-gradient(145deg,rgba(242,239,231,.96),rgba(202,199,191,.84)); color: var(--exp-navy); box-shadow: 0 28px 70px rgba(0,0,0,.3); transition: transform 1.2s cubic-bezier(.22,.8,.2,1),opacity .7s; }
.ambient-document::before { content: ""; position: absolute; top: 10%; left: 10%; width: 47%; height: 1px; background: rgba(6,25,32,.28); box-shadow: 0 12px rgba(6,25,32,.18),0 24px rgba(6,25,32,.12); }
.ambient-document b { font-family: var(--serif); font-size: clamp(1.5rem,2.7vw,2.7rem); font-weight: 400; letter-spacing: -.03em; }
.ambient-document small { margin-top: 4px; color: rgba(6,25,32,.55); font-size: .56rem; letter-spacing: .13em; text-transform: uppercase; }
.ambient-document-1 { transform: translate3d(-18px,18px,-70px); }.ambient-document-2 { transform: translate3d(-9px,9px,-46px); }.ambient-document-3 { transform: translate3d(0,0,-22px); }.ambient-document-4 { transform: translate3d(9px,-9px,2px); }
.ambient-seal { position: absolute; left: 50%; top: 50%; width: 32%; aspect-ratio: 1; display: grid; place-items: center; border: 1px solid rgba(210,178,115,.55); border-radius: 44% 44% 50% 50%; background: rgba(6,25,32,.82); box-shadow: 0 22px 65px rgba(0,0,0,.35),inset 0 0 35px rgba(210,178,115,.08); transform: translate(-50%,-50%); transition: transform 1.1s ease,border-radius 1.1s ease; }
.ambient-seal::before { content: ""; position: absolute; inset: 11%; border: 1px solid rgba(210,178,115,.25); border-radius: inherit; }
.ambient-seal span { color: var(--exp-gold-soft); font-family: var(--serif); font-size: clamp(1.5rem,3.2vw,3rem); letter-spacing: -.08em; }
html[data-visual-scene="1"] .ambient-system { right: 4vw; width: min(66vw,900px); }
html[data-visual-scene="1"] .ambient-documents { opacity: .1; transform: rotateX(72deg) rotateZ(0deg) scale(.65); }
html[data-visual-scene="1"] .ambient-axis { transform: rotate(0deg) scaleX(1.12); }
html[data-visual-scene="1"] .ambient-seal { transform: translate(72%,-50%) scale(.66); }
html[data-visual-scene="1"] .ambient-system { opacity: 0; visibility: hidden; }
html[data-visual-scene="2"] .ambient-document-1 { transform: translate3d(-46%,-18%,-10px) rotate(-14deg); }
html[data-visual-scene="2"] .ambient-document-2 { transform: translate3d(-18%,-5%,0) rotate(-5deg); }
html[data-visual-scene="2"] .ambient-document-3 { transform: translate3d(20%,4%,4px) rotate(6deg); }
html[data-visual-scene="2"] .ambient-document-4 { transform: translate3d(48%,18%,8px) rotate(14deg); }
html[data-visual-scene="2"] .ambient-system { right: 2vw; width: min(52vw,760px); opacity: .72; transform: translate3d(calc(var(--pointer-x,0) * 14px),calc(-46% + var(--pointer-y,0) * 10px),0) scale(1.06); }
html[data-visual-scene="2"] .ambient-documents { transform: rotateX(49deg) rotateZ(-11deg) scale(.96); }
html[data-visual-scene="2"] .ambient-document { border-color: rgba(210,178,115,.58); background: linear-gradient(145deg,rgba(248,246,239,.98),rgba(220,216,206,.94)); box-shadow: 0 14px 30px rgba(0,0,0,.14); }
html[data-visual-scene="2"] .ambient-halo { opacity: .5; box-shadow: inset 0 0 48px rgba(18,54,65,.2),0 0 58px rgba(176,138,75,.06); }
html[data-visual-scene="2"] .ambient-seal { background: rgba(6,25,32,.7); box-shadow: 0 12px 30px rgba(0,0,0,.16),inset 0 0 24px rgba(210,178,115,.1); transform: translate(-50%,36%) scale(.62); }
html[data-visual-scene="3"] .ambient-system { opacity: .14; transform: translate3d(0,-50%,0) scale(.72); }
html[data-visual-scene="3"] .ambient-documents { opacity: 0; }
html[data-visual-scene="3"] .ambient-seal { border-radius: 50%; transform: translate(-50%,-50%) scale(1.35) rotate(calc(var(--page-progress) * 90deg)); }
html[data-visual-scene="4"] .ambient-documents { opacity: .14; transform: rotateX(82deg) rotateZ(-90deg) scale(.68); }
html[data-visual-scene="4"] .ambient-seal { transform: translate(-50%,-50%) scale(.8); }
@keyframes ambient-spin { to { transform: rotate(360deg); } }
@keyframes ambient-breathe { 50% { transform: scale(1.035); opacity: .72; } }
.experience-progress { position: fixed; z-index: 80; right: 18px; top: 22vh; width: 1px; height: 56vh; background: rgba(255,255,255,.14); }
.experience-progress span { display: block; width: 3px; height: 100%; margin-left: -1px; transform: scaleY(0); transform-origin: top; background: var(--exp-gold-soft); }

.story-scene { position: relative; min-height: 108vh; isolation: isolate; }
.scene-frame { position: sticky; top: 0; min-height: 100svh; display: grid; align-items: center; padding-top: 110px; padding-bottom: 70px; }
.scene-index { position: absolute; z-index: 3; top: 126px; left: max(20px,calc((100vw - var(--max))/2)); color: rgba(255,255,255,.38); font-size: .72rem; font-weight: 700; letter-spacing: .18em; }
.scene-copy { position: relative; z-index: 3; }
.scene-kicker { margin: 0 0 22px; color: var(--exp-gold-soft); font-size: .72rem; font-weight: 750; letter-spacing: .19em; text-transform: uppercase; }
.scene-copy h1,.scene-copy h2,.services-intro h2,.human-copy h2,.reviews-head h2,.questions-layout h2,.final-inner h2 { margin: 0; font-family: var(--serif); font-weight: 400; letter-spacing: -.045em; line-height: .97; }
.scene-copy h2,.services-intro h2 { font-size: clamp(3.2rem,6.2vw,7rem); }
.scene-lead { max-width: 620px; margin: 30px 0 0; color: rgba(242,239,231,.67); font-size: clamp(1.05rem,1.6vw,1.25rem); }
.text-link { display: inline-flex; align-items: center; gap: 13px; padding-bottom: 7px; border-bottom: 1px solid currentColor; color: var(--exp-gold-soft); font-size: .78rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.text-link span { font-size: 1rem; }

.scene-hero { min-height: 100svh; background: linear-gradient(90deg,rgba(6,25,32,.98) 0%,rgba(6,25,32,.86) 44%,rgba(6,25,32,.12) 80%); }
.hero-frame { position: relative; grid-template-columns: minmax(0,1.15fr) minmax(260px,.85fr); gap: 80px; }
.hero-statement { z-index: 4; max-width: 920px; }
.hero-statement h1 { max-width: 940px; font-size: clamp(4.1rem,7.4vw,9rem); }
.hero-statement h1 span { color: var(--exp-gold-soft); font-style: italic; }
.hero-dynamic { display: inline-block; min-width: 4.6em; }
.hero-dynamic::after { content: ""; display: inline-block; width: .045em; height: .72em; margin-left: .06em; background: currentColor; vertical-align: .03em; animation: caret-blink .85s steps(1) infinite; }
.experience-home .hero-actions { margin-top: 44px; }
.experience-home .btn-gold { background: var(--exp-gold-soft); color: var(--exp-navy); }
.experience-home .btn-gold:hover { background: #e2c68e; }
.hero-portrait { position: absolute; z-index: 2; top: 0; right: -3vw; bottom: 0; width: min(49vw,690px); overflow: hidden; -webkit-mask-image: linear-gradient(90deg,transparent 0%,rgba(0,0,0,.3) 12%,#000 32%,#000 100%),linear-gradient(180deg,#000 0%,#000 78%,transparent 100%); -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg,transparent 0%,rgba(0,0,0,.3) 12%,#000 32%,#000 100%),linear-gradient(180deg,#000 0%,#000 78%,transparent 100%); mask-composite: intersect; mask-repeat: no-repeat; }
.hero-portrait::before { content: ""; position: absolute; z-index: 2; inset: 0; background: linear-gradient(90deg,var(--exp-navy) 0%,rgba(6,25,32,.92) 8%,rgba(6,25,32,.34) 38%,transparent 68%),linear-gradient(0deg,var(--exp-navy) 0%,rgba(6,25,32,.62) 12%,transparent 42%),linear-gradient(180deg,rgba(6,25,32,.52),transparent 25%); }
.hero-portrait::after { display: none; }
.hero-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 34%; filter: saturate(.76) contrast(1.06) brightness(.82); animation: portrait-drift 14s ease-in-out infinite alternate; transform-origin: 52% 34%; }
.hero-aside { position: relative; z-index: 4; align-self: end; justify-self: end; width: 265px; margin-bottom: 10vh; padding: 22px 0; border-top: 1px solid rgba(255,255,255,.22); border-bottom: 1px solid rgba(255,255,255,.22); text-shadow: 0 2px 14px rgba(0,0,0,.7); }
.hero-aside span,.hero-aside strong { display: block; }
.hero-aside span { color: rgba(255,255,255,.5); font-size: .65rem; letter-spacing: .15em; text-transform: uppercase; }
.hero-aside strong { min-height: 2.2em; margin-top: 8px; color: var(--exp-gold-soft); font-family: var(--serif); font-size: 1.7rem; font-weight: 400; }
.scroll-cue { position: absolute; z-index: 3; left: max(20px,calc((100vw - var(--max))/2)); bottom: 20vh; display: flex; align-items: center; gap: 13px; color: rgba(255,255,255,.45); font-size: .68rem; letter-spacing: .13em; text-transform: uppercase; }
.scroll-cue span { width: 42px; height: 1px; overflow: hidden; background: rgba(255,255,255,.22); }
.scroll-cue span::after { content: ""; display: block; width: 50%; height: 100%; background: var(--exp-gold-soft); animation: cue 1.8s ease-in-out infinite; }
@keyframes cue { from { transform: translateX(-120%); } to { transform: translateX(240%); } }

.scene-time { background: linear-gradient(180deg,rgba(6,25,32,.96),rgba(6,25,32,.94) 12%,rgba(6,25,32,.94) 88%,rgba(6,25,32,.42)); }
.two-column-scene { grid-template-columns: .9fr 1.1fr; gap: clamp(70px,11vw,180px); }
.time-ledger { position: relative; z-index: 3; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--exp-grid); }
.time-ledger li { display: grid; grid-template-columns: 52px 1fr 1.2fr; gap: 22px; align-items: center; min-height: 105px; border-bottom: 1px solid var(--exp-grid); opacity: .46; transform: translateX(24px); transition: opacity .5s,transform .5s,border-color .5s; }
.time-ledger li.active { opacity: 1; transform: none; border-color: rgba(210,178,115,.48); }
.time-ledger li>span { color: var(--exp-gold-soft); font-family: var(--serif); }
.time-ledger strong { font-family: var(--serif); font-size: 1.45rem; font-weight: 400; }
.time-ledger small { color: rgba(255,255,255,.5); font-size: .82rem; }

.scene-proof { background: radial-gradient(circle at 82% 48%,rgba(18,54,65,.34),transparent 40%),linear-gradient(90deg,rgba(6,25,32,.96) 0%,rgba(6,25,32,.9) 42%,rgba(6,25,32,.64) 72%,rgba(6,25,32,.54) 100%); }
.proof-frame { align-content: center; }
.proof-headline { max-width: 1000px; }
.proof-headline h2 { font-size: clamp(3.2rem,5.45vw,5.75rem); }
.proof-headline h2 span { display: block; color: var(--exp-gold-soft); white-space: nowrap; }
.document-terms { position: relative; z-index: 3; display: flex; flex-wrap: wrap; gap: 10px; max-width: 760px; margin-top: 55px; }
.document-terms span { padding: 11px 17px; border: 1px solid rgba(255,255,255,.18); color: rgba(255,255,255,.7); font-size: .73rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.scene-footnote { position: relative; z-index: 3; width: min(520px,100%); margin: 42px 0 0 auto; padding-left: 20px; border-left: 1px solid var(--exp-gold); color: rgba(255,255,255,.58); font-size: .82rem; }

.scene-services { min-height: auto; padding: 150px 0; background: var(--exp-ivory); color: var(--exp-navy); }
.scene-services .scene-index { color: rgba(6,25,32,.4); }
.services-layout { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(70px,10vw,150px); align-items: start; }
.services-intro { position: sticky; top: 145px; }
.services-intro h2 { font-size: clamp(3rem,5vw,5.7rem); }
.services-intro p:not(.scene-kicker) { max-width: 430px; color: #6a6b67; }
.services-intro .text-link { margin-top: 24px; color: #815f29; }
.service-selector { border-top: 1px solid rgba(6,25,32,.2); }
.service-row { width: 100%; display: grid; grid-template-columns: 46px 1fr auto; gap: 20px; align-items: center; min-height: 105px; padding: 20px 0; border: 0; border-bottom: 1px solid rgba(6,25,32,.2); background: transparent; color: var(--exp-navy); text-align: left; cursor: pointer; transition: padding .35s,color .35s,background .35s; }
.service-row:hover,.service-row.active { padding-inline: 20px; background: var(--exp-navy); color: var(--exp-ivory); }
.service-row>span { color: var(--exp-gold); font-family: var(--serif); }
.service-row strong { font-family: var(--serif); font-size: clamp(1.35rem,2.2vw,2.15rem); font-weight: 400; }
.service-row small { color: #777771; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.service-row:hover small,.service-row.active small { color: rgba(255,255,255,.52); }

.scene-method { background: rgba(6,25,32,.92); }
.method-frame { align-content: center; }
.method-frame .scene-copy { max-width: 820px; }
.method-intro { max-width: 680px; margin: 24px 0 0; color: rgba(255,255,255,.64); font-size: clamp(.9rem,1.12vw,1.04rem); line-height: 1.75; }
.method-flow { --method-progress: 0; position: relative; z-index: 3; display: flex; height: 340px; gap: 0; margin: 44px 0 0; padding: 0 0 12px; overflow-x: auto; overflow-y: hidden; list-style: none; scrollbar-width: thin; scrollbar-color: rgba(210,178,115,.48) transparent; scroll-snap-type: x proximity; }
.method-flow::before,.method-flow::after { display: none; }
.method-flow li { position: relative; flex: 1 0 128px; min-width: 0; padding: 0 14px 0 0; scroll-snap-align: center; background: linear-gradient(rgba(255,255,255,.16),rgba(255,255,255,.16)) left 50%/100% 1px no-repeat; transition: background .4s; }
.method-flow li.active { background-image: linear-gradient(90deg,var(--exp-gold-soft),rgba(240,215,156,.56)); }
.method-flow li.is-current { background-image: linear-gradient(90deg,var(--exp-gold-soft),rgba(255,255,255,.16)); }
.method-flow li:last-child { background-image: none; }
.method-flow li::before { content: ""; position: absolute; z-index: 4; top: calc(50% - 7px); left: 0; width: 13px; height: 13px; border: 1px solid var(--exp-gold-soft); border-radius: 50%; background: var(--exp-navy); transition: background .35s,box-shadow .35s,transform .35s; }
.method-flow li::after { content: ""; position: absolute; z-index: 1; left: 6px; width: 1px; height: 28px; background: rgba(255,255,255,.17); transition: height .35s,background .35s; }
.method-flow li:nth-child(odd)::after { top: calc(50% + 7px); }
.method-flow li:nth-child(even)::after { bottom: calc(50% + 7px); }
.method-flow li.active::before,.method-flow li.is-current::before { background: var(--exp-gold-soft); box-shadow: 0 0 0 5px rgba(210,178,115,.09),0 0 25px rgba(210,178,115,.35); }
.method-flow li.active::after,.method-flow li.is-current::after { background: linear-gradient(var(--exp-gold-soft),rgba(210,178,115,.25)); }
.method-flow li.is-current::before { transform: scale(1.32); }
.method-step { position: absolute; left: 0; width: calc(100% - 14px); min-height: 112px; display: block; padding: 15px 12px 13px; border: 1px solid transparent; background: rgba(255,255,255,0); color: inherit; text-align: left; cursor: pointer; opacity: .28; filter: blur(.4px); transform: translateY(8px); transition: opacity .45s,transform .45s,filter .45s,border-color .45s,background .45s; }
.method-flow li:nth-child(odd) .method-step { top: calc(50% + 34px); }
.method-flow li:nth-child(even) .method-step { bottom: calc(50% + 34px); transform: translateY(-8px); }
.method-flow li.active .method-step,.method-flow li.is-current .method-step,.method-step:hover,.method-step:focus-visible { opacity: 1; filter: none; transform: translateY(0); }
.method-flow li.is-current .method-step { border-color: rgba(210,178,115,.2); background: linear-gradient(135deg,rgba(210,178,115,.08),rgba(255,255,255,.015)); }
.method-step:focus-visible { outline: 1px solid var(--exp-gold-soft); outline-offset: 5px; }
.method-flow em,.method-flow span,.method-flow strong,.method-flow small { display: block; }
.method-flow em { margin-bottom: 8px; color: rgba(240,215,156,.72); font-size: .52rem; font-style: normal; letter-spacing: .15em; text-transform: uppercase; }
.method-flow span { color: var(--exp-gold-soft); font-family: var(--serif); font-size: .8rem; }
.method-flow strong { margin-top: 8px; font-family: var(--serif); font-size: clamp(1rem,1.35vw,1.3rem); font-weight: 400; }
.method-flow small { margin-top: 8px; color: rgba(255,255,255,.48); font-size: .72rem; line-height: 1.4; }
.method-outcome::before { width: 17px !important; height: 17px !important; top: calc(50% - 9px) !important; left: -2px !important; border-color: #f0d79c !important; box-shadow: 0 0 0 7px rgba(210,178,115,.08),0 0 30px rgba(210,178,115,.28); }
.method-outcome.is-current::before { animation: method-outcome-pulse 1.8s ease-in-out infinite; }
.method-outcome .method-step { background: linear-gradient(135deg,rgba(210,178,115,.11),rgba(255,255,255,.025)); border-color: rgba(210,178,115,.2); }
.method-outcome strong { color: #f0d79c; }
@keyframes method-outcome-pulse { 50% { box-shadow: 0 0 0 11px rgba(210,178,115,0),0 0 36px rgba(210,178,115,.48); } }

.human-scene { position: relative; z-index: 5; min-height: 110svh; display: grid; grid-template-columns: 1fr 1fr; background: var(--exp-ivory); color: var(--exp-navy); }
.human-image { min-height: 110svh; overflow: hidden; }
.human-image img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 28%; transform: scale(1.03); transition: transform .8s ease; }
.human-copy { display: flex; flex-direction: column; justify-content: center; padding: 10vw; }
.human-copy h2 { font-size: clamp(3rem,5.2vw,6rem); }
.human-copy p:not(.scene-kicker) { max-width: 630px; color: #656761; }
.human-copy .text-link { align-self: flex-start; margin-top: 28px; color: #815f29; }
.human-facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; margin-top: 40px; padding-top: 24px; border-top: 1px solid rgba(6,25,32,.18); }
.human-facts span { color: #696a65; font-size: .72rem; }
.human-facts strong { display: block; margin-bottom: 7px; color: var(--exp-navy); font-family: var(--serif); font-size: 1.55rem; font-weight: 400; }

.reviews-scene { position: relative; z-index: 5; padding: 125px 0 110px; overflow: hidden; background: radial-gradient(circle at 12% 18%,rgba(31,83,99,.78),transparent 32%),#0a222b; }
.reviews-scene::before { content: "RELATOS"; position: absolute; top: 35px; left: 2vw; color: rgba(255,255,255,.035); font: 600 clamp(6rem,15vw,14rem)/1 Arial,sans-serif; letter-spacing: -.07em; pointer-events: none; transform: translateX(-4%); transition: transform 1.4s cubic-bezier(.22,.8,.2,1),opacity 1.2s ease; }
.reviews-scene.reviews-visible::before { transform: translateX(0); }
.google-reviews-layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(235px,285px) minmax(0,1fr); gap: clamp(34px,4vw,60px); align-items: center; }
.google-rating-summary { padding-right: clamp(0px,2vw,28px); }
.google-rating-summary h2 { margin: 0; font-family: var(--serif); font-size: clamp(1.9rem,2.7vw,2.55rem); font-weight: 400; letter-spacing: -.035em; line-height: 1.04; }
.reviews-statement span { display: block; opacity: .16; transform: translateY(18px); filter: blur(2px); transition: opacity .85s ease,transform .85s cubic-bezier(.22,.8,.2,1),filter .85s ease; }
.reviews-statement span:nth-child(2) { transition-delay: .16s; }
.reviews-statement span:nth-child(3) { color: var(--exp-gold-soft); font-style: italic; transition-delay: .32s; }
.reviews-visible .reviews-statement span { opacity: 1; transform: translateY(0); filter: blur(0); }
.google-rating-summary>p:not(.scene-kicker) { margin: 28px 0 0; color: rgba(255,255,255,.56); }
.google-rating-summary>p strong,.google-rating-summary>p span { display: block; }
.google-rating-summary>p strong { color: var(--exp-ivory); font-family: var(--serif); font-size: 1.55rem; font-weight: 400; }
.google-rating-summary>p span { margin-top: 3px; font-size: .76rem; }
.google-rating-stars { margin-top: 30px; color: #fbbc04; font-size: 1.35rem; letter-spacing: .08em; }
.google-signature { display: flex; align-items: center; gap: 8px; margin-top: 26px; color: rgba(255,255,255,.76); font-size: .82rem; }
.google-signature b { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; background: #fff; color: #4285f4; font-family: Arial,sans-serif; font-size: 1rem; }
.google-rating-summary .text-link { margin-top: 25px; }
.google-reviews-carousel { min-width: 0; }
.google-reviews-heading { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 20px; }
.google-reviews-heading>span { color: var(--exp-ivory); font-family: var(--serif); font-size: clamp(1.7rem,2.7vw,2.8rem); }
.carousel-controls { display: flex; gap: 9px; }
.carousel-controls button { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; background: rgba(255,255,255,.06); color: white; font: 300 1.8rem/1 Arial,sans-serif; cursor: pointer; transition: background .25s,border-color .25s,transform .25s; }
.carousel-controls button:hover { border-color: var(--exp-gold-soft); background: rgba(210,178,115,.14); transform: translateY(-2px); }
.reviews-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc(33.333% - 11px); gap: 16px; overflow-x: auto; padding: 4px 2px 20px; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-inline: contain; }
.reviews-track::-webkit-scrollbar { display: none; }
.review-card { aspect-ratio: 1 / 1; min-height: 0; display: flex; flex-direction: column; padding: clamp(14px,1.35vw,20px); border: 1px solid rgba(6,25,32,.08); border-radius: 5px; background: #f7f7f5; color: var(--exp-navy); box-shadow: 0 18px 38px rgba(0,0,0,.16); scroll-snap-align: start; overflow: hidden; transition: transform .4s cubic-bezier(.22,.8,.2,1),box-shadow .4s ease; }
.review-card:hover { transform: translateY(-7px); box-shadow: 0 27px 50px rgba(0,0,0,.24); }
.review-meta { display: flex; align-items: center; gap: 13px; }
.review-avatar { flex: 0 0 auto; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; color: white; background: #546e7a; font-family: Arial,sans-serif; font-size: 1rem; }
.review-avatar--w { background: #6d4c41; }.review-avatar--n { background: #00796b; }.review-avatar--p { background: #c2185b; }.review-avatar--x { background: #0277bd; }
.review-avatar--photo { background-image: url('assets/google-review-cristina-source.png'); background-repeat: no-repeat; background-size: 945px 506px; background-position: -44px -311px; }
.review-meta strong,.review-meta small { display: block; }
.review-meta strong { max-width: 170px; overflow: hidden; color: #202124; font-family: Arial,sans-serif; font-size: .9rem; font-weight: 650; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.review-meta small { margin-top: 3px; color: #70757a; font-size: .72rem; }
.review-google { margin-left: auto; color: #4285f4; font-family: Arial,sans-serif; font-size: 1rem; font-weight: 700; }
.review-stars { margin-top: 18px; color: #fbbc04; font-size: .8rem; letter-spacing: .1em; }
.review-card blockquote { display: -webkit-box; margin: 15px 0 0; overflow: hidden; font-family: Arial,sans-serif; font-size: clamp(.76rem,1vw,.88rem); line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 6; }
.reviews-note { display: flex; align-items: center; gap: 18px; margin-top: 30px; color: rgba(255,255,255,.43); font-size: .74rem; }
.reviews-note span { padding: 6px 10px; border: 1px solid rgba(255,255,255,.18); color: white; font-weight: 700; }

.questions-scene { position: relative; z-index: 5; padding: 140px 0; background: var(--exp-warm); color: var(--exp-navy); }
.questions-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: 100px; }
.questions-layout h2 { font-size: clamp(3.2rem,5vw,5.4rem); }
.questions-scene .faq-list,.questions-scene .faq-item { border-color: rgba(6,25,32,.18); }
.questions-scene .faq-question { color: var(--exp-navy); }
.questions-scene .faq-answer { color: #5d625f; }

.final-scene { position: relative; z-index: 5; min-height: 92svh; display: grid; align-items: center; background: linear-gradient(135deg,#061920,#0e303a); text-align: center; }
.final-inner { max-width: 1040px; }
.final-inner h2 { font-size: clamp(4rem,8vw,9rem); }
.final-inner>p:not(.scene-kicker) { max-width: 620px; margin: 28px auto; color: rgba(255,255,255,.56); }
.final-inner .btn { margin-top: 12px; }
.experience-footer { position: relative; z-index: 5; background: #041216; }

@media (max-width: 980px) {
  .ambient-system { right: -10vw; top: 64%; width: min(72vw,560px); opacity: .48; }
  .webgl-ready .ambient-system { opacity: .1; }
  html[data-visual-scene="2"] .ambient-system { top: 50%; right: -18vw; width: min(62vw,630px); opacity: .58; transform: translate3d(calc(var(--pointer-x,0) * 10px),calc(-46% + var(--pointer-y,0) * 8px),0) scale(1); }
  html[data-visual-scene="2"] .ambient-document-1 { transform: translate3d(-34%,-13%,-10px) rotate(-11deg); }
  html[data-visual-scene="2"] .ambient-document-2 { transform: translate3d(-12%,-4%,0) rotate(-4deg); }
  html[data-visual-scene="2"] .ambient-document-3 { transform: translate3d(12%,4%,4px) rotate(4deg); }
  html[data-visual-scene="2"] .ambient-document-4 { transform: translate3d(34%,13%,8px) rotate(11deg); }
  .story-scene { min-height: 107vh; }
  .hero-frame,.two-column-scene,.services-layout,.questions-layout { grid-template-columns: 1fr; }
  .google-reviews-layout { grid-template-columns: 1fr; }
  .google-rating-summary { max-width: 680px; }
  .hero-statement { align-self: end; margin-bottom: 16vh; }
  .hero-portrait { right: -18vw; width: min(78vw,660px); opacity: .56; }
  .hero-aside { display: none; }
  .scene-time .scene-frame { align-content: center; gap: 55px; }
  .time-ledger { width: 78%; margin-left: auto; }
  .services-intro { position: static; }
  .method-flow li { flex-basis: 128px; }
  .human-scene { grid-template-columns: 1fr; }
  .human-image { min-height: 78svh; }
  .human-copy { padding: 90px 7vw; }
  .reviews-track { grid-auto-columns: calc(33.333% - 11px); }
}

@media (max-width: 640px) {
  .ambient-system { right: -38vw; top: 68%; width: 96vw; opacity: .27; }
  html[data-visual-scene="0"] .ambient-system { opacity: 0; visibility: hidden; }
  html[data-visual-scene="1"] .ambient-system { right: -50vw; width: 115vw; }
  html[data-visual-scene="2"] .ambient-system { right: -28vw; width: 98vw; opacity: .42; }
  .ambient-document small { display: none; }
  .experience-progress { right: 7px; }
  .story-scene { min-height: 104vh; }
  .scene-frame { padding-top: 115px; padding-bottom: 50px; }
  .scene-index { top: 92px; font-size: .62rem; }
  .hero-statement { margin-bottom: 10vh; }
  .hero-portrait { top: 90px; right: -15%; bottom: 0; width: 105%; opacity: .48; }
  .hero-portrait::before { background: linear-gradient(180deg,rgba(6,25,32,.22),rgba(6,25,32,.58) 44%,var(--exp-navy) 88%),linear-gradient(90deg,var(--exp-navy),transparent 58%); }
  .hero-portrait::after { display: none; }
  .hero-statement h1 { font-size: clamp(3.6rem,16vw,5.4rem); }
  .scene-copy h2,.services-intro h2 { font-size: clamp(3rem,13vw,4.4rem); }
  .proof-headline h2 span { white-space: normal; }
  .experience-home .hero-actions { align-items: flex-start; flex-direction: column; }
  .scroll-cue { bottom: 10vh; }
  .time-ledger { width: 100%; }
  .time-ledger li { grid-template-columns: 38px 1fr; gap: 12px; min-height: 90px; }
  .time-ledger small { grid-column: 2; margin-top: -22px; }
  .scene-footnote { width: 100%; margin-top: 34px; }
  .scene-services { padding: 110px 0 90px; }
  .service-row { grid-template-columns: 35px 1fr; }
  .service-row small { grid-column: 2; }
  .method-flow { width: calc(100% + 22px); height: 350px; margin-right: -22px; padding-right: 22px; }
  .method-flow li { flex: 0 0 58vw; padding-right: 18px; }
  .method-step { width: calc(100% - 18px); min-height: 126px; }
  .human-image { min-height: 67svh; }
  .human-copy { padding: 75px 22px; }
  .human-facts { grid-template-columns: 1fr; }
  .reviews-scene,.questions-scene { padding: 78px 0; }
  .reviews-scene::before { top: 28px; font-size: 24vw; }
  .reviews-statement { max-width: 330px; }
  .google-reviews-heading>span { font-size: 1.7rem; }
  .reviews-track { grid-auto-columns: calc(47% - 8px); gap: 12px; }
  .review-card { min-height: 0; padding: 13px; }
  .review-meta { gap: 9px; }
  .review-meta strong { max-width: 105px; font-size: .76rem; }
  .review-meta small { font-size: .65rem; }
  .review-avatar { width: 34px; height: 34px; font-size: .9rem; }
  .review-card blockquote { margin-top: 17px; font-size: .82rem; line-height: 1.45; }
  .reviews-note { align-items: flex-start; }
  .final-inner h2 { font-size: clamp(3.8rem,15vw,5.8rem); }
}

@media (prefers-reduced-motion: reduce) {
  #experience-canvas { opacity: .55; }
  .ambient-halo,.ambient-halo::before { animation: none; }
  .scroll-cue span::after { animation: none; }
  .carousel-controls button,.time-ledger li,.service-row { transition: none; }
  .reviews-scene::before,.reviews-statement span { transition: none; }
  .reviews-statement span { opacity: 1; transform: none; filter: none; }
  .method-flow::after,.method-step,.method-flow li::before,.method-flow li::after { transition: none; }
  .method-outcome.is-current::before { animation: none; }
}
/* Readable mobile layout without altering the desktop experience. */
@media (max-width: 980px) {
  .reviews-track { grid-auto-columns: calc(50% - 8px); }
  .review-meta > div { min-width: 0; }
  .review-meta strong { max-width: 100%; }
}
@media (max-width: 640px) {
  .story-scene { min-height: auto; }
  .scene-frame { position: relative; min-height: auto; padding-top: 100px; padding-bottom: 72px; }
  .scene-index { top: 34px; }
  .scene-hero .scene-index { top: 92px; }
  .hero-frame { min-height: 100svh; gap: 0; padding-top: 156px; padding-bottom: 64px; }
  .hero-statement { margin-bottom: 0; align-self: center; }
  .hero-statement h1 { font-size: clamp(2.65rem, 11.5vw, 4.2rem); line-height: 1.04; }
  .hero-dynamic { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
  .scene-kicker { font-size: .65rem; letter-spacing: .13em; }
  .scene-copy h2, .services-intro h2, .human-copy h2, .questions-layout h2 { font-size: clamp(2.45rem, 10.5vw, 3.6rem); line-height: 1.06; }
  .scene-lead { font-size: 1rem; }
  .experience-home .hero-actions .btn { width: 100%; padding-inline: 12px; }
  .scene-services { padding-top: 100px; padding-bottom: 72px; }
  .service-row { column-gap: 10px; padding-block: 20px; }
  .service-row strong { overflow-wrap: anywhere; }
  .method-flow { width: 100%; height: auto; display: grid; gap: 12px; margin-right: 0; padding: 0; overflow: visible; }
  .method-flow li { padding: 0 0 0 24px; background: none; }
  .method-flow li::before, .method-outcome::before { top: 24px !important; left: 0 !important; }
  .method-flow li::after { display: none; }
  .method-flow li .method-step { position: relative; top: auto; bottom: auto; width: 100%; min-height: 0; padding: 16px; opacity: 1; filter: none; transform: none; }
  .method-flow strong { font-size: 1.3rem; }
  .method-flow small { font-size: .85rem; }
  .human-scene { min-height: 0; }
  .human-image { min-height: 0; height: 70svh; max-height: 600px; }
  .human-copy { padding: 64px 20px; }
  .google-reviews-heading { gap: 12px; }
  .carousel-controls { flex-shrink: 0; }
  .carousel-controls button { width: 44px; height: 44px; }
  .reviews-track { grid-auto-columns: 90%; }
  .review-card { aspect-ratio: auto; min-height: 245px; padding: 22px; }
  .review-meta strong { font-size: .9rem; }
  .review-card blockquote { display: block; overflow: visible; font-size: .95rem; }
  .questions-layout { gap: 32px; }
  .faq-question { gap: 16px; }
  .faq-answer p { padding-right: 0; }
  .final-scene { min-height: 75svh; padding: 72px 0; }
  .final-inner h2 { font-size: clamp(2.8rem, 12vw, 4.5rem); line-height: 1.04; }
}
/* Compact document section: remove the full-screen empty lead-in. */
.scene-proof { min-height: 0; }
.scene-proof .proof-frame { position: relative; min-height: 0; padding-top: 120px; padding-bottom: 80px; }
.scene-proof .scene-index { top: 42px; }
@media (max-width: 640px) {
  .scene-proof .proof-frame { padding-top: 90px; padding-bottom: 56px; }
  .scene-proof .scene-index { top: 30px; }
}
/* Blend the document backdrop into the preceding scene. */
.scene-proof {
  background: linear-gradient(180deg, rgba(6,25,32,.42) 0, rgba(6,25,32,.62) 100px, rgba(6,25,32,.88) 260px, rgba(6,25,32,.94) 100%);
}
/* Mobile hero: lift the portrait and hide the scene number. */
@media (max-width: 640px) {
  .scene-hero .scene-index { display: none; }
  .hero-portrait img { object-position: 50% 46%; }
}
/* Lift the mobile portrait into the area above the headline. */
@media (max-width: 640px) {
  .scene-hero .hero-portrait { top: -90px; bottom: 180px; }
}
@media (max-width: 640px) {
  .scene-hero .hero-portrait { top: -115px; bottom: 205px; }
}
/* Mobile spacing and alternating vertical method timeline. */
@media (max-width: 640px) {
  .scene-hero .hero-frame { min-height: auto; padding-bottom: 36px; }
  .scene-time .scene-frame { padding-top: 76px; }
  .scene-time .scene-index { top: 22px; }
  .scene-method .method-flow { position: relative; display: grid; gap: 18px; width: 100%; height: auto; overflow: visible; padding: 0; }
  .scene-method .method-flow::before { content: ''; display: block; position: absolute; top: 24px; bottom: 24px; left: 50%; width: 1px; background: rgba(210,178,115,.4); }
  .scene-method .method-flow li:nth-child(n) { display: grid; grid-template-columns: minmax(0,1fr) 28px minmax(0,1fr); padding: 0; background: none; }
  .scene-method .method-flow li:nth-child(n)::before { top: 25px !important; left: calc(50% - 6px) !important; width: 13px !important; height: 13px !important; transform: none; }
  .scene-method .method-flow li::after { display: none; }
  .scene-method .method-flow li:nth-child(n) .method-step { position: relative; top: auto; bottom: auto; left: auto; width: 100%; min-height: 0; margin: 0; padding: 14px 10px; border: 1px solid rgba(210,178,115,.22); border-radius: 4px; background: rgba(210,178,115,.05); opacity: 1; filter: none; transform: none; }
  .scene-method .method-flow li:nth-child(odd) .method-step { grid-column: 1; }
  .scene-method .method-flow li:nth-child(even) .method-step { grid-column: 3; }
  .scene-method .method-flow li.is-current .method-step { background: rgba(210,178,115,.12); border-color: rgba(210,178,115,.65); }
  .scene-method .method-flow strong { font-size: 1.08rem; overflow-wrap: anywhere; line-height: 1.2; }
  .scene-method .method-flow small { font-size: .76rem; line-height: 1.45; color: rgba(255,255,255,.68); }
  .scene-method .method-flow em { font-size: .55rem; letter-spacing: .07em; }
}
/* Section identifiers remain internal on mobile. */
@media (max-width: 640px) {
  .experience-story .scene-index { display: none; }
}
/* Keep the longest mobile timeline title on one line. */
@media (max-width: 640px) {
  .scene-method .method-flow li:nth-child(6) strong {
    font-size: clamp(.72rem, 3.4vw, .88rem);
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
  }
}
.service-detail { padding: 26px 24px 32px; border-bottom: 1px solid rgba(6,25,32,.2); background: rgba(6,25,32,.04); color: var(--exp-navy); }
.service-detail[hidden] { display: none; }
.service-detail h3 { margin: 0 0 10px; font-family: var(--serif); font-size: 1.35rem; font-weight: 400; }
.service-detail p { margin: 0 0 24px; color: #5d625f; line-height: 1.65; }
.service-detail .service-detail-note { font-size: .78rem; }
.service-detail .text-link { color: #815f29; }
@media (max-width: 640px) {
  .service-detail { padding: 24px 16px; }
}
/* Keep scene labels internal and bring the time section closer. */
.experience-story .scene-index { display: none; }
.scene-time { min-height: 0; }
.scene-time .scene-frame { position: relative; min-height: 0; padding-top: 64px; padding-bottom: 80px; }
@media (max-width: 640px) {
  .scene-time .scene-frame { padding-top: 36px; padding-bottom: 56px; }
}
/* Compact the transition from FAQ to the final call to action. */
.questions-scene { padding-bottom: 64px; }
.final-scene { min-height: 0; padding: 80px 0; }
@media (max-width: 640px) {
  .questions-scene { padding-bottom: 40px; }
  .final-scene { min-height: 0; padding: 48px 0; }
}
.guidance-scene { position: relative; z-index: 5; padding: 80px 0; background: var(--exp-ivory); color: var(--exp-navy); }
.guidance-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); gap: 64px; align-items: center; }
.guidance-photo { margin: 0; }
.guidance-photo img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: 4px; }
.guidance-photo figcaption { margin-top: 8px; font-size: .7rem; color: #666b68; }
.guidance-copy h2 { margin: 0 0 28px; font-family: var(--serif); font-size: clamp(2.4rem,3.8vw,4rem); font-weight: 400; line-height: 1.08; letter-spacing: -.035em; }
.guidance-copy p:not(.scene-kicker) { color: #5d625f; line-height: 1.75; }
.guidance-copy .scene-kicker, .guidance-copy .text-link { color: #815f29; }
.guidance-copy .text-link { margin-top: 18px; }
@media (max-width: 980px) {
  .guidance-layout { grid-template-columns: 1fr; gap: 32px; }
  .guidance-photo img { aspect-ratio: 3/2; }
}
@media (max-width: 640px) {
  .guidance-scene { padding: 48px 0; }
  .guidance-copy h2 { font-size: 2.4rem; }
}
.guidance-photo img { aspect-ratio: 3/2; }
/* Keep the consultation photo within the mobile content width. */
@media (max-width: 640px) {
  .guidance-layout { grid-template-columns: minmax(0, 1fr); }
  .guidance-photo { width: 100%; min-width: 0; max-width: 100%; }
  .guidance-photo img { display: block; width: 100%; max-width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; }
  .guidance-copy { min-width: 0; }
}
.guidance-heading { grid-column: 1 / -1; margin: 0; font-family: var(--serif); font-size: clamp(2.2rem,4vw,4rem); font-weight: 400; line-height: 1.08; letter-spacing: -.035em; }
.guidance-copy h3 { margin: 0 0 28px; font-family: var(--serif); font-size: clamp(2.4rem,3.8vw,4rem); font-weight: 400; line-height: 1.08; letter-spacing: -.035em; }
@media (max-width: 640px) {
  .guidance-heading { font-size: 2.3rem; }
  .guidance-copy h3 { font-size: 2.4rem; }
}
.guidance-copy .scene-kicker { display: none; }
@media (max-width: 640px) {
  .guidance-copy h3 { font-size: 1.7rem; line-height: 1.15; margin-bottom: 20px; }
}
/* One-time letter fade for the welcoming section title. */
.guidance-heading .fade-word { display: inline-block; white-space: nowrap; }
.guidance-heading .fade-letter { opacity: 0; }
.guidance-heading.fade-visible .fade-letter { animation: guidance-letter-in .6s ease forwards; animation-delay: var(--letter-delay); }
@keyframes guidance-letter-in { to { opacity: 1; } }
@media (max-width: 640px) {
  .guidance-heading { font-size: 1.8rem; line-height: 1.15; }
  .guidance-scene { padding: 28px 0 36px; }
  .guidance-layout { gap: 22px; }
  .experience-story p:not(.scene-kicker), .page-main p, .footer-brand p { text-align: justify; }
  .scene-frame { padding-top: 40px; padding-bottom: 40px; }
  .scene-time .scene-frame { padding-top: 28px; padding-bottom: 36px; gap: 32px; }
  .scene-proof .proof-frame { padding-top: 36px; padding-bottom: 36px; }
  .scene-services { padding: 40px 0; }
  .services-layout { gap: 30px; }
  .scene-method .scene-frame { padding-top: 40px; padding-bottom: 40px; }
  .human-copy { padding: 40px 20px; }
  .reviews-scene, .questions-scene { padding: 40px 0; }
  .final-scene { padding: 40px 0; }
  .section { padding: 40px 0; }
  .page-hero { min-height: 0; padding: 48px 0 40px; }
  .experience-story .scene-lead { margin-top: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .guidance-heading .fade-letter { opacity: 1; }
  .guidance-heading.fade-visible .fade-letter { animation: none; }
}
/* A gentle upward letter reveal with a gold accent. */
.guidance-heading { position: relative; padding-bottom: 18px; }
.guidance-heading::after { content: ''; position: absolute; left: 0; bottom: 0; width: 56px; height: 2px; background: var(--exp-gold); transform: scaleX(0); transform-origin: left; }
.guidance-heading .fade-letter { display: inline-block; opacity: 0; transform: translateY(7px); }
.guidance-heading.fade-visible .fade-letter { animation: guidance-letter-rise .75s cubic-bezier(.2,.7,.2,1) forwards; animation-delay: var(--letter-delay); }
.guidance-heading.fade-visible::after { animation: guidance-accent-in .8s ease .4s forwards; }
@keyframes guidance-letter-rise { to { opacity: 1; transform: translateY(0); } }
@keyframes guidance-accent-in { to { transform: scaleX(1); } }
@media (prefers-reduced-motion: reduce) {
  .guidance-heading .fade-letter { opacity: 1; transform: none; }
  .guidance-heading.fade-visible .fade-letter, .guidance-heading.fade-visible::after { animation: none; }
  .guidance-heading::after { transform: scaleX(1); }
}
/* Reserve header space for the mobile hero content. */
@media (max-width: 640px) {
  .scene-hero .hero-frame { padding-top: 120px; }
  .scene-hero .hero-statement { align-self: start; }
}
@media (max-width: 640px) {
  .scene-hero .hero-statement > .scene-kicker { display: none; }
}
/* Lower the mobile headline without moving the portrait. */
@media (max-width: 640px) {
  .scene-hero .hero-frame { padding-top: 160px; }
}
@media (max-width: 640px) {
  .scene-hero .hero-frame { padding-top: 185px; }
}
@media (max-width: 640px) {
  .scene-hero .hero-frame { padding-top: 205px; }
}
@media (max-width: 640px) {
  .scene-hero .hero-frame { padding-top: 230px; }
}
/* Desktop-only adjustments for the hero label and consultation photo. */
@media (min-width: 981px) {
  .scene-hero .hero-statement > .scene-kicker { display: none; }
  .guidance-photo { min-width: 0; width: 100%; }
  .guidance-photo img { width: 100%; max-width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; }
}
/* Bring the guidance section closer to the practice list on desktop. */
@media (min-width: 981px) {
  .scene-services { padding-bottom: 44px; }
  .guidance-scene { padding-top: 36px; }
}

/* Mobile motion retains the responsive layout and desktop presentation. */
@media (max-width: 640px) and (prefers-reduced-motion: no-preference) {
  .mobile-reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
  .mobile-reveal.mobile-in-view { opacity: 1; transform: none; }
  .scene-method .method-flow.mobile-motion li:nth-child(n) .method-step { opacity: .25; transform: translateX(-12px); transition: opacity .6s ease, transform .6s ease, border-color .4s ease, background .4s ease; }
  .scene-method .method-flow.mobile-motion li:nth-child(even) .method-step { transform: translateX(12px); }
  .scene-method .method-flow.mobile-motion li.mobile-step-visible .method-step,
  .scene-method .method-flow.mobile-motion li.is-current .method-step,
  .scene-method .method-flow.mobile-motion .method-step:focus-visible { opacity: 1; transform: none; }
}
