:root {
  --ink: #1b1714;
  --paper: #f3f0e9;
  --cream: #e8e1d6;
  --wine: #5c1f2b;
  --coral: #e9745d;
  --gold: #d7b786;
  --line: rgba(27, 23, 20, 0.16);
  --pad: clamp(22px, 4.5vw, 72px);
}

* { box-sizing: border-box; }
html { width: 100%; max-width: 100%; overflow-x: hidden; overflow-x: clip; scroll-behavior: smooth; }
body { width: 100%; max-width: 100%; margin: 0; overflow-x: hidden; overflow-x: clip; color: var(--ink); background: var(--paper); font-family: "DM Sans", sans-serif; -webkit-font-smoothing: antialiased; }
body.is-loading { overflow: hidden; }
main, section, footer { max-width: 100%; }
section[id] { scroll-margin-top: 90px; }
.page-progress { position: fixed; z-index: 200; top: 0; left: 0; width: 100%; height: 2px; transform-origin: left; pointer-events: none; }
.page-progress span { display: block; width: 100%; height: 100%; background: var(--coral); transform: scaleX(0); transform-origin: left; will-change: transform; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
.wrap { width: min(100%, 1600px); margin: 0 auto; padding-inline: var(--pad); }

.loader { position: fixed; inset: 0; z-index: 1000; display: grid; place-content: center; gap: 20px; color: #eee6dc; background: #171310; transition: visibility .7s, opacity .7s; }
.loader.is-done { opacity: 0; visibility: hidden; }
.loader__mark { position: relative; width: 46px; height: 46px; margin: auto; }
.loader__mark span { position: absolute; top: 0; width: 27px; height: 43px; border: 1px solid currentColor; border-radius: 50% 50% 45% 45%; }
.loader__mark span:first-child { left: 3px; transform: rotate(-14deg); }
.loader__mark span:last-child { right: 3px; transform: rotate(14deg); }
.loader p { margin: 0; color: rgba(255,255,255,.55); font-size: 10px; letter-spacing: .22em; text-transform: uppercase; }
.loader__track { width: 180px; height: 1px; overflow: hidden; background: rgba(255,255,255,.15); }
.loader__track i { display: block; width: 0; height: 100%; background: var(--gold); }

.site-header { position: fixed; z-index: 100; top: 0; left: 0; width: 100%; min-height: 92px; padding: 18px var(--pad); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; color: white; transition: color .35s, background .35s; }
.site-header::after { content: ""; position: absolute; left: var(--pad); right: var(--pad); bottom: 0; height: 1px; background: rgba(255,255,255,.22); transition: background .35s; }
.site-header.is-light { color: var(--ink); background: rgba(243,240,233,.88); backdrop-filter: blur(16px); }
.site-header.is-light::after { background: var(--line); }
.brand { justify-self: start; display: inline-flex; align-items: center; gap: 10px; font-family: Manrope, sans-serif; font-size: 20px; line-height: .85; letter-spacing: -.04em; }
.brand svg { width: 31px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.brand small { display: block; margin-top: 7px; font: 500 8px/1 "DM Sans"; letter-spacing: .2em; text-transform: uppercase; opacity: .68; }
.site-header nav { display: flex; gap: 38px; font-size: 12px; }
.site-header nav a { position: relative; }
.site-header nav a::after { content: ""; position: absolute; left: 0; bottom: -6px; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .35s; }
.site-header nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.header-cta { justify-self: end; display: flex; align-items: center; gap: 18px; padding: 12px 12px 12px 19px; border: 1px solid rgba(255,255,255,.45); border-radius: 999px; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; transition: background .3s, color .3s, border .3s; }
.site-header.is-light .header-cta { border-color: var(--line); }
.header-cta span { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; background: white; color: var(--ink); font-size: 13px; }
.site-header.is-light .header-cta span { color: white; background: var(--ink); }
.header-cta:hover { color: var(--ink); background: white; border-color: white; }
.menu-toggle { display: none; justify-self: end; width: 42px; height: 42px; padding: 0; border: 1px solid currentColor; border-radius: 50%; color: inherit; background: transparent; }
.menu-toggle span { display: block; width: 15px; height: 1px; margin: 4px auto; background: currentColor; transition: transform .3s; }
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(2.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-2.5px) rotate(-45deg); }
.mobile-menu { position: fixed; z-index: 90; inset: 0; padding: 120px var(--pad) 35px; display: none; flex-direction: column; justify-content: space-between; color: #efe7dc; background: var(--ink); opacity: 0; visibility: hidden; }
.mobile-menu nav { display: flex; flex-direction: column; }
.mobile-menu nav a { display: flex; align-items: baseline; gap: 18px; padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.15); font: 400 42px/1 Manrope, sans-serif; letter-spacing: -.05em; }
.mobile-menu > div { display: flex; flex-direction: column; gap: 8px; color: rgba(255,255,255,.55); font-size: 12px; }
.mobile-menu.is-open { opacity: 1; visibility: visible; }
body.menu-open { overflow: hidden; }
body.menu-open .site-header { color: white; background: var(--ink); }
body.menu-open .site-header::after { background: rgba(255,255,255,.16); }

.sequence { position: relative; overflow: hidden; }
.sequence canvas { position: absolute; inset: 0; display: block; width: 100%; height: 100%; transform: translateZ(0); backface-visibility: hidden; }
.hero { height: 100svh; min-height: 680px; color: #fff; background: #170e0a; }
.hero__veil { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15,8,5,.68), rgba(15,8,5,.12) 60%, rgba(15,8,5,.24)), linear-gradient(0deg, rgba(12,7,5,.5), transparent 42%); }
.hero__content { position: relative; z-index: 2; height: 100%; padding-top: clamp(145px, 20vh, 210px); }
.eyebrow { margin: 0 0 26px; font-size: 10px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; }
.hero__eyebrow { color: rgba(255,255,255,.65); }
.hero h1, .detail-copy h2, .contact h2 { margin: 0; font-family: Manrope, sans-serif; font-weight: 400; letter-spacing: -.07em; line-height: .86; }
.hero h1 { max-width: 950px; font-size: clamp(64px, min(11.3vw, 19vh), 174px); }
.hero h1 span { display: block; }
.hero h1 span:last-child { margin-left: .58em; color: #e8c59d; font-style: italic; font-weight: 400; }
.hero__footer { position: absolute; left: var(--pad); right: var(--pad); bottom: 52px; display: flex; align-items: flex-end; justify-content: space-between; }
.hero__footer > p { max-width: 380px; margin: 0; color: rgba(255,255,255,.68); font-size: 14px; line-height: 1.65; }
.round-link { display: grid; place-items: center; width: 84px; height: 84px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; transition: background .3s, color .3s; }
.round-link i { font-size: 15px; font-style: normal; }
.round-link:hover { color: var(--ink); background: white; }
.scroll-cue { position: absolute; z-index: 3; left: 50%; bottom: 27px; display: flex; align-items: center; gap: 10px; transform: translateX(-50%) rotate(-90deg) translateX(50%); transform-origin: center bottom; color: rgba(255,255,255,.5); font-size: 8px; letter-spacing: .18em; text-transform: uppercase; }
.scroll-cue i { display: block; width: 30px; height: 1px; background: currentColor; transform-origin: left; animation: pulse 1.8s infinite; }
.hero-chapter { position: absolute; z-index: 3; top: 50%; left: var(--pad); width: min(470px, calc(100% - var(--pad) * 2)); color: white; opacity: 0; transform: translateY(-35%); }
.hero-chapter small { display: block; margin-bottom: 18px; color: #e8c59d; font-size: 9px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.hero-chapter p { margin: 0; font: 400 clamp(34px, 4.1vw, 64px)/1.04 Manrope, sans-serif; letter-spacing: -.055em; }
.hero-timeline { position: absolute; z-index: 4; right: var(--pad); bottom: 48px; width: min(240px, 22vw); }
.hero-timeline i { display: block; height: 1px; overflow: hidden; background: rgba(255,255,255,.22); }
.hero-timeline b { display: block; width: 100%; height: 100%; background: #e8c59d; transform: scaleX(0); transform-origin: left; }
@keyframes pulse { 50% { transform: scaleX(.35); opacity: .4; } }

.trust-rail { overflow: hidden; color: #efe8df; background: var(--wine); }
.trust-rail__track { width: max-content; min-width: 115%; min-height: 72px; padding-left: var(--pad); display: flex; align-items: center; gap: clamp(45px, 6vw, 100px); white-space: nowrap; will-change: transform; }
.trust-rail__track > span { display: inline-flex; align-items: center; gap: 17px; font-size: 10px; letter-spacing: .13em; text-transform: uppercase; }
.trust-rail__track i { color: #e4ad92; font-size: 11px; font-style: normal; }

.section-tag { display: flex; align-items: center; gap: 13px; font-size: 10px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.section-tag::before { content: ""; width: 26px; height: 1px; background: currentColor; opacity: .48; }
.intro { padding: clamp(120px, 17vw, 260px) 0 clamp(110px, 14vw, 210px); }
.intro__statement { width: min(1100px, 92%); margin: 72px 0 75px; font: 400 clamp(42px, 6.3vw, 96px)/1.04 Manrope, sans-serif; letter-spacing: -.055em; }
.intro__details { width: min(540px, 50%); margin-left: auto; padding-top: 30px; border-top: 1px solid var(--line); display: flex; align-items: flex-start; gap: 60px; }
.intro__details p { flex: 1; margin: 0; color: rgba(27,23,20,.65); font-size: 14px; line-height: 1.7; }
.text-link { flex: 0 0 auto; padding-bottom: 7px; border-bottom: 1px solid var(--ink); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.text-link span { margin-left: 10px; }

.intent { overflow: hidden; padding: 0 0 clamp(120px, 15vw, 220px); }
.intent__top { margin-bottom: clamp(60px, 8vw, 110px); }
.intent__top .eyebrow { color: rgba(27,23,20,.5); }
.intent h2 { margin: 0; font: 400 clamp(63px, 10vw, 155px)/.92 Manrope, sans-serif; letter-spacing: -.075em; }
.intent__list { border-top: 1px solid var(--line); }
.intent__list a { position: relative; min-height: 118px; padding: 12px var(--pad); border-bottom: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px; overflow: hidden; transition: color .5s cubic-bezier(.2,.7,.2,1); }
.intent__list a::before { content: ""; position: absolute; z-index: -1; inset: 0; background: var(--wine); transform: scaleY(0); transform-origin: bottom; transition: transform .55s cubic-bezier(.16,1,.3,1); }
.intent__list a:hover { color: white; }
.intent__list a:hover::before { transform: scaleY(1); }
.intent__list p { margin: 0; font: 400 clamp(22px, 3vw, 45px)/1.05 Manrope, sans-serif; letter-spacing: -.045em; }
.intent__list i { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid currentColor; border-radius: 50%; font-size: 17px; font-style: normal; transition: transform .5s cubic-bezier(.16,1,.3,1), color .3s, background .3s; }
.intent__list a:hover i { color: var(--wine); background: white; transform: rotate(45deg); }

.care { position: relative; overflow: hidden; padding: clamp(100px, 12vw, 180px) 0; background: #d9cdc0; }
.care > .wrap { position: relative; z-index: 1; }
.care__marquee { position: absolute; z-index: 0; top: 48%; left: 0; width: max-content; color: rgba(70,42,34,.055); font: 500 clamp(120px, 18vw, 300px)/.8 Manrope, sans-serif; letter-spacing: -.08em; white-space: nowrap; transform: translate3d(-4%, -50%, 0); pointer-events: none; }
.care__heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 85px; }
.care h2, .numbers h2, .process h2 { margin: 0; font: 400 clamp(42px, 5.2vw, 80px)/1 Manrope, sans-serif; letter-spacing: -.055em; }
h2 em { font-family: Georgia, serif; font-weight: 400; }
.care__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; perspective: 1400px; }
.care-card { position: relative; min-height: 510px; padding: 25px; display: flex; flex-direction: column; overflow: hidden; background: var(--paper); border-radius: 3px; box-shadow: 0 24px 60px rgba(53,37,29,0); transform-origin: 50% 100%; will-change: transform, opacity; transition: box-shadow .4s ease, background .3s; }
.care-card::before { content: ""; position: absolute; inset: 0; border: 1px solid rgba(27,23,20,.08); border-radius: inherit; pointer-events: none; }
.care-card:hover { box-shadow: 0 24px 60px rgba(53,37,29,.14); }
.care-card--accent { color: white; background: var(--wine); }
.care-card__icon { display: grid; place-items: center; flex: 1; will-change: transform; }
.care-card__icon svg { width: 100px; fill: none; stroke: currentColor; stroke-width: 1; opacity: .5; }
.care-card > div:nth-last-of-type(1) { max-width: 340px; }
.care-card h3 { margin: 0 0 13px; font: 500 25px/1.1 Manrope, sans-serif; letter-spacing: -.04em; }
.care-card p { margin: 0; color: rgba(27,23,20,.6); font-size: 13px; line-height: 1.65; }
.care-card--accent p { color: rgba(255,255,255,.6); }
.care-card > a { align-self: flex-end; margin-top: -35px; display: grid; place-items: center; width: 43px; height: 43px; border: 1px solid currentColor; border-radius: 50%; font-size: 18px; transition: color .3s, background .3s, transform .3s; }
.care-card > a:hover { color: white; background: var(--ink); transform: rotate(45deg); }
.care-card--accent > a:hover { color: var(--wine); background: white; }

.detail-sequence { height: 100svh; min-height: 680px; color: var(--ink); background: #bdc5c6; }
.detail-sequence__wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(237,239,237,.28), transparent 56%), linear-gradient(0deg, rgba(232,233,229,.28), transparent 35%); }
.detail-copy { position: absolute; z-index: 2; top: 50%; left: var(--pad); transform: translateY(-50%); }
.detail-copy h2 { font-size: clamp(68px, 9.5vw, 148px); }
.detail-copy--two { left: auto; right: var(--pad); text-align: right; opacity: 0; }
.detail-copy--two > p:last-child { width: 310px; margin: 34px 0 0 auto; font-size: 13px; line-height: 1.6; }

.people { padding: clamp(120px, 15vw, 230px) 0; background: #ece6dc; }
.people__grid { display: grid; grid-template-columns: minmax(340px, .82fr) minmax(0, 1fr); gap: clamp(70px, 11vw, 180px); align-items: center; }
.people__portrait { position: relative; aspect-ratio: 4 / 5; margin: 0; overflow: hidden; background: #c9b6a3; border-radius: 2px; will-change: transform, opacity; }
.people__portrait::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(28,18,14,.45), transparent 35%); pointer-events: none; }
.people__portrait img { width: 100%; height: 112%; display: block; object-fit: cover; object-position: center top; transform: translateY(-5%); will-change: transform; }
.people__portrait figcaption { position: absolute; z-index: 1; left: 26px; right: 26px; bottom: 23px; color: rgba(255,255,255,.78); font-size: 9px; letter-spacing: .13em; text-transform: uppercase; }
.people__copy { max-width: 650px; }
.people__copy h2 { margin: 65px 0 42px; font: 400 clamp(58px, 7vw, 108px)/.9 Manrope, sans-serif; letter-spacing: -.07em; }
.people__copy > p { max-width: 510px; margin: 0; color: rgba(27,23,20,.64); font-size: 15px; line-height: 1.75; }
.people__promises { margin: 55px 0 42px; border-top: 1px solid var(--line); }
.people__promises p { margin: 0; padding: 17px 0; display: grid; grid-template-columns: minmax(130px, .72fr) 1fr; gap: 25px; border-bottom: 1px solid var(--line); }
.people__promises strong { font-size: 12px; font-weight: 500; }
.people__promises span { color: rgba(27,23,20,.52); font-size: 11px; line-height: 1.55; }

.numbers { padding: clamp(120px, 14vw, 210px) 0; color: white; background: var(--wine); }
.numbers__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, .65fr)); gap: 40px; align-items: end; }
.numbers__lead .section-tag { margin-bottom: 65px; color: rgba(255,255,255,.6); }
.numbers h2 em { color: #e9bea6; }
.metric { min-height: 210px; padding: 28px 0 0; border-top: 1px solid rgba(255,255,255,.3); }
.metric strong { font: 400 clamp(54px, 6vw, 88px)/1 Manrope, sans-serif; letter-spacing: -.07em; }
.metric sup { margin-left: 5px; color: #e9bea6; font-size: 17px; }
.metric span { display: block; max-width: 130px; margin-top: 52px; color: rgba(255,255,255,.58); font-size: 11px; line-height: 1.5; }

.process { padding: clamp(120px, 15vw, 220px) 0; }
.process__top { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 110px; }
.process__steps { margin-left: 33%; }
.step { min-height: 190px; padding: 32px 0; border-top: 1px solid var(--line); }
.step:last-child { border-bottom: 1px solid var(--line); }
.step div { display: grid; grid-template-columns: .7fr 1fr; gap: 50px; }
.step h3 { margin: 0; font: 500 26px/1.2 Manrope, sans-serif; letter-spacing: -.04em; }
.step p { max-width: 330px; margin: 0; color: rgba(27,23,20,.6); font-size: 13px; line-height: 1.7; }

.studio-view { position: relative; min-height: min(920px, 100svh); overflow: hidden; display: flex; align-items: flex-end; color: white; background: #211812; }
.studio-view__media { position: absolute; inset: 0; margin: 0; overflow: hidden; will-change: transform, opacity; }
.studio-view__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(19,12,9,.7), rgba(19,12,9,.1) 65%), linear-gradient(0deg, rgba(19,12,9,.6), transparent 52%); }
.studio-view__media img { width: 100%; height: 116%; display: block; object-fit: cover; object-position: center; transform: translateY(-8%); will-change: transform; }
.studio-view__copy { position: relative; z-index: 1; width: min(780px, calc(100% - var(--pad) * 2)); margin: 0 var(--pad) clamp(65px, 9vw, 130px); }
.studio-view__copy .eyebrow { color: #e8c59d; }
.studio-view__copy h2 { margin: 0; font: 400 clamp(58px, 8.2vw, 130px)/.9 Manrope, sans-serif; letter-spacing: -.07em; }
.studio-view__copy > p:not(.eyebrow) { max-width: 430px; margin: 38px 0 32px; color: rgba(255,255,255,.68); font-size: 13px; line-height: 1.7; }
.studio-view__copy > a { display: inline-flex; align-items: center; gap: 14px; padding-bottom: 8px; border-bottom: 1px solid rgba(255,255,255,.65); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }

.testimonial { overflow: hidden; padding: clamp(120px, 15vw, 220px) 0; color: #eee8de; background: #181412; }
.testimonial__inner { position: relative; }
.quote-mark { position: absolute; top: -105px; right: var(--pad); color: #b9856d; font: 260px/1 Georgia, serif; opacity: .16; }
blockquote { max-width: 1140px; margin: 0 auto; text-align: center; font: 400 clamp(40px, 6vw, 88px)/1.08 Manrope, sans-serif; letter-spacing: -.055em; }
.testimonial__author { margin-top: 70px; display: flex; justify-content: center; align-items: center; gap: 13px; }
.testimonial__author > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--ink); background: #d3a389; font-size: 11px; }
.testimonial__author p { margin: 0; font-size: 11px; line-height: 1.5; }
.testimonial__author strong, .testimonial__author small { display: block; }
.testimonial__author small { color: rgba(255,255,255,.45); }

.booking { padding: clamp(120px, 14vw, 210px) 0; background: #d9cdc0; }
.booking__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(480px, 1fr); gap: clamp(70px, 9vw, 150px); align-items: start; }
.booking__copy { align-self: center; }
.booking__copy h2, .faq h2 { margin: 65px 0 35px; font: 400 clamp(48px, 6vw, 90px)/.98 Manrope, sans-serif; letter-spacing: -.06em; }
.booking__copy > p { max-width: 440px; color: rgba(27,23,20,.62); font-size: 14px; line-height: 1.75; }
.booking__reassurance { margin-top: 65px; border-top: 1px solid rgba(27,23,20,.18); }
.booking__reassurance > div { padding: 17px 0; border-bottom: 1px solid rgba(27,23,20,.18); }
.booking__reassurance p { margin: 0; color: rgba(27,23,20,.55); font-size: 11px; line-height: 1.5; }
.booking__reassurance strong { display: block; margin-bottom: 2px; color: var(--ink); font-size: 12px; font-weight: 500; }
.booking-card { position: relative; min-height: 520px; padding: clamp(35px, 5vw, 70px); overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; color: #eee7dd; background: var(--wine); box-shadow: 0 30px 80px rgba(65,27,33,.16); }
.booking-card::before { content: ""; position: absolute; top: -25%; right: -20%; width: 65%; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; box-shadow: 0 0 0 55px rgba(255,255,255,.025), 0 0 0 110px rgba(255,255,255,.018); }
.booking-card__pulse { position: absolute; top: 30px; right: 30px; width: 9px; height: 9px; border-radius: 50%; background: #e7b99f; box-shadow: 0 0 0 0 rgba(231,185,159,.4); animation: availability 2.2s infinite; }
@keyframes availability { 70% { box-shadow: 0 0 0 12px rgba(231,185,159,0); } 100% { box-shadow: 0 0 0 0 rgba(231,185,159,0); } }
.booking-card > p { margin: 0 0 20px; color: rgba(255,255,255,.52); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.booking-card h3 { margin: 0; font: 400 clamp(35px, 4vw, 60px)/1 Manrope, sans-serif; letter-spacing: -.055em; }
.booking-card ul { margin: 38px 0; padding: 0; list-style: none; }
.booking-card li { position: relative; margin: 9px 0; padding-left: 18px; color: rgba(255,255,255,.62); font-size: 11px; }
.booking-card li::before { content: "✓"; position: absolute; left: 0; color: #e7b99f; }
.booking-open { border: 0; cursor: pointer; }

.booking-modal { width: min(1180px, calc(100% - 38px)); max-width: none; max-height: none; padding: 0; border: 0; overflow: visible; color: var(--ink); background: transparent; }
.booking-modal::backdrop { background: rgba(18,13,11,.76); backdrop-filter: blur(9px); }
.booking-modal__surface { position: relative; height: min(780px, calc(100dvh - 48px)); min-height: 610px; display: grid; grid-template-columns: minmax(350px, .76fr) minmax(500px, 1fr); overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 4px; background: var(--paper); box-shadow: 0 40px 130px rgba(0,0,0,.42); transform-origin: 50% 100%; will-change: transform, opacity; }
.booking-modal__close { position: absolute; z-index: 4; top: 20px; right: 20px; width: 39px; height: 39px; padding: 0; border: 1px solid rgba(27,23,20,.18); border-radius: 50%; color: var(--ink); background: rgba(243,240,233,.8); font: 300 22px/1 Manrope, sans-serif; cursor: pointer; transition: color .3s, background .3s, transform .3s; }
.booking-modal__close:hover { color: white; background: var(--wine); transform: rotate(90deg); }
.booking-modal__aside { position: relative; padding: clamp(45px, 5vw, 75px); display: flex; flex-direction: column; justify-content: center; overflow: hidden; color: white; background: #181312; }
.booking-modal__aside::before { content: ""; position: absolute; top: -20%; right: -42%; width: 105%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 38% 35%, #f4d1b8 0 3%, #b7675a 28%, #682432 63%, rgba(24,19,18,0) 73%); opacity: .8; filter: saturate(.72); animation: modal-orb 9s ease-in-out infinite alternate; }
.booking-modal__aside::after { content: ""; position: absolute; left: 13%; bottom: -25%; width: 68%; aspect-ratio: .82; border: 1px solid rgba(255,255,255,.1); border-radius: 50% 50% 43% 43%; transform: rotate(-13deg); }
@keyframes modal-orb { from { transform: translate3d(-3%, -2%, 0) scale(.95); } to { transform: translate3d(4%, 4%, 0) scale(1.08); } }
.booking-modal__aside > * { position: relative; z-index: 1; }
.booking-modal__aside .eyebrow { color: #e7b99f; }
.booking-modal__aside h2 { margin: 20px 0 30px; font: 400 clamp(48px, 5vw, 76px)/.92 Manrope, sans-serif; letter-spacing: -.065em; text-wrap: balance; }
.booking-modal__aside h2 em { color: #e7b99f; }
.booking-modal__aside > p:not(.eyebrow) { max-width: 340px; margin: 0; color: rgba(255,255,255,.58); font-size: 12px; line-height: 1.7; }
.booking-modal__aside > div { position: absolute; z-index: 1; left: clamp(45px, 5vw, 75px); bottom: 40px; display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.54); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.booking-modal__aside > div span { width: 7px; height: 7px; border-radius: 50%; background: #7fc18f; box-shadow: 0 0 0 5px rgba(127,193,143,.11); }
.booking-modal.is-auto .booking-modal__aside { background: #201516; }
.booking-modal.is-auto .booking-modal__aside .eyebrow::before { content: "For you · "; color: rgba(255,255,255,.42); }
.form-shell { position: relative; min-height: 760px; padding: clamp(28px, 4vw, 56px); overflow: hidden; color: var(--ink); background: var(--paper); border-radius: 4px; box-shadow: 0 30px 80px rgba(46,31,23,.1); }
.booking-modal .form-shell { min-height: 0; height: 100%; padding: clamp(38px, 4.5vw, 68px); padding-top: clamp(55px, 6vw, 86px); overflow-y: auto; border-radius: 0; box-shadow: none; }
.form-progress { height: 2px; margin: calc(clamp(28px, 4vw, 56px) * -1) calc(clamp(28px, 4vw, 56px) * -1) 42px; background: rgba(27,23,20,.08); }
.booking-modal .form-progress { position: absolute; top: 0; left: 0; width: 100%; margin: 0; }
.form-progress span { display: block; width: 8%; height: 100%; background: var(--wine); transition: width .35s ease; }
.honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-heading { margin-bottom: 44px; display: flex; align-items: center; justify-content: space-between; }
.form-heading p { margin: 0; font: 500 23px/1.1 Manrope, sans-serif; letter-spacing: -.04em; }
.form-heading > span { display: flex; align-items: center; gap: 7px; color: rgba(27,23,20,.5); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.form-heading > span::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #5f9871; box-shadow: 0 0 0 4px rgba(95,152,113,.12); }
.form-step { display: none; }
.form-step.is-active { display: block; }
.field-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
.field { display: block; margin-bottom: 24px; }
.field > span, .contact-choice legend { display: block; margin-bottom: 10px; color: rgba(27,23,20,.56); font-size: 9px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.field > span b { margin-left: 6px; color: rgba(27,23,20,.35); font: inherit; }
.field input, .field select, .field textarea { width: 100%; min-width: 0; padding: 14px 0; border: 0; border-bottom: 1px solid rgba(27,23,20,.22); border-radius: 0; outline: 0; color: var(--ink); background: transparent; font: 400 14px/1.4 "DM Sans", sans-serif; transition: border-color .25s; }
.field select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%); background-position: calc(100% - 6px) 50%, 100% 50%; background-size: 6px 6px, 6px 6px; background-repeat: no-repeat; }
.field textarea { resize: vertical; min-height: 78px; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--wine); }
.field.is-invalid input, .field.is-invalid select, .field.is-invalid textarea { border-color: #a93434; }
.field-error, .consent-error { display: none; margin-top: 7px; color: #9a3131; font-size: 10px; }
.field.is-invalid .field-error, .consent.is-invalid + .consent-error { display: block; }
.contact-choice { margin: 2px 0 26px; padding: 0; border: 0; }
.contact-choice label { display: inline-block; margin-right: 8px; cursor: pointer; }
.contact-choice input { position: absolute; opacity: 0; pointer-events: none; }
.contact-choice label span { display: inline-block; padding: 10px 15px; border: 1px solid rgba(27,23,20,.18); border-radius: 999px; font-size: 11px; transition: color .2s, background .2s, border-color .2s; }
.contact-choice input:checked + span { color: white; border-color: var(--wine); background: var(--wine); }
.contact-choice input:focus-visible + span { outline: 2px solid var(--wine); outline-offset: 2px; }
.consent { display: grid; grid-template-columns: 16px 1fr; align-items: start; gap: 11px; color: rgba(27,23,20,.55); font-size: 10px; line-height: 1.5; cursor: pointer; }
.consent input { width: 15px; height: 15px; margin: 0; accent-color: var(--wine); }
.consent button { padding: 0; border: 0; border-bottom: 1px solid currentColor; color: inherit; background: none; font: inherit; cursor: pointer; }
.submit-button { width: 100%; margin-top: 28px; padding: 10px 11px 10px 22px; border: 0; border-radius: 999px; display: flex; align-items: center; justify-content: space-between; color: white; background: var(--ink); font: 500 10px/1 "DM Sans", sans-serif; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; transition: transform .25s, background .25s; }
.submit-button:hover { background: var(--wine); transform: translateY(-2px); }
.submit-button:disabled { cursor: wait; opacity: .7; transform: none; }
.submit-button i { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: var(--ink); background: white; font-size: 16px; font-style: normal; }
.form-microcopy { margin: 16px 0 0; color: rgba(27,23,20,.42); font-size: 9px; text-align: center; }
.form-actions { margin-top: 28px; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 18px; }
.form-actions .submit-button { margin-top: 0; }
.form-back { padding: 12px 4px; border: 0; color: rgba(27,23,20,.55); background: transparent; font: 500 9px/1 "DM Sans", sans-serif; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.form-status { min-height: 16px; margin: 12px 0 0; color: #9a3131; font-size: 10px; text-align: center; }
.form-success { position: absolute; inset: 0; padding: 50px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: var(--paper); opacity: 0; visibility: hidden; }
.form-success.is-visible { opacity: 1; visibility: visible; }
.success-icon { display: grid; place-items: center; width: 65px; height: 65px; margin-bottom: 32px; border-radius: 50%; color: white; background: var(--wine); font-size: 23px; }
.form-success > p:first-of-type { margin: 0 0 15px; color: rgba(27,23,20,.5); font-size: 9px; letter-spacing: .15em; text-transform: uppercase; }
.form-success h3 { margin: 0; font: 400 clamp(38px, 4vw, 62px)/1 Manrope, sans-serif; letter-spacing: -.055em; }
.form-success h3 + p { max-width: 360px; margin: 25px auto 40px; color: rgba(27,23,20,.58); font-size: 13px; line-height: 1.7; }
.form-success button, .dialog-action { padding: 13px 22px; border: 1px solid var(--ink); border-radius: 999px; color: var(--ink); background: transparent; font: 500 9px/1 "DM Sans", sans-serif; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }

.faq { padding: clamp(120px, 14vw, 210px) 0; }
.faq__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(460px, 1fr); gap: clamp(70px, 10vw, 170px); }
.faq h2 { margin-bottom: 0; }
.accordion { border-top: 1px solid var(--line); }
.accordion__item { border-bottom: 1px solid var(--line); }
.accordion__item h3 { margin: 0; }
.accordion__item button { width: 100%; padding: 29px 0; border: 0; display: flex; align-items: center; justify-content: space-between; gap: 25px; color: var(--ink); background: transparent; font: 500 17px/1.3 Manrope, sans-serif; text-align: left; cursor: pointer; }
.accordion__item button i { position: relative; flex: 0 0 28px; width: 28px; height: 28px; border: 1px solid var(--line); border-radius: 50%; }
.accordion__item button i::before, .accordion__item button i::after { content: ""; position: absolute; top: 50%; left: 50%; width: 9px; height: 1px; background: currentColor; transform: translate(-50%, -50%); transition: transform .3s; }
.accordion__item button i::after { transform: translate(-50%, -50%) rotate(90deg); }
.accordion__item button[aria-expanded="true"] i::after { transform: translate(-50%, -50%) rotate(0); }
.accordion__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s ease; }
.accordion__panel > div { overflow: hidden; }
.accordion__panel p { max-width: 600px; margin: 0; padding: 0 45px 28px 0; color: rgba(27,23,20,.58); font-size: 13px; line-height: 1.75; }
.accordion__item.is-open .accordion__panel { grid-template-rows: 1fr; }

.contact { position: relative; overflow: hidden; min-height: 820px; display: grid; place-items: center; background: #e8ded2; }
.contact__orb { position: absolute; width: min(55vw, 760px); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 38% 35%, #fbf5ed 0 4%, #e9c0a7 32%, #b46353 68%, #642534 100%); filter: saturate(.75); box-shadow: inset -35px -30px 80px rgba(43,13,18,.35), 0 50px 100px rgba(60,29,23,.2); }
.contact__inner { position: relative; z-index: 2; text-align: center; color: white; }
.contact h2 { font-size: clamp(84px, 12vw, 182px); text-shadow: 0 2px 30px rgba(54,22,18,.12); }
.contact h2 em { color: #331b1d; }
.contact__actions { margin-top: 60px; display: flex; align-items: center; justify-content: center; gap: 28px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.primary-button { display: inline-flex; align-items: center; gap: 40px; padding: 10px 11px 10px 23px; border-radius: 999px; color: white; background: var(--ink); }
.primary-button span { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 50%; color: var(--ink); background: white; font-size: 16px; }

footer { padding: 80px 0 28px; color: #eae3d8; background: var(--ink); }
.footer__top { display: grid; grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)); gap: 50px; padding-bottom: 80px; }
.brand--footer { align-self: start; }
.footer__top > div small { display: block; margin-bottom: 22px; color: rgba(255,255,255,.38); font-size: 9px; letter-spacing: .16em; text-transform: uppercase; }
.footer__top > div p { margin: 0; color: rgba(255,255,255,.68); font-size: 12px; line-height: 1.8; }
.footer__bottom { padding-top: 25px; border-top: 1px solid rgba(255,255,255,.14); display: flex; justify-content: space-between; color: rgba(255,255,255,.35); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.footer__bottom button { padding: 0; border: 0; color: inherit; background: transparent; font: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; }
.privacy-dialog { width: min(610px, calc(100% - 36px)); padding: clamp(35px, 5vw, 65px); border: 0; border-radius: 4px; color: var(--ink); background: var(--paper); box-shadow: 0 30px 100px rgba(0,0,0,.3); }
.privacy-dialog::backdrop { background: rgba(18,13,11,.72); backdrop-filter: blur(5px); }
.privacy-dialog h2 { margin: 0 0 25px; font: 400 clamp(35px, 5vw, 58px)/1 Manrope, sans-serif; letter-spacing: -.055em; }
.privacy-dialog > p:not(.eyebrow) { margin: 0 0 35px; color: rgba(27,23,20,.62); font-size: 13px; line-height: 1.75; }
.dialog-close { position: absolute; top: 18px; right: 18px; width: 35px; height: 35px; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); background: transparent; font-size: 20px; cursor: pointer; }
.mobile-book { display: none; }

.line-wrap { overflow: hidden; }
.line-inner { display: block; will-change: transform; }
.reveal { will-change: transform, opacity; }

@media (max-width: 900px) {
  .site-header { min-height: 75px; grid-template-columns: 1fr auto auto; gap: 10px; }
  .site-header nav { display: none; }
  .menu-toggle { display: block; }
  .mobile-menu { display: flex; }
  .hero { min-height: 620px; }
  .hero__content { padding-top: 155px; }
  .hero h1 span:last-child { margin-left: 0; }
  .scroll-cue { display: none; }
  .intro__statement { width: 100%; }
  .intro__details { width: 70%; }
  .care__heading, .process__top { display: block; }
  .care__heading .section-tag, .process__top .section-tag { margin-bottom: 50px; }
  .care__grid { grid-template-columns: 1fr; }
  .care-card { min-height: 370px; }
  .people__grid { grid-template-columns: minmax(280px, .8fr) 1fr; gap: 55px; }
  .people__copy h2 { margin-top: 48px; font-size: 65px; }
  .people__promises p { display: block; }
  .people__promises span { display: block; margin-top: 5px; }
  .numbers__grid { grid-template-columns: repeat(3, 1fr); }
  .numbers__lead { grid-column: 1 / -1; margin-bottom: 50px; }
  .process__steps { margin-left: 15%; }
  .booking__grid, .faq__grid { grid-template-columns: 1fr; }
  .booking__copy { position: static; }
  .booking__copy h2 { margin-top: 50px; }
  .booking__reassurance { display: grid; grid-template-columns: repeat(3, 1fr); }
  .booking__reassurance > div { border-right: 1px solid rgba(27,23,20,.18); padding-right: 14px; }
  .booking__reassurance > div:last-child { border-right: 0; }
  .booking-modal { width: min(720px, calc(100% - 28px)); }
  .booking-modal__surface { height: min(900px, calc(100dvh - 28px)); grid-template-columns: 1fr; }
  .booking-modal__aside { min-height: 230px; padding: 35px; justify-content: flex-end; }
  .booking-modal__aside .eyebrow { display: none; }
  .booking-modal__aside h2 { margin: 0 0 16px; font-size: 48px; }
  .booking-modal__aside > p:not(.eyebrow) { max-width: 480px; }
  .booking-modal__aside > div { display: none; }
  .booking-modal .form-shell { height: auto; min-height: 570px; padding: 48px 35px 35px; }
  .footer__top { grid-template-columns: 2fr 1fr 1fr; }
  .footer__top > div:last-child { display: none; }
}

@media (max-width: 600px) {
  :root { --pad: 20px; }
  .brand { font-size: 17px; }
  .brand svg { width: 27px; }
  .header-cta { padding: 10px; }
  .header-cta > span { width: 23px; height: 23px; }
  .header-cta { display: none; }
  .hero h1 { font-size: clamp(58px, 20vw, 88px); }
  .hero__footer { bottom: 30px; }
  .hero__footer > p { max-width: 225px; font-size: 12px; }
  .round-link { width: 67px; height: 67px; }
  .hero-chapter { top: 43%; }
  .hero-chapter p { font-size: 35px; }
  .hero-timeline { right: 20px; bottom: 22px; width: 38vw; }
  .trust-rail__track { min-height: 58px; gap: 40px; }
  .intro__statement { margin: 50px 0; font-size: 39px; }
  .intro__details { width: 100%; margin: 0; display: block; }
  .intro__details .text-link { display: inline-block; margin-top: 30px; }
  .intent h2 { font-size: 62px; }
  .intent__list a { min-height: 105px; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
  .intent__list p { font-size: 22px; }
  .intent__list i { width: 37px; height: 37px; }
  .care__heading { margin-bottom: 50px; }
  .care h2, .numbers h2, .process h2 { font-size: 42px; }
  .care-card { min-height: 390px; }
  .detail-copy { top: 25%; }
  .detail-copy--two { top: auto; right: 20px; bottom: 9%; transform: none; }
  .detail-copy h2 { font-size: 63px; }
  .people { padding-block: 100px; }
  .people__grid { display: flex; flex-direction: column; gap: 62px; }
  .people__portrait { width: 100%; }
  .people__copy h2 { margin: 45px 0 30px; font-size: 62px; }
  .people__copy > p { font-size: 13px; }
  .studio-view { min-height: 760px; }
  .studio-view__media img { object-position: 58% center; }
  .studio-view__copy { margin-bottom: 55px; }
  .studio-view__copy h2 { font-size: 56px; }
  .numbers__grid { grid-template-columns: 1fr; }
  .metric { min-height: auto; display: grid; grid-template-columns: auto 1fr; align-items: baseline; }
  .metric span { grid-column: 1 / -1; margin-top: 20px; }
  .process__top { margin-bottom: 60px; }
  .process__steps { margin-left: 0; }
  .step div { display: block; }
  .step p { margin-top: 18px; }
  .testimonial { padding-block: 130px; }
  .quote-mark { top: -80px; font-size: 180px; }
  .contact { min-height: 680px; }
  .contact__orb { width: 105vw; }
  .contact h2 { font-size: 76px; }
  .contact__actions { flex-direction: column; }
  .booking__reassurance { display: block; }
  .booking__reassurance > div { border-right: 0; }
  .form-shell { min-height: 790px; padding: 28px 20px; }
  .form-progress { margin: -28px -20px 35px; }
  .form-heading { display: block; }
  .form-heading > span { margin-top: 12px; }
  .field-grid { grid-template-columns: 1fr; gap: 0; }
  .contact-choice label { margin: 0 3px 7px 0; }
  .contact-choice label span { padding-inline: 11px; }
  .form-success { padding: 30px; }
  .booking-card { min-height: 460px; }
  .booking-modal { width: 100%; margin: auto 0 0; }
  .booking-modal__surface { height: 94dvh; min-height: 0; border-radius: 16px 16px 0 0; display: block; overflow-y: auto; }
  .booking-modal__aside { min-height: 185px; padding: 30px 24px 25px; }
  .booking-modal__aside h2 { font-size: 39px; }
  .booking-modal__aside > p:not(.eyebrow) { font-size: 11px; }
  .booking-modal .form-shell { min-height: 580px; height: auto; padding: 42px 22px 28px; overflow: visible; }
  .booking-modal__close { top: 13px; right: 13px; color: white; border-color: rgba(255,255,255,.35); background: rgba(92,31,43,.7); }
  .form-heading { margin-bottom: 32px; }
  .form-actions { grid-template-columns: 60px minmax(0, 1fr); gap: 8px; }
  .faq__grid { gap: 60px; }
  .accordion__item button { padding-block: 24px; font-size: 15px; }
  .footer__top { grid-template-columns: 1fr 1fr; }
  .brand--footer { grid-column: 1 / -1; margin-bottom: 35px; }
  .footer__bottom span:nth-child(2) { display: none; }
  .mobile-book { position: fixed; z-index: 80; right: 14px; bottom: 14px; padding: 12px 12px 12px 18px; display: flex; align-items: center; gap: 18px; border-radius: 999px; color: white; background: var(--wine); box-shadow: 0 12px 35px rgba(40,18,21,.28); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; transition: opacity .25s, transform .25s; }
  .mobile-book span { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; color: var(--wine); background: white; font-size: 13px; }
  .mobile-book.is-hidden { opacity: 0; transform: translateY(15px); pointer-events: none; }
}

@media (max-height: 720px) and (min-width: 601px) {
  .hero, .detail-sequence { min-height: 0; }
  .hero__content { padding-top: clamp(105px, 23vh, 145px); }
  .hero h1 { max-width: 780px; font-size: clamp(62px, 17vh, 106px); }
  .hero__footer { bottom: 24px; }
  .hero__footer > p { max-width: 340px; font-size: 12px; }
  .round-link { width: 65px; height: 65px; }
  .scroll-cue { display: none; }
  .detail-copy h2 { font-size: clamp(58px, 17vh, 105px); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* ══════════════════════════════════════════════════════════════════════════
   Award-style enhancement layer — additive only, reduced-motion + touch safe.
   To revert: delete this block and the matching one at the end of script.js.
   ══════════════════════════════════════════════════════════════════════════ */

/* Loader numeric readout */
.loader__pct { margin-top: 2px; font: 400 11px/1 Manrope, sans-serif; letter-spacing: .3em; color: rgba(255,255,255,.42); }
.loader__pct::after { content: "%"; margin-left: 3px; opacity: .55; }

/* Custom cursor (desktop, fine pointer only — enabled via body.has-cursor from JS) */
.cursor { position: fixed; top: 0; left: 0; z-index: 1001; display: none; visibility: hidden; opacity: 0; pointer-events: none; mix-blend-mode: difference; }
body.has-cursor .cursor { display: block; }
body.has-cursor, body.has-cursor * { cursor: none; }
body.has-cursor dialog[open],
body.has-cursor dialog[open] * { cursor: auto; }
body.cursor-label .cursor { mix-blend-mode: normal; }
.cursor__dot { position: absolute; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: #fff; transition: opacity .2s; will-change: transform; }
.cursor__ring { position: absolute; width: 42px; height: 42px; margin: -21px 0 0 -21px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; will-change: transform; transition: width .32s cubic-bezier(.16,1,.3,1), height .32s cubic-bezier(.16,1,.3,1), margin .32s cubic-bezier(.16,1,.3,1), background-color .3s, border-color .3s; }
.cursor__ring b { font: 600 8px/1 "DM Sans", sans-serif; font-style: normal; letter-spacing: .14em; text-transform: uppercase; color: var(--ink); opacity: 0; transform: scale(.5); transition: opacity .25s, transform .25s; }
body.cursor-hover .cursor__ring { width: 54px; height: 54px; margin: -27px 0 0 -27px; background: rgba(255,255,255,.14); }
body.cursor-down .cursor__ring { width: 30px; height: 30px; margin: -15px 0 0 -15px; }
body.cursor-label .cursor__ring { width: 66px; height: 66px; margin: -33px 0 0 -33px; background: #fff; border-color: #fff; }
body.cursor-label .cursor__ring b { opacity: 1; transform: scale(1); }
body.cursor-label .cursor__dot { opacity: 0; }

/* Cinematic vignette + film grain over the whole page */
.vignette { position: fixed; inset: 0; z-index: 5; pointer-events: none; box-shadow: inset 0 0 150px rgba(18,11,7,.14); }
.grain { position: fixed; inset: -120%; z-index: 6; pointer-events: none; opacity: .045; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); background-size: 260px 260px; animation: grain 5.6s steps(5) infinite; }
@keyframes grain {
  0%, 100% { transform: translate(0, 0); }
  10% { transform: translate(-4%, -9%); }
  20% { transform: translate(-13%, 4%); }
  30% { transform: translate(6%, -22%); }
  40% { transform: translate(-5%, 22%); }
  50% { transform: translate(-13%, 9%); }
  60% { transform: translate(13%, 0); }
  70% { transform: translate(0, 13%); }
  80% { transform: translate(4%, 30%); }
  90% { transform: translate(-9%, 9%); }
}

/* Aurora glow behind the hero headline */
.hero__aurora { position: absolute; inset: 0; z-index: 1; overflow: hidden; pointer-events: none; mix-blend-mode: screen; }
.hero__aurora::before, .hero__aurora::after { content: ""; position: absolute; border-radius: 50%; filter: blur(70px); }
.hero__aurora::before { width: 44vw; height: 44vw; left: -6vw; top: 6vh; background: radial-gradient(circle, rgba(233,116,93,.5), transparent 68%); animation: aurora-a 15s ease-in-out infinite alternate; }
.hero__aurora::after { width: 38vw; height: 38vw; right: -5vw; bottom: -8vh; background: radial-gradient(circle, rgba(215,183,134,.46), transparent 70%); animation: aurora-b 19s ease-in-out infinite alternate; }
@keyframes aurora-a { to { transform: translate3d(10%, 7%, 0) scale(1.14); } }
@keyframes aurora-b { to { transform: translate3d(-9%, -5%, 0) scale(1.1); } }

/* Pointer spotlight on care cards */
.care-card { --spot-x: 50%; --spot-y: 0%; }
.care-card::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(220px circle at var(--spot-x) var(--spot-y), rgba(233,116,93,.16), transparent 72%); opacity: 0; transition: opacity .4s ease; pointer-events: none; }
.care-card:hover::after { opacity: 1; }
.care-card--accent::after { background: radial-gradient(220px circle at var(--spot-x) var(--spot-y), rgba(255,255,255,.16), transparent 72%); }

/* Scrubbed word-fill statement */
.intro__statement .wfill { will-change: opacity; }

@media (max-width: 900px) {
  .hero__aurora { display: none; }
  .grain { opacity: .035; }
}
