:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#1a1f2c;--paper:#f4efe6;--blue:#1e4db0;--warm:#e8a060;--panel:#faf6eeeb;--line:#1a1f2c1f;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;color:var(--ink);background:#1a2040;margin:0;overflow:hidden}canvas#c{width:100%;height:100%;display:block}.hidden{display:none!important}.cover{z-index:20;background:radial-gradient(at 20% 15%,#4a90d959,#0000 48%),radial-gradient(at 85% 80%,#143c7866,#0000 42%),linear-gradient(165deg,#0f2a4d 0%,#1a4a7a 45%,#0d2340 100%);place-items:center;padding:clamp(1rem,4vw,2.5rem);display:grid;position:fixed;inset:0}.cover-stage{flex-direction:column;align-items:center;gap:clamp(1.25rem,3vw,2rem);width:min(1120px,100%);display:flex}.cover-banner{object-fit:contain;filter:drop-shadow(0 18px 40px #00000059);width:100%;height:auto;max-height:min(42vh,280px);animation:.9s ease-out both cover-banner-in;display:block}.cover-cta{animation:.7s ease-out .25s both cover-cta-in}.cover-version{left:50%;bottom:max(.85rem, env(safe-area-inset-bottom));color:#f7f3ea8c;letter-spacing:.04em;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;margin:0;font-size:.75rem;position:absolute;transform:translate(-50%)}@keyframes cover-banner-in{0%{opacity:0;transform:translateY(12px)scale(.985)}to{opacity:1;transform:none}}@keyframes cover-cta-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.primary{color:var(--blue);cursor:pointer;background:#f7f3ea;border:0;border-radius:999px;padding:.85rem 1.6rem;font-size:1rem;font-weight:700}.primary:hover{transform:translateY(-1px)}@media (width<=640px){.cover-banner{max-height:min(36vh,200px)}}.gate-modal{z-index:5;background:#080a128c;place-items:center;padding:1rem;display:grid;position:absolute;inset:0}.gate-panel{width:min(20rem,100%);color:var(--ink);text-align:left;background:#f7f3ea;border-radius:1rem;padding:1.25rem 1.2rem 1.1rem;box-shadow:0 16px 40px #00000059}.gate-panel h3{margin:0 0 .35rem;font-size:1.15rem}.gate-panel>p{opacity:.7;margin:0 0 .85rem;font-size:.9rem}.gate-panel input{border:1px solid var(--line);width:100%;font:inherit;background:#fff;border-radius:.55rem;margin-bottom:.55rem;padding:.7rem .8rem}.gate-error{color:#b42318;font-size:.85rem;margin:0 0 .55rem!important}.gate-actions{justify-content:flex-end;gap:.5rem;display:flex}.gate-actions .ghost,.gate-actions .primary{border-radius:999px;width:auto;padding:.55rem 1rem}.ghost{border:1px solid var(--line);cursor:pointer;width:100%;font:inherit;background:0 0;border-radius:.55rem;padding:.55rem}.timeline{left:50%;bottom:max(.5rem, env(safe-area-inset-bottom));background:var(--panel);border:1px solid var(--line);z-index:5;-webkit-overflow-scrolling:touch;scrollbar-width:none;border-radius:999px;gap:.2rem;max-width:calc(100vw - 1rem);padding:.22rem;display:flex;position:fixed;overflow-x:auto;transform:translate(-50%);box-shadow:0 8px 22px #00000024}.timeline::-webkit-scrollbar{display:none}.beat-btn{cursor:pointer;min-height:0;line-height:1.15;font:inherit;white-space:nowrap;touch-action:manipulation;background:0 0;border:0;border-radius:999px;justify-items:start;gap:0;padding:.28rem .55rem;font-size:.78rem;display:grid}.beat-btn span{width:.95rem;height:.95rem;color:var(--blue);background:#1e4db01f;border-radius:50%;place-items:center;margin-right:.2rem;font-size:.62rem;display:inline-grid}.beat-btn small{opacity:.55;font-size:.58rem;line-height:1.1;display:block}.beat-btn.active{background:var(--blue);color:#fff}.beat-btn.active span{color:#fff;background:#fff3}.roster{top:max(.75rem, env(safe-area-inset-top));right:max(.75rem, env(safe-area-inset-right));z-index:6;position:fixed}.roster-toggle{background:var(--panel);border:0;border:1px solid var(--line);cursor:pointer;font:inherit;touch-action:manipulation;border-radius:999px;padding:.45rem .8rem;font-size:.9rem;box-shadow:0 8px 24px #0000001f}.roster-modal{z-index:25;padding:max(.75rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0e18b8;place-items:center;display:grid;position:fixed;inset:0}.roster-sheet{width:min(52rem,100%);max-height:min(92dvh,920px);color:var(--ink);background:#f7f3ea;border-radius:1rem;flex-direction:column;display:flex;overflow:auto;box-shadow:0 20px 50px #00000059}.roster-head{flex:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1rem .65rem;display:flex}.roster-head h2{margin:0;font-size:1.15rem}.roster-close{cursor:pointer;color:var(--ink);opacity:.65;background:0 0;border:0;padding:.1rem .35rem;font-size:1.75rem;line-height:1}.roster-photo-wrap{flex:none;padding:0 1rem}.roster-photo{object-fit:contain;background:#1a2040;border-radius:.55rem;width:100%;height:auto;max-height:min(52vh,480px);display:block}.roster-names{flex:auto;grid-template-columns:repeat(auto-fill,minmax(4.8rem,1fr));gap:.4rem .55rem;margin:0;padding:.85rem 1rem 1.1rem;list-style:none;display:grid}.roster-names li{text-align:center;-webkit-user-select:none;user-select:none;background:#1e4db012;border-radius:.4rem;padding:.35rem .2rem;font-size:.88rem}.roster-foot{border-top:1px solid #1e283c1a;flex:none;justify-content:center;padding:.65rem 1rem 1.05rem;display:flex}.roster-logout{color:var(--ink);font:inherit;cursor:pointer;touch-action:manipulation;opacity:.85;background:0 0;border:1px solid #1e283c38;border-radius:999px;padding:.55rem 1.35rem;font-size:.92rem}.roster-logout:hover{opacity:1;background:#1e283c0f}.drill-hint{left:50%;bottom:calc(3.6rem + env(safe-area-inset-bottom));z-index:8;color:#f7f3ea;letter-spacing:.02em;pointer-events:none;white-space:nowrap;background:#141c30e0;border:1px solid #f4d35e8c;border-radius:999px;margin:0;padding:.55rem 1rem;font-size:.9rem;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #00000040}.drill-hint-in{animation:.35s ease-out both drill-hint-in}.drill-hint-out{animation:.3s ease-in both drill-hint-out}@keyframes drill-hint-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@keyframes drill-hint-out{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,6px)}}.media-wall{z-index:15;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:max(.6rem, env(safe-area-inset-top)) max(.6rem, env(safe-area-inset-right)) calc(3.4rem + env(safe-area-inset-bottom)) max(.6rem, env(safe-area-inset-left));color:#f4efe6;background:#0c101cd1;flex-direction:column;display:flex;position:fixed;inset:0}.media-wall.mw-opening{animation:.62s cubic-bezier(.22,1,.36,1) both mw-open}.media-wall.mw-closing{animation:.28s ease-in both mw-close}@keyframes mw-open{0%{opacity:0;clip-path:circle(0%);filter:blur(8px);transform:scale(1.04)}to{opacity:1;clip-path:circle(140%);filter:none;transform:none}}@keyframes mw-close{0%{opacity:1;transform:none}to{opacity:0;transform:scale(.98)}}.mw-head{flex:none;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.65rem;display:flex}.mw-kicker{opacity:.65;margin:0;font-size:.75rem}.mw-title{margin:.15rem 0 0;font-size:clamp(1.1rem,3.5vw,1.45rem)}.mw-actions{flex:none;gap:.4rem;display:flex}.mw-btn{color:#fff;font:inherit;cursor:pointer;touch-action:manipulation;background:#ffffff14;border:1px solid #ffffff47;border-radius:999px;padding:.55rem .9rem}.mw-btn.active{background:var(--blue);border-color:#0000}.mw-btn-close{background:#ffffff24}.mw-grid{-webkit-overflow-scrolling:touch;flex:auto;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));align-content:start;gap:.35rem;min-height:0;display:grid;overflow:auto}.mw-cell{cursor:pointer;touch-action:manipulation;opacity:0;z-index:0;box-sizing:border-box;background:#2a3140;border:0;border-radius:.35rem;width:100%;height:0;padding:0 0 100%;display:block;position:relative;overflow:hidden}.mw-cell.mw-skel{opacity:1;background:linear-gradient(110deg,#2a3140 25%,#3a4558 40%,#2a3140 55%) 0 0/200% 100%;animation:1.1s linear infinite mw-shimmer}.mw-cell.mw-skel img{opacity:0}.mw-cell.mw-ready{opacity:1;animation:none}@keyframes mw-shimmer{to{background-position:-200% 0}}.mw-cell img{object-fit:cover;border:0;width:100%;height:100%;display:block;position:absolute;inset:0}.mw-cell i{color:#fff;background:#00000047;place-items:center;font-size:.85rem;font-style:normal;display:grid;position:absolute;inset:0}.mw-cell.mw-video-empty{background:#1a2230}.mw-cell.mw-video-empty i{color:#ffffffd1;background:0 0;font-size:1.1rem}.viewer{z-index:40;background:#080a12e0;place-items:center;padding:3.5rem 3rem 4rem;display:grid;position:fixed;inset:0}.viewer.slideshow-on .vw-hint{opacity:.85}.vw-hint{bottom:max(1rem, env(safe-area-inset-bottom));color:#ffffff8c;opacity:0;pointer-events:none;margin:0;font-size:.8rem;position:absolute;left:50%;transform:translate(-50%)}.vw-close{top:max(.6rem, env(safe-area-inset-top));right:max(.8rem, env(safe-area-inset-right));color:#fff;cursor:pointer;z-index:2;touch-action:manipulation;background:0 0;border:0;font-size:2rem;line-height:1;position:absolute}.vw-nav{color:#fff;cursor:pointer;z-index:2;touch-action:manipulation;background:#ffffff1f;border:0;border-radius:50%;width:2.6rem;height:2.6rem;font-size:1.6rem;position:absolute;top:50%;transform:translateY(-50%)}.vw-prev{left:max(.5rem, env(safe-area-inset-left))}.vw-next{right:max(.5rem, env(safe-area-inset-right))}.vw-body{max-width:min(920px,100%);max-height:min(72vh,720px)}.vw-body img,.vw-body video{border-radius:.5rem;max-width:100%;max-height:min(72vh,720px);margin:0 auto;display:block}.vw-caption{bottom:calc(2.4rem + env(safe-area-inset-bottom));text-align:center;color:#eee;width:min(36rem,100% - 2rem);margin:0;font-size:.9rem;position:absolute;left:50%;transform:translate(-50%)}@media (width<=720px){.timeline{bottom:max(.4rem, env(safe-area-inset-bottom));border-radius:1rem;max-width:calc(100vw - .5rem)}.beat-btn{padding:.24rem .48rem;font-size:.74rem}.mw-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:.28rem}.viewer{padding:3rem .5rem 4.5rem}.vw-nav{width:2.3rem;height:2.3rem}.roster{top:max(.5rem, env(safe-area-inset-top))}}@media (width>=900px){.mw-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}}
