/* /midtown-stomp-video (dev design showpiece, Ron 2026-11-06; tools/midtown-video-page/build.mjs): the Midtown Stomp page in daylight with the dance floor woven through it.
   Cream page, deep maroon serif titles, Midtown red kickers, gold for rules and tickets. The header is transparent over the opening clip and solid cream after it
   (public/midtown-video.js sets body.mv-solid). Without JavaScript the header stays in place and solid, the posters show and every word is visible. */
body.mv{--mv-cream:#fbf5ea;--mv-cream2:#f4ead8;--mv-rule:#e6d6b8;--mv-ink:#2b2526;--mv-soft:#4a4243;--mv-title:#500b19;--mv-red:#a00826;--mv-maroon:#7f1623;--mv-gold:#e7bd65;--mv-gold2:#f0cf87;--mv-night:#1d1214;--mv-gut:clamp(20px,5vw,64px);--mv-max:1240px;background:var(--mv-cream);color:var(--mv-ink)}
/* The directions strip (phones and tablets only, as on every page; styles.css hides it on wide screens) stays out of the way over the opening clip and
   slides in, small, under the header once the header turns solid (Ron 11-07). */
@media (max-width:81.25em){html:not(.no-js) body.mv:not(#_) .visit-strip{position:fixed;top:var(--mv-head,88px);left:0;right:0;z-index:59;background:var(--mv-cream);border:0;border-bottom:1px solid var(--mv-rule);color:var(--mv-title);font-size:.82rem;text-shadow:none;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .35s ease,transform .35s ease,visibility 0s linear .35s}
 html:not(.no-js) body.mv.mv-solid:not(#_) .visit-strip{opacity:1;visibility:visible;transform:none;transition:opacity .35s ease,transform .35s ease}
 html:not(.no-js) body.mv:not(#_) .visit-strip a{color:var(--mv-title);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}}
/* The open phone menu shows the directions strip at its top, glass or cream like the menu (Ron 11-07). */
@media (max-width:81.25em){html:not(.no-js) body.mv:not(#_):has(#navigation.open) .visit-strip{opacity:1;visibility:visible;transform:none;z-index:61;transition:none}
 html:not(.no-js) body.mv:not(#_):not(.mv-solid):has(#navigation.open) .visit-strip{background:transparent;border-bottom-color:#ffffff2e;color:#fff}
 html:not(.no-js) body.mv:not(#_):not(.mv-solid):has(#navigation.open) .visit-strip a{color:#fff}
 html:not(.no-js) body.mv:not(#_):has(.visit-strip) .site-header #navigation.open{padding-top:48px}}
/* Phones: smaller opening words (Ron 11-07). */
@media (max-width:40em){body.mv:not(#_):not(#_) #main .mv-hero h1{font-size:2.25rem}body.mv:not(#_) .mv-deck{font-size:1.08rem;margin-top:16px!important}}
body.mv:not(#_) #main{max-width:none;padding:0;overflow-x:clip}
body.mv #main [id]{scroll-margin-top:96px}

/* Header: fixed over the clip, transparent there, solid cream after it. */
html:not(.no-js) body.mv:not(#_) .site-header{position:fixed;top:0;left:0;right:0;z-index:60;transition:background-color .35s ease,box-shadow .35s ease,border-color .35s ease}
/* Its own soft shade, so the names and the menu stay readable wherever the clip is under them while it scrolls. */
html:not(.no-js) body.mv:not(#_):not(.mv-solid) .site-header{background:linear-gradient(#12080abf,#12080a59 70%,#12080a00);border-bottom-color:transparent;box-shadow:none}
html:not(.no-js) body.mv:not(#_):not(.mv-solid) .site-header :is(.bl-name,.brand-logo-link,#navigation>a,.explore-menu>summary,.menu-toggle){color:#fff;text-shadow:0 1px 10px #0007}
html:not(.no-js) body.mv:not(#_):not(.mv-solid) .site-header .button{background:#fff;border-color:#fff;color:var(--mv-maroon);text-shadow:none}
html:not(.no-js) body.mv:not(#_):not(.mv-solid) .site-header .button:is(:hover,:focus-visible){background:var(--mv-gold);border-color:var(--mv-gold);color:var(--mv-title)}
html:not(.no-js) body.mv:not(#_):not(.mv-solid) .site-header :is(a,summary,button):focus-visible{outline:2px solid #fff;outline-offset:3px}
body.mv:not(#_) .site-header,body.mv.mv-solid:not(#_) .site-header{background:var(--mv-cream);border-bottom:1px solid var(--mv-rule)}
body.mv.mv-solid:not(#_) .site-header{box-shadow:0 10px 30px -22px #500b1966}

/* The menu in groups (Ron, 11-06: it read like one run-on sentence): where to go, what to learn, how to find us. No account link yet. */
body.mv .site-header [data-account-nav]{display:none!important}
@media (min-width:81.26em){
 body.mv:not(#_) .site-header #navigation{gap:0;align-items:center}
 body.mv:not(#_) .site-header #navigation>a:not(.button){padding:8px 8px;font-weight:600}
 body.mv:not(#_) .site-header #navigation>a:is([href="/spotlight-ballroom"],[href="/lessons"],[href="/visit"]){margin-left:6px;border-left:1px solid currentColor;border-image:linear-gradient(transparent 22%,#a0082655 22% 78%,transparent 78%) 1;padding-left:14px}
 html:not(.no-js) body.mv:not(.mv-solid):not(#_) .site-header #navigation>a:is([href="/spotlight-ballroom"],[href="/lessons"],[href="/visit"]){border-image:linear-gradient(transparent 22%,#ffffff80 22% 78%,transparent 78%) 1}
 body.mv:not(#_) .site-header #navigation>.button{margin-left:12px}
 body.mv:not(#_) .site-header #navigation>.explore-menu{margin-left:10px}
 /* Fewer items so the row fits: Wedding lessons stays one click away under Explore (and in the footer). */
 body.mv:not(#_) .site-header #navigation>a[href="/wedding-dance-lessons"]{display:none}
}
@media (min-width:81.26em) and (max-width:90em){body.mv:not(#_) .site-header #navigation>a:not(.button){padding:8px 6px}body.mv:not(#_) .site-header .bl-name{font-size:.86rem}}
@media (max-width:81.25em){
 /* The open phone menu covers the page below the header (Ron, 11-06), cream when the header is cream, glass when it is glass. No colour
    transitions in it: WebKit left the links half-painted while they changed colour. */
 body.mv:not(#_) .site-header #navigation.open{position:fixed;top:var(--mv-head,88px);bottom:0;left:0;right:0;max-height:none;overflow:auto;overscroll-behavior:contain;background:var(--mv-cream);box-shadow:none}
 body.mv .site-header #navigation :is(a,summary,.button){transition:none!important}
 body.mv:not(#_) .site-header #navigation.open{padding:8px 20px 24px;gap:0}
 body.mv:not(#_) .site-header #navigation.open>a:not(.button){display:block;width:100%;padding:15px 2px;font-size:1.1rem;font-weight:600;border-bottom:1px solid var(--mv-rule);color:var(--mv-title)}
 body.mv:not(#_) .site-header #navigation.open>a:is([href="/spotlight-ballroom"],[href="/lessons"],[href="/visit"]){margin-top:14px}
 body.mv:not(#_) .site-header #navigation.open>.button{margin-top:22px;width:100%;justify-content:center}
 body.mv:not(#_) .site-header #navigation.open>.explore-menu{margin-top:12px}
}

/* Glass to cream (Ron, 11-06): while the header is glass over the clip, its Explore panel and the phone menu are glass too; once it turns cream they are cream. */
html:not(.no-js) body.mv:not(#_):not(.mv-solid) .site-header :is(.mega-panel,#navigation.open){background:#1d1214b8;-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);border-top:1px solid #ffffff2e;box-shadow:0 24px 48px -12px #0009}
html:not(.no-js) body.mv:not(#_):not(.mv-solid) .site-header .mega-panel :is(a,span,strong),html:not(.no-js) body.mv:not(#_):not(.mv-solid) .site-header .explore-menu[open]>summary{color:#fff!important;text-shadow:0 1px 8px #0008}
html:not(.no-js) body.mv:not(#_):not(.mv-solid) .site-header .mega-panel strong{color:var(--mv-gold2)!important}
html:not(.no-js) body.mv:not(#_):not(.mv-solid) .site-header .mega-intro{border-bottom-color:#ffffff2e}
@media (max-width:81.25em){
 html:not(.no-js) body.mv:not(#_):not(.mv-solid) .site-header #navigation.open>a:not(.button){color:#fff!important;border-bottom-color:#ffffff2e!important;text-shadow:0 1px 8px #0008}
 html:not(.no-js) body.mv:not(#_):not(.mv-solid) .site-header #navigation.open{background:#1d1214f0;-webkit-backdrop-filter:blur(24px) saturate(1.2);backdrop-filter:blur(24px) saturate(1.2)}
 html:not(.no-js) body.mv:not(#_):not(.mv-solid) .site-header #navigation.open .mega-panel{background:none;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;border-top:0}
}

/* Buttons on this page (the dev redesign's three buttons, scoped here): maroon pill for a section's one main action, outline pill for everything
   else, gold for tickets only; on the clip the main action is white. */
body.mv:not(#_) #main .button{display:inline-flex;align-items:center;justify-content:center;gap:.5em;width:auto;margin:0;border-radius:999px;border:2px solid var(--mv-maroon);background:var(--mv-maroon);color:#fff;font:600 1rem/1.3 var(--sans);letter-spacing:0;text-transform:none;padding:11px 24px;min-height:48px;box-shadow:none;text-decoration:none}
body.mv:not(#_) #main .button:is(:hover,:focus-visible){background:#5c0f19;border-color:#5c0f19;color:#fff}
body.mv:not(#_) #main .button.outline{background:transparent;color:var(--mv-maroon);border-color:var(--mv-maroon)}
body.mv:not(#_) #main .button.outline:is(:hover,:focus-visible){background:var(--mv-maroon);color:#fff}
body.mv:not(#_):not(#_) #main .button.ticket{background:var(--mv-gold);border-color:var(--mv-gold);color:var(--mv-title);font-weight:700}
body.mv:not(#_):not(#_) #main .button.ticket:is(:hover,:focus-visible){background:var(--mv-gold2);border-color:var(--mv-gold2);color:var(--mv-title)}
body.mv:not(#_) #main .mv-nye .button{margin-top:26px}

/* Shared type. */
body.mv:not(#_) #main :is(h1,h2,h3){font-family:var(--serif);font-weight:500;color:var(--mv-title);letter-spacing:-.012em;text-wrap:balance;margin:0}
body.mv:not(#_) #main h2{font-size:clamp(2.1rem,4.6vw,3.6rem);line-height:1.06}
body.mv:not(#_) #main h3{font-size:clamp(1.85rem,3vw,2.7rem);line-height:1.08}
/* Zero specificity: every component below sets its own spacing. */
:where(body.mv #main) p{margin:0}
/* Links look like links at rest (Ron, 11-06): maroon with a maroon underline; thicker on hover. */
body.mv #main a:not(.button){color:var(--mv-maroon);text-decoration:underline;text-decoration-color:currentColor;text-decoration-thickness:1.5px;text-underline-offset:4px}
body.mv #main a:not(.button):is(:hover,:focus-visible){text-decoration-thickness:3px}
body.mv .mv-wrap{max-width:var(--mv-max);margin:0 auto;padding:0 var(--mv-gut)}
body.mv .mv-kicker{font:700 .78rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mv-red);margin-bottom:14px}
body.mv:not(#_) #main .mv-link{display:inline-block;margin-top:22px;font-weight:600;font-size:1.02rem;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:5px;color:var(--mv-maroon)}
body.mv:not(#_) #main .mv-link::after{content:"\2192\FE0E";display:inline-block;margin-left:.45em;transition:transform .2s ease}
body.mv:not(#_) #main .mv-link:is(:hover,:focus-visible)::after{transform:translateX(4px)}
body.mv .mv-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
body.mv .mv-section{padding:clamp(72px,10vw,136px) 0}

/* Clips: the poster first; the video fades in over it once it is actually playing. */
body.mv .mv-media,body.mv .mv-hero-media{position:relative;margin:0;overflow:hidden;background:var(--mv-night)}
body.mv .mv-media :is(img,video),body.mv .mv-hero-media :is(img,video){position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
body.mv .mv-media video,body.mv .mv-hero-media video{opacity:0;transition:opacity .9s ease}
body.mv .mv-media video.on,body.mv .mv-hero-media video.on{opacity:1}
body.mv .mv-hero-media picture{display:contents}
body.mv .mv-pause{position:absolute;right:16px;bottom:16px;z-index:3;width:44px;height:44px;border-radius:50%;border:1.5px solid #ffffffb3;background:#1d1214a6;color:#fff;cursor:pointer;display:grid;place-items:center;padding:0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .2s ease}
body.mv .mv-pause[hidden]{display:none}
body.mv .mv-pause:is(:hover,:focus-visible){background:var(--mv-maroon);outline:none;border-color:#fff}
body.mv .mv-pause::before{content:"";width:12px;height:14px;background:linear-gradient(90deg,#fff 0 4px,transparent 4px 8px,#fff 8px)}
body.mv .mv-pause[aria-pressed=true]::before{width:0;height:0;background:none;border-style:solid;border-width:8px 0 8px 13px;border-color:transparent transparent transparent #fff;margin-left:3px}
body.mv .mv-pause-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* The opening: the floor, full bleed, the headline set into it. */
body.mv .mv-hero{position:relative;min-height:max(600px,100svh);display:flex;align-items:flex-end;color:#fff;background:var(--mv-night);isolation:isolate;overflow:hidden}
body.mv .mv-hero-media{position:absolute;inset:0;z-index:-2}
body.mv .mv-hero::before{content:"";position:absolute;inset:0 0 auto;height:min(190px,26%);background:linear-gradient(#12080acc 0%,#12080a73 50%,#12080a00 100%);z-index:-1;pointer-events:none}
body.mv .mv-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#12080af0 0%,#12080acc 24%,#12080a66 44%,#12080a00 64%);z-index:-1;pointer-events:none}
body.mv .mv-hero-words{width:100%;max-width:var(--mv-max);margin:0 auto;padding:0 var(--mv-gut) clamp(48px,9vh,104px)}
body.mv:not(#_) #main .mv-hero .mv-kicker{color:var(--mv-gold2)}
body.mv:not(#_) #main .mv-hero h1{color:#fff;font-size:clamp(2.75rem,6.6vw,6.25rem);line-height:1.02;letter-spacing:-.02em;max-width:13ch;margin:0;text-shadow:0 2px 30px #0006}
body.mv:not(#_) #main .mv-hero h1 em{display:block;color:var(--mv-gold2);font-style:italic}
body.mv .mv-deck{margin-top:22px!important;max-width:30ch;font:500 clamp(1.3rem,2.1vw,1.75rem)/1.35 var(--sans);letter-spacing:-.005em;color:#fff;text-shadow:0 1px 16px #000c;border-left:3px solid var(--mv-gold);padding-left:18px}
body.mv:not(#_) #main .mv-hero .button{background:#fff;border-color:#fff;color:var(--mv-maroon)}
body.mv:not(#_) #main .mv-hero .button.outline{background:transparent;border-color:#ffffffd9;color:#fff}
body.mv:not(#_) #main .mv-hero .button:is(:hover,:focus-visible){background:var(--mv-gold);border-color:var(--mv-gold);color:var(--mv-title)}
body.mv .mv-hero-pause{right:var(--mv-gut);bottom:clamp(48px,9vh,104px)}
@media (min-width:900px){body.mv .mv-hero-words{padding-right:calc(var(--mv-gut) + 64px)}}
@media (max-width:599px){body.mv .mv-hero-words{padding-bottom:84px}body.mv .mv-hero .mv-actions{flex-direction:column;gap:10px}body.mv:not(#_) #main .mv-hero .button{width:100%;justify-content:center;text-align:center;padding-left:14px;padding-right:14px}body.mv .mv-hero-pause{bottom:22px}}

/* The lede. */
body.mv .mv-lede{padding:clamp(80px,12vw,168px) 0 clamp(48px,7vw,96px);text-align:center}
body.mv .mv-quote{font:italic 500 clamp(1.9rem,4.4vw,3.6rem)/1.16 var(--serif);color:var(--mv-title);max-width:20ch;margin:0 auto!important;text-wrap:balance}
body.mv .mv-quote::before{content:"";display:block;width:56px;height:3px;background:var(--mv-gold);border-radius:2px;margin:0 auto 32px}
body.mv .mv-lede-text{max-width:46ch;margin:28px auto 0!important;font-size:clamp(1.06rem,1.4vw,1.2rem);line-height:1.7;color:var(--mv-soft)}

/* Your first Friday: chapters. Phones: the clip full width, the words under it. Wide screens: the clip runs to the screen edge, sides alternate. */
body.mv .mv-night{padding:clamp(24px,4vw,48px) 0 clamp(40px,6vw,80px)}
body.mv .mv-night-head{text-align:center;margin-bottom:clamp(40px,6vw,88px)}
body.mv .mv-chapter{display:grid;margin:0 0 clamp(64px,10vw,140px)}
body.mv .mv-chapter:last-child{margin-bottom:0}
body.mv .mv-chapter .mv-media{aspect-ratio:4/5;width:100%}
body.mv .mv-tag{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:56px 22px 16px;font:italic 500 clamp(2.6rem,7vw,5rem)/1 var(--serif);color:#fff;letter-spacing:-.02em;background:linear-gradient(0deg,#12080a99,#12080a00);pointer-events:none}
body.mv .mv-copy{padding:32px var(--mv-gut) 0;max-width:40rem}
body.mv .mv-time{font:700 .78rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mv-soft);margin-bottom:14px!important}
/* The time (or "Some Fridays") above each chapter headline; the clip carries what the chapter is about. */
body.mv .mv-time{color:var(--mv-red)}

body.mv .mv-copy h3{margin-bottom:20px!important}
body.mv .mv-copy p:not(.mv-time){font-size:clamp(1.06rem,1.2vw,1.16rem);line-height:1.72;margin-bottom:14px}
body.mv .mv-copy .mv-note{font-weight:600;color:var(--mv-title);border-left:3px solid var(--mv-gold);padding:2px 0 2px 16px;margin-top:20px!important}
@media (min-width:900px){
 body.mv .mv-chapter{max-width:var(--mv-max);margin-left:auto;margin-right:auto;padding:0 var(--mv-gut);grid-template-columns:minmax(0,58fr) minmax(0,42fr);gap:clamp(40px,5vw,88px);align-items:center}
 body.mv .mv-chapter.mv-right{grid-template-columns:minmax(0,42fr) minmax(0,58fr)}
 body.mv .mv-chapter.mv-right .mv-media{grid-column:2;grid-row:1}
 body.mv .mv-chapter.mv-right .mv-copy{grid-column:1;grid-row:1}
 /* The clip keeps 4:5 until that is taller than the screen allows; then it is cropped top and bottom a little, never shrunk into a strip. */
 body.mv .mv-chapter .mv-media{max-height:max(440px,calc(100svh - 140px));border-radius:4px}
 body.mv .mv-copy{padding:0;max-width:34rem;width:100%}
}

/* The ticket stub (the same stub as the Live Music page). */
body.mv .mv-stub{position:relative;margin-top:26px;max-width:30rem;padding:16px 18px 18px;background:var(--mv-gold);color:#2a0910;border-radius:14px;-webkit-mask:radial-gradient(circle 10px at 0 62%,transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 10px at 100% 62%,transparent 98%,#000) right/51% 100% no-repeat;mask:radial-gradient(circle 10px at 0 62%,transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 10px at 100% 62%,transparent 98%,#000) right/51% 100% no-repeat;box-shadow:0 18px 40px -26px #500b19}
body.mv .mv-stub .stub-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
body.mv .mv-stub .stub-k{font:700 .78rem/1.25 var(--sans)!important;letter-spacing:.03em;margin:0!important;color:#2a0910}
body.mv .mv-stub .stub-n{font:700 1.4rem/1.1 var(--serif)!important;margin:4px 0 0!important;color:#2a0910}
body.mv .mv-stub .stub-p{flex:none;text-align:right;min-width:80px;margin:0!important}
body.mv .mv-stub .stub-p b{display:block;font:700 2.2rem/1 var(--serif);font-feature-settings:'lnum'}
body.mv .mv-stub .stub-p span{display:block;font:600 .7rem/1.2 var(--sans);margin-top:2px}
body.mv .mv-stub .stub-w{font:500 .9rem/1.35 var(--sans)!important;margin:10px 0 14px!important;color:#2a0910}
body.mv:not(#_) #main .mv-stub .buy{display:flex;align-items:center;justify-content:center;min-height:52px;padding:8px 18px;background:#2a0910;color:var(--mv-gold);border-radius:10px;font:700 1.15rem var(--sans);text-decoration:none}
body.mv:not(#_) #main .mv-stub .buy:is(:hover,:focus-visible){background:var(--mv-title);color:var(--mv-gold2)}

/* The next Fridays. */
body.mv .mv-fridays{background:var(--mv-cream2)}
body.mv .mv-section-head{margin-bottom:clamp(28px,4vw,48px)}
body.mv .mv-rows{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--mv-rule)}
body.mv .mv-rows li{border-top:1px solid var(--mv-rule)}
body.mv .mv-rows li[hidden]{display:none}
body.mv .mv-rows li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}
body.mv:not(#_) #main .mv-row-main{display:grid;grid-template-columns:64px minmax(0,1fr);gap:18px;align-items:center;padding:18px 8px;text-decoration:none;color:var(--mv-ink)}
body.mv:not(#_) #main .mv-row-main:is(:hover,:focus-visible) .mv-row-name{color:var(--mv-red)}
body.mv .mv-row-date{display:flex;flex-direction:column;align-items:center;line-height:1}
body.mv .mv-row-date b{font:700 .74rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mv-red)}
body.mv .mv-row-date i{font:500 2.3rem/1 var(--serif);font-style:normal;color:var(--mv-title);margin-top:4px}
body.mv .mv-row-what{display:flex;flex-direction:column;gap:4px;min-width:0}
body.mv .mv-row-kind{font:700 .74rem/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mv-soft)}
body.mv .mv-row-name{font:500 clamp(1.15rem,2vw,1.45rem)/1.2 var(--serif);color:var(--mv-title);transition:color .2s ease}
/* The compact ticket: a little gold stub with the same notches as the big one. "Get your ticket" on wide screens, "Ticket" on phones. */
body.mv:not(#_) #main .mv-tk{display:inline-block;white-space:nowrap;padding:0 18px;text-align:center;margin-right:4px;background:var(--mv-gold);color:#2a0910;font:700 .92rem/44px var(--sans);text-decoration:none;border-radius:8px;-webkit-mask:radial-gradient(circle 6px at 0 50%,transparent 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 6px at 100% 50%,transparent 97%,#000) right/51% 100% no-repeat;mask:radial-gradient(circle 6px at 0 50%,transparent 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 6px at 100% 50%,transparent 97%,#000) right/51% 100% no-repeat;transition:background .2s ease}
body.mv:not(#_) #main .mv-tk:is(:hover,:focus-visible){background:var(--mv-gold2)}
body.mv .mv-tk-t{display:inline-block}
body.mv .mv-rows-empty{padding:18px 0;font-size:1.05rem}
@media (max-width:560px){body.mv:not(#_) #main .mv-row-main{grid-template-columns:48px minmax(0,1fr);gap:12px;padding:16px 2px}body.mv .mv-tk-get{display:none}body.mv .mv-tk-t::first-letter{text-transform:uppercase}body.mv:not(#_) #main .mv-tk{padding:0 14px}}

/* Lindy Hop series. */
body.mv .mv-series-grid{display:grid;gap:clamp(36px,6vw,96px)}
body.mv .mv-series-words p:not(.mv-kicker):not(.mv-aside){font-size:1.08rem;line-height:1.72;margin-top:16px;max-width:38rem}
body.mv .mv-series-words h2{margin-bottom:6px!important}
body.mv .mv-aside{margin-top:26px!important;color:var(--mv-soft)}
body.mv .mv-series-month{font:italic 500 1.5rem/1.2 var(--serif);color:var(--mv-maroon);margin-bottom:12px!important}
body.mv .mv-series-list ul{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--mv-rule)}
body.mv .mv-series-list li{border-top:1px solid var(--mv-rule)}
body.mv .mv-series-list li[hidden]{display:none}
body.mv .mv-series-none{border-top:1px solid var(--mv-rule);padding-top:16px;font-size:1.02rem;line-height:1.6;color:var(--mv-soft)}
body.mv:not(#_) #main .mv-series-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 18px;padding:20px 4px;text-decoration:none;color:var(--mv-ink)}
body.mv:not(#_) #main .mv-series-list a:is(:hover,:focus-visible) .mv-series-name{color:var(--mv-red)}
body.mv .mv-series-time{grid-column:1;font:600 .9rem var(--sans);color:var(--mv-soft)}
body.mv .mv-series-name{grid-column:1;font:500 1.6rem/1.15 var(--serif);color:var(--mv-title);transition:color .2s ease}
body.mv .mv-series-rate{grid-column:2;grid-row:1/3;align-self:center;font:600 .95rem var(--sans);color:var(--mv-ink);text-align:right}
body.mv .mv-series-rate small{display:block;margin-top:3px;font:500 .84rem var(--sans);color:var(--mv-soft)}
@media (min-width:900px){body.mv .mv-series-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center}}

/* New Year's Eve: the one dark band, for the party. */
body.mv .mv-nye{background:radial-gradient(120% 90% at 85% 0%,#7f1623 0%,#500b19 55%,#2c060e 100%);color:#fff7e6}
body.mv .mv-nye-grid{display:grid;gap:clamp(32px,5vw,80px);align-items:center}
body.mv .mv-nye-flyer{width:100%;max-width:460px;height:auto;display:block;box-shadow:0 30px 60px -30px #000}
body.mv:not(#_) #main .mv-nye .mv-kicker{color:var(--mv-gold2)}
body.mv:not(#_) #main .mv-nye h2{color:#fff}
body.mv .mv-nye ul{list-style:none;margin:22px 0 0;padding:0}
body.mv .mv-nye li{padding:10px 0;border-top:1px solid #ffffff2b;font-size:1.04rem}
body.mv .mv-nye-price{margin-top:22px!important;font:500 1.6rem/1.2 var(--serif);color:var(--mv-gold2)}
body.mv .mv-nye-members{margin-top:4px!important;color:#ffefd4}
body.mv .mv-nye .button{margin-top:26px}
@media (min-width:900px){body.mv .mv-nye-grid{grid-template-columns:minmax(0,460px) minmax(0,1fr)}}

/* One on one, birthdays. */
body.mv .mv-more-grid{display:grid;gap:56px}
body.mv .mv-more-grid>div{border-top:3px solid var(--mv-gold);padding-top:28px}
body.mv .mv-more-grid p{font-size:1.08rem;line-height:1.72;margin:16px 0 24px!important;max-width:34rem}
body.mv .mv-more-grid h2{font-size:clamp(1.9rem,3.4vw,2.6rem)!important}
@media (min-width:900px){body.mv .mv-more-grid{grid-template-columns:1fr 1fr;gap:clamp(48px,7vw,112px)}}

/* Directions. */
body.mv .mv-find{background:var(--mv-cream2)}
body.mv .mv-find-grid{display:grid;gap:28px}
body.mv .mv-address{margin-top:18px!important;font:500 clamp(1.4rem,2.4vw,1.9rem)/1.35 var(--serif);color:var(--mv-ink)}
body.mv .mv-find-grid p:not(.mv-kicker):not(.mv-address){font-size:1.08rem;line-height:1.72;max-width:38rem}
@media (min-width:900px){body.mv .mv-find-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:clamp(48px,7vw,112px)}}

@media (prefers-reduced-motion:reduce){body.mv .mv-media video,body.mv .mv-hero-media video{transition:none}}
/* Names in the Friday list and the series list are links too: underlined at rest like every other link here. */
body.mv .mv-row-name,body.mv .mv-series-name{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;text-decoration-color:#7f162399}
/* The eyebrow switch (SHOW_EYEBROWS in tools/midtown-video-page/build.mjs): hidden while <body> has mv-no-eyebrows. */
body.mv.mv-no-eyebrows :is(.mv-kicker,.mv-time){display:none!important}
