@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#22231f;--cream:#f3f0e8;--copper:#b68a68;--line:#d8d5cb}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:86px}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #b68a68;outline-offset:5px}header{height:96px;background:#f3f0e8;display:flex;align-items:center;justify-content:space-between;padding:0 5%;position:relative;z-index:5}.brand{font-family:Georgia,serif;font-size:34px;letter-spacing:7px;display:inline-block}.brand span{display:block;font-family:'DM Sans',sans-serif;font-size:8px;letter-spacing:3px;text-align:center;margin-top:5px}nav{display:flex;align-items:center;gap:32px;font-size:12px}nav>a:not(.button):hover{color:#926b4c}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;border:1px solid var(--ink);padding:20px 25px;background:var(--ink);color:var(--cream);font-size:12px;transition:.2s}.button:hover{background:#745940;border-color:#745940}.button span{font-size:20px}.small{padding:12px 20px}.menu{display:none}.hero{height:730px;min-height:620px;position:relative;color:var(--cream);overflow:hidden}.hero>img{width:100%;height:100%;object-fit:cover;object-position:50% 52%}.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,16,13,.85),rgba(15,16,13,.25)),linear-gradient(0deg,rgba(15,16,13,.65),transparent 40%)}.hero-content{position:absolute;top:11%;left:8%;max-width:700px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:600;line-height:1.8}.eyebrow i{display:inline-block;background:var(--copper);height:7px;width:7px;border-radius:50%;margin-right:8px}h1{font-family:'Manrope',sans-serif;font-size:clamp(62px,6.9vw,100px);font-weight:500;line-height:1.04;letter-spacing:-5px;margin:30px 0 22px}em{font-family:Georgia,serif;font-weight:400;color:#a17d5e}h1 em{color:#d5b89a}.intro{font-size:14px;line-height:1.8;color:#e1ded6;margin-bottom:28px}.hero .button{background:var(--cream);color:var(--ink);border-color:var(--cream)}.hero .button:hover{background:#d4b99c}.hero-bottom{position:absolute;bottom:46px;left:8%;right:8%;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ffffff40;padding-top:23px;font-size:10px;letter-spacing:1.8px}.hero-bottom>a{font-size:25px}.ribbon{padding:25px 6%;background:#d6c5ae;display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:3px}.ribbon b{font-size:23px;font-weight:400}.section{padding:100px 8%;scroll-margin-top:12px}h2{font-family:'Manrope',sans-serif;font-size:clamp(36px,3.7vw,53px);font-weight:400;letter-spacing:-2px;line-height:1.17;margin:20px 0 32px}p{line-height:1.8}.statement{display:block}.statement>.eyebrow{margin-top:0}.statement-copy{max-width:640px;font-size:14px;color:#66675e}.experiences{background:#e9e6dd}.section-top{display:flex;align-items:end;justify-content:space-between;margin-bottom:30px}.section-top>p{font-size:13px;color:#68685f;margin-bottom:38px}.classes{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.class{background:var(--cream);display:flex;flex-direction:column;overflow:hidden}.featured{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.class-visual{position:relative;min-height:360px}.class-visual img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:center 42%}.class-visual>span{position:absolute;bottom:20px;left:24px;font-size:9px;letter-spacing:2px;color:white;text-shadow:0 1px 5px #000}.class-content{padding:38px 40px}.class h3{font-family:'Manrope',sans-serif;font-size:44px;font-weight:500;letter-spacing:-2px;margin:15px 0}.class-content>p:not(.eyebrow){font-size:14px;max-width:410px;color:#66675f}.tags{display:flex;flex-wrap:wrap;gap:8px;margin:23px 0}.tags span{border:1px solid #d2d0c5;padding:7px 10px;font-size:9px;letter-spacing:1px}.text-link{border:0;border-top:1px solid var(--line);padding:20px 0 0;background:transparent;display:flex;width:100%;justify-content:space-between;font-size:12px}.abstract{height:220px;position:relative;overflow:hidden;padding:30px 40px;background:#c1b098;color:#f2eadc}.abstract span{position:relative;z-index:1;font-size:48px;line-height:1;font-family:Georgia,serif;font-style:italic}.lagree{background:repeating-linear-gradient(105deg,#998970 0px,#998970 1px,#b9ac97 2px,#b9ac97 18px)}.lagree:after{content:'';position:absolute;width:290px;height:290px;right:20px;top:40px;border:1px solid #e6d8c2;border-radius:50%;box-shadow:0 0 0 25px #e6d8c230,0 0 0 50px #e6d8c220}.sweat{background:#9b6243}.sweat:after{content:'';position:absolute;inset:-80px -20px -80px 45%;background:repeating-linear-gradient(65deg,transparent 0px,transparent 26px,#dfac7d 27px,#dfac7d 28px);transform:rotate(15deg)}.private{background:#262821;color:var(--cream);position:relative;overflow:hidden;display:grid;grid-template-columns:1.4fr 1fr;gap:0 80px}.private>.eyebrow{grid-column:1/-1}.private>div{align-self:end;z-index:1}.private>div p{color:#c5c6bb;font-size:14px;margin-bottom:30px}.private .button{background:#d5b99b;color:#23251e;border-color:#d5b99b}.private h2{z-index:1}.private-mark{position:absolute;font-size:320px;letter-spacing:-30px;right:7%;top:-75px;color:#ffffff04}.studio{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}.studio-photo{position:relative}.studio-photo img{width:100%;height:600px;object-fit:cover;display:block}.studio-photo>span{position:absolute;bottom:15px;left:20px;color:white;font-size:8px;letter-spacing:1px;text-shadow:0 1px 4px #000}.studio-copy>p:not(.eyebrow){font-size:14px;color:#66675e}.studio-detail{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:25px;margin:30px 0;padding:16px 0}.studio-detail strong{font-size:58px;font-family:Georgia,serif;font-weight:400;color:#9d7d5c}.studio-detail p{font-size:12px}.studio-copy .muted{font-size:11px!important}.faq{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.3fr;gap:65px}.faq details{border-bottom:1px solid var(--line);padding:24px 0}.faq summary{list-style:none;cursor:pointer;font-size:14px;display:flex;justify-content:space-between;gap:15px}.faq summary::-webkit-details-marker{display:none}.faq summary span{color:#987354;font-size:19px}.faq details[open] summary span{transform:rotate(45deg)}.faq details p{font-size:13px;color:#66675e;max-width:500px}.start{background:#ded3c2;display:grid;grid-template-columns:1.3fr 1fr;gap:90px;align-items:center}.start h2{font-size:54px}.start>div>p:not(.eyebrow){font-size:13px;max-width:360px}.chooser label{display:block;font-size:12px;margin-bottom:12px}.chooser select{width:100%;background:transparent;border:0;border-bottom:1px solid #9c917f;padding:15px 0;border-radius:0;color:var(--ink)}.chooser .button{width:100%;margin-top:24px}.availability{font-size:11px;color:#625e55}.chooser #selection-result{font-size:13px;line-height:1.7;padding:16px;background:#f3f0e8;margin-top:18px}footer{background:#1f211c;color:var(--cream);padding:50px 8%;display:flex;align-items:center;justify-content:space-between;gap:25px}footer p{font-size:12px;color:#bcbfb2}footer>span{font-size:10px;color:#bcbfb2}@media(min-width:1600px){.section{padding-left:max(8%,calc((100% - 1350px)/2));padding-right:max(8%,calc((100% - 1350px)/2))}}@media(max-width:900px){header{height:80px}nav{gap:18px}.hero{height:700px}.hero-content{top:14%}.section{padding:70px 6%}.studio{gap:35px}.studio-photo img{height:520px}.class-content{padding:28px}.start{gap:35px}.start h2{font-size:42px}.private{gap:30px}.hero-bottom{left:6%;right:6%}.ribbon{font-size:9px;letter-spacing:1px}}@media(max-width:650px){header{padding:0 6%}.brand{font-size:28px}.menu{display:block;background:transparent;border:0;font-size:24px}nav{display:none;position:absolute;top:80px;left:0;right:0;background:var(--cream);padding:25px;flex-direction:column;align-items:stretch}nav.open{display:flex}.hero{height:700px;min-height:0}.hero-content{left:6%;right:6%;top:60px}.hero .eyebrow{font-size:8px;max-width:290px}h1{font-size:68px;letter-spacing:-3px;margin-top:30px}.hero>img{object-position:60% center}.shade{background:linear-gradient(90deg,#12130fea,#12130f55)}.intro{font-size:13px}.hero-bottom{font-size:8px;letter-spacing:1px;bottom:40px;gap:20px}.hero-bottom>span:nth-child(2){max-width:100px}.ribbon{gap:15px;overflow:hidden;white-space:nowrap;padding:18px 6%}.ribbon span:nth-last-child(-n+3),.ribbon b:last-of-type{display:none}.section{padding:60px 6%}h2{font-size:37px;letter-spacing:-1.5px}.section-top{display:block}.section-top>p{margin-bottom:25px}.classes,.featured{display:flex;flex-direction:column}.class-visual{min-height:310px}.class h3{font-size:37px}.abstract{height:175px}.private,.studio,.faq,.start{grid-template-columns:1fr;gap:25px}.private>.eyebrow{grid-column:auto}.private h2{margin-bottom:0}.private-mark{font-size:220px;top:40px}.studio-photo img{height:460px}.studio-copy{padding-top:10px}.faq{gap:0}.faq details:first-child{padding-top:10px}.start h2{font-size:42px}footer{flex-direction:column;align-items:flex-start;padding:40px 6%;gap:15px}footer p{margin:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Welcome uses the same serif italic typography as the hero emphasis. */
.hero .welcome{display:block;margin:34px 0 0;font-size:clamp(32px,3.8vw,52px);line-height:1.16;letter-spacing:-1px}
.hero .welcome em{font-family:Georgia,serif;font-style:italic;font-weight:400;color:#d5b89a}
@media(max-width:650px){.hero .welcome{margin-top:32px;font-size:36px;max-width:340px}}
/* Original SCULPT lettering, rendered with clean vector outlines. */
header .brand-logo{line-height:1;letter-spacing:0}
header .brand-logo>img{display:block;width:185px;height:auto}
header .brand-logo>span{margin-top:9px}
.hero .welcome{display:flex;align-items:center;flex-wrap:wrap;gap:14px 20px}
.hero .welcome-logo{display:block;width:clamp(200px,22vw,290px);height:auto;flex-shrink:0}
@media(max-width:650px){header .brand-logo>img{width:157px}.hero .welcome{gap:15px;max-width:100%}.hero .welcome-logo{width:230px}}

/* Seamless movement: two identical groups travel by exactly one group. */
.ribbon{position:relative;display:block;overflow:hidden;padding:24px 0;background:#d6c5ae}
.ribbon-track{display:flex;width:max-content;animation:sculpt-ribbon 30s linear infinite;will-change:transform}
.ribbon-group{display:flex;flex:none;align-items:center;justify-content:space-around;gap:44px;min-width:100vw;padding:0 32px;white-space:nowrap}
.ribbon .ribbon-group>span,.ribbon .ribbon-group>b{display:block;flex:none}
.ribbon-group>span{font-size:13px;letter-spacing:3px;text-transform:uppercase}
.ribbon-group>b{font-size:19px;font-weight:400}
.ribbon:hover .ribbon-track{animation-play-state:paused}
@keyframes sculpt-ribbon{to{transform:translateX(-50%)}}
@media(max-width:650px){.ribbon{padding:20px 0}.ribbon-group{gap:30px;padding:0 24px}.ribbon-group>span{font-size:11px;letter-spacing:2px}}
@media(prefers-reduced-motion:reduce){.ribbon-track{animation:none;width:100%}.ribbon-group{min-width:0;width:100%;white-space:normal;flex-wrap:wrap;gap:14px 22px;justify-content:center}.ribbon-group[aria-hidden="true"]{display:none}}

/* Course photography retains the existing featured/two-column composition. */
.course-photo{height:220px;position:relative;overflow:hidden;margin-top:auto}
.course-photo>img{display:block;width:100%;height:100%;object-fit:cover}
.lagree-photo{background:#fff}
.lagree-photo>img{object-position:50% 53%}
.class-visual.strength-visual>img{object-position:50% 45%}
.strength-visual:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#0008);pointer-events:none}
.class-visual>span{z-index:1;bottom:32px}
.photo-credit{position:absolute;right:12px;bottom:9px;z-index:2;font-size:8px;line-height:1.5;letter-spacing:.2px;color:#f3f0e8;background:#1f211cb3;padding:3px 6px}
.photo-credit:hover{text-decoration:underline}
.lagree-photo .photo-credit{color:#505149;background:#ffffffe6}
@media(max-width:650px){.course-photo{height:220px}}

/* Blend the product photo into the warm site palette. */
.lagree-photo{background:#e9e6dd;isolation:isolate}
.lagree-photo>img{mix-blend-mode:multiply}
.lagree-photo .photo-credit{background:transparent;color:#505149}
.class-visual.strength-visual>img{object-position:50% 36%}

.text-link {
  position: relative;
  isolation: isolate;
}
.text-link::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 8px -6px -8px;
  border-radius: 4px;
  background: rgba(185, 132, 83, .16);
  box-shadow: 0 0 10px rgba(185, 132, 83, .14);
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease-out;
}
@media (hover: hover) {
  .text-link:hover::before { opacity: 1; }
}
.text-link:focus-visible::before { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .text-link::before { transition: none; }
}


@media (min-width: 651px) {
  .classes { row-gap: 0; }
  .classes > .featured { margin-bottom: 22px; }
  .classes > .class:has(.lagree-photo) {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: 2 / span 2;
    grid-column: 1;
  }
  .classes > .class:has([data-select="SWEAT"]) {
    grid-row: 2;
    grid-column: 2;
  }
  .classes > .class:not(.featured) > .class-content {
    display: flex;
    flex: 1;
    flex-direction: column;
  }
  .classes > .class:not(.featured) .text-link { margin-top: auto; }
}
.text-link { align-items: baseline; gap: 8px; flex-wrap: wrap; }
.course-capacity { margin-left: auto; font-size: 11px; font-weight: 400; color: #605b52; }

/* Preserve the full composition of the supplied Lagree photograph. */
.course-photo.lagree-photo{height:auto;aspect-ratio:1 / 1;background:transparent}.lagree-photo>img{mix-blend-mode:normal;object-fit:cover;object-position:center}

/* Matching Lagree and Sweat photography and aligned desktop rows. */
.course-photo.sweat-photo{height:auto;aspect-ratio:1 / 1}.sweat-photo>img{object-fit:cover;object-position:50% 50%}
@media(min-width:651px){.classes>.class:has(.sweat-photo){display:grid;grid-template-rows:subgrid;grid-row:2 / span 2;grid-column:2}}

/* Keep the semi-private course introduction readable beside the heading. */
.experiences .section-top{display:grid;grid-template-columns:1fr 1fr;gap:0}.experiences .section-top>p{max-width:none;min-width:0;margin-left:40px;margin-right:40px;overflow-wrap:break-word}
@media(max-width:900px){.experiences .section-top>p{margin-left:28px;margin-right:28px}}
@media(max-width:650px){.experiences .section-top{display:block}.experiences .section-top>p{margin-left:0;margin-right:0}}
/* Pricing shares the studio palette and the existing section spacing. */
.rates{background:#e9e6dd}.rates .section-top{gap:35px}.rates .section-top>p{max-width:400px}.session-rates{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:10px 0 40px}.session-rates>div{padding:25px 0}.session-rates>div+div{padding-left:30px;border-left:1px solid var(--line)}.session-rates span{font-size:10px;letter-spacing:1.5px}.session-rates h3{font:400 27px Manrope,sans-serif;margin:12px 0}.session-rates p{font-size:12px;color:#66675e;margin:0;line-height:1.8}.credit-rates{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.credit-rates article{padding:28px 22px;background:#f3f0e8;border:1px solid #d8d5cb;position:relative;display:flex;flex-direction:column}.credit-rates .eyebrow{font-size:8px;letter-spacing:1px}.credit-rates h3{font:400 28px Manrope,sans-serif;letter-spacing:-1px;margin:13px 0}.credit-rates strong{font:400 33px Manrope,sans-serif}.credit-rates article>p:not(.eyebrow){font-size:11px;line-height:1.9;color:#66675e;margin-bottom:25px}.credit-rates a{font-size:11px;border-top:1px solid #d8d5cb;padding-top:17px;display:flex;justify-content:space-between;margin-top:auto}.credit-rates .recommended{background:#262821;color:#f3f0e8;border-color:#262821}.credit-rates .recommended>p:not(.eyebrow){color:#d0cabc}.credit-rates .recommended a{border-color:#ffffff30}.rates-badge{position:absolute;top:-13px;left:18px;padding:7px 10px;background:#b68a68;color:#fff;font-size:8px;letter-spacing:1px}.rates-discovery{margin-top:24px;padding:28px;background:#ded3c2;display:flex;gap:30px;align-items:center;justify-content:space-between}.rates-discovery h3{font:400 26px Manrope,sans-serif;letter-spacing:-.7px;margin:10px 0}.rates-discovery p:not(.eyebrow){font-size:11px;line-height:1.8;color:#666054;margin:0}.rates-discovery>strong{font:400 32px Manrope,sans-serif;white-space:nowrap}.rates-discovery .button{flex-shrink:0}.rates-note{font-size:10px;color:#747165;line-height:1.9;margin:22px 0 0}@media(max-width:1000px){.credit-rates{grid-template-columns:repeat(2,1fr);gap:25px 16px}.rates-discovery{flex-wrap:wrap}.rates-discovery>div{flex:1 1 70%}}@media(max-width:650px){.session-rates{grid-template-columns:1fr}.session-rates>div+div{padding:20px 0;border-left:0;border-top:1px solid var(--line)}.session-rates>div{padding:20px 0}.credit-rates article{padding:23px 15px}.credit-rates h3{font-size:24px}.credit-rates strong{font-size:29px}.rates-discovery{display:block;padding:24px}.rates-discovery>strong{display:block;margin:18px 0}.rates-discovery .button{width:100%}.rates-discovery p br{display:none}}

/* Keep the main navigation visible without shifting the page content. */
body>header{position:sticky;top:0;z-index:50;box-shadow:0 1px 0 #d8d5cb}html{scroll-padding-top:104px}
@media(max-width:900px){html{scroll-padding-top:88px}}
@media(max-width:650px){body>header nav{max-height:calc(100dvh - 80px);overflow-y:auto}}
