/* Reference palette and composition, with a single practitioner. */
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 100px; }
.hero { background: #0a0a0a; }
.hero-title { font-size: clamp(2.5rem, 8.5vw, 10rem); letter-spacing: .16em; max-width: 100%; padding-inline: .25em; text-shadow: 0 4px 24px rgba(0,0,0,.75); }
.loader-brand { font-size: clamp(1.5rem, 5.5vw, 4.5rem); letter-spacing: .2em; max-width: 95%; white-space: nowrap; }
.masters { min-height: auto; }
.masters-grid { grid-template-columns: minmax(0, 1fr); max-width: 900px; }
.master-card:first-child { transform: none; }
.master-card { height: 65vh; height: 65svh; min-height: 440px; max-height: 680px; }
.master-desc { max-width: 520px; }
.stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 760px; }
.nav-links { gap: clamp(.8rem, 2vw, 2.5rem); }
.nav-links a { display: flex; align-items: center; min-height: 44px; }
.nav-logo { white-space: nowrap; font-size: 1rem; letter-spacing: .2em; }
.nav-cta { display: inline-flex; align-items: center; min-height: 44px; }
.skip-link { position: fixed; z-index: 100100; left: 1rem; top: 1rem; padding: .8rem 1rem; background: var(--accent); color: var(--bg); transform: translateY(-200%); }
.skip-link:focus { transform: none; }
.sticky-cta { visibility: hidden; }
.sticky-cta.visible { visibility: visible; }
.menu-is-open .sticky-cta { visibility: hidden; }
.mobile-menu { box-sizing: border-box; overflow-y: auto; overscroll-behavior: contain; height: 100vh; height: 100dvh; padding: calc(90px + env(safe-area-inset-top, 0px)) max(1rem, env(safe-area-inset-right, 0px)) calc(24px + env(safe-area-inset-bottom, 0px)) max(1rem, env(safe-area-inset-left, 0px)); gap: clamp(.25rem, 2vh, 1.2rem); }
.mobile-menu a { flex-shrink: 0; min-height: 44px; }
.mobile-menu { transition: opacity .25s ease, visibility 0s .25s; }
.mobile-menu.open { transition: opacity .25s ease, visibility 0s; }

/* Missing scripts must not hide content or block booking. */
html:not(.motion-ready) body, html:not(.motion-ready) button { cursor: auto; }
html:not(.motion-ready) .loader, html:not(.motion-ready) .cursor-dot, html:not(.motion-ready) .cursor-circle { display: none !important; }
html:not(.motion-ready) .nav,
html:not(.motion-ready) .reveal-up,
html:not(.motion-ready) [data-feature],
html:not(.motion-ready) .stat-item,
html:not(.motion-ready) .hero-title .char,
html:not(.motion-ready) .hero-subtitle,
html:not(.motion-ready) .hero-offer,
html:not(.motion-ready) .scroll-indicator,
html:not(.motion-ready) .hero-content { opacity: 1 !important; transform: none !important; }
html:not(.motion-ready) .clip-reveal,
html:not(.motion-ready) .master-name { clip-path: none !important; }
html:not(.motion-ready) .word { color: var(--text) !important; opacity: 1 !important; }
html:not(.motion-ready):not(.candle-scroll-ready) .hero { position: relative !important; inset: auto !important; width: 100% !important; }
html:not(.motion-ready) .services-track { overflow-x: auto; max-width: 100%; transform: none !important; scrollbar-color: var(--accent) var(--bg); }
html:not(.motion-ready) .service-card { scroll-snap-align: center; }
.no-js .nav { position: absolute; mix-blend-mode: normal; flex-wrap: wrap; gap: 1rem; }
.no-js .nav-links { display: flex !important; flex-wrap: wrap; gap: .4rem 1rem; justify-content: center; }
.no-js .hamburger { display: none !important; }
.no-js .hero-title { white-space: normal; }

@media (max-width: 1024px), (pointer: coarse) {
  .nav { padding: calc(.6rem + env(safe-area-inset-top, 0px)) max(1.1rem, env(safe-area-inset-right, 0px)) .6rem max(1.1rem, env(safe-area-inset-left, 0px)); }
  .nav-links, .nav-cta { display: none; }
  .hamburger { display: flex; flex-shrink: 0; width: 52px; height: 52px; }
  .hero { height: 100vh; height: 100svh; min-height: 360px; background-image: none; }
  .hero-canvas { display: none; }
  .hero-video-mobile { display: block; }
  .hero-overlay { background: linear-gradient(180deg, rgba(10,10,10,.5), rgba(10,10,10,.65) 40%, rgba(10,10,10,.65) 65%, rgba(10,10,10,.8)); }
  .hero-content { padding: 80px max(1rem, env(safe-area-inset-right, 0px)) 75px max(1rem, env(safe-area-inset-left, 0px)); }
  .hero-title { font-size: clamp(1.65rem, 8.4vw, 5rem); letter-spacing: .1em; padding-inline: 0; text-shadow: 0 2px 24px rgba(0,0,0,.8); -webkit-text-stroke: 0; }
  .hero-subtitle { line-height: 1.65; padding-inline: .5rem; color: rgba(240,237,232,.92); }
  .hero-offer { max-width: 36rem; padding: 0; line-height: 1.75; color: #e3c88e; }
  .hero-offer span { white-space: normal !important; }
  .services-track { flex-direction: column; padding: 1.5rem max(1.5rem, env(safe-area-inset-right, 0px)) 1.5rem max(1.5rem, env(safe-area-inset-left, 0px)); gap: 1rem; }
  .service-card { flex: none; width: 100%; min-height: auto; padding: 2rem; }
  .service-num { font-size: 2.5rem; }
  .service-group-label { width: 100%; min-height: auto; flex-direction: row; gap: 1rem; padding: 1.5rem 0 .5rem; }
  .service-group-label::before, .service-group-label::after { width: auto; height: 1px; flex: 1; background: linear-gradient(90deg, transparent, rgba(201,169,110,.35), transparent); }
  .service-group-label span { writing-mode: horizontal-tb; transform: none; font-size: 1.05rem; white-space: normal; }
  .sticky-cta { display: flex !important; left: max(1rem, env(safe-area-inset-left, 0px)); right: max(1rem, env(safe-area-inset-right, 0px)); bottom: calc(.75rem + env(safe-area-inset-bottom, 0px)); }
  .sticky-cta.visible { transform: translateY(0); }
  .footer { padding-bottom: calc(6rem + env(safe-area-inset-bottom, 0px)); }
  .philosophy, .masters, .cta-section { min-height: auto; }
  .cursor-dot, .cursor-circle { display: none; }
  body, button { cursor: auto; }
}
@media (max-width: 380px) {
  .hero-title { font-size: 8.2vw; letter-spacing: .08em; }
  .nav-logo { font-size: .86rem; letter-spacing: .15em; }
  .hero-subtitle { letter-spacing: .16em; }
  .master-info { padding: 1.5rem; }
  .service-card { padding: 1.5rem; }
  .cta-phone { max-width: 100%; padding-inline: 1rem; }
}
@media (max-width: 600px) {
  .hero-offer .dot { display: none; }
  .hero-offer > span:last-child { display: block; margin-top: .3rem; }
}
@media (max-height: 540px) and (pointer: coarse) {
  .hero { min-height: 360px; }
  .hero-content { padding-top: 82px; padding-bottom: 35px; }
  .hero-title { font-size: clamp(2rem, 7vw, 3.5rem); margin-bottom: 1rem; }
  .hero-line, .scroll-indicator { display: none; }
  .hero-offer { margin-top: .6rem; }
  .mobile-menu { justify-content: flex-start; gap: .2rem; }
  .mobile-menu a { font-size: 1.15rem; padding: .2rem 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
