:root{--ink:#2A2150;--soft:#655A8E;--line:#DCD2F7;--paper:#F3EEFF;--gold:#FFB627;--gold-soft:#FFF1CF;--flame:#FF6A3D;--frost:#2E9BE6}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'M PLUS Rounded 1c',system-ui,sans-serif}
.tv{max-width:1000px;margin:0 auto;padding:20px 16px 48px}
.tv h1{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:clamp(28px,5vw,44px);margin:12px 0}
.lead{color:var(--soft);font-size:17px;max-width:40em}
.tv-top{display:flex;gap:10px;flex-wrap:wrap}
.chip{display:inline-block;background:#fff;border:2px solid var(--ink);border-radius:999px;padding:6px 14px;font-weight:800;font-size:14px;color:var(--ink);text-decoration:none;box-shadow:0 2px 0 var(--ink)}
.screen{position:relative;border:3px solid var(--ink);border-radius:22px;overflow:hidden;box-shadow:0 6px 0 var(--ink);background:#fff}
.stage svg{display:block;width:100%;height:auto}
.startcover{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(42,33,80,.35)}
.bigplay{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:34px;padding:14px 34px;border-radius:999px;border:3px solid var(--ink);background:var(--gold);color:var(--ink);cursor:pointer;box-shadow:0 5px 0 var(--ink)}
.cap{min-height:4.8em;font-size:clamp(17px,2.4vw,21px);line-height:1.5;background:#fff;border:2px solid var(--line);border-radius:16px;padding:12px 16px;margin:14px 0}
.cap b{color:#C8402A}
.controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.controls button{font-size:22px;min-width:52px;height:48px;border-radius:14px;border:2px solid var(--ink);background:#fff;color:var(--ink);cursor:pointer;box-shadow:0 3px 0 var(--ink)}
.controls button.wide{font-size:15px;font-weight:800;padding:0 14px}
.eps{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.ep{display:flex;flex-direction:column;gap:6px;background:#fff;border:2px solid var(--ink);border-radius:20px;padding:10px;color:var(--ink);text-decoration:none;box-shadow:0 4px 0 var(--ink)}
.ep[hidden]{display:none}.tvfilter{font-size:16px;margin:0 0 12px}.tvfilter a{color:inherit;font-weight:800}
.ep b{font-family:'Baloo 2',sans-serif;font-size:20px}.ep span{color:var(--soft);font-size:14px}
.thumb{position:relative;border-radius:14px;overflow:hidden}.thumb svg{display:block;width:100%;height:auto}
.playbadge{position:absolute;right:10px;bottom:10px;width:46px;height:46px;border-radius:50%;background:var(--gold);border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--ink)!important}
.fo{font-family:'M PLUS Rounded 1c',sans-serif;font-size:28px;line-height:1.4;color:var(--ink);background:#fff;border:3px solid var(--ink);border-radius:20px;padding:16px 20px}
.fo b{color:#C8402A}
.ov{position:absolute;inset:0;display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;background:rgba(42,33,80,.42)}
.ov[hidden]{display:none}
.ov.end{background:rgba(42,33,80,.7)}
.endt{margin:0;color:#fff;font-family:'Baloo 2',sans-serif;font-weight:800;font-size:clamp(28px,5vw,44px)}
.endb{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.bigplay{text-decoration:none;display:inline-block}
.ov.asking .screen svg{filter:blur(12px);opacity:.25;transition:filter .3s,opacity .3s}
.ask{background:rgba(42,33,80,.9);padding:14px;overflow:auto;gap:14px}
.askq{margin:0;color:#fff;font-family:'Baloo 2',sans-serif;font-weight:800;font-size:clamp(20px,3.6vw,34px);line-height:1.25;text-align:center;max-width:36em}
.askq b{color:var(--gold)}
.askc{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;width:100%}
.choice{position:relative;min-height:64px;min-width:84px;flex:1 1 120px;max-width:220px;padding:10px 18px;font-family:'Baloo 2',sans-serif;font-weight:800;font-size:clamp(22px,4vw,32px);border-radius:18px;border:3px solid var(--ink);background:#fff;color:var(--ink);cursor:pointer;box-shadow:0 4px 0 var(--ink);transition:opacity .6s,transform .2s,background .3s}
.choice:focus-visible{outline:4px solid var(--gold);outline-offset:3px}
.choice.gone{opacity:.2;transform:scale(.92);pointer-events:none}
.choice.right{background:#15A077;color:#fff;animation:pop .5s cubic-bezier(.2,1.5,.4,1) both}
.choice:disabled:not(.gone):not(.right){opacity:.55}
.burst{position:absolute;inset:0;pointer-events:none}
.burst i{position:absolute;left:50%;top:50%;font-style:normal;font-size:22px;animation:fly 1s ease-out both}
@keyframes fly{from{opacity:1;transform:translate(0,0) scale(.6)}to{opacity:0;transform:translate(var(--x),var(--y)) scale(1.1)}}
.askm{margin:0;min-height:1.5em;color:#fff;font-weight:800;font-size:clamp(16px,2.4vw,20px);text-align:center;max-width:36em}
.ov.end.hasact{position:static;padding:18px 14px}
.actcard{background:#fff;color:var(--ink);border:3px solid var(--gold);border-radius:20px;padding:14px 18px;width:100%;max-width:640px;text-align:left}
.actcard h2{margin:0;font-family:'Baloo 2',sans-serif;font-size:clamp(20px,3vw,26px);color:var(--flame)}
.acttitle{display:flex;gap:10px;align-items:center;font-family:'Baloo 2',sans-serif;font-weight:800;font-size:clamp(20px,3.2vw,28px)}.acte{font-size:1.3em}
.actneed{margin:6px 0;font-size:16px}.actcard ol{margin:6px 0 4px;padding-left:1.4em;font-size:clamp(16px,2.2vw,19px);line-height:1.45}.actcard li{margin:3px 0}
.actadult{margin:8px 0 0;padding:6px 10px;border-radius:12px;background:var(--gold-soft);font-weight:800;font-size:15px}
@media (max-width:700px){.ov.ask{position:static;padding:16px 12px}}
.bigplay.ghost{background:#fff}
.auto{color:#fff;font-weight:800;font-size:16px;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.scount{display:block;width:max-content;margin:6px 0 0 auto;background:#fff;border:2px solid var(--ink);border-radius:999px;padding:2px 12px;font-weight:800;font-size:14px}
.vstat{font-size:13px;color:var(--soft);margin:8px 2px 0}
.transcript{margin:18px 2px 0;color:var(--soft);font-size:15px}.transcript summary{cursor:pointer;font-weight:700}.transcript p{margin:8px 0}
.bar{height:10px;border-radius:999px;background:var(--line);margin-top:12px;overflow:hidden}.bar i{display:block;height:100%;width:0;background:var(--flame);transition:width .4s}
.controls button{font-size:17px;font-weight:800;padding:0 14px}
@media (max-width:560px){.bigplay{font-size:24px;padding:10px 22px}}
/* scene animations */
.a{transform-box:fill-box;transform-origin:center;animation-duration:.8s;animation-fill-mode:both}
.fade{animation-name:fade}.pop{animation-name:pop;animation-timing-function:cubic-bezier(.2,1.5,.4,1)}
.float{animation:float 4s ease-in-out infinite both}.pulse{animation:pulse 1.8s ease-in-out infinite both}.twinkle{animation:twinkle 2.2s ease-in-out infinite both}
.spin{animation:spin 5s linear infinite both}.grow{animation:grow 2.4s ease-out both}.shrink{animation:shrink 2.4s ease-in both}.flash{animation:flash 1.4s ease-out both}
@keyframes fade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}
@keyframes float{0%,100%{transform:translate(0,0)}50%{transform:translate(18px,-12px)}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes twinkle{0%,100%{opacity:.3}50%{opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes grow{from{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}
@keyframes shrink{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.15)}}
@keyframes flash{0%{opacity:0;transform:scale(.2)}40%{opacity:1;transform:scale(1.25)}100%{opacity:1;transform:scale(1)}}
.paused .a{animation-play-state:paused!important}
.still{animation:none!important;opacity:1!important}
@media (prefers-reduced-motion:reduce){.a{animation:none!important;opacity:1!important}.burst{display:none}.choice.right{animation:none}}
