/* The dancers take the stage. Motion stays brief and optional. */
.hero-dance{position:relative;padding:30px 0 0;overflow:hidden}
.hero-dance .hero-grid{position:relative;isolation:isolate;display:block;min-height:590px;padding:62px 56px;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--bg)}
.hero-dance .hero-visual{position:absolute;inset:0;margin:0;padding:0;z-index:-1;animation:none}
.hero-dance .hero-photo{width:100%;height:100%;border:0;border-radius:0;box-shadow:none;background:var(--bg)}
.hero-dance .hero-photo:after{z-index:2}
.hero-dance .hero-background-video{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:72% 57%;opacity:0;filter:saturate(.9) brightness(.88);pointer-events:none;transition:opacity 1.2s ease}
.hero-dance .hero-photo>img{position:absolute;inset:0;z-index:1;transition:opacity 1.2s ease}
.hero-dance .hero-photo.has-ambient-video .hero-background-video{opacity:.48}
.hero-dance .hero-photo.has-ambient-video>img{opacity:0}
.hero-dance .hero-photo>img{object-position:72% 57%;transform:scale(1.02)}
.hero-dance .hero-photo:after{background:linear-gradient(90deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 94%,transparent) 22%,color-mix(in srgb,var(--bg) 80%,transparent) 40%,color-mix(in srgb,var(--bg) 28%,transparent) 64%,transparent 83%),linear-gradient(0deg,color-mix(in srgb,var(--bg) 45%,transparent),transparent 35%)}
.hero-dance .hero-copy{position:relative;z-index:2;width:55%;max-width:660px}
.hero-dance h1{font-size:clamp(52px,5.4vw,78px);letter-spacing:-2.8px;line-height:1.14}
.hero-dance .eyebrow{gap:13px;line-height:1.7}
.hero-dance .hero-description{font-size:17px;margin:25px 0 30px}
.hero-dance .hero-actions{flex-wrap:wrap;gap:20px}
.hero-dance .hero-note{color:var(--muted);line-height:1.6}
.hero-dance .hero-film-button{top:auto;bottom:28px;right:28px;padding:13px 20px;border-radius:9px;background:color-mix(in srgb,var(--bg) 83%,transparent);font-size:13px;gap:13px;transition:background .3s,border-color .3s}
.hero-dance .hero-film-button>span{display:grid;place-items:center;width:28px;height:28px;border:1px solid #e9c97060;border-radius:50%;font-size:9px;padding-left:2px}
.ambient-toggle{position:absolute;left:28px;bottom:28px;z-index:4;min-height:40px;padding:9px 13px;border:1px solid #ffffff36;border-radius:7px;background:color-mix(in srgb,var(--bg) 84%,transparent);backdrop-filter:blur(9px);color:var(--text);font-size:11px;font-weight:250;letter-spacing:.1px;transition:border-color .25s,background .25s}
.ambient-toggle:hover{border-color:#e9c97095;background:var(--bg)}
.ambient-toggle[hidden]{display:none}
.dance-training-bar{display:flex;align-items:center;gap:34px;min-height:108px;border-bottom:1px solid var(--line);padding:23px 5px}
.dance-training-label{display:flex;align-items:center;gap:17px;min-width:215px}
.dance-training-label>.icon{width:27px;height:27px;color:var(--gold)}
.dance-training-label>span{display:block;color:var(--muted);font-size:11px;line-height:1.6}
.dance-training-label strong{display:block;color:var(--text);font-weight:250;font-size:21px;margin-top:3px}
.dance-training-time{color:var(--gold);font-size:21px;font-weight:var(--gold-weight,150);white-space:nowrap}
.dance-training-level{display:flex;align-items:center;gap:18px;font-size:12px;color:var(--muted)}
.dance-next-date{display:grid;gap:3px;white-space:nowrap}.dance-next-date small{font-size:10px;color:var(--muted)}.dance-next-date strong{font-size:13px;color:var(--text);font-weight:350}.dance-course-place{border-left:1px solid var(--line);padding-left:18px}
.dance-training-link{display:flex;align-items:center;gap:17px;margin-left:auto;font-size:13px;color:var(--gold);white-space:nowrap}
.dance-training-link>.icon{width:20px;height:20px;transition:transform .3s}
.dance-training-bar:hover .dance-training-link>.icon{transform:translateX(4px)}
.dance-films{padding-top:0}
.dance-video-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:23px}
.dance-video-grid.has-two{grid-template-columns:minmax(0,1fr) minmax(185px,.35fr);max-width:1000px;margin-inline:auto;gap:18px}
.dance-clip{margin:0;min-width:0}
.dance-clip>button{position:relative;display:block;width:100%;height:clamp(220px,22vw,320px);padding:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;isolation:isolate;background:var(--surface);color:var(--text);cursor:pointer}
.dance-clip>button:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#100a07a0,transparent 43%);pointer-events:none;z-index:0}
.dance-clip>button>img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 61%;transition:transform 1s var(--ease),filter .5s}
.dance-clip.is-portrait>button>img{object-position:50% 50%}
.dance-play{position:absolute;top:50%;left:50%;display:grid;place-items:center;width:67px;height:67px;transform:translate(-50%,-50%);padding-left:4px;border:1px solid #e9c970a0;border-radius:50%;background:color-mix(in srgb,var(--bg) 74%,transparent);backdrop-filter:blur(9px);color:var(--gold);font-size:18px;transition:background .3s,border-color .3s;z-index:1}
.dance-clip-action{position:absolute;left:25px;right:25px;bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:12px;z-index:1}
.dance-clip-action>.icon{width:18px;height:18px;color:var(--gold)}
.dance-clip>figcaption{font-size:14px;padding:13px 2px 0;line-height:1.6;color:var(--muted)}
.dance-photo-grid{grid-template-columns:1.5fr .8fr 1.05fr;gap:20px}
.dance-photo-grid>.editorial-photo{min-height:360px;border:0!important;border-radius:14px!important}
.dance-photo-grid>.photo-1{margin-top:38px}
.dance-photo-grid>.photo-2{margin-bottom:38px}
.dance-photo-grid>.editorial-photo:after{background:linear-gradient(0deg,#100a0760,transparent 34%)}
.dance-photo-grid>.editorial-photo img{transition:transform 1.1s var(--ease)}
.dance-photo-grid>.editorial-photo>span{font-size:13px;min-height:65px;padding:20px 45px 20px 20px}
.dance-photo-grid>.editorial-photo>span>.icon{bottom:22px}
.training-dance-image{padding:0;overflow:hidden;border-radius:15px;margin-bottom:29px}
.training-dance-image>img{display:block;width:100%;height:285px;object-fit:cover;object-position:50% 57%}
.photo-wall{columns:3;column-gap:23px}
.gallery-item{margin-bottom:23px;padding:0;border:0;border-radius:0;background:transparent;transition:none}
.gallery-item:hover{border-color:transparent;transform:none}
.photo-frame{position:relative;isolation:isolate;border-radius:13px;overflow:hidden}
.photo-open{border-radius:13px}
.photo-open img{transition:transform .9s var(--ease),filter .5s}
.gallery-item figcaption{font-weight:300;font-size:14px;color:var(--muted);padding:12px 2px 0;line-height:1.6}
.photo-credit{position:absolute;left:13px;bottom:13px;z-index:2;font-size:9px;line-height:1.5;padding:6px 9px;min-height:30px;border:1px solid #ffffff30;border-radius:5px;color:var(--text);background:color-mix(in srgb,var(--bg) 83%,transparent);backdrop-filter:blur(8px)}
.photo-credit:hover{border-color:var(--gold)}
.gallery-item .photo-zoom{opacity:.8;transition:opacity .3s,background .3s}
.gallery-item .photo-open:hover .photo-zoom,.gallery-item .photo-open:focus-visible .photo-zoom{opacity:1}
.viewer-stage{height:calc(100dvh - 160px)}
.viewer-bottom{height:80px;padding:17px 25px}
.photo-viewer.has-caption .viewer-stage{height:calc(100dvh - 205px)}
.photo-viewer.has-caption .viewer-bottom{height:125px}
.viewer-bottom h2{font-size:20px;margin:0 0 13px;font-weight:250}
.viewer-meta{display:flex;align-items:center;justify-content:center;gap:12px 23px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.viewer-meta>span:first-child{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--gold)}
.viewer-meta>span:empty{display:none}
.viewer-meta .viewer-source{font-size:10px;margin:0}
@media(hover:hover) and (pointer:fine){
 .dance-clip>button:hover>img,.dance-photo-grid>.editorial-photo:hover img{transform:scale(1.035)}
 .dance-clip>button:hover .dance-play{background:var(--bg);border-color:var(--gold)}
}
@media(min-width:761px) and (max-width:1100px){
 .hero-dance .hero-grid{padding:46px 38px;min-height:540px}
 .hero-dance .hero-copy{width:65%}
 .hero-dance h1{font-size:clamp(52px,6.6vw,70px)}
 .hero-dance .hero-actions{gap:17px}
 .hero-dance .hero-actions>.button{font-size:13px}
 .hero-dance .hero-actions>.plain-link{font-size:12px}
 .dance-training-bar{gap:25px}
 .dance-training-level{display:none}
 .dance-training-label{min-width:190px}
}
@media(max-width:900px){.photo-wall{columns:2}}
@media(max-width:760px){
 .hero-dance{padding-top:20px}
 .hero-dance .hero-grid{display:flex;flex-direction:column;min-height:0;padding:35px 28px 0;border-radius:15px;gap:0;align-items:stretch}
 .hero-dance .hero-copy{width:100%;max-width:none;order:1}
 .hero-dance h1{font-size:clamp(43px,7.6vw,65px);letter-spacing:-1.9px}
 .hero-dance .eyebrow{font-size:9px;letter-spacing:1.6px;margin-bottom:20px}
 .hero-dance .hero-description{font-size:15px;margin:20px 0 24px}
 .hero-dance .hero-actions{gap:17px;align-items:start;flex-direction:column}
 .hero-dance .hero-actions>.button{font-size:13px;min-height:48px}
 .hero-dance .hero-actions>.plain-link{font-size:13px}
 .hero-dance .hero-note{font-size:11px;margin-top:22px}
 .hero-dance .hero-visual{position:relative;inset:auto;order:2;width:calc(100% + 56px);height:300px;min-height:0;margin:27px -28px 0;z-index:0}
 .hero-dance .hero-photo{height:100%}
 .hero-dance .hero-photo>img{object-position:66% 58%}
 .hero-dance .hero-photo:after{background:linear-gradient(0deg,#100a0740,transparent 40%)}
 .hero-dance .hero-film-button{bottom:18px;right:18px;padding:9px 12px;font-size:11px;gap:9px}
 .hero-dance .hero-film-button>span{width:24px;height:24px;font-size:8px}
 .ambient-toggle{left:18px;bottom:18px;min-height:38px;padding:8px 11px;font-size:10px}
 .dance-training-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 16px;min-height:116px;padding:22px 3px}
 .dance-training-label{min-width:0;gap:12px}
 .dance-training-label>.icon{width:22px;height:22px}
 .dance-training-label strong{font-size:18px}
 .dance-training-label>span{font-size:10px}
 .dance-training-time{font-size:18px}
 .dance-training-level{display:none}
 .dance-training-link{grid-column:1/-1;justify-self:end;font-size:11px;gap:12px}
 .dance-video-grid.has-two{grid-template-columns:minmax(0,1fr) minmax(0,.46fr);max-width:100%;gap:13px}
 .dance-clip>button{height:220px;border-radius:12px}
 .dance-play{width:48px;height:48px;font-size:13px}
 .dance-clip-action{left:14px;right:14px;bottom:16px;font-size:11px}
 .dance-clip-action>.icon{width:16px;height:16px}
 .dance-photo-grid{grid-template-columns:1.2fr .8fr;gap:14px}
 .dance-photo-grid>.editorial-photo{min-height:280px}
 .dance-photo-grid>.photo-1{margin-top:30px}
 .dance-photo-grid>.photo-2{grid-column:1/-1;min-height:240px;margin:0}
 .training-dance-image{margin-bottom:22px;border-radius:12px}
 .training-dance-image>img{height:220px}
}
@media(max-width:580px){
 .hero-dance .hero-grid{padding:28px 22px 0}
 .hero-dance h1{font-size:clamp(38px,10.7vw,53px);line-height:1.16}
 .hero-dance .hero-visual{width:calc(100% + 44px);margin:26px -22px 0;height:245px}
 .hero-dance .hero-note{font-size:10px;gap:8px}
 .hero-dance .hero-description{font-size:14px}
 .dance-films .section-heading{display:block}
 .dance-films .section-heading>.plain-link{margin-top:16px}
 .dance-video-grid.has-two{grid-template-columns:minmax(0,1fr);gap:18px}
 .dance-clip>button{height:190px}
 .dance-clip.is-portrait>button{height:240px}
 .dance-clip.is-portrait>button>img{object-fit:contain;background:var(--surface)}
 .dance-photo-grid>.editorial-photo{min-height:225px}
 .dance-photo-grid>.photo-1{margin-top:23px}
 .dance-photo-grid>.photo-2{min-height:205px}
 .dance-photo-grid>.editorial-photo>span{padding:16px 35px 16px 16px;font-size:11px}
 .dance-photo-grid>.editorial-photo>span>.icon{bottom:18px;right:16px}
 .photo-wall{columns:2;column-gap:13px}
 .gallery-item{margin-bottom:14px}
 .photo-frame,.photo-open{border-radius:9px}
 .gallery-item figcaption{font-size:12px;padding:9px 1px 0}
 .photo-credit{font-size:8px;left:8px;bottom:8px;padding:5px 7px;min-height:28px}
 .training-dance-image>img{height:185px}
 .viewer-stage{height:calc(100dvh - 155px)}
 .viewer-bottom{height:85px;padding:15px 15px 20px}
 .photo-viewer.has-caption .viewer-stage{height:calc(100dvh - 200px)}
 .photo-viewer.has-caption .viewer-bottom{height:130px}
 .viewer-meta{font-size:10px;gap:8px 13px}
 .viewer-meta>span:first-child{font-size:9px}
 .viewer-meta .viewer-source{font-size:9px}
 .viewer-bottom h2{font-size:16px;margin-bottom:12px}
 #viewer-previous{left:14px}
 #viewer-next{right:14px}
}
@media(prefers-reduced-motion:no-preference){
 @view-transition{navigation:auto}
 ::view-transition-old(root){animation:page-out .22s ease-in both}
 ::view-transition-new(root){animation:page-in .38s cubic-bezier(.2,.7,.2,1) both}
 .hero-dance .hero-photo>img{animation:dance-frame-in 1.7s var(--ease) both}
 .film-dialog[open],.photo-viewer[open]{animation:dance-dialog-in .2s ease-out both}
 [data-reveal].reveal-ready{opacity:.72;transform:translateY(22px) scale(.988);transition:opacity .82s var(--ease) var(--reveal-delay,0ms),transform .82s var(--ease) var(--reveal-delay,0ms)}
 [data-reveal].reveal-ready.is-revealed{opacity:1;transform:none}
 main .course-card,main .event-card,main .press-card,main .contact-grid>*,main .faq-list>details,.gallery-item{transition:transform .42s var(--ease),border-color .35s var(--ease),background-color .35s var(--ease),box-shadow .42s var(--ease)}
 main .nav-pages>a,main .hero-actions>a,main .button{transition:transform .28s var(--ease),background-color .28s var(--ease),color .28s var(--ease),border-color .28s var(--ease),box-shadow .28s var(--ease)}
 @keyframes page-in{from{opacity:.72;transform:translateY(8px) scale(.996)}to{opacity:1;transform:none}}
 @keyframes page-out{to{opacity:.65;transform:translateY(-5px) scale(1.004)}}
 @keyframes dance-copy-in{from{opacity:.65;transform:translateY(10px)}to{opacity:1;transform:none}}
 @keyframes dance-frame-in{from{transform:scale(1.055)}to{transform:scale(1.02)}}
 @keyframes dance-dialog-in{from{opacity:.75}to{opacity:1}}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 main .course-card:hover,main .event-card:hover,main .press-card:hover,main .contact-grid>*:hover,main .faq-list>details:hover,.gallery-item:hover{transform:translateY(-5px);box-shadow:0 16px 34px #0003}
 main .nav-pages>a:hover,main .hero-actions>a:hover,main .button:hover{transform:translateY(-2px);box-shadow:0 9px 24px #0003}
}
@media(prefers-reduced-motion:no-preference){
 .nav-pages>a>.icon{transform-origin:50% 55%;transition:transform .38s cubic-bezier(.2,.8,.2,1),color .25s ease}
 .nav-pages>a[aria-current=page]>.icon{animation:nav-icon-arrive .62s cubic-bezier(.2,.8,.2,1) both;color:var(--gold)}
 .nav-pages>a:active>.icon{transform:scale(.84) rotate(-8deg)}
 @keyframes nav-icon-arrive{0%{opacity:.5;transform:translateY(5px) scale(.72) rotate(-14deg)}65%{opacity:1;transform:translateY(-2px) scale(1.13) rotate(5deg)}100%{transform:none}}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .nav-pages>a:hover>.icon{transform:translateY(-3px) rotate(-8deg) scale(1.12);color:var(--gold)}
}
@media(prefers-reduced-motion:reduce){
 .hero-dance .hero-copy,.hero-dance .hero-photo>img{animation:none;transform:none}
 .nav-pages>a>.icon{animation:none;transform:none;transition:none}
 #main-nav,#main-nav.open{transform:none;transition:none}
 [data-reveal]{opacity:1;transform:none;transition:none}
 .dance-clip>button:hover>img,.dance-photo-grid>.editorial-photo:hover img,.photo-open:hover img{transform:none}
 .dance-training-bar:hover .dance-training-link>.icon{transform:none}
}

.nav-icon-steps{transform-origin:50% 85%}@media(prefers-reduced-motion:no-preference){.nav-pages a:hover .nav-icon-steps{animation:wildline-steps .6s ease both}@keyframes wildline-steps{0%,100%{transform:rotate(0) translateY(0)}35%{transform:rotate(-12deg) translateY(-3px)}70%{transform:rotate(8deg) translateY(-1px)}}}
@media(min-width:1101px) and (max-width:1270px){.header-inner{gap:18px}.nav-pages>a{padding-left:8px;padding-right:8px}.nav-pages{gap:2px}.nav-account{gap:12px}}
