: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;overflow:hidden auto}.cover-stage{flex-direction:column;align-items:center;gap:clamp(.85rem,2.4vw,1.5rem);width:min(1120px,100%);display:flex}.cover-hat.cover-hat-fan-only{width:min(680px,94vw);height:clamp(9.5rem,22vh,13.5rem);animation:.85s ease-out both cover-hat-in;position:relative}.cover-hats{width:100%;height:100%;position:relative}.cover-hat-img{object-fit:contain;transform-origin:50% 90%;filter:drop-shadow(0 14px 22px #0006);-webkit-user-select:none;user-select:none;pointer-events:none;width:auto;max-width:none;height:88%;position:absolute;bottom:0;left:50%}.cover-hat-center{z-index:3;height:100%;animation:4.2s ease-in-out infinite cover-hat-float;transform:translate(-50%)}.cover-hat-left{z-index:2;height:78%;animation:4.6s ease-in-out .15s infinite cover-hat-float-left;transform:translate(calc(-50% - 7rem))rotate(-16deg)}.cover-hat-right{z-index:1;height:78%;animation:4.6s ease-in-out .3s infinite cover-hat-float-right;transform:translate(calc(7rem - 50%))rotate(16deg)}.cover-hat.is-paused .cover-hat-img{animation-play-state:paused}.cover-banner{object-fit:contain;filter:drop-shadow(0 18px 40px #00000059);width:100%;height:auto;max-height:min(36vh,260px);animation:.9s ease-out 80ms both cover-banner-in;display:block}.cover-cta{align-items:center;gap:.35rem;animation:.7s ease-out .25s both cover-cta-in;display:inline-flex}.cover-cta-arrow{flex:none;width:1.15em;height:1.15em;transition:transform .18s;display:block}.cover-cta:hover .cover-cta-arrow{transform:translate(3px)}.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-hat-in{0%{opacity:0;transform:translateY(10px)scale(.96)}to{opacity:1;transform:none}}@keyframes cover-hat-float{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(-6px)}}@keyframes cover-hat-float-left{0%,to{transform:translate(calc(-50% - 7rem))rotate(-16deg)translateY(0)}50%{transform:translate(calc(-50% - 7rem))rotate(-16deg)translateY(-4px)}}@keyframes cover-hat-float-right{0%,to{transform:translate(calc(7rem - 50%))rotate(16deg)translateY(0)}50%{transform:translate(calc(7rem - 50%))rotate(16deg)translateY(-4px)}}@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-hat.cover-hat-fan-only{width:min(400px,96vw);height:clamp(7.5rem,20vh,11rem)}.cover-hat-left{animation-name:cover-hat-float-left-sm;transform:translate(calc(-50% - 4.6rem))rotate(-12deg)}.cover-hat-right{animation-name:cover-hat-float-right-sm;transform:translate(calc(4.6rem - 50%))rotate(12deg)}.cover-banner{max-height:min(28vh,170px)}}@keyframes cover-hat-float-left-sm{0%,to{transform:translate(calc(-50% - 4.6rem))rotate(-12deg)translateY(0)}50%{transform:translate(calc(-50% - 4.6rem))rotate(-12deg)translateY(-3px)}}@keyframes cover-hat-float-right-sm{0%,to{transform:translate(calc(4.6rem - 50%))rotate(12deg)translateY(0)}50%{transform:translate(calc(4.6rem - 50%))rotate(12deg)translateY(-3px)}}.gate-modal{z-index:5;background:#080a128c;place-items:center;padding:1rem;display:grid;position:absolute;inset:0}.warp-overlay{z-index:60;pointer-events:none;background:#03040a;width:100dvw;height:100dvh;min-height:100svh;position:fixed;inset:0;overflow:hidden;transform:translateZ(0)}.warp-overlay.hidden{display:none!important}.warp-canvas{width:100%;height:100%;display:block;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}.corner-actions{top:max(.75rem, env(safe-area-inset-top));right:max(.75rem, env(safe-area-inset-right));z-index:6;flex-direction:column;align-items:stretch;gap:.6rem;display:flex;position:fixed}.corner-btn{cursor:pointer;min-width:8.6rem;font:inherit;letter-spacing:.04em;touch-action:manipulation;border:1px solid #ffffff1f;border-radius:.75rem;align-items:center;gap:.5rem;padding:.42rem .8rem .42rem .5rem;font-size:1.18rem;font-weight:700;line-height:1.15;transition:box-shadow .18s,transform .18s,filter .18s;display:inline-flex;transform:translateY(-2px)}.corner-btn:hover{filter:brightness(1.04);transform:translateY(-4px)}.corner-btn:active{filter:brightness(.98);transform:translateY(0)}.corner-ico{border-radius:.5rem;flex:none;place-items:center;width:1.85rem;height:1.85rem;font-style:normal;display:grid}.corner-ico svg{width:1.05rem;height:1.05rem;display:block}.corner-btn-memoir{color:#f7f0de;background:linear-gradient(#3a4558 0%,#252d3c 55%,#1a2030 100%);box-shadow:0 2px 4px #0003,0 10px 24px #0006,0 18px 40px #00000038,inset 0 1px #fff3}.corner-btn-memoir .corner-ico{color:#e8b84a;background:#2a3344;box-shadow:inset 0 1px #ffffff24,0 2px 6px #00000040}.corner-btn-memoir:hover{box-shadow:0 4px 8px #00000038,0 14px 32px #00000073,0 24px 48px #00000040,inset 0 1px #ffffff38}.corner-btn-memoir:active{box-shadow:0 1px 2px #00000040,0 4px 12px #00000059,inset 0 1px #ffffff1f}.corner-btn-roster{color:#1e4db0;background:linear-gradient(#fff 0%,#eef2f8 60%,#dde5f2 100%);border-color:#c8d2e4;box-shadow:0 2px 4px #1e325a1a,0 10px 24px #14285038,0 18px 40px #1428501f,inset 0 1px #fff}.corner-btn-roster .corner-ico{color:#1e4db0;background:#e8eef8;box-shadow:inset 0 1px #fff,0 2px 6px #1e325a1f}.corner-btn-roster:hover{box-shadow:0 4px 8px #1e325a1f,0 14px 32px #14285042,0 24px 48px #14285024,inset 0 1px #fff}.corner-btn-roster:active{box-shadow:0 1px 2px #1e325a1f,0 4px 12px #1428502e,inset 0 1px #fff}.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(68rem,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;justify-content:center;padding:0 1rem;display:flex}.roster-photo-btn{cursor:zoom-in;background:0 0;border:0;border-radius:.55rem;max-width:100%;margin:0;padding:0;line-height:0;display:block;position:relative}.roster-photo-btn:focus-visible{outline-offset:3px;outline:2px solid #1e4db08c}.roster-photo{object-fit:contain;background:#1a2040;border-radius:.55rem;width:auto;max-width:100%;height:auto;max-height:min(28vh,240px);display:block}.roster-photo-eye{color:#fff;filter:drop-shadow(0 1px 2px #000000a6);pointer-events:none;background:0 0;border-radius:999px;place-items:center;width:2rem;height:2rem;display:grid;position:absolute;top:.45rem;right:.45rem}.roster-photo-btn:hover .roster-photo-eye{color:#fff;filter:drop-shadow(0 1px 3px #000c)}.roster-names{flex:auto;grid-template-columns:repeat(auto-fill,minmax(7.2rem,1fr));gap:.5rem .55rem;margin:0;padding:.85rem 1rem 1.1rem;list-style:none;display:grid}.roster-names li{text-align:left;-webkit-user-select:none;user-select:none;background:#1e4db012;border-radius:.55rem;align-items:center;gap:.4rem;padding:.3rem .45rem .3rem .3rem;font-size:.88rem;display:flex}.roster-avatar{object-fit:cover;background:#d8e2f5;border-radius:50%;flex:none;width:2.25rem;height:2.25rem;box-shadow:0 0 0 1.5px #ffffffe6,0 1px 3px #1428502e}.roster-names li span{min-width:0;line-height:1.2}.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:.42s 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;transform:translateY(10px)scale(.985)}to{opacity:1;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:#2a3140}.mw-cell.mw-skel img{opacity:0}.mw-cell.mw-ready,.mw-cell.mw-ready img{opacity:1}.mw-cell img{object-fit:cover;opacity:0;border:0;width:100%;height:100%;transition:opacity .28s;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}}@media (width<=640px){.corner-actions{top:max(.5rem, env(safe-area-inset-top));left:max(.5rem, env(safe-area-inset-left));right:max(.5rem, env(safe-area-inset-right));flex-direction:row;justify-content:space-between;align-items:flex-start;gap:.5rem}.corner-btn{border-radius:.65rem;gap:.35rem;min-width:5.8rem;padding:.32rem .52rem .32rem .36rem;font-size:.82rem;transform:translateY(-1px)}.corner-btn:hover{transform:translateY(-2px)}.corner-btn:active{transform:translateY(0)}.corner-ico{border-radius:.38rem;width:1.3rem;height:1.3rem}.corner-ico svg{width:.78rem;height:.78rem}.corner-btn-memoir{box-shadow:0 1px 3px #0003,0 6px 14px #00000059,0 12px 24px #0000002e,inset 0 1px #fff3}.corner-btn-memoir .corner-ico{box-shadow:inset 0 1px #ffffff24,0 1px 3px #00000040}.corner-btn-memoir:hover{box-shadow:0 2px 5px #00000038,0 8px 18px #0006,0 14px 28px #0003,inset 0 1px #ffffff38}.corner-btn-memoir:active{box-shadow:0 1px 2px #00000040,0 3px 8px #0000004d,inset 0 1px #ffffff1f}.corner-btn-roster{box-shadow:0 1px 3px #1e325a1a,0 6px 14px #14285033,0 12px 24px #1428501a,inset 0 1px #fff}.corner-btn-roster .corner-ico{box-shadow:inset 0 1px #fff,0 1px 3px #1e325a1f}.corner-btn-roster:hover{box-shadow:0 2px 5px #1e325a1f,0 8px 18px #1428503d,0 14px 28px #1428501f,inset 0 1px #fff}.corner-btn-roster:active{box-shadow:0 1px 2px #1e325a1f,0 3px 8px #14285029,inset 0 1px #fff}}@media (width>=900px){.mw-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}}#pickDebugOverlay{z-index:50;pointer-events:none;position:fixed;inset:0}.pick-debug-svg{width:100%;height:100%;position:absolute;inset:0}.pick-debug-drill-circle{fill:#00e5ff1f;stroke:#00e5ff;stroke-width:2px}.pick-debug-media-rect{fill:#ff98001a;stroke:#ff9800;stroke-width:2px;stroke-dasharray:6 4}.pick-debug-label{fill:#fff;paint-order:stroke;stroke:#000000bf;stroke-width:3px;font:600 11px/1.2 system-ui,sans-serif}.pick-debug-label.drill{fill:#00e5ff}.pick-debug-label.media{fill:#ffb74d}.pick-debug-legend{left:.6rem;top:max(.6rem, env(safe-area-inset-top));color:#f4efe6;background:#080c16d1;border-radius:.45rem;max-width:min(280px,80vw);padding:.55rem .7rem;font:12px/1.45 system-ui,sans-serif;position:absolute}.pick-debug-legend i{vertical-align:-.05rem;border-radius:2px;width:.7rem;height:.7rem;margin-right:.35rem;display:inline-block}.pick-debug-legend .c-drill{background:#00e5ff}.pick-debug-legend .c-board{background:#ff9800}.pick-debug-legend .c-aabb{background:#ffeb3b}.pick-debug-legend .c-drill-s{background:#00e5ff40;border:2px solid #00e5ff;border-radius:50%}.pick-debug-legend .c-board-s{background:#ff980033;border:2px dashed #ff9800}.pick-debug-hint{opacity:.55;margin-top:.35rem;font-size:10px}
