@font-face{font-family:Archivo;src:url(assets/archivo-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Archivo;src:url(assets/archivo-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:Archivo;src:url(assets/archivo-700.woff2) format("woff2");font-weight:700;font-display:swap}
:root{--ink:#213d4f;--paper:#f7f5f0;--line:rgb(33 61 79 / 18%);--soft:#213d4f;--accent:#213d4f;--gutter:clamp(18px,5vw,76px);color-scheme:light;scroll-padding-top:70px}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.5 Archivo,sans-serif}
a{color:inherit;text-decoration:none} a:hover{text-decoration:underline;text-underline-offset:4px}
a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.wrap{width:min(100% - var(--gutter)*2,1260px);margin-inline:auto}


.hero-link{font-weight:600;font-size:14px}
.hero-link span{margin-left:8px}
.hero{padding-block:clamp(30px,5vw,74px) clamp(46px,6vw,90px);display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:clamp(24px,5vw,80px)}
.hero h1{margin:0;font-size:clamp(47px,5.4vw,82px);font-weight:700;line-height:1.1;letter-spacing:-.04em}
.hero p{max-width:480px;margin:24px 0 18px;font-size:clamp(15px,1.55vw,19px);line-height:1.5}
.hero-link{display:inline-flex;align-items:center;min-height:56px;padding:15px 24px;border-radius:6px;background:var(--ink);color:var(--paper)}
.hero-link:hover{background:#132f41;text-decoration:none}
.hero-image{width:100%;border-radius:6px;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:50% 37%}
.program-nav{position:sticky;top:0;z-index:2;background:var(--paper);border-block:1px solid var(--line)}
.program-nav .wrap{display:flex;gap:clamp(18px,2.8vw,43px);overflow:auto;scrollbar-width:thin}
.program-nav a{flex:none;padding:15px 10px;font-size:15px;font-weight:600;color:#6a685f}
.program-nav a[aria-current="location"]{color:#132f41}
.program-nav a:focus-visible{outline-offset:-3px}
.category{padding-block:clamp(30px,4.8vw,62px);counter-reset:program}
.category-grid{display:grid;grid-template-columns:minmax(0,1.07fr) minmax(0,.92fr);gap:0 clamp(16px,3.6vw,60px);align-items:start}
.category-heading{grid-column:1/-1;margin-bottom:38px}
h2{margin:0;font-weight:700;font-size:clamp(30px,4.15vw,56px);line-height:1.03;letter-spacing:-.052em}
.media{margin:0;min-width:0}
.screen{position:relative;border-radius:6px;overflow:hidden;aspect-ratio:3/2;background:var(--ink)}
.screen img,.screen iframe{display:block;width:100%;height:100%;object-fit:cover;border:0}
.play{position:absolute;inset:0;display:grid;place-items:center}
.play span{display:grid;place-items:center;padding-left:3px;width:57px;height:57px;border-radius:50%;color:white;background:#222d;border:1px solid #fff9;font-size:17px}
.play:hover span{background:#222}
.play:focus-visible{outline-offset:-4px;outline-color:var(--paper)}
.video-choices{display:flex;gap:4px 16px;flex-wrap:wrap;margin-top:10px}
.video-choices a,.video-fallback{font-size:12px;color:var(--soft)}
.video-fallback{display:inline-block;margin-top:8px;text-decoration:underline;text-underline-offset:3px}
.video-fallback[hidden]{display:none}
.programs{list-style:none;margin:0;padding:0;display:grid;gap:15px}
.programs > li{display:grid;grid-template-columns:2ch minmax(0,1fr);column-gap:.7rem;counter-increment:program}
.programs > li::before{
  content:counter(program,decimal-leading-zero);
  content:counter(program,decimal-leading-zero) / "";
  grid-column:1;
  grid-row:1 / span 2;
  margin-top:.35rem;
  color:#6a685f;
  font-size:12px;
  font-weight:600;
  font-variant-numeric:tabular-nums;
  line-height:1.2;
}
.programs > li > :is(h3,h4,p){grid-column:2}
.programs li+li{border-top:1px solid var(--line);padding-top:14px}
.programs :is(h3,h4){font-size:clamp(20px,1.73vw,23px);line-height:1.2;margin:0 0 7px;font-weight:600;letter-spacing:-.025em}
.programs p,.overview dd{margin:0;color:var(--soft);line-height:1.5}
.programs p{font-size:15px}
.overview dd{font-size:16px}
.overview{margin-top:26px;border-block:1px solid var(--line)}
.overview summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:17px;font-weight:600;padding:12px 0}
.overview summary::-webkit-details-marker{display:none}
.toggle-icon{position:relative;width:14px;height:14px;flex:none}
.toggle-icon::before,.toggle-icon::after{content:"";position:absolute;left:1px;right:1px;top:6px;height:1px;background:currentColor}
.toggle-icon::after{transform:rotate(90deg)}
.overview[open] .toggle-icon::after{display:none}
.overview dl{margin:0;padding:6px 0 19px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.overview dt{margin:0 0 6px;font-size:14px;font-weight:700}
@media(max-width:760px){
 .hero,.category-grid{grid-template-columns:1fr}
 .hero h1{font-size:clamp(44px,7.2vw,60px)}
 .hero-image{width:min(100%,570px)}
 .category-heading{margin-bottom:19px}
 .category .programs{margin-top:24px}
 .overview dl{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:460px){
 .overview dl{grid-template-columns:1fr;gap:13px}
}

@font-face{font-family:Archivo;src:url(assets/archivo-500.woff2) format("woff2");font-weight:500;font-display:swap}
.skip,.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip:focus{clip-path:none;width:auto;height:auto;padding:8px 12px;top:8px;left:8px;background:var(--paper);z-index:5}
.icon-defs{position:absolute;overflow:hidden}
.masthead{border-bottom:1px solid var(--line);color:var(--ink)}
.masthead-inner{width:92%;margin:auto;display:flex;align-items:center;gap:clamp(14px,1.5vw,25px);--main-nav-size:clamp(11px,.95vw,15px);--header-padding:clamp(19px,2.63vw,45px);padding-block:var(--header-padding) calc(var(--header-padding) - 2px)}
.wordmark{font-size:clamp(24px,2.49vw,41px);font-weight:700;line-height:1.08;letter-spacing:-.03em;text-transform:uppercase;white-space:nowrap;margin-right:auto}
.primary-nav,.social-nav{display:flex;align-items:center}
.primary-nav{gap:clamp(3px,.97vw,18px);font-size:var(--main-nav-size);font-weight:500;white-space:nowrap}
.primary-nav > :is(a,.nav-placeholder){padding:3px 6px}
.masthead nav > :is(a:not(.header-booking),.nav-placeholder){color:#6a685f}
.masthead nav > a:not(.header-booking):is(:hover,:focus-visible,[aria-current="page"]){color:#132f41}
.masthead nav > a[aria-current="page"]{text-decoration:underline;text-underline-offset:5px}
.social-nav{gap:clamp(10px,1.12vw,20px)}
.social-nav a{display:grid;place-items:center}
.social-nav svg{display:block;fill:currentColor;width:16px;height:16px}
.header-booking{display:inline-block;flex:none;border:1px solid var(--ink);border-radius:6.4px;padding:clamp(11px,1.1vw,19px) clamp(13px,1.45vw,25px);background:var(--ink);color:var(--paper);font-size:var(--main-nav-size);line-height:1.1;font-weight:500}
.header-booking:is(:hover,:focus-visible){background:#132f41;text-decoration:none}
.footer-substack{display:inline-block;flex:none;white-space:nowrap;border:1px solid currentColor;border-radius:6.4px;font-size:clamp(12px,1.02vw,16px);line-height:1.1;font-weight:500}
.mobile-menu{display:none}
.category-intro{max-width:80ch;margin:11px 0 0;font-size:clamp(16px,1.41vw,19px);line-height:1.45}
.category + .category{padding-top:clamp(28px,4vw,55px)}
@media(max-width:1120px){
 .masthead-inner{position:relative}
 .primary-nav,.masthead-social,.masthead-inner > .header-booking{display:none}
 .mobile-menu{display:block}
 .mobile-menu summary{list-style:none;cursor:pointer;padding:9px 0 9px 12px}
 .mobile-menu summary::-webkit-details-marker{display:none}
 .menu-icon{width:27px;height:13px;display:block;border-block:1px solid currentColor}
 .mobile-menu nav{position:absolute;z-index:5;left:-4.35%;right:-4.35%;top:100%;display:grid;justify-items:center;gap:15px;padding:24px;background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line);font-size:17px}
 .mobile-menu .social-nav{margin:4px 0 6px}
 .mobile-menu .header-booking{font-size:inherit}
}

.newsletter{position:relative;isolation:isolate;color:var(--paper);text-align:center;padding-block:clamp(84px,8.4vw,138px) clamp(105px,9.4vw,155px)}
.newsletter::before{content:"";position:absolute;inset:0;z-index:-1;background:#213c4e;clip-path:polygon(0 4vw,100% 0,100% calc(100% - 5vw),0 100%)}
.newsletter h2{font-size:35.2px;font-weight:600;line-height:1.2;letter-spacing:-.035em}
.newsletter-description{margin:12px 0 39px;font-size:16px;line-height:1.8}
.newsletter-form{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}
.newsletter-form input,.newsletter-form button{background:var(--paper);font-family:inherit}
.newsletter-form input{height:66px;width:min(280px,100%);border:1px solid rgb(0 0 0 / 12%);border-radius:8px;padding:0 31px;color:#000;font-size:16px}
.newsletter-form button{min-height:64px;min-width:126px;border:1px solid var(--paper);border-radius:6.4px;color:var(--ink);font-size:17.6px;cursor:pointer}
.newsletter-form :focus-visible{outline:2px solid var(--paper);outline-offset:4px}
.newsletter-privacy{margin:36px 0 0;font-size:11.1px;line-height:1.7}
.newsletter-status{margin:9px 0 0;font-size:13px}
.site-footer{text-align:center;padding:22px 0 39px}
.site-footer .endorsements{margin:0;font-size:16px;line-height:2.04}
.footer-substack{margin-top:22px;padding:11px 19px}
.site-footer .social-nav{justify-content:center;gap:12px;margin:21px 0 34px}
.site-footer .social-nav svg{width:20px;height:20px}
.site-footer .credits{margin:0;font-size:11.1px;line-height:1.7}
@media(max-width:500px){
 .newsletter h2{font-size:29px}
 .newsletter-description{margin-bottom:24px}
 .newsletter-form input{height:55px}
 .newsletter-form button{min-height:54px}
 .newsletter-privacy{margin-top:25px}
}

.program-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 25px;margin-top:35px}
.book-program,.download-program{display:inline-flex;align-items:center;justify-content:center;width:min(100%,224px);min-height:56px;padding:14px 22px;border:1px solid var(--ink);border-radius:6.4px;font-size:14px;font-weight:600}
.book-program{background:var(--ink);color:var(--paper);font-family:inherit;cursor:pointer}
.book-program:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.book-program:hover{background:#132f41;text-decoration:none}
.download-program{gap:8px;background:transparent;color:var(--ink)}
.download-program:hover{background:rgb(33 61 79 / 8%);text-decoration:none}
.catalog{padding-bottom:clamp(40px,6vw,90px)}

.carousel-controls,.carousel-navigation{display:flex;align-items:center}
.carousel-controls{justify-content:space-between;gap:12px;margin-top:8px}
.carousel-caption{margin:0;font-size:14px;line-height:1.4}
.carousel-caption-arrow{margin-inline:4px;vertical-align:-.05em}
.carousel-navigation{flex:none;gap:4px}
.carousel-count{font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}
.carousel-arrow{display:grid;place-items:center;width:40px;height:44px;border:0;padding:0;background:transparent;color:var(--ink);cursor:pointer}
.carousel-arrow:hover{background:rgb(33 61 79 / 8%)}
.carousel-arrow:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}

.program-groups{display:grid;gap:24px}
.program-group-title{margin:0 0 9px;font-size:14px;font-weight:700;letter-spacing:.035em;text-transform:uppercase}
.related-program{margin:19px 0 0;font-size:16px}
.related-program a{text-decoration:underline;text-underline-offset:4px}
.carousel-navigation[hidden]{display:none}
@media(max-width:760px){
 .program-groups{margin-top:24px}
 .category .program-groups .programs{margin-top:0}
}

html:has(.booking-dialog[open]){overflow:hidden;scrollbar-gutter:stable}
.booking-dialog{width:min(712px,calc(100% - 32px));max-height:calc(100% - 32px);max-height:calc(100dvh - 32px);padding:clamp(30px,5.5vw,62px);border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);overscroll-behavior:contain}
.booking-dialog::backdrop{background:rgb(19 47 65 / 66%)}
.booking-dialog h2{font-size:clamp(27px,5vw,38px);margin:0 34px 22px 0}
.booking-close{position:absolute;top:12px;right:12px;width:44px;height:44px;border:0;border-radius:6px;background:transparent;color:var(--ink);font:inherit;font-size:27px;cursor:pointer}
.booking-close:hover{background:rgb(33 61 79 / 8%)}
.booking-inquiry label,.booking-programs legend{display:block;margin:0 0 5px;font-weight:600;font-size:14px}
.booking-inquiry label span{font-weight:400}
.booking-inquiry :is(input:not([type="checkbox"]),textarea){display:block;width:100%;min-height:44px;padding:10px 12px;border:1px solid #7e8786;border-radius:6px;background:#f8f8f1;color:var(--ink);font:inherit;font-size:16px}
.booking-programs{min-width:0;margin:0;padding:0;border:0}
.booking-programs legend{padding:0;margin-bottom:8px}
.booking-program-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 16px;padding:8px 12px;border:1px solid #7e8786;border-radius:6px;background:#f8f8f1}
.booking-program-options label{display:flex;align-items:center;gap:8px;min-height:31px;margin:0;font-weight:400;cursor:pointer}
.booking-program-options input{width:16px;height:16px;flex:none;margin:0;accent-color:var(--ink);cursor:pointer}
.booking-inquiry textarea{resize:vertical}
.booking-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;margin:16px 0}
.booking-form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:18px}
.booking-form-actions button{width:auto;font-family:inherit;cursor:pointer}
.booking-preview-status{margin:12px 0 0;font-size:13px}
.booking-dialog :focus-visible{outline:2px solid var(--ink);outline-offset:2px}
@media(max-width:480px){.booking-fields,.booking-program-options{grid-template-columns:1fr}}

.about-page .masthead {
  position: absolute;
  inset: 0 0 auto;
  z-index: 3;
  border-bottom: 0;
  color: var(--paper);
}
.about-page .primary-nav > :is(a,.nav-placeholder) { color: var(--paper); }
.about-page .masthead-inner > .header-booking { border-color: var(--paper); }
.about-page .masthead :focus-visible { outline-color: var(--paper); }
.about-page .masthead .skip:focus { color: var(--ink); }
.about-banner {
  height: clamp(390px, 48.6vw, 820px);
  background: var(--ink);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - 4vw));
}
.about-banner img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 46.8935% 20.0012%;
}
.about-quote {
  max-width: 980px;
  margin: 0 clamp(0px, 8vw, 112px) 0 clamp(0px, 4.25vw, 56px);
  padding-block: clamp(48px, 7vw, 96px) clamp(34px, 4vw, 56px);
}
.about-quote blockquote {
  margin: 0;
  font-size: clamp(20px, 1.88vw, 28px);
  font-weight: 600;
  font-style: italic;
  line-height: 1.65;
}
.about-quote figcaption { margin-top: 22px; font-size: 14px; text-align: right; }
.about-quote cite { font-style: normal; }
.profile {
  display: flow-root;
  padding-block: clamp(30px, 3.3vw, 50px) clamp(42px, 4.8vw, 72px);
  font-size: clamp(1rem, .55vw + .625rem, 1.125rem);
  line-height: 1.7;
}
.profile-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 24px;
  margin-bottom: clamp(26px, 3.5vw, 52px);
}
.profile-section {
  display: flow-root;
  clear: both;
  margin-top: clamp(42px, 6vw, 88px);
}
.profile-culture {
  display: block;
  clear: none;
  margin-top: clamp(25px, 3vw, 44px);
}
.profile :is(h1,h2) {
  margin: 0 0 14px;
  font-weight: 600;
  line-height: 1.17;
  letter-spacing: -.04em;
}
.profile h1 { margin: 0; font-size: clamp(31px, calc(1rem + 1.56vw), 42px); }
.profile h2 { font-size: clamp(26px, 2.55vw, 37px); }
.profile :is(header,.profile-section,.profile-reading) > p { margin: 0 0 1em; }
.profile :is(header,.profile-section,.profile-reading) > p:last-child { margin-bottom: 0; }
.profile .profile-deck { font-size: clamp(1.25rem, 1.85vw, 1.625rem); line-height: 1.4; }
.profile-reading { max-inline-size: 71ch; }
.profile-culture > p { max-inline-size: 83ch; }
.profile-portrait {
  float: right;
  width: min(44%, 485px);
  margin: 3px 0 16px clamp(26px, 4.4vw, 64px);
}
.profile-teaching { max-inline-size: 82ch; margin-inline: auto; }
.profile-detail {
  float: left;
  width: min(34%, 270px);
  margin: 6px clamp(20px, 2.5vw, 36px) 12px 0;
}
.profile-film { width: min(84%, 55rem); margin: clamp(22px, 4vw, 52px) 0 28px; }
.profile-film-after { margin-inline-start: min(21vw, 20rem); }
.profile-yoga-intro { margin-inline-start: auto; }
.profile-biorhythms { border-top: 1px solid var(--line); padding-top: clamp(28px, 4.25vw, 62px); }
.profile-biorhythms h2, .profile-yoga h2 { font-size: clamp(29px, 3.2vw, 46px); }
.profile-pullquote {
  float: right;
  width: min(30%, 21rem);
  margin: 6px clamp(0px, 4vw, 54px) 20px clamp(22px, 3.1vw, 46px);
  padding-inline-start: clamp(16px, 2vw, 30px);
  border-inline-start: 1px solid var(--ink);
}
.profile-pullquote blockquote {
  margin: 0;
  font-size: clamp(1.25rem, 1.9vw, 1.625rem);
  font-weight: 600;
  font-style: italic;
  line-height: 1.45;
}
.profile-video {
  float: left;
  width: min(49%, 38rem);
  margin: 4px clamp(24px, 4vw, 58px) 16px 0;
}
.profile-yoga-intro { margin-bottom: 22px; }
.profile-yoga-close { clear: both; }
.profile :is(.profile-portrait,.profile-detail,.profile-film) > img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  border-radius: 6px;
  object-fit: cover;
  height: auto;
}
.profile .profile-portrait > img { aspect-ratio: 5 / 7; object-position: 50% 33%; }
.profile-film > img { object-position: center 44%; }
.profile :is(.profile-film,.profile-pullquote) figcaption { margin-top: 8px; font-size: 14px; line-height: 1.5; }
.profile-video .play span::before {
  content: "";
  width: 13px;
  height: 16px;
  background: currentColor;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
.profile-video .carousel-caption { margin: 0; font-size: 14px; }
.profile-substack {
  display: inline-flex;
  align-items: center;
  padding: 1.5em 1.9em;
  border-radius: 6.4px;
  background: var(--ink);
  color: var(--paper);
  font-size: clamp(1rem, calc(1rem + .12vw), 1.1rem);
  font-weight: 500;
  line-height: 1;
}
.profile-substack:is(:hover,:focus-visible) { background: #132f41; text-decoration: none; }
@media (max-width: 760px) {
  .about-quote { margin-inline: 0; }
  .profile :is(.profile-portrait,.profile-detail,.profile-video) { float: none; width: 100%; margin: 0 0 18px; }
  .profile-portrait { max-width: 360px; }
  .profile-detail { max-width: 300px; }
  .profile-film { width: 100%; }
  .profile-film-after { margin-inline-start: 0; }
  .profile-pullquote { float: none; width: auto; max-width: 26rem; margin: 0 0 20px; }
}
