:root{--cream:#f4eee4;--clay:#a75e45;--blue:#355165;--ink:#363934;--sand:#d9cdbc;--muted:#676960;--line:rgba(54,57,52,.21);--font:"Avenir Next","Trebuchet MS",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.6 var(--font);-webkit-font-smoothing:antialiased}h1,h2,h3,p,figure,dl,dd{margin:0}h1,h2,h3{font-weight:400;line-height:1.02;letter-spacing:-.055em}h2{font-size:clamp(52px,6.8vw,104px)}h3{font-size:28px;letter-spacing:-.035em}a{color:inherit;text-underline-offset:5px}a:focus-visible,summary:focus-visible,button:focus-visible,.gallery-window:focus-visible{outline:2px solid var(--clay);outline-offset:6px}button{font:inherit;color:inherit}img{display:block;max-width:100%}.wrap{width:min(1280px,calc(100% - 160px));margin-inline:auto}.skip{position:fixed;top:-100px;left:20px;z-index:30;background:var(--cream);padding:12px}.skip:focus{top:10px}.section-name{font-size:13px}.section-top{display:flex;justify-content:space-between;align-items:center;gap:28px}.section-top>a,.section-top>span{font-size:12px}.section-top>a{text-decoration:none}.section-top>a span{margin-left:18px}
/* The header stays quiet; the artwork carries the first screen. */
.header{position:absolute;z-index:10;top:0;left:0;right:0;height:112px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:20px 48px}.brand img{width:64px;height:64px;border-radius:50%;mix-blend-mode:multiply}.header-book{justify-self:end;font-size:12px;text-decoration:none;border-bottom:1px solid var(--ink);padding:8px 0;display:flex;gap:28px}.menu summary{font-size:12px;display:flex;align-items:center;gap:16px;list-style:none;cursor:pointer;width:90px;height:44px}.menu-lines{display:block;width:22px;height:7px;border-block:1px solid currentColor}.menu nav{position:absolute;top:100px;left:32px;display:flex;flex-direction:column;gap:8px;padding:28px 40px;background:var(--cream);min-width:280px;border:1px solid var(--line)}.menu nav a{font-size:22px;letter-spacing:-.03em;text-decoration:none;padding-block:7px}.menu nav a:hover{color:var(--clay)}summary::-webkit-details-marker{display:none}
.hero-scroll{height:150svh;position:relative;--scene:0}.hero-stage{height:100svh;min-height:680px;position:sticky;top:0;overflow:hidden;isolation:isolate;background:#f1e6d7}.hero-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;transform-origin:70% 65%}.hero-content{position:absolute;left:7%;top:26%;max-width:650px}.hero-location{font-size:12px;margin-bottom:35px}.hero-content h1{font-size:clamp(76px,9.5vw,148px);line-height:.98;letter-spacing:-.065em}.hero-description{font-size:clamp(28px,3vw,46px);letter-spacing:-.04em;line-height:1.2;margin-top:20px}.link-cta{display:inline-flex;gap:24px;margin-top:38px;font-size:13px;text-decoration:none;padding-block:10px;border-bottom:1px solid var(--ink)}.hero-bottom{position:absolute;left:48px;right:48px;bottom:25px;display:flex;justify-content:space-between;gap:25px;font-size:11px}.hero-bottom a{text-decoration:none}.hero-bottom a span{margin-left:18px}.motion-ready .hero-art{transform:translate3d(calc(var(--scene) * -4%),calc(var(--scene) * 4%),0) scale(calc(1 + var(--scene) * .22)) rotate(calc(var(--scene) * -4deg));will-change:transform}.motion-ready .hero-content{transform:translate3d(0,calc(var(--scene) * -80px),0);opacity:calc(1 - var(--scene) * .75)}
.story{padding-block:130px 115px;display:grid;grid-template-columns:1fr 1fr;column-gap:100px}.story>.section-name{grid-column:1/-1;margin-bottom:55px}.story-copy{max-width:440px;padding-top:8px}.story-copy>p:first-child{font-size:24px;line-height:1.5;letter-spacing:-.025em}.story-copy>p+p{font-size:14px;margin-top:24px;color:var(--muted)}.story-copy .signature{margin-top:45px;color:var(--ink)}.signature span{display:block;margin-top:5px;font-size:11px;color:var(--muted)}
.movement-gallery{padding-bottom:120px;overflow:hidden;--scene:0}.gallery-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.gallery-top>p{font-size:15px}.gallery-controls{display:flex;gap:12px}.gallery-controls button{border:1px solid var(--line);background:transparent;border-radius:50%;width:42px;height:42px;cursor:pointer}.gallery-controls button:hover{background:var(--sand)}.gallery-controls button:disabled{opacity:.25;cursor:default}.gallery-window{display:flex;gap:30px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 80px 20px;scrollbar-width:thin;scrollbar-color:var(--clay) transparent}.gallery-item{flex:0 0 55%;height:550px;scroll-snap-align:center;position:relative;overflow:hidden;background:var(--sand)}.gallery-item>img{width:100%;height:100%;object-fit:cover;transition:filter .3s}.gallery-item figcaption{position:absolute;left:28px;bottom:23px;font-size:15px;z-index:1}.gallery-life{flex-basis:29%;color:var(--cream)}.gallery-life:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#161c1a80);pointer-events:none}.gallery-life img{object-position:center 55%}.gallery-petal{flex-basis:45%}.gallery-hint{font-size:11px;margin-top:12px;color:var(--muted)}.gallery-hint span{margin-left:15px}.motion-ready .gallery-item>img{transform:scale(1.1) translateY(calc((var(--scene) - .5) * -55px));will-change:transform}
.directions{padding-block:65px 110px;background:#ece8df}.directions h2{margin:45px 0 65px}.course-groups{display:grid;grid-template-columns:1fr 1fr;gap:85px}.course-group h3{margin-bottom:30px}.course{border-top:1px solid var(--line)}.course:last-of-type{border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none}.course summary{display:grid;grid-template-columns:1fr auto 16px;gap:18px;align-items:center;padding:24px 0;font-size:17px;letter-spacing:-.025em}.age{font-size:11px;letter-spacing:0;white-space:nowrap}.plus{position:relative;width:14px;height:14px}.plus:before,.plus:after{content:"";position:absolute;top:6px;left:0;width:14px;height:1px;background:currentColor}.plus:after{transform:rotate(90deg);transition:transform .2s}.course[open] .plus:after{transform:rotate(0deg)}.course-body{padding:0 24px 27px 0;font-size:14px;max-width:440px}.teacher{margin-block:18px;font-size:11px;color:var(--muted)}.course-body a{display:inline-block;margin-top:10px}.group-note{font-size:13px;line-height:1.6;color:var(--muted);margin-top:30px}
.pricing{padding-block:100px 110px}.pricing-heading{display:flex;justify-content:space-between;align-items:end;gap:45px;margin:55px 0 65px}.pricing-heading h2{font-size:clamp(47px,6.5vw,98px)}.pricing-heading p{font-size:13px;color:var(--muted);padding-bottom:6px;line-height:1.7}.price-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:60px}.price-column h3{font-size:25px;margin-bottom:35px;min-height:58px}.price-column small{display:block;font-size:12px;letter-spacing:0;margin-top:12px;color:var(--muted)}dl>div{display:flex;justify-content:space-between;gap:12px;padding-block:17px;border-top:1px solid var(--line);font-size:13px}dd{white-space:nowrap}.price-offer{border-top:1px solid var(--line);margin-top:45px;padding-top:24px;font-size:13px;display:flex;gap:25px;align-items:baseline}.price-offer>span{font-size:40px;letter-spacing:-.05em;color:var(--clay)}
.schedule{padding-block:60px 110px;border-top:1px solid var(--line)}.schedule-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin:50px 0 45px}.schedule-heading h2{font-size:clamp(42px,5.6vw,82px)}.schedule-heading p{font-size:12px;color:var(--muted);padding-bottom:5px}.timetable{padding:12px;background:white}.timetable iframe{display:block;width:100%;height:580px;border:0}.schedule-help{font-size:11px;margin-top:14px;color:var(--muted)}.mobile-schedule{display:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;min-height:54px;padding:16px 28px;text-decoration:none;font-size:13px;transition:background .2s}.button-dark{background:var(--ink);color:var(--cream)}.button-dark:hover{background:var(--blue)}.button-light{background:var(--cream);color:var(--ink)}.button-light:hover{background:var(--sand)}.first-visit{display:grid;grid-template-columns:1fr 1.25fr;gap:80px;margin-top:90px}.first-visit>p{font-size:28px;line-height:1.25;letter-spacing:-.04em}.first-visit details{border-top:1px solid var(--line)}.first-visit details:last-child{border-bottom:1px solid var(--line)}.first-visit summary{display:flex;justify-content:space-between;gap:25px;padding-block:20px;font-size:13px}.first-visit details p{padding:0 24px 24px 0;font-size:13px;color:var(--muted)}
.visit{padding-block:75px 70px;background:#e8e1d5}.visit-heading{display:flex;justify-content:space-between;align-items:end;gap:35px;margin:50px 0 65px}.visit-heading h2{font-size:clamp(50px,6.5vw,96px)}.visit-heading>p{font-size:13px;line-height:1.8;padding-bottom:5px}.route-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:70px}.route-map img{width:100%;height:auto}.route-map>a{display:flex;justify-content:space-between;padding-block:17px;border-bottom:1px solid var(--line);font-size:12px;text-decoration:none}.route-steps{list-style:none;counter-reset:route;margin:0;padding:0}.route-steps li{counter-increment:route;position:relative;padding:20px 0 25px 40px;border-top:1px solid var(--line)}.route-steps li:before{content:counter(route,decimal-leading-zero);position:absolute;left:0;top:21px;font-size:11px;color:var(--clay)}.route-steps h3{font-size:24px}.route-steps p{font-size:13px;line-height:1.7;margin-top:13px;color:var(--muted)}.visit-contacts{display:flex;justify-content:space-between;align-items:center;gap:25px;padding-top:55px}.phone{font-size:27px;letter-spacing:-.04em;text-decoration:none;white-space:nowrap}.visit-contacts>a:not(.phone),.socials{font-size:12px}.socials{display:flex;gap:20px}.closing{height:620px;position:relative;isolation:isolate;overflow:hidden;background:var(--clay);color:var(--cream);display:flex;align-items:center;padding:60px 80px}.closing>img{position:absolute;right:-10%;top:-30%;height:160%;width:70%;object-fit:cover;opacity:.32;z-index:-1;mix-blend-mode:screen}.closing>div>p{font-size:12px;margin-bottom:30px}.closing h2{font-size:clamp(65px,8vw,120px);margin-bottom:38px}.footer{display:flex;justify-content:space-between;gap:20px;padding-block:32px;font-size:11px;color:var(--muted)}
@media(min-width:1700px){.hero-content{left:calc((100vw - 1480px)/2)}}
@media(max-width:1100px){.wrap{width:calc(100% - 80px)}.header{padding-inline:32px}.hero-content{left:5%}.hero-content h1{font-size:11vw}.story{column-gap:55px}.gallery-window{padding-inline:40px}.gallery-item{height:470px;flex-basis:65%}.gallery-life{flex-basis:40%}.course-groups{gap:45px}.course summary{font-size:16px;gap:10px}.price-columns{gap:30px}.pricing-heading,.visit-heading{display:block}.pricing-heading p,.visit-heading>p{margin-top:26px}.route-layout{gap:35px}.visit-contacts{flex-wrap:wrap}.closing{padding-inline:40px}}
@media(max-width:700px){html{scroll-padding-top:25px}.wrap{width:calc(100% - 40px)}.header{height:90px;padding:14px 20px;grid-template-columns:1fr auto 1fr}.brand img{width:52px;height:52px}.menu summary{font-size:0;width:44px}.menu nav{left:15px;right:15px;top:85px;min-width:0;padding:25px}.header-book{font-size:10px;gap:10px;max-width:120px;text-align:right;line-height:1.5}.hero-scroll{height:135svh}.hero-stage{min-height:660px}.hero-art{object-position:62% 50%}.hero-content{top:24%;left:7%;right:7%;max-width:none}.hero-content h1{font-size:clamp(65px,18vw,100px)}.hero-location{margin-bottom:25px;font-size:11px}.hero-description{font-size:30px;margin-top:18px}.link-cta{font-size:11px;gap:18px;margin-top:32px}.hero-art{opacity:.6}.hero-bottom{left:20px;right:20px;font-size:10px;bottom:24px}.hero-bottom>span:last-child{display:none}.hero-bottom a span{margin-left:8px}.story{display:block;padding-block:75px 65px}.story>.section-name{margin-bottom:34px}.story h2{font-size:66px}.story-copy{margin-top:35px;max-width:none}.story-copy>p:first-child{font-size:21px}.story-copy .signature{margin-top:28px}.movement-gallery{padding-bottom:65px}.gallery-top{margin-bottom:22px}.gallery-top>p{font-size:12px}.gallery-controls{gap:8px}.gallery-controls button{width:36px;height:36px}.gallery-window{gap:16px;padding:0 20px 15px}.gallery-item{flex-basis:88%;height:400px}.gallery-life{flex-basis:75%}.gallery-item figcaption{font-size:13px;left:20px;bottom:20px}.gallery-hint{font-size:10px}.directions{padding-block:50px 65px}.section-top{gap:15px}.section-top>span,.section-top>a{font-size:10px}.directions h2{font-size:66px;margin:35px 0 45px}.course-groups{display:block}.course-group+.course-group{margin-top:48px}.course-group h3{font-size:26px;margin-bottom:24px}.course summary{font-size:16px;padding-block:21px}.course summary>span:first-child{max-width:230px}.age{font-size:11px}.pricing{padding-block:60px 65px}.pricing-heading{margin:35px 0 45px}.pricing-heading h2{font-size:49px}.pricing-heading p{font-size:12px}.price-columns{display:block}.price-column+.price-column{margin-top:40px}.price-column h3{font-size:26px;min-height:0;margin-bottom:24px;display:flex;align-items:baseline;gap:18px}.price-column small{margin:0;font-size:12px}.price-offer{margin-top:30px;gap:20px;font-size:12px;align-items:center}.price-offer>span{font-size:35px;white-space:nowrap}.schedule{padding-block:50px 65px}.schedule .text-link,.timetable,.schedule-help{display:none}.schedule-heading{display:block;margin-block:35px}.schedule-heading h2{font-size:46px}.schedule-heading p{margin-top:24px;font-size:12px}.mobile-schedule{display:block}.mobile-schedule .button{width:100%;padding-inline:15px;font-size:12px}.mobile-schedule p{font-size:10px;color:var(--muted);margin-top:12px}.first-visit{display:block;margin-top:55px}.first-visit>p{font-size:26px;margin-bottom:28px}.first-visit summary{font-size:12px}.visit{padding-block:50px 55px}.visit-heading{margin:35px 0 40px}.visit-heading h2{font-size:59px}.visit-heading>p{font-size:12px}.route-layout{display:block}.route-map{margin-inline:-10px}.route-map>a{margin-inline:10px}.route-steps{margin-top:35px}.route-steps li{padding-top:20px;padding-bottom:23px}.route-steps h3{font-size:23px}.route-steps p{font-size:12px}.visit-contacts{display:block;padding-top:35px}.phone{display:block;font-size:29px;margin-bottom:20px}.visit-contacts>a:not(.phone){font-size:12px}.socials{margin-top:28px}.closing{height:500px;padding:55px 20px}.closing h2{font-size:68px}.closing>img{right:-100%;width:150%;opacity:.23}.footer{font-size:10px;flex-wrap:wrap;padding-block:25px}.footer>span:nth-child(2){margin-left:auto}.footer>a{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-scroll{height:100svh}*,*:before,*:after{animation:none!important;transition:none!important}.hero-art,.hero-content,.gallery-item>img{transform:none!important;opacity:1!important}}

.route-map>a.map-zoom{display:block;padding:0;border:0;cursor:zoom-in}
/* Version 3: opaque page surfaces and fullscreen image sequences. */
:root{--olive:#62664c;--olive-light:#e7e7d9;--ink:#34392e;--line:rgba(52,57,46,.22)}
html{background:var(--cream)}body,main{background:var(--cream)}
.header{height:128px}.brand img{width:230px;height:81px;object-fit:contain;border-radius:0;mix-blend-mode:normal}.header-book{font-size:13px}
.hero-scroll{height:100svh}.hero-stage{position:relative;height:100svh;min-height:720px;isolation:auto;z-index:0;background:var(--cream)}
.hero-art,.motion-ready .hero-art{z-index:0;transform:none;will-change:auto}.hero-content,.motion-ready .hero-content{z-index:2;transform:none;opacity:1;top:29%}
.hero-bottom{z-index:3;background:var(--cream);padding:15px 20px;bottom:24px;font-size:13px;color:var(--ink);border:1px solid var(--line);align-items:center}
.visual-story{height:300svh;position:relative;background:var(--cream)}.sequence-stage{height:100svh;position:sticky;top:0;overflow:hidden;background:var(--cream);z-index:0}
.scene-frame{position:absolute;inset:0;margin:0;background:var(--cream);opacity:1}.scene-frame:nth-child(1){z-index:0}.scene-frame:nth-child(2){z-index:1;opacity:0}.scene-frame:nth-child(3){z-index:2;opacity:0}
.scene-frame img{width:100%;height:100%;object-fit:cover;transform:none;display:block}.scene-olive{background:var(--olive)}.scene-olive img{object-position:65% center}.scene-studio img{object-position:center 43%}
.sequence-caption{position:absolute;z-index:4;bottom:42px;left:5%;right:5%;padding:20px 25px;background:var(--cream);display:flex;align-items:center;justify-content:space-between;gap:24px;color:var(--ink)}.sequence-caption p{font-size:clamp(24px,3.3vw,48px);letter-spacing:-.04em;line-height:1.2}.scene-count{font-size:13px;white-space:nowrap}
.sequence-dots{position:absolute;z-index:4;right:5%;top:40px;display:flex;gap:8px;background:var(--cream);padding:12px}.sequence-dots i{display:block;width:6px;height:6px;border-radius:50%;background:var(--sand)}.sequence-dots i.active{background:var(--olive)}
.directions{background:var(--olive-light)}.price-offer>span{color:var(--olive)}.closing{background:var(--olive)}
.teachers{padding-block:90px 100px}.teachers h2{margin:45px 0 65px}.teacher-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.teacher-profile>img{width:100%;height:auto;aspect-ratio:400/430;object-fit:cover}.teacher-role{font-size:11px;margin:24px 0 9px;color:var(--muted)}.teacher-profile h3{font-size:27px;line-height:1.15;letter-spacing:-.04em}.teacher-profile>p:last-child{font-size:12px;margin-top:13px;color:var(--muted)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.schedule-days{display:flex;gap:10px;margin-bottom:28px}.schedule-days button{background:transparent;border:1px solid var(--line);padding:12px 26px;cursor:pointer;font-size:13px}.schedule-days button[aria-pressed="true"]{background:var(--olive);border-color:var(--olive);color:var(--cream)}.schedule-days button:hover{border-color:var(--olive)}
.schedule-sheet{background:#eeece3;padding:10px 32px}.schedule-table{width:100%;border-collapse:collapse;text-align:left;table-layout:fixed}.schedule-table caption{caption-side:top}.schedule-table th,.schedule-table td{padding:20px 10px;vertical-align:middle;font-weight:400;border-bottom:1px solid var(--line);font-size:14px}.schedule-table th:first-child{width:24%;padding-left:0;white-space:nowrap}.schedule-table th:nth-child(2){width:47%}.schedule-table thead th{font-size:11px;color:var(--muted);padding-block:18px}.schedule-table tbody tr:last-child>*{border-bottom:0}.schedule-table td small{display:block;font-size:11px;margin-top:5px;color:var(--muted)}.schedule-coach{font-size:12px!important}.schedule-table tbody[hidden]{display:none}.schedule-booking{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:25px}.schedule-booking p{font-size:12px;color:var(--muted)}.button-olive{background:var(--olive);color:var(--cream)}.button-olive:hover{background:#4d533c}
.map-zoom{position:relative}.map-logo{position:absolute;left:72%;top:78%;width:18%;padding:7px 9px;background:var(--cream);border:1px solid var(--olive);transform:translate(-50%,-100%);box-shadow:0 3px 8px #34392e20}.map-logo:after{content:"";position:absolute;left:calc(50% - 5px);bottom:-6px;width:9px;height:9px;background:var(--cream);border-right:1px solid var(--olive);border-bottom:1px solid var(--olive);transform:rotate(45deg)}.map-logo img{width:100%;height:auto}.map-credit{font-size:10px;color:var(--muted);margin-top:12px}.closing-logo{width:330px;height:auto;margin-bottom:22px;filter:brightness(0) invert(1);opacity:.9}.closing h2{font-size:clamp(60px,7vw,100px);margin-bottom:28px}.closing>div>p{margin-bottom:20px}.closing>img{z-index:0;pointer-events:none}.closing>div{position:relative;z-index:1}.closing{isolation:auto}.footer-logo{width:130px}
.map-page{padding:35px;background:var(--cream);max-width:1200px;margin:auto}.map-page .map-zoom{display:block}.map-page .map-zoom>img{width:100%;height:auto}.map-page h1{font-size:32px;margin:20px 0}.map-page p{font-size:13px;margin-top:20px}
@media(max-width:1000px){.teacher-grid{gap:23px}.teacher-profile h3{font-size:24px}.schedule-sheet{padding-inline:20px}.schedule-table th:first-child{width:26%}.schedule-table th:nth-child(2){width:43%}.schedule-table th,.schedule-table td{font-size:13px}.schedule-coach{font-size:11px!important}}
@media(max-width:700px){.header{height:102px;grid-template-columns:44px 1fr 110px;gap:10px}.brand{justify-self:center}.brand img{width:134px;height:50px}.header-book{font-size:10px;gap:8px}.hero-stage{min-height:680px}.hero-content,.motion-ready .hero-content{top:27%}.hero-bottom{font-size:11px;padding:14px 12px;left:20px;right:20px;bottom:20px;gap:10px}.hero-bottom a{max-width:145px;text-align:right}.hero-bottom>span:first-child{max-width:130px}.visual-story{height:260svh}.sequence-stage{height:100svh}.sequence-caption{bottom:25px;left:20px;right:20px;padding:16px;gap:15px}.sequence-caption p{font-size:25px;max-width:240px}.scene-count{font-size:11px}.sequence-dots{top:20px;right:20px}.scene-studio img{object-position:center center}.scene-olive img{object-position:64% center}
.teachers{padding-block:60px 65px}.teachers h2{font-size:56px;margin:35px 0 40px}.teacher-grid{grid-template-columns:1fr;gap:36px}.teacher-profile{display:grid;grid-template-columns:118px 1fr;column-gap:20px;align-content:center}.teacher-profile>img{grid-row:1/4;align-self:center}.teacher-role{margin:8px 0 8px;font-size:10px}.teacher-profile h3{font-size:23px}.teacher-profile>p:last-child{font-size:11px;margin-top:10px}.schedule .text-link{display:block}.schedule-days{gap:8px;margin-bottom:20px}.schedule-days button{flex:1;padding:12px 8px;font-size:12px}.schedule-sheet{padding:6px 16px}.schedule-table,.schedule-table tbody{display:block}.schedule-table thead{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}.schedule-table tr{display:grid;grid-template-columns:96px 1fr;gap:5px 14px;padding-block:20px;border-bottom:1px solid var(--line)}.schedule-table tbody tr:last-child{border-bottom:0}.schedule-table th,.schedule-table td{display:block;border:0;padding:0;font-size:13px}.schedule-table th:first-child{width:auto;font-size:11px;grid-row:1/3;white-space:normal;line-height:1.7}.schedule-table td small{font-size:10px;margin-top:4px}.schedule-coach{grid-column:2;font-size:10px!important;color:var(--muted)}.schedule-booking{display:flex;flex-direction:column-reverse;align-items:stretch;gap:14px}.schedule-booking .button{font-size:12px;padding-inline:16px;gap:14px}.schedule-booking p{font-size:10px}.closing{height:590px}.closing-logo{width:245px;margin-bottom:25px}.closing h2{font-size:62px}.map-logo{padding:4px 5px;width:21%}.map-credit{font-size:9px}.map-page{padding:15px}.map-page h1{font-size:25px}}
@media(prefers-reduced-motion:reduce){.visual-story{height:auto}.sequence-stage{height:auto;position:relative;overflow:visible}.scene-frame,.scene-frame:nth-child(1),.scene-frame:nth-child(2),.scene-frame:nth-child(3){position:relative;height:65svh;opacity:1!important}.sequence-caption{position:relative;inset:auto;padding:25px;display:block}.sequence-dots,.scene-count{display:none}}

.hero-content,.motion-ready .hero-content{top:24%}.hero-content .link-cta{background:var(--olive);color:var(--cream);border:0;padding:14px 22px;margin-top:24px;font-size:13px}.hero-content .link-cta:hover{background:#4d533c}
@media(max-width:700px){.hero-content,.motion-ready .hero-content{top:26%}.hero-content .link-cta{font-size:11px;padding:13px 16px;gap:14px}}

/* Version 4: stacked brand, illustrated opening and an unpinned photo gallery. */
.header{height:180px;align-items:start;padding-top:22px}.menu,.header-book{margin-top:25px}.brand img{width:156px;height:156px;object-fit:contain}.menu nav{top:110px}
.hero-dancer{position:absolute;z-index:1;right:13%;bottom:13%;width:clamp(230px,24vw,390px);transform-origin:50% 75%;pointer-events:none}.hero-dancer img{width:100%;height:auto}.hero-content,.motion-ready .hero-content{top:27%}.hero-content h1{font-size:clamp(76px,9vw,140px)}
.life-gallery{padding:30px 0 90px;overflow:hidden}.life-gallery .gallery-top{align-items:end;margin-bottom:36px}.life-gallery h2{font-size:clamp(38px,4.8vw,70px);margin-top:25px}.life-track{display:flex;gap:28px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:max(40px,calc((100vw - 1280px)/2));padding:0 max(40px,calc((100vw - 1280px)/2)) 20px;scrollbar-width:thin;scrollbar-color:var(--olive) transparent}.life-card{flex:0 0 40%;min-width:300px;scroll-snap-align:start}.life-card>img{width:100%;height:490px;object-fit:cover;object-position:center 62%;background:var(--sand)}.life-card:nth-child(2)>img{object-position:center 85%}.life-card figcaption{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);font-size:21px;letter-spacing:-.03em}.life-card figcaption small{font-size:11px;color:var(--muted)}.life-gallery .gallery-hint{font-size:11px;color:var(--muted);margin-top:18px}.gallery-hint span{margin-left:15px}
.closing{height:650px;padding-left:10%}.closing>div{padding-left:270px}.closing-logo{position:absolute;left:0;top:10px;width:215px;filter:none;background:var(--cream);padding:12px;opacity:1}.closing>div>p{margin-top:15px}.map-logo{width:12%;padding:4px}.footer-logo{width:90px}
@media(max-width:1000px){.hero-dancer{right:7%;width:30vw}.life-card{flex-basis:48%}.closing>div{padding-left:215px}.closing-logo{width:175px}.closing{padding-left:40px}}
@media(max-width:700px){.header{height:126px;padding:14px 20px;grid-template-columns:44px 1fr 90px}.brand img{width:100px;height:100px}.menu,.header-book{margin-top:20px}.header-book{font-size:11px;gap:12px}.menu nav{top:115px}.hero-scroll{height:auto}.hero-stage{height:850px;min-height:100svh}.hero-content,.motion-ready .hero-content{top:21%;left:7%;right:7%}.hero-content h1{font-size:clamp(64px,18vw,100px)}.hero-description{font-size:30px}.hero-dancer{width:190px;right:8%;bottom:11%}.hero-art{opacity:.8;object-position:60% center}.hero-bottom{bottom:20px}.life-gallery{padding:0 0 60px}.life-gallery .gallery-top{gap:15px;margin-bottom:25px}.life-gallery h2{font-size:38px;max-width:220px}.life-track{gap:18px;padding-inline:20px;scroll-padding-inline:20px}.life-card{flex-basis:82%;min-width:0}.life-card>img{height:420px}.life-card figcaption{font-size:19px}.closing{height:auto;min-height:700px;padding:45px 20px}.closing>div{padding-left:0}.closing-logo{position:relative;top:auto;left:auto;width:160px;margin-bottom:28px;padding:10px}.closing h2{font-size:58px}.map-logo{width:17%}}
@media(prefers-reduced-motion:reduce){.hero-dancer{transform:none!important}}
.life-card:nth-child(3)>img{object-position:center 85%}

/* Version 5: articulated dance frames and round brand badges. */
.hero-dancer{transform:none}.dancer-frames{display:none;position:absolute;inset:0;background-image:url('assets/dancer-sprite-v5.png');background-size:400% 400%;background-repeat:no-repeat;background-position:0% 0%}.hero-dancer.dance-ready>img{visibility:hidden}.dance-ready .dancer-frames{display:block}
.map-logo{border-radius:50%;aspect-ratio:1;padding:clamp(5px,1vw,12px);display:flex;align-items:center;justify-content:center}.map-logo img{width:100%;aspect-ratio:1;object-fit:contain}.map-logo:after{display:none}.closing-logo{border-radius:50%;aspect-ratio:1;padding:30px;object-fit:contain}
@media(max-width:700px){.closing-logo{padding:22px}.map-logo{padding:7px}}
@media(prefers-reduced-motion:reduce){.hero-dancer.dance-ready>img{visibility:visible}.dance-ready .dancer-frames{display:none}}

.closing-brand{position:absolute;left:0;top:10px;width:215px;aspect-ratio:1;background:var(--cream);border-radius:50%;padding:32px;display:flex;align-items:center;justify-content:center}.closing-brand .closing-logo{position:static;width:100%;height:auto;background:none;border-radius:0;padding:0;margin:0}
@media(max-width:1000px) and (min-width:701px){.closing-brand{width:175px;padding:26px}}
@media(max-width:700px){.closing-brand{position:relative;left:auto;top:auto;width:160px;padding:24px;margin-bottom:28px}}

/* Integrated ribbon compositions, driven by scroll position. */
.scroll-effects [data-scroll]{--scroll-p:1;transform:translateY(calc((1 - var(--scroll-p))*24px));opacity:calc(.68 + var(--scroll-p)*.32)}
.scroll-effects [data-scroll="portrait"]{clip-path:inset(calc((1 - var(--scroll-p))*16%) 0 0);transform:translateY(calc((1 - var(--scroll-p))*18px));opacity:1}
.story{position:relative;isolation:isolate;--flow:0}.story-ribbon{position:absolute;z-index:2;left:-230px;top:155px;width:850px;height:285px;pointer-events:none;opacity:calc(.8*(1 - var(--flow)));transform:translateY(calc(var(--flow)*155px)) rotate(calc(var(--flow)*10deg));transform-origin:70% center}.story-ribbon img{width:100%;height:100%;object-fit:contain}.story-copy{position:relative;z-index:3}.story>.section-name{position:relative;z-index:3}
.teachers-price-flow{position:relative;isolation:isolate;overflow:clip;--flow:1}.teacher-ribbon{position:absolute;z-index:0;left:3%;width:94%;top:var(--ribbon-start,340px);height:var(--ribbon-span,570px);pointer-events:none;transform:translateY(calc((1 - var(--flow))*40px))}.teacher-ribbon img{width:100%;height:100%;object-fit:fill;transform-origin:left bottom;transform:translateX(calc((1 - var(--flow))*-45px)) rotate(calc((1 - var(--flow))*-3deg)) scaleX(calc(.96 + var(--flow)*.04))}.teachers-price-flow>.teachers,.teachers-price-flow>.pricing{position:relative;z-index:1}.teacher-profile{background:var(--cream)}.teachers-price-flow .teachers{padding-bottom:70px}.teachers-price-flow .pricing{padding-top:65px}
.closing{--flow:1}.closing>div{isolation:isolate}.closing-ribbon{position:absolute;left:-195px;top:-40px;width:1080px;height:360px;z-index:1;pointer-events:none;transform-origin:302px 157px;transform:rotate(calc(-5deg - var(--flow)*3deg));clip-path:inset(0 calc((1 - var(--flow))*100%) 0 0)}.closing-ribbon img{width:100%;height:100%;max-width:none;transform:scaleX(-1);object-fit:contain}.closing-brand{z-index:2}.closing>div>p,.closing>div>h2,.closing>div>a{position:relative;z-index:3}
@media(max-width:1000px) and (min-width:701px){.closing-ribbon{left:-220px;top:-50px;width:1000px;height:333px}}
@media(max-width:700px){.story-ribbon{left:-140px;top:90px;width:640px;height:220px;opacity:calc(.75*(1 - var(--flow)));transform:translateY(calc(var(--flow)*110px)) rotate(calc(var(--flow)*8deg))}.story-copy{background:var(--cream)}.teachers-price-flow .teachers{padding-bottom:50px}.teachers-price-flow .pricing{padding-top:40px}.teacher-ribbon{left:-20%;width:140%}.closing-ribbon{left:-160px;top:-55px;width:800px;height:267px;transform-origin:224px 116px;transform:rotate(calc(33deg - var(--flow)*4deg))}.closing-brand{margin-bottom:35px}.closing h2{padding-bottom:10px}.scroll-effects [data-scroll]{transform:translateY(calc((1 - var(--scroll-p))*14px))}}
@media(prefers-reduced-motion:reduce){.scroll-effects [data-scroll]{transform:none!important;opacity:1!important;clip-path:none!important}.story-ribbon{opacity:.16;transform:none}.teacher-ribbon,.teacher-ribbon img,.closing-ribbon{clip-path:none;transform:none}}
.story{overflow:clip}

/* Original photograph pixels are preserved; masks remove backgrounds only.
   Optical crops align eye level and face scale across different source poses. */
.teacher-portrait{position:relative;width:100%;aspect-ratio:400/430;overflow:hidden;background:#e3e1d5}
.teacher-portrait>img{position:absolute;max-width:none;height:auto;aspect-ratio:3/4;object-fit:contain;filter:grayscale(1) sepia(.12) brightness(var(--portrait-light,1)) contrast(var(--portrait-contrast,1))}
.portrait-olesya>img{width:241.9%;left:-75.67%;top:-95.67%;--portrait-light:1.12;--portrait-contrast:.88}
.portrait-arina>img{width:200.6%;left:-34.25%;top:-60.86%;--portrait-light:.92;--portrait-contrast:.95}
.portrait-tatiana>img{aspect-ratio:638/544;width:212.4%;left:-79.8%;top:-14.13%;--portrait-light:1.12;--portrait-contrast:.9}
.portrait-olesya .portrait-cutout{mask-image:url("assets/teacher-olesya-cutout.png")}
.portrait-arina .portrait-cutout{mask-image:url("assets/teacher-arina-cutout.png")}
.portrait-tatiana .portrait-cutout{mask-image:url("assets/teacher-tatiana-cutout.png")}
.teacher-portrait .portrait-cutout{mask-size:100% 100%;mask-repeat:no-repeat}
@media(max-width:700px){.teacher-profile>.teacher-portrait{grid-row:1/4;align-self:center}}
