:root{--brand-orange: #f7901e;--brand-orange-deep: #e2740c;--brand-sky: #1e9be9;--brand-sky-light: #7fd0f5;--brand-blue-deep: #1b4f9c;--brand-blue-night: #0e2d5e;--brand-yellow: #ffd233;--brand-green: #7bc043;--brand-green-deep: #3e8b2f;--brand-red: #e8402a;--brand-pink: #f58cb4;--brand-purple: #9b6bc4;--brand-white: #ffffff;--ink: #16314f;--ink-soft: #4a6484;--paper: #f6fbff;--kv-title-ink: #f8c73a;--kv-number-ink: #fdf7ea;--radius: 16px;--shadow-card: 0 6px 24px rgba(27, 79, 156, .14);--font-sans: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);color:var(--ink);background:var(--paper);-webkit-text-size-adjust:100%}.kv-title{color:var(--kv-title-ink);font-weight:900;letter-spacing:.02em;paint-order:stroke fill;-webkit-text-stroke:.13em var(--brand-blue-deep);text-shadow:0 .07em 0 var(--brand-blue-deep),0 .2em .42em rgba(14,45,94,.38)}.kv-number{color:var(--kv-number-ink);font-weight:900;font-variant-numeric:tabular-nums;paint-order:stroke fill;-webkit-text-stroke:.1em var(--brand-blue-deep);text-shadow:0 .06em 0 var(--brand-orange-deep),0 .13em .26em rgba(14,45,94,.42)}button{font-family:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.btn{border:none;border-radius:999px;padding:12px 26px;font-weight:800;font-size:17px;color:#fff;background:linear-gradient(180deg,var(--brand-orange) 0%,var(--brand-orange-deep) 100%);box-shadow:0 4px #b95c05,0 8px 18px #b95c054d;transition:transform .08s ease,box-shadow .08s ease}.btn:not(:disabled):active{transform:translateY(3px);box-shadow:0 1px #b95c05}.btn.secondary{background:linear-gradient(180deg,var(--brand-sky) 0%,var(--brand-blue-deep) 100%);box-shadow:0 4px #103a73}.btn.ghost{background:#fff;color:var(--brand-blue-deep);border:2px solid var(--brand-sky-light);box-shadow:none}.btn.danger{background:linear-gradient(180deg,#f06a56 0%,var(--brand-red) 100%);box-shadow:0 4px #a92a18}.btn.sm{padding:7px 14px;font-size:14px;box-shadow:none}.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-card);padding:16px}.tag{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;background:#e8f4ff;color:var(--brand-blue-deep)}.tag.warn{background:#fff1d6;color:#9a6400}.tag.bad{background:#ffe3de;color:#a92a18}.tag.good{background:#e3f7df;color:var(--brand-green-deep)}.stage{--wall-w: clamp(260px, 21vw, 380px);--wall-w-collapsed: clamp(120px, 11vw, 190px);position:relative;height:100dvh;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto;color:#fff;background:linear-gradient(180deg,#0f7fd4,#1e9be9 42%,#7fd0f5 68%,#7bc043)}.theme-host{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.stage>*:not(.theme-host):not(.scene-layer):not(.intro-wrap){position:relative;z-index:1}.scene-layer,.intro-wrap{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden}.stage-head{display:flex;align-items:center;gap:clamp(18px,2.4vw,40px);padding:12px clamp(16px,2.2vw,34px);background:linear-gradient(180deg,#0e2d5ed1,#0e2d5e00)}.stage-head .brand{font-weight:900;font-size:clamp(18px,1.7vw,28px);letter-spacing:.04em;background:var(--brand-orange);border-radius:999px;padding:5px 16px;white-space:nowrap}.stage-head .prize-name{font-size:clamp(26px,3.4vw,68px);line-height:1.05;margin:0;white-space:nowrap;min-width:0}.stage-head .prize-meta{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;font-weight:700}.stage-head .amount{color:var(--brand-yellow);font-size:clamp(24px,2.6vw,44px)}.stage-head .spacer{flex:1}.chip{background:#ffffff2e;border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:6px 16px;font-size:clamp(14px,1.2vw,20px);font-weight:700;white-space:nowrap}.chip.off{background:#e8402ad9;border-color:#fff}.head-right{display:flex;flex-direction:column;align-items:flex-end;gap:7px;min-width:0}.head-chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.headcount{list-style:none;margin:0;padding:0;display:flex;gap:6px 9px;flex-wrap:wrap;justify-content:flex-end;font-weight:700;font-size:clamp(12px,1.05vw,18px)}.headcount li{background:#ffffff24;border:1px solid rgba(255,255,255,.26);border-radius:9px;padding:3px 11px;white-space:nowrap}.headcount b{color:var(--brand-yellow);font-size:1.2em;margin:0 2px}.stage-main{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:0}.numbers-wrap{position:relative;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 clamp(12px,1.6vw,26px)}.numbers{padding:clamp(10px,1.6vh,22px) clamp(12px,1.6vw,28px);border-radius:24px;background:radial-gradient(ellipse at center,#0c264e70,#0c264e29 70%,#0c264e00);display:grid;gap:clamp(6px,.9vh,16px) clamp(8px,.9vw,18px);grid-template-columns:repeat(var(--cols),minmax(0,1fr));width:100%;max-width:1500px;place-items:center}.num{font-size:var(--num-size);line-height:1.06;letter-spacing:.01em;animation:pop .5s cubic-bezier(.17,.9,.3,1.5) both;white-space:nowrap}.num.absent:after{content:"★";font-size:.5em;vertical-align:super;color:var(--brand-yellow)}@keyframes pop{0%{transform:scale(.3) rotate(-7deg);opacity:0}to{transform:none;opacity:1}}.rolling .num{animation:none;opacity:.96}.idle-hero{text-align:center;padding:0 24px}.idle-hero h1{font-size:clamp(30px,5vw,78px);margin:0 0 10px;line-height:1.12}.idle-hero p{font-size:clamp(14px,1.5vw,24px);font-weight:700;opacity:.95}.waiting{text-align:center;font-size:clamp(30px,3.6vw,60px);font-weight:900;text-shadow:0 2px 14px rgba(0,0,0,.5)}.wall{width:var(--wall-w);display:flex;flex-direction:column;gap:7px;padding:8px 12px;overflow:hidden;transition:width .3s ease,opacity .3s ease}.wall.collapsed{width:var(--wall-w-collapsed);opacity:.6}.wall-title{font-size:12px;font-weight:800;letter-spacing:.08em;background:#0e2d5e8c;border-radius:999px;padding:3px 10px;align-self:flex-start}.msg{background:#ffffffed;color:var(--ink);border-radius:12px;padding:8px 13px;font-size:clamp(15px,1.25vw,21px);line-height:1.35;box-shadow:0 2px 10px #0000002e;animation:slide .35s ease both;word-break:break-word}.msg b{color:var(--brand-blue-deep);margin-right:5px}.msg .zod{margin-right:3px}@keyframes slide{0%{transform:translate(26px);opacity:0}to{transform:none;opacity:1}}.stage-foot{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px clamp(16px,2vw,32px) clamp(14px,2vh,26px);background:linear-gradient(0deg,#0e2d5ecc,#0e2d5e00)}.btn-draw{font-size:clamp(26px,2.6vw,44px);padding:clamp(12px,1.7vh,24px) clamp(34px,3.6vw,70px);border-radius:999px;border:none;font-weight:900;color:#fff;background:linear-gradient(180deg,#ffb04a 0%,var(--brand-orange-deep) 100%);box-shadow:0 6px #a8550a,0 14px 30px #00000059}.btn-draw:not(:disabled):active{transform:translateY(5px);box-shadow:0 1px #a8550a}.btn-draw.redraw{background:linear-gradient(180deg,#f28b7a 0%,var(--brand-red) 100%);box-shadow:0 6px #9c2415}.btn-ghost-lg{background:#ffffff29;border:2px solid rgba(255,255,255,.55);color:#fff;border-radius:999px;padding:10px 22px;font-weight:800;font-size:15px}.err-toast{position:fixed;left:50%;bottom:14vh;transform:translate(-50%);z-index:20;background:var(--brand-red);color:#fff;padding:12px 22px;border-radius:999px;font-weight:800;box-shadow:0 10px 30px #0006;max-width:80vw;text-align:center}.stage-login{height:100dvh;display:grid;place-items:center;background:linear-gradient(160deg,var(--brand-sky),var(--brand-blue-deep))}.stage-login form{display:grid;gap:12px;width:min(380px,90vw)}.stage-login input{padding:13px 16px;border-radius:12px;border:2px solid #cfe6fb;font-size:17px;width:100%}@media(max-height:820px){.stage-head{padding-top:8px;padding-bottom:8px}.stage-foot{padding-top:8px;padding-bottom:12px}}.intro-wrap{overflow:hidden}.idle-spacer{flex:1}.intro-canvas{display:block;width:100%;height:100%}.intro-foot{position:absolute;left:0;right:0;bottom:74px;text-align:center;font-size:clamp(13px,1.3vw,20px);font-weight:800;color:#fdf7eaeb;text-shadow:0 2px 10px rgba(14,45,94,.55)}.intro-badge{position:absolute;left:16px;bottom:16px;background:#e8402ae0;color:#fff;padding:5px 12px;border-radius:999px;font-size:12px;font-weight:800}.scene-canvas{display:block;width:100%;height:100%}.announce{display:grid;place-items:center}.announce-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 46%,#0a204257,#081a37c7 72%)}.announce-body{position:relative;display:flex;align-items:center;justify-content:center;gap:clamp(20px,4vw,72px);padding:0 5vw;max-width:100%}.announce-host{flex:0 0 auto;width:clamp(180px,22vw,420px)}.announce-host video,.announce-host img{width:100%;height:auto;display:block;filter:drop-shadow(0 18px 40px rgba(6,22,48,.55))}.announce-text{text-align:center}.announce-kicker{font-size:clamp(18px,2.1vw,38px);font-weight:800;letter-spacing:.08em;color:#fdf7eae6;margin-bottom:clamp(6px,1vh,16px);opacity:0;transform:translateY(14px);transition:opacity .5s ease .05s,transform .5s ease .05s}.announce-name{font-size:clamp(56px,9.5vw,188px);margin:0;line-height:1.02;opacity:0;transform:translateY(30px) scale(.94);transition:opacity .65s cubic-bezier(.17,.84,.44,1) .18s,transform .65s cubic-bezier(.17,.84,.44,1) .18s}.announce-meta{margin-top:clamp(8px,1.4vh,22px);display:flex;gap:clamp(16px,2.6vw,52px);justify-content:center;align-items:baseline;flex-wrap:wrap;opacity:0;transform:translateY(18px);transition:opacity .55s ease .42s,transform .55s ease .42s}.announce-amount{font-size:clamp(30px,4.4vw,86px);font-weight:900;color:var(--brand-yellow);font-variant-numeric:tabular-nums;text-shadow:0 3px 0 var(--brand-orange-deep),0 10px 26px rgba(14,45,94,.5)}.announce-slots{font-size:clamp(22px,2.8vw,54px);font-weight:900;color:#fdf7ea;background:#1b4f9cb8;border-radius:999px;padding:.14em .6em}.announce-content,.announce-guest{margin-top:clamp(6px,1vh,14px);font-size:clamp(16px,1.7vw,30px);font-weight:700;color:#fdf7eae0;opacity:0;transition:opacity .5s ease .6s}.announce-hint{font-size:clamp(14px,1.5vw,24px);color:#fdf7eac7}.announce.in .announce-kicker,.announce.in .announce-meta,.announce.in .announce-content,.announce.in .announce-guest,.announce.in .announce-name{opacity:1;transform:none}.roster{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(10px,2vh,30px);padding:clamp(16px,3vh,40px) 4vw;background:radial-gradient(ellipse at 50% 40%,#0a20424d,#081a37b8 75%)}.roster-head{text-align:center}.roster-step{font-size:clamp(13px,1.3vw,22px);font-weight:800;letter-spacing:.1em;color:#fdf7eab8}.roster-name{font-size:clamp(38px,5.6vw,110px);margin:.1em 0 0;line-height:1.04}.roster-meta{display:flex;gap:clamp(12px,2vw,34px);justify-content:center;flex-wrap:wrap;margin-top:.2em;font-size:clamp(16px,1.9vw,34px);font-weight:900;color:var(--brand-yellow);text-shadow:0 2px 10px rgba(14,45,94,.55)}.roster-grid{display:grid;grid-template-columns:repeat(var(--rcols),minmax(0,1fr));gap:clamp(4px,.8vh,14px) clamp(8px,1vw,20px);justify-items:center;max-width:92vw}.roster-num{font-size:clamp(30px,4.2vw,82px);line-height:1.06;animation:roster-pop .42s cubic-bezier(.17,.84,.44,1) backwards}@keyframes roster-pop{0%{opacity:0;transform:translateY(16px) scale(.86)}to{opacity:1;transform:none}}.roster-dots{display:flex;gap:8px}.roster-dots i{width:10px;height:10px;border-radius:999px;background:#fdf7ea57;transition:background .3s ease,width .3s ease}.roster-dots i.on{background:var(--brand-yellow);width:26px}.roster-empty{font-size:clamp(20px,2.4vw,42px);font-weight:800;color:#fdf7ead9}.scene-layer.announce,.scene-layer.roster{padding-right:var(--wall-w)}.stage:has(.wall.collapsed) .scene-layer.announce,.stage:has(.wall.collapsed) .scene-layer.roster{padding-right:var(--wall-w-collapsed)}.stage-head .brand-logo{height:clamp(34px,5.2vh,58px);width:auto;display:block;flex:0 0 auto;filter:drop-shadow(0 2px 6px rgba(14,45,94,.45))}.sound-btn{flex:0 0 auto;align-self:center;cursor:pointer;font-size:clamp(16px,1.6vw,26px);line-height:1;padding:6px 10px;border-radius:12px;border:2px solid rgba(255,255,255,.3);background:#ffffff1f;color:#fff;filter:grayscale(1) opacity(.72);transition:filter .16s ease,background .16s ease}.sound-btn.on{filter:none;background:#ffd2333d;border-color:var(--brand-yellow, #ffd233)}.sound-btn:hover{background:#ffffff38}.intro-replay{position:absolute;left:50%;transform:translate(-50%);bottom:clamp(92px,15vh,170px);z-index:4;border:2px solid rgba(255,255,255,.5);border-radius:999px;background:linear-gradient(180deg,var(--brand-orange) 0%,var(--brand-orange-deep) 100%);color:#fff;font-weight:900;font-size:clamp(16px,1.5vw,24px);padding:12px 30px;box-shadow:0 5px #b95c05,0 10px 24px #0e2d5e66}.intro-replay:active{transform:translate(-50%) translateY(3px);box-shadow:0 2px #b95c05}.stage-main,.numbers-wrap{pointer-events:none}.stage-main button,.stage-main a,.stage-main input,.stage-main .wall,.stage-main aside{pointer-events:auto}.pw{container-type:size;background:radial-gradient(ellipse at 50% 46%,#0a20421f,#081a379e 80%)}.pw-light{position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;pointer-events:none;background:linear-gradient(115deg,transparent 40%,rgba(255,236,170,.09) 50%,transparent 60%);animation:pw-sweep 14s ease-in-out infinite}@keyframes pw-sweep{0%,to{transform:translate(-30%)}50%{transform:translate(30%)}}.pw-wall{position:absolute;top:0;right:0;bottom:0;left:0}.pw-card{position:absolute;transform:translate(-50%,-50%) rotate(var(--rot)) scale(var(--scale));transition:left .9s cubic-bezier(.2,.8,.2,1),top .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1);will-change:transform}.pw-drop{animation:pw-stick .75s cubic-bezier(.2,.9,.3,1.25) both}.pw-card.leaving{pointer-events:none}.pw-card.leaving .pw-drop{animation:pw-peel .7s cubic-bezier(.5,0,.8,.4) both}@keyframes pw-stick{0%{opacity:0;transform:translateY(-14cqh) rotate(-8deg) scale(1.35);filter:blur(3px)}60%{opacity:1;filter:blur(0)}to{opacity:1;transform:none}}@keyframes pw-peel{0%{opacity:1;transform:none}30%{transform:translateY(-2cqh) rotate(4deg) scale(1.04)}to{opacity:0;transform:translateY(18cqh) rotate(22deg) scale(.7)}}.pw-pol{margin:0;position:relative;background:linear-gradient(180deg,#fffdf7,#f4efe2);padding:5.5% 5.5% 0;border-radius:3px;box-shadow:0 1px 1px #0000002e,0 10px 22px #040e2273,0 26px 40px -18px #040e2299;transform-origin:50% 0;animation:pw-sway 6s ease-in-out infinite;animation-delay:var(--sway-delay)}@keyframes pw-sway{0%,to{transform:rotate(-1.4deg)}50%{transform:rotate(1.4deg)}}.pw-card.zoomed .pw-pol{animation-play-state:paused;box-shadow:0 2px 2px #0003,0 30px 70px #0009}.pw-tape{position:absolute;z-index:1;top:-6%;left:50%;width:38%;height:13%;min-height:12px;transform:translate(-50%) rotate(var(--tape-rot));background:var(--tape);opacity:.78;mix-blend-mode:multiply;box-shadow:0 1px 2px #00000026;clip-path:polygon(0 8%,3% 0,6% 10%,9% 0,91% 0,94% 10%,97% 0,100% 8%,100% 92%,97% 100%,94% 90%,91% 100%,9% 100%,6% 90%,3% 100%,0 92%)}.pw-shot{aspect-ratio:var(--ratio);overflow:hidden;background:#1c2333;box-shadow:inset 0 0 0 1px #00000014}.pw-sticker{position:absolute;z-index:1;right:-7%;bottom:9%;font-size:clamp(14px,2.2cqw,40px);line-height:1;transform:rotate(var(--tape-rot));filter:drop-shadow(0 2px 2px rgba(14,45,94,.35))}.pw-shot img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.08) contrast(1.04) sepia(.06)}.pw-shot{position:relative}.pw-shot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 60%,rgba(30,18,0,.28) 100%)}.pw-pol figcaption{padding:.5em .4em .6em;min-height:2em;font-size:clamp(9px,.95cqw,18px);line-height:1.25;color:var(--brand-blue-deep);text-align:center;font-weight:800;letter-spacing:.02em;font-family:var(--font-sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pw-dim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999999;pointer-events:none;background:radial-gradient(ellipse at center,#06142c59,#06142cbf);opacity:0;transition:opacity .7s ease}.pw-dim.on{opacity:1}.pw.theme-pixel .pw-light,.pw.theme-pixel .pw-sticker,.pw.theme-pixel .pw-shot:after{display:none}.pw.theme-pixel .pw-pol{border-radius:0;background:#fdf7ea;padding:5% 5% 0;box-shadow:0 0 0 4px var(--brand-blue-night),8px 8px 0 4px #0e2d5e8c;animation-timing-function:steps(3,jump-none)}.pw.theme-pixel .pw-shot{box-shadow:0 0 0 3px var(--brand-blue-night)}.pw.theme-pixel .pw-shot img{filter:saturate(1.25) contrast(1.1)}.pw.theme-pixel .pw-tape{clip-path:none;mix-blend-mode:normal;opacity:1;height:9%;width:24%;transform:translate(-50%);box-shadow:0 0 0 3px var(--brand-blue-night)}.pw.theme-pixel .pw-pol figcaption{font-family:ui-monospace,SF Mono,Menlo,monospace;letter-spacing:.06em;color:var(--brand-blue-night)}.pw.theme-pixel .pw-card{transition-timing-function:steps(6,jump-end)}.pw.theme-pixel .pw-drop{animation:pw-px-in .6s steps(6,jump-end) both}.pw.theme-pixel .pw-card.leaving .pw-drop{animation:pw-px-out .6s steps(5,jump-end) both}@keyframes pw-px-in{0%{transform:scale(0)}60%{transform:scale(1.15)}to{transform:none}}@keyframes pw-px-out{0%{transform:none;visibility:visible}99%{transform:translateY(12cqh) scale(.2);visibility:visible}to{transform:translateY(12cqh) scale(.2);visibility:hidden}}.pw.theme-pixel .pw-spot img{border-radius:0;border:6px solid #fdf7ea;box-shadow:0 0 0 6px var(--brand-blue-night),14px 14px 0 6px #0006}@media(prefers-reduced-motion:reduce){.pw-pol,.pw-light{animation:none}}.pw-spot{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2000000;display:grid;grid-template-rows:1fr auto;place-items:center;gap:clamp(12px,2vh,30px);padding:clamp(18px,3vh,54px);padding-bottom:clamp(86px,12vh,150px);background:radial-gradient(ellipse at 50% 46%,#0a204299,#081a37e6 75%);animation:pw-spot-in .62s cubic-bezier(.2,.9,.3,1.2) both}@keyframes pw-spot-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.pw-spot img{max-width:100%;max-height:100%;object-fit:contain;border-radius:20px;box-shadow:0 18px 50px #00000080;border:4px solid rgba(255,255,255,.9)}.pw-cap{display:grid;gap:8px;justify-items:center;max-width:92%}.pw-text{margin:0;text-align:center;font-weight:900;font-size:clamp(22px,3.2vw,56px);line-height:1.3;color:var(--kv-title-ink);paint-order:stroke fill;-webkit-text-stroke:.09em var(--brand-blue-night);text-shadow:0 .06em 0 var(--brand-blue-night)}.pw-who{display:flex;align-items:center;gap:10px}.pw-num{background:var(--brand-orange);color:#fff;font-weight:900;border-radius:999px;padding:4px 16px;font-size:clamp(15px,1.5vw,26px);font-variant-numeric:tabular-nums}.pw-nick{color:#fff;font-weight:800;font-size:clamp(15px,1.5vw,26px)}.pw-num:empty,.pw-num[data-zero="1"]{display:none}.pw-count{position:absolute;right:clamp(12px,1.4vw,26px);bottom:clamp(10px,1.2vw,22px);z-index:2000001;font-size:clamp(18px,1.9vw,34px);pointer-events:none}.pw-count b{font-size:1.3em;margin:0 .12em}.pw-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:10px;color:#dff1ff;text-align:center;padding:24px}.pw-empty-icon{font-size:clamp(54px,7vw,110px)}.pw-empty h2{margin:0;font-size:clamp(24px,3vw,48px);color:var(--brand-yellow)}.pw-empty p{margin:0;font-size:clamp(14px,1.3vw,22px);opacity:.85}.scene-layer.tablemap{display:flex;flex-direction:column;gap:.6vh;padding:9.2vh 1.1vw .9vh;background:radial-gradient(130% 85% at 50% 6%,#1a3c6b,#0d2448 48%,#061228);color:#eaf4ff;font-variant-numeric:tabular-nums}.tm3-room{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;border-radius:10px}.tm3-art{position:absolute;top:0;right:0;bottom:0;left:0}.tm3-stage-text{fill:#fff6d8;font-weight:900;letter-spacing:.3em;font-size:clamp(15px,2.1vh,30px);paint-order:stroke;stroke:#460810bf;stroke-width:4px}.tm3-table{position:absolute}.tm3-table.on .tm3-name{color:#4a2a00}.tm3-spot{position:absolute;left:0;top:0;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(closest-side,#ffde879e,#ffce5a42 52%,#ffce5a00 76%);pointer-events:none}.tm3-body{position:absolute}.tm3-shadow{position:absolute;left:5%;width:94%;border-radius:50%;background:#030b1a80;filter:blur(5px)}.tm3-skirt,.tm3-hem{position:absolute;left:0;width:100%}.tm3-skirt{background-image:repeating-linear-gradient(90deg,#00000021 0,#00000021 2px,#ffffff0d 2px,#ffffff0d 7px),linear-gradient(180deg,#ffffff2e,#00000073)}.tm3-hem{border-radius:50%;background-image:linear-gradient(180deg,#0000004d 0,#0000004d,#00000080)}.tm3-face{position:absolute;left:0;top:0;width:100%;border-radius:50%}.tm3-plate{position:absolute;transform:translate(-50%,-50%);border-radius:50%;background:linear-gradient(180deg,#fff,#cdd7e4);box-shadow:0 1px 1px #00000040}.tm3-label{position:absolute;left:50%;transform:translate(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:1px;pointer-events:none;line-height:1.05;white-space:nowrap}.tm3-name{font-weight:900;color:#16314f;text-shadow:0 1px 0 rgba(255,255,255,.5)}.tm3-zod{margin-right:.2em}.tm3-count{font-weight:800;color:#0f2340;background:#ffffff9e;border-radius:999px;padding:0 .45em}.tm3-seat{position:absolute;transform:translate(-50%,-50%)}.tm3-chair-back{position:absolute;left:50%;transform:translate(-50%);border-radius:42% 42% 18% 18%;background:linear-gradient(180deg,#c8964f 0,#c8964f 18%,#93693c 19%,#5e4022);box-shadow:0 1px 2px #0006}.tm3-chair-seat{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(60% 70% at 40% 25%,#9d7444,#5c3f21 80%);box-shadow:0 2px 3px #02091673}.tm3-person{position:absolute;left:50%;bottom:50%;transform:translate(-50%)}.tm3-cast{position:absolute;left:50%;bottom:-8%;transform:translate(-50%);border-radius:50%;background:radial-gradient(closest-side,#0209168c,#02091600)}.tm3-torso{position:absolute;left:50%;bottom:0;transform:translate(-50%);border-radius:46% 46% 28% 28%/62% 62% 22% 22%;box-shadow:inset 0 -12% 18% #00000040}.tm3-head{position:absolute;left:50%;bottom:50%;transform:translate(-50%);border-radius:50%;overflow:hidden;box-shadow:0 1px 2px #0006,inset -10% -18% 22% #5a280a59}.tm3-hair{position:absolute;left:-2%;top:-6%;width:104%;border-radius:50% 50% 34% 34%}.tm3-labels{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1000}.tm3-num,.tm3-tag{position:absolute;transform:translate(-50%);white-space:nowrap;font-weight:800;line-height:1.35;border-radius:4px}.tm3-num{z-index:4;color:#a8c8ec;background:#08162ee6;box-shadow:0 0 0 1px #ffffff24}.tm3-num.in{color:#2a1c00;background:#ffd233;box-shadow:0 0 0 1px #3c280080}.tm3-tag{z-index:3;overflow:hidden;text-overflow:ellipsis;padding:0 .4em;font-weight:700;color:#2a1c00;background:linear-gradient(180deg,#ffe88a,#ffc82e);box-shadow:0 1px 3px #0006}.tm-strip{flex:0 0 auto;display:flex;align-items:center;gap:1.2vw;padding:.7vh 1vw;min-height:11vh;border-radius:10px;background:linear-gradient(180deg,#122c54eb,#08142af0);box-shadow:inset 0 0 0 2px #508cd273,0 6px 18px #00000059}.tm-strip-head{display:flex;align-items:baseline;gap:.6vw;flex:0 0 auto}.tm-strip-head b{font-size:clamp(20px,3.4vh,46px);font-weight:900}.tm-strip-zod{font-size:clamp(22px,3.8vh,50px)}.tm-strip-count{font-size:clamp(12px,1.6vh,22px);color:#ffd233;font-weight:800}.tm-strip-nums{flex:1 1 auto;display:flex;flex-wrap:wrap;gap:4px 6px;align-content:center;overflow:hidden}.tm-num{font-size:clamp(14px,2.4vh,34px);font-weight:900;padding:0 6px;border-radius:6px;color:#6f8fb5;box-shadow:inset 0 0 0 2px #ffffff1f}.tm-num.in{color:#2a1c00;background:linear-gradient(180deg,#ffe88a,#ffc82e);box-shadow:inset 0 0 0 2px #3c280059}.tm-side{flex:0 0 auto;display:flex;flex-direction:column;gap:4px}.tm-side-pill{font-size:clamp(10px,1.3vh,17px);font-weight:700;color:#bcd8f7;border-radius:999px;padding:2px 10px;white-space:nowrap;box-shadow:inset 0 0 0 2px #508cd280}.tm-side-pill.warn{color:#ffd233;box-shadow:inset 0 0 0 2px #f7901ecc}.gp{display:flex;flex-direction:column;align-items:center;gap:2.6vh}.gp-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.6vw,34px)}.gp-card{width:clamp(104px,14.5vw,250px);aspect-ratio:3 / 4.2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8vh;border:0;border-radius:18px;cursor:pointer;font:inherit;color:#9ec4ee;background:linear-gradient(165deg,#23599f,#0d2448);box-shadow:0 10px 30px #00000059,inset 0 0 0 3px #ffffff1f;transition:box-shadow .15s ease,filter .15s ease}.gp-card:not(.open):hover{filter:brightness(1.18);box-shadow:0 14px 38px #00000073,inset 0 0 0 3px #ffd2338c}.gp-card.open{cursor:default;opacity:1;color:#2a1c00;background:linear-gradient(165deg,#fff8e3,#ffd233);box-shadow:0 12px 34px #0000006b,inset 0 0 0 3px #78500047}.gp-slot{font-size:clamp(12px,1.25vw,22px);font-weight:800;letter-spacing:3px;opacity:.75}.gp-face{font-size:clamp(42px,6.6vw,124px);font-weight:900;line-height:1;white-space:nowrap}.gp-card.open .gp-face{animation:gp-pop .42s cubic-bezier(.2,1.3,.4,1) both}@keyframes gp-pop{0%{transform:scale(.35) rotateX(72deg);opacity:0}to{transform:none;opacity:1}}.gp-hint{font-size:clamp(20px,2.5vw,44px);font-weight:800;color:#eaf4ff;text-shadow:0 2px 10px rgba(0,0,0,.45)}.gp-hint b{color:#ffd233;font-size:1.3em}.gp-final{color:#ffd233;font-size:1.35em;letter-spacing:4px}.ad{min-height:100dvh;display:grid;grid-template-rows:auto auto 1fr;background:var(--paper)}.ad-top{display:flex;align-items:center;gap:14px;padding:10px 18px;color:#fff;background:linear-gradient(135deg,var(--brand-blue-deep),var(--brand-sky))}.ad-top .t{font-weight:900;font-size:17px}.ad-top .who{font-size:13px;opacity:.92}.ad-top .spacer{flex:1}.ad-tabs{display:flex;gap:6px;padding:10px 18px 0;flex-wrap:wrap;border-bottom:1px solid #dce9f6}.ad-tabs button{border:none;background:transparent;padding:9px 16px;border-radius:12px 12px 0 0;font-weight:800;font-size:14px;color:var(--ink-soft)}.ad-tabs button.on{background:#fff;color:var(--brand-blue-deep);box-shadow:0 -2px 10px #1b4f9c1a}.ad-main{padding:16px 18px 40px;overflow-y:auto;display:grid;gap:14px;align-content:start}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.stat{font-size:13px;color:var(--ink-soft)}.stat b{display:block;font-size:26px;color:var(--ink);font-variant-numeric:tabular-nums}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:7px 9px;border-bottom:1px solid #eaf1f8;vertical-align:middle}th{font-size:12px;color:var(--ink-soft);text-transform:none;white-space:nowrap}td.num,th.num{font-variant-numeric:tabular-nums}input,select,textarea{font-family:inherit;font-size:14px;padding:8px 11px;border:1.5px solid #cfe0f0;border-radius:10px;background:#fff;color:var(--ink)}textarea{width:100%;min-height:150px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}input[type=checkbox]{width:17px;height:17px}label.inline{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700}.err{background:#ffe9e4;color:#a92a18;padding:10px 13px;border-radius:12px;font-size:13px;font-weight:600}.ok{background:#e3f7df;color:var(--brand-green-deep);padding:10px 13px;border-radius:12px;font-size:13px;font-weight:600}.warn{background:#fff4d8;color:#8a5d00;padding:10px 13px;border-radius:12px;font-size:13px}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e2d5e80;display:grid;place-items:center;z-index:50;padding:20px}.modal{background:#fff;border-radius:18px;padding:20px;width:min(620px,94vw);max-height:86vh;overflow-y:auto}.modal h3{margin:0 0 10px}.mono{font-family:ui-monospace,Menlo,monospace;font-size:12px;word-break:break-all}.muted{color:var(--ink-soft);font-size:12px}.ad-login{min-height:100dvh;display:grid;place-items:center;background:linear-gradient(160deg,var(--brand-sky),var(--brand-blue-deep))}.ad-login form{display:grid;gap:11px;width:min(380px,92vw)}.flow{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}.flow li button{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:10px 14px;border-radius:14px;border:2px solid #dbe9f7;background:#fff;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.flow li button:hover{border-color:var(--brand-sky-light);box-shadow:0 4px 14px #1b4f9c1a}.flow li .step{flex:0 0 auto;width:30px;height:30px;border-radius:999px;background:#e8f4ff;color:var(--brand-blue-deep);display:grid;place-items:center;font-weight:900;font-size:14px}.flow li .body{display:flex;flex-direction:column;min-width:0}.flow li .body b{font-size:15px;color:var(--ink)}.flow li .body small{color:var(--ink-soft);font-size:12px}.flow li .live{margin-left:auto;flex:0 0 auto;font-size:12px;font-weight:900;color:#fff;background:var(--brand-red);padding:4px 11px;border-radius:999px}.flow li.on button{border-color:var(--brand-orange);background:#fff8ef}.flow li.on .step{background:var(--brand-orange);color:#fff}.ad-toast{position:sticky;top:10px;z-index:40;margin:0 0 12px;padding:10px 16px;border-radius:12px;font-weight:800;box-shadow:0 6px 20px #1b4f9c2e}.ad-toast.ok{background:#e7f7e4;color:#2c6b1f;border:2px solid #9ad88a}.ad-toast.err{background:#ffe3de;color:#a92a18;border:2px solid #f0a99c}.grip{border:1px solid #cfe0f2;background:#f6f9fd;color:#5b7390;border-radius:7px;padding:3px 7px;font-size:14px;line-height:1.2;cursor:grab}.grip:active{cursor:grabbing}.grip:focus-visible{outline:3px solid var(--brand-orange);outline-offset:1px}.grip:disabled{cursor:not-allowed;opacity:.5;background:#eef2f7}tr.prow.dragging{opacity:.4}tr.prow.over td{box-shadow:inset 0 3px 0 var(--brand-orange)}tr.prow.done{background:#eef7ea;color:#567a4a}tr.prow.done b{color:var(--brand-green-deep)}tr.prow.live{background:#fff6e2}tr.prow.current td:first-child{box-shadow:inset 4px 0 0 var(--brand-orange)}.grip-col{display:inline-flex;align-items:center;gap:3px}.arrows{display:inline-flex;flex-direction:column;gap:2px}.arrow{border:1px solid #cfe3f8;background:#fff;color:var(--brand-blue-deep);border-radius:5px;width:22px;height:15px;line-height:1;font-size:9px;padding:0;display:grid;place-items:center}.arrow:not(:disabled):hover{background:#e8f4ff;border-color:var(--brand-sky)}.arrow:disabled{opacity:.3;cursor:not-allowed}.note-rules{background:#f3f9ff;border:1px solid #d4e6fb;border-radius:12px;padding:12px 16px;margin-top:14px}.note-rules h4{margin:0 0 8px;font-size:15px;color:var(--brand-blue-deep)}.note-rules ul{margin:0;padding-left:20px}.note-rules li{margin:5px 0;line-height:1.7;font-size:14px}.note-rules code{background:#e8f1fb;border-radius:5px;padding:1px 6px;font-size:13px}.m{min-height:100dvh;overflow-x:hidden;background:linear-gradient(170deg,#1e9be9,#7fd0f5 45%,#d8f3c6);display:flex;flex-direction:column;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}.m-head{display:flex;align-items:center;gap:10px;padding:14px 16px 8px;color:#fff}.m-head .me{font-weight:900;font-size:19px}.m-head .num{background:#fff;color:var(--brand-blue-deep);border-radius:999px;padding:3px 12px;font-weight:900}.m-body{flex:1;display:flex;flex-direction:column;gap:12px;padding:8px 14px 14px;min-height:0}.m-card{background:#fffffff2;border-radius:18px;padding:14px;box-shadow:var(--shadow-card)}.m-card h3{margin:0 0 8px;font-size:15px;color:var(--brand-blue-deep)}.m-prize{font-size:22px;font-weight:900;color:var(--ink)}.m-status{font-size:14px;color:var(--ink-soft);margin-top:4px}.m-win{background:linear-gradient(135deg,var(--brand-yellow),var(--brand-orange));color:#fff}.m-win .m-prize{color:#fff}.m-feed{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:7px;min-height:90px}.m-msg{background:#ffffffeb;border-radius:14px;padding:7px 11px;font-size:14px;line-height:1.4}.m-msg b{color:var(--brand-blue-deep);margin-right:5px}.m-msg.mine{background:#fff6dd}.m-compose{display:flex;gap:8px}.m-compose input{flex:1;min-width:0;border:none;border-radius:999px;padding:13px 16px;font-size:16px;box-shadow:var(--shadow-card)}.m-reactions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.m-reactions button{min-width:0;border:none;border-radius:16px;padding:12px 0;font-size:26px;background:#ffffffe6;box-shadow:var(--shadow-card)}.m-reactions button:active{transform:scale(.94)}.m-login{display:grid;gap:12px}.m-login input,.m-login select{width:100%;border:2px solid #cfe6fb;border-radius:14px;padding:13px 15px;font-size:16px}.m-zods{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.m-zods button{border:2px solid transparent;background:#f1f8ff;border-radius:12px;padding:8px 0;font-size:22px}.m-zods button.on{border-color:var(--brand-orange);background:#fff2e0}.m-note{font-size:12px;color:var(--ink-soft);line-height:1.5}.m-err{color:var(--brand-red);font-weight:700;font-size:14px}.m-zods button{min-height:56px;min-width:0;display:flex;align-items:center;justify-content:center}.m-zods button .z-icon{width:100%;height:40px;object-fit:contain;display:block}.m-head .z-icon{height:28px;width:28px;object-fit:contain;display:block}.z-frame{background-repeat:no-repeat;background-position:center bottom}.m-zods button .z-frame{height:44px}.m-head .z-frame{background-position:center}.m-head .m-me-zod{display:flex;align-items:center;font-size:22px;line-height:1}.m-head .brand-logo{height:30px;width:auto;display:block}.m-app{height:100dvh;overflow:hidden}.m-app .m-body{overflow:hidden}.m-app .m-card{flex:none}.m-app .m-feed{flex:1 1 auto;min-height:0}.m-dock{flex:none;display:flex;flex-direction:column;gap:10px;position:relative}.m-dock .m-err{position:absolute;left:0;right:0;bottom:calc(100% + 8px);background:#fff;border-radius:12px;padding:8px 12px;box-shadow:var(--shadow-card)}.m-prefill{background:#fff7ea;border:1px solid #ffd9a0;border-radius:12px;padding:10px 12px;margin:0 0 12px;font-size:14px;color:#8a5200}.m-prefill b{font-size:19px;color:var(--brand-orange-deep)}.m-prefill span{color:var(--ink-soft);font-size:13px}.m-reactions{grid-template-columns:repeat(5,minmax(0,1fr))}.m-photo-btn{min-width:0;border:none;border-radius:16px;padding:12px 0;font-size:24px;background:linear-gradient(180deg,#fff,#ffe9cc);box-shadow:var(--shadow-card)}.m-photo-btn:active{transform:scale(.94)}.m-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:end center;background:#0e2d5e8c;padding:16px}.m-sheet-card{width:100%;max-width:460px;background:#fff;border-radius:20px 20px 14px 14px;padding:16px;display:grid;gap:10px;margin-bottom:env(safe-area-inset-bottom)}.m-sheet-card h3{margin:0;font-size:17px;color:var(--brand-blue-deep)}.m-sheet-card img{width:100%;max-height:42vh;object-fit:contain;border-radius:12px;background:#f1f6fb}.m-sheet-card input{width:100%;border:2px solid #cfe6fb;border-radius:12px;padding:11px 14px;font-size:16px}
