:root{--bg: #0a0e14;--bg-2: #141a23;--bg-3: #1e2632;--fg: #e8eef5;--fg-dim: #99a4b2;--fg-mute: #5b6573;--accent: #1db954;--accent-2: #1ed760;--accent-fg: #04130a;--danger: #ff5252;--warning: #f5a623;--border: #232c3a;--radius: 12px;--shadow: 0 8px 24px rgba(0, 0, 0, .4);--mono: ui-monospace, "JetBrains Mono", "Fira Code", Consolas, monospace;--sans: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--sans);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}a{color:var(--accent-2);text-decoration:none}button{font:inherit;cursor:pointer}img{max-width:100%;display:block}body.landing main{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:32px;text-align:center}body.landing h1{font-size:64px;margin:0 0 8px;letter-spacing:-.02em;background:linear-gradient(135deg,var(--accent),#5cdaff);-webkit-background-clip:text;background-clip:text;color:transparent}body.landing .sub{color:var(--fg-dim);margin:0 0 48px;font-size:18px}body.landing .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;width:100%;max-width:800px}body.landing .tile{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:32px 24px;display:flex;flex-direction:column;align-items:center;gap:8px;transition:transform .15s,background .15s}body.landing .tile:hover{transform:translateY(-2px);background:var(--bg-3)}body.landing .tile__title{font-size:24px;font-weight:600}body.landing .tile__sub{color:var(--fg-dim);font-size:13px}.btn{background:var(--accent);color:var(--accent-fg);border:0;padding:10px 16px;border-radius:999px;font-weight:600;font-size:14px;transition:transform .1s,background .15s}.btn:hover{background:var(--accent-2)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--ghost{background:transparent;color:var(--fg);border:1px solid var(--border)}.btn--ghost:hover{background:var(--bg-3)}.btn--danger{background:var(--danger);color:#fff}.btn--small{padding:6px 12px;font-size:13px}.input,.textarea,select{background:var(--bg-2);border:1px solid var(--border);color:var(--fg);border-radius:8px;padding:10px 12px;font-size:14px;font-family:inherit;width:100%}.input:focus{outline:2px solid var(--accent);outline-offset:-1px}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;background:var(--bg-3);color:var(--fg-dim)}.badge--explicit{background:#3b2326;color:#ff8a8a}.badge--wish{background:#1db95429;color:var(--accent-2)}.badge--pool{background:#5cdaff1f;color:#5cdaff}body.admin{padding:24px;max-width:1100px;margin:0 auto}body.admin h1{font-size:28px;margin:0 0 4px}body.admin .top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:24px;flex-wrap:wrap}body.admin .top .user{color:var(--fg-dim);font-size:14px}body.admin section{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:20px}body.admin section h2{margin:0 0 16px;font-size:18px}body.admin .status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px}body.admin .status-cell{background:var(--bg-3);padding:12px;border-radius:8px;display:flex;flex-direction:column;gap:4px}body.admin .status-cell .label{color:var(--fg-mute);font-size:11px;text-transform:uppercase;letter-spacing:.05em}body.admin .status-cell .value{font-weight:600}body.admin .status-ok{color:var(--accent-2)}body.admin .status-bad{color:var(--warning)}body.admin .playlist-list,body.admin .device-list{display:grid;gap:8px}body.admin .playlist-row,body.admin .device-row{display:flex;align-items:center;gap:12px;padding:8px;border-radius:8px;background:var(--bg-3)}body.admin .playlist-row:hover,body.admin .device-row:hover{background:#25303f}body.admin .playlist-row img{width:48px;height:48px;border-radius:4px}body.admin .playlist-row .meta{flex:1;min-width:0}body.admin .playlist-row .meta .name{font-weight:600}body.admin .playlist-row .meta .sub{color:var(--fg-dim);font-size:12px}body.admin .queue-list{display:grid;gap:8px}body.admin .queue-row{display:grid;grid-template-columns:24px 48px 1fr auto auto;gap:12px;align-items:center;padding:8px;border-radius:8px;background:var(--bg-3)}body.admin .queue-row .rank{color:var(--fg-mute);text-align:center;font-family:var(--mono)}body.admin .queue-row.now{background:#1db9541a;border:1px solid rgba(29,185,84,.3)}body.admin .queue-row img{width:48px;height:48px;border-radius:4px}body.admin .queue-row .meta{min-width:0}body.admin .queue-row .meta .name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.admin .queue-row .meta .sub{color:var(--fg-dim);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.admin .queue-row .votes{font-weight:600;min-width:32px;text-align:right}body.admin .queue-row .actions{display:flex;gap:6px}body.display{width:100vw;min-height:100vh;overflow:hidden;background:radial-gradient(ellipse at 30% 30%,rgba(29,185,84,.06),transparent 60%),radial-gradient(ellipse at 70% 70%,rgba(92,218,255,.04),transparent 60%),var(--bg)}body.display .display-root{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:56px;min-height:100vh}body.display .now{display:flex;flex-direction:column;justify-content:center;gap:24px;min-width:0}body.display .now__cover{width:100%;aspect-ratio:1;border-radius:24px;background:var(--bg-2);background-size:cover;background-position:center;box-shadow:var(--shadow);max-width:560px}body.display .now__meta{display:grid;gap:8px}body.display .now__title{font-size:56px;font-weight:700;line-height:1.05;letter-spacing:-.02em;margin:0}body.display .now__artists{font-size:28px;color:var(--fg-dim)}body.display .now__progress{height:8px;background:var(--bg-3);border-radius:999px;overflow:hidden;margin-top:16px}body.display .now__progress>div{height:100%;background:var(--accent);border-radius:999px;transition:width .5s linear}body.display .now__times{display:flex;justify-content:space-between;font-family:var(--mono);color:var(--fg-dim);font-size:16px;margin-top:6px}body.display .now__idle{color:var(--fg-dim);font-size:32px;text-align:center;padding:80px 0}body.display .side{display:grid;grid-template-rows:auto 1fr auto;min-width:0;gap:24px}body.display .side__head{display:flex;justify-content:space-between;align-items:center}body.display .side__head h2{font-size:24px;font-weight:600;margin:0;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.1em}body.display .upcoming{display:grid;gap:12px;align-content:start}body.display .upcoming__row{display:grid;grid-template-columns:auto 64px 1fr auto;gap:16px;align-items:center;padding:12px;border-radius:12px;background:#ffffff05;border:1px solid var(--border)}body.display .upcoming__rank{font-family:var(--mono);font-size:22px;color:var(--fg-mute);width:32px;text-align:right}body.display .upcoming__row img{width:64px;height:64px;border-radius:8px}body.display .upcoming__meta{min-width:0}body.display .upcoming__title{font-size:22px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.display .upcoming__artists{font-size:16px;color:var(--fg-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.display .upcoming__votes{font-size:22px;font-weight:700;padding:8px 14px;border-radius:999px;background:#1db95426;color:var(--accent-2);font-family:var(--mono)}body.display .upcoming__by{font-size:12px;color:var(--fg-mute)}body.display .qr-card{background:#fff;color:#111;padding:24px;border-radius:24px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}body.display .qr-card .qr-text h3{margin:0 0 8px;font-size:24px;color:#111}body.display .qr-card .qr-text p{margin:0;color:#555;font-size:16px}body.display .qr-card .qr-text code{display:inline-block;margin-top:8px;font-family:var(--mono);background:#f1f3f5;padding:4px 8px;border-radius:6px;font-size:14px}body.display .qr-card .qr canvas,body.display .qr-card .qr img{width:200px;height:200px}body.display .setup-needed{position:fixed;bottom:24px;left:24px;background:var(--warning);color:#000;padding:12px 16px;border-radius:8px;font-weight:600}body.wish{padding-bottom:calc(40px + env(safe-area-inset-bottom,0px))}body.wish .wish__spacer{height:calc(140px + env(safe-area-inset-bottom,0px));flex-shrink:0;pointer-events:none}body.wish .container{max-width:600px;margin:0 auto;padding:16px}body.wish .header{position:sticky;top:0;z-index:10;background:#0a0e14f0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:12px 16px;border-bottom:1px solid var(--border)}body.wish .header__inner{max-width:600px;margin:0 auto;display:flex;align-items:center;gap:12px}body.wish .header h1{margin:0;font-size:20px;font-weight:700}body.wish .header__karaoke{background:transparent;border:1px solid var(--border);color:var(--fg);width:36px;height:36px;border-radius:50%;font-size:18px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin-left:auto;transition:background .15s}body.wish .header__karaoke:hover{background:var(--bg-3)}body.wish .header__karaoke:active{transform:scale(.95)}body.wish .header__karaoke.is-active{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);box-shadow:0 0 16px #1db95480}body.wish .karaoke-banner{background:linear-gradient(135deg,#1db9542e,#5cdaff1a);border:1px solid rgba(29,185,84,.35);border-radius:var(--radius);padding:12px 14px;margin-bottom:16px;display:flex;align-items:center;gap:12px}body.wish .karaoke-banner__icon{font-size:24px}body.wish .karaoke-banner__title{font-weight:700;color:var(--accent-2);font-size:14px}body.wish .karaoke-banner__sub{font-size:12px;color:var(--fg-dim);margin-top:2px}body.wish .header .live{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px #1db954cc;animation:pulse 1.6s infinite}body.wish .header__karaoke+.live{margin-left:8px}body.wish .header__karaoke:not(:first-child)~.live{margin-left:8px}body.wish .header--karaoke{background:#0a0e14f0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}body.wish .header--karaoke .header__inner{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}body.wish .header__exit{background:transparent;border:1px solid var(--border);color:var(--fg);width:36px;height:36px;border-radius:50%;font-size:18px;cursor:pointer}body.wish .header__track{min-width:0}body.wish .header__title{font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.wish .header__artist{font-size:12px;color:var(--fg-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.wish .karaoke{max-width:720px;margin:0 auto;padding:50vh 20px;display:flex;flex-direction:column;gap:16px;text-align:center}body.wish .karaoke__line{font-size:28px;font-weight:600;line-height:1.25;transition:all .3s ease;opacity:.25;color:var(--fg);filter:blur(.5px);scroll-margin:50vh}body.wish .karaoke__line.is-past{opacity:.35;font-size:20px;filter:blur(0px)}body.wish .karaoke__line.is-future{opacity:.5;font-size:22px;filter:blur(0px)}body.wish .karaoke__line.is-active{opacity:1;font-size:36px;color:var(--accent-2);font-weight:800;filter:none;text-shadow:0 0 24px rgba(29,185,84,.35)}body.wish .karaoke--plain{padding:24px 20px 60vh;max-width:720px;margin:0 auto}body.wish .karaoke--plain pre{white-space:pre-wrap;word-wrap:break-word;color:var(--fg);font-family:var(--sans);font-size:18px;line-height:1.6;text-align:center}body.wish .karaoke-status{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:40px 24px;text-align:center;color:var(--fg-dim);font-size:18px}body.wish .karaoke-status--err{color:var(--danger)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}body.wish .now-playing{display:flex;gap:12px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:20px}body.wish .now-playing img{width:64px;height:64px;border-radius:8px}body.wish .now-playing .info{flex:1;min-width:0}body.wish .now-playing .label{font-size:11px;color:var(--accent-2);font-weight:600;text-transform:uppercase;letter-spacing:.06em}body.wish .now-playing .title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.wish .now-playing .artists{font-size:13px;color:var(--fg-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.wish .section-title{font-size:13px;font-weight:700;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.08em;margin:24px 0 12px}body.wish .queue{display:grid;gap:8px}body.wish .queue__row{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;padding:8px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius)}body.wish .queue__row img{width:48px;height:48px;border-radius:6px}body.wish .queue__meta{min-width:0}body.wish .queue__title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.wish .queue__artists{font-size:12px;color:var(--fg-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.wish .vote-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:56px;height:56px;border-radius:28px;border:1px solid var(--border);background:var(--bg-3);color:var(--fg);transition:all .15s;gap:0;line-height:1}body.wish .vote-btn .icon{font-size:18px;line-height:1}body.wish .vote-btn .count{font-size:12px;font-weight:700;line-height:1;margin-top:2px}body.wish .vote-btn.voted{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}body.wish .vote-btn:active{transform:scale(.95)}body.wish .add-trigger{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:16px;right:16px;max-width:568px;margin:0 auto;background:var(--accent);color:var(--accent-fg);border:0;height:56px;border-radius:28px;font-weight:700;font-size:16px;box-shadow:0 8px 24px #1db95459;z-index:5}body.wish .sheet-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:20;display:flex;align-items:flex-end;justify-content:center}body.wish .sheet{background:var(--bg);width:100%;max-width:600px;max-height:92vh;border-radius:var(--radius) var(--radius) 0 0;display:flex;flex-direction:column;padding:16px;overflow:hidden}body.wish .sheet h2{margin:0 0 12px;font-size:18px}body.wish .sheet .grow{flex:1;overflow-y:auto}body.wish .sheet .actions{display:flex;gap:8px;margin-top:12px}body.wish .search-results{display:grid;gap:6px}body.wish .search-results .row{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;background:var(--bg-2);padding:8px;border-radius:8px;border:1px solid var(--border);text-align:left;color:var(--fg)}body.wish .search-results .row img{width:48px;height:48px;border-radius:4px}body.wish .search-results .row .meta{min-width:0}body.wish .search-results .row .title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.wish .search-results .row .artists{color:var(--fg-dim);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.wish .search-results .row.selected{border-color:var(--accent)}body.wish .info-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:16px;color:var(--fg-dim);font-size:14px;text-align:center}body.wish .toast{position:fixed;bottom:88px;left:50%;transform:translate(-50%);background:var(--bg-3);color:var(--fg);padding:10px 18px;border-radius:999px;border:1px solid var(--border);font-size:14px;z-index:50;animation:toast-in .2s ease-out}body.wish .toast.error{background:var(--danger);color:#fff;border-color:transparent}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.mosparo-wrap{margin:12px 0;min-height:60px}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.setting{display:grid;gap:6px;background:var(--bg-3);padding:12px;border-radius:8px}.setting__label{font-size:13px;font-weight:600;color:var(--fg)}.setting__hint{font-size:11px;color:var(--fg-mute);line-height:1.4}.setting--toggle{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center}.setting--toggle .setting__label{grid-row:1;grid-column:1}.setting--toggle input[type=checkbox]{grid-row:1;grid-column:2;width:18px;height:18px}.setting--toggle .setting__hint{grid-row:2;grid-column:1 / -1}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.mode-indicator{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;gap:6px;z-index:100;opacity:.5}.mode-dot{width:8px;height:8px;border-radius:50%;background:#ffffff4d;transition:all .3s}.mode-dot.is-active{background:#fff;width:24px;border-radius:4px}.vis-empty{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:40px;color:var(--fg-dim)}body.display .vis-cover{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;animation:vis-fade-in .6s ease-out}body.display .vis-cover__bg{position:absolute;top:-10%;right:-10%;bottom:-10%;left:-10%;background-size:cover;background-position:center;filter:blur(40px) saturate(1.2);transform:scale(1.1);animation:ken-burns 60s ease-in-out infinite alternate}body.display .vis-cover__scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000008c,#000000b3)}body.display .vis-cover__center{position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr;gap:56px;align-items:center;height:100vh;padding:0 80px}body.display .vis-cover__art{width:540px;height:540px;border-radius:24px;background-size:cover;background-position:center;background-color:var(--bg-2);box-shadow:0 30px 90px #000000b3;animation:cover-pulse 8s ease-in-out infinite}body.display .vis-cover__info{min-width:0}body.display .vis-cover__title{font-size:72px;font-weight:800;line-height:1.05;letter-spacing:-.02em;margin-bottom:16px;text-shadow:0 4px 24px rgba(0,0,0,.6)}body.display .vis-cover__artist{font-size:36px;color:#ffffffd9;margin-bottom:36px;text-shadow:0 2px 12px rgba(0,0,0,.5)}body.display .vis-cover__corner{position:absolute;z-index:2;bottom:40px;right:40px;display:flex;align-items:end;gap:20px}@keyframes ken-burns{0%{transform:scale(1.1) translate(0)}to{transform:scale(1.2) translate(-2%,-2%)}}@keyframes cover-pulse{0%,to{transform:scale(1);box-shadow:0 30px 90px #000000b3}50%{transform:scale(1.02);box-shadow:0 40px 120px #000000d9}}@keyframes vis-fade-in{0%{opacity:0}to{opacity:1}}body.display .vis-aurora{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#06090f;animation:vis-fade-in .6s ease-out}body.display .aurora-blob{position:absolute;width:60vmin;height:60vmin;border-radius:50%;filter:blur(80px);opacity:.7;mix-blend-mode:screen}body.display .aurora-blob--1{background:radial-gradient(circle,#1db954,transparent 70%);top:-10%;left:-10%;animation:aurora-1 22s ease-in-out infinite}body.display .aurora-blob--2{background:radial-gradient(circle,#5cdaff,transparent 70%);top:30%;right:-15%;animation:aurora-2 28s ease-in-out infinite}body.display .aurora-blob--3{background:radial-gradient(circle,#ff4ec1,transparent 70%);bottom:-15%;left:30%;animation:aurora-3 26s ease-in-out infinite}body.display .aurora-blob--4{background:radial-gradient(circle,#a98bff,transparent 70%);top:40%;left:35%;width:40vmin;height:40vmin;animation:aurora-4 20s ease-in-out infinite}@keyframes aurora-1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(40vw,20vh) scale(1.2)}66%{transform:translate(20vw,50vh) scale(.9)}}@keyframes aurora-2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-50vw,30vh) scale(1.3)}}@keyframes aurora-3{0%,to{transform:translate(0) scale(1)}50%{transform:translate(30vw,-50vh) scale(1.1)}}@keyframes aurora-4{0%,to{transform:translate(0) scale(1)}25%{transform:translate(-20vw,-20vh) scale(1.4)}75%{transform:translate(30vw,30vh) scale(.8)}}body.display .vis-aurora__content{position:relative;z-index:2;height:100vh;padding:80px;display:flex;flex-direction:column;justify-content:center}body.display .vis-aurora__label{font-size:18px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:#ffffffb3;margin-bottom:16px}body.display .vis-aurora__title{font-size:120px;font-weight:800;line-height:.95;letter-spacing:-.03em;margin-bottom:24px;background:linear-gradient(135deg,#fff,#5cdaff 40%,#ff4ec1);-webkit-background-clip:text;background-clip:text;color:transparent;word-break:break-word}body.display .vis-aurora__artist{font-size:56px;color:#ffffffe6;margin-bottom:40px;font-weight:600}body.display .vis-aurora__progress{max-width:720px}body.display .vis-aurora__corner{position:absolute;bottom:40px;right:40px;display:flex;align-items:end;gap:20px}body.display .beamer-karaoke-root{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:radial-gradient(ellipse at 30% 30%,rgba(29,185,84,.08),transparent 60%),radial-gradient(ellipse at 70% 70%,rgba(92,218,255,.05),transparent 60%),var(--bg);overflow:hidden}body.display .beamer-karaoke{flex:1;overflow:hidden;padding:35vh 80px;display:flex;flex-direction:column;gap:28px;text-align:center}body.display .beamer-karaoke--plain{padding:80px 80px 200px;max-width:1400px;margin:0 auto}body.display .beamer-karaoke--plain pre{white-space:pre-wrap;word-wrap:break-word;color:var(--fg);font-family:var(--sans);font-size:36px;line-height:1.5;text-align:center}@property --fill{syntax: "<percentage>"; inherits: false; initial-value: 0%;}body.display .beamer-karaoke__line{font-size:76px;font-weight:700;line-height:1.15;scroll-margin:35vh;text-align:center}body.display .beamer-karaoke__text{display:inline-block;max-width:100%;transform-origin:center center;transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .45s ease,filter .45s ease;will-change:transform,opacity}body.display .beamer-karaoke__line.is-past .beamer-karaoke__text{transform:scale(.45);opacity:.32;color:#ffffffd9}body.display .beamer-karaoke__line.is-future .beamer-karaoke__text{transform:scale(.55);opacity:.5;color:#ffffffd9}body.display .beamer-karaoke__line.is-active .beamer-karaoke__text{transform:scale(1);opacity:1;transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .45s ease,--fill .05s linear;background-image:linear-gradient(to right,#1ed760 0%,#5cdaff calc(var(--fill) * .4),#ff4ec1 var(--fill),rgba(255,255,255,.28) var(--fill),rgba(255,255,255,.28) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 24px rgba(29,185,84,.4));font-weight:800}body.display .beamer-karaoke__status{flex:1;display:flex;align-items:center;justify-content:center;font-size:56px;color:var(--fg-dim);text-align:center;padding:0 80px}body.display .beamer-karaoke__footer{background:#0000008c;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid rgba(255,255,255,.08);padding:18px 40px;display:flex;justify-content:space-between;align-items:center;gap:24px}body.display .beamer-karaoke__track{font-size:22px;color:var(--fg);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body.display .beamer-karaoke__artist{color:var(--fg-dim)}body.display .beamer-karaoke__hint{font-size:18px;color:var(--fg-dim);white-space:nowrap}body.display .beamer-karaoke__hint code{font-family:var(--mono);background:#ffffff1a;padding:4px 10px;border-radius:6px;color:var(--fg);font-size:17px;margin-left:6px}body.display .mini-qr{background:#fff;padding:14px 14px 8px;border-radius:14px;text-align:center;color:#111}body.display .mini-qr canvas{width:140px;height:140px;display:block}body.display .mini-qr__label{margin-top:6px;font-size:12px;font-weight:600;color:#333}body.display .mini-upcoming{background:#00000073;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:14px 18px;min-width:280px;max-width:380px}body.display .mini-upcoming__head{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#fff9;font-weight:700;margin-bottom:8px}body.display .mini-upcoming__row{display:grid;gap:2px;padding:6px 0;border-top:1px solid rgba(255,255,255,.06)}body.display .mini-upcoming__row:first-of-type{border-top:0}body.display .mini-upcoming__title{font-weight:600;font-size:16px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.display .mini-upcoming__artist{font-size:13px;color:#fff9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
