:root {
  --bg: #0b0a10; --ink: #f6f1ec; --muted: #b9afb4; --line: rgba(255,255,255,.12);
  --red: #e8303f; --red2: #c0202e; --rose: #ff6b7a; --gold: #ffcf5a; --gold2: #f0a21f; --green: #4ee08a; --blue: #5fd0ff;
  --glass: rgba(16, 14, 24, .62); --glass2: rgba(28, 24, 40, .78);
  --shadow: 0 14px 40px rgba(0, 0, 0, .5), 0 2px 6px rgba(0, 0, 0, .35);
  --font: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif; --display: 'Unbounded', 'Manrope', system-ui, sans-serif;
  --ch: 44%; --cb: 29%;
}
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; height: 100%; background: #050408; color: var(--ink); font: 500 15px/1.4 var(--font); overflow: hidden; overscroll-behavior: none; }
#app { position: relative; width: 100%; height: 100%; max-width: 560px; margin: 0 auto; background: var(--bg); overflow: hidden; overflow: clip; }
button { font: inherit; color: inherit; }
a { color: var(--rose); }

/* ---------- stage: the set and the cast, shared by home and the show ---------- */
#stage { position: absolute; inset: 0; z-index: 0; overflow: hidden; transition: filter .5s; }
#stage.dim { filter: brightness(.35) saturate(.6) blur(2px); }
.setimg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 60%; opacity: 0; transition: opacity .7s; }
.setimg img.on { opacity: 1; }
.vig { position: absolute; inset: 0; background: radial-gradient(120% 90% at 50% 40%, rgba(0,0,0,0) 40%, rgba(0,0,0,.55) 100%), linear-gradient(180deg, rgba(5,4,8,.35), rgba(5,4,8,0) 22%, rgba(5,4,8,0) 60%, rgba(5,4,8,.75) 100%); pointer-events: none; }
.chars { position: absolute; inset: 0; pointer-events: none; }
.char { position: absolute; bottom: var(--cb); height: var(--ch); transform: translateX(-50%); transition: left .75s cubic-bezier(.2,.85,.25,1), opacity .4s, filter .35s, transform .35s; will-change: left, transform; }
.char img { height: 100%; width: auto; display: block; filter: drop-shadow(0 22px 18px rgba(0,0,0,.5)); }
.char .face { position: absolute; pointer-events: none; }
.face svg { width: 100%; height: 100%; display: block; overflow: visible; filter: drop-shadow(0 0 5px currentColor) drop-shadow(0 0 1px currentColor); }
.face.cover { background: #0b0b10; border-radius: 16%; box-shadow: inset 0 0 0 2px #1d1d24; }
.face .eye, .face .mouth { transform-box: fill-box; transform-origin: center; transition: transform .08s; }
.face.blink .eye { transform: scaleY(.08); }
.char.talk .mouth { animation: flap .19s infinite alternate ease-in-out; }
@keyframes flap { from { transform: scaleY(.45); } to { transform: scaleY(1.35); } }
.char.dimmed { filter: brightness(.55) saturate(.8); transform: translateX(-50%) scale(.95); }
.char.lead img { animation: leadpop .35s cubic-bezier(.34,1.56,.64,1); }
@keyframes leadpop { 0% { transform: scale(.96) translateY(4px); } 60% { transform: scale(1.04) translateY(-6px); } 100% { transform: none; } }
.char.lead { z-index: 3; }
.char.idle img { animation: breathe 3.8s ease-in-out infinite; }
@keyframes breathe { 0%, 100% { transform: translateY(0) rotate(-.4deg); } 50% { transform: translateY(-5px) rotate(.4deg); } }
.char.bounce img { animation: bounce .45s cubic-bezier(.34,1.56,.64,1); }
@keyframes bounce { 0% { transform: scale(.94) translateY(6px); } 100% { transform: none; } }
.char.gone { opacity: 0; }
.char.hop img { animation: hop .32s steps(2) infinite; }
@keyframes hop { from { transform: translateY(0); } to { transform: translateY(-7px); } }

/* ---------- title ---------- */
.screen { position: absolute; inset: 0; z-index: 50; background: #1a0f14; display: flex; flex-direction: column; justify-content: space-between; transition: opacity .6s, transform .6s; overflow: hidden; }
.screen.gone { opacity: 0; transform: scale(1.05); pointer-events: none; }
#splash { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 70%; }
.tchar { position: absolute; inset: 0; pointer-events: none; }
.tchar .char { left: 50%; bottom: 21%; height: 48%; animation: rise .9s cubic-bezier(.2,.9,.3,1.1) both; }
@keyframes rise { from { transform: translate(-50%, 40px); opacity: 0; } to { transform: translate(-50%, 0); opacity: 1; } }
.ttop { position: relative; padding: calc(18px + env(safe-area-inset-top)) 22px 0; text-align: center; background: linear-gradient(180deg, rgba(10,5,8,.78), rgba(10,5,8,.35) 70%, rgba(10,5,8,0)); }
.eyebrow { margin: 0 0 4px; font-size: 13px; font-weight: 800; letter-spacing: 2.5px; text-transform: uppercase; color: #ffd9a8; text-shadow: 0 2px 8px rgba(0,0,0,.6); }
.ttop h1 { margin: 0; line-height: 0; }
.ttop .tlogo { width: min(74%, 340px); height: auto; margin: 0 auto; filter: drop-shadow(0 14px 24px rgba(0,0,0,.65)); animation: rise .9s cubic-bezier(.2,.9,.3,1.1) both; }
.ttop h1 span { display: block; }
.ttop h1 .accent { font-size: 64px; color: #ffe08a; text-shadow: 0 3px 0 #d0801c, 0 7px 0 #8f5410, 0 16px 30px rgba(0,0,0,.55); }
.tag { color: #fff; margin: 0 0 4px; font-weight: 800; text-shadow: 0 1px 2px rgba(0,0,0,.7), 0 4px 14px rgba(0,0,0,.5); font-size: 14px; letter-spacing: .3px; }
.tcontent { position: relative; width: 100%; padding: 70px 26px calc(22px + env(safe-area-inset-bottom)); background: linear-gradient(180deg, rgba(10,5,8,0) 0%, rgba(10,5,8,.82) 40%, #0a0508 100%); text-align: center; }
.tstatus { color: #a08a8e; font-size: 12px; margin: 10px 0 0; min-height: 16px; }
.mbr { margin-top: 14px; display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 14px; font-weight: 800; color: #e9dcdc; letter-spacing: .4px; }
.mbr img { height: 34px; width: auto; }

/* ---------- buttons ---------- */
.btn { position: relative; background: linear-gradient(180deg, #ff6a6a, var(--red) 48%, var(--red2)); border: 0; border-radius: 18px; padding: 12px 18px; font-weight: 800; color: #fff; cursor: pointer; white-space: nowrap; letter-spacing: .2px; text-shadow: 0 1px 1px rgba(80,0,10,.4);
  box-shadow: 0 5px 0 #8a1420, 0 10px 24px rgba(232,48,63,.35), inset 0 1px 0 rgba(255,255,255,.4); transition: transform .08s, box-shadow .08s; overflow: hidden; }
.btn:active { transform: translateY(3px); box-shadow: 0 2px 0 #8a1420, 0 4px 12px rgba(232,48,63,.3), inset 0 1px 0 rgba(255,255,255,.4); }
.btn.big { width: 100%; padding: 15px; font-size: 17px; margin-top: 10px; }
.btn.play { background: linear-gradient(180deg, #ffe680, #ffcf3a 50%, #ffb21e); color: #4a2f08; font-family: var(--display); font-weight: 700; font-size: 22px; letter-spacing: 0; text-shadow: 0 1px 0 rgba(255,255,255,.6); box-shadow: 0 6px 0 #cf8a0c, 0 14px 30px rgba(190,120,0,.4), inset 0 1px 0 rgba(255,255,255,.8); padding: 16px; }
.btn.play:active { transform: translateY(3px); box-shadow: 0 3px 0 #cf8a0c, 0 6px 14px rgba(190,120,0,.35), inset 0 1px 0 rgba(255,255,255,.8); }
.btn .shine { position: absolute; top: -40%; left: -60%; width: 40%; height: 180%; background: linear-gradient(100deg, rgba(255,255,255,0), rgba(255,255,255,.5), rgba(255,255,255,0)); transform: rotate(12deg); animation: shine 3.2s ease-in-out infinite; pointer-events: none; }
@keyframes shine { 0%, 55% { left: -60%; } 100% { left: 140%; } }
.btn.gold { background: linear-gradient(180deg, #ffe07a, var(--gold) 50%, var(--gold2)); color: #4a2f08; text-shadow: 0 1px 0 rgba(255,255,255,.5); box-shadow: 0 5px 0 #b57a0c, 0 10px 22px rgba(240,162,31,.3), inset 0 1px 0 rgba(255,255,255,.7); }
.btn.soft { background: linear-gradient(180deg, #3a3348, #2a2438); color: #fff; box-shadow: 0 4px 0 #14101c, 0 8px 18px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.12); text-shadow: none; }
.btn.off, .btn:disabled { opacity: .45; cursor: default; }

/* ---------- pages, pills ---------- */
.page { position: absolute; inset: 0; z-index: 5; display: none; flex-direction: column; padding: calc(10px + env(safe-area-inset-top)) 14px 0; }
.page.on { display: flex; }
.page.dark { background: linear-gradient(180deg, rgba(11,10,16,.55), rgba(11,10,16,.92) 30%); }
.top { display: flex; align-items: center; gap: 8px; min-height: 44px; z-index: 2; }
.top h2 { font-family: var(--display); font-weight: 700; font-size: 20px; margin: 0; flex: 1; letter-spacing: .2px; text-shadow: 0 2px 8px rgba(0,0,0,.5); }
.pill { color: var(--ink); background: var(--glass); -webkit-backdrop-filter: blur(18px) saturate(160%); backdrop-filter: blur(18px) saturate(160%); border: 1px solid rgba(255,255,255,.18); box-shadow: 0 6px 18px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.14); border-radius: 999px; padding: 5px 13px 5px 9px; display: inline-flex; align-items: center; gap: 6px; font-weight: 800; font-size: 14px; min-height: 38px; }
.pill.gear, .pill.back { padding: 0; width: 40px; justify-content: center; font-size: 22px; border: 1px solid rgba(255,255,255,.18); }
.pill.back { font-size: 30px; line-height: 1; padding-bottom: 4px; }
.pill.auto { padding: 5px 12px; font-size: 12px; letter-spacing: .8px; text-transform: uppercase; color: var(--muted); }
.pill.auto.on { color: #fff; border-color: rgba(255,120,130,.6); box-shadow: 0 0 0 1px rgba(255,107,122,.35), 0 6px 18px rgba(0,0,0,.35); }
.cashpill { color: #c8ffd7; } .buzzpill { color: #ffe39c; } .floorpill { color: #fff; }
#home .top .gear { margin-left: auto; }
#home .top .hlogo { position: absolute; left: 50%; top: calc(2px + env(safe-area-inset-top)); transform: translateX(-50%); height: 62px; width: auto; filter: drop-shadow(0 6px 12px rgba(0,0,0,.6)); pointer-events: none; }
#home .top { position: relative; }
.rankpill { color: #ffe39c; }
.ic.star { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.9 6.3 6.9.8-5.1 4.7 1.4 6.8L12 17.2l-6.1 3.4 1.4-6.8L2.2 9.1l6.9-.8z' fill='%23ffcf5a'/%3E%3C/svg%3E"); }
.ic { width: 20px; height: 20px; display: inline-block; background: center / contain no-repeat; }
.ic.cash { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='2' y='6' width='20' height='12' rx='3' fill='%2342c76d'/%3E%3Ccircle cx='12' cy='12' r='3.4' fill='%23c8ffd7'/%3E%3Ccircle cx='5.5' cy='12' r='1' fill='%23c8ffd7'/%3E%3Ccircle cx='18.5' cy='12' r='1' fill='%23c8ffd7'/%3E%3C/svg%3E"); }
.ic.buzz { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.9 6.3 6.9.8-5.1 4.7 1.4 6.8L12 17.2l-6.1 3.4 1.4-6.8L2.2 9.1l6.9-.8z' fill='%23ffcf5a'/%3E%3C/svg%3E"); }
.ic.home { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 11.5L12 4l9 7.5V20a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z' fill='%23fff'/%3E%3C/svg%3E"); }
.ic.tv { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='2' y='5' width='20' height='13' rx='3' fill='%23fff'/%3E%3Cpath d='M8 21h8' stroke='%23fff' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M10 9v5l4-2.5z' fill='%230b0a10'/%3E%3C/svg%3E"); }
.ic.cast { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='9' cy='8' r='4' fill='%23fff'/%3E%3Ccircle cx='17' cy='9' r='3' fill='%23fff' opacity='.7'/%3E%3Cpath d='M2 20c0-4 3-6.5 7-6.5s7 2.5 7 6.5z' fill='%23fff'/%3E%3Cpath d='M15 13.5c3.5 0 6 2 6 5.5h-4.5' fill='%23fff' opacity='.7'/%3E%3C/svg%3E"); }
.ic.menu { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E"); }
.scroll { flex: 1; overflow-y: auto; padding: 6px 0 calc(100px + env(safe-area-inset-bottom)); }

/* ---------- home ---------- */
.homecards { position: absolute; left: 14px; right: 14px; bottom: calc(82px + env(safe-area-inset-bottom)); display: flex; flex-direction: column; gap: 10px; z-index: 2; max-height: 62%; }
.homecards .packs { overflow-y: auto; flex: 1; min-height: 0; padding-bottom: 2px; }
.bigcard { position: relative; text-align: left; background: var(--glass2); -webkit-backdrop-filter: blur(22px) saturate(160%); backdrop-filter: blur(22px) saturate(160%); border: 1px solid rgba(255,255,255,.16); border-radius: 22px; padding: 13px 15px; box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,.14); font: inherit; color: inherit; flex: none; overflow: hidden; }
.bigcard.daily { background: linear-gradient(135deg, rgba(90,20,36,.86), rgba(36,16,30,.86)); border-color: rgba(255,120,130,.35); }
.bigcard.daily::after { content: ''; position: absolute; right: -50px; top: -50px; width: 150px; height: 150px; border-radius: 50%; background: radial-gradient(circle, rgba(255,107,122,.4), rgba(255,107,122,0) 70%); pointer-events: none; }
.ch { display: flex; align-items: center; gap: 8px; }
.ch b { font-family: var(--display); font-weight: 700; font-size: 16px; letter-spacing: .2px; }
.ch small { display: block; color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; }
.ch .tagx2 { margin-left: auto; background: linear-gradient(180deg, #ffe07a, var(--gold2)); color: #4a2f08; font-size: 11px; font-weight: 800; padding: 3px 9px; border-radius: 99px; white-space: nowrap; }
.ch .done { margin-left: auto; color: var(--green); font-size: 12px; font-weight: 800; }
.cb { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; }
.cb p { margin: 0; color: #e5dbe0; font-size: 13px; font-weight: 700; line-height: 1.3; }
.cb .go { flex: none; background: linear-gradient(180deg, #ff6a6a, var(--red) 48%, var(--red2)); color: #fff; padding: 9px 18px; border-radius: 14px; font-weight: 800; box-shadow: 0 4px 0 #8a1420, 0 8px 16px rgba(232,48,63,.3), inset 0 1px 0 rgba(255,255,255,.4); text-shadow: 0 1px 1px rgba(80,0,10,.4); }
.coach { display: none; background: rgba(255,255,255,.94); color: #2a1a20; border-radius: 18px; padding: 11px 14px; font-size: 14px; font-weight: 800; box-shadow: var(--shadow); position: relative; }
.coach.show { display: block; animation: rise2 .4s cubic-bezier(.2,.9,.3,1.2); }
.coach::after { content: ''; position: absolute; left: 50%; bottom: -8px; width: 16px; height: 16px; background: rgba(255,255,255,.94); transform: translateX(-50%) rotate(45deg); border-radius: 3px; }
@keyframes rise2 { from { transform: translateY(12px); opacity: 0; } to { transform: none; opacity: 1; } }

/* ---------- cast ---------- */
.cc { display: flex; gap: 12px; align-items: center; background: var(--glass2); border: 1px solid rgba(255,255,255,.12); border-radius: 20px; padding: 12px; margin-bottom: 10px; box-shadow: 0 6px 18px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.1); }
.cc .port { width: 92px; height: 112px; flex: none; position: relative; overflow: hidden; border-radius: 16px; background: radial-gradient(circle at 50% 30%, rgba(255,255,255,.12), rgba(255,255,255,0) 70%); }
.cc .port .char { left: 50%; bottom: -38%; height: 170%; transition: none; }
.cc .port .char img { filter: drop-shadow(0 6px 8px rgba(0,0,0,.5)); }
.cc .cbody { flex: 1; min-width: 0; }
.cc .cbody b { font-family: var(--display); font-weight: 700; font-size: 16px; display: block; }
.cc .cbody small { display: block; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; margin-bottom: 4px; }
.cc .cbody p { margin: 0; font-size: 13px; color: #e5dbe0; font-weight: 700; line-height: 1.35; }
.cc .cbody em { display: block; margin-top: 6px; font-style: normal; font-size: 12px; color: var(--muted); font-weight: 800; }
.cc .cbody .bw { display: inline-block; margin-top: 6px; font-size: 11px; font-weight: 800; color: #ffd9a8; background: rgba(255,217,168,.12); border-radius: 99px; padding: 2px 9px; }


/* ---------- home cards ---------- */
.rec { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.rec small { display: block; color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; }
.rec > div > b { font-family: var(--display); font-weight: 800; font-size: 30px; line-height: 1.1; display: block; }
.rec > div > b em { font-style: normal; font-size: 13px; color: var(--muted); font-family: var(--font); font-weight: 700; margin: 0 4px; }
.rec > div > span { font-size: 12px; color: var(--muted); font-weight: 700; }
.recr { display: flex; gap: 14px; text-align: right; }
.recr b { font-family: var(--display); font-weight: 700; font-size: 18px; display: block; }

.packs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pack { position: relative; display: flex; flex-direction: column; text-align: left; background: linear-gradient(160deg, color-mix(in srgb, var(--c) 24%, rgba(28,24,40,.88)), var(--glass2)); -webkit-backdrop-filter: blur(22px) saturate(160%); backdrop-filter: blur(22px) saturate(160%); border: 1px solid rgba(255,255,255,.16); border-top: 3px solid var(--c); border-radius: 18px; padding: 10px 12px 9px; box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,.12); font: inherit; color: inherit; overflow: hidden; transition: transform .08s; }
.pack:active { transform: translateY(2px); }
.pack b { font-family: var(--display); font-weight: 700; font-size: 14px; display: block; letter-spacing: .1px; }
.pack small { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: #e5dbe0; font-size: 11px; font-weight: 700; line-height: 1.3; margin: 3px 0 8px; }
.pack .pst { display: block; margin-top: auto; font-size: 10px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; color: var(--c); }
.pack.done .pst { color: var(--muted); }
.pack::after { content: ''; position: absolute; right: -30px; top: -30px; width: 100px; height: 100px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--c) 45%, transparent), transparent 70%); pointer-events: none; }
.pack.kids { background: linear-gradient(135deg, rgba(70,35,95,.88), rgba(36,24,56,.88)); }

/* ---------- the show ---------- */
#play { padding-left: 10px; padding-right: 10px; pointer-events: none; }
#play > * { pointer-events: auto; }
.ptitle { flex: 1; text-align: center; line-height: 1.1; }
.ptitle b { font-family: var(--display); font-weight: 700; font-size: 14px; letter-spacing: .2px; display: block; text-shadow: 0 2px 8px rgba(0,0,0,.6); }
.ptitle small { color: #d8ccd0; font-size: 11px; font-weight: 800; text-shadow: 0 1px 4px rgba(0,0,0,.7); text-transform: uppercase; letter-spacing: 1.2px; }
.pill.spacer { width: 40px; visibility: hidden; }
.scores { display: flex; gap: 4px; margin-top: 8px; z-index: 2; }
.sc { flex: 1; min-width: 0; text-align: center; background: rgba(10,8,14,.62); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,.1); border-top: 3px solid var(--c); border-radius: 10px; padding: 4px 2px 3px; transition: transform .2s, background .2s; }
.sc small { display: block; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sc b { font-family: var(--display); font-weight: 700; font-size: 13px; display: block; line-height: 1.2; }
.sc.you { background: rgba(232,48,63,.35); border-color: rgba(255,120,130,.5); border-top-color: #fff; }
.sc.you small { color: #fff; }
.sc.top b { color: var(--gold); }
.sc.flash { transform: translateY(-3px); background: rgba(255,255,255,.18); }
.dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 6px; box-shadow: 0 0 6px currentColor; vertical-align: 1px; }
.cap { position: absolute; left: 12px; right: 12px; bottom: calc(14px + env(safe-area-inset-bottom)); min-height: 21%; background: var(--glass2); -webkit-backdrop-filter: blur(24px) saturate(160%); backdrop-filter: blur(24px) saturate(160%); border: 1px solid rgba(255,255,255,.16); border-left: 5px solid var(--who, var(--rose)); border-radius: 22px; padding: 14px 16px 26px; box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,.12); cursor: pointer; transition: opacity .3s, transform .3s; z-index: 5; }
.cap.hide { opacity: 0; transform: translateY(12px); pointer-events: none; }
.cap .who { display: inline-block; font-family: var(--display); font-weight: 700; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--who, var(--rose)); text-shadow: 0 0 10px var(--who, var(--rose)); margin-bottom: 4px; }
.cap .txt { margin: 0; font-size: 17px; line-height: 1.38; font-weight: 700; color: #fff; min-height: 46px; }
.cap .tap { position: absolute; right: 16px; bottom: 9px; font-size: 11px; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase; color: var(--muted); opacity: 0; }
.cap.ready .tap { animation: tapblink 1.2s infinite alternate; }
@keyframes tapblink { from { opacity: .35; } to { opacity: 1; } }
.answers { position: absolute; left: 12px; right: 12px; bottom: calc(14px + env(safe-area-inset-bottom)); max-height: 58%; overflow-y: auto; background: var(--glass2); -webkit-backdrop-filter: blur(26px) saturate(160%); backdrop-filter: blur(26px) saturate(160%); border: 1px solid rgba(255,255,255,.18); border-radius: 24px; padding: 14px 14px 14px; box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,.14); display: none; z-index: 6; animation: rise2 .35s cubic-bezier(.2,.9,.3,1.2); }
.answers.open { display: block; }
.answers .q { font-family: var(--display); font-weight: 600; font-size: 14px; line-height: 1.3; margin: 0 0 8px; color: #ffd9a8; letter-spacing: .1px; }
.tbar { height: 5px; border-radius: 99px; background: rgba(255,255,255,.1); overflow: hidden; margin-bottom: 8px; }
.tbar i { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, var(--gold), #ff6b7a); border-radius: 99px; transition: width .1s linear; }
.answers .opt { display: block; width: 100%; text-align: left; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-left: 4px solid var(--c, rgba(255,255,255,.3)); border-radius: 16px; padding: 10px 13px; margin-top: 8px; font-size: 14px; font-weight: 700; color: #fff; line-height: 1.3; transition: transform .08s, background .15s, opacity .2s; box-shadow: 0 3px 0 rgba(0,0,0,.3); }
.answers .opt:active:not(:disabled) { transform: translateY(2px); background: rgba(255,255,255,.16); }
.answers .opt .whoc { display: block; font-family: var(--display); font-weight: 700; font-size: 11px; letter-spacing: .6px; text-transform: uppercase; color: var(--c, #fff); margin-bottom: 3px; }
.answers .opt .ans { display: block; }
.answers .opt:disabled { opacity: .5; }
.answers .opt.right { opacity: 1; background: rgba(78,224,138,.22); border-color: rgba(78,224,138,.6); box-shadow: 0 0 0 1px rgba(78,224,138,.4), 0 3px 0 rgba(0,0,0,.3); }
.answers .opt.wrong { opacity: 1; background: rgba(232,48,63,.26); border-color: rgba(255,120,130,.6); }
.answers .tf { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.answers .opt.big { text-align: center; padding: 16px 10px; border-left-width: 1px; margin-top: 4px; }
.answers .opt.big .ans { font-family: var(--display); font-weight: 700; font-size: 20px; }
.votes { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.vote { font-size: 12px; font-weight: 800; padding: 4px 10px; border-radius: 99px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); }
.vote.ok { color: #c8ffd7; } .vote.no { color: #ffb3b9; text-decoration: line-through; text-decoration-color: rgba(255,120,130,.6); }
.board { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.slot { display: flex; align-items: center; justify-content: space-between; background: linear-gradient(180deg, #2a2340, #1a1528); border: 1px solid rgba(255,255,255,.14); border-radius: 12px; padding: 8px 10px; min-height: 38px; font-size: 13px; font-weight: 800; color: var(--muted); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
.slot.on { background: linear-gradient(180deg, #3b2a5a, #2a1d44); color: #fff; border-color: rgba(255,207,90,.5); animation: flipin .35s cubic-bezier(.2,.9,.3,1.2); }
.slot b { font-family: var(--display); font-weight: 700; color: var(--gold); font-size: 14px; margin-left: 6px; }
@keyframes flipin { from { transform: rotateX(90deg); opacity: 0; } to { transform: none; opacity: 1; } }
.strikes { display: flex; align-items: center; gap: 6px; margin: 10px 0 8px; }
.strikes i { font-style: normal; font-family: var(--display); font-weight: 800; width: 28px; height: 28px; border-radius: 8px; display: inline-grid; place-items: center; background: rgba(255,255,255,.08); color: rgba(255,255,255,.3); font-size: 14px; }
.strikes i.on { background: var(--red); color: #fff; box-shadow: 0 0 12px rgba(232,48,63,.6); animation: pop .3s cubic-bezier(.34,1.56,.64,1); }
.strikes span { margin-left: auto; font-size: 12px; font-weight: 800; color: var(--muted); }
.tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.tile { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.16); border-radius: 12px; padding: 9px 6px; font-size: 12px; font-weight: 800; color: #fff; line-height: 1.2; box-shadow: 0 3px 0 rgba(0,0,0,.3); transition: transform .08s; }
.tile:active:not(:disabled) { transform: translateY(2px); }
.tile.hit { background: rgba(78,224,138,.25); border-color: rgba(78,224,138,.6); }
.tile.miss { background: rgba(232,48,63,.22); border-color: rgba(255,120,130,.5); text-decoration: line-through; opacity: .7; }
#floats { position: absolute; left: 0; right: 0; top: 0; bottom: 0; pointer-events: none; z-index: 7; }
.float { position: absolute; left: 50%; top: 40%; transform: translateX(-50%); font-family: var(--display); font-weight: 700; font-size: 24px; color: #fff; text-shadow: 0 2px 0 rgba(0,0,0,.6), 0 6px 18px rgba(0,0,0,.6); animation: floatup 1.5s ease-out forwards; white-space: nowrap; }
.float.cash { color: #8af0ad; } .float.bot { color: #ffd9a8; font-size: 18px; } .float.bad { color: #ff8a8a; }
@keyframes floatup { 0% { opacity: 0; transform: translate(-50%, 20px) scale(.7); } 15% { opacity: 1; transform: translate(-50%, 0) scale(1.1); } 100% { opacity: 0; transform: translate(-50%, -110px) scale(1); } }

/* ---------- verdict ---------- */
.eyebrow2 { display: block; color: var(--muted); font-weight: 800; letter-spacing: 1.4px; text-transform: uppercase; font-size: 11px; }
.lb { list-style: none; padding: 0; margin: 10px 0; text-align: left; }
.lb li { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 10px; font-size: 14px; font-weight: 700; }
.lb li > span:first-child { color: var(--muted); width: 20px; font-weight: 800; }
.lb li .n { flex: 1; }
.lb li b { font-family: var(--display); font-weight: 700; font-size: 14px; }
.lb li.you { background: rgba(232,48,63,.25); border: 1px solid rgba(255,120,130,.4); }
.receipts { text-align: left; margin: 6px 0 2px; }
.receipts summary { cursor: pointer; font-size: 13px; font-weight: 800; color: #ffd9a8; padding: 8px 0; }
.receipts div { background: rgba(255,255,255,.06); border-radius: 12px; padding: 8px 10px; margin-top: 6px; }
.receipts div b { display: block; font-size: 13px; }
.receipts div p { margin: 2px 0 0; font-size: 12px; color: #e5dbe0; }

/* ---------- nav ---------- */
#nav { position: absolute; left: 12px; right: 12px; bottom: calc(10px + env(safe-area-inset-bottom)); z-index: 20; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; padding: 5px; border-radius: 30px; background: var(--glass); -webkit-backdrop-filter: blur(24px) saturate(170%); backdrop-filter: blur(24px) saturate(170%); border: 1px solid rgba(255,255,255,.16); box-shadow: 0 14px 34px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.14); transition: opacity .3s, transform .3s; }
#nav.hide { opacity: 0; transform: translateY(20px); pointer-events: none; }
#nav button { position: relative; background: none; border: 0; border-radius: 24px; padding: 7px 0 6px; display: flex; flex-direction: column; align-items: center; gap: 3px; font-size: 11px; font-weight: 800; color: var(--muted); transition: background .2s, color .2s, transform .1s; }
#nav button:active { transform: scale(.94); }
#nav button.on { background: rgba(255,255,255,.12); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.12); }
#nav button .ic { width: 24px; height: 24px; opacity: .75; }
#nav button.on .ic { opacity: 1; }

/* ---------- sheet, toasts, modal ---------- */
.sheet { position: absolute; left: 0; right: 0; bottom: 0; z-index: 35; max-height: 78vh; background: rgba(20, 17, 28, .94); -webkit-backdrop-filter: blur(28px) saturate(160%); backdrop-filter: blur(28px) saturate(160%); border-top: 1px solid rgba(255,255,255,.16); border-radius: 28px 28px 0 0; padding: 10px 16px calc(24px + env(safe-area-inset-bottom)); overflow-y: auto; transform: translateY(105%); transition: transform .28s cubic-bezier(.2,.8,.2,1); box-shadow: 0 -12px 44px rgba(0,0,0,.5); }
.sheet:not(.open) { visibility: hidden; }
.sheet.open { transform: none; }
.sheet .grip { width: 44px; height: 5px; border-radius: 3px; background: rgba(255,255,255,.2); margin: 0 auto 10px; }
.sheet .x { position: absolute; top: 10px; right: 12px; width: 32px; height: 32px; border-radius: 50%; border: 0; background: rgba(255,255,255,.12); color: #fff; font-weight: 800; }
.sheet h2 { font-family: var(--display); font-weight: 700; font-size: 20px; margin: 4px 0 6px; letter-spacing: .2px; }
.sheet h3 { font-size: 12px; color: var(--muted); margin: 18px 0 8px; text-transform: uppercase; letter-spacing: 1.4px; }
.sheet p { color: #e5dbe0; font-size: 14px; }
.mrow { display: flex; align-items: center; justify-content: space-between; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); border-radius: 16px; padding: 12px 14px; margin-top: 8px; font-weight: 800; cursor: pointer; }
.mrow span { color: var(--muted); font-size: 12px; font-weight: 700; }
.setrow { display: flex; align-items: center; justify-content: space-between; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); border-radius: 16px; padding: 11px 13px; margin-top: 8px; }
.setrow small { display: block; color: var(--muted); font-size: 11px; font-weight: 600; }
.tog { width: 50px; height: 30px; border-radius: 99px; border: 0; background: #3a3348; position: relative; transition: background .2s; box-shadow: inset 0 1px 3px rgba(0,0,0,.4); }
.tog::after { content: ''; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; transition: left .2s; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.tog.on { background: var(--green); }
.tog.on::after { left: 23px; }
.guide { display: grid; gap: 10px; }
.guide div { background: rgba(255,255,255,.07); border-radius: 16px; padding: 12px 14px; }
.guide b { font-family: var(--display); font-weight: 700; font-size: 13px; display: block; margin-bottom: 2px; }
.guide p { margin: 0; font-size: 13px; }
.sheet .mbr { color: #e9dcdc; margin-top: 18px; }
#toasts { position: absolute; left: 0; right: 0; bottom: calc(104px + env(safe-area-inset-bottom)); z-index: 60; display: flex; flex-direction: column; align-items: center; gap: 6px; pointer-events: none; }
.toast { color: #fff; background: rgba(30,26,40,.92); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border: 1px solid rgba(255,255,255,.18); border-radius: 14px; padding: 9px 14px; font-size: 14px; font-weight: 800; max-width: 86%; text-align: center; opacity: 0; transform: translateY(10px); transition: all .25s; box-shadow: 0 8px 24px rgba(0,0,0,.4); }
.toast.show { opacity: 1; transform: none; }
#modal { position: absolute; inset: 0; z-index: 40; background: rgba(5,4,8,.6); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); display: none; align-items: center; justify-content: center; padding: 24px; }
#modal.open { display: flex; }
#modal .box { background: linear-gradient(180deg, #221d2e, #15121d); border: 1px solid rgba(255,255,255,.16); border-radius: 28px; padding: 22px 20px 16px; width: 100%; max-width: 380px; text-align: center; box-shadow: 0 30px 70px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.14); max-height: 90%; overflow-y: auto; animation: rise .35s cubic-bezier(.2,.9,.3,1.2); position: relative; }
@keyframes rise { from { transform: translateY(24px) scale(.96); opacity: 0; } to { transform: none; opacity: 1; } }
#modal h2 { font-family: var(--display); font-weight: 700; font-size: 22px; margin: 4px 0; letter-spacing: .2px; }
#modal p { color: var(--muted); font-size: 14px; margin: 6px 0; }
#modal .hero { height: 150px; position: relative; margin: -6px 0 4px; }
#modal .hero .char { left: 50%; bottom: 0; height: 100%; transition: none; }
#modal .stars { display: flex; justify-content: center; gap: 6px; margin: 8px 0; }
#modal .stars i { width: 44px; height: 44px; display: inline-block; background: center / contain no-repeat; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.9 6.3 6.9.8-5.1 4.7 1.4 6.8L12 17.2l-6.1 3.4 1.4-6.8L2.2 9.1l6.9-.8z' fill='%23ffcf5a'/%3E%3C/svg%3E"); opacity: .18; filter: grayscale(1); }
#modal .stars i.on { opacity: 1; filter: drop-shadow(0 3px 6px rgba(255,207,90,.5)); animation: pop .5s cubic-bezier(.34,1.56,.64,1) backwards; }
#modal .stars i:nth-child(2).on { animation-delay: .12s; } #modal .stars i:nth-child(3).on { animation-delay: .24s; }
@keyframes pop { 0% { transform: scale(.2) rotate(-12deg); } 100% { transform: none; } }
.result { list-style: none; padding: 0; margin: 8px 0; font-size: 16px; font-weight: 800; }
.result li { padding: 5px 0; display: flex; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.08); }
.result li b { font-family: var(--display); font-weight: 700; font-size: 15px; }
.result .cash b { color: #8af0ad; } .result .buzz b { color: var(--gold); }
.result em { font-style: normal; background: linear-gradient(180deg, #ffe07a, var(--gold2)); color: #4a2f08; font-size: 11px; padding: 1px 7px; border-radius: 99px; margin-left: 6px; }
#modal .row { display: flex; gap: 8px; margin-top: 10px; }
#modal .row .btn { flex: 1; }
#modal .quote { font-family: var(--font); font-weight: 600; font-size: 15px; color: #ffd9a8; margin: 10px 0 2px; }
#confetti { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 45; }
#confetti i { position: absolute; top: -12px; width: 10px; height: 14px; border-radius: 3px; animation: fall 2.2s linear forwards; }
@keyframes fall { to { transform: translateY(110vh) rotate(720deg); opacity: .6; } }
