:root{--bg:#0f0f0f;--panel:#161616;--panel-2:#1c1c1c;--ink:#fff;--muted:#959595;--line:#262626;--line-strong:#3a3a3a;--accent:#2f6bff;--accent-hover:#4a7dff;--accent-ink:#fff;--accent-soft:#2f6bff29;--live:#ff3b4e;--good:#3fbf8a;--stage-bg:#101018;--subtitle-bg:#08080cb8;--radius:10px;--mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:15px/1.6 PingFang SC,Hiragino Sans GB,Noto Sans SC,Microsoft YaHei,system-ui,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{background:var(--accent);color:var(--accent-ink);cursor:pointer;border:0;border-radius:8px;padding:6px 14px}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button.link{color:var(--accent);background:0 0;padding:0}input,select,textarea{background:var(--panel);border:1px solid var(--line);border-radius:8px;width:100%;padding:6px 10px}label{color:var(--muted);margin:8px 0;font-size:13px;display:block}label.inline{align-items:center;gap:4px;display:inline-flex}label.inline input{width:auto}a{color:var(--accent)}.error{color:#ff6b6b}.page{max-width:1100px;margin:0 auto;padding:24px 16px 48px}.page.narrow{max-width:420px}.join{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-top:16px;padding:20px}.room{grid-template-columns:minmax(0,1fr) 340px;align-content:start;gap:16px;max-width:1500px;min-height:100vh;margin:0 auto;padding:16px;display:grid}.stage-wrap{flex-direction:column;gap:12px;min-width:0;display:flex}.stage{aspect-ratio:16/9;border-radius:var(--radius);background:var(--stage-bg);isolation:isolate;width:100%;position:relative;overflow:hidden;container-type:inline-size}.bg-stack,.bg-layer{position:absolute;inset:0}.bg-layer{opacity:1}.bg-layer.bg-in{animation:1.4s both fade-in}.bg-empty{background:linear-gradient(#24204a,#3b2f5c)}.bg-img{background-position:50%;background-size:cover;animation:36s ease-in-out infinite alternate kb-a;position:absolute;inset:-4%}.bg-img.kb-1{animation-name:kb-b}.bg-img.kb-2{animation-name:kb-c}.bg-blur .bg-img{filter:blur(6px)brightness(.85)}@keyframes fade-in{0%{opacity:0}}@keyframes kb-a{0%{transform:scale(1)translate(0)}to{transform:scale(1.1)translate(-2%,-1%)}}@keyframes kb-b{0%{transform:scale(1.08)translate(2%)}to{transform:scale(1)translate(-1%,1%)}}@keyframes kb-c{0%{transform:scale(1.02)translate(-1%,1%)}to{transform:scale(1.12)translate(1%,-1%)}}canvas.character{aspect-ratio:3/4;filter:drop-shadow(0 8px 18px #00000059);width:auto;height:96%;position:absolute;bottom:0;left:50%;transform:translate(-30%)}.set{will-change:transform;transition:transform 1.1s cubic-bezier(.33,0,.2,1),transform-origin 1.1s cubic-bezier(.33,0,.2,1);position:absolute;inset:0}.actor{aspect-ratio:3/4;height:96%;transform:translateX(-50%) scale(var(--actor-scale,1));transform-origin:50% 100%;filter:drop-shadow(0 8px 18px #00000059);transition:left .9s cubic-bezier(.33,0,.2,1),transform .5s,filter .4s,opacity .45s;animation:.9s cubic-bezier(.2,.8,.2,1) both actor-enter-right;position:absolute;bottom:0}.actor.from-left{animation-name:actor-enter-left}.actor canvas{width:100%;height:100%;display:block}.actor-speaking{z-index:2;transform:translateX(-50%) scale(calc(var(--actor-scale,1) * 1.03))}.actor-listening{filter:drop-shadow(0 8px 18px #00000059)brightness(.78)saturate(.85)}.actor-away{opacity:0}@keyframes actor-enter-left{0%{opacity:0;translate:-30%}}@keyframes actor-enter-right{0%{opacity:0;translate:30%}}.illustration{z-index:1;opacity:0;pointer-events:none;background:#000;transition:opacity .7s;position:absolute;inset:0;overflow:hidden}.illustration.on{opacity:1}.illustration-img{background-position:50%;background-size:cover;animation:28s ease-in-out infinite alternate kb-c;position:absolute;inset:-3%}.stage-top{z-index:3;align-items:center;gap:8px;display:flex;position:absolute;top:10px;left:10px;right:10px}.chip{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#14102099;border-radius:999px;padding:4px 12px;font-size:13px}.chip.sound{margin-left:auto}.subtitle{background:var(--subtitle-bg);color:#fff;text-align:center;z-index:3;text-shadow:0 1px 2px #000;border-radius:8px;max-width:86%;min-height:1.6em;padding:8px 18px;font-size:clamp(15px,2.2vw,24px);position:absolute;bottom:5%;left:50%;transform:translate(-50%)}.subtitle:empty{visibility:hidden}.subtitle .speaker{color:#f8c9a0;margin-right:8px;font-size:.7em;font-style:normal}.subtitle .narration{color:#e9e2f5;font-style:italic}.director-note{color:#3a2a20;z-index:3;background:#fff6e6f0;border-radius:8px;max-width:80%;padding:6px 14px;font-size:14px;animation:12s both note;position:absolute;top:48px;left:50%;transform:translate(-50%)}.director-note strong{color:var(--accent);margin-right:6px}@keyframes note{0%{opacity:0;transform:translate(-50%,-8px)}6%,85%{opacity:1;transform:translate(-50%)}to{opacity:0}}.stage-overlay{text-align:center;color:#fff;text-shadow:0 1px 4px #000;z-index:3;font-size:clamp(14px,2vw,20px);position:absolute;inset:auto 0 22%}.conn{color:#fff;z-index:4;background:#c0392b;border-radius:6px;padding:2px 10px;font-size:12px;position:absolute;top:48px;right:12px}.vote{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px}.vote header{justify-content:space-between;margin-bottom:8px;display:flex}.vote-options{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;display:grid}.vote-options button{background:var(--accent-soft);color:var(--ink);text-align:left;border:2px solid #0000;justify-content:space-between;padding:10px 12px;display:flex;position:relative;overflow:hidden}.vote-options button.mine{border-color:var(--accent)}.vote-options button.winner{border-color:var(--good);font-weight:700}.vote-bar{background:var(--accent);opacity:.25;transition:width .4s;position:absolute;inset:0 auto 0 0}.vote-label,.vote-count{position:relative}kbd{border:1px solid var(--line);border-radius:4px;padding:0 4px;font-size:11px}.chat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;height:calc(100vh - 32px);padding:12px;display:flex;position:sticky;top:16px}.chat h2{margin:0 0 8px;font-size:16px}.comments{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.comments li{border-bottom:1px dashed var(--line);word-break:break-word;align-items:baseline;gap:6px;padding:5px 0;display:flex}.comments .nick{color:var(--accent);white-space:nowrap;font-size:13px}.comments .text{flex:1}.comments .like{color:var(--muted);background:0 0;padding:0 4px;font-size:12px}.composer{gap:8px;margin-top:8px;display:flex}.composer button{white-space:nowrap}.toast{color:#ff6b6b;margin:8px 0 0;font-size:13px}@media (width<=860px){.room{grid-template-columns:1fr;padding:0 0 16px}.stage{border-radius:0}.stage-wrap .vote{margin:0 16px}.chat{height:50vh;margin:0 16px;position:static}}@media (prefers-reduced-motion:reduce){.bg-img,.bg-layer.bg-in,.director-note,.actor,.illustration-img{animation:none}}.admin-head{align-items:center;gap:12px;display:flex}.admin-head .msg{color:var(--muted);margin-left:auto}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:16px}.card h2{margin-top:0;font-size:18px}.card h3{margin:18px 0 6px;font-size:15px}.usage{color:var(--muted);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:12px 0;font-size:13px;display:grid}.usage b{color:var(--ink);font-size:22px;display:block}.admin-grid{grid-template-columns:260px minmax(0,1fr) 340px;align-items:start;gap:12px;display:grid}.page.admin{max-width:1500px}@media (width<=1100px){.admin-grid{grid-template-columns:1fr}}.row{align-items:center;gap:8px;display:flex}.row button{white-space:nowrap}.row.wrap{flex-wrap:wrap}.stack{gap:8px;display:grid}.admin-rooms{padding:0;list-style:none}.admin-rooms li{align-items:center;gap:8px;margin-bottom:6px;display:flex}.admin-rooms button{text-align:left;background:var(--accent-soft);color:var(--ink);flex:1}.admin-rooms button[aria-pressed=true]{outline:2px solid var(--accent)}.code{font-family:ui-monospace,Menlo,monospace;font-size:12px}pre.code{white-space:pre-wrap;word-break:break-all;background:var(--bg);border-radius:6px;padding:8px}.hint{color:var(--muted);font-size:13px}.timing{border-collapse:collapse;width:100%;font-size:12px}.timing td,.timing th{border-bottom:1px solid var(--line);text-align:left;padding:4px}.admin-comments{max-height:420px;padding:0;list-style:none;overflow-y:auto}.admin-comments li{border-bottom:1px dashed var(--line);gap:2px;padding:6px 0;font-size:13px;display:grid}.admin-comments li.muted{opacity:.5}.admin-comments .meta{color:var(--muted);font-size:12px}.admin-comments button{padding:2px 8px;font-size:12px}.dev-grid{grid-template-columns:minmax(0,1fr) 360px;gap:16px;display:grid}@media (width<=860px){.dev-grid{grid-template-columns:1fr}}.dev-stage{background:repeating-conic-gradient(#ddd 0 25%, #f6f6f6 0 50%) 0 0 / 24px 24px;border-radius:var(--radius);aspect-ratio:3/4;max-height:80vh;position:relative}canvas.dev-canvas{height:100%;transform:translate(-50%)}.emotions{flex-wrap:wrap;gap:6px;display:flex}.emotions button[aria-pressed=false]{background:var(--accent-soft);color:var(--ink)}.rect-editor{border:1px solid var(--line);border-radius:8px;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0;display:grid}.rect-editor label{margin:0}.chip.replaying{background:#78461ebf}.chip.live{background:var(--accent)}.chapter-menu{z-index:4;border-radius:var(--radius);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#141020eb;width:min(320px,100% - 20px);max-height:calc(100% - 60px);padding:12px;position:absolute;top:46px;left:10px;overflow-y:auto}.chapter-menu .hint{opacity:.75;margin:0 0 8px;font-size:12px}.chapter-menu ol{gap:6px;margin:0;padding:0;list-style:none;display:grid}.chapter-menu li button{color:#fff;text-align:left;background:#ffffff14;border-radius:8px;justify-content:space-between;gap:8px;width:100%;padding:8px 10px;display:flex}.chapter-menu li button:disabled{opacity:.4}.chapter-menu small{opacity:.75;white-space:nowrap}.chapter-menu .link{color:#f8c9a0;margin-top:8px}.chip.sound.sound-off{background:var(--accent);color:#fff;padding:6px 14px;font-size:14px;font-weight:600;animation:2s ease-out infinite sound-pulse;box-shadow:0 0 #ef8a5fb3}@keyframes sound-pulse{0%{box-shadow:0 0 #ef8a5fb3}70%{box-shadow:0 0 0 12px #ef8a5f00}to{box-shadow:0 0 #ef8a5f00}}.sound-gate{z-index:6;color:#fff;text-align:center;background:radial-gradient(#0a081459,#0a0814b3);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:16px;display:flex;position:absolute;inset:0}.sound-gate p{text-shadow:0 1px 3px #000;margin:0;font-size:clamp(13px,1.6vw,16px)}.sound-gate-button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:12px;padding:clamp(12px,2vw,18px) clamp(22px,4vw,40px);font-size:clamp(18px,2.6vw,26px);font-weight:700;animation:2s ease-out infinite sound-pulse;display:inline-flex}.sound-gate-button:hover{filter:brightness(1.08)}.sound-gate-button:focus-visible{outline-offset:3px;outline:3px solid #fff}.sound-gate-icon{font-size:1.3em}.sound-gate .link{color:#e9e2f5;cursor:pointer;background:0 0;border:none;font-size:14px;text-decoration:underline}.credits{border-radius:var(--radius);background:var(--accent-soft);color:var(--ink);flex-wrap:wrap;align-items:center;gap:6px 8px;margin:10px 0 0;padding:8px 12px;font-size:14px;display:flex}.credits-title{color:var(--muted);margin-right:2px}.credit{color:var(--accent);font-weight:600}.chapter-menu .chapter-credits{color:#f8c9a0;margin-top:2px;display:block}.composer-hint{color:var(--muted);margin:6px 0 0;font-size:12px}@media (width<=860px){.credits{margin:10px 16px 0}}@media (prefers-reduced-motion:reduce){.chip.sound.sound-off,.sound-gate-button{animation:none}}.chat .join{margin-top:8px;padding:14px}.join-actions{align-items:center;gap:12px;display:flex}.login-to-post{width:100%;margin-top:8px}.home{min-height:100vh;overflow-x:clip}.home a{text-decoration:none}.topbar{z-index:10;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:24px;max-width:1200px;margin:0 auto;padding:18px 24px;display:flex;position:sticky;top:0}.brand{color:var(--ink);letter-spacing:-.01em;align-items:center;gap:10px;font-size:18px;font-weight:600;display:inline-flex}.brand-mark{width:28px;height:28px;display:block}.topnav{gap:28px;margin-left:auto;display:flex}.topnav a{color:var(--ink);font:400 13px / 1 var(--mono);letter-spacing:.04em;text-transform:uppercase;opacity:.85}.topnav a:hover{opacity:1}.eyebrow{color:var(--muted);font:400 12px / 1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;margin:0 0 16px}.dim{color:var(--muted)}.home-hero{text-align:center;isolation:isolate;max-width:1200px;margin:0 auto;padding:120px 24px;position:relative}.hero-glow{z-index:-1;pointer-events:none;filter:blur(1px);background:radial-gradient(30% 45% at 50% 55%,#2f6bff2e,#0000 70%),linear-gradient(100deg,#0000 8%,#2f6bff80 9%,#1e3cdc26 22%,#0000 34%),linear-gradient(80deg,#0000 66%,#1e3cdc26 78%,#2f6bff80 91%,#0000 92%),linear-gradient(170deg,#0000 20%,#40d2e638 21%,#0000 24%),linear-gradient(10deg,#0000 76%,#40d2e638 79%,#0000 80%);position:absolute;inset:0 -40vw;-webkit-mask-image:linear-gradient(#0000,#000 15% 75%,#0000);mask-image:linear-gradient(#0000,#000 15% 75%,#0000)}.home-hero h1{letter-spacing:-.02em;text-wrap:balance;max-width:900px;margin:0 auto;font-size:clamp(36px,7vw,68px);font-weight:600;line-height:1.08}.hero-text{max-width:520px;color:var(--muted);margin:24px auto 0;font-size:18px;line-height:1.6}.hero-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:40px;display:flex}.btn{font:500 13px / 1 var(--mono);letter-spacing:.04em;text-transform:uppercase;border-radius:8px;align-items:center;padding:12px 18px;transition:background .2s,transform .2s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff;box-shadow:inset 0 1px #ffffff40,0 8px 24px #2f6bff4d}.btn-primary:hover{background:var(--accent-hover)}.btn-dark{background:var(--panel-2);color:var(--ink);box-shadow:inset 0 1px #ffffff14}.btn-dark:hover{background:#262626}.home-section{max-width:1200px;margin:0 auto;padding:72px 24px;scroll-margin-top:64px}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:40px;display:flex}.section-head h2{letter-spacing:-.02em;margin:0;font-size:clamp(28px,4.4vw,44px);font-weight:600;line-height:1.1}.section-text{max-width:380px;color:var(--muted);margin:0;font-size:15px}.tiles{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}.tile a{border:1px solid var(--line);background:var(--panel);height:100%;color:var(--ink);border-radius:14px;flex-direction:column;transition:border-color .25s,box-shadow .25s,transform .25s;display:flex;overflow:hidden}.tile a:hover{border-color:var(--line-strong);transform:translateY(-2px);box-shadow:0 18px 50px -20px #2f6bff73}.tile-thumb{aspect-ratio:16/9;background:var(--stage-bg);position:relative;overflow:hidden}.tile-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .6s;display:block}.tile-thumb-portrait img{object-position:50% 22%}.tile a:hover .tile-thumb img{transform:scale(1.04)}.tile-thumb:after{content:"";pointer-events:none;background:linear-gradient(#00000073,#0000 35% 70%,#00000059);position:absolute;inset:0}.tile-thumb-empty{background:radial-gradient(at 30% 30%,#2f6bff59,#0000 60%),linear-gradient(135deg,#14162a,#0c0c12);width:100%;height:100%}.badge{z-index:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font:500 11px / 1 var(--mono);letter-spacing:.06em;text-transform:uppercase;background:#0f0f0fb8;border-radius:6px;align-items:center;gap:6px;padding:5px 9px;display:inline-flex;position:absolute;top:12px;left:12px}.badge-live{background:var(--live)}.badge-dot{background:#fff;border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite badge-pulse}@keyframes badge-pulse{50%{opacity:.3}}.badge-ended{color:#cfcfcf}.tile-viewers{z-index:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font:400 11px / 1 var(--mono);background:#0f0f0fb8;border-radius:6px;padding:5px 9px;position:absolute;top:12px;right:12px}.tile-body{flex-direction:column;flex:1;gap:8px;padding:18px 20px 20px;display:flex}.tile-body h3{letter-spacing:-.01em;margin:0;font-size:20px;font-weight:600}.tile-logline{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;line-height:1.6;display:-webkit-box;overflow:hidden}.tile-meta{border-top:1px solid var(--line);color:var(--muted);font:400 12px / 1.4 var(--mono);flex-wrap:wrap;gap:6px 14px;margin:auto 0 0;padding-top:12px;display:flex}.tile-skeleton{aspect-ratio:4/3.4;border:1px solid var(--line);background:linear-gradient(100deg, var(--panel) 40%, var(--panel-2) 50%, var(--panel) 60%) 0 0 / 200% 100%;border-radius:14px;animation:1.4s linear infinite skeleton}@keyframes skeleton{to{background-position:-200% 0}}.empty{border:1px dashed var(--line-strong);color:var(--muted);text-align:center;border-radius:14px;padding:48px}.steps{border:1px solid var(--line);border-radius:14px;grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.steps li{background:var(--panel);padding:28px 28px 32px}.steps li+li{border-left:1px solid var(--line)}.step-no{color:var(--accent);font:500 12px / 1 var(--mono);letter-spacing:.08em}.steps h3{margin:20px 0 8px;font-size:18px;font-weight:600}.steps p{color:var(--muted);margin:0;font-size:14px;line-height:1.7}.home-foot{border-top:1px solid var(--line);max-width:1200px;color:var(--muted);font:400 12px / 1.4 var(--mono);text-transform:uppercase;letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;gap:12px;margin:40px auto 0;padding:28px 24px 40px;display:flex}.foot-links{gap:20px;display:flex}.home-foot a{color:var(--muted)}.home-foot a:hover{color:var(--ink)}@media (width<=760px){.topbar{gap:12px;padding:14px 16px}.topnav{gap:14px}.topnav a:last-child{display:none}.home-hero{padding:72px 16px 88px}.hero-text{font-size:16px}.home-section{padding:48px 16px}.tiles,.steps{grid-template-columns:1fr}.steps li+li{border-left:0;border-top:1px solid var(--line)}}@media (prefers-reduced-motion:reduce){.badge-dot,.tile-skeleton{animation:none}.tile a,.tile-thumb img{transition:none}.tile a:hover{transform:none}}.room-live{grid-template-columns:auto 360px;justify-content:center}.room-live .stage-wrap{width:min(56.25svh - 18px,100vw - 408px)}.room-live .stage{aspect-ratio:9/16}.actor.actor-full,.actor.actor-full.actor-speaking{aspect-ratio:auto;filter:none;width:100%;height:100%;animation:.8s both fade-in;inset:0;transform:none}.actor-full canvas{object-fit:cover;object-position:50% 30%}.room-live .subtitle{max-width:90%;font-size:clamp(15px,1.9vh,20px)}.chip.chip-onair{background:var(--live);font-family:var(--mono);letter-spacing:.06em}.chip.chip-onair:before{content:"";vertical-align:1px;background:#fff;border-radius:50%;width:7px;height:7px;margin-right:6px;animation:1.4s ease-in-out infinite onair;display:inline-block}@keyframes onair{50%{opacity:.25}}@media (width<=860px){.room-live{padding:0;display:block;position:relative}.room-live .stage-wrap{width:100%}.room-live .stage{aspect-ratio:auto;border-radius:0;height:100svh}.room-live .chat{z-index:4;background:linear-gradient(#0000,#000000b8 28%);border:0;border-radius:0;height:auto;margin:0;padding:48px 12px 12px;position:fixed;inset:auto 0 0}.room-live .chat h2,.room-live .composer-hint,.room-live .stage-wrap>.credits{display:none}.room-live .stage-wrap{gap:0}.room-live .stage-wrap .vote{z-index:5;margin:0;position:fixed;top:52px;left:12px;right:12px}.room-live .chat .join{background:var(--panel);border-radius:var(--radius);padding:10px}.room-live .comments{flex:none;max-height:26svh;-webkit-mask-image:linear-gradient(#0000,#000 30%);mask-image:linear-gradient(#0000,#000 30%)}.room-live .comments li{text-shadow:0 1px 2px #000;border:0;padding:3px 0}.room-live .subtitle{bottom:calc(26svh + 110px)}}@media (prefers-reduced-motion:reduce){.chip.chip-onair:before{animation:none}}.backdrop{filter:blur(2.5px)saturate(.95);background-position:50% 30%;background-size:cover;position:absolute;inset:0;transform:scale(1.03)}.room-live .set{cursor:pointer;touch-action:manipulation}.hearts{pointer-events:none;z-index:3;position:absolute;inset:0;overflow:hidden}.heart-rise{width:0;height:0;animation:3.8s cubic-bezier(.33,.1,.55,1) forwards heart-rise;position:absolute}.heart{fill:#ff3b5c;filter:drop-shadow(0 2px 6px #ff28508c);width:46px;height:46px;animation:heart-pop .35s cubic-bezier(.2, .8, .3, 1.4) both, heart-sway 1.1s ease-in-out var(--heart-delay,0s) infinite alternate;margin:-23px 0 0 -23px;position:absolute}@keyframes heart-rise{0%{opacity:1;transform:translateY(0)}65%{opacity:.9}to{transform:translateY(calc(var(--heart-rise,400px) * -1));opacity:0}}@keyframes heart-pop{0%{scale:.2}to{scale:1}}@keyframes heart-sway{0%{transform:translateX(calc(var(--heart-sway,10px) * -1)) rotate(-9deg)}to{transform:translateX(var(--heart-sway,10px)) rotate(9deg)}}.next-shot{z-index:3;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#141020a8;border-radius:999px;padding:4px 12px;font-size:13px;position:absolute;top:48px;right:10px}.next-shot.making{background:var(--accent);animation:.9s ease-in-out infinite next-shot-blink}@keyframes next-shot-blink{50%{opacity:.35}}.sound-gate-alt{color:#fff;background:#ffffff24;border-radius:999px;padding:8px 18px}.tap-bubble{color:#2a1a22;z-index:3;pointer-events:none;background:#ffffffeb;border-radius:999px;padding:6px 14px;font-size:15px;animation:3.2s both note;position:absolute;top:14%;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.heart{animation:none}}@media (width<=860px){input,textarea,select{font-size:16px}}.clip{z-index:4;opacity:0;pointer-events:none;background:#000;position:absolute;inset:0;overflow:hidden}.clip-video{object-fit:cover;width:100%;height:100%;display:block}.clip-in{opacity:1;animation:.6s cubic-bezier(.2,.7,.2,1) both clip-in}.clip-out{animation:.55s ease-in both clip-out}.clip-flash{z-index:1;background:radial-gradient(circle at 50% 45%,#fff 0%,#fff9 40%,#0000 75%);animation:.5s ease-out forwards clip-flash;position:absolute;inset:0}.clip-title{z-index:2;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000006b;border-radius:999px;padding:3px 10px;font-size:13px;position:absolute;bottom:18%;left:12px}@keyframes clip-in{0%{opacity:0;filter:blur(14px)brightness(1.6);transform:scale(1.18)}to{opacity:1;filter:none;transform:scale(1)}}@keyframes clip-out{0%{opacity:1;filter:none;transform:scale(1)}to{opacity:0;filter:blur(10px);transform:scale(1.06)}}@keyframes clip-flash{0%{opacity:.9}to{opacity:0}}.music-chip{text-overflow:ellipsis;white-space:nowrap;max-width:34vw;animation:2.4s ease-in-out infinite music-pulse;overflow:hidden}@keyframes music-pulse{50%{opacity:.7}}.gift-layer{z-index:5;pointer-events:none;position:absolute;inset:0;overflow:hidden}.gift-banners{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex;position:absolute;bottom:22%;left:8px}.gift-banner{color:#fff;background:linear-gradient(90deg,#ff4678d9,#ff8c508c 70%,#0000);border-radius:999px;align-items:center;gap:8px;padding:3px 12px 3px 3px;animation:.35s cubic-bezier(.2,.8,.3,1.2) both gift-banner-in,.5s ease-in 4.2s forwards gift-banner-out;display:flex}.gift-banner.tier-2{background:linear-gradient(90deg,#9650ffe0,#508cff8c 70%,#0000)}.gift-banner.tier-3{background:linear-gradient(90deg,#ffaa00eb,#ff5a3c99 70%,#0000)}.gift-avatar{color:#d0306a;background:#ffffffeb;border-radius:50%;place-items:center;width:28px;height:28px;font-size:14px;font-weight:700;display:grid}.gift-who{flex-direction:column;max-width:32vw;line-height:1.15;display:flex}.gift-who b{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.gift-who small{opacity:.9;font-size:11px}.gift-emoji{font-size:26px;line-height:1}.gift-combo{color:#ffe36e;text-shadow:0 2px #c8327a;font-size:22px;font-style:italic;font-weight:800;animation:.3s cubic-bezier(.2,.8,.3,1.6) both gift-combo}.gift-float{font-size:34px;animation:3.6s ease-out forwards gift-float;position:absolute;bottom:18%}.gift-pop{filter:drop-shadow(0 6px 18px #00000059);font-size:96px;animation:2.6s cubic-bezier(.2,.8,.3,1) forwards gift-pop;position:absolute;top:42%;left:50%;translate:-50% -50%}.gift-show{position:absolute;inset:0}.gift-show-glow{background:radial-gradient(circle at 50% 80%,#ffbe3c73,#0000 60%);animation:3s ease-out forwards gift-glow;position:absolute;inset:0}.gift-rocket{filter:drop-shadow(0 20px 22px #ff7800b3);font-size:110px;animation:3s cubic-bezier(.5,0,.6,1) forwards gift-rocket;position:absolute;bottom:-80px;left:50%;translate:-50%}.gift-spark{color:#ffd84a;font-size:22px;animation:1.6s ease-out both gift-spark;position:absolute;bottom:10%}@keyframes gift-banner-in{0%{opacity:0;transform:translate(-110%)}to{opacity:1;transform:none}}@keyframes gift-banner-out{to{opacity:0;transform:translateY(-14px)}}@keyframes gift-combo{0%{opacity:0;scale:2.2}to{opacity:1;scale:1}}@keyframes gift-float{0%{opacity:0;transform:translateY(0)scale(.4)}12%{opacity:1;transform:translateY(-20px)scale(1.15)}to{transform:translate(var(--gift-sway,12px), -320px) scale(.9);opacity:0}}@keyframes gift-pop{0%{opacity:0;rotate:-20deg;scale:.2}18%{opacity:1;rotate:6deg;scale:1.25}30%{rotate:0deg;scale:1}75%{opacity:1;scale:1}to{opacity:0;translate:-50% -140%;scale:.6}}@keyframes gift-rocket{0%{transform:translateY(0)rotate(-45deg)}30%{transform:translateY(-38vh)rotate(-45deg)scale(1.05)}45%{transform:translateY(-40vh)rotate(-45deg)scale(1.05)}to{transform:translateY(-140vh)rotate(-45deg)scale(.8)}}@keyframes gift-glow{0%,60%{opacity:1}to{opacity:0}}@keyframes gift-spark{0%{opacity:0;transform:translateY(0)scale(.3)}30%{opacity:1}to{opacity:0;transform:translateY(-50vh)scale(1.1)}}@media (prefers-reduced-motion:reduce){.clip-in,.clip-out{animation-name:fade-in}.clip-out{animation-direction:reverse}.clip-flash{display:none}}.composer-row{align-items:flex-end;gap:8px;display:flex}.composer-row .composer{flex:1;min-width:0}.gift-button{color:#fff;background:linear-gradient(135deg,#ff5f8f,#fa5);border-radius:12px;margin-top:8px;padding:8px 10px;font-size:20px;line-height:1}.gift-tray{background:var(--panel,#ffffff0f);border:1px solid var(--line,#ffffff1f);border-radius:14px;margin-top:8px;padding:10px}.gift-tray-head{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;display:flex}.gift-grid{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.gift-pick{color:inherit;background:0 0;border:1px solid #0000;border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;font-size:11px;display:flex}.gift-pick:hover,.gift-pick:focus-visible{border-color:var(--accent);background:var(--accent-soft)}.gift-pick:active .gift-pick-emoji{scale:.85}.gift-pick-emoji{font-size:26px;line-height:1.1;transition:scale .1s}.gift-free{color:var(--muted);margin:6px 0 0;font-size:11px}@media (width<=420px){.gift-grid{grid-template-columns:repeat(3,1fr)}}.stage-top{gap:6px}.stage-top .chip{white-space:nowrap;flex-shrink:0}.stage-top .music-chip{flex-shrink:1;min-width:0;max-width:30%}.stage-top .chip.chip-onair,.stage-top .chip.replaying{text-overflow:ellipsis;flex-shrink:1;min-width:0;overflow:hidden}.subtitle.subtitle-off{visibility:hidden}.chip.cc{letter-spacing:.04em;opacity:.6;font-weight:800;text-decoration:line-through}.chip.cc.cc-on{opacity:1;text-decoration:none}.fancy-pop{z-index:5;pointer-events:none;flex-direction:column;align-items:center;gap:4px;animation:.55s cubic-bezier(.2,.8,.3,1.5) both fancy-in,1.6s ease-in-out .55s infinite alternate fancy-wobble,.3s ease-in 2.1s forwards fancy-out;display:flex;position:absolute;top:50%;left:0;right:0}.fancy-line{transform-origin:50%;position:relative}@keyframes fancy-in{0%{opacity:0;scale:.2}to{opacity:1;scale:1}}@keyframes fancy-wobble{0%{rotate:-1.5deg}to{rotate:1.5deg}}@keyframes fancy-out{to{opacity:0;scale:.85}}.video-job{z-index:3;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#141020a8;border-radius:999px;max-width:70%;padding:4px 12px;font-size:13px;position:absolute;top:82px;right:10px}.video-job.making{background:linear-gradient(90deg,#7c3aed,#db2777);animation:1.2s ease-in-out infinite next-shot-blink}.video-job.ready{background:#16a34a}.still-here{z-index:8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;text-align:center;background:#0a0812b8;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:16px;display:flex;position:absolute;inset:0}.still-here p{margin:0;font-size:18px}.still-here button{background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:10px 22px;font-size:16px}.set-frame{--pip-x:50%;--pip-y:30%;transform-origin:var(--pip-x) var(--pip-y);clip-path:circle(200cqw at var(--pip-x) var(--pip-y));transition:transform .6s cubic-bezier(.33,0,.2,1),clip-path .6s cubic-bezier(.33,0,.2,1);position:absolute;inset:0}.set-frame.pip{z-index:3;transform:translate(calc(85.6% - 12px - var(--pip-x)), calc(52px + 14.4cqw - var(--pip-y))) scale(.36);clip-path:circle(40cqw at var(--pip-x) var(--pip-y))}.pip-ring{z-index:3;aspect-ratio:1;pointer-events:none;background:radial-gradient(circle,#0000 62%,#ffffff1f 100%);border-radius:50%;width:28.8cqw;animation:.6s both pip-ring-in;position:absolute;top:52px;right:12px;box-shadow:0 0 0 3px #fffc,0 10px 30px #00000073}@keyframes pip-ring-in{0%{opacity:0;transform:scale(.8)}}.segment-menu-title{margin:0 0 4px;font-weight:700}.segment-menu li button{flex-direction:column;align-items:stretch;gap:2px;min-width:0}.segment-preview{white-space:normal;overflow-wrap:anywhere;opacity:.7;font-size:12px;line-height:1.35;display:block}.visual{z-index:2;opacity:0;pointer-events:none;background:#111;transition:opacity .5s;position:absolute;inset:0;overflow:hidden}.visual-on{opacity:1}.visual-video{object-fit:cover;width:100%;height:100%;display:block}.visual-blur{filter:blur(28px)brightness(.55);background-position:50%;background-size:cover;position:absolute;inset:-40px}.visual-img{object-fit:contain;width:100%;height:100%;animation:14s ease-out both visual-drift;position:absolute;inset:0}@keyframes visual-drift{0%{transform:scale(1)}to{transform:scale(1.08)}}.visual-title{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000006b;border-radius:999px;max-width:58%;padding:3px 10px;font-size:13px;position:absolute;top:52px;left:12px}.visual-by{color:#ffffffbf;text-shadow:0 1px 2px #000;font-size:10px;position:absolute;bottom:8px;right:10px}@media (prefers-reduced-motion:reduce){.visual-img{animation:none}}.material-table input{width:100%;margin-bottom:8px}.material-scroll{max-height:70vh;overflow:auto}.material-table table{border-collapse:collapse;width:100%;font-size:13px}.material-table th,.material-table td{border-bottom:1px solid var(--line,#7f7f7f33);text-align:left;vertical-align:top;padding:6px 8px}.material-table th{background:var(--card,#fff);position:sticky;top:0}.material-table img{object-fit:cover;border-radius:4px;width:48px;height:64px;display:block}.material-table .meta{opacity:.7;font-size:11px}.material-table .topic{max-width:340px}.segment-menu li button.segment-now{outline:2px solid var(--accent);outline-offset:-2px}.segment-menu .segment-lesson{opacity:.8;margin:10px 0 4px;font-size:.85em;font-weight:700}
