/* DCP craft layer, applying the emil-design-eng interaction principles. */
:root {
  --ease-out: cubic-bezier(.23,1,.32,1);
  --ease-in-out: cubic-bezier(.77,0,.175,1);
  --glass-edge: rgba(222,234,232,.35);
  --glass-top: rgba(255,255,255,.3);
  --gold: #dec391;
}
body { font-synthesis:none; }
h1,h2,h3 { text-wrap:balance; }
.lead,.hero-description,.article-intro { text-wrap:pretty; }
.section-head { margin-bottom:44px; }
.eyebrow { letter-spacing:.17em; }
.hero h1 { letter-spacing:-.055em; }
.hero-subtitle { color:rgba(230,237,231,.82); }
.hero-description { max-width:700px; font-weight:400; line-height:1.75; }
.hero-content { position:relative; }
.hero .btn { min-height:60px; padding-inline:32px; }
.assurance { font-size:9px; letter-spacing:.15em; color:#e3dfd3; }
.hero-atmosphere { opacity:.68; }
.motion-toggle { min-height:44px; min-width:155px; font-size:8px; letter-spacing:.1em; padding:11px 16px; backdrop-filter:blur(12px); }
.scroll-link { min-height:44px; font-size:9px; letter-spacing:.12em; }
.hero-light { translate:none; }
@keyframes cinematic-light { from {opacity:.72} to {opacity:1} }

/* Fast press feedback, restrained gloss, and explicit transition properties. */
.btn { position:relative; isolation:isolate; overflow:hidden; transition:transform 150ms var(--ease-out),color 160ms ease,border-color 160ms ease; }
.btn::after { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; border-radius:inherit; background:linear-gradient(120deg,#ffffff2d,transparent 70%); opacity:0; transition:opacity 180ms ease; }
.btn-white { background:linear-gradient(125deg,#f6edd9,#e0c89c); border-color:#f6e8c4; box-shadow:inset 0 1px 1px #ffffffad,0 8px 22px #b89a5a14; color:#112027; }
.btn-glass { background:linear-gradient(130deg,#ffffff16,#c7e4e909 60%,#d8b8790c); border-color:var(--glass-edge); backdrop-filter:blur(14px) saturate(120%); box-shadow:inset 0 1px 1px var(--glass-top),inset 0 -1px 0 #94b6c012,0 8px 22px #0002; }
.btn:hover { transform:none; }
.text-link svg { transition:transform 160ms var(--ease-out); }
.menu-toggle,.motion-toggle,.filter,.journal-filter,.billing button,.reserve-small,.dialog-close { transition:transform 140ms var(--ease-out),color 150ms ease,border-color 150ms ease; }
html[data-input="pointer"] :is(.btn,.menu-toggle,.motion-toggle,.filter,.journal-filter,.billing button,.reserve-small,.dialog-close):active { transform:scale(.97); }
:is(a,button,summary,input,select,textarea):focus-visible { outline:2px solid #e8c98f; outline-offset:4px; }
.light :is(a,button):focus-visible { outline-color:#315d69; }

/* Optical sizing gives the floating header enough presence on every viewport. */
.site-header { align-items:center; }
.nav-glass { min-height:54px; gap:29px; border-color:var(--glass-edge); backdrop-filter:blur(14px) saturate(125%); box-shadow:inset 0 1px 1px var(--glass-top),0 10px 32px #0003; }
.nav-glass a { font-size:11px; letter-spacing:.12em; padding:19px 0; }
.header-book { min-height:48px; padding:15px 23px; font-size:10px; letter-spacing:.1em; color:#f4e6c6; border-color:#e3c98b66; }
.header-login { min-height:48px; font-size:9px; letter-spacing:.09em; padding:15px 20px; }
.menu-toggle { min-width:44px; min-height:44px; border-color:#d3e2dd4a; }
.mobile-menu { padding:20px; gap:2px; border-color:#d3e2dd3d; border-radius:18px; background:linear-gradient(140deg,#1d2d31f5,#0b151bf7); backdrop-filter:blur(16px); transform-origin:calc(100% - 24px) 0; box-shadow:inset 0 1px 1px #ffffff25,0 18px 50px #0006; }
.mobile-menu a { display:flex; align-items:center; min-height:48px; padding:10px 12px; border-radius:10px; font-size:16px; letter-spacing:-.02em; }
.mobile-menu a + a { border-top:1px solid #ffffff09; }
.mobile-menu a:last-child { color:#ecd6ac; }

/* The cards are photographic canvases, with a quiet continuous edge. */
.discipline-grid { gap:18px; }
.discipline-card { border:1px solid #d2e0dc25; border-radius:12px; box-shadow:inset 0 1px 1px #ffffff12; }
.discipline-card .card-image { transition:transform 260ms var(--ease-out); filter:saturate(.72) brightness(.9); }
.discipline-card:hover .card-image { transform:none; filter:saturate(.72) brightness(.9); }
.discipline-card:before { background:linear-gradient(180deg,#06101715,transparent 30%,#07131c9c 70%,#060d13f0); }
.discipline-card p { font-size:13px; color:#d7deda; line-height:1.7; }
.card-type { backdrop-filter:blur(10px); border-color:#d4e7df40; }
.card-actions { padding-top:16px; border-top-color:#d5e6df2e; }
.card-actions a { min-height:44px; font-size:11px; }
.card-actions .reserve-small { min-height:44px; display:inline-flex; align-items:center; justify-content:center; padding:11px 16px; font-size:11px; border-color:#e7d09c70; background:linear-gradient(130deg,#e1c59820,#bddae610); backdrop-filter:blur(10px); }
.coach-portrait,.experience-photo { border-radius:12px; }
.coach-card h3 { font-size:19px; }
.coach-bio { color:#666961; }
.coach-card .tag { font-size:10px; padding:7px 11px; }
.value p { font-size:13px; line-height:1.8; color:#aebabc; }
.value h3 { font-size:11px; letter-spacing:.08em; }
.photo-caption { padding-top:20px; border-top:1px solid #ece9d533; }
.schedule-panel,.private-option,.article-aside,.member-card { border-radius:14px; box-shadow:inset 0 1px 1px #ffffff16,0 12px 35px #00000010; }
.private-option { backdrop-filter:blur(14px) saturate(120%); }
.filter,.journal-filter { min-height:44px; font-size:11px; padding:12px 17px; }
th { font-size:10px; letter-spacing:.12em; }
.schedule-foot p { font-size:12px; color:#abb8b9; }
.schedule-state { font-size:10px; letter-spacing:.08em; }
.level-tag { font-size:10px; }
.billing-choice { flex-shrink:0; display:flex; flex-direction:column; align-items:center; gap:18px; text-align:center; }
.section-head .billing-choice .lead { margin:0; max-width:none; line-height:1.5; }
.billing { position:relative; display:inline-grid; grid-template-columns:repeat(2,minmax(98px,1fr)); padding:4px; gap:4px; }
.billing button { position:relative; isolation:isolate; min-height:44px; min-width:98px; font-size:12px; background:transparent; }
.billing button[aria-pressed="true"] { background:transparent; color:#676767; }
/* A clipped active copy keeps the label and sliding pill perfectly in sync. */
.billing-active { position:absolute; inset:4px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; pointer-events:none; background:#152a32; color:#f7ead1; clip-path:inset(0 calc(50% + 2px) 0 0 round 25px); transition:clip-path 250ms var(--ease-in-out); }
.billing-active span { display:grid; place-items:center; font-size:12px; }
.pricing[data-billing-active="monthly"] .billing-active { clip-path:inset(0 0 0 calc(50% + 2px) round 25px); }
.plan { border-radius:14px; padding:40px; }
.plan.recommended { border-color:#d5b87e79; box-shadow:inset 0 1px 1px #e7d3a426,0 20px 55px #223b3921; }
.plan-price { display:grid; justify-content:start; overflow:hidden; font-variant-numeric:tabular-nums lining-nums; min-height:76px; }
.price-option { grid-area:1 / 1; display:flex; align-items:baseline; align-self:center; gap:8px; opacity:1; transform:translateX(0); transition:transform 250ms var(--ease-in-out),opacity 180ms var(--ease-out); }
.price-option[data-rate="monthly"] { opacity:0; transform:translateX(10px); }
.pricing[data-billing-active="monthly"] .price-option[data-rate="annual"] { opacity:0; transform:translateX(-10px); }
.pricing[data-billing-active="monthly"] .price-option[data-rate="monthly"] { opacity:1; transform:translateX(0); }
.plan-price [data-price] { line-height:1; }
.plan-details { margin-bottom:28px; }
.plan-details li { font-size:12px; line-height:1.6; }
.plan-top h3 { font-size:13px; }
.recommended-badge { font-size:9px; letter-spacing:.08em; }
.fee-note { font-size:12px; color:#666451; }
.offer h3 { font-size:13px; }
.offer p,.offer strong { font-size:11px; }
.community-image { border-radius:10px; }
.community-image img { transition:transform 260ms var(--ease-out); }
.community-image:hover img { transform:none; filter:saturate(.62); }
.community-note p { color:#a6b1b0; }
.journal-card { transition:transform 220ms var(--ease-out),border-color 160ms ease; border-radius:12px; }
.journal-card:hover { transform:none; }
.journal-image img { transition:transform 260ms var(--ease-out); }
.journal-card:hover img { transform:none; }
.journal-card p { color:#b8c3c3; }
.journal-meta { color:#adbfc2; }
.faq-list summary { font-size:14px; min-height:64px; padding-top:23px; padding-bottom:23px; }
.faq-list details p { color:#b9c4c3; font-size:13px; }
.faq-list summary:after { color:#d7be8e; }
.footer-col h3 { font-size:10px; }
.footer-col li { margin-bottom:4px; font-size:12px; }
.footer-col a { min-height:44px; display:inline-flex; align-items:center; }
.footer-col .pending { font-size:11px; color:#a2aeac; line-height:2; }
.footer-bottom { font-size:10px; color:#a2ada9; }
.footer-bottom a { min-height:32px; display:inline-flex; align-items:center; }
.field label { font-size:12px; color:#d6e0dd; }
.field input,.field select,.field textarea { border-radius:9px; border-color:#b6d4d333; background:#d3e3df05; }
.form-note { color:#aab8b5; font-size:11px; }

/* Content entrances are rare; controls stay fast and interruptible. */
.will-reveal { transform:translateY(12px); transition:opacity 360ms var(--ease-out),transform 360ms var(--ease-out); }
.will-reveal.visible { transform:translateY(0); }
.booking-dialog { border-radius:20px; border-color:#d4e1d24a; background:linear-gradient(140deg,#1d3036fa,#0b171dfb); backdrop-filter:blur(14px); transform-origin:center; box-shadow:inset 0 1px 1px #ffffff24,0 22px 90px #0009; }
.booking-dialog::backdrop { background:#020609aa; backdrop-filter:blur(7px); opacity:1; transition:opacity 200ms var(--ease-out); }
.booking-dialog.is-closing::backdrop { opacity:0; transition-duration:130ms; }
.dialog-close { width:44px; height:44px; padding:12px; border-radius:50%; color:#c3d6d4; }
.booking-dialog .eyebrow { margin-bottom:23px; }
.booking-dialog .actions { gap:10px; }
.booking-dialog p:not(.eyebrow) { color:#c1cfcb; }
@starting-style { html[data-input="pointer"] .booking-dialog[open]::backdrop {opacity:0} }

@media(hover:hover) and (pointer:fine) {
  .btn:hover { transform:translateY(-1px); }
  .btn:hover::after { opacity:1; }
  .discipline-card:hover .card-image { transform:scale(1.025); }
  .journal-card:hover { transform:translateY(-2px); border-color:#d6bd895c; }
  .journal-card:hover img,.community-image:hover img { transform:scale(1.025); }
  .mobile-menu a:hover { background:#d0dfda09; }
  .dialog-close:hover { background:#d0dfda0d; }
}
@media(max-width:1200px) {
  .nav-glass { gap:21px; padding-inline:22px; }
  .nav-glass a { font-size:10px; }
  .header-login { font-size:9px; padding-inline:18px; }
  .header-book { font-size:10px; padding-inline:20px; }
}
@media(max-width:850px) {
  .plan { padding:31px; }
  .discipline-card p { min-height:46px; }
  .footer-top { row-gap:34px; }
}
@media(max-width:600px) {
  .site-header { padding:20px 20px; gap:8px; }
  .brand { width:98px; }
  .brand span { font-size:6px; letter-spacing:.12em; }
  .header-actions { gap:6px; }
  .header-book { min-height:44px; padding:13px 13px; font-size:8px; }
  .header-login { min-height:44px; padding:13px 11px; font-size:9px; gap:6px; }
  .menu-toggle { height:44px; width:44px; padding:11px; }
  .mobile-menu { top:82px; left:20px; right:20px; }
  .hero h1 { font-size:40px; line-height:1.1; }
  .hero-subtitle { font-size:27px; line-height:1.25; margin-bottom:24px; }
  .hero-description { font-size:13px; line-height:1.8; }
  .hero .btn { min-height:56px; padding:18px 25px; font-size:13px; gap:23px; }
  .hero-content { padding-bottom:97px; }
  .assurance { font-size:7px; line-height:1.7; letter-spacing:.11em; white-space:normal; max-width:300px; margin-inline:auto; }
  .motion-toggle { min-width:132px; min-height:44px; padding:10px 12px; font-size:7px; }
  .hero-bottom { bottom:20px; gap:12px; }
  .scroll-link { font-size:7px; gap:7px; letter-spacing:.08em; }
  .section-head .lead { font-size:13px; }
  .value p { font-size:12px; }
  .value h3 { font-size:10px; }
  .coach-card h3 { font-size:16px; }
  .coach-bio { font-size:11px; }
  .coach-card .tag { font-size:8px; }
  .filter,.journal-filter { font-size:10px; padding:12px 15px; }
  .schedule-state { font-size:9px; }
  .schedule-foot p { font-size:11px; }
  .plan { padding:31px; }
  .plan-top { gap:10px; }
  .recommended-badge { font-size:8px; padding:8px 10px; }
  .fee-note { font-size:11px; }
  .offer h3 { font-size:12px; }
  .private-option p { font-size:11px; }
  .private-option a { min-height:36px; font-size:9px; }
  .community-note p { font-size:10px; }
  .faq-list summary { font-size:13px; }
  .faq-list details p { font-size:12px; }
  .footer-col li { font-size:12px; }
  .footer-bottom { font-size:9px; }
  .footer-bottom div { gap:4px 18px; }
  .booking-dialog { padding:47px 27px 30px; }
  .booking-dialog h2 { font-size:33px; }
}
@media(max-width:480px) {
  .discipline-grid { grid-template-columns:1fr; gap:18px; }
  .discipline-card { min-height:430px; }
  .discipline-card .card-content { padding:26px; }
  .discipline-card h3 { font-size:27px; margin-bottom:13px; }
  .discipline-card p { font-size:13px; min-height:0; max-width:260px; margin-bottom:21px; }
  .card-number { top:24px; left:26px; font-size:10px; }
  .card-type { top:18px; right:19px; font-size:8px; padding:8px 11px; }
  .card-actions { flex-wrap:nowrap; gap:18px; }
  .card-actions a { font-size:12px; }
  .card-actions .reserve-small { font-size:11px; }
}
@media(max-width:360px) {
  .site-header { padding-inline:16px; gap:7px; }
  .brand { width:90px; }
  .header-login { width:44px; padding:12px; }
  .header-book { padding-inline:12px; }
  .hero h1 { font-size:36px; }
  .hero-subtitle { font-size:25px; }
  .hero-description { font-size:12px; }
  .motion-toggle { min-width:125px; }
  .card-actions { gap:12px; }
}
/* Keyboard actions are immediate; touch never inherits a sticky hover lift. */
html[data-input="keyboard"] *,html[data-input="keyboard"] *::before,html[data-input="keyboard"] *::after { transition-duration:0ms!important; transition-delay:0ms!important; }
html[data-input="keyboard"] { scroll-behavior:auto; }
html[data-input="keyboard"] .billing-active { transition:none!important; }
html[data-input="keyboard"] .booking-dialog::backdrop { transition:none!important; }
html[data-input="keyboard"] .btn:active { transform:none; }
@media(hover:none),(pointer:coarse) {
  .btn:hover,.journal-card:hover { transform:none; }
  .btn-white:hover { background:linear-gradient(125deg,#f6edd9,#e0c89c); }
  .btn-glass:hover { background:linear-gradient(130deg,#ffffff16,#c7e4e909 60%,#d8b8790c); }
  .btn-outline:hover { background:transparent; }
  .text-link:hover { color:inherit; }
  .journal-card:hover { border-color:#9cbec325; }
  .discipline-card:hover .card-image,.journal-card:hover img,.community-image:hover img { transform:none; }
  .text-link:hover svg { transform:none; }
}
@media(prefers-reduced-motion:reduce) {
  .will-reveal { opacity:1; transform:none; }
  .hero-light { animation:none!important; }
  .btn,.booking-dialog::backdrop { transition:opacity 100ms ease!important; }
  .billing-active { transition:none; }
  .pricing .price-option { transform:none!important; transition:opacity 100ms ease; }
  html[data-input="pointer"] :is(.btn,.filter,.menu-toggle,.motion-toggle,.journal-filter,.billing button,.reserve-small,.dialog-close):active { transform:none; }
}

/* First-visit atmosphere: the supplied artwork, with a quiet cinematic camera. */
.hero-photo-scene .hero-artwork img {
  filter:saturate(.9);
  object-position:50% 42%;
  transform-origin:44% 32%;
  animation:dcp-camera 16s var(--ease-in-out) infinite alternate;
}
.hero-photo-scene::before {
  background:linear-gradient(180deg,#050d133b 0%,#060d1210 25%,#0610185c 44%,#071018ba 76%,#080d11f5 100%);
}
.hero-photo-scene .hero-light {
  background:radial-gradient(ellipse at 8% 33%,#edbd652b,transparent 58%),radial-gradient(ellipse at 94% 22%,#4ea5b01a,transparent 55%);
}
.hero-haze { display:none; }
.hero-photo-scene .hero-haze {
  display:block;
  position:absolute;
  inset:-10%;
  z-index:-1;
  pointer-events:none;
  background:radial-gradient(ellipse at 0% 43%,#f2d49819,transparent 42%),radial-gradient(ellipse at 98% 28%,#7dd1d814,transparent 45%);
  animation:dcp-haze 12s var(--ease-in-out) infinite alternate;
}
@keyframes dcp-camera {
  from { transform:scale(1.025) translate3d(-.4%,0,0); }
  to { transform:scale(1.075) translate3d(.6%,.3%,0); }
}
@keyframes dcp-haze {
  from { transform:translate3d(-1.5%,1%,0); opacity:.4; }
  to { transform:translate3d(2.5%,-1%,0); opacity:.85; }
}
.hero-photo-scene:is(.motion-paused,.motion-suspended) :is(.hero-artwork img,.hero-haze) { animation-play-state:paused; }

/* A clear invitation to try, followed by the supplied subscriptions and passes. */
.discovery-offer {
  max-width:1070px;
  margin:0 auto 30px;
  padding:30px 36px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:28px;
  border:1px solid #d9c49770;
  border-radius:14px;
  background:linear-gradient(115deg,#12262d,#1d373b);
  box-shadow:inset 0 1px 1px #ffffff19;
  color:#f5edde;
}
.discovery-offer .eyebrow { color:#dec391; font-size:10px; margin-bottom:12px; }
.discovery-offer h3 { margin-bottom:8px; font-size:27px; font-weight:400; letter-spacing:-.035em; }
.discovery-offer p { margin-bottom:0; color:#cad4d0; font-size:13px; line-height:1.7; }
.discovery-action { display:flex; align-items:center; gap:28px; }
.discovery-action strong { font-size:32px; line-height:1.1; font-weight:400; letter-spacing:-.035em; }
.discovery-action strong span { display:block; margin-top:9px; color:#c5d1cc; font-size:10px; line-height:1.5; letter-spacing:0; font-weight:400; }
.discovery-action .btn { white-space:nowrap; font-size:12px; min-height:48px; padding-inline:22px; }
.other-offers { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; border-top:0; padding-top:0; }
.offer { display:flex; flex-direction:column; align-items:flex-start; min-width:0; padding:24px 20px; border:1px solid #c9bda6; border-radius:14px; background:#f8f4eb; }
.offer h3 { font-size:15px; line-height:1.4; min-height:2.8em; }
.offer p { font-size:12px; min-height:44px; line-height:1.7; }
.offer strong.offer-price { font-size:29px; line-height:1.2; font-weight:400; color:#17333b; letter-spacing:-.04em; margin-bottom:8px; }
.offer .offer-detail { font-size:12px; line-height:1.6; color:#42656a; }
.offer-actions { width:100%; margin-top:auto; padding-top:24px; }
.offer .btn { width:100%; justify-content:space-between; min-height:44px; padding:12px 16px; gap:14px; margin:0; font-size:11px; }
@media(max-width:1000px) {
  .other-offers { grid-template-columns:1fr 1fr; }
  .discovery-offer { padding:28px; align-items:flex-start; }
  .discovery-action { flex-direction:column; align-items:flex-start; gap:18px; }
}
@media(max-width:700px) {
  .discovery-offer { flex-direction:column; gap:22px; }
  .discovery-action { width:100%; flex-direction:row; align-items:center; justify-content:space-between; gap:20px; }
  .discovery-action strong { font-size:28px; }
  .other-offers { grid-template-columns:1fr 1fr; gap:30px 22px; }
}
@media(max-width:480px) {
  .hero-photo-scene .hero-artwork img { object-position:50% 30%; }
  .discovery-offer { padding:25px; }
  .discovery-offer h3 { font-size:25px; }
  .discovery-action { flex-direction:column; align-items:flex-start; gap:19px; }
  .discovery-action .btn { width:100%; justify-content:space-between; }
  .other-offers { gap:30px 18px; }
  .offer h3 { font-size:14px; }
  .offer strong.offer-price { font-size:26px; }
  .offer .btn { font-size:10px; padding-inline:12px; gap:8px; }
}
@media(prefers-reduced-motion:reduce) {
  .hero-photo-scene .hero-artwork img { animation:none!important; transform:none; }
  .hero-photo-scene .hero-haze { animation:none; opacity:.4; transform:none; }
}
@media(max-width:400px) {
  .other-offers { grid-template-columns:1fr; }
  .offer h3 { min-height:0; }
  .offer p { min-height:0; }
}
