/* Shared, accessible motion and gallery layer. */
header{position:relative;z-index:60}header nav{gap:20px}header nav a{position:relative;font-weight:800}header nav a:after{content:'';position:absolute;bottom:-6px;left:0;width:100%;height:2px;background:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform .22s}header nav a:hover:after,header nav a:focus-visible:after{transform:scaleX(1)}.menu-toggle{display:none}.hero{grid-template-columns:42% 58%;min-height:580px;isolation:isolate}.hero-copy{position:relative;overflow:hidden;padding:65px 10% 90px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.hero h1{font-size:clamp(40px,4.1vw,66px);line-height:1.12;letter-spacing:-1.9px}.hero h1 .hero-word{display:inline-block;color:inherit}.hero .intro{max-width:400px}.hero-word{will-change:auto}.hero-copy:after{content:'';position:absolute;z-index:-1;right:-80px;top:30px;width:240px;height:240px;border:1px solid #ffffff12;border-radius:50%;animation:background-drift 16s ease-in-out infinite alternate;pointer-events:none}.hero-gallery{min-width:0;position:relative;overflow:hidden;background:var(--navy)}.photo-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;height:100%;outline-offset:-5px;position:absolute;inset:0;cursor:grab}.photo-track::-webkit-scrollbar,.video-track::-webkit-scrollbar{display:none}.photo-slide{position:relative;flex:0 0 100%;min-width:0;height:100%;margin:0;scroll-snap-align:center;overflow:hidden}.photo-slide img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;user-select:none}.photo-slide:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#102c4cbb,transparent 45%);pointer-events:none}.photo-slide figcaption{position:absolute;bottom:98px;left:32px;color:white;font-size:24px;font-weight:850;z-index:1}.gallery-controls{position:absolute;bottom:28px;left:32px;right:32px;z-index:2;display:flex;align-items:center;gap:16px;color:white}.gallery-arrow{border:1px solid currentColor;background:transparent;color:inherit;display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:50%;font:inherit;font-size:21px;cursor:pointer;transition:background .2s,transform .2s,opacity .2s}.gallery-arrow:disabled{opacity:.3;cursor:default}.gallery-arrow:not(:disabled):hover{background:var(--yellow);border-color:var(--yellow);color:var(--navy);transform:translateY(-2px)}.photo-dots,.video-dots{display:flex;align-items:center;gap:7px}.photo-dots button,.video-dots button{width:28px;height:30px;border:0;padding:0;background:transparent;position:relative;cursor:pointer}.photo-dots button:after,.video-dots button:after{content:'';position:absolute;left:9px;top:10px;width:9px;height:9px;border-radius:50%;background:currentColor;opacity:.4;transition:opacity .2s,transform .2s}.photo-dots button{color:white}.photo-dots button[aria-current]:after,.video-dots button[aria-current]:after{background:var(--yellow);opacity:1;transform:scale(1.25)}.photo-count{font-size:12px;margin-left:auto;white-space:nowrap}.studio{grid-template-columns:.9fr 1.1fr;gap:45px}.studio-gallery{min-width:0;max-width:570px;width:100%;justify-self:end}.video-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:10px 0 14px;align-items:center;cursor:grab}.video-track:before,.video-track:after{content:'';flex:0 0 calc((100% - min(72%,320px))/2 - 18px)}.video-slide{flex:0 0 min(72%,320px);scroll-snap-align:center;position:relative;transition:opacity .35s,transform .35s;opacity:.48;transform:scale(.94)}.video-slide.is-active{opacity:1;transform:scale(1)}.video-frame{position:relative;background:var(--dark);border-radius:12px;overflow:hidden;aspect-ratio:9/16}.video-frame video{display:block;width:100%;height:100%;object-fit:contain;aspect-ratio:9/16;border-radius:12px}.video-status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:30px;font-size:13px;text-align:center;background:var(--dark);color:white;cursor:pointer}.video-status[hidden]{display:none}.video-controls{display:flex;align-items:center;justify-content:center;gap:13px;margin-top:10px;color:var(--navy)}.video-count{font-size:12px;font-weight:850;white-space:nowrap}.video-dots button{color:var(--navy)}.video-dots button[aria-current]:after{background:var(--navy)}.swipe-hint{display:flex;justify-content:center;align-items:center;gap:10px;font-size:12px;color:#53697d;margin:20px 0 0}.swipe-hint span{display:inline-block;font-size:23px;animation:swipe-cue 2.6s ease-in-out 4}.is-dragging{scroll-snap-type:none!important;scroll-behavior:auto!important;cursor:grabbing!important}.is-dragging *{user-select:none}.class-groups{border-radius:12px;overflow:hidden}.class-groups article{transition:background .25s}.class-groups h3{transition:transform .25s}.class-groups li a{display:flex;align-items:center;justify-content:space-between;gap:12px}.class-groups li a span{opacity:.45;transition:opacity .2s,transform .2s}.lesson-info-button{margin-top:24px;background:var(--navy);color:white;border-radius:8px;font-size:14px}.lesson-info-button .logo-star{background:var(--yellow)}.lesson-info-button:hover{background:var(--dark)}.button{border-radius:7px;transition:transform .22s,background .22s,box-shadow .22s}.button:active,.gallery-arrow:active,.floating-contact a:active{transform:scale(.97)}.info-link .logo-star{transition:transform .3s}.info-link:hover .logo-star{transform:rotate(12deg)}.text-link{transition:color .2s}.lesson a:hover{color:var(--yellow)}.day-tabs button{transition:background .2s,color .2s,transform .2s;border-radius:6px}.day-tabs button:active{transform:scale(.97)}.faq-section{background:var(--paper)}.faq-list{border-top:1px solid #ccd2d4}.faq-list details{border-bottom:1px solid #ccd2d4}.faq-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0;font-size:18px;font-weight:850;cursor:pointer}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:focus-visible{outline:3px solid var(--yellow);outline-offset:5px}.faq-plus{font-size:27px;font-weight:600;transition:transform .22s;flex-shrink:0}.faq-list details[open] .faq-plus{transform:rotate(45deg)}.faq-answer{max-width:850px;overflow:hidden}.faq-answer p{margin:0 0 25px;line-height:1.8;color:#53697d;font-size:15px}.faq-answer a{color:var(--navy);font-weight:850;text-decoration:underline;text-underline-offset:3px}.faq-list details[open] .faq-answer{animation:answer-in .25s ease-out}.course-intro{background:var(--navy);color:white;position:relative;overflow:hidden}.course-intro h1{font-size:clamp(38px,5vw,68px);letter-spacing:-1.8px;line-height:1.12;margin:0 0 24px}.course-intro>p:not(.eyebrow){color:#d8e2ec;font-size:17px;line-height:1.7;margin-bottom:28px}.course-jump{display:flex;flex-wrap:wrap;gap:10px;padding-top:35px;padding-bottom:35px;border-bottom:1px solid #ccd2d4}.course-jump a{padding:12px 18px;border:1px solid #ccd2d4;border-radius:24px;font-size:13px;font-weight:800;transition:background .2s,color .2s}.course-jump a:hover{background:var(--navy);color:white}.course-details{padding-top:15px;padding-bottom:45px}.course-detail{display:flex;align-items:flex-start;gap:24px;padding:40px 0;border-bottom:1px solid #ccd2d4;scroll-margin-top:30px}.course-detail>.logo-star{width:32px;height:32px;margin-top:7px;background:var(--yellow)}.course-detail h2{font-size:30px;letter-spacing:-.8px}.course-detail>div{max-width:850px}.course-detail p{font-size:15px;line-height:1.8;color:#53697d;margin:17px 0}.course-detail a{text-decoration:underline;font-weight:850;color:var(--navy)}.course-schedule{padding:20px;background:#e9edf1;border-radius:9px;margin-top:20px}.course-schedule p{margin:9px 0 0;font-size:14px}.schedule-badge{display:inline-block;background:var(--yellow);border-radius:20px;padding:6px 13px;font-size:12px;font-weight:900}.course-contact{background:var(--dark);color:white;display:flex;justify-content:space-between;align-items:center;gap:30px}.course-contact h2{font-size:34px}.course-contact .logo-star{background:var(--navy)}.facility{border-radius:10px}.facility h3{transition:transform .3s}.floating-contact{z-index:65}.hero-copy:after,.course-intro:after{pointer-events:none}
@keyframes background-drift{from{transform:translate(0,0) scale(1)}to{transform:translate(-25px,25px) scale(1.08)}}@keyframes swipe-cue{0%,100%{transform:translateX(0)}35%{transform:translateX(6px)}65%{transform:translateX(-6px)}}@keyframes answer-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@media(hover:hover) and (pointer:fine){.button:hover{transform:translateY(-2px);box-shadow:0 6px 15px #102c4c18}.class-groups article:hover{background:#ecefea}.class-groups article:hover h3,.facility:hover h3{transform:translateY(-3px)}.class-groups li a:hover span{opacity:1;transform:translate(2px,-2px)}}
@media(min-width:1600px){.hero{min-height:620px}.hero-copy{padding-top:65px}.hero h1{font-size:66px}}@media(max-width:1100px){header nav{gap:13px;font-size:12px}.hero{grid-template-columns:44% 56%;min-height:560px}.hero-copy{padding:45px 9% 70px}.hero h1{font-size:44px}.hero .button{font-size:12px;padding:16px}.studio{gap:25px}.gallery-controls{left:24px;right:24px;gap:8px}.photo-dots{gap:2px}.photo-slide figcaption{left:24px}.photo-dots button{width:22px}.photo-dots button:after{left:6px}.studio-copy h2{font-size:38px}}
@media(max-width:900px){header{min-height:80px;height:auto}.js .menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;align-items:center;width:44px;height:44px;background:none;border:1px solid #ccd2d4;border-radius:8px;cursor:pointer;margin-left:auto}.menu-toggle span{width:20px;height:2px;background:var(--navy);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.js header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:20px 6%;border-bottom:1px solid #ccd2d4;box-shadow:0 8px 20px #102c4c10;font-size:15px;flex-wrap:wrap;gap:20px}header nav.is-open{display:flex}.hero .intro{font-size:14px}.hero h1{font-size:40px}.hero .button{max-width:100%;line-height:1.5;gap:10px}.hero-note{font-size:10px}.gallery-controls{gap:7px;left:18px;right:18px}.gallery-arrow{width:38px;height:38px}.photo-dots button{width:18px}.photo-dots button:after{left:5px;width:7px;height:7px}.photo-count{font-size:10px}.studio-caption{margin-top:40px}.studio-copy h2{font-size:34px}}
@media(max-width:600px){header{padding:16px 6%;flex-wrap:nowrap}.hero{display:flex;min-height:0}.hero-copy{padding:40px 6% 35px}.hero h1{font-size:43px;letter-spacing:-1.4px}.hero .intro{font-size:14px}.hero-note{font-size:11px}.hero-gallery{height:420px;width:100%}.photo-slide figcaption{left:6%;bottom:90px;font-size:22px}.gallery-controls{left:6%;right:6%;bottom:22px;gap:12px}.photo-dots{gap:3px}.photo-dots button{width:22px}.photo-dots button:after{left:7px;width:8px;height:8px}.photo-count{font-size:11px}.gallery-arrow{width:40px;height:40px}.studio{grid-template-columns:1fr;gap:28px}.studio-gallery{max-width:100%;justify-self:center}.video-slide{flex-basis:76%}.video-track:before,.video-track:after{flex-basis:calc(12% - 18px)}.video-controls{gap:10px}.video-dots button{width:24px}.video-dots button:after{left:7px}.swipe-hint{font-size:11px}.lesson-info-button{max-width:100%;font-size:12px;gap:10px;padding:16px}.faq-list summary{font-size:16px;padding:21px 0;line-height:1.5;gap:16px}.faq-answer p{font-size:14px}.course-intro h1{font-size:42px}.course-intro>p:not(.eyebrow){font-size:15px}.course-jump{padding-top:25px;padding-bottom:25px;gap:8px}.course-jump a{font-size:12px;padding:10px 13px}.course-detail{gap:16px;padding:30px 0}.course-detail h2{font-size:26px}.course-detail>.logo-star{width:24px;height:24px}.course-detail p{font-size:14px}.course-schedule{padding:16px}.course-schedule p{font-size:13px}.course-contact{flex-direction:column;align-items:flex-start}.course-contact h2{font-size:30px}.course-contact .button{width:100%;justify-content:center;font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.photo-slide img{transform:none!important}.facility:hover img,.facility:hover h3,.class-groups article:hover h3,.button:hover,.floating-contact a:hover{transform:none!important}}

@media(max-width:900px){html:not(.js) header{flex-wrap:wrap}html:not(.js) header nav{display:flex;position:static;width:100%;flex-wrap:wrap;gap:12px}html:not(.js) .video-status{display:none}}

/* Center the desktop gallery within the available space; retain the mobile layout. */
@media(min-width:901px){.studio-gallery{justify-self:center}}
@media(min-width:1101px){.studio{grid-template-columns:minmax(0,520px) minmax(0,1fr)}}
/* Share contact-stack spacing and safe-area positioning. */
.floating-contact .back-to-top{position:relative;background:var(--navy);color:white;overflow:visible}
.floating-contact .back-to-top[hidden]{display:none}
.back-to-top .logo-star{width:29px;height:29px;background:var(--yellow);pointer-events:none}
.back-to-top-label{position:absolute;right:calc(100% + 12px);padding:7px 11px;border-radius:6px;background:var(--navy);color:white;font-size:12px;font-weight:800;white-space:nowrap;opacity:0;transform:translateX(5px);transition:opacity .2s,transform .2s;pointer-events:none}
.back-to-top:focus-visible .back-to-top-label{opacity:1;transform:translateX(0)}
.back-to-top.is-visible{animation:top-control-in .24s ease-out both}
.back-to-top.is-launching .logo-star{animation:star-rise .6s cubic-bezier(.22,1,.36,1) both}
@keyframes top-control-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes star-rise{0%{transform:translateY(0);opacity:1}55%{transform:translateY(-12px);opacity:.45}56%{transform:translateY(9px);opacity:0}100%{transform:translateY(0);opacity:1}}
@media(hover:hover) and (pointer:fine){.back-to-top:hover .logo-star{animation:star-rise .6s cubic-bezier(.22,1,.36,1) both}.back-to-top:hover .back-to-top-label{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.back-to-top,.back-to-top .logo-star,.back-to-top-label{animation:none!important;transition:none!important;transform:none!important}}
