@font-face {
  font-family: "Great Vibes Local";
  src: url("/assets/fonts/GreatVibes-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  --bg: #0b0908;
  --bg-soft: #15100d;
  --surface: rgba(16, 12, 10, 0.76);
  --gold: #c69b6a;
  --gold-bright: #e3bd8a;
  --gold-muted: #836344;
  --text: #f1e9dd;
  --text-muted: #cbbdab;
  --blue: #2868b8;
  --blue-deep: #123b78;
  --blue-glow: rgba(40, 104, 184, .18);
  --line: rgba(198, 155, 106, 0.58);
  --container: 1200px;
  --display: "Cormorant Garamond", Georgia, serif;
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
  --script: "Great Vibes Local", cursive;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--text);
  background: var(--bg) url("/assets/site-background.png") center top / cover fixed;
  font-family: var(--serif);
  font-size: clamp(1.05rem, 0.98rem + 0.22vw, 1.25rem);
  line-height: 1.55;
  overflow-x: hidden;
}
body::before {
  position: fixed;
  inset: 0;
  z-index: -1;
  content: "";
  background: linear-gradient(180deg, rgba(7, 6, 5, 0.18), rgba(7, 6, 5, 0.82));
  pointer-events: none;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--gold-bright); outline-offset: 4px; }
.container { width: min(calc(100% - 2rem), var(--container)); margin-inline: auto; }
.narrow { max-width: 930px; }
.centered { text-align: center; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; clip: rect(0, 0, 0, 0); overflow: hidden; white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 1rem; left: 1rem; z-index: 100; padding: .7rem 1rem; color: #080604; background: var(--gold-bright); transform: translateY(-160%); }
.skip-link:focus { transform: none; }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 50;
  border-bottom: 1px solid rgba(198, 155, 106, .18);
  background: rgba(8, 6, 5, .78);
  backdrop-filter: blur(16px);
}
.header-inner, .footer-inner { display: flex; align-items: center; justify-content: space-between; min-height: 72px; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .65rem; color: var(--gold-bright); text-decoration: none; }
.brand-mark { display: block; width: 38px; height: 38px; object-fit: contain; }
.brand-name { font-family: var(--script); font-size: 1.8rem; font-weight: 400; line-height: 1; letter-spacing: .01em; }
.site-nav { display: flex; align-items: center; gap: clamp(1rem, 2.5vw, 2.5rem); font-family: var(--sans); font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; }
.site-nav a { color: var(--text-muted); text-decoration: none; transition: color .2s ease; }
.site-nav a:hover { color: var(--gold-bright); }
.nav-cta { padding: .65rem 1.15rem; border: 1px solid var(--line); border-radius: 999px; }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 11px; border: 0; color: var(--gold); background: transparent; }
.menu-toggle > span:not(.sr-only) { display: block; height: 1px; margin: 5px 0; background: currentColor; }

.section { position: relative; display: grid; min-height: min(900px, 100svh); padding: clamp(6.5rem, 11vw, 10rem) 0; place-items: center; isolation: isolate; }
.section:not(.hero)::before {
  position: absolute;
  top: 0;
  left: 50%;
  width: min(65vw, 700px);
  height: 1px;
  content: "";
  background: linear-gradient(90deg, transparent, var(--gold-muted), transparent);
  transform: translateX(-50%);
}
.section:not(.hero)::after { position: absolute; top: -.6rem; left: 50%; color: var(--gold); content: "✦"; font-size: .8rem; transform: translateX(-50%); }
.section-frame { position: absolute; inset: 5.6rem clamp(.8rem, 2vw, 2rem) 1.2rem; z-index: -1; border: 1px solid rgba(198, 155, 106, .48); border-radius: 28px; pointer-events: none; }
.hero { --hero-person-y: 0px; --hero-branches-y: 0px; min-height: 100svh; padding-top: 8rem; overflow: hidden; }
.hero-grid, .split-grid, .feature-grid, .contact-grid { display: grid; align-items: center; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); }
.hero-grid { grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr); gap: clamp(1rem, 3vw, 3rem); }
.hero-copy { z-index: 2; min-width: 0; text-align: center; }
.hero h1, h2 { margin: 0; color: var(--gold-bright); font-family: var(--display); font-weight: 400; line-height: .96; letter-spacing: .025em; text-transform: uppercase; text-wrap: balance; }
.hero h1 { font-size: clamp(3.25rem, 4.85vw, 5.35rem); letter-spacing: .018em; white-space: nowrap; }
h2 { font-size: clamp(2.85rem, 5.55vw, 5.6rem); }
.eyebrow { margin: 0 0 1.5rem; color: var(--gold); font-family: var(--sans); font-size: clamp(.66rem, .6rem + .25vw, .86rem); letter-spacing: .32em; text-transform: uppercase; }
.eyebrow span { margin-inline: .45em; }
.script-title { margin: .35rem 0 1.1rem; color: var(--gold-bright); font-family: var(--script); font-size: clamp(2.6rem, 5vw, 5.3rem); font-weight: 400; line-height: 1.08; }
.hero-lead, .section-note { margin: 1.5rem auto; font-size: clamp(1.25rem, 1rem + .8vw, 2rem); line-height: 1.25; text-wrap: balance; }
.service-line { margin: 1.5rem 0 2rem; color: var(--gold); letter-spacing: .04em; }
.service-line i { margin-inline: .45rem; font-size: .65em; font-style: normal; }
.hero-visual { position: relative; align-self: end; min-height: min(78vh, 780px); }
.hero-visual::after { position: absolute; right: -8%; bottom: -2.1rem; left: -8%; z-index: 2; height: clamp(7rem, 18vh, 12rem); content: ""; background: linear-gradient(180deg, transparent, rgba(11, 9, 8, .82) 72%, var(--bg)); pointer-events: none; }
.hero-person-clip { position: absolute; inset: 0; z-index: 1; overflow: hidden; -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 68%, rgba(0, 0, 0, .82) 78%, transparent 98%); mask-image: linear-gradient(180deg, #000 0%, #000 68%, rgba(0, 0, 0, .82) 78%, transparent 98%); }
.hero-visual .hero-person { position: absolute; right: 0; bottom: -2rem; width: auto; max-width: 100%; height: auto; max-height: calc(100svh - 96px); object-fit: contain; object-position: right bottom; filter: drop-shadow(0 0 45px rgba(173, 91, 26, .22)); transform: translate3d(0, var(--hero-person-y), 0); will-change: transform; }
.hero-branches { position: absolute; right: -2%; bottom: 0; z-index: 4; width: 104%; max-width: none; height: auto; opacity: .62; pointer-events: none; transform: translate3d(0, var(--hero-branches-y), 0); transform-origin: center bottom; will-change: transform; -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 62%, rgba(0, 0, 0, .72) 78%, transparent 100%); mask-image: linear-gradient(180deg, #000 0%, #000 62%, rgba(0, 0, 0, .72) 78%, transparent 100%); }
.halo { position: absolute; top: 12%; left: 50%; width: min(40vw, 520px); aspect-ratio: 1; border: 1px solid rgba(198, 155, 106, .38); border-radius: 50%; transform: translateX(-50%); box-shadow: 0 0 80px rgba(160, 95, 28, .18), inset 0 0 80px rgba(160, 95, 28, .12); }

.button { display: inline-flex; min-height: 54px; padding: .85rem clamp(1.4rem, 3vw, 2.6rem); align-items: center; justify-content: center; border: 1px solid var(--gold); border-radius: 16px 3px; font-family: var(--sans); font-size: .76rem; font-weight: 600; letter-spacing: .1em; text-align: center; text-decoration: none; text-transform: uppercase; transition: color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: #100b07; background: linear-gradient(135deg, #e1ba84, #a67544); box-shadow: 0 12px 40px rgba(148, 89, 37, .18); }
.button-primary:hover { background: linear-gradient(135deg, #f0cd9b, #b98957); box-shadow: 0 16px 45px rgba(148, 89, 37, .3); }
.button-outline { color: var(--gold-bright); background: rgba(8, 6, 5, .55); }
.button-outline:hover { color: #100b07; background: var(--gold-bright); }

.split-section, .feature-section { background: linear-gradient(90deg, rgba(7, 6, 5, .84), rgba(13, 10, 8, .62)); }
.visual-grid { display: grid; align-items: center; grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr); gap: clamp(2.5rem, 6vw, 6rem); }
.visual-grid-reverse { grid-template-columns: minmax(320px, .88fr) minmax(0, 1.12fr); }
.visual-grid-wide { grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); }
.portrait-panel { position: relative; width: min(100%, 480px); aspect-ratio: 4 / 5; justify-self: end; overflow: hidden; border: 1px solid var(--line); border-radius: 180px 180px 24px 24px; background: #100c0a; box-shadow: 0 30px 80px rgba(0, 0, 0, .45); }
.portrait-panel-left { justify-self: start; }
.portrait-panel::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, transparent 60%, rgba(8, 6, 5, .42)); pointer-events: none; }
.portrait-panel img { width: 100%; height: 100%; object-fit: cover; object-position: center 24%; }
.scene-portrait { --scene-person-y: 0px; --scene-flowers-y: 0px; position: relative; width: min(100%, 560px); min-height: clamp(620px, 70vw, 780px); align-self: end; justify-self: center; overflow: hidden; isolation: isolate; }
.scene-portrait::after { position: absolute; right: -8%; bottom: -1px; left: -8%; z-index: 4; height: 19%; content: ""; background: linear-gradient(180deg, transparent, rgba(11, 9, 8, .84) 78%, var(--bg)); pointer-events: none; }
.scene-halo { position: absolute; top: 10%; left: 50%; z-index: -1; width: min(92%, 510px); aspect-ratio: 1; border: 1px solid rgba(198, 155, 106, .42); border-radius: 50%; background: radial-gradient(circle, rgba(157, 84, 24, .2), transparent 65%); box-shadow: 0 0 90px rgba(155, 82, 23, .2), inset 0 0 70px rgba(155, 82, 23, .1); transform: translateX(-50%); }
.scene-halo::before, .scene-halo::after { position: absolute; top: 50%; left: 50%; width: 72%; height: 1px; content: ""; background: linear-gradient(90deg, transparent, rgba(198, 155, 106, .28), transparent); transform: translate(-50%, -50%) rotate(45deg); }
.scene-halo::after { transform: translate(-50%, -50%) rotate(-45deg); }
.scene-person { position: absolute; right: 50%; bottom: -2%; z-index: 2; width: auto; max-width: 100%; height: 96%; object-fit: contain; object-position: center bottom; filter: drop-shadow(0 0 42px rgba(151, 76, 20, .28)); transform: translate3d(50%, var(--scene-person-y), 0); will-change: transform; }
.scene-portrait-right .scene-person { height: 101%; }
.test-scene .scene-person { height: 101%; }
.formats-scene { width: min(112%, 610px); }
.formats-scene .scene-person { height: 102%; }
.scene-flowers { position: absolute; right: -42%; bottom: -1%; z-index: 3; width: 190%; max-width: none; opacity: .5; pointer-events: none; transform: translate3d(0, var(--scene-flowers-y), 0); will-change: transform; -webkit-mask-image: linear-gradient(180deg, transparent 8%, #000 35%, #000 76%, transparent 100%); mask-image: linear-gradient(180deg, transparent 8%, #000 35%, #000 76%, transparent 100%); }
.scene-portrait-left .scene-flowers { right: -25%; transform: translate3d(0, var(--scene-flowers-y), 0) scaleX(-1); }
.scene-flowers-secondary { right: auto; bottom: -5%; left: -58%; width: 165%; opacity: .38; transform: translate3d(0, var(--scene-flowers-y), 0) scaleX(-1); }
.scene-portrait-left .scene-flowers-secondary { right: -58%; left: auto; transform: translate3d(0, var(--scene-flowers-y), 0); }
.section-copy > p:not(.eyebrow, .script-title, .section-note, .contact-caption) { max-width: 620px; color: var(--text-muted); font-size: clamp(1.2rem, 1rem + .45vw, 1.6rem); }
.about-copy { max-width: 690px; justify-self: center; }
.about-copy h2 { font-size: clamp(4rem, 7vw, 7rem); letter-spacing: .055em; }
.about-copy .eyebrow { margin-bottom: clamp(1.4rem, 2.6vw, 2.2rem); }
.name-divider { display: grid; margin: clamp(.75rem, 1.5vw, 1.25rem) 0 clamp(1.8rem, 3vw, 2.8rem); align-items: center; grid-template-columns: minmax(2.5rem, 1fr) auto minmax(2.5rem, 1fr); gap: clamp(.75rem, 1.5vw, 1.35rem); }
.name-divider .script-title { margin: 0; font-size: clamp(2.8rem, 4.8vw, 4.9rem); line-height: 1.15; white-space: nowrap; }
.name-divider-line { position: relative; height: 1px; background: linear-gradient(90deg, transparent, rgba(198, 155, 106, .8)); }
.name-divider-line:last-child { background: linear-gradient(90deg, rgba(198, 155, 106, .8), transparent); }
.name-divider-line::after { position: absolute; top: 50%; right: -3px; width: 6px; aspect-ratio: 1; content: ""; background: var(--gold); transform: translateY(-50%) rotate(45deg); }
.name-divider-line:last-child::after { right: auto; left: -3px; }
.hero-name-divider { width: min(100%, 680px); margin: .55rem auto 1.35rem; }
.hero-name-divider .script-title { font-size: clamp(3rem, 4.35vw, 4.65rem); }
.service-divider { display: flex; width: min(78%, 440px); height: 10px; margin: 1.8rem auto -.85rem; align-items: center; }
.service-divider::before, .service-divider::after { height: 1px; content: ""; background: linear-gradient(90deg, transparent, rgba(198, 155, 106, .7)); flex: 1; }
.service-divider::after { background: linear-gradient(90deg, rgba(198, 155, 106, .7), transparent); }
.service-divider span { width: 7px; aspect-ratio: 1; margin-inline: .65rem; background: var(--gold); transform: rotate(45deg); }
.about-body { margin-bottom: clamp(2rem, 3.2vw, 3rem); }
.about-body p { max-width: 590px; margin: 0 0 .65em; color: var(--text-muted); font-size: clamp(1.35rem, 1.1rem + .65vw, 1.85rem); line-height: 1.25; text-wrap: balance; }
.about-body p:last-child { margin-bottom: 0; }
.ornament-line { width: min(100%, 520px); height: 1px; margin: 2rem auto; background: linear-gradient(90deg, transparent, var(--gold), transparent); }
.ornament-line::after { display: block; color: var(--gold); content: "✦"; text-align: center; transform: translateY(-55%); }
#requests-title { max-width: 720px; margin-inline: auto; font-size: clamp(2.8rem, 4.25vw, 4.7rem); line-height: 1; }
.pill-grid { display: grid; margin: 3rem 0; padding: 0; grid-template-columns: repeat(2, 1fr); gap: 1rem; list-style: none; }
.pill-grid li { display: flex; min-height: 74px; padding: 1rem 1.65rem; align-items: center; justify-content: center; border: 1px solid rgba(227, 189, 138, .68); border-radius: 999px; color: var(--text); background: linear-gradient(135deg, rgba(24, 48, 83, .42), rgba(10, 8, 7, .84)); box-shadow: inset 0 0 28px rgba(40, 104, 184, .08), 0 12px 30px rgba(0, 0, 0, .18); font-size: clamp(1.12rem, 1rem + .3vw, 1.38rem); transition: border-color .25s ease, background .25s ease, box-shadow .25s ease, transform .25s ease; }
.pill-grid li:hover { border-color: rgba(93, 148, 218, .72); background: linear-gradient(135deg, rgba(25, 70, 132, .58), rgba(10, 13, 24, .88)); box-shadow: inset 0 0 34px var(--blue-glow), 0 14px 34px rgba(7, 25, 55, .24); transform: translateY(-2px); }
.pill-icon { width: 38px; height: 38px; margin-right: .9rem; flex: 0 0 auto; object-fit: contain; filter: sepia(.15) drop-shadow(0 0 7px rgba(227, 189, 138, .24)); }
.pill-grid li:last-child { grid-column: 1 / -1; justify-self: center; width: calc(50% - .5rem); }

.feature-portrait { align-self: end; max-height: 740px; overflow: hidden; }
.feature-portrait img { width: 100%; height: auto; max-height: 740px; object-fit: contain; object-position: center bottom; filter: drop-shadow(0 0 50px rgba(154, 82, 25, .24)); }
.steps-list { display: grid; margin: 2.5rem 0; padding: 0; grid-template-columns: repeat(3, 1fr); gap: 1rem; counter-reset: steps; list-style: none; }
.steps-list li { color: var(--text-muted); font-size: 1.05rem; }
.icon-art { display: block; object-fit: contain; }
.steps-list .step-icon { display: grid; width: clamp(76px, 7vw, 92px); height: clamp(76px, 7vw, 92px); min-width: 0; min-height: 0; margin: 0 auto .8rem; padding: 14px; place-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 50%; }
.step-icon .icon-art { width: 100%; height: 100%; }
.steps-list li:nth-child(3) .step-icon .icon-art { width: auto; height: 88%; }
.card-grid { display: grid; margin: 3rem 0; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.card-grid-compact { grid-template-columns: repeat(2, 1fr); }
.mystic-card, .quote-grid blockquote, .choice-card { position: relative; border: 1px solid var(--line); border-radius: 22px 5px; background: linear-gradient(145deg, rgba(26, 19, 15, .83), rgba(8, 6, 5, .72)); }
.mystic-card { min-height: 240px; padding: 2.4rem 1.4rem; color: inherit; font: inherit; text-align: center; box-shadow: inset 0 0 40px rgba(29, 74, 139, .055); cursor: pointer; transition: border-color .25s ease, background .25s ease, box-shadow .25s ease, transform .25s ease; }
.mystic-card:hover { border-color: rgba(71, 126, 198, .5); background: linear-gradient(145deg, rgba(18, 43, 80, .72), rgba(8, 8, 12, .82)); box-shadow: inset 0 0 52px rgba(35, 91, 171, .13), 0 18px 42px rgba(5, 20, 47, .2); transform: translateY(-3px); }
.card-icon { width: auto; height: clamp(58px, 5vw, 76px); margin-inline: auto; filter: drop-shadow(0 0 14px rgba(40, 104, 184, .18)); }
.mystic-card-title { display: block; margin: 1rem 0 .25rem; color: var(--gold-bright); font-size: 1.6rem; font-weight: 500; }
.mystic-card-summary { display: block; color: var(--text-muted); }
.quote-grid { display: grid; margin: 2.6rem 0; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.quote-grid blockquote { display: grid; min-height: 170px; margin: 0; padding: 2rem; place-items: center; color: var(--text-muted); font-size: 1.45rem; }
.reviews-section { min-height: 100svh; overflow: clip; color: #241d18; background-color: #c9c1b8; background-image: linear-gradient(rgba(43, 35, 29, .42), rgba(43, 35, 29, .42)), url("/assets/reviews-mosaic-rich.jpg?v=1"); background-position: center; background-size: cover; background-attachment: fixed; box-shadow: inset 0 25px 55px rgba(35, 27, 21, .15), inset 0 -25px 55px rgba(35, 27, 21, .17); }
.reviews-section::before { background: linear-gradient(90deg, transparent, rgba(116, 76, 39, .65), transparent) !important; }
.reviews-section::after { color: #916636 !important; }
.reviews-copy { position: relative; z-index: 2; display: grid; width: min(680px, 82vw, 76svh); aspect-ratio: 1; padding: clamp(1.4rem, 3vw, 2.4rem); margin-inline: auto; align-items: center; grid-template-rows: auto minmax(0, 1fr) auto auto; border: 0; border-radius: 26px 7px; background: rgba(250, 247, 242, .96); box-shadow: 0 28px 75px rgba(37, 28, 21, .3); }
.reviews-copy .eyebrow { color: #8b6035; }
.reviews-copy .button-outline { color: #181008; border-color: #d5a86e; background: linear-gradient(135deg, #e3bd8a, #b9844f); }
.reviews-copy .button-outline:hover { color: #181008; border-color: #efcb98; background: linear-gradient(135deg, #f0cf9f, #ca965c); box-shadow: 0 12px 28px rgba(154, 100, 47, .28); }
.reviews-slider { display: grid; min-height: 0; padding: 1rem 0; place-items: center; overflow: hidden; touch-action: pan-y; }
.review-slide { grid-area: 1 / 1; display: block; width: min(100%, 566px); max-height: 100%; object-fit: contain; border: 0; border-radius: 10px; box-shadow: 0 16px 36px rgba(51, 41, 33, .13); opacity: 1; transform: none; transition: opacity .24s ease, transform .34s cubic-bezier(.2, .75, .25, 1); }
.review-slide[hidden] { display: none; }
.review-slide.is-leaving { opacity: 0; transform: translateY(-10px); }
.review-slide.is-entering { opacity: 0; transform: translateY(12px); }
.reviews-controls { display: flex; margin: .25rem 0 1rem; justify-content: center; gap: .8rem; }
.reviews-controls button { display: grid; width: 48px; min-height: 48px; padding: 0; place-items: center; color: #174b91; border: 1px solid rgba(30, 83, 151, .48); border-radius: 50%; background: rgba(238, 245, 255, .84); box-shadow: 0 7px 18px rgba(18, 59, 120, .12); cursor: pointer; transition: color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease; }
.reviews-controls button:hover { color: #fffaf2; background: var(--blue-deep); box-shadow: 0 10px 24px rgba(18, 59, 120, .28); transform: translateY(-2px); }
.reviews-controls svg { width: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.choice-grid { display: grid; margin-top: 2.5rem; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.choice-card { display: grid; min-height: 190px; padding: 2rem; place-items: center; color: var(--gold-bright); font-size: 1.5rem; text-decoration: none; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.choice-icon { width: auto; height: clamp(52px, 5vw, 70px); }
.choice-card:hover { border-color: var(--gold-bright); background: rgba(45, 30, 20, .84); transform: translateY(-4px); }

.contact-grid { grid-template-columns: .9fr 1.1fr; }
.contact-caption { margin-top: 3rem; color: var(--gold); }
.contact-form { padding: clamp(1.3rem, 4vw, 3rem); border: 1px solid var(--line); border-radius: 28px 6px; background: rgba(9, 7, 6, .78); box-shadow: 0 30px 80px rgba(0, 0, 0, .35); }
.contact-form label { display: grid; margin-bottom: 1.1rem; color: var(--gold); font-family: var(--sans); font-size: .78rem; gap: .5rem; letter-spacing: .08em; text-transform: uppercase; }
.form-contact-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.form-contact-fields label { min-width: 0; }
.contact-form input, .contact-form textarea { width: 100%; border: 1px solid rgba(198, 155, 106, .38); border-radius: 10px 2px; padding: .8rem 1rem; color: var(--text); background: rgba(255, 255, 255, .035); font-family: var(--sans); font-size: 1rem; text-transform: none; resize: vertical; }
.contact-form input:focus, .contact-form textarea:focus { border-color: #4e8bd8; outline: none; box-shadow: 0 0 0 3px rgba(40, 104, 184, .18), 0 0 24px rgba(40, 104, 184, .08); }
.contact-form .button { width: 100%; }
.contact-form .button-primary { color: #fff8ed; border-color: rgba(227, 189, 138, .68); background: linear-gradient(135deg, var(--blue), var(--blue-deep)); box-shadow: 0 13px 32px rgba(18, 59, 120, .3); }
.contact-form .button-primary:hover { background: linear-gradient(135deg, #367acb, #174987); box-shadow: 0 16px 38px rgba(18, 59, 120, .4); }
.form-note { margin: .8rem 0 0; color: #8f8376; font-family: var(--sans); font-size: .7rem; }
.form-consents { margin: 1rem 0; color: var(--text-muted); font-family: var(--sans); font-size: .72rem; line-height: 1.45; }
.form-check { display: flex !important; margin: .55rem 0 !important; align-items: flex-start; color: inherit !important; font: inherit !important; letter-spacing: normal !important; text-transform: none !important; cursor: pointer; }
.form-check input { width: 1rem; height: 1rem; min-width: 1rem; padding: 0; margin: .08rem .55rem 0 0; border: 0; border-radius: 0; background: transparent; accent-color: var(--blue); }
.form-consents p { margin: .75rem 0 0 1.55rem; }
.form-consents a { color: inherit; text-decoration: underline; text-decoration-color: rgba(227, 189, 138, .46); text-underline-offset: .16em; }
.form-consents a:hover { color: var(--text); text-decoration-color: currentColor; }
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-form.is-submitting { opacity: .72; pointer-events: none; }
.contact-form.is-sent > :not(.form-status) { display: none; }
.form-status { display: grid; min-height: 250px; padding: 2rem; place-content: center; color: var(--text-muted); font-size: clamp(1.15rem, 2.5vw, 1.4rem); line-height: 1.5; text-align: center; }
.form-status[hidden] { display: none; }
.form-status strong { display: block; margin-bottom: .7rem; color: var(--gold-bright); font-family: var(--display); font-size: clamp(2.4rem, 6vw, 4rem); font-weight: 400; line-height: 1; text-transform: uppercase; }
.form-status.is-error { min-height: 0; padding: 1rem 0 0; color: #e6a8a0; font-family: var(--sans); font-size: .85rem; }
.has-open-modal { overflow: hidden; }
.booking-modal { width: min(calc(100% - 2rem), 760px); max-height: calc(100svh - 2rem); padding: 0; overflow: hidden; color: var(--text); border: 1px solid rgba(198, 155, 106, .58); border-radius: 26px 7px; background: #0d0a08; box-shadow: 0 35px 120px rgba(0, 0, 0, .78), 0 0 55px rgba(36, 87, 165, .13); }
.booking-modal[open] { animation: booking-modal-in .32s cubic-bezier(.2, .75, .25, 1) both; }
.booking-modal::backdrop { background: rgba(3, 3, 4, .78); backdrop-filter: blur(7px); animation: booking-backdrop-in .25s ease both; }
.booking-modal-card { position: relative; max-height: calc(100svh - 2rem); padding: clamp(1.15rem, 3vw, 1.8rem); overflow: hidden; }
.booking-modal-close { position: absolute; top: .7rem; right: .7rem; z-index: 2; width: 44px; min-height: 44px; padding: 0; color: var(--gold); border: 0; background: transparent; font-size: 1.75rem; line-height: 1; cursor: pointer; }
.booking-modal-close:hover { color: var(--gold-bright); }
.booking-modal-heading { padding-inline: 1.5rem; }
.booking-modal-heading .eyebrow { margin-bottom: .8rem; }
.booking-modal-heading h2 { font-size: clamp(2rem, 5vw, 3rem); }
.booking-modal-heading > p:last-child { max-width: 420px; margin: .7rem auto 1rem; color: var(--text-muted); font-size: .96rem; line-height: 1.4; }
.booking-calendar-wrap { display: grid; min-height: 0; gap: .8rem; }
.booking-calendar { display: block; width: 100%; height: clamp(330px, calc(100svh - 255px), 600px); border: 0; border-radius: 14px 4px; background: #fff; }
.booking-confirm { width: 100%; }
.booking-calendar-wrap[hidden], .booking-thanks[hidden] { display: none; }
.booking-thanks { min-height: min(420px, calc(100svh - 8rem)); align-content: center; padding: 2rem; }
.booking-thanks h2 { margin-block: .7rem; font-size: clamp(2.6rem, 7vw, 4.5rem); }
.booking-thanks > p:last-child { color: var(--text-muted); font-size: clamp(1.1rem, 2.4vw, 1.35rem); }
.product-modal { width: min(calc(100% - 2rem), 560px); }
.product-modal-card { min-height: min(440px, calc(100svh - 2rem)); }
.product-modal-content { display: grid; min-height: inherit; padding: clamp(1.7rem, 5vw, 3.5rem); align-content: center; justify-items: center; }
.product-modal-content h2 { max-width: 100%; margin-block: .7rem 1rem; font-size: clamp(2.25rem, 5.5vw, 3.4rem); overflow-wrap: break-word; hyphens: auto; }
.product-modal-content > p:not(.eyebrow) { max-width: 430px; margin: 0 0 1.8rem; color: var(--text-muted); font-size: clamp(1.08rem, 2.5vw, 1.3rem); line-height: 1.5; }
.product-modal-content .button { min-width: min(100%, 280px); }

@keyframes booking-modal-in {
  from { opacity: 0; transform: translateY(18px) scale(.98); }
  to { opacity: 1; transform: none; }
}

@keyframes booking-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
.site-footer { border-top: 1px solid rgba(198, 155, 106, .2); background: #080605; }
.footer-inner { min-height: 130px; color: var(--text-muted); font-size: .95rem; }
.footer-legal { display: flex; flex-wrap: wrap; justify-content: center; gap: .55rem .9rem; font: .62rem/1.4 var(--sans); }
.footer-legal a { color: #a99a8a; text-decoration: none; }
.footer-legal a:hover { color: var(--gold-bright); }

.has-reveal .reveal { opacity: 0; transform: translateY(28px); transition: opacity .85s ease, transform .85s cubic-bezier(.2, .75, .25, 1); }
.has-reveal .reveal-delay { transition-delay: .14s; }
.has-reveal .reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 900px) {
  body { background-attachment: scroll; }
  .menu-toggle { display: block; }
  .site-nav { position: absolute; top: 72px; right: 1rem; left: 1rem; display: none; padding: 1.5rem; align-items: stretch; border: 1px solid var(--line); border-radius: 0 0 16px 16px; background: rgba(9, 7, 6, .97); flex-direction: column; }
  .site-nav.is-open { display: flex; }
  .site-nav a { padding: .7rem; }
  .hero-grid, .split-grid, .feature-grid, .contact-grid, .visual-grid, .visual-grid-reverse, .visual-grid-wide { grid-template-columns: minmax(0, 1fr); }
  .hero { padding-bottom: 0; }
  .hero-copy { padding-top: 2rem; }
  .hero h1 { white-space: normal; }
  .hero-visual { width: min(100%, 620px); min-height: 540px; margin: 0 auto; }
  .hero-visual .hero-person { right: 50%; bottom: -2rem; width: auto; max-width: min(100%, 620px); height: auto; max-height: 600px; transform: translate3d(50%, var(--hero-person-y), 0); }
  .hero-branches { right: -24%; bottom: 0; width: 148%; opacity: .56; }
  .halo { width: min(78vw, 440px); }
  .split-grid { gap: 3rem; }
  .portrait-panel, .portrait-panel-left { width: min(100%, 560px); justify-self: center; }
  .scene-portrait { width: min(100%, 590px); min-height: 650px; }
  .section-copy { text-align: center; }
  .about-copy { max-width: 720px; }
  .about-body p { margin-inline: auto; }
  .section-copy > p:not(.eyebrow, .script-title, .section-note, .contact-caption) { margin-inline: auto; }
  .feature-portrait { max-height: 570px; order: 2; }
  .card-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-inner { padding-block: 2rem; flex-direction: column; gap: .8rem; text-align: center; }
  .form-consents { font-size: .68rem; }
  .form-contact-fields { grid-template-columns: 1fr; gap: 0; }
}

@media (max-width: 620px) {
  .container { width: min(calc(100% - 1.25rem), var(--container)); }
  .brand-mark { width: 34px; height: 34px; }
  .brand-name { font-size: 1.55rem; }
  .section { min-height: auto; padding: 6.5rem 0; }
  .section-frame { inset: 5.2rem .4rem .4rem; border-radius: 18px; }
  .hero { min-height: 100svh; padding-bottom: 0; }
  .hero-copy { width: 100%; overflow: hidden; }
  .hero h1 { max-width: 100%; font-size: clamp(2.35rem, 11.8vw, 3.15rem); line-height: .92; letter-spacing: .01em; white-space: normal; }
  .script-title { max-width: 100%; font-size: clamp(2.2rem, 10.8vw, 3rem); }
  .hero-name-divider { width: min(100%, 31rem); margin-top: .65rem; margin-bottom: 1.25rem; }
  .hero-name-divider .script-title { font-size: clamp(2.05rem, 10vw, 2.9rem); }
  .service-divider { width: min(76%, 18rem); margin-top: 1.5rem; }
  .eyebrow { max-width: 100%; font-size: .61rem; line-height: 1.7; letter-spacing: .22em; }
  .hero-lead { max-width: 22rem; font-size: 1.08rem; }
  .hero-lead br { display: none; }
  .hero-visual { min-height: 420px; }
  .hero-visual .hero-person { bottom: -1rem; width: auto; max-width: min(100%, 520px); height: auto; max-height: 500px; }
  .hero-branches { right: -45%; bottom: 0; width: 190%; opacity: .5; -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 58%, rgba(0, 0, 0, .65) 76%, transparent 100%); mask-image: linear-gradient(180deg, #000 0%, #000 58%, rgba(0, 0, 0, .65) 76%, transparent 100%); }
  .pill-grid, .steps-list, .card-grid, .quote-grid, .choice-grid { grid-template-columns: 1fr; }
  .pill-grid li:last-child { grid-column: auto; width: 100%; }
  #requests-title { max-width: 18rem; font-size: clamp(2.55rem, 13vw, 3.55rem); }
  .pill-grid { gap: .7rem; }
  .pill-grid li { min-height: 64px; padding: .8rem 1.1rem; font-size: 1.08rem; }
  .pill-icon { width: 31px; height: 31px; margin-right: .7rem; }
  .steps-list { gap: 1.7rem; }
  .mystic-card { min-height: 185px; }
  .quote-grid blockquote, .choice-card { min-height: 145px; }
  .portrait-panel, .portrait-panel-left { width: min(100%, 360px); aspect-ratio: 4 / 5; border-radius: 120px 120px 18px 18px; }
  .scene-portrait { width: min(100%, 390px); min-height: 520px; }
  .scene-portrait-right { min-height: 550px; }
  .formats-scene { width: min(100%, 410px); min-height: 550px; }
  .scene-halo { top: 12%; width: 88%; }
  .scene-flowers { right: -58%; width: 220%; opacity: .42; }
  .scene-flowers-secondary { right: auto; left: -72%; width: 205%; opacity: .34; }
  .scene-portrait-left .scene-flowers-secondary { right: -72%; left: auto; }
  .about-copy h2 { font-size: clamp(3.2rem, 17vw, 4.65rem); letter-spacing: .035em; }
  .name-divider { margin-top: .55rem; margin-bottom: 1.8rem; grid-template-columns: minmax(1.5rem, 1fr) auto minmax(1.5rem, 1fr); gap: .65rem; }
  .name-divider .script-title { font-size: clamp(2.15rem, 10.5vw, 3rem); white-space: normal; }
  .about-body p { font-size: clamp(1.2rem, 5.5vw, 1.42rem); line-height: 1.32; }
  .button { width: 100%; padding-inline: .7rem; font-size: .62rem; letter-spacing: .06em; }
  .booking-modal { width: calc(100% - 1rem); max-height: calc(100svh - 1rem); border-radius: 20px 5px; }
  .booking-modal-card { padding: .9rem; }
  .booking-modal-heading { padding-inline: 1.8rem; }
  .booking-modal-heading .eyebrow { margin-bottom: .35rem; }
  .booking-modal-heading h2 { font-size: 1.7rem; }
  .booking-modal-heading > p:last-child { margin-block: .35rem .65rem; font-size: .82rem; }
  .booking-calendar { height: clamp(310px, calc(100svh - 215px), 600px); }
  .booking-confirm { min-height: 48px; }
  .service-line { font-size: .88rem; }
  .card-grid-compact { grid-template-columns: 1fr; }
  .reviews-section { min-height: 100svh; padding-block: 5.2rem; background-attachment: scroll; background-size: auto 100%; }
  .reviews-copy { width: min(92vw, 500px); min-height: min(84svh, 680px); aspect-ratio: auto; padding: 1rem; border-radius: 20px 5px; }
  .reviews-copy .eyebrow { margin-bottom: .35rem; }
  .reviews-slider { min-height: min(58svh, 480px); padding-block: .55rem; }
  .review-slide { width: auto; max-width: 100%; max-height: min(56svh, 465px); }
  .reviews-controls { margin-bottom: .65rem; }
  .reviews-controls button { width: 44px; min-height: 44px; }
}

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