:root{--ink:#100d13;--paper:#fff6e9;--pink:#ff348f;--yellow:#ffde24;--cyan:#32d7ed;--purple:#9464f6;--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased}
body,html{max-width:100%;overflow-x:clip}
a{color:inherit;text-decoration:none}
button,a{-webkit-tap-highlight-color:transparent}
a:focus-visible{outline:3px solid var(--cyan);outline-offset:6px}
::selection{background:var(--cyan);color:var(--ink)}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:var(--display);font-weight:800}
img{max-width:100%;display:block}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.skip-link{position:fixed;top:0;left:20px;background:var(--yellow);color:var(--ink);padding:16px;z-index:100;transform:translateY(-120%)}
.skip-link:focus{transform:translateY(0)}
.site-header{height:76px;position:fixed;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 3.4%;z-index:30;background:rgba(16,13,19,.93);border-bottom:1px solid #ffffff26;backdrop-filter:blur(14px)}
.brand{position:relative;font:800 20px/.78 var(--display);letter-spacing:-.4px;padding-right:30px}
.brand-star{position:absolute;right:0;top:2px;color:var(--pink);font:31px/1 var(--sans)}
.desktop-nav{display:flex;gap:34px;align-items:center}
.desktop-nav a,.header-ticket{font-size:12px;font-weight:700;letter-spacing:.07em}
.desktop-nav a{padding:15px 0;position:relative}
.desktop-nav a:after{content:'';height:2px;position:absolute;bottom:5px;left:0;right:0;background:var(--pink);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.desktop-nav a:hover:after{transform:scaleX(1)}
.header-ticket{display:flex;align-items:center;gap:30px;border:1px solid #fff6e960;padding:10px 15px;transition:background .2s,color .2s}
.header-ticket:hover{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}
.header-ticket span{font-size:23px;line-height:1}
.hero{position:relative;min-height:850px;height:100svh;max-height:1250px;padding:111px 3.4% 31px;isolation:isolate;display:flex;flex-direction:column}
.hero-image{position:absolute;inset:0;z-index:-3;background:#100d13 url('assets/disco-hero.webp') center 43%/cover no-repeat;will-change:transform}
.hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#100d1310 12%,#100d1300 35%,#100d13bb 77%,#100d13 100%)}
.hero-topline{display:flex;justify-content:space-between;font-size:12px;font-weight:600;letter-spacing:.09em}
.hero-heading{margin-top:38px;position:relative;flex:1;display:flex;flex-direction:column;justify-content:center;padding-bottom:2.5%}
.hero-baile{display:block;font:800 clamp(100px,14.2vw,240px)/.72 var(--display);letter-spacing:-.02em;color:var(--yellow);position:relative;width:max-content;z-index:1}
.title-star{position:absolute;right:-.72em;top:-.1em;font:400 .65em/1 var(--sans);transform:rotate(-12deg)}
h1{font-size:clamp(120px,19.1vw,330px);line-height:.78;letter-spacing:-.025em;color:var(--pink);margin-top:.05em;margin-left:-.015em;white-space:nowrap;position:relative;z-index:1}
.hero-invitation{position:absolute;right:5%;top:29%;display:flex;align-items:center;gap:25px}
.hero-invitation p{font-size:clamp(20px,2.1vw,34px);line-height:1.15;letter-spacing:-.04em;font-weight:600}
.round-arrow{border:1px solid #fff6e970;border-radius:50%;display:grid;place-items:center;width:62px;height:62px;font-size:30px;transition:background .2s,color .2s}
.round-arrow:hover{background:var(--yellow);color:var(--ink)}
.hero-bottom{display:grid;grid-template-columns:1fr 1fr auto;gap:30px;align-items:end;border-top:1px solid #fff6e95c;padding-top:25px;position:relative;z-index:2}
.hero-date strong{display:block;font:700 54px/.95 var(--display);letter-spacing:-.02em}
.hero-date span{display:block;margin-top:10px;font-size:12px;letter-spacing:.05em}
.hero-bottom>p{font-size:12px;line-height:1.6;letter-spacing:.05em}
.button{min-height:58px;padding:18px 22px;display:inline-flex;align-items:center;justify-content:space-between;gap:36px;font-size:12px;font-weight:700;letter-spacing:.03em;transition:transform .2s,background .2s,color .2s}
.button span{font-size:25px;line-height:.6;font-weight:400}
.button:hover{transform:translateY(-4px)}
.button-yellow{background:var(--yellow);color:var(--ink)}
.hero-image-note{position:absolute;right:3.4%;bottom:8px;font-size:9px;letter-spacing:.08em;color:#fff6e980}
.ticker{background:var(--pink);color:var(--ink);overflow:hidden;height:87px;border-block:2px solid var(--ink);position:relative;z-index:2}
.ticker-track{display:flex;align-items:center;width:max-content;gap:36px;animation:marquee 38s linear infinite;height:100%;font:800 50px/.9 var(--display);white-space:nowrap}
.ticker-track i{font:400 43px/1 var(--sans);font-style:normal}
.section-pad{padding:64px 5% 90px}
.section-kicker{display:flex;justify-content:space-between;gap:25px;font-size:12px;font-weight:600;letter-spacing:.07em;padding-bottom:23px;border-bottom:1px solid currentColor}
.intro{background:var(--yellow);color:var(--ink);position:relative;overflow:hidden}
.intro-heading{position:relative;margin-top:50px}
.intro h2{font-size:clamp(76px,10.2vw,180px);line-height:.84;letter-spacing:-.025em}
.intro h2 span{-webkit-text-stroke:1.5px var(--ink);color:transparent}
.intro-bottom{display:grid;grid-template-columns:1.1fr .8fr;gap:9%;align-items:center;margin-top:70px}
.dance-picture{position:relative;transform:rotate(-3deg);background:var(--ink);padding:10px 10px 12px;box-shadow:12px 12px 0 #100d1326}
.dance-picture img{height:330px;width:100%;object-fit:cover}
.dance-picture figcaption{font-size:9px;color:var(--paper);letter-spacing:.04em;padding-top:13px;line-height:1.5}
.intro-copy{max-width:450px}
.intro-copy p{font-size:16px;line-height:1.65;margin-bottom:20px}
.intro-copy .lead{font-size:25px;letter-spacing:-.04em;line-height:1.35;font-weight:500}
.text-link{display:flex;gap:20px;align-items:center;justify-content:space-between;font-size:12px;font-weight:700;padding-block:15px;border-bottom:1px solid currentColor;letter-spacing:.03em;min-height:48px}
.text-link span{font-size:25px}
@keyframes marquee{to{transform:translateX(-35%)}}
@media(min-width:1600px){.hero-heading{justify-content:center}.hero-invitation{top:24%}.hero-bottom>p{font-size:14px}.intro-bottom{max-width:1420px;margin-inline:auto}.dance-picture img{height:420px}.intro-copy .lead{font-size:30px}}
@media(max-width:1100px){.hero{min-height:760px}.hero-invitation{top:27%}.hero-heading{padding-top:70px}.hero-bottom{gap:20px;grid-template-columns:.9fr 1fr auto}.hero-bottom .button{padding:18px 14px;gap:18px;font-size:10px}.hero-date strong{font-size:45px}.hero-bottom>p{font-size:10px}}
@media(max-width:700px){html{scroll-padding-top:65px}.site-header{height:65px;padding-inline:5%}.brand{font-size:18px}.brand-star{font-size:27px}.desktop-nav{display:none}.header-ticket{font-size:11px;padding:9px 12px;gap:20px}.hero{height:91svh;min-height:700px;max-height:900px;padding:96px 5% 30px}.hero-image{background-position:60% 35%;background-size:auto 100%}.hero-shade{background:linear-gradient(180deg,#100d1320 12%,#100d1300 30%,#100d1370 58%,#100d13 90%)}.hero-topline{font-size:9px;letter-spacing:.04em;gap:15px}.hero-edition{display:none}.hero-heading{margin-top:48px;flex:initial;padding-top:0;padding-bottom:0}.hero-baile{font-size:25.5vw;line-height:.8}.title-star{right:-.8em;top:-.05em;font-size:.6em}h1{font-size:18.6vw;line-height:.86;margin-top:14px;letter-spacing:-.02em}.hero-invitation{position:relative;inset:auto;margin-top:36px;justify-content:space-between}.hero-invitation p{font-size:23px;line-height:1.15}.round-arrow{height:45px;width:45px;font-size:23px}.hero-bottom{grid-template-columns:1fr 1fr;gap:18px 10px;margin-top:auto;padding-top:19px;align-items:center}.hero-date strong{font-size:40px}.hero-date span{font-size:8px;margin-top:7px}.hero-bottom>p{font-size:9px;line-height:1.6;text-align:right}.hero-bottom .button{grid-column:1/-1;min-height:52px;padding:16px 20px;font-size:11px}.hero-image-note{font-size:8px;bottom:9px;right:5%}.ticker{height:62px}.ticker-track{font-size:34px;gap:25px}.ticker-track i{font-size:30px}.section-pad{padding:36px 5% 55px}.section-kicker{font-size:9px;letter-spacing:.04em;gap:20px;padding-bottom:19px}.section-kicker>span:last-child{text-align:right;max-width:45%}.intro-heading{margin-top:38px}.intro h2{font-size:13.5vw;line-height:.9;letter-spacing:-.02em}.intro h2 span{-webkit-text-stroke:1px var(--ink)}.intro-bottom{grid-template-columns:1fr;gap:36px;margin-top:55px}.dance-picture{width:90%;margin-left:3%;padding:7px 7px 10px;box-shadow:8px 8px 0 #100d1326}.dance-picture img{height:240px}.dance-picture figcaption{font-size:7px;padding-top:10px}.intro-copy{max-width:none;margin-top:4px}.intro-copy .lead{font-size:24px;max-width:360px}.intro-copy p{font-size:15px;margin-bottom:18px}.text-link{font-size:11px}}
@media(max-width:360px){.hero{min-height:650px}.hero-invitation{margin-top:25px}.hero-date strong{font-size:35px}.hero-bottom>p{font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-image{transform:none!important}}
.hero-topline,.hero-date span,.hero-image-note,.section-kicker,.dance-picture figcaption,.header-ticket,.desktop-nav a{font-size:12px;line-height:1.4}
.hero-bottom>p{font-size:16px;line-height:1.4;letter-spacing:0}
.hero-date span{letter-spacing:.01em}
.hero-image-note{font-size:12px;line-height:1.1}
.intro-copy p:not(.lead){font-size:16px;line-height:1.55}
.button,.hero-bottom .button,.text-link{font-size:12px}
.brand{min-height:44px;display:block;padding-top:7px}
.brand-star{top:8px}
.hero-image-note{bottom:8px}
@media(max-width:700px){.hero{min-height:780px}.hero-topline{gap:10px;letter-spacing:0}.hero-topline>span:nth-child(2){max-width:58%;text-align:right}.hero-date span{font-size:12px;max-width:170px}.hero-bottom{grid-template-columns:1fr 1fr;align-items:start;gap:18px 13px}.hero-bottom>p{font-size:16px;line-height:1.25}.hero-date strong{font-size:38px}.hero-bottom .button{align-items:center}.section-kicker{letter-spacing:0;gap:20px}.dance-picture figcaption{font-size:12px;letter-spacing:0;line-height:1.35}}
/* Compact landing: intro + decades row, single info block, short closing. */
.intro.section-pad{padding-bottom:72px}
.intro-heading{margin-top:40px}
.intro h2{font-size:clamp(60px,7.6vw,132px)}
.intro-bottom{margin-top:48px}
.dance-picture img{height:300px}
.decade-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:8px 0 0;padding:0;list-style:none}
.decade-row li{padding:14px 12px 12px;border:2px solid var(--ink);font:800 clamp(30px,3vw,44px)/.9 var(--display);letter-spacing:-.02em}
.decade-row li small{display:block;margin-top:6px;font:600 12px/1.3 var(--sans);letter-spacing:0}
.decade-row li:nth-child(1){background:var(--purple)}
.decade-row li:nth-child(2){background:var(--cyan)}
.decade-row li:nth-child(3){background:var(--pink)}
.decade-row li:nth-child(4){background:var(--paper)}
.info{background:var(--pink);color:var(--ink)}
.info h2{font-size:clamp(64px,8.4vw,140px);line-height:.84;letter-spacing:-.03em;margin:44px 0 40px}
.info h2 span{-webkit-text-stroke:1.5px var(--ink);color:transparent}
.info-grid{display:grid;grid-template-columns:1fr 1fr;background:var(--paper)}
.info-tickets{padding:32px;border-right:2px dashed #100d1345;display:flex;flex-direction:column;gap:22px}
.info-label{font-size:12px;font-weight:700;letter-spacing:.06em}
.prices{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.prices span{display:block;font-size:12px;font-weight:700;letter-spacing:.04em}
.prices p{font:800 clamp(56px,6vw,88px)/1 var(--display);letter-spacing:-.04em;white-space:nowrap;margin-top:8px}
.prices small{font:600 16px/1 var(--sans);vertical-align:top;display:inline-block;padding-top:10px}
.prices sup{font:700 23px/1 var(--display);vertical-align:top;display:inline-block;padding-top:8px}
.button-dark{background:var(--ink);color:var(--paper)}
.button-dark:hover{background:#32223f}
.info-note{font-size:14px;line-height:1.5;color:#100d13b3}
.info-details{margin:0;padding:12px 32px}
.info-details>div{display:grid;grid-template-columns:96px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid #100d1326}
.info-details>div:last-child{border-bottom:0}
.info-details dt{font-size:12px;font-weight:700;letter-spacing:.06em;padding-top:4px}
.info-details dd{margin:0;font-size:16px;line-height:1.5}
.info-details dd strong{display:block;font:800 26px/1.05 var(--display);letter-spacing:-.01em;margin-bottom:4px}
.info-details address{font-style:normal}
.info-details a{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:12px;font-weight:700;letter-spacing:.06em;text-decoration:underline;text-underline-offset:4px}
.closing{background:var(--yellow);color:var(--ink);padding:56px 5% 24px}
.closing-main{display:flex;justify-content:space-between;align-items:end;gap:40px}
.closing h2{font-size:clamp(56px,7vw,120px);line-height:.86;letter-spacing:-.03em}
.closing-main p{max-width:380px;font-size:18px;line-height:1.45;margin-bottom:22px}
.closing-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:44px;padding-top:16px;border-top:1px solid var(--ink);font-size:12px;font-weight:600;letter-spacing:.04em}
.closing-bottom a{min-height:44px;display:inline-flex;align-items:center;margin-block:-14px}
@media(max-width:900px){.info-grid{grid-template-columns:1fr}.info-tickets{border-right:0;border-bottom:2px dashed #100d1345}.closing-main{flex-direction:column;align-items:start}}
@media(max-width:700px){.intro.section-pad{padding-bottom:52px}.intro h2{font-size:13vw}.intro-bottom{margin-top:40px}.dance-picture img{height:220px}.decade-row{grid-template-columns:repeat(2,1fr)}.info h2{font-size:15vw;margin:32px 0 28px}.info h2 span{-webkit-text-stroke:1px var(--ink)}.info-tickets{padding:24px 20px}.info-tickets .button{width:100%}.prices p{font-size:15vw}.info-details{padding:4px 20px}.info-details>div{grid-template-columns:1fr;gap:6px}.closing{padding:44px 5% 20px}.closing h2{font-size:14vw}.closing .button{width:100%}}
.djs{background:var(--ink);color:var(--paper)}
.djs .section-kicker{border-color:#fff6e940}
.djs-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:6%;align-items:center;margin-top:48px}
.djs h2{font-size:clamp(60px,7.6vw,132px);line-height:.84;letter-spacing:-.03em;color:var(--yellow)}
.djs h2 span{color:var(--pink)}
.djs-copy p{font-size:18px;line-height:1.55;margin-top:28px;max-width:440px;color:#e6dfe9}
.djs-photos{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.djs-photos figure{background:var(--paper);padding:10px 10px 0;transform:rotate(-2deg);box-shadow:10px 10px 0 var(--pink)}
.djs-photos figure+figure{transform:rotate(2deg) translateY(28px);box-shadow:10px 10px 0 var(--cyan)}
.djs-photos img{width:100%;aspect-ratio:1;object-fit:cover}
.djs-photos figcaption{color:var(--ink);font:800 28px/1 var(--display);padding:12px 2px 12px}
@media(max-width:900px){.djs-layout{grid-template-columns:1fr;gap:40px}}
@media(max-width:700px){.djs-layout{margin-top:32px}.djs h2{font-size:15vw}.djs-copy p{font-size:16px;margin-top:20px}.djs-photos{gap:14px}.djs-photos figure{padding:6px 6px 0;box-shadow:6px 6px 0 var(--pink)}.djs-photos figure+figure{transform:rotate(2deg) translateY(16px);box-shadow:6px 6px 0 var(--cyan)}.djs-photos figcaption{font-size:20px;padding:8px 2px}.djs.section-pad{padding-bottom:70px}}
.brand{padding-right:0}
.djs-photos img{height:auto}.dance-picture{padding-bottom:10px}

.whats-float{position:fixed;right:24px;bottom:24px;z-index:40;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:#25d366;color:#fff;transition:transform .2s}
.whats-float:hover{transform:scale(1.06)}
.whats-float:active{transform:scale(.96)}
.whats-float:before{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid #25d366;animation:whats-pulse 2.4s ease-out infinite;pointer-events:none}
@keyframes whats-pulse{0%{transform:scale(1);opacity:.7}80%,100%{transform:scale(1.5);opacity:0}}
@media(max-width:700px){.whats-float{right:16px;bottom:16px;width:56px;height:56px}}
@media(prefers-reduced-motion:reduce){.whats-float:before{display:none}}
