*{box-sizing:border-box}[hidden]{display:none!important}:root{color-scheme:dark}body{margin:0;background:#101312;color:#f6f7ee;font:16px/1.5 'Segoe UI',Arial,sans-serif}header{padding:25px 4vw;display:flex;justify-content:space-between;border-bottom:1px solid #ffffff20}header>a{font-size:22px;font-weight:900;letter-spacing:2px}a{color:inherit;text-decoration:none}nav{display:flex;gap:20px;align-items:center}.notice{padding:10px 4vw;background:#50c87810;color:#50c878;font-size:12px}main{padding:40px 4vw;margin:auto;max-width:1700px}#tv{display:grid;grid-template-columns:1.1fr 1fr;gap:5vw}small{color:#50c878;font-size:12px;font-weight:700;letter-spacing:2px}h1{font-size:clamp(48px,5vw,88px);line-height:1.03;letter-spacing:-3px;margin:24px 0 32px}h1 span{color:#50c878}h2{font-size:30px;line-height:1.2}p{color:#a5a9aa}.art{position:relative;overflow:hidden;height:280px;border-radius:20px;background:radial-gradient(ellipse at 20% 80%,#50c878,transparent 55%),radial-gradient(ellipse at 80% 10%,#087f5b,transparent 65%),#123b2c;display:flex;align-items:center;justify-content:center}.art b{font-size:220px;line-height:1;font-weight:900;letter-spacing:-22px;color:#111812;transform:rotate(-9deg)}.art>span{position:absolute;bottom:20px;right:20px;color:#131713;letter-spacing:3px;font-size:11px;font-weight:800}.card{padding:28px;background:#1b201e;border:1px solid #ffffff15;border-radius:20px;margin-bottom:20px}.join{display:grid;grid-template-columns:1fr 180px;gap:18px;align-items:center}.join img{width:180px;height:180px;background:white;border-radius:12px;padding:8px}.join a{grid-column:1/-1;font-size:13px;color:#a5a9aa;overflow-wrap:anywhere}#title{font-size:clamp(30px,3vw,48px);margin:16px 0}progress{width:100%;height:6px;accent-color:#50c878}hr{border:0;border-top:1px solid #ffffff20}button{background:#50c878;color:#07251b;border:0;border-radius:10px;padding:12px 18px;cursor:pointer;font:700 14px 'Segoe UI',sans-serif}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #50c878;outline-offset:4px}#full{background:#ffffff15;color:white}#guest{max-width:700px}#guest h1{font-size:64px}label{display:block;font-size:13px;color:#a5a9aa;margin:12px 0 8px}input{width:100%;border:1px solid #ffffff30;background:#101312;color:white;padding:15px;border-radius:10px;font:inherit}.row{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid #ffffff14}.row small,li small{display:block;color:#a5a9aa;letter-spacing:0}.row button{flex-shrink:0}li{padding:10px 0}footer{padding:20px 4vw;font-size:13px;color:#a5a9aa;border-top:1px solid #ffffff15}details{max-width:800px}summary{cursor:pointer}#message:not(:empty){position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#50c878;color:#101312;border-radius:12px;padding:15px 24px;width:max-content;max-width:90vw;z-index:10}@media(max-width:800px){#tv{grid-template-columns:1fr}header{padding:18px;font-size:12px}header>a{font-size:14px;letter-spacing:0}main{padding:25px 18px}.join{grid-template-columns:1fr 130px}.join img{width:130px;height:130px}.card{padding:22px}.art{height:240px}#guest h1{font-size:52px}.notice{font-size:11px}nav{gap:12px}#full{display:none}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#setup{max-width:520px;margin:30px auto}#setup button{margin-top:15px}#tv{min-height:100vh;align-items:center}#tv .join{grid-template-columns:1fr 220px}#tv .join img{width:220px;height:220px}#tv h1{font-size:clamp(52px,5.5vw,110px)}#tv .art{height:clamp(260px,30vh,420px)}#tv #title{font-size:clamp(30px,3.4vw,65px)}@media(max-width:800px){#tv .join{grid-template-columns:1fr 130px}#tv .join img{width:130px;height:130px}}
#connectButton{width:100%;min-height:90px;font-size:clamp(24px,3vw,42px);border-radius:16px}#tvConnectError:empty{display:none}#connectCard{border-color:#50c87850}
#fullscreenStart{position:fixed;inset:0;background:#101312ed;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}#fullscreenButton{font-size:clamp(26px,4vw,56px);padding:30px 50px}#fullscreenHint{max-width:600px}
#admin{max-width:720px;padding-bottom:60px}#admin h1{font-size:clamp(42px,8vw,64px)}#admin h2{font-size:24px}.admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.admin-actions button{min-height:44px;padding:12px 15px}.admin-track{padding:18px 0;border-bottom:1px solid #ffffff20}.admin-track strong{display:block}.admin-track small{display:block;color:#a5a9aa;letter-spacing:0;margin:5px 0}.admin-note{font-size:13px}#adminLoginButton{margin-top:18px;width:100%;min-height:48px}.secondary{background:#ffffff15;color:white}#adminTVStatus,#adminMessage{overflow-wrap:anywhere}#adminQueue{padding-left:20px}
#tv{height:100vh;height:100svh;min-height:0;max-width:none;padding:6vh 5vw;gap:4vw;grid-template-columns:1fr 1.05fr;align-items:center;overflow:hidden}#tv>section,#tv>aside{min-width:0}#tv h1{font-size:clamp(32px,min(4.5vw,8vh),76px);margin:2vh 0 3vh;letter-spacing:-2px}#tv .art{height:clamp(110px,28vh,310px);border-radius:18px}#tv .art b{font-size:clamp(95px,25vh,240px);letter-spacing:-12px}#tv .card{padding:clamp(12px,2.4vh,26px);margin-bottom:2vh;border-radius:18px}#tv .card:last-child{margin-bottom:0}#tv .join{grid-template-columns:1fr auto;gap:2vw}#tv .join img{width:clamp(92px,23vh,200px);height:clamp(92px,23vh,200px);padding:5px}#tv .join h2{font-size:clamp(22px,min(3vw,5vh),40px);margin:0}#tv #title{font-size:clamp(22px,min(3vw,5vh),42px);line-height:1.15;margin:1.2vh 0;overflow-wrap:anywhere}#tv #artist{font-size:clamp(12px,1.8vh,20px);margin:1vh 0}#tv #next{font-size:clamp(15px,2.3vh,25px);margin:1vh 0;overflow-wrap:anywhere}#tv #time{font-size:clamp(11px,1.6vh,16px);margin:1vh 0}#tv small{font-size:clamp(10px,1.5vh,14px)}
.song-result{gap:12px}.song-cover{width:56px;height:56px;object-fit:cover;border-radius:8px;flex-shrink:0}.song-label{flex:1;min-width:0;font-weight:600}.song-label small{font-weight:400;font-size:13px}.spotify-credit{font-size:11px;color:#a5a9aa;text-decoration:underline}.song-result button{min-width:44px;min-height:44px;padding:8px 12px}.song-result small{overflow-wrap:anywhere}#guest{max-width:620px}#guest h1{font-size:clamp(40px,10vw,58px)}#guest .card{padding:20px}#guestDone,#guestGate{max-width:560px;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:36px 24px}#guestDone h1,#guestGate h1{font-size:clamp(32px,8vw,48px);letter-spacing:-1.5px;line-height:1.12;margin:18px 0 24px}.receipt-mark{width:76px;height:76px;display:grid;place-items:center;border-radius:50%;background:#50c87820;color:#50c878;font-size:42px;margin-bottom:20px}.receipt-cover{width:132px;height:132px;object-fit:cover;border-radius:14px}#receiptTitle{font-size:24px;margin:18px 0 0}#receiptArtist{margin:7px 0}#receiptNote{font-size:15px;max-width:340px;margin-top:30px}
