:root{--night:#14112b;--night-2:#221c45;--night-3:#332a63;--gold:#e2c27d;--gold-2:#b08d57;--cream:#fbf6ec;--paper:#fffdf8;--ink:#2b2540;--ink-soft:#6b6380;--rose:#e8b4b8;--danger:#ff6b6b;--ok:#8fd6a8;--mincho:"Shippori Mincho", serif;--gothic:"Zen Kaku Gothic New", system-ui, sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{font-family:var(--gothic);background:var(--night);color:var(--cream);overscroll-behavior:none;font-size:16px;line-height:1.7}button{font:inherit;color:inherit}input,textarea,select{font:inherit;width:100%;color:var(--cream);background:#ffffff0f;border:1px solid #e2c27d66;border-radius:10px;padding:10px 12px;font-size:16px}.screen{flex-direction:column;min-height:100%;display:flex}.center{text-align:center;justify-content:center;align-items:center;padding:24px}.soft{color:#fbf6ecbf;margin:4px 0}.muted{color:#fbf6ec8c;font-size:13px}.wrong{color:var(--danger);font-size:14px}.btn{border:1px solid var(--gold);min-height:48px;color:var(--gold);letter-spacing:.06em;cursor:pointer;background:#e2c27d1f;border-radius:999px;justify-content:center;align-items:center;gap:6px;width:100%;margin-top:16px;padding:10px 20px;font-weight:700;transition:transform .1s,background .2s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.4}.btn-gold{background:linear-gradient(135deg, var(--gold), var(--gold-2));color:var(--night);border-color:#0000}.btn-small{width:auto;min-height:36px;margin-top:8px;padding:6px 14px;font-size:14px}.btn-ghost{color:#fbf6ecb3;background:0 0;border-color:#fbf6ec33}.invitation{min-height:100vh;padding:calc(24px + var(--safe-top)) 16px calc(24px + var(--safe-bottom));background:radial-gradient(circle at 50% 0%, #fff 0%, var(--cream) 60%, #f1e6d0 100%);color:var(--ink);align-items:center;display:flex}.inv-frame{text-align:center;border:1px solid var(--gold-2);outline-offset:-8px;background:var(--paper);outline:1px solid #b08d5759;width:100%;max-width:420px;margin:0 auto;padding:36px 24px 28px;box-shadow:0 20px 60px #785a282e}.inv-ornament{color:var(--gold-2);font-size:22px}.inv-kicker{letter-spacing:.4em;color:var(--gold-2);margin-top:8px;font-size:11px}.inv-names{font-family:var(--mincho);letter-spacing:.08em;margin:12px 0 4px;font-size:30px;font-weight:700}.inv-date{font-family:var(--mincho);letter-spacing:.3em;color:var(--ink-soft)}.inv-countdown{font-family:var(--mincho);color:var(--gold-2);border-top:1px solid #b08d5766;border-bottom:1px solid #b08d5766;margin:24px auto;padding:14px;font-size:22px}.inv-countdown span{display:block}.inv-timer{font-variant-numeric:tabular-nums;letter-spacing:.06em;color:var(--ink);margin-top:6px;font-size:30px}.inv-greeting{font-family:var(--mincho);font-size:17px}.inv-info{color:var(--ink-soft);margin-top:16px;font-size:14px}.inv-info p{margin:4px 0}.invitation .btn{color:var(--night)}.notice-screen{min-height:100vh;padding:calc(16px + var(--safe-top)) 16px;background:linear-gradient(#2a2f45,#10121c)}.notice{color:#111;background:#ffffffeb;border-radius:18px;padding:12px 16px;box-shadow:0 10px 30px #00000059}.notice-app{color:#666;font-size:12px}.notice-title{color:#c0392b;font-weight:700}.notice-body{text-align:center;color:#fffc;margin-top:40px}.world{background:radial-gradient(circle at 20% 10%, #e2c27d1f, transparent 40%), radial-gradient(circle at 80% 30%, #e8b4b81a, transparent 40%), linear-gradient(180deg, var(--night-2), var(--night));background-attachment:fixed;min-height:100vh}.world-header{z-index:5;padding:calc(10px + var(--safe-top)) 60px 10px 16px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#14112bd9;border-bottom:1px solid #e2c27d33;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.world-place{font-family:var(--mincho);color:var(--gold);font-weight:700}.world-clock{text-align:right;line-height:1.2}.world-now{font-family:var(--mincho);font-size:18px;display:block}.world-remain{font-variant-numeric:tabular-nums;color:var(--rose);font-size:11px}.world-main{padding:16px 16px calc(88px + var(--safe-bottom));flex:1}.tabs{z-index:5;padding-bottom:var(--safe-bottom);background:#14112bf2;border-top:1px solid #e2c27d33;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabs button{color:#fbf6ec8c;background:0 0;border:0;padding:12px 0;font-size:13px;position:relative}.tabs button.on{color:var(--gold)}.badge{background:var(--rose);border-radius:50%;width:8px;height:8px;position:absolute;top:8px;right:calc(50% - 26px)}.track-switch{gap:8px;margin-bottom:12px;display:flex}.track-switch button{background:0 0;border:1px solid #e2c27d4d;border-radius:10px;flex:1;padding:8px;font-size:13px}.track-switch button.on{color:var(--gold);background:#e2c27d26}.card{background:#ffffff0d;border:1px solid #e2c27d33;border-radius:18px;padding:20px 18px}.step-title{font-family:var(--mincho);color:var(--gold);margin:0 0 12px;font-size:20px}.step-image{border-radius:12px;width:100%;margin:8px 0}.line{border-left:2px solid var(--rose);padding-left:12px}.speaker{color:var(--rose);font-weight:700}.idle{text-align:center;color:#fbf6ec80;padding:60px 16px}.who{flex-wrap:wrap;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.who li{color:#fbf6ec80;border:1px solid #fbf6ec33;border-radius:999px;padding:2px 10px;font-size:13px}.who li.done{border-color:var(--ok);color:var(--ok)}.waiting{text-align:center;color:#fbf6ecb3;margin-top:16px}.answer{gap:8px;margin-top:16px;display:flex}.answer .btn{flex-shrink:0;width:auto;margin:0}.dots{justify-content:center;gap:6px;margin-top:16px;display:flex}.dots span{background:var(--gold);border-radius:50%;width:6px;height:6px;animation:1.2s infinite dot}.dots span:nth-child(2){animation-delay:.2s}.dots span:nth-child(3){animation-delay:.4s}@keyframes dot{0%,to{opacity:.2}50%{opacity:1}}.shake{animation:.5s shake}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.chapter-banner{z-index:20;text-align:center;background:#0a0818eb;flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.chapter-title{font-family:var(--mincho);color:var(--gold);font-size:26px}.chapter-sub{color:var(--rose);margin-top:12px}.paused,.offline{z-index:30;border-radius:999px;padding:6px 16px;font-size:13px;position:fixed;left:50%;transform:translate(-50%)}.paused{top:calc(60px + var(--safe-top));background:var(--gold);color:var(--night)}.offline{bottom:calc(70px + var(--safe-bottom));background:var(--danger);color:#fff}.list{flex-direction:column;gap:10px;display:flex}.item{text-align:left;background:#ffffff0a;border:1px solid #e2c27d40;border-radius:14px;padding:14px 16px}.item.evidence{border-left:3px solid var(--gold)}.item.foreshadow{border-left:3px solid #fbf6ec4d}.item-title{font-weight:700}.item-from{color:var(--rose);font-size:12px}.sheet{z-index:40;background:#0009;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-body{width:100%;max-height:85vh;padding:24px 20px calc(24px + var(--safe-bottom));background:var(--night-2);border-radius:20px 20px 0 0;overflow:auto}.sheet-body h3{font-family:var(--mincho);color:var(--gold);margin-top:0}.share-to{flex-wrap:wrap;gap:8px;display:flex}.scene-card{background:var(--paper);color:var(--ink);border-radius:14px;margin-top:12px;overflow:hidden}.scene-unconfirmed{color:#c0392b;font-weight:700}.scene-photo{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.scene-photo.empty{color:#999;letter-spacing:.3em;background:repeating-linear-gradient(45deg,#ddd 0 10px,#e8e8e8 10px 20px);justify-content:center;align-items:center;font-family:monospace;display:flex}.scene-meta{padding:12px 14px}.scene-title{font-family:var(--mincho);font-size:18px;font-weight:700}.scene-meta dl{grid-template-columns:auto 1fr;gap:2px 12px;margin:8px 0;font-size:13px;display:grid}.scene-meta dt{color:var(--ink-soft)}.scene-meta dd{margin:0}.scene-status{background:#eee;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-block}.status-confirmed .scene-status{color:#2c7a4b;background:#d8f0e0}.status-missing .scene-status{color:#b23030;background:#fde2e2}.status-scheduled .scene-status{color:#8a6d1c;background:#fff1cc}.message{background:#ffffff0f;border-radius:14px;padding:12px 14px}.message-from{color:var(--gold);font-size:12px}.hints{margin:12px 0}.finale-rules{border-left:3px solid var(--gold);background:#e2c27d14;margin:12px 0;padding:10px 12px;font-size:14px}.finale-rules-head{color:var(--gold);margin-bottom:4px;font-size:12px}.finale-rules p{margin:4px 0}.finale-candidates{flex-direction:column;gap:12px;margin:12px 0;display:flex}.finale-candidate{margin-top:0;padding:10px 14px 12px}.finale-candidate.chosen{box-shadow:0 0 0 3px var(--gold-2)}.finale-candidate.off{opacity:.4}.finale-candidate.off dd{text-decoration:line-through}.finale-candidate-head{font-family:var(--mincho);color:var(--gold-2);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:20px;display:flex}.finale-candidate-head button{color:var(--ink);background:#fff;border:1px solid #ccc;border-radius:999px;padding:4px 10px;font-size:12px}.finale-candidate dl{grid-template-columns:auto 1fr;gap:2px 12px;margin:0 0 8px;font-size:13px;display:grid}.finale-candidate dt{color:var(--ink-soft)}.finale-candidate dd{margin:0;font-weight:700}.finale-candidate .btn{width:100%;margin:0}.chase-alert{border:1px solid var(--danger);color:var(--danger);background:#ff6b6b26;border-radius:10px;margin-bottom:10px;padding:8px 12px;font-size:14px;font-weight:700;animation:1s infinite blink}@keyframes blink{50%{opacity:.6}}.chase-arena{touch-action:none;background:radial-gradient(circle at 50% 50%, #0a081826, #0a0818b3 85%), url(/cinema/arena.jpg) center / cover, var(--night-3);border:1px solid #e2c27d4d;border-radius:18px;width:100%;position:relative;overflow:hidden}.chase-overlay{text-align:center;background:#0a081899;flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.chase-overlay p{margin:4px 0}.chase-count{font-family:var(--mincho);color:var(--gold);font-size:64px}.chase-me,.chase-otaku{border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;margin:-18px 0 0 -18px;font-size:14px;font-weight:700;display:flex;position:absolute}.chase-me{background:var(--gold);color:var(--night);box-shadow:0 0 16px var(--gold)}.chase-otaku{border-radius:0;width:40px;height:40px;margin:-20px 0 0 -20px;overflow:visible}.chase-otaku-body{background:radial-gradient(circle at 50% 40%,#3a0d14,#0b0306 70%);border-radius:50%;animation:.32s ease-in-out infinite alternate otaku-bob;position:absolute;inset:4px;box-shadow:0 0 0 2px #ff5050d9,0 0 18px 4px #ff2828a6}.chase-otaku-body:before,.chase-otaku-body:after{content:"";background:#0b0306;border-radius:50%;width:15px;height:15px;position:absolute;top:-9px;box-shadow:0 0 0 2px #ff5050d9}.chase-otaku-body:before{left:-5px}.chase-otaku-body:after{right:-5px}@keyframes otaku-bob{to{transform:translateY(-3px)scale(1.04)}}.chase-otaku-name{white-space:nowrap;color:#fff;background:#c0392be6;border-radius:6px;padding:0 6px;font-size:11px;position:absolute;top:38px;left:50%;transform:translate(-50%)}.chase{position:relative}.chase-danger{z-index:30;pointer-events:none;opacity:var(--danger-level,0);position:fixed;inset:0}.chase-danger:after{content:"";animation:.6s ease-in-out infinite cin-pulse;position:absolute;inset:0;box-shadow:inset 0 0 80px 24px #dc141ed9}.chase-ready-lead{font-family:var(--mincho);color:#ffb3b3;font-size:17px}.chase-shout{max-width:60%;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;background:#fff;border-radius:10px;padding:4px 10px;font-size:12px;position:absolute;overflow:hidden;transform:translate(-50%,-140%)}.chase-timer{font-family:var(--mincho);color:var(--gold);font-size:20px;position:absolute;top:8px;right:12px}.chase-result{font-family:var(--mincho);color:var(--gold);margin:0;font-size:22px}.reel-host{min-height:100vh;position:relative}.prologue-glitch{z-index:50;background:var(--night);color:var(--cream);text-align:center;justify-content:center;align-items:center;padding:0 32px;transition:background .8s;display:flex;position:fixed;inset:0}.prologue-glitch-inner{width:100%;max-width:300px;transition:opacity .7s}.prologue-glitch p{margin:0 0 14px;font-size:15px}.prologue-glitch-bar{background:#fbf6ec2e;border-radius:2px;height:4px;overflow:hidden}.prologue-glitch-bar i{background:var(--gold);height:100%;display:block}.prologue-glitch.error .prologue-glitch-inner{color:var(--danger);animation:.18s steps(2,end) 4 reel-break}.prologue-glitch.dark{background:#000}.prologue-glitch.dark .prologue-glitch-inner{color:var(--danger);opacity:0}.reel{z-index:50;color:#fff;background:#000;position:fixed;inset:0;overflow:hidden}.reel-wait{font-family:var(--mincho);color:#fff9;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.reel-item{position:absolute;inset:0}.reel-title,.reel-text{font-family:var(--mincho);color:var(--gold);text-align:center;flex-direction:column;justify-content:center;align-items:center;font-size:36px;line-height:1.6;display:flex;position:absolute;inset:0}.reel-text{color:var(--cream);font-size:26px}.reel-credit-section .reel-credit-heading{font-family:var(--mincho);letter-spacing:.2em;color:var(--gold);font-size:22px}.reel-recap{z-index:0;font-family:var(--mincho);color:var(--cream);text-align:center;flex-direction:column;justify-content:center;gap:2px;padding:0 16px;line-height:1.8;display:flex;position:absolute;inset:0;overflow:hidden}.reel-recap-bg{z-index:-1;object-fit:cover;filter:brightness(.32);width:100%;height:100%;position:absolute;inset:0}.reel-recap-note{color:#fbf6ecbf;font-size:14px;position:absolute;bottom:8%;left:0;right:0}.reel-recap-head{letter-spacing:.2em;color:var(--gold);margin-bottom:6px;font-size:14px}.reel-recap p{opacity:0;margin:0;font-size:18px;animation:.9s ease-out forwards reel-recap-in}.reel-recap-answer{white-space:pre-line;word-break:keep-all;color:var(--gold);text-shadow:0 0 18px #e2c27d99;opacity:0;margin-top:14px;font-size:20px;font-weight:700;line-height:1.5;animation:.9s ease-out forwards reel-recap-in}@keyframes reel-recap-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.reel-scene{position:absolute;inset:0}.reel-photo{position:absolute;inset:0;overflow:hidden}.reel-photo img{object-fit:cover;width:100%;height:100%;transition:transform .2s linear}.reel-photo .reel-photo-bg{object-fit:cover;filter:blur(24px)brightness(.55);width:calc(100% + 80px);height:calc(100% + 80px);position:absolute;inset:-40px}.reel-photo .reel-photo-fit{object-fit:contain;position:absolute;inset:0}.reel-photo-empty{width:100%;height:100%;font-family:var(--mincho);color:#ffffff80;background:radial-gradient(circle,#2a2440,#000);justify-content:center;align-items:center;font-size:24px;display:flex}.reel-caption{padding:60px 20px calc(28px + var(--safe-bottom));background:linear-gradient(#0000,#000c);position:absolute;bottom:0;left:0;right:0}.reel-caption-title{font-family:var(--mincho);font-size:28px}.reel-caption-meta{color:#ffffffb3;font-size:15px}.reel-credits-wrap{position:absolute;inset:0;overflow:hidden}.reel-credits{text-align:center;position:absolute;left:0;right:0}.reel-credit{margin-bottom:40px}.reel-credit-heading{white-space:pre-line;letter-spacing:.3em;color:var(--gold);font-size:13px}.reel-credit-name{font-family:var(--mincho);font-size:22px}.reel-breaking .reel-item{animation:.18s steps(2,end) infinite reel-break}@keyframes reel-break{0%{filter:none;clip-path:inset(0);transform:translate(0)}33%{filter:hue-rotate(80deg)saturate(2)contrast(1.4);clip-path:inset(12% 0 40%);transform:translate(-6px,2px)skew(4deg)}66%{filter:hue-rotate(-60deg)brightness(1.6);clip-path:inset(45% 0 8%);transform:translate(5px,-3px)}to{filter:none;clip-path:inset(0);transform:translate(0)}}.reel-noise{background:#050505;position:absolute;inset:0}.reel-static{width:100%;height:100%;image-rendering:pixelated;opacity:.18;transition:opacity .6s;position:absolute;inset:0}.reel-static.strong{opacity:.85;animation:.12s steps(2,end) infinite static-roll}@keyframes static-roll{50%{transform:translateY(3%)scaleY(1.04)}}.signal-lost{color:#ffffffd9;flex-direction:column;justify-content:center;align-items:flex-start;gap:10px;padding:0 28px;font-family:ui-monospace,Menlo,monospace;display:flex;position:absolute;inset:0}.signal-lost-title{letter-spacing:.4em;text-shadow:2px 0 #ff0050b3,-2px 0 #00dcffb3;align-self:center;margin-bottom:18px;font-size:30px;animation:2.4s infinite signal-flicker}@keyframes signal-flicker{0%,to{opacity:1}8%{opacity:.3;transform:translate(3px)}10%{opacity:1;transform:none}52%{opacity:.6}}.signal-lost-line{color:#b8ffcf;font-size:17px;line-height:1.6}.signal-caret{animation:.8s infinite signal-flicker}.reel-continue{left:16px;right:16px;bottom:calc(24px + var(--safe-bottom));z-index:60;background:var(--gold);width:auto;color:var(--night);border:0;padding:16px;font-size:17px;font-weight:700;animation:1.8s ease-in-out infinite continue-glow;position:fixed}@keyframes continue-glow{0%,to{box-shadow:0 0 #e2c27d99}50%{box-shadow:0 0 24px 6px #e2c27d8c}}.reel-host .reel-framed .vp{bottom:calc(96px + var(--safe-bottom))}.fx{z-index:100;pointer-events:none;position:fixed;inset:0}.fx-flash{background:#fff;animation:.7s ease-out forwards flash}@keyframes flash{0%{opacity:1}to{opacity:0}}.fx-glitch{mix-blend-mode:screen;background:repeating-linear-gradient(0deg,#ff005040 0 3px,#0000 3px 9px),repeating-linear-gradient(90deg,#00ffe626 0 2px,#0000 2px 13px);animation:.18s steps(2,end) infinite glitch}@keyframes glitch{0%{transform:translate(0)}25%{transform:translate(-4px,2px)}50%{transform:translate(3px,-3px)}75%{transform:translate(-2px,-1px)}}body.fx-shake #root{animation:.5s 2 shake}.toasts{top:calc(64px + var(--safe-top));z-index:200;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;left:16px;right:16px}.toast{color:var(--ink);background:#fffdf8f5;border-radius:12px;padding:10px 14px;font-size:14px;box-shadow:0 8px 24px #0000004d}.gm{background:#0f0d1f;min-height:100vh;font-size:14px}.jp-phrase{word-break:keep-all;overflow-wrap:anywhere}.gm-header{z-index:5;padding:calc(10px + var(--safe-top)) 16px 10px;background:#1a1633;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.gm-header .btn{margin:0}.gm-session{color:var(--rose);font-size:12px}.gm-chapter{color:var(--gold);font-weight:700}.gm-trouble summary{color:var(--gold);cursor:pointer;font-weight:700}.gm-trouble h4{color:#fbf6ecb3;margin:18px 0 6px;font-size:13px}.gm-back{margin-top:8px}.gm-trouble .gm-row{flex-wrap:wrap}.gm-main{padding:12px 12px calc(40px + var(--safe-bottom));flex-direction:column;gap:12px;display:flex}.gm-card{background:#ffffff0d;border:1px solid #ffffff14;border-radius:14px;padding:14px}.gm-card.done{opacity:.55}.gm-card h3{color:var(--gold);margin:0 0 8px;font-size:15px}.gm-card select,.gm-card textarea,.gm-card input{margin-top:6px}.gm-online{flex-wrap:wrap;gap:6px;display:flex}.gm-online span{border-radius:999px;padding:0 8px;font-size:12px}.gm-online .on{color:var(--ok);background:#8fd6a833}.gm-online .off{color:var(--danger);background:#ff6b6b26}.gm-step{margin-top:8px}.gm-step-meta{color:#fbf6ec99;font-size:12px}.gm-row{flex-wrap:wrap;gap:8px;display:flex}.gm-log{max-height:260px;margin:0;padding:0;font-size:12px;list-style:none;overflow:auto}.gm-log li{border-bottom:1px solid #ffffff0d;padding:3px 0}.gm-log span{color:#fbf6ec66;margin-right:8px}.gm-player{border-bottom:1px solid #ffffff0d;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;display:flex}.gm-player select{width:auto;margin:0}.dot{background:var(--danger);border-radius:50%;width:8px;height:8px}.dot.on{background:var(--ok)}.gm-upload{border-bottom:1px solid #ffffff0d;padding:8px 0}.gm-upload img{border-radius:8px;max-width:160px;margin-top:6px;display:block}.gm-upload audio{width:100%;margin-top:6px}.story-admin{min-height:100vh;padding:calc(20px + var(--safe-top)) 16px;color:#7cfc9a;background:#000;font-family:ui-monospace,Menlo,monospace;font-size:13px}.gm-note{color:#fbf6ec99;margin:0 0 8px;font-size:11px;line-height:1.6}html.gm-previewing{--preview-h:36px;--safe-top:calc(env(safe-area-inset-top,0px) + var(--preview-h))}.preview-bar{z-index:50;padding:env(safe-area-inset-top,0px) 8px 0;height:calc(env(safe-area-inset-top,0px) + var(--preview-h,36px));font-family:var(--gothic);background:#0b0a18;border-bottom:1px solid #e2c27d59;align-items:center;gap:4px;display:flex;position:fixed;top:0;left:0;right:0;overflow-x:auto}.preview-bar button{color:#fbf6ecbf;background:0 0;border:1px solid #fbf6ec26;border-radius:999px;flex:none;padding:5px 9px;font-size:12px;position:relative}.preview-bar button.on{border-color:var(--gold);background:var(--gold);color:var(--night);font-weight:700}.preview-bar .preview-exit{border-color:var(--rose);color:var(--rose)}.preview-real{background:var(--ok);border-radius:50%;width:6px;height:6px;position:absolute;top:1px;right:1px}.preview-warn{top:calc(env(safe-area-inset-top,0px) + var(--preview-h,36px));text-align:center;color:#fff;pointer-events:none;background:#ff6b6bd9;padding:3px 8px;font-size:11px;position:fixed;left:0;right:0}.line-previews{top:calc(8px + var(--safe-top));z-index:60;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;left:8px;right:8px}.line-preview{font-family:var(--gothic);color:#111;pointer-events:auto;background:#8cabd8;border-radius:14px;padding:10px;font-size:13px;box-shadow:0 6px 24px #00000059}.line-preview-head{color:#0009;margin-bottom:8px;font-size:11px}.line-preview-head b{color:#06c755}.line-bubble{white-space:pre-wrap;background:#fff;border-radius:16px;max-width:85%;margin-bottom:6px;padding:8px 12px}.line-bubble-me{background:#8de055;margin-left:auto}.line-card{background:var(--cream);text-align:center;border-radius:14px;flex-direction:column;gap:4px;max-width:85%;padding:14px;display:flex}.line-card small{color:var(--gold-2);font-size:10px;font-weight:700}.line-card strong{color:var(--night);font-size:17px}.line-card p{white-space:pre-wrap;color:#55505f;margin:6px 0;font-size:11px}.line-card-btn{background:var(--gold-2);color:#fff;border-radius:6px;padding:7px;font-size:12px}html.test-board-page,html.test-board-page body{background:#2a2a33;height:auto}.test-board{font-family:var(--gothic);color:#eee;padding:12px 16px 24px}.test-board-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;font-size:13px;display:flex}.test-board-head span{color:#aaa}.test-board-head select,.test-board-head button{font:inherit;margin-left:4px;padding:4px 8px}.test-board-grid{flex-wrap:wrap;gap:16px;display:flex}.test-board-cell iframe{background:#000;border:0;border-radius:24px}.test-board-label{justify-content:space-between;gap:8px;margin-bottom:4px;font-size:12px;display:flex}.test-board-label a{color:#9bf}.step-image.zoomable{cursor:zoom-in}.image-viewer{z-index:70;background:#0a0818f5;flex-direction:column;display:flex;position:fixed;inset:0}.image-viewer-bar{padding:calc(8px + var(--safe-top)) 12px 8px;align-items:center;gap:6px;display:flex}.image-viewer-bar button{color:var(--cream);background:0 0;border:1px solid #fbf6ec40;border-radius:999px;padding:6px 12px;font-size:13px}.image-viewer-bar button.on{border-color:var(--gold);background:var(--gold);color:var(--night)}.image-viewer-bar .image-viewer-close{margin-left:auto}.image-viewer-scroll{touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;padding:0 0 calc(16px + var(--safe-bottom));flex:1;overflow:auto}.image-viewer-scroll img{max-width:none;display:block}.lineup{min-height:100vh;padding:calc(28px + var(--safe-top)) 20px calc(28px + var(--safe-bottom));background:radial-gradient(circle at 50% 30%, #2a2350, var(--night) 70%);text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.lineup-order{gap:8px;display:flex}.lineup-order span{border:1px solid var(--gold);border-radius:50%;width:10px;height:10px}.lineup-order span.on{background:var(--gold)}.lineup-head{color:#fbf6ecb3;font-size:13px}.lineup-card{border:1px solid var(--gold);background:var(--cream);width:100%;min-height:46vh;color:var(--night);border-radius:18px;flex-direction:column;justify-content:center;gap:18px;padding:28px 16px;display:flex;box-shadow:0 0 40px #e2c27d40}.lineup-label{letter-spacing:.2em;color:var(--gold-2);font-size:14px}.lineup-value{font-family:var(--mincho);word-break:keep-all;overflow-wrap:anywhere;font-size:30px;font-weight:700;line-height:1.4}.lineup-note{color:#fbf6ecbf;margin:0;font-size:13px}.lineup .btn{width:100%;margin-top:auto}.clear{min-height:100vh;padding:calc(32px + var(--safe-top)) 24px calc(32px + var(--safe-bottom));background:radial-gradient(circle at 50% 35%, #3a2f70, var(--night) 70%);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:relative;overflow:hidden}.clear-sparkles span{background:var(--gold);width:6px;height:6px;box-shadow:0 0 12px var(--gold);border-radius:50%;position:absolute}.clear-message{color:#fbf6eccc;margin:8px 0;font-size:13px;line-height:1.9}.clear .btn{width:100%;max-width:340px}.share-card-wrap{width:100%;max-width:300px;position:relative}.share-card{aspect-ratio:9/16;-webkit-touch-callout:default;border-radius:12px;width:100%;display:block;box-shadow:0 8px 30px #00000080}.share-card-loading{color:#fbf6ecb3;background:#221c45;justify-content:center;align-items:center;display:flex}.share-note{color:#fbf6eca6;text-align:center;margin:0;font-size:12px}.share-actions{flex-direction:column;gap:10px;width:100%;max-width:400px;display:flex;position:relative}.photo-shoot-frame{aspect-ratio:4/3;color:#fbf6ecb3;text-align:center;border:2px dashed #e2c27d80;border-radius:14px;justify-content:center;align-items:center;margin:12px 0;font-size:14px;display:flex}.photo-shoot-frame .big{font-size:44px}.photo-shoot-preview{border-radius:14px;width:100%;margin:12px 0;display:block}.photo-shoot-actions{flex-direction:column;gap:10px;display:flex}.photo-shoot .btn{text-align:center;width:100%;display:block}.btn.disabled{opacity:.6;pointer-events:none}.magic-overlay{z-index:40;pointer-events:none;position:fixed;inset:0;overflow:hidden}.magic-glow{background:radial-gradient(circle,#fff4d6d9 0%,#e2c27d59 18%,#14112b00 45%);border-radius:50%;width:160vmax;height:160vmax;margin:-80vmax 0 0 -80vmax;position:absolute;top:45%;left:50%}.magic-spark{color:#ffe9b0;text-shadow:0 0 8px #ffd77a,0 0 18px #e2c27dcc;position:absolute;top:45%;left:50%}.magic-sweep{filter:blur(6px);background:linear-gradient(100deg,#0000,#fff6dc8c,#0000);width:40%;position:absolute;top:-20%;bottom:-20%}.sound-toggle{top:calc(8px + var(--safe-top));z-index:58;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:38px;height:38px;color:var(--gold);background:#14112bb3;border:1px solid #e2c27d73;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:fixed;right:10px}.vp{inset:calc(56px + var(--safe-top)) 12px calc(28px + var(--safe-bottom));background:#000;border:1px solid #ffffff2e;border-radius:16px;flex-direction:column;display:flex;position:absolute;overflow:hidden;box-shadow:0 10px 40px #0009}.vp-top{color:#ffffffbf;background:#0c0c0f;align-items:center;gap:8px;padding:10px 14px;font-size:13px;display:flex}.vp-dot{background:#ff4d5e;border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #ff4d5e}.vp-dot.off{box-shadow:none;background:#555}.vp-screen{flex:1;position:relative;overflow:hidden}.vp-screen .reel-caption{padding-bottom:18px}.vp-controls{font-variant-numeric:tabular-nums;color:#fffc;background:#0c0c0f;align-items:center;gap:10px;padding:12px 14px;font-size:12px;display:flex}.vp-play{text-align:center;width:18px}.vp-bar{background:#fff3;border-radius:2px;flex:1;height:4px;position:relative}.vp-bar-fill{background:var(--gold);border-radius:2px;height:100%}.vp-bar-knob{background:#fff;border-radius:50%;width:12px;height:12px;margin:-6px 0 0 -6px;position:absolute;top:50%}.reel-mosaic{width:100%;height:100%;image-rendering:pixelated;filter:saturate(.9)contrast(.95)}.story-scene{min-height:100vh;padding:calc(64px + var(--safe-top)) 24px calc(24px + var(--safe-bottom));color:var(--cream);background:radial-gradient(at 50% 20%,#3a2f70 0%,#1d1840 45%,#0b0a18 100%);flex-direction:column;display:flex;position:relative;overflow:hidden}.story-sky span{background:var(--gold);width:4px;height:4px;box-shadow:0 0 10px var(--gold);pointer-events:none;border-radius:50%;position:absolute}.story-inner{flex-direction:column;flex:1;justify-content:center;gap:16px;display:flex;position:relative}.story-title{font-family:var(--mincho);text-align:center;color:var(--gold);margin:0 0 10px;font-size:22px}.story-line{font-family:var(--mincho);margin:0;font-size:17px;line-height:1.9}.story-voice{border-left:2px solid var(--rose);padding-left:12px}.story-speaker{color:var(--rose);margin-right:2px;font-weight:700}.story-actions{min-height:64px;margin-top:20px;position:relative}.story-actions .btn{width:100%}.story-skip{text-align:center;color:#fbf6ec73;margin:0;font-size:12px}.scene-tracks{top:calc(8px + var(--safe-top));z-index:45;gap:6px;display:flex;position:fixed;left:12px;right:60px;overflow-x:auto}.scene-tracks button{color:var(--cream);background:#14112bb3;border:1px solid #e2c27d66;border-radius:999px;flex:none;padding:6px 12px;font-size:12px}.scene-tracks button.on{background:var(--gold);color:var(--night)}.puzzle-team{color:#fbf6eccc;background:#e2c27d1f;border-radius:10px;margin:12px 0 0;padding:10px 12px;font-size:12px;line-height:1.7}.story-chapter{font-family:var(--mincho);text-align:center;color:#fbf6ecd9;border-bottom:1px solid #e2c27d4d;margin-bottom:18px;padding-bottom:12px;font-size:15px}.story-chapter small{font-family:var(--gothic);color:var(--rose);margin-top:4px;font-size:12px;display:block}.tap-grid{color:var(--ink);background:#fffdf8;border:1.5px solid #c0392b;border-radius:14px;margin:12px 0;padding:12px 8px}.tap-grid-heading{text-align:center;color:#c0392b;font-size:15px;font-weight:700}.tap-grid-note{text-align:center;color:var(--ink-soft);margin:4px 0 10px;font-size:11px}.tap-grid-cells{gap:3px;display:grid}.tap-grid-cells button{aspect-ratio:1;min-width:0;color:var(--ink);background:#fbf3f3;border:1px solid #e8d6d6;border-radius:6px;padding:0;font-size:clamp(13px,4.6vw,20px);transition:background .15s,color .15s}.tap-grid-cells button.off{color:#ffffff40;background:#14112bbf;border-color:#14112bbf}.tap-grid-reset{color:var(--ink-soft);margin:10px auto 0;display:block}.cinema{color:var(--cream);-webkit-user-select:none;user-select:none;background:#000;position:fixed;inset:0;overflow:hidden}.cin-shot{position:absolute;inset:0;overflow:hidden}.cin-img{object-fit:cover;will-change:transform;width:100%;height:100%;position:absolute;inset:0}.cin-memory-bg{filter:blur(18px)brightness(.5)saturate(.8);transform:scale(1.2)}.cin-memory{object-fit:contain;filter:sepia(.25)saturate(1.05);border:8px solid #fbf6ec;border-bottom-width:26px;width:86%;max-height:48%;position:absolute;top:22%;left:7%;box-shadow:0 20px 50px #0009,0 0 60px #e2c27d59}.cin-chapter{font-family:var(--mincho);text-align:center;color:var(--gold);background:radial-gradient(#241d4d 0%,#000 75%);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;font-size:24px;display:flex;position:absolute;inset:0}.cin-chapter small{font-family:var(--gothic);letter-spacing:.1em;color:var(--rose);font-size:13px}.cin-vignette{pointer-events:none;background:linear-gradient(#000000bf 0,#0000 18%),linear-gradient(0deg,#000000eb 0,#0000008c 30%,#0000 55%),radial-gradient(at 50% 45%,#0000 55%,#0000008c 100%);position:absolute;inset:0}.cin-grain{pointer-events:none;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:.6s steps(4,end) infinite cin-grain;position:absolute;inset:-50%}@keyframes cin-grain{0%{transform:translate(0)}25%{transform:translate(-5%,3%)}50%{transform:translate(4%,-4%)}75%{transform:translate(-3%,-2%)}to{transform:translate(2%,5%)}}.cin-danger{pointer-events:none;animation:.85s ease-in-out infinite cin-pulse;position:absolute;inset:0;box-shadow:inset 0 0 90px 30px #dc1e28bf}@keyframes cin-pulse{0%,to{opacity:.35}30%{opacity:1}}.cin-chasing .cin-shot{animation:.45s linear infinite cin-shake}@keyframes cin-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px,2px)}50%{transform:translate(2px,-2px)}75%{transform:translate(-1px,-3px)}}.cin-glitch{animation:.9s steps(2,end) 2 cin-glitch}@keyframes cin-glitch{0%{filter:none;transform:none}20%{filter:hue-rotate(90deg)saturate(3);transform:translate(6px)skew(4deg)}40%{filter:none;clip-path:inset(10% 0 40%);transform:translate(-8px,2px)}60%{filter:invert(.2);clip-path:none;transform:none}80%{filter:hue-rotate(-60deg);transform:translate(3px,-2px)}to{filter:none;transform:none}}.cin-flash{pointer-events:none;background:#fff;position:absolute;inset:0}.cin-alarm{top:calc(64px + var(--safe-top));text-align:center;color:#ffdede;background:#3c0000b3;border:1.5px solid #ff4d4d;border-radius:10px;padding:10px 12px;font-size:15px;font-weight:700;animation:.7s ease-in-out infinite cin-pulse;position:absolute;left:16px;right:16px;box-shadow:0 0 24px #ff323299}.cin-big{white-space:pre-line;font-family:var(--mincho);letter-spacing:.08em;text-align:center;color:#fff6d8;text-shadow:0 0 18px var(--gold), 0 0 40px #e2c27dcc;padding:0 16px;font-size:clamp(30px,11vw,48px);font-weight:700;position:absolute;top:34%;left:0;right:0}.cin-shout{color:#1a1020;max-width:78%;font-family:var(--gothic);clip-path:polygon(0% 18%,9% 0%,22% 12%,36% 0%,50% 10%,64% 0%,78% 12%,91% 0%,100% 18%,94% 50%,100% 82%,90% 100%,76% 88%,62% 100%,48% 90%,34% 100%,20% 88%,8% 100%,0% 82%,6% 50%);filter:drop-shadow(0 0 12px #ff3c3cb3);background:#fff;padding:16px 22px;font-size:clamp(22px,8vw,34px);font-weight:900;line-height:1.2;position:absolute;top:26%;right:6%}.cin-shout b{color:#c0392b;margin-bottom:2px;font-size:13px;display:block}.cin-top{top:calc(10px + var(--safe-top));position:absolute;left:12px;right:60px}.cin-progress{gap:4px;display:flex}.cin-progress span{background:#ffffff40;border-radius:2px;flex:1;height:3px;position:relative;overflow:hidden}.cin-progress span.done{background:#ffffffd9}.cin-progress i{background:#ffffffd9;position:absolute;inset:0 auto 0 0}.cin-label{font-family:var(--mincho);letter-spacing:.12em;color:#e2c27de6;margin-top:8px;font-size:13px}.cin-label:before{content:"― "}.cin-subs{padding:0 22px calc(20px + var(--safe-bottom));flex-direction:column;gap:10px;display:flex;position:absolute;bottom:0;left:0;right:0}.cin-line{font-family:var(--mincho);text-shadow:0 1px 3px #000,0 0 14px #000000e6;margin:0;font-size:17px;line-height:1.8}.cin-voice{border-left:2px solid var(--rose);padding-left:12px}.cin-speaker{color:var(--rose);margin-right:2px;font-weight:700}.cin-actions{min-height:56px;margin-top:8px}.cin-actions .btn{width:100%}.cin-skip{text-align:center;color:#fbf6ec80;margin:0;padding-top:18px;font-size:12px}.cin-replay{color:#fbf6ec8c;background:0 0;border:0;margin:10px auto 0;font-size:12px;display:block}.pressure{top:calc(56px + var(--safe-top));z-index:50;font-family:var(--mincho);color:#ffe1e1;background:#28040aeb;border:1.5px solid #ff4d4d;border-radius:12px;padding:10px 14px;font-size:15px;position:fixed;left:12px;right:12px;box-shadow:0 0 24px #ff282880,inset 0 0 30px #ff000040}.pressure-steps{font-family:var(--gothic);color:#ff8a8a;margin-bottom:2px;font-size:11px;display:block}.melody-notes{justify-content:center;gap:14px;margin:16px 0 6px;font-size:28px;display:flex}.melody-notes span{color:#fbf6ec2e}.melody-notes span.on{color:var(--gold);text-shadow:0 0 14px var(--gold)}.melody-wrong{text-align:center;color:var(--danger);margin:4px 0}.melody-log{border:1px solid #fbf6ec24;border-radius:10px;margin:12px 0 4px;padding:10px 12px}.melody-log-head{opacity:.7;margin-bottom:6px;font-size:13px}.melody-log ol{margin:0;padding-left:1.6em}.melody-log li{margin:3px 0}.melody-log-mark{width:1.3em;color:var(--gold);display:inline-block}.melody-reset{width:100%;margin-top:8px}.melody-part{text-align:center;background:#e2c27d14;border:1px solid #e2c27d66;border-radius:14px;margin-top:14px;padding:14px}.melody-part small{color:#fbf6ec99}.melody-label{font-family:var(--mincho);color:var(--gold);margin:4px 0 12px;font-size:18px}.melody-part .btn{width:100%}.melody-hint{margin-top:12px}.projector{background:#00000059;border:1px dashed #fbf6ec4d;border-radius:14px;margin-top:14px;padding:14px}.projector-head{color:var(--gold);margin-bottom:6px;font-weight:700}.projector .btn{width:100%;margin-top:8px}.projector-meter{align-items:center;gap:10px;font-size:13px;display:flex}.projector-meter i{background:linear-gradient(90deg, var(--ok), var(--gold));transform-origin:0;border-radius:4px;flex:1;height:8px;transition:transform .2s}.projector-heard{color:var(--ok);margin:8px 0 0}.sync-title{font-family:var(--mincho);color:var(--gold);margin:0 0 8px}.sync-order{gap:4px;margin:14px 0 8px;display:flex}.sync-slot{text-align:center;border:1px solid #fbf6ec40;border-radius:8px;flex:1;min-width:0;padding:10px 2px}.sync-slot span{font-size:20px;font-weight:700;display:block}.sync-slot small{font-size:11px}.sync-slot.me{border-color:var(--gold);color:var(--gold);background:#e2c27d33}.sync-result p{margin:0 0 8px}.sync-last{font-family:var(--mincho);color:#3a2a10;text-align:center;background:#fffaeb;border-radius:8px;margin:12px 0;padding:16px 10px;font-weight:700}.sync-where b{color:var(--gold)}.sync .btn{width:100%;margin-top:8px}.sync-film{z-index:80;background:#000;position:fixed;inset:0}.sync-film canvas{width:100%;height:100%;display:block}.sync-film-pos{top:calc(10px + var(--safe-top));color:#fbf6ec59;font-size:12px;position:absolute;left:12px}.ar-panel{margin-top:14px}.ar-buttons{gap:8px;display:flex}.ar-buttons .btn{flex:1}.ar-note{margin:8px 0 0;font-size:12px}.ar-found{background:#e2c27d1a;border-radius:12px;margin-top:12px;padding:12px}.ar-found-head{color:var(--gold);margin-bottom:6px;font-size:12px}.ar-found-item{border-top:1px solid #fbf6ec1f;padding:6px 0}.ar-found-item small{color:#fbf6ec99}.ar-found-item p{margin:2px 0 0;font-size:14px}.ar-found-item b{color:var(--rose)}.ar-pin{margin-top:12px;font-size:13px}.ar-full{z-index:90;background:#05040cf0;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ar-ticket{background:var(--paper);width:min(340px,100vw - 32px);color:var(--ink);text-align:center;border-radius:18px;padding:20px 16px;box-shadow:0 0 0 6px #e2c27d80}.ar-ticket-kicker{letter-spacing:.3em;color:var(--gold-2);font-size:11px}.ar-ticket-title{font-family:var(--mincho);margin-bottom:8px;font-size:20px}.ar-ticket canvas{max-width:280px;width:100%!important;height:auto!important}.ar-ticket-pin{font-family:var(--mincho);letter-spacing:.3em;font-size:26px}.ar-ticket-label{color:var(--ink-soft);font-size:13px}.ar-ticket .muted{color:var(--ink-soft);font-size:12px}.ar-camera{padding:calc(12px + var(--safe-top)) 0 calc(16px + var(--safe-bottom));justify-content:flex-start}.ar-view{flex:1;width:100%;position:relative;overflow:hidden}.ar-view video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.ar-scanline{background:linear-gradient(90deg, transparent, var(--gold), transparent);height:2px;animation:2.4s ease-in-out infinite ar-scan;position:absolute;left:10%;right:10%}@keyframes ar-scan{0%,to{top:20%}50%{top:80%}}.ar-overlay{width:0;height:0;transition:left .15s linear,top .15s linear;position:absolute}.ar-ring{border:3px solid var(--gold);box-shadow:0 0 24px var(--gold), inset 0 0 24px #e2c27d99;border-radius:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ar-bubble{border:1px solid var(--gold);width:min(300px,86vw);color:var(--cream);background:#14112beb;border-radius:14px;padding:12px 14px 12px 64px;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 0 30px #e2c27d80}.ar-bubble small{color:var(--gold);font-size:11px}.ar-bubble p{margin:2px 0 0;font-size:14px;line-height:1.6}.ar-bubble b{color:var(--rose)}.ar-bubble-own{text-align:center;padding-left:14px}.ar-silhouette{background:#05030a;border-radius:50% 50% 40% 40%;width:38px;height:38px;position:absolute;top:18px;left:12px;box-shadow:0 0 0 2px #e2c27db3}.ar-silhouette:before,.ar-silhouette:after{content:"";background:#05030a;border-radius:50%;width:16px;height:16px;position:absolute;top:-10px;box-shadow:0 0 0 2px #e2c27db3}.ar-silhouette:before{left:-6px}.ar-silhouette:after{right:-6px}.ar-help,.ar-error{text-align:center;margin:10px 16px;font-size:13px}.ar-error{color:var(--danger)}.ar-close{width:calc(100% - 32px)}
