/* DJ Ti9tus: full-color party edition. */
:root{--bg:#21104c;--paper:#fff8ed;--orange:#edff54;--muted:#d2c7eb;--line:#ffffff30;--pink:#ff59c7;--cyan:#52eee8;--yellow:#edff54}
html{overflow-x:hidden}
body{overflow-x:clip;background:radial-gradient(ellipse at 90% 12%,#7921a84d,transparent 38%),#21104c}
.header{position:sticky;top:0;z-index:50;width:100%;border-color:#ffffff26;background:#21104cf5;backdrop-filter:blur(14px);box-shadow:0 3px 18px #10032b30}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between}.logo{font-size:46px;transform:rotate(-3deg);text-shadow:3px 3px 0 #9f25a1}.nine{color:var(--pink)}.nav-book{border:1px solid var(--pink);border-radius:30px;background:#ff59c715}.nav-book:hover{background:var(--pink);color:#21104c!important}.nav-book span{color:var(--yellow)}
.hero{position:relative;min-height:710px;padding-top:58px;padding-bottom:70px;gap:35px}.hero-copy{position:relative;z-index:2}.hero h1{font-size:clamp(67px,6.8vw,97px);line-height:1.01;text-shadow:5px 5px 0 #0d042c;letter-spacing:-1.6px}.hero h1 .line-cream{color:var(--paper)}.hero h1 .line-pink{color:var(--pink)}.hero h1 .line-yellow{color:var(--yellow)}.hero .eyebrow{color:var(--cyan)}.live-dot{background:var(--pink);box-shadow:0 0 0 5px #ff59c722}.intro em{color:var(--cyan)}.hero-desc{color:#d5c7eb}.button{border-radius:50px;box-shadow:4px 5px 0 #0d042c;font-size:15px;padding:18px 25px}.button:hover{background:var(--pink);box-shadow:6px 8px 0 #0d042c;transform:translate(-2px,-3px)}.hero-foot{gap:13px}.hero-foot>span{border:1px solid #ffffff40;padding:5px 12px;border-radius:50px;transform:rotate(-4deg);background:#ffffff08}.hero-foot>span:nth-of-type(2){border-color:var(--pink);color:var(--pink);transform:rotate(4deg)}.hero-foot>span:nth-of-type(3){border-color:var(--cyan);color:var(--cyan)}.hero-foot>i{color:var(--pink)}
.hero-art{height:540px;isolation:isolate}.hero-art::before{content:'';position:absolute;width:110%;height:110%;z-index:-2;background:radial-gradient(ellipse,#ce25ff55 0,transparent 65%);border-radius:50%}.image-frame{width:100%;height:auto;aspect-ratio:1;border:5px solid #b587ff;border-radius:32px;transform:rotate(4deg);box-shadow:11px 13px 0 #f655bc,21px 23px 0 #09012266;overflow:hidden}.image-frame img{width:100%;height:100%;object-fit:cover;transform:none;display:block}.orbit{border:2px dashed #52eee859;width:110%;height:88%;transform:rotate(-24deg);z-index:-1}.orbit-two{border-color:#edff544d;transform:rotate(24deg);height:100%;width:87%}.art-star{color:var(--yellow);left:-35px;top:-5px;font-size:96px;text-shadow:5px 5px 0 #f13fab;animation:star-spin 25s linear infinite}.round-stamp{right:-15px;bottom:3px;background:var(--yellow);color:#241049;box-shadow:0 0 0 6px #30105a;transform:rotate(13deg);width:127px;height:127px;animation:stamp-rock 5s ease-in-out infinite}.image-caption{bottom:18px;left:0;z-index:3;background:var(--cyan);font-weight:700;border:2px solid #241049;box-shadow:3px 3px 0 #241049;font-size:13px}.music-note{position:absolute;z-index:3;font-family:Arial,sans-serif;line-height:1;font-weight:700;text-shadow:4px 4px 0 #170636;animation:note-float 4s ease-in-out infinite}.note-one{font-size:73px;color:var(--cyan);right:-12px;top:0;transform:rotate(15deg)}.note-two{font-size:65px;color:var(--pink);left:-26px;bottom:94px;animation-delay:-2s}
.ticker{background:var(--pink);color:#241049;border:0;transform:rotate(-1.5deg);width:104%;margin-left:-2%;box-shadow:0 7px 0 #110326}.ticker>div{display:flex;align-items:center;justify-content:flex-start;width:max-content;min-width:100%;animation:party-marquee 70s linear infinite;font-size:30px}.ticker:hover>div{animation-play-state:paused}.ticker .ticker-group{display:flex;align-items:center;flex-shrink:0;margin:0;color:inherit;font-size:inherit}.ticker .ticker-phrase{margin:0;color:inherit;font-size:inherit}.ticker .ticker-separator{margin:0 30px;color:#fff8ed;font-size:34px}
.occasions{padding-top:110px;padding-bottom:100px;gap:70px}.occasions h2 span{color:var(--cyan)}.section-heading .eyebrow{color:var(--pink)}.party-list{display:flex;flex-direction:column;gap:16px}.party-list article{padding:25px 22px;border:1px solid #ff59c7;border-radius:10px;background:#4e1768;box-shadow:5px 5px 0 #12042e;transform:rotate(1deg);transition:transform .2s,box-shadow .2s}.party-list article:nth-child(2){background:#143f61;border-color:var(--cyan);transform:rotate(-1deg)}.party-list article:nth-child(3){background:#542a48;border-color:var(--yellow)}.party-list article:last-child{border-bottom:1px solid var(--yellow)}.party-list article:hover{transform:rotate(0) translateY(-4px);box-shadow:8px 9px 0 #12042e}.party-list h3{font-size:29px}.party-list p{color:#eee3ff}.party-number{color:var(--pink)}.party-list article:nth-child(2) .party-number,.party-list article:nth-child(2) .party-symbol{color:var(--cyan)}.party-list article:nth-child(3) .party-number{color:var(--yellow)}.party-symbol{color:var(--pink)}
.music{background:var(--yellow);position:relative;overflow:hidden;border-block:5px solid #16092f;color:#21104c}.music .eyebrow{color:#6e1b8c}.music h2 span{color:#b90078}.music-inner>div>p:not(.eyebrow){color:#443651}.music .text-link{border-color:#9b318d}.decades>div{border:2px solid #21104c;border-radius:9px;padding:18px 65px 18px 23px;background:var(--pink);transform:rotate(-3deg);box-shadow:5px 5px 0 #21104c;margin-bottom:22px}.decades>div:nth-child(2){background:var(--cyan);transform:rotate(2deg)}.decades>div:nth-child(3){background:#b29bff;transform:rotate(-2deg);margin-bottom:0}.decades strong{font-size:76px}.decades p{color:#302544;font-size:13px}.decades i{color:#21104c;right:22px;top:28px}.music-inner{gap:90px}
.about{background:radial-gradient(ellipse at 0% 75%,#c42c9a25,transparent 60%)}.about h2 span{color:var(--pink)}.about .eyebrow{color:var(--cyan)}.location{border-color:#ff59c75c}.location>span{color:var(--cyan)}
.contact{background:radial-gradient(ellipse at 0 100%,#9d20b6 0,transparent 65%),#32229e;border-top:4px solid var(--pink);position:relative}.contact h2 span{color:var(--yellow)}.contact .eyebrow{color:var(--cyan)}.contact-copy>p:not(.eyebrow){color:#eee2ff}.contact-star{color:var(--pink);text-shadow:6px 6px 0 #100549;animation:star-spin 35s linear infinite;width:100px;text-align:center}.contact form{background:#190c4b80;border:1px solid #9e7af0;border-radius:14px;padding:28px;box-shadow:8px 8px 0 #16074266}.contact-inner{gap:65px;grid-template-columns:.85fr 1.15fr}input:not([type=checkbox]),select,textarea{background:#1d124a;border-color:#9580c3;border-radius:6px}input::placeholder,textarea::placeholder{color:#bfb0d8}.consent{color:#e3d8fa}.contact .button{color:#21104c}footer .logo{font-size:34px}dialog{border:3px solid var(--pink);box-shadow:9px 9px 0 #55147e}dialog h2{color:#21104c}dialog .eyebrow{color:#8e187c}
.equalizer{height:23px;display:flex;gap:3px;align-items:center;margin-left:5px}.equalizer b{width:4px;height:100%;border-radius:3px;background:var(--pink);animation:equalize .9s ease-in-out infinite alternate}.equalizer b:nth-child(2){background:var(--cyan);animation-delay:-.4s}.equalizer b:nth-child(3){background:var(--yellow);animation-delay:-.7s}.equalizer b:nth-child(4){background:var(--pink);animation-delay:-.2s}.equalizer b:nth-child(5){background:var(--cyan);animation-delay:-.5s}
.party-confetti{position:absolute;left:0;top:0;width:100%;height:900px;overflow:hidden;pointer-events:none;z-index:1}.party-confetti i{position:absolute;top:-30px;left:7%;width:8px;height:18px;background:var(--pink);animation:confetti-fall 12s linear infinite;opacity:.65}.party-confetti i:nth-child(2n){background:var(--cyan);width:8px;height:8px;border-radius:50%}.party-confetti i:nth-child(3n){background:var(--yellow);height:15px;width:5px}.party-confetti i:nth-child(2){left:15%;animation-delay:-5s}.party-confetti i:nth-child(3){left:24%;animation-delay:-8s}.party-confetti i:nth-child(4){left:33%;animation-delay:-2s}.party-confetti i:nth-child(5){left:42%;animation-delay:-10s}.party-confetti i:nth-child(6){left:50%;animation-delay:-7s}.party-confetti i:nth-child(7){left:59%;animation-delay:-4s}.party-confetti i:nth-child(8){left:68%;animation-delay:-11s}.party-confetti i:nth-child(9){left:76%;animation-delay:-1s}.party-confetti i:nth-child(10){left:84%;animation-delay:-6s}.party-confetti i:nth-child(11){left:91%;animation-delay:-9s}.party-confetti i:nth-child(12){left:97%;animation-delay:-3s}
@keyframes confetti-fall{from{transform:translateY(-20px) rotate(0)}to{transform:translateY(920px) rotate(540deg)}}@keyframes equalize{from{transform:scaleY(.25)}to{transform:scaleY(1)}}@keyframes star-spin{to{transform:rotate(360deg)}}@keyframes note-float{50%{translate:0 -12px;rotate:9deg}}@keyframes stamp-rock{50%{transform:rotate(4deg)}}@keyframes party-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:1050px){.hero h1{font-size:73px}.hero-art{height:460px}.art-star{left:-15px;font-size:75px}.note-one{right:-5px;font-size:65px}.note-two{left:-15px}.round-stamp{width:108px;height:108px;right:-8px;bottom:25px;font-size:8px}.round-stamp span{font-size:49px}.hero-foot{gap:8px}.hero-foot>span{padding:4px 9px;font-size:11px}.occasions,.music-inner,.contact-inner{gap:40px}.contact form{padding:22px}.header .logo{font-size:40px}}
@media(max-width:720px){.header .logo{font-size:36px}.hero{padding-top:40px;padding-bottom:55px;gap:32px}.hero h1{font-size:clamp(58px,13.5vw,89px);letter-spacing:-1px;text-shadow:3px 4px 0 #0d042c}.hero-art{height:auto;aspect-ratio:1;max-width:440px;width:93%;margin:10px auto 0}.image-frame{border-width:3px;border-radius:22px;box-shadow:7px 8px 0 #f655bc,13px 15px 0 #09012266}.art-star{font-size:69px;left:-16px;top:-23px}.note-one{font-size:58px;right:-15px;top:-27px}.note-two{font-size:50px;left:-17px;bottom:67px}.round-stamp{width:92px;height:92px;right:-13px;bottom:-15px;font-size:7px;box-shadow:0 0 0 4px #30105a}.round-stamp span{font-size:43px}.image-caption{font-size:11px;bottom:-15px;left:-8px;padding:7px 10px}.hero-foot{margin-top:30px;gap:9px}.hero-foot>span{padding:5px 10px}.equalizer{margin-left:4px}.ticker{padding:12px 0}.ticker>div{font-size:25px}.ticker span{font-size:25px}.section{padding-top:65px;padding-bottom:65px}.occasions{gap:26px}.party-list{gap:18px}.party-list article{padding:22px 17px;gap:13px}.party-list h3{font-size:27px}.party-list p{font-size:13px}.party-symbol{font-size:29px}.music-inner{gap:35px}.decades>div{margin-inline:5px}.decades strong{font-size:73px}.contact-inner{grid-template-columns:1fr;gap:26px}.contact form{padding:20px 16px;margin-inline:-4px}.contact-star{display:none}.form-row{grid-template-columns:1fr;gap:0}.contact .button{font-size:13px}.party-confetti{height:1050px}.hero .intro{font-size:16px}.hero .eyebrow{font-size:8.5px;letter-spacing:1.4px}.about .location{margin-bottom:0}.contact h2{font-size:47px}}
.round-stamp span{font-family:var(--display);font-size:45px;font-weight:800;line-height:1.1;white-space:nowrap;letter-spacing:-1px;margin:5px 0}
.effects-toggle{padding:0;border:0;background:none;color:var(--muted);font-size:10px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.party-paused *{animation-play-state:paused!important}
.wish-banner{margin-top:75px;background:#21104c;color:var(--paper);border:3px solid #21104c;box-shadow:8px 8px 0 #bb1684;border-radius:15px;padding:38px 40px;display:grid;grid-template-columns:1.2fr .8fr;gap:35px;align-items:center}.music .wish-banner .eyebrow{color:var(--cyan);font-size:10px}.wish-banner h2{font-size:43px;line-height:1.03;color:var(--pink)}.wish-banner p:not(.eyebrow){font-size:14px;color:#e2d9f3;max-width:530px}.wish-banner .text-link{border-color:var(--cyan);color:var(--cyan);margin-top:0}.wish-art{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:210px;transform:rotate(5deg)}.wish-art>strong{font-family:var(--display);font-size:82px;line-height:1.1;letter-spacing:-2px;color:var(--cyan);text-shadow:4px 5px 0 #10052c}.wish-art>strong>span{color:var(--pink)}.wish-tag{padding:8px 14px;background:var(--yellow);color:#21104c;font-size:10px;letter-spacing:1px;font-weight:800;border-radius:4px;transform:rotate(-9deg);box-shadow:4px 4px 0 #0d042c}.wish-note{font-family:Arial,sans-serif;font-size:70px;line-height:1;color:var(--cyan);position:absolute;top:-9px;right:10px;transform:rotate(-15deg)}.wish-spark{font-size:56px;color:var(--pink);position:absolute;left:10px;bottom:-5px}
@media(max-width:1050px){.wish-banner{padding:30px;gap:25px}.wish-banner h2{font-size:38px}.wish-art>strong{font-size:70px}.wish-note{font-size:55px;right:0}}
@media(max-width:720px){.wish-banner{margin-top:50px;grid-template-columns:1fr;padding:28px 23px;gap:12px;box-shadow:5px 5px 0 #bb1684}.wish-banner h2{font-size:39px}.wish-art{min-height:180px;margin-inline:15px}.wish-art>strong{font-size:82px}.wish-note{right:0;top:2px}.wish-spark{bottom:0;left:-4px}}
@media(max-width:1050px){.round-stamp span{font-size:38px}}
@media(max-width:720px){.round-stamp span{font-size:32px}}
.header .logo{font-size:72px}.header .logo-dj{font-size:25px;margin-top:9px;margin-right:5px}
html{scroll-padding-top:136px}
@media(max-width:1050px){.header .logo{font-size:62px}.header .logo-dj{font-size:21px;margin-top:8px}}
@media(max-width:720px){html{scroll-padding-top:122px}.header{height:98px}.header .logo{font-size:52px}.header .logo-dj{font-size:17px;margin-top:7px;margin-right:3px}}
.section-heading>p:not(.eyebrow){color:var(--muted);font-size:15px;max-width:420px}
.section-photo{margin:30px 0 0;position:relative;border:3px solid var(--pink);border-radius:14px;box-shadow:6px 7px 0 #0e032d;overflow:hidden;transform:rotate(-2deg)}
.section-photo img{display:block;width:100%;height:auto;object-fit:cover}.festival-photo img{aspect-ratio:3/2}.occasions{align-items:start}.party-list{align-self:center}
.about{grid-template-columns:.9fr 1.3fr;align-items:center;gap:75px}.about-visual{min-width:0}.about-visual>.eyebrow{color:var(--cyan);margin-bottom:24px}.speaker-photo{margin-top:0;border-color:var(--cyan);box-shadow:7px 8px 0 #ed48b15c;transform:rotate(2deg)}.speaker-photo img{aspect-ratio:1}.about-copy .location{margin-top:26px}
.music{isolation:isolate}.music-inner,.wish-banner{position:relative;z-index:1}.disco-scene{position:relative;width:270px;max-width:100%;height:245px;margin:28px auto 0;display:grid;place-items:center}.disco-ball{width:205px;height:205px;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 10px 13px #4b159a55)}.disco-wire{position:absolute;left:50%;top:-28px;height:48px;width:2px;background:#44296188;z-index:0}.disco-rays{position:absolute;left:50%;top:50%;width:1250px;height:1250px;z-index:-1;pointer-events:none;background:repeating-conic-gradient(from 0deg,transparent 0deg 19deg,#fa27b11c 20deg 24deg,transparent 25deg 46deg,#009fc425 47deg 50deg,transparent 51deg 72deg,#8141f726 73deg 77deg,transparent 78deg 90deg);mask-image:radial-gradient(circle,#000 0 38%,transparent 70%);transform:translate(-50%,-50%);animation:disco-rays 48s linear infinite;will-change:transform}.disco-glint{position:absolute;color:#fff;font-size:47px;line-height:1;z-index:2;text-shadow:0 0 15px #ff53c8;animation:disco-glimmer 4s ease-in-out infinite alternate}.glint-one{top:37px;left:48px}.glint-two{right:40px;bottom:41px;color:#fffef5;font-size:33px;animation-delay:-2s}
.disco-rays{animation:none;background:none;transform:translate(-50%,-50%);will-change:auto}.disco-rays svg{display:block;width:100%;height:100%;overflow:visible}
@keyframes disco-glimmer{from{opacity:.35;scale:.75}to{opacity:1;scale:1.15}}
@media(max-width:1050px){.about{gap:45px}.disco-scene{height:215px}.disco-ball{width:185px;height:185px}}
@media(max-width:720px){.section-photo{margin-top:26px;max-width:500px}.festival-photo{margin-bottom:15px}.about{grid-template-columns:1fr;gap:38px}.about-visual{max-width:440px;width:100%;margin:auto}.about-visual>.eyebrow{margin-bottom:23px}.speaker-photo{margin-top:0;max-width:360px;margin-inline:auto}.disco-scene{margin-top:32px;margin-bottom:5px;height:215px}.disco-rays{width:800px;height:800px}.about-copy .location{margin-top:24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.party-confetti{display:none}.ticker>div{transform:none!important}}
