:root{color-scheme:dark;--pink:#f68bbb;--gold:#f2d1a3;--muted:#a89aaf;--line:#ffffff15}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#120b1b;color:#f6eaf4;font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background-image:radial-gradient(ellipse at 50% 38%,#48203865,transparent 58%)}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:4px}a{color:inherit;text-decoration:none}.ambient{position:fixed;width:300px;height:300px;filter:blur(100px);opacity:.12;pointer-events:none;z-index:-1}.a1{background:#ee49a2;top:250px;left:-150px}.a2{background:#754cff;top:400px;right:-200px}header{max-width:1440px;margin:auto;padding:27px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-family:Georgia,serif;font-size:25px;letter-spacing:-.6px}.brandmark{display:grid;place-items:center;width:41px;height:44px;border:1px solid #d895a475;border-radius:14px;color:var(--pink);font-size:23px}.brand small{display:block;font:8px system-ui;letter-spacing:2.2px;color:var(--muted);margin-top:2px}.headlinks{display:flex;align-items:center;gap:24px;font-size:12px}.outline,.music{background:none;color:#e9dce9;border:1px solid #ffffff25;border-radius:30px;padding:10px 18px}.music{color:var(--gold);border:none;padding:10px 0}.music.on{color:var(--pink)}main{max-width:1440px;margin:auto;padding:0 5%}.intro{text-align:center;padding:39px 0 21px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--gold);font-weight:650}.eyebrow span{display:inline-block;width:5px;height:5px;background:var(--pink);border-radius:50%;margin-right:6px}h1{font:clamp(40px,4.3vw,66px)/1.1 Georgia,serif;letter-spacing:-2.4px;margin:15px 0}h1 em{font-weight:normal;color:var(--pink)}.intro p{color:var(--muted);font-size:14px;margin:15px 0 0}.banner{margin:0 auto 18px;max-width:840px;text-align:center;font-size:10px;letter-spacing:.4px;color:#dcb690;border:1px solid #f2d1a322;background:#e8b26406;border-radius:8px;padding:8px 12px}.banner.live{color:#9dd5c3;border-color:#9dd5c330}.stage{display:grid;grid-template-columns:minmax(200px,1fr) minmax(360px,2.1fr) minmax(235px,1.1fr);gap:28px;align-items:center}.mini-label{font-size:9px;letter-spacing:1.8px;color:var(--muted);margin-bottom:13px}.profile-card,.chat-card{background:linear-gradient(140deg,#ffffff06,#ffffff01);border:1px solid #ffffff18;border-radius:20px}.profile-card{padding:25px 20px;text-align:center}.my-avatar{height:72px;width:72px;background:radial-gradient(circle,#583043,#201422);border:1px solid #a95b7955;border-radius:50%;margin:auto;color:var(--pink);display:grid;place-items:center;font:38px Georgia}.my-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.profile-card h2{font:23px/1.3 Georgia;margin:20px 0 12px}.profile-card p{font-size:12px;color:var(--muted)}.primary{width:100%;color:#24101c;background:linear-gradient(115deg,#f7a8c9,#e7b891);border:0;border-radius:11px;padding:13px 15px;font-size:12px;font-weight:750;margin-top:12px}.note-card{display:flex;gap:14px;padding:20px 4px}.note-card>span{font:37px Georgia;color:var(--gold)}.note-card strong{font-size:12px;font-weight:600}.note-card p{font-size:11px;color:var(--muted);margin:5px 0}.soundbars{display:flex;justify-content:center;align-items:center;gap:5px;height:35px;opacity:.55}.soundbars i{width:3px;height:10px;background:linear-gradient(var(--pink),#60418a);border-radius:3px}.soundbars i:nth-child(3n){height:27px}.soundbars i:nth-child(2n){height:19px}body.music-on .soundbars i{animation:bars .8s ease-in-out infinite alternate}body.music-on .soundbars i:nth-child(2n){animation-delay:.3s}@keyframes bars{to{transform:scaleY(.3)}}.wheel-column{text-align:center;min-width:0}.wheel-tag{display:flex;justify-content:center;align-items:center;gap:9px;color:var(--muted);font-size:10px;letter-spacing:.5px;margin-bottom:16px}.live-dot{width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 9px #dba376}.wheel-wrap{position:relative;width:100%;max-width:515px;margin:auto;aspect-ratio:1;isolation:isolate}.wheel-wrap:before{content:'';position:absolute;inset:3%;border-radius:50%;box-shadow:0 0 80px #d2478015,0 0 0 1px #bc7b7525;z-index:-1}.wheel{width:100%;height:100%;position:relative;will-change:transform;transition:transform 4.5s cubic-bezier(.15,.65,.08,1)}.gear{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 14px 25px #0009)}.pointer{position:absolute;top:-4%;left:50%;transform:translateX(-50%);z-index:4;color:var(--gold);font-size:28px;text-shadow:0 0 15px #f6bc9866}.bulb{position:absolute;left:50%;top:50%;width:14%;aspect-ratio:1;border-radius:50%;padding:4px;border:1px solid #eac597a0;box-shadow:0 0 12px #ffd8a333,inset 0 0 10px #df958933;background:linear-gradient(140deg,#ebc79e,#4c263d);display:grid;place-items:center}.bulb img{width:100%;height:100%;object-fit:cover;border-radius:50%;border:2px solid #261527}.bulb.empty{color:#eacb9c77;font:26px Georgia;background:#291826}.bulb .name{position:absolute;top:100%;font-size:9px;color:#ead8db;white-space:nowrap;transform:translateY(3px);text-shadow:0 1px 3px #000}.center-cap{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:39%;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 20%,#543047,#271828 70%);border:1px solid #e2b58675;border-radius:50%;box-shadow:0 0 0 7px #1b0f2370,0 15px 28px #0008,inset 0 0 20px #f2b98c0b;pointer-events:none}.center-cap>span{font-size:26px;color:var(--pink)}.center-cap strong{font:clamp(20px,2.8vw,37px)/.95 Georgia;letter-spacing:-1px}.center-cap em{font-weight:normal;color:var(--gold);font-size:.78em}.center-cap small{font-size:6px;letter-spacing:1.5px;margin-top:16px;color:#baa2aa}.spin{background:linear-gradient(100deg,#f095bd,#d9b78c);color:#321b28;border:0;padding:15px 30px;border-radius:40px;font-size:15px;font-weight:750;min-width:260px;box-shadow:0 8px 35px #e581ac22;margin-top:24px}.spin span{margin-left:25px;font-size:22px;line-height:0}.under-wheel{font-size:10px;color:var(--muted);margin-top:13px}.chat-card{overflow:hidden}.chat-heading{padding:18px 16px;display:flex;gap:10px;border-bottom:1px solid var(--line);align-items:center}.chat-icon{border-radius:12px;background:#d97d9d12;color:var(--pink);width:37px;height:37px;display:grid;place-items:center;font-size:24px}.chat-heading h2{font:18px Georgia;margin:0}.chat-heading small{font-size:9px;color:var(--muted)}.chat-body{height:270px;overflow-y:auto;padding:15px;scrollbar-width:thin}.chat-empty{text-align:center;display:flex;align-items:center;flex-direction:column;justify-content:center;height:100%;color:var(--muted)}.orb{width:62px;height:62px;border-radius:50%;background:#cd6f9a0a;border:1px solid #cd6f9a30;color:var(--pink);font:38px Georgia;display:grid;place-items:center}.chat-empty h3{font:20px Georgia;color:#e0cddc;margin:20px 0 10px}.chat-empty p{font-size:11px;max-width:185px;margin:0}.message-form{display:flex;padding:12px;border-top:1px solid var(--line);gap:7px}.message-form input{min-width:0;width:100%;background:#ffffff08;border:1px solid var(--line);color:#eee;border-radius:10px;padding:9px;font-size:12px}.message-form button{color:var(--pink);background:#ffffff08;border:0;border-radius:8px;padding:8px 11px}.chat-actions{display:flex;justify-content:flex-end;gap:16px;padding:0 14px 13px}.chat-actions button{background:none;border:0;font-size:10px;color:var(--muted)}.little-quote{font:italic 22px/1.4 Georgia;color:#b899aa;margin:24px 8px}.little-quote span{float:right;color:var(--gold);font-size:40px}.steps{margin:43px auto 0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;gap:25px}.steps>div{padding-left:38px;position:relative}.steps span{position:absolute;left:0;top:3px;color:var(--gold);font:15px Georgia}.steps h3{font-size:12px;margin:0 0 5px;font-weight:600}.steps p{font-size:11px;color:var(--muted);margin:0}footer{display:flex;justify-content:space-between;gap:15px;font-size:10px;color:#8f7f95;padding:23px 0}footer button,.textbutton{color:var(--muted);border:0;background:none;font-size:11px}.textbutton{padding:12px}dialog{color:#eee0ea;background:#24172c;border:1px solid #c1849755;border-radius:22px;padding:32px;width:min(92%,420px);box-shadow:0 20px 100px #000b}dialog::backdrop{background:#09050ccd;backdrop-filter:blur(6px)}dialog h2{font:32px Georgia;margin:15px 0}dialog p{font-size:12px;color:#bbaabe}dialog label{display:block;font-size:11px;color:#d1bdcc;margin:16px 0}dialog input:not([type=checkbox]),dialog select{display:block;width:100%;background:#ffffff05;border:1px solid #ffffff20;border-radius:8px;padding:11px;color:#eee;margin-top:6px}dialog select option{background:#24172c}.close{position:absolute;right:13px;top:9px;font-size:25px;background:none;border:0;color:#b9a6ba}.check{display:flex!important;gap:9px;align-items:flex-start}.check input{accent-color:var(--pink)}.upload{border:1px dashed #e2bca344;border-radius:8px;text-align:center;padding:11px;cursor:pointer}.upload small{display:block;color:var(--muted);font-size:9px}.upload input{font-size:10px}#photoPreview img{width:60px;height:60px;object-fit:cover;border-radius:50%}.fine{font-size:10px!important}#matchDialog{text-align:center}.match-avatar img{width:100px;height:100px;border-radius:50%;border:3px solid var(--gold);object-fit:cover}.inbox:empty{display:none}.inbox{padding:10px;border-bottom:1px solid var(--line);max-height:155px;overflow:auto}.invite-row{font-size:11px;background:#ffffff05;border-radius:7px;padding:8px;margin-bottom:5px}.invite-row button{font-size:10px;border:0;border-radius:5px;padding:5px 7px;background:#f6a2bd;color:#271525;margin:7px 5px 0 0}.bubble{max-width:90%;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;background:#ffffff09;border-radius:11px 11px 11px 2px;padding:9px 12px;margin-bottom:8px;width:fit-content}.bubble.mine{background:#a9558640;border-radius:11px 11px 2px 11px;margin-left:auto}.bubble small{display:block;font-size:8px;color:#ad91a9;margin-top:3px}.chatnotice{font-size:11px;color:var(--muted);text-align:center;padding:20px 5px}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#f0c7dc;color:#331829;border-radius:12px;padding:12px 20px;z-index:20;max-width:90%;font-size:12px;box-shadow:0 7px 30px #0006;display:none}[hidden]{display:none!important}
@media(min-width:1450px){.stage{gap:45px}}@media(max-width:1000px){.stage{gap:15px;grid-template-columns:190px minmax(330px,1fr)}.right{grid-column:1/-1;display:grid;grid-template-columns:1fr 220px;gap:18px}.right>.mini-label{display:none}.chat-body{height:190px}.little-quote{align-self:center}.center-cap strong{font-size:32px}}@media(max-width:680px){header{padding:18px 5%}.brand{font-size:20px}.brand small{font-size:6px;letter-spacing:1.5px}.brandmark{width:33px;height:36px}.headlinks{gap:13px}.headlinks>a,.headlinks>.outline,.music span{display:none}.music{font-size:23px}.intro{padding:28px 0 19px}h1{letter-spacing:-1.5px}.intro p{font-size:12px}.eyebrow{font-size:8px}.banner{font-size:9px;margin-bottom:18px}.stage{display:flex;flex-direction:column;gap:22px}.wheel-column{order:0;width:100%}.left{order:1;width:100%}.right{order:2;width:100%;display:block}.wheel-wrap{max-width:420px}.profile-card{display:grid;grid-template-columns:54px 1fr;gap:0 15px;text-align:left;padding:18px}.my-avatar{width:54px;height:54px;grid-row:1/3;font-size:29px}.profile-card h2{font-size:19px;margin:0 0 5px}.profile-card p{margin:0}.profile-card .primary{grid-column:1/-1}.profile-card .textbutton{grid-column:1/-1}.note-card,.soundbars,.little-quote{display:none}.mini-label{font-size:8px}.center-cap strong{font-size:29px}.center-cap small{font-size:5px;letter-spacing:1px;margin-top:10px}.center-cap>span{font-size:22px}.spin{margin-top:20px;padding:14px 24px}.chat-body{height:235px}.steps{grid-template-columns:1fr;gap:20px;margin-top:28px;padding:23px 0}.steps>div{padding-left:35px}footer{flex-wrap:wrap;font-size:9px}footer span:nth-child(2){order:3;width:100%}.bulb .name{font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.wheel{transition-duration:.1s}.soundbars i{animation:none!important}}
.bulb{color:inherit;font:inherit;cursor:pointer}.bulb.empty:hover{box-shadow:0 0 25px #ffc9b888;background:#573147}.bulb:focus-visible{outline:3px solid #fbd8a0;outline-offset:3px}

/* Music and opt-in song dedications */
#musicDialog{width:min(94%,500px);max-height:88dvh;overflow:auto}#musicDialog h3{font:20px Georgia;margin:24px 0 12px}#audio{width:100%;margin:5px 0 10px}#trackName{overflow-wrap:anywhere;color:var(--gold)}.genre-links{display:grid;grid-template-columns:1fr 1fr;gap:9px}.genre-links a{border:1px solid #e2bca333;border-radius:12px;padding:12px;font-size:13px;background:#ffffff05}.genre-links a:hover{background:#f68bbb20}.music-tip{font-size:12px;line-height:1.7;padding:14px;border-radius:12px;background:#f68bbb0d;margin-top:18px}.chat-actions{flex-wrap:wrap;gap:8px}.chat-actions button{min-height:40px;padding:8px}.chat-actions #dedicate{color:var(--gold);margin-right:auto;font-size:12px}.song-card{white-space:normal;min-width:180px}.song-card strong,.song-label,.song-note{display:block}.song-label{font-size:10px;letter-spacing:.3px;color:var(--gold);margin-bottom:7px}.song-card strong{font:18px/1.4 Georgia;margin-bottom:12px}.song-card a{display:block;border:1px solid #e2bca350;border-radius:9px;padding:10px;color:var(--gold);font-weight:600}.song-note{font-size:10px;color:#c8b5c6;margin:9px 0 5px}.song-error{color:#ffb8c6;min-height:1em}#songDialog{max-height:88dvh;overflow:auto}
@media(max-width:680px){.headlinks .music{font-size:14px}.headlinks .music span{display:inline}.headlinks{gap:8px}.brand{font-size:18px}}

.listen-panel{padding:18px;border-block:1px solid #ffffff20;background:#29182d}.listen-panel h3{margin:0 0 10px;color:#f5c89e}.listen-panel h3 small{font:12px system-ui;color:#d7bacd}.listen-panel p{font-size:14px;line-height:1.5;overflow-wrap:anywhere}.listen-panel a{color:#f6bbd6}.listen-panel button,.song-card button{padding:10px 12px;background:#efb0cd;color:#26152b;border:0;border-radius:9px;font-weight:700;cursor:pointer;margin:4px}.listen-panel button:disabled{opacity:.5}.listen-panel .fine{font-size:12px;color:#c8b4c9}#listenButtons{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:12px}#listenVideo iframe{display:block;width:100%;min-width:200px;height:270px;border:0}#listenVideo:empty{display:none}.listen-panel[hidden]{display:none}

/* Keep the official visible player above the messages while scrolling in chat. */
.chat-card:has(#listenVideo:not(:empty)){overflow:visible}
#listenVideo{position:sticky;top:8px;z-index:10;background:#120b1b;padding:8px;border-radius:12px;box-shadow:0 8px 24px #0008}
#listenVideo iframe{height:270px}
@media(max-width:600px){#listenVideo iframe{height:200px}.listen-panel{padding:12px}}

/* Keep the shared YouTube player visible while visitors scroll the chat. */
.listen-player-dock{position:fixed;right:12px;bottom:12px;z-index:15;width:min(340px,calc(100vw - 24px));background:#18121f;border:1px solid #efb0cd66;border-radius:14px;padding:8px;box-shadow:0 10px 40px #0009}
.listen-dock-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 4px 7px;font-size:12px;color:#f7d7e6}
.listen-dock-bar button{border:1px solid #efb0cd66;background:#302035;color:#fff;border-radius:8px;padding:5px 10px}
.listen-player-dock #listenVideo{position:static;padding:0;box-shadow:none;border-radius:0;background:#000}
.listen-player-dock #listenVideo iframe{display:block;width:100%;min-width:200px;height:200px;border:0}
body.listening-together{padding-bottom:270px}
@media(max-width:680px){body.listening-together .message-form{margin-bottom:12px}}

.listen-dock-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:6px}.listen-dock-controls button{background:#efb0cd;color:#26152b;border:0;border-radius:7px;padding:6px 10px;font:600 12px system-ui}.listen-dock-controls small{width:100%;font-size:10px;color:#d2bfcd}.listen-player-dock{bottom:max(12px,env(safe-area-inset-bottom))}body.listening-together{padding-bottom:330px}
