:root{color-scheme:dark;--bg:#10101d;--panel:#191927;--line:rgba(195,198,255,.1);--muted:#9291ab;--text:#f5f3ff;--accent:#b7a5ff;--cyan:#66e6ff;--orange:#ffb076;--violet:#8664f8;--green:#6ce3bb;font-family:Inter,"Segoe UI","Microsoft YaHei",system-ui,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer;border:0;color:inherit;touch-action:manipulation}button:disabled{opacity:.42;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}button{transition:background .18s,transform .18s,box-shadow .18s}button:active:not(:disabled){transform:scale(.975)}svg{width:22px;height:22px;flex-shrink:0}button svg{pointer-events:none}a{color:var(--cyan)}input{color:var(--text)}input[type=range]{accent-color:var(--accent);height:28px;cursor:pointer}input[type=text],input[type=number],select{border:1px solid var(--line);border-radius:10px;background:#11121f;padding:12px 14px;min-width:0}input[type=text]:focus{border-color:var(--accent)}h1,h2,h3,p{margin:0}h1{font-size:28px;letter-spacing:1px}h2{font-size:20px}p{color:var(--muted);line-height:1.7}small{color:var(--muted)}.app-header{height:82px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:#11111f;position:relative;z-index:4}.brand{display:flex;gap:12px;align-items:center;background:none;padding:0;text-align:left}.brand img{width:45px;height:45px}.brand strong{font-size:20px;letter-spacing:3px;display:block}.brand small{font:9px/1.7 "Segoe UI",sans-serif;letter-spacing:4.5px;color:#aba4c8}.header-actions{display:flex;align-items:center;gap:12px}.pill{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:99px;padding:9px 14px;font-size:12px;color:#b6b2ca;background:#1a192a}.dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 8px #64ddb55c}.dot.demo{background:var(--accent);box-shadow:0 0 8px #b7a5ff55}.icon-btn{background:#1d1d2d;border:1px solid var(--line);border-radius:12px;display:inline-flex;justify-content:center;align-items:center;width:42px;height:42px;color:#c7c2dd}.icon-btn:hover{background:#302943}.icon-btn.off{color:#827a94}.layout{display:grid;grid-template-columns:184px minmax(0,1fr);min-height:calc(100vh - 82px)}.sidebar{padding:26px 16px 24px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.nav-label{font-size:10px;letter-spacing:2px;color:#656078;padding:8px 15px 12px}.nav-btn{display:flex;gap:12px;align-items:center;border-radius:10px;background:transparent;color:#9290a8;padding:15px 16px;font-size:14px;text-align:left;position:relative}.nav-btn:hover{background:#1c1a2e;color:#e3dcfb}.nav-btn.active{color:#c9baff;background:linear-gradient(90deg,#32264e,#27213e)}.nav-btn.active:before{content:"";width:3px;height:22px;background:var(--accent);position:absolute;left:0;border-radius:3px}.nav-btn svg{width:19px;height:19px}.side-bottom{margin-top:auto;padding:20px 12px 0}.school-badge{display:flex;gap:9px;color:#aca1c6;font-size:12px;align-items:center;margin-bottom:9px}.side-bottom p{font-size:10px;color:#625f77}.main{padding:30px 36px 24px;max-width:1640px;width:100%;margin:0 auto}.greeting{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:20px}.eyebrow{font-size:10px;letter-spacing:2.8px;color:#7e7798;font-weight:600;margin-bottom:9px}.greeting p{font-size:12px;margin-top:8px}.device-summary{display:flex;align-items:center;gap:11px;text-align:right}.device-orbits{display:flex;gap:5px}.device-orbits i{width:7px;height:23px;border-radius:4px;background:#332e49;transform:skew(-12deg)}.device-orbits i.online{background:#75dabb;box-shadow:0 0 10px #6ce3bb33}.device-summary strong{font-size:13px;font-weight:500;display:block}.device-summary small{font-size:10px}.hero{height:330px;min-height:280px;border:1px solid #69529065;border-radius:20px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 77% 35%,#342660,#171626 80%);box-shadow:0 20px 60px #0002}.hero canvas{position:absolute;inset:0;width:100%;height:100%}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#171526f2 0%,#171526dd 23%,#17152645 48%,transparent 70%);pointer-events:none}.hero-content{position:relative;z-index:1;padding:30px 34px;width:52%;height:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.hero-tag{display:flex;align-items:center;gap:8px;color:#dac9ff;font-size:10px;letter-spacing:1px;margin-bottom:14px}.hero-tag svg{width:14px;height:14px}.hero h2{font-size:43px;font-weight:750;letter-spacing:6px;line-height:1.2}.hero .english{font:10px/1.6 "Segoe UI",sans-serif;color:#9d88bf;letter-spacing:5px;margin-top:8px}.hero p{font-size:12px;color:#aaa1c0;max-width:290px;margin:14px 0 20px;line-height:1.8}.button{padding:12px 22px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:13px;font-weight:600;min-height:44px;white-space:nowrap}.button.primary{color:#171225;background:linear-gradient(110deg,#d2c4ff,#ac98f2);box-shadow:0 5px 20px #a384f825}.button.primary:hover{box-shadow:0 6px 26px #b59cf840;filter:brightness(1.08)}.button.secondary{background:#292338;border:1px solid #514368;color:#d6c8ed}.button.ghost{background:#1e1d2e;border:1px solid var(--line);color:#bdb6d0}.button.danger{background:#492936;color:#ffb4c2}.button svg{width:17px;height:17px}.hero-foot{position:absolute;right:20px;bottom:18px;z-index:1;display:flex;gap:7px}.hero-foot span{padding:6px 10px;background:#11111fa6;border:1px solid #aa96d12b;border-radius:6px;backdrop-filter:blur(10px);font-size:10px;color:#b6afcc}.section-head{display:flex;justify-content:space-between;align-items:center;margin:26px 0 15px}.section-head h2{font-size:17px;font-weight:600;letter-spacing:1px}.section-head small{font-size:11px}.game-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.game-card{text-align:left;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#1b1a2a;padding:0;position:relative}.game-card:hover{transform:translateY(-4px);border-color:#8f79be;box-shadow:0 12px 28px #0003}.game-art{height:130px;position:relative;overflow:hidden;background:#171723}.game-art canvas{width:100%;height:100%;display:block}.game-art:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#1b1a2a88,transparent 60%)}.game-card .small-tag{position:absolute;top:10px;left:10px;z-index:1;font-size:9px;color:#ded4ee;padding:4px 7px;border-radius:4px;background:#151321a3;border:1px solid #ccc1e325}.game-info{padding:14px 16px 15px;display:flex;align-items:center;justify-content:space-between}.game-info h3{font-size:15px;letter-spacing:.6px;font-weight:600}.game-info p{font-size:10px;margin-top:5px;color:#8d859e}.card-arrow{width:27px;height:27px;border:1px solid #ffffff14;border-radius:50%;display:grid;place-items:center;color:#9282b5}.card-arrow svg{width:13px;height:13px}.bottom-strip{border-top:1px solid var(--line);margin-top:25px;padding-top:17px;display:flex;justify-content:space-between;gap:16px;color:#77718b;font-size:10px}.bottom-strip span{display:flex;align-items:center;gap:8px}.bottom-strip svg{width:14px;height:14px}.text-btn{padding:0;background:none;color:#b6a6d6;font-size:11px}.page-top{display:flex;align-items:center;gap:14px;margin-bottom:22px}.page-top h1{font-size:23px}.page-top p{font-size:11px;margin-top:5px}.page-top .back{width:38px;height:38px}.setup-layout{max-width:1200px;margin:auto}.step-line{display:flex;gap:25px;align-items:center;font-size:11px;color:#686178;margin-left:auto}.step-line span{display:flex;align-items:center;gap:7px}.step-line b{border:1px solid #625678;border-radius:50%;width:21px;height:21px;display:grid;place-items:center;font-size:10px}.step-line .active{color:#c9b5f4}.setup-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 20px;background:#1b1929;border:1px solid var(--line);border-radius:13px;margin-bottom:18px}.toolbar-title{display:flex;align-items:center;gap:12px}.toolbar-title .symbol{color:#c8b3ff;background:#362749;padding:10px;border-radius:10px}.toolbar-title h3{font-size:15px}.toolbar-title p{font-size:10px;margin-top:4px}.count-select{display:flex;align-items:center;gap:14px;font-size:12px;color:#aaa0be}.segments{display:flex;gap:5px;background:#11111e;border:1px solid var(--line);padding:4px;border-radius:9px}.segments button{padding:9px 17px;font-size:12px;color:#9f95b3;background:none;border-radius:6px}.segments button.selected{background:#a590dd;color:#171222}.team-panels{display:grid;grid-template-columns:1fr 54px 1fr;gap:10px;align-items:stretch}.team-panel{border:1px solid #34546061;border-radius:14px;padding:19px;background:linear-gradient(135deg,#16313b45,#191928 65%);min-width:0}.team-panel.orange{border-color:#664d3d70;background:linear-gradient(220deg,#4830244d,#191928 65%)}.team-heading{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:16px}.team-sigil{width:31px;height:34px;display:grid;place-items:center;color:var(--cyan);border:1px solid #6fe6ff40;background:#4aafc414;border-radius:8px}.orange .team-sigil{color:var(--orange);border-color:#ffb07640;background:#cc7e4714}.team-heading input{background:transparent;border:0;font-size:17px;padding:5px;width:100%;font-weight:600;letter-spacing:1px}.team-heading .edit-icon{color:#706983;width:14px}.team-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.team-slots.single{grid-template-columns:1fr}.player-slot{height:128px;border:1px solid #ffffff0a;background:#1416218c;border-radius:10px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:15px;text-align:left;padding:12px}.player-slot.selected{outline:1px solid var(--accent);background:#292339}.player-slot.connected{border-color:#56dccc55;box-shadow:inset 0 0 18px #60d6d008}.orange .player-slot.connected{border-color:#f9aa6550}.slot-empty{display:flex;flex-direction:column;gap:8px;color:#837c98;font-size:11px}.slot-empty svg{width:28px;height:28px}.player-avatar{width:57px;height:82px;flex-shrink:0;filter:drop-shadow(0 6px 7px #0008)}.player-avatar svg{width:100%;height:100%}.player-avatar.drop{animation:playerDrop .75s cubic-bezier(.2,.9,.4,1.15) both}.avatar-halo{position:absolute;width:70px;height:13px;border-radius:50%;bottom:10px;background:#6cdef41a;box-shadow:0 0 16px #6cdef455}.orange .avatar-halo{background:#efa97020;box-shadow:0 0 16px #efa97055}.player-details{min-width:0}.player-details strong{font-size:12px;display:block;margin-bottom:7px}.player-details small{font-size:9px;display:flex;gap:5px;align-items:center}.player-details .live-number{font-size:23px;font-family:Consolas,monospace;font-weight:600;color:var(--cyan);margin-top:7px;display:block}.orange .live-number{color:var(--orange)}.player-details .live-number i{font-style:normal;font-family:inherit;font-size:9px;font-weight:400;color:#7b798e;padding-left:4px}.remove-player{position:absolute;right:6px;top:5px;background:none;color:#6b647c;padding:4px;font-size:12px}.versus{display:flex;align-items:center;justify-content:center;font:italic 800 22px "Segoe UI",sans-serif;color:#7b657f}.device-panel{margin-top:20px;border:1px solid var(--line);border-radius:13px;padding:16px 18px;background:#171625}.device-panel-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:13px}.device-panel-head h3{font-size:13px;font-weight:500}.device-panel-head p{font-size:10px}.device-list{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}.band-card{background:#232031;border:1px solid #ffffff0a;border-radius:9px;padding:10px 5px;text-align:center;position:relative}.band-card.assigned{border-color:#82709470;background:#30283d}.band-card.linked:before{content:"";position:absolute;top:7px;right:7px;width:5px;height:5px;border-radius:50%;background:#73e2bd;box-shadow:0 0 7px #73e2bd}.band-card svg{color:#aaa0c1;width:30px;height:24px}.band-card strong{display:block;font-size:10px;font-weight:500;margin:4px 0}.band-card small{display:block;font-size:8px;color:#71677e}.setup-footer{display:flex;align-items:center;justify-content:space-between;margin-top:20px;gap:16px}.setup-footer p{font-size:10px;max-width:50%}.setup-footer>div{display:flex;gap:10px}.hint-bubble{padding:11px 14px;margin:14px 0;border-radius:8px;background:#34264770;color:#bbabd6;font-size:11px;line-height:1.7;border:1px solid #9e75d822}.game-page{height:calc(100vh - 82px);min-height:560px;display:flex;flex-direction:column;position:relative;overflow:hidden;background:#111320}.game-topbar{height:68px;display:flex;align-items:center;justify-content:space-between;padding:12px 28px;position:absolute;top:0;left:0;right:0;z-index:2;background:linear-gradient(#0e1024fa,#0e102411)}.game-title{display:flex;align-items:center;gap:13px}.game-title h2{font-size:17px;letter-spacing:2px}.game-title small{font-size:10px}.game-timer{text-align:center;position:absolute;left:50%;transform:translateX(-50%)}.game-timer span{display:block;font:24px/1 Consolas,monospace;letter-spacing:2px}.game-timer small{font-size:8px;letter-spacing:2px;color:#a39bb9}.game-buttons{display:flex;gap:9px}.game-canvas-wrap{position:absolute;inset:0 0 135px}.game-canvas-wrap canvas{display:block;width:100%;height:100%}.battle-teams{position:absolute;left:4%;right:4%;top:83px;display:flex;justify-content:space-between;z-index:1;pointer-events:none}.battle-team{width:240px;max-width:32%;text-shadow:0 2px 6px #000}.battle-team.b{text-align:right}.battle-team .team-label{color:var(--cyan);font-size:10px;letter-spacing:2px}.battle-team.b .team-label{color:var(--orange)}.battle-team h3{font-size:23px;margin:6px 0;letter-spacing:2px}.battle-team .metric{font:31px/1.4 Consolas,monospace;color:var(--cyan)}.battle-team.b .metric{color:var(--orange)}.metric small{font:10px "Microsoft YaHei",sans-serif;color:#aaa0ba;margin-left:5px}.team-submetric{font-size:10px;color:#ab9ec0}.battle-meter{position:absolute;top:85px;left:36%;right:36%;z-index:1;text-align:center}.balance-track{background:linear-gradient(90deg,#63e7ffb3,#6f91f980 45%,#d1ade16e 55%,#ffb375b3);height:6px;border-radius:5px;position:relative;margin-top:13px}.balance-marker{height:15px;width:4px;position:absolute;left:50%;top:-4px;border-radius:4px;background:#fff;box-shadow:0 0 10px white}.battle-meter small{font-size:9px;color:#a99bbf;letter-spacing:2px}.game-instruction{position:absolute;left:50%;transform:translateX(-50%);bottom:166px;padding:10px 19px;background:#121323b8;backdrop-filter:blur(10px);border:1px solid #9f7ac334;border-radius:99px;font-size:11px;color:#cdc1e3;z-index:1;white-space:nowrap}.telemetry{height:135px;position:absolute;bottom:0;left:0;right:0;border-top:1px solid #7f78a026;background:#151321f5;display:grid;grid-template-columns:1fr 130px 1fr;gap:16px;padding:16px 26px}.telemetry-group{display:flex;gap:9px;min-width:0;align-items:stretch}.telemetry-group.b{flex-direction:row-reverse}.telemetry-card{background:linear-gradient(130deg,#22435155,#201b3055);border:1px solid #67deea26;border-radius:11px;padding:10px;flex:1;max-width:220px;min-width:0;display:flex;gap:8px;align-items:center;position:relative;overflow:hidden}.telemetry-group.b .telemetry-card{background:linear-gradient(230deg,#49342565,#201b3055);border-color:#ffc08226}.telemetry-card .player-avatar{width:39px;height:58px}.telemetry-card .data{flex:1;min-width:0}.telemetry-card .data>small{display:block;font-size:9px;color:#a8a1b9;white-space:nowrap}.telemetry-card .data>strong{font:26px/1.2 Consolas,monospace;color:var(--cyan);display:block;margin-top:3px}.telemetry-group.b .data>strong{color:var(--orange)}.micro-track{height:3px;border-radius:3px;background:#ffffff12;margin-top:7px;overflow:hidden}.micro-track span{display:block;height:100%;background:var(--cyan);transition:width .3s}.telemetry-group.b .micro-track span{background:var(--orange)}.quality-dot{width:5px;height:5px;border-radius:50%;background:#72e0b8;position:absolute;right:8px;top:8px;box-shadow:0 0 7px #73e2bd}.quality-dot.bad{background:#ff7085}.telemetry-label{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;color:#9886b3;font-size:10px}.telemetry-label svg{width:25px;height:25px;color:#b9a1e7}.telemetry-label small{font-size:8px;letter-spacing:1px;color:#645a79}.demo-controls{position:absolute;right:25px;bottom:153px;z-index:3;display:flex;gap:8px;align-items:center}.demo-toggle{font-size:9px;color:#a59abb;padding:7px 10px;background:#1d1935bd;border:1px solid #9078b630;border-radius:8px}.demo-panel{position:absolute;bottom:38px;right:0;width:240px;padding:14px;border-radius:11px;background:#201a30f5;border:1px solid #59416e;box-shadow:0 10px 50px #0008}.demo-panel p{font-size:10px;margin-bottom:9px}.demo-panel label{font-size:10px;display:flex;justify-content:space-between;align-items:center;margin:5px 0}.demo-panel input{width:130px}.countdown-overlay,.pause-overlay{position:absolute;inset:0;z-index:8;background:#10112594;backdrop-filter:blur(8px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.countdown-overlay strong{font:800 130px/1.3 "Segoe UI",sans-serif;color:#e4d6ff;text-shadow:0 0 60px #b191fb9c;animation:countPop .75s ease-out infinite}.countdown-overlay p{font-size:14px;color:#d3c2ed;letter-spacing:5px}.pause-overlay h2{font-size:28px;margin-bottom:12px}.pause-overlay p{font-size:13px;margin-bottom:23px;max-width:420px}.pause-overlay .actions{display:flex;gap:12px}.match-event{position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);font-size:24px;font-weight:700;letter-spacing:3px;color:#fff;text-shadow:0 0 24px #b59bef;z-index:3;pointer-events:none;animation:eventPop 1.8s ease-out both}.modal-shade{position:fixed;inset:0;background:#080815be;backdrop-filter:blur(10px);z-index:20;display:flex;align-items:center;justify-content:center;padding:28px}.modal{width:570px;max-width:100%;max-height:90vh;overflow:auto;background:linear-gradient(145deg,#272036,#191727);border:1px solid #81629950;border-radius:20px;padding:27px;box-shadow:0 35px 100px #0008}.modal.large{width:900px}.modal-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-heading h2{font-size:20px;letter-spacing:1px}.modal-heading .icon-btn{width:33px;height:33px}.modal p{font-size:12px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}.setting-row strong{font-size:13px;font-weight:500}.setting-row small{display:block;font-size:10px;margin-top:5px}.switch{width:40px;height:24px;background:#3a314b;border-radius:20px;padding:3px;position:relative;flex-shrink:0}.switch:before{content:"";display:block;width:18px;height:18px;border-radius:50%;background:#857794;transition:transform .2s}.switch.on{background:#9074ce}.switch.on:before{background:#f2eaff;transform:translateX(16px)}.setting-row select{font-size:11px;padding:8px 10px;max-width:160px}.setting-row input[type=range]{width:160px}.modal-footer{margin-top:23px;display:flex;justify-content:flex-end;gap:10px}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.mode-option{padding:17px;text-align:left;border:1px solid var(--line);background:#181525;border-radius:10px}.mode-option.selected{border-color:#a88cdb;background:#38294f}.mode-option strong{font-size:13px;display:block}.mode-option small{font-size:10px;line-height:1.7;display:block;margin-top:7px}.help-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:22px}.help-step{border:1px solid var(--line);border-radius:12px;padding:18px;background:#171423}.help-step b{font:25px Consolas,monospace;color:#9276bd}.help-step h3{font-size:13px;margin:13px 0 8px}.help-step p{font-size:11px}.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:17px}.rule-box{padding:15px;background:#171522;border:1px solid var(--line);border-radius:10px}.rule-box h3{font-size:13px;margin-bottom:8px;color:#d3c1ed}.rule-box p{font-size:11px}.history-list{display:flex;flex-direction:column;gap:10px}.history-row{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#181523;border:1px solid var(--line);border-radius:10px;padding:15px}.history-row strong{font-size:12px;display:block}.history-row small{font-size:9px;display:block;margin-top:6px}.history-row b{font-size:12px;color:#d6baff}.empty-state{text-align:center;padding:48px 10px}.empty-state svg{width:36px;height:36px;color:#8c6bad;margin-bottom:13px}.empty-state h3{font-size:15px;margin-bottom:7px}.result{max-width:900px;width:100%;margin:auto;padding:35px 25px;text-align:center}.result .eyebrow{letter-spacing:5px;color:#b895ed}.trophy{margin:5px auto 15px;width:80px;height:80px;background:radial-gradient(#f5c77330,transparent 70%);color:#ffd693;filter:drop-shadow(0 0 30px #ebaf6340)}.trophy svg{width:75px;height:75px;stroke-width:1.2}.result h1{font-size:37px;margin:0 0 9px;letter-spacing:4px}.result>p{font-size:12px}.result-stats{display:grid;grid-template-columns:1fr 90px 1fr;gap:14px;align-items:center;margin:26px 0}.result-team{padding:20px;border-radius:13px;border:1px solid #6fcfdd2b;background:#1a2d3e44}.result-team.b{border-color:#e6a2732b;background:#382b2444}.result-team h3{font-size:16px;margin-bottom:12px}.result-team strong{font:36px Consolas,monospace;color:var(--cyan)}.result-team.b strong{color:var(--orange)}.result-team small{display:block;font-size:10px;margin-top:7px}.result-team .roster-names{font-size:10px;color:#928a9f;margin-top:15px}.result-vs{font:italic 700 23px "Segoe UI",sans-serif;color:#70596f}.result-actions{display:flex;justify-content:center;gap:11px;margin-top:24px}.result-note{font-size:10px;color:#746980;margin-top:18px}.wheel-layout{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}.wheel-wrap{width:320px;height:320px;margin:14px auto;position:relative}.wheel-pointer{position:absolute;left:50%;transform:translateX(-50%);top:-9px;z-index:3;width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-top:28px solid #f9d389;filter:drop-shadow(0 3px 3px #0008)}.wheel{width:100%;height:100%;border-radius:50%;border:7px solid #6d537f;box-shadow:0 0 0 2px #bb99d03b,0 12px 35px #0007;background:conic-gradient(#583d75 0deg 45deg,#352d53 45deg 90deg,#67466f 90deg 135deg,#373255 135deg 180deg,#67466f 180deg 225deg,#383251 225deg 270deg,#644376 270deg 315deg,#352d53 315deg 360deg);position:relative;transition:transform 5s cubic-bezier(.13,.67,.08,1)}.wheel-label{position:absolute;left:50%;top:50%;width:140px;margin-left:-70px;height:20px;margin-top:-10px;text-align:center;font-size:11px;color:#e3d4ee;transform-origin:center}.wheel-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:62px;height:62px;border-radius:50%;background:linear-gradient(150deg,#dec4ff,#a584cb);color:#2d1c40;display:grid;place-items:center;font-size:16px;font-weight:700;box-shadow:0 0 0 6px #251a3780}.wheel-detail h3{font-size:19px;margin:12px 0;color:#f0dafc}.wheel-detail p{font-size:12px}.wheel-detail .button{width:100%;margin-top:18px}.wheel-result{padding:17px;border:1px solid #b488d633;border-radius:10px;background:#392845;margin-top:17px;color:#ecd6ff;font-size:13px;line-height:1.8;min-height:80px}.challenge-options{font-size:10px;color:#a18cae;margin-top:14px;line-height:1.8}#toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);z-index:50;padding:12px 20px;background:#342741f2;border:1px solid #8b70a863;border-radius:10px;color:#ebdef7;font-size:12px;box-shadow:0 8px 30px #0005;opacity:0;transition:.2s;pointer-events:none;max-width:80%;text-align:center}#toast.visible{opacity:1;transform:translate(-50%,0)}.rotate-hint{display:none}.device-management-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:18px 0}.managed-device{background:#1b1828;border:1px solid var(--line);padding:19px;border-radius:13px;text-align:center}.managed-device>svg{width:55px;height:45px;color:#baa5d9;margin:6px 0 12px}.managed-device.online{border-color:#72dcc44a}.managed-device h3{font-size:14px;margin-bottom:6px}.managed-device p{font-size:10px}.managed-device .button{margin-top:14px;width:100%;font-size:11px;min-height:36px;padding:8px}.managed-device .metric{font:25px Consolas,monospace;color:var(--cyan);margin-top:10px}.managed-device .metric small{font-size:9px}.connection-line{font-size:10px;color:#64d8b3;display:flex;align-items:center;justify-content:center;gap:5px;margin-top:9px}.connection-line.offline{color:#777083}.info-box{background:#251f34;padding:14px 17px;border:1px solid #9478b529;border-radius:10px;color:#a99bbb;font-size:11px;line-height:1.8}.loading{animation:pulse 1s infinite}.app-credit{color:#514b64;font-size:9px;letter-spacing:1px}.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;top:-15px;width:5px;height:11px;background:#bda3ff;animation:confetti 3.5s linear infinite}.confetti i:nth-child(even){background:#ffbc78}
@keyframes playerDrop{0%{transform:translateY(-180px) scale(.7);opacity:0}65%{transform:translateY(6px) scale(1.08,.92);opacity:1}85%{transform:translateY(-6px) scale(.98,1.02)}100%{transform:none;opacity:1}}@keyframes pulse{50%{opacity:.4}}@keyframes countPop{0%{transform:scale(1.15);opacity:0}20%{opacity:1}100%{transform:scale(.9);opacity:1}}@keyframes eventPop{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}15%{opacity:1;transform:translate(-50%,-50%) scale(1)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-70%) scale(1.1)}}@keyframes confetti{to{transform:translateY(600px) rotate(540deg);opacity:0}}
@media(min-width:1600px){.main{padding:35px 48px}.hero{height:390px}.game-art{height:170px}.hero h2{font-size:51px}.hero-content{padding:40px}.hero p{font-size:14px}.game-info{padding:20px}.greeting{margin-bottom:28px}}
@media(max-width:1150px){.app-header{height:70px;padding:0 22px}.layout{grid-template-columns:155px minmax(0,1fr);min-height:calc(100vh - 70px)}.sidebar{padding:21px 10px}.nav-btn{padding:14px 12px;font-size:12px;gap:9px}.main{padding:24px}.hero{height:295px}.hero-content{padding:25px}.hero h2{font-size:37px}.hero p{font-size:11px}.game-grid{gap:12px}.game-art{height:110px}.game-info{padding:12px}.game-info h3{font-size:13px}.game-info p{font-size:9px}.game-page{height:calc(100vh - 70px)}.telemetry-card .player-avatar{width:27px}.telemetry-card{padding:9px 6px;gap:4px}.telemetry{grid-template-columns:1fr 86px 1fr;padding:14px 16px;gap:9px}.telemetry-card .data>strong{font-size:23px}.player-slot{padding:9px;gap:6px}.team-panel{padding:14px}.device-panel{padding:14px}.step-line{gap:12px}.greeting h1{font-size:25px}}
@media(max-width:930px){.layout{grid-template-columns:76px minmax(0,1fr)}.sidebar{padding:22px 10px}.nav-btn{justify-content:center;padding:16px}.nav-btn span,.nav-label,.side-bottom{display:none}.nav-btn svg{width:21px;height:21px}.main{padding:20px}.hero{height:285px}.hero-content{width:55%}.hero h2{font-size:32px}.hero p{max-width:240px}.game-art{height:95px}.game-info{padding:11px 9px}.card-arrow{display:none}.bottom-strip{margin-top:18px;font-size:9px}.device-summary{display:none}.game-instruction{bottom:155px;font-size:10px}.step-line{display:none}.segments button{padding:8px 12px}.battle-team h3{font-size:18px}.battle-team .metric{font-size:26px}.telemetry{height:125px}.game-canvas-wrap{bottom:125px}.telemetry-card .player-avatar{display:none}.demo-controls{bottom:140px}.telemetry-label{font-size:8px}.team-slots{gap:7px}.player-slot{height:115px}.player-avatar{width:43px;height:67px}.device-list{gap:6px}.setup-footer p{max-width:43%}.wheel-wrap{width:275px;height:275px}.wheel-label{width:120px;margin-left:-60px;font-size:10px}.help-steps{gap:8px}}
@media(max-height:850px) and (min-width:700px){.app-header{height:62px}.layout{min-height:calc(100vh - 62px)}.main{padding-top:20px}.greeting{margin-bottom:18px}.greeting h1{font-size:24px}.greeting .eyebrow{margin-bottom:6px}.hero{height:272px;min-height:250px}.hero-content{padding-top:23px;padding-bottom:23px}.hero h2{font-size:36px}.hero p{margin:12px 0 14px}.section-head{margin:20px 0 12px}.game-art{height:105px}.bottom-strip{margin-top:18px;padding-top:13px}.game-page{height:calc(100vh - 62px);min-height:470px}.game-canvas-wrap{bottom:116px}.telemetry{height:116px;padding-top:12px;padding-bottom:12px}.game-instruction{bottom:136px}.demo-controls{bottom:129px}.battle-teams{top:71px}.battle-meter{top:75px}.battle-team h3{font-size:18px}.battle-team .metric{font-size:25px}.result{padding-top:20px}.result .trophy{height:57px;width:57px;margin-bottom:10px}.trophy svg{height:57px;width:57px}.result h1{font-size:29px}.result-stats{margin:18px 0}.result-team{padding:14px}.result-actions{margin-top:18px}.page-top{margin-bottom:16px}.setup-toolbar{padding:12px 15px}.team-heading{padding-bottom:11px;margin-bottom:12px}.player-slot{height:110px}.setup-footer{margin-top:16px}.device-panel{margin-top:15px}.team-panel{padding:14px}.modal{max-height:94vh}}
@media(max-width:700px) and (orientation:portrait){.rotate-hint{display:flex;position:fixed;inset:0;background:radial-gradient(ellipse at center,#2a2047,#10101d 75%);z-index:100;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px}.rotate-hint span{font-size:76px;color:#c4aaf2}.rotate-hint strong{font-size:23px;margin:25px 0 12px}.rotate-hint p{font-size:13px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;animation-iteration-count:1!important}}

.device-summary small svg,.text-btn>svg{width:13px;height:13px;vertical-align:middle}.device-summary small{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin-top:6px}.player-slot:focus-visible{outline-color:var(--cyan)}

/* Second edition: more expressive games and a full-team ceremony. */
.lobby-soundbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 18px;margin:-3px 0 16px;background:linear-gradient(95deg,#312649,#222336);border:1px solid #8366b234;border-radius:12px}.lobby-soundbar>div{display:flex;gap:14px;align-items:center}.lobby-soundbar strong{display:block;font-size:12px;color:#e1d4fa;font-weight:600}.lobby-soundbar small{display:block;font-size:9px;margin-top:4px;color:#9c8cae}.lobby-soundbar .button{font-size:11px;padding:9px 15px;min-height:35px}.equalizer{display:flex;align-items:center;gap:3px;height:25px}.equalizer i{width:3px;height:10px;border-radius:3px;background:#b599f4;animation:musicbar .7s ease-in-out infinite alternate}.equalizer i:nth-child(2){height:20px;animation-delay:-.2s}.equalizer i:nth-child(3){height:15px;animation-delay:-.4s}.equalizer i:nth-child(4){height:25px;animation-delay:-.1s}.equalizer i:nth-child(5){height:13px;animation-delay:-.3s}@keyframes musicbar{to{transform:scaleY(.35);opacity:.6}}
.game-race .battle-meter,.game-hunt .battle-meter,.game-hammer .battle-meter{display:none}.game-race .battle-teams{top:67px;left:25px;right:25px}.game-race .battle-team{padding:9px 14px;background:#14192dcf;border:1px solid #a2cee533;border-radius:11px;max-width:24%;width:235px}.game-race .battle-team h3{font-size:16px;margin:4px 0}.game-race .battle-team .metric{font-size:21px}.game-race .battle-team .team-label{font-size:8px}.game-race .team-submetric{font-size:9px}.game-race .game-instruction{bottom:143px;background:#17293de8;border-color:#60c9ee55;font-size:10px;left:50%;padding:7px 14px;opacity:.92}.game-race .game-canvas-wrap{background:#81c9df}.game-hunt .battle-teams{top:69px;left:24px;right:24px}.game-hunt .battle-team{max-width:35%;width:330px;padding:9px 13px;background:linear-gradient(105deg,#112b25cc,#132d2200);border-radius:9px}.game-hunt .battle-team.b{background:linear-gradient(255deg,#162924cc,#132d2200)}.game-hunt .battle-team h3{font-size:17px;margin:5px 0}.game-hunt .battle-team .metric{font-size:22px}.game-hunt .battle-team .team-label{font-size:8px}.game-hunt .team-submetric{font-size:10px;color:#ddf1d9}.game-hunt .game-instruction{display:none}.hunt-targets{display:none}.game-hammer .battle-teams{top:70px}.game-hammer .battle-team h3{font-size:19px;margin:3px 0}.game-hammer .battle-team .metric{font-size:23px}.game-hammer .battle-team .team-label{font-size:8px}.hammer-turnline{position:absolute;z-index:2;top:153px;left:50%;transform:translateX(-50%);display:flex;gap:7px;padding:8px 11px;background:#111b30b8;border:1px solid #d1b4f323;backdrop-filter:blur(9px);border-radius:12px}.hammer-turnline>span{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #56c9ed2b;background:#16334c85;width:42px;height:43px;font:600 15px Consolas,monospace;color:#96ddf9;border-radius:7px;transition:.3s}.hammer-turnline>span.b{border-color:#dfab612b;background:#402d2585;color:#f5c689}.hammer-turnline>span small{font:8px 'Microsoft YaHei',sans-serif;margin-top:4px;color:inherit;opacity:.6}.hammer-turnline>span.active{transform:translateY(-4px);background:#395577;border-color:#b1eaff;box-shadow:0 0 16px #91d4ff44;color:#fff}.hammer-turnline>span.incoming{border-color:#ffdfa1;animation:incomingPulse .5s alternate infinite}.awards-page{position:relative;min-height:calc(100vh - 82px);padding:26px 32px 24px;background:radial-gradient(ellipse at 50% 30%,#313251,#111623 72%);overflow:hidden}.awards-heading{text-align:center;position:relative;z-index:2}.award-kicker{font:600 10px 'Segoe UI',sans-serif;letter-spacing:5px;color:#e9c78f}.awards-heading h1{font-size:32px;letter-spacing:3px;color:#ffdf9f;margin:9px 0;text-shadow:0 0 25px #eac0822b;animation:awardtitle 1s cubic-bezier(.1,.8,.3,1) both}.awards-heading p{font-size:12px;color:#b1a4c6}.awards-stage{height:350px;position:relative;max-width:1200px;margin:5px auto 0;border-radius:20px;overflow:hidden;mask-image:linear-gradient(to bottom,transparent,#000 5%,#000 94%,transparent)}.awards-stage canvas{width:100%;height:100%;display:block}.ceremony-badge{position:absolute;top:8px;left:50%;transform:translateX(-50%);font-size:10px;color:#d8c3a1;letter-spacing:2px;white-space:nowrap;z-index:2}.champion-lineup{position:absolute;bottom:7px;left:0;right:0;display:flex;justify-content:center;gap:10px;flex-wrap:wrap;z-index:2}.champion-lineup>span{font-size:10px;display:flex;align-items:center;gap:5px;padding:6px 10px;background:#171b2de0;color:#f1d8a6;border:1px solid #c2a36b40;border-radius:7px;animation:championBadge 1s both}.champion-lineup>span:nth-child(2){animation-delay:.2s}.champion-lineup>span:nth-child(3){animation-delay:.4s}.champion-lineup>span:nth-child(4){animation-delay:.6s}.champion-lineup svg{width:11px;height:11px}.awards-scorebar{display:flex;align-items:center;justify-content:center;max-width:800px;margin:12px auto 0;background:#171a2ce3;border:1px solid #b29ab127;border-radius:13px;padding:13px 20px;gap:24px}.award-score{display:flex;align-items:baseline;gap:10px;color:#8adfff;flex:1;justify-content:center}.award-score.b{color:#ffcc98}.award-score span{font-size:12px}.award-score strong{font:24px Consolas,monospace}.award-score small{font-size:8px;color:#86798f}.award-vs{font:italic 700 17px 'Segoe UI';color:#776782}.award-match-info{font-size:11px;color:#ad9db9;border-left:1px solid #ffffff18;padding-left:23px;text-align:center}.award-match-info small{display:block;font-size:8px;color:#766884;margin-top:5px}.awards-page .result-actions{margin-top:17px}.game-card:hover .game-art{filter:brightness(1.13)}@keyframes awardtitle{from{transform:scale(.6) translateY(15px);opacity:0}to{transform:none;opacity:1}}@keyframes championBadge{from{transform:translateY(22px);opacity:0}to{transform:none;opacity:1}}
@media(max-height:850px){.lobby-soundbar{padding:9px 14px;margin-bottom:12px}.hero{height:245px;min-height:235px}.hero h2{font-size:34px}.hero p{margin:10px 0 12px}.greeting{margin-bottom:14px}.game-race .game-instruction{bottom:127px}.awards-page{min-height:calc(100vh - 62px);padding:18px 25px}.awards-stage{height:340px}.awards-heading h1{font-size:28px}.game-hammer .hammer-turnline{top:140px}.awards-scorebar{margin-top:7px}.awards-page .result-actions{margin-top:14px}}
@media(max-height:690px){.awards-page{padding:12px 20px}.awards-heading h1{font-size:24px;margin:6px 0}.awards-heading p{font-size:10px}.awards-stage{height:260px}.award-kicker{font-size:8px}.awards-scorebar{padding:9px 16px}.award-score strong{font-size:20px}.awards-page .result-actions{margin-top:10px}.awards-page .button{min-height:37px;padding:9px 16px;font-size:11px}.champion-lineup span{padding:4px 7px;font-size:9px}.game-race .battle-teams{top:59px}.game-race .battle-team{padding:6px 9px}.game-race .battle-team .metric{font-size:17px}.game-race .battle-team h3{font-size:13px}.game-race .game-instruction{display:none}.game-hammer .hammer-turnline{top:117px;padding:5px 8px}.hammer-turnline>span{height:34px;width:35px;font-size:13px}.game-hammer .battle-teams{top:60px}.game-hammer .battle-team h3{font-size:16px}.game-hammer .battle-team .metric{font-size:20px}.game-hunt .battle-teams{top:61px}.game-hunt .battle-team h3{font-size:14px}.game-hunt .battle-team .metric{font-size:18px}.game-hunt .team-submetric{font-size:8px}}
@media(max-width:1000px){.awards-scorebar{gap:12px}.award-score{gap:6px}.award-score small{display:none}.award-match-info{padding-left:12px}.awards-heading h1{font-size:24px}.game-race .battle-team{max-width:24%}.game-race .team-submetric{font-size:8px}.game-hammer .hammer-turnline{gap:4px}.game-hunt .team-submetric{font-size:8px}}

/* Focus Sprint: the map owns the upper stage and every runner keeps a compact
   telemetry card below it. The layout is sized for a 1024x600 landscape tablet
   while still giving six cards enough room for a readable live value. */
.game-run .game-canvas-wrap{top:60px;bottom:102px;background:#0b2133}
.game-run .battle-meter{display:none}
.game-run .battle-teams{top:66px;left:24px;right:24px;pointer-events:none}
.game-run .battle-team{width:230px;max-width:29%;padding:7px 11px;border:1px solid #61d8e62d;border-radius:10px;background:#091b2acc;backdrop-filter:blur(8px)}
.game-run .battle-team.b{border-color:#f9ad6835;background:#241a17cc}
.game-run .battle-team .team-label{font-size:8px;letter-spacing:1.5px}
.game-run .battle-team h3{font-size:16px;margin:3px 0}
.game-run .battle-team .metric{font-size:23px;line-height:1.1}
.game-run .team-submetric{font-size:9px;white-space:nowrap}
.game-run .game-instruction{bottom:111px;padding:7px 14px;font-size:9px;background:#081c2ccc;border-color:#71dae744}
.game-run .telemetry{height:102px;grid-template-columns:1fr 82px 1fr;gap:8px;padding:8px 16px;background:#101d2bf7}
.game-run .telemetry-group{gap:5px}
.game-run .telemetry-card{padding:6px;gap:5px;border-radius:8px}
.game-run .telemetry-card .player-avatar{width:25px;height:40px}
.game-run .telemetry-card .data>small{font-size:8px}
.game-run .telemetry-card .data>strong{font-size:20px;margin-top:2px}
.game-run .micro-track{margin-top:4px}
.game-run .telemetry-label{gap:3px;font-size:8px}
.game-run .telemetry-label svg{width:20px;height:20px}
.game-run .telemetry-label small{font-size:7px;letter-spacing:.5px}
.game-run .demo-controls{bottom:111px}
@media(max-width:1100px){.game-run .battle-teams{top:61px}.game-run .battle-team{padding:6px 9px}.game-run .battle-team h3{font-size:14px}.game-run .battle-team .metric{font-size:20px}.game-run .team-submetric{font-size:8px}.game-run .telemetry{height:94px;grid-template-columns:1fr 70px 1fr;padding:6px 10px}.game-run .telemetry-card .player-avatar{display:none}.game-run .telemetry-card .data>strong{font-size:18px}.game-run .game-canvas-wrap{bottom:94px}.game-run .game-instruction{bottom:103px}.game-run .demo-controls{bottom:103px}}
@media(max-height:690px){.game-run .game-canvas-wrap{top:55px;bottom:82px}.game-run .telemetry{height:82px;padding:4px 8px}.game-run .telemetry-card{padding:4px}.game-run .telemetry-card .data>small{font-size:7px}.game-run .telemetry-card .data>strong{font-size:16px}.game-run .telemetry-label{font-size:7px}.game-run .game-instruction{display:none}.game-run .demo-controls{bottom:89px}}


@keyframes incomingPulse{to{background:#655131;box-shadow:0 0 15px #ffd99577;transform:translateY(-3px)}}

/* v3 individual competition layouts */
.game-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.game-info{padding:13px}.game-info p{font-size:10px}.game-info h3{font-size:15px}.card-arrow{display:none}.device-list{grid-template-columns:repeat(6,minmax(0,1fr))}.device-management-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.game-race .battle-teams,.game-race .game-instruction,.game-fish .battle-teams,.game-fish .game-instruction,.game-fish .battle-meter,.game-tug .battle-meter,.game-run .battle-teams,.game-run .game-instruction,.game-run .battle-meter{display:none}.game-race .game-canvas-wrap,.game-fish .game-canvas-wrap,.game-run .game-canvas-wrap{top:64px;bottom:89px}.game-race .telemetry,.game-fish .telemetry,.game-run .telemetry{height:89px;padding:8px 18px}.game-race .telemetry-card,.game-fish .telemetry-card,.game-run .telemetry-card{padding:6px 9px}.game-race .telemetry-card .player-avatar,.game-fish .telemetry-card .player-avatar,.game-run .telemetry-card .player-avatar{width:25px;height:47px}.game-race .telemetry-card .data>strong,.game-fish .telemetry-card .data>strong,.game-run .telemetry-card .data>strong{font-size:22px}.game-race .demo-controls,.game-fish .demo-controls,.game-run .demo-controls{bottom:96px}.demo-panel{max-height:60vh;overflow-y:auto;width:255px}.demo-individual{border-top:1px solid #ffffff22;margin-top:9px;padding-top:9px}.demo-individual>small{display:block;margin-bottom:7px;color:#bfc0db}.demo-individual label{font-size:10px;margin:4px 0}.demo-individual input{height:21px}
.game-buttons{display:flex;gap:9px}.game-tug .battle-teams{top:67px}.game-tug .battle-team{padding:8px 14px;background:#101a2cb8;border-radius:10px}.game-tug .game-instruction{font-size:10px}.game-tug .team-submetric{font-size:9px}.game-tug .battle-team h3{font-size:18px}.game-tug .battle-team .metric{font-size:22px}
@media(max-height:690px){.game-race .game-canvas-wrap,.game-fish .game-canvas-wrap{top:59px;bottom:74px}.game-race .telemetry,.game-fish .telemetry{height:74px;padding:6px 12px}.game-race .telemetry-card,.game-fish .telemetry-card{padding:4px 7px}.game-race .telemetry-card .data>strong,.game-fish .telemetry-card .data>strong{font-size:19px}.game-race .demo-controls,.game-fish .demo-controls{bottom:81px}.game-buttons .button{padding:9px 12px;font-size:11px}.game-tug .battle-teams{top:60px}.game-tug .battle-team h3{font-size:14px}.game-tug .battle-team .metric{font-size:18px}}
@media(max-width:1050px){.game-info{padding:10px}.game-info h3{font-size:12px}.game-info p{font-size:9px}.game-grid{gap:10px}.small-tag{font-size:8px}.game-tug .battle-teams{left:20px;right:20px}}

.game-fish .battle-teams{display:flex;top:72px;left:16px;right:16px;pointer-events:none}.game-fish .battle-team{max-width:220px;padding:8px 12px;background:#103b37cf;border:1px solid #d3fff033;border-radius:10px}.game-fish .battle-team .team-label{font-size:8px}.game-fish .battle-team h3{font-size:13px;margin:3px 0}.game-fish .battle-team .metric{font-size:20px}.game-fish .battle-team .metric small{font-size:9px}.game-fish .team-submetric{font-size:8px}.game-fish .battle-team.b{background:#403b23cf}@media(max-height:690px){.game-fish .battle-teams{top:63px}.game-fish .battle-team{padding:5px 8px;max-width:190px}.game-fish .battle-team .team-label,.game-fish .team-submetric{display:none}.game-fish .battle-team h3{font-size:11px}.game-fish .battle-team .metric{font-size:16px}}
@media(max-height:690px){.game-race .telemetry-group,.game-fish .telemetry-group{min-height:0}.game-race .telemetry-card .data>small,.game-fish .telemetry-card .data>small{font-size:8px;line-height:1.1}.game-race .telemetry-card .data>strong,.game-fish .telemetry-card .data>strong{font-size:18px;line-height:1.05;margin-top:2px}.game-race .telemetry-card .micro-track,.game-fish .telemetry-card .micro-track{margin-top:3px}.game-race .telemetry-label,.game-fish .telemetry-label{gap:2px;font-size:8px}.game-race .telemetry-label small:last-child,.game-fish .telemetry-label small:last-child{display:none}}

/* New scene renderers own the playfield HUD; the common strip keeps every live signal visible. */
.game-horse .battle-teams,.game-horse .battle-meter,.game-horse .game-instruction,
.game-basketball .battle-teams,.game-basketball .battle-meter,.game-basketball .game-instruction,
.game-archery .battle-teams,.game-archery .battle-meter,.game-archery .game-instruction,
.game-barrel .battle-teams,.game-barrel .battle-meter,.game-barrel .game-instruction{display:none}
.game-horse .game-canvas-wrap,.game-basketball .game-canvas-wrap,.game-archery .game-canvas-wrap,.game-barrel .game-canvas-wrap{top:64px;bottom:89px}
.game-horse .telemetry,.game-basketball .telemetry,.game-archery .telemetry,.game-barrel .telemetry{height:89px;padding:8px 18px}
.game-horse .telemetry-card,.game-basketball .telemetry-card,.game-archery .telemetry-card,.game-barrel .telemetry-card{padding:6px 9px}
.game-horse .telemetry-card .player-avatar,.game-basketball .telemetry-card .player-avatar,.game-archery .telemetry-card .player-avatar,.game-barrel .telemetry-card .player-avatar{width:25px;height:47px}
.game-horse .telemetry-card .data>strong,.game-basketball .telemetry-card .data>strong,.game-archery .telemetry-card .data>strong,.game-barrel .telemetry-card .data>strong{font-size:22px}
.game-horse .demo-controls,.game-basketball .demo-controls,.game-archery .demo-controls,.game-barrel .demo-controls{bottom:96px}
.game-basketball .telemetry-card.on-turn,.game-archery .telemetry-card.on-turn{border-color:#ffdf88;box-shadow:inset 0 0 16px #ffd77a25,0 0 14px #ffd77a33}
@media(max-height:690px){
 .game-horse .game-canvas-wrap,.game-basketball .game-canvas-wrap,.game-archery .game-canvas-wrap,.game-barrel .game-canvas-wrap{top:59px;bottom:74px}
 .game-horse .telemetry,.game-basketball .telemetry,.game-archery .telemetry,.game-barrel .telemetry{height:74px;padding:6px 12px}
 .game-horse .telemetry-card,.game-basketball .telemetry-card,.game-archery .telemetry-card,.game-barrel .telemetry-card{padding:4px 7px}
 .game-horse .telemetry-card .data>strong,.game-basketball .telemetry-card .data>strong,.game-archery .telemetry-card .data>strong,.game-barrel .telemetry-card .data>strong{font-size:18px}
 .game-horse .demo-controls,.game-basketball .demo-controls,.game-archery .demo-controls,.game-barrel .demo-controls{bottom:81px}
 :is(.game-horse,.game-basketball,.game-archery,.game-barrel) .telemetry-group{min-height:0}
 :is(.game-horse,.game-basketball,.game-archery,.game-barrel) .telemetry-card .data>small{font-size:8px;line-height:1.1}
 :is(.game-horse,.game-basketball,.game-archery,.game-barrel) .telemetry-card .data>strong{font-size:18px;line-height:1.05;margin-top:2px}
 :is(.game-horse,.game-basketball,.game-archery,.game-barrel) .telemetry-card .micro-track{margin-top:3px}
 :is(.game-horse,.game-basketball,.game-archery,.game-barrel) .telemetry-label{gap:2px;font-size:8px}
 :is(.game-horse,.game-basketball,.game-archery,.game-barrel) .telemetry-label small:last-child{display:none}
}
.awards-stage{mask-image:none}
.awards-stage canvas{mask-image:linear-gradient(to bottom,transparent,#000 5%,#000 94%,transparent)}
.champion-lineup{bottom:10px}
.settlement-banner{position:absolute;z-index:5;bottom:145px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:13px;max-width:calc(100% - 40px);padding:12px 21px;border:1px solid #ffe0a482;border-radius:15px;background:linear-gradient(110deg,#17263cf2,#34304bf0);box-shadow:0 12px 42px #0004,0 0 28px #f4cb7620;pointer-events:none;animation:settlement-arrive .6s both}
.settlement-banner>svg{color:#ffe1a4;width:30px;height:30px}.settlement-banner strong{display:block;font-size:18px;letter-spacing:1px;color:#ffe4ad}.settlement-banner small{display:block;margin-top:4px;font-size:11px;color:#d7d8e5;white-space:nowrap}.settlement-banner>i{width:8px;height:8px;border-radius:50%;background:#f5d98e;box-shadow:0 0 15px #ffda8b;animation:settlement-pulse 1s ease-in-out infinite alternate}
:is(.game-race,.game-run,.game-horse,.game-fish,.game-basketball,.game-archery,.game-barrel) .settlement-banner{bottom:104px}
@keyframes settlement-arrive{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
@keyframes settlement-pulse{to{opacity:.35;transform:scale(.75)}}
@media(max-height:690px){.settlement-banner{bottom:130px;padding:8px 15px;gap:10px}.settlement-banner strong{font-size:14px}.settlement-banner small{font-size:9px}.settlement-banner>svg{width:24px;height:24px}:is(.game-race,.game-run,.game-horse,.game-fish,.game-basketball,.game-archery,.game-barrel) .settlement-banner{bottom:85px}}
@media(prefers-reduced-motion:reduce){.settlement-banner,.settlement-banner>i{animation:none}}
.game-barrel.match-complete .game-timer{visibility:hidden}
.game-barrel .settlement-banner{top:8px;bottom:auto;padding:7px 14px;gap:10px;max-width:calc(100% - 480px)}
.game-barrel .settlement-banner strong{font-size:15px;letter-spacing:.3px;white-space:nowrap}
.game-barrel .settlement-banner small{font-size:10px;margin-top:3px}
.game-barrel .settlement-banner>svg{width:25px;height:25px}
@media(max-width:1100px){.game-barrel .settlement-banner{max-width:calc(100% - 380px)}.game-barrel .settlement-banner strong{font-size:13px}.game-barrel .settlement-banner small{font-size:9px}}

/* Let every match breathe: reveal the standings before the team ceremony. */
.ranking-page{position:relative;isolation:isolate;min-height:calc(100vh - 82px);padding:22px clamp(24px,5vw,88px) 24px;display:flex;flex-direction:column;gap:13px;background:radial-gradient(ellipse at 15% 12%,#16435c65,transparent 48%),radial-gradient(ellipse at 88% 35%,#713f2338,transparent 43%),linear-gradient(145deg,#101c30,#121727 55%,#171729);overflow:hidden}
.ranking-page:before,.ranking-page:after{content:"";position:absolute;pointer-events:none;z-index:-1}
.ranking-page:before{inset:0;background-image:linear-gradient(#a8dfff04 1px,transparent 1px),linear-gradient(90deg,#a8dfff04 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(#000,transparent 85%)}
.ranking-page:after{width:530px;height:530px;border:1px solid #e7ce9020;border-radius:50%;left:calc(50% - 265px);top:-390px;box-shadow:0 0 0 32px #e7ce9005,0 0 0 72px #e7ce9004}
.ranking-page> *{width:100%;max-width:1120px;margin-left:auto;margin-right:auto}
.ranking-heading{position:relative;text-align:center}
.ranking-kicker{color:#f0d6a0;font:700 9px/1.4 "Segoe UI",sans-serif;letter-spacing:4px}
.ranking-heading h1{font-size:30px;line-height:1.2;margin:6px 0;color:#fff2d5;letter-spacing:3px;text-shadow:0 2px 25px #f2c67530}
.ranking-heading p{font-size:12px;line-height:1.5;color:#a6b5cf}
.settlement-steps{display:flex;align-items:center;justify-content:center;gap:0;counter-reset:ranking-step;color:#6c7a95;font-size:10px}
.settlement-steps span{display:inline-flex;align-items:center;gap:7px;position:relative;white-space:nowrap}
.settlement-steps span:before{counter-increment:ranking-step;content:counter(ranking-step);display:grid;place-items:center;flex-shrink:0;width:20px;height:20px;border:1px solid #64769355;background:#1a263d;border-radius:50%;font:700 10px "Segoe UI",sans-serif}
.settlement-steps span+span{margin-left:51px}
.settlement-steps span+span:after{content:"";position:absolute;left:-39px;width:26px;height:1px;background:#7e8fa53d}
.settlement-steps .done{color:#8fd7d4}.settlement-steps .done:before{content:"✓";background:#174248;border-color:#62cfc077;color:#9defd5}
.settlement-steps .active{color:#ffe2aa}.settlement-steps .active:before{border-color:#f9d38f;background:#55422a;color:#ffe8bd;box-shadow:0 0 15px #edbd6638}
.ranking-teams{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ranking-team{--rank-team:#78e5fb;--rank-team-rgb:78,194,222;position:relative;min-width:0;display:flex;align-items:center;gap:15px;padding:15px 20px;border:1px solid #77cee72b;border-radius:16px;background:linear-gradient(120deg,rgba(var(--rank-team-rgb),.13),#142035d9 82%);box-shadow:0 8px 28px #02091426;opacity:0;transform:translateY(13px) scale(.98);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.8,.2,1),border-color .4s;overflow:hidden}
.ranking-team.team-b{--rank-team:#ffbd83;--rank-team-rgb:235,149,87;border-color:#eaae7130;background:linear-gradient(120deg,rgba(var(--rank-team-rgb),.13),#241f2dd9 82%)}
.ranking-team:before{content:"";position:absolute;inset:14px auto 14px 0;width:3px;background:var(--rank-team);border-radius:0 5px 5px 0;box-shadow:0 0 16px var(--rank-team)}
.ranking-team.revealed{opacity:1;transform:none}
.ranking-team.is-winner,.ranking-team.is-tied{border-color:#f4d08785;box-shadow:inset 0 1px 0 #fff3c422,0 8px 34px #f2b85d0e}
.ranking-team.is-winner:after{content:"";position:absolute;top:-75px;right:32%;width:46px;height:230px;background:linear-gradient(90deg,transparent,#fff4bd12,transparent);transform:rotate(27deg);pointer-events:none}
.ranking-team-rank{flex-shrink:0;min-width:46px;min-height:46px;padding:7px;display:grid;place-items:center;font:800 21px/1 "Segoe UI","Microsoft YaHei",sans-serif;color:var(--rank-team);border-radius:13px;border:1px solid rgba(var(--rank-team-rgb),.2);background:rgba(var(--rank-team-rgb),.1);text-align:center}
.is-winner .ranking-team-rank,.is-tied .ranking-team-rank{color:#ffdf95;border-color:#ffe2a255;background:linear-gradient(145deg,#66532d80,#392a2460);text-shadow:0 0 15px #ffe49c40}
.ranking-team-copy{min-width:0;flex:1}.ranking-team-copy h2{font-size:18px;letter-spacing:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-team-copy small{display:block;font-size:10px;color:var(--rank-team);margin-top:5px;line-height:1.3}
.ranking-team-score{text-align:right;flex-shrink:0}.ranking-team-score strong{display:block;font:750 27px/1.15 "Segoe UI",sans-serif;color:#fff4df;letter-spacing:.5px;font-variant-numeric:tabular-nums}.ranking-team-score small{display:block;font-size:9px;color:#adbacb;margin-top:4px}
.ranking-board{border:1px solid #a2c8ef28;background:linear-gradient(135deg,#1b2c44e0,#171e32ed);border-radius:17px;box-shadow:0 14px 40px #00000020;overflow:hidden}
.ranking-board-head{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:49px;padding:12px 21px;border-bottom:1px solid #d2e6ff10;background:#c7dfff04}.ranking-board-head h2{font-size:14px;letter-spacing:1px;white-space:nowrap}.ranking-board-head p{font-size:10px;color:#a3b1c9;line-height:1.4;text-align:right}
.ranking-table{padding:0 12px 9px}
.ranking-table-head,.ranking-row{display:grid;grid-template-columns:64px minmax(180px,1.25fr) minmax(150px,.85fr) minmax(170px,1fr);align-items:center;gap:12px;padding:0 11px}
.ranking-table-head{min-height:29px;font-size:9px;letter-spacing:.5px;color:#8194b1}.ranking-table-head>:first-child{text-align:center}.ranking-table-head>:nth-child(3),.ranking-table-head>:nth-child(4){text-align:right}
.ranking-row{--rank-team:#78e5fb;position:relative;min-height:48px;border:1px solid transparent;border-top-color:#adc7eb0c;border-radius:9px;opacity:0;transform:translateX(20px);transition:opacity .48s ease,transform .55s cubic-bezier(.17,.85,.25,1),background .35s;will-change:opacity,transform}
.ranking-row.team-b{--rank-team:#ffbd83}.ranking-row.revealed{opacity:1;transform:none;will-change:auto}
.ranking-row:nth-child(odd){background:#d5eaff04}.ranking-row.is-first{border-color:#eac07146;background:linear-gradient(90deg,#b58f3526,#ae99520a 55%,#e0b26c13);box-shadow:inset 0 1px 0 #fff3bb0a}
.ranking-row.is-first.revealed{animation:rankingChampionGlow 1.15s ease-out both}
.ranking-place{text-align:center;color:#a3b8d4;font:750 18px/1 "Segoe UI",sans-serif;font-variant-numeric:tabular-nums}.ranking-row.is-first .ranking-place{color:#ffe1a0;text-shadow:0 0 15px #ffc56f45}.ranking-place svg{width:23px;height:23px;color:#f5d493;vertical-align:middle}
.ranking-player{display:flex;align-items:center;gap:12px;min-width:0}.ranking-player>div:last-child{min-width:0}.ranking-player strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;letter-spacing:.3px;color:#edf5ff}.ranking-player small{display:block;font-size:9px;color:var(--rank-team);line-height:1.5;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-player .player-avatar{width:28px;height:42px;flex-shrink:0;filter:drop-shadow(0 3px 4px #0004)}.ranking-player>svg{width:28px;height:42px;flex-shrink:0}
.ranking-value{font-size:14px;font-weight:700;color:#f6e6c3;text-align:right;font-variant-numeric:tabular-nums}.ranking-value strong{font:inherit}.ranking-value small{font-size:9px;color:#9eacc1;margin-left:4px;font-weight:400}
.ranking-detail{font-size:10px;color:#a8bbd3;text-align:right;line-height:1.6;font-variant-numeric:tabular-nums}.ranking-detail strong{color:#d6e5f6;font-weight:600}.ranking-detail small{font-size:9px;color:#7c92ad}
.ranking-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:2px}
.ranking-note{font-size:11px;color:#91a7c4;line-height:1.6;max-width:70%}.ranking-footer #ranking-continue{min-width:184px;min-height:46px;border:1px solid #f3d39588;background:linear-gradient(115deg,#ffe6b1,#e9ba69);color:#352311;box-shadow:0 4px 24px #e9ba691a}.ranking-footer #ranking-continue:disabled{opacity:.62;filter:saturate(.55);box-shadow:none}.rankings-ready #ranking-continue{animation:rankingContinueGlow 2s ease-in-out 2}.ranking-footer #ranking-continue:hover:not(:disabled){box-shadow:0 5px 27px #ffc66740}
@keyframes rankingChampionGlow{0%{box-shadow:inset 0 0 34px #ffe5a34d,0 0 22px #f6d27e25}100%{box-shadow:inset 0 1px 0 #fff3bb0a,0 0 0 transparent}}
@keyframes rankingContinueGlow{50%{box-shadow:0 0 25px #f6c86d44}}
@media(max-width:1150px){.ranking-page{min-height:calc(100vh - 70px);padding-left:30px;padding-right:30px}.ranking-table-head,.ranking-row{grid-template-columns:53px minmax(170px,1.15fr) minmax(140px,.9fr) minmax(160px,1fr)}.ranking-team-copy h2{font-size:16px}.ranking-team-score strong{font-size:25px}}
@media(max-height:850px) and (min-width:700px){.ranking-page{min-height:calc(100vh - 62px);padding-top:18px;padding-bottom:18px;gap:12px}}
@media(max-height:690px){.ranking-page{padding:12px 28px;gap:8px}.ranking-heading h1{font-size:23px;margin:3px 0;letter-spacing:2px}.ranking-heading p{font-size:10px;line-height:1.4}.ranking-kicker{font-size:8px;letter-spacing:3px}.settlement-steps{font-size:9px}.settlement-steps span:before{width:18px;height:18px;font-size:9px}.ranking-teams{gap:14px}.ranking-team{padding:10px 15px;gap:12px;border-radius:12px;min-height:64px}.ranking-team-rank{min-width:38px;min-height:38px;font-size:18px;border-radius:10px}.ranking-team-copy h2{font-size:15px}.ranking-team-copy small{font-size:9px;margin-top:3px}.ranking-team-score strong{font-size:23px}.ranking-team-score small{font-size:8px;margin-top:2px}.ranking-board{border-radius:13px}.ranking-board-head{min-height:36px;padding:8px 16px}.ranking-board-head h2{font-size:12px}.ranking-board-head p{font-size:9px}.ranking-table{padding:0 9px 6px}.ranking-table-head{min-height:23px;font-size:8px}.ranking-row{min-height:38px;border-radius:7px}.ranking-place{font-size:16px}.ranking-player{gap:9px}.ranking-player .player-avatar,.ranking-player>svg{width:24px;height:33px}.ranking-player strong{font-size:11px}.ranking-player small{font-size:8px;line-height:1.2;margin-top:2px}.ranking-value{font-size:12px}.ranking-value small,.ranking-detail small{font-size:8px}.ranking-detail{font-size:9px;line-height:1.3}.ranking-footer{margin-top:0}.ranking-note{font-size:10px}.ranking-footer #ranking-continue{min-height:42px;min-width:164px;font-size:12px;padding:10px 17px}}
@media(max-width:800px){.ranking-page{padding-left:16px;padding-right:16px}.ranking-table-head,.ranking-row{grid-template-columns:39px minmax(130px,1.1fr) minmax(105px,.85fr) minmax(120px,1fr);gap:8px;padding-left:5px;padding-right:5px}.ranking-team{padding-left:12px;padding-right:12px;gap:9px}.ranking-team-score strong{font-size:21px}.ranking-team-copy h2{font-size:14px}.ranking-board-head{gap:10px}.ranking-player{gap:7px}}
@media(max-height:690px){
 .ranking-kicker{display:block}
 .settlement-steps svg{width:14px;height:14px}
 .ranking-team-rank{min-width:60px;min-height:40px;padding:4px 5px;gap:2px}
 .ranking-team-rank svg{width:16px;height:16px}
 .ranking-team-rank span{display:block;font-size:10px;line-height:12px;white-space:nowrap}
 .ranking-place{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
 .ranking-place svg{width:14px;height:14px}
 .ranking-place span{line-height:16px;white-space:nowrap}
 .ranking-place svg+span{font-size:12px;line-height:14px}
}
/* Before-play teaching and post-play collection boards. */
.briefing-page,.harvest-page{max-width:1600px;margin:auto;padding:24px 32px 20px;min-height:calc(100dvh - 62px);background:radial-gradient(ellipse at 15% 30%,#18475338,transparent 52%),radial-gradient(ellipse at 92% 62%,#65472825,transparent 44%)}
.briefing-heading,.briefing-footer,.harvest-footer{display:flex;align-items:center;gap:14px;justify-content:space-between}.briefing-heading{margin-bottom:22px}.briefing-heading h1,.harvest-heading h1{font-size:28px;letter-spacing:1px;margin:8px 0}.briefing-heading p,.harvest-heading p{font-size:13px;color:#b4bccf;margin:0}.briefing-duration{display:flex;align-items:center;gap:8px;border:1px solid #6acbdd44;background:#67dbf30c;color:#bfeaf3;padding:12px 16px;border-radius:12px;font-size:13px;white-space:nowrap}.briefing-duration svg{width:18px;height:18px}
.briefing-content{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:24px;min-height:330px}.briefing-preview{position:relative;border:1px solid #6b9daa50;border-radius:22px;overflow:hidden;background:linear-gradient(145deg,#14232f,#191a30);min-height:320px}.briefing-preview canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.briefing-preview-label{position:absolute;top:14px;left:16px;color:#c2d2e4;background:#07131bb8;border:1px solid #d3ecff20;padding:7px 11px;border-radius:20px;font-size:10px}.briefing-rosters{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;background:linear-gradient(transparent,#101221 32%)}.briefing-rosters>div{display:flex;flex-direction:column;gap:7px;max-width:44%}.briefing-rosters b{font-size:16px;overflow-wrap:anywhere}.briefing-rosters span{font-size:11px;color:#bdc5d4}.briefing-rosters .team-a b{color:#66e2fa}.briefing-rosters .team-b b{color:#ffb873}.briefing-rosters i{font-size:15px;letter-spacing:3px;color:#9198b0}
.briefing-steps{display:grid;gap:12px;align-content:start}.briefing-step{display:flex;align-items:flex-start;gap:15px;padding:18px;border-radius:16px;background:linear-gradient(120deg,#202737b3,#191b2db3);border:1px solid #8eacc32b}.briefing-step-number{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:11px;border:1px solid #70ced745;color:#7bdfed;background:#65dbea0b;font-size:16px;font-weight:800}.briefing-step:last-of-type .briefing-step-number{color:#f6c775;background:#dfba4810;border-color:#ecc67450}.briefing-step h2{font-size:17px;margin:2px 0 8px;color:#f0f2ff}.briefing-step p{font-size:13px;line-height:1.85;margin:0;color:#bdc6d8}.briefing-tip{border-left:2px solid #d8b772;color:#d9c79f;background:#e4b56508;padding:9px 13px;font-size:11px;line-height:1.7}.briefing-footer{margin-top:24px;padding-top:18px;border-top:1px solid #bac5ef18}.briefing-footer>.primary{margin-left:auto;min-width:280px}.briefing-footer>.secondary{font-size:12px}
.harvest-heading{text-align:center;margin-bottom:18px}.harvest-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:22px}.harvest-team{border-radius:22px;border:1px solid #61d7e347;padding:22px;background:linear-gradient(145deg,#10394585,#1b1c308f);box-shadow:0 18px 60px #0002}.harvest-team.team-b{border-color:#eea66050;background:linear-gradient(145deg,#43312790,#221e308f)}.harvest-team header{display:flex;align-items:center;gap:12px;padding-bottom:20px;border-bottom:1px solid #c2ddee20}.harvest-team-letter{display:grid;place-items:center;border-radius:12px;height:46px;width:46px;background:#59d7ed18;color:#75e9f3;border:1px solid #91edfc55;font-size:24px;font-weight:800}.team-b .harvest-team-letter{background:#eaa44418;color:#ffc286;border-color:#ffc57e55}.harvest-team header h2{font-size:21px;margin:5px 0;overflow-wrap:anywhere}.harvest-team header small{font-size:10px;letter-spacing:2px;color:#99b5c4}.harvest-total{margin-left:auto;display:flex;align-items:baseline;gap:6px;color:#b1f0f6;white-space:nowrap}.team-b .harvest-total{color:#ffcc91}.harvest-total b{font-size:52px;line-height:1;font-variant-numeric:tabular-nums}.harvest-total span{font-size:13px}.harvest-collection{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;padding:24px 0}.harvest-collection.fishes{grid-template-columns:repeat(3,minmax(0,1fr))}.harvest-item{border:1px solid #dfd0a833;border-radius:13px;background:#0b152963;text-align:center;padding:8px 4px 12px;color:#deb98a;animation:collection-arrive .7s var(--reveal-delay) both}.harvest-item.empty{color:#8794a8;opacity:.65;background:#10162345}.harvest-item svg{width:100%;max-width:125px;height:100px}.harvest-item h3{font-size:11px;color:#d6dbe7;white-space:nowrap;font-weight:500;margin:5px 0 12px}.harvest-item strong{font-size:24px;color:#f1d8b3;letter-spacing:1px}.harvest-item.empty strong{color:#9ca9ba}.harvest-verdict{display:flex;justify-content:center;align-items:center;gap:8px;font-size:15px;font-weight:600;padding:16px 8px;border-radius:12px;color:#e7d3a4;background:#e8c8850b;border:1px solid #e0c58f24;animation:collection-arrive .6s 2.1s both}.harvest-verdict svg{height:23px;width:23px}.harvest-footer{margin-top:28px;padding-top:20px;border-top:1px solid #cdd6e522}.harvest-footer p{font-size:13px;color:#adb9c9}.harvest-footer button{min-width:230px}
@keyframes collection-arrive{from{transform:translateY(15px) scale(.94);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
@media(max-height:700px){.briefing-page,.harvest-page{padding:17px 26px 14px}.briefing-heading{margin-bottom:14px}.briefing-heading h1,.harvest-heading h1{font-size:23px;margin:5px 0}.briefing-content{gap:16px;min-height:290px}.briefing-preview{min-height:280px}.briefing-steps{gap:8px}.briefing-step{padding:10px 12px;gap:10px}.briefing-step h2{font-size:14px;margin:1px 0 5px}.briefing-step p{font-size:11px;line-height:1.7}.briefing-tip{font-size:10px;padding:6px 10px}.briefing-footer{margin-top:14px;padding-top:12px}.briefing-duration{font-size:11px;padding:10px}.harvest-heading{margin-bottom:9px}.harvest-columns{margin-top:12px;gap:16px}.harvest-team{padding:16px}.harvest-team header{padding-bottom:12px}.harvest-team header h2{font-size:18px}.harvest-total b{font-size:40px}.harvest-collection{padding:16px 0;gap:6px}.harvest-item svg{height:72px}.harvest-item h3{font-size:10px;margin:2px 0 7px}.harvest-item strong{font-size:22px}.harvest-verdict{padding:11px 6px;font-size:13px}.harvest-footer{margin-top:18px;padding-top:12px}}
@media(prefers-reduced-motion:reduce){.harvest-item,.harvest-verdict{animation:none}}
.game-wave .battle-teams,.game-tug .battle-teams{top:60px;left:22px;right:22px}
.game-wave .battle-team,.game-tug .battle-team{padding:6px 10px;min-width:180px;max-width:27%;border:1px solid #8fb7ce2c;border-radius:10px;background:#101a2cb8}
.game-wave .battle-team .team-label,.game-tug .battle-team .team-label{display:none}
.game-wave .battle-team h3,.game-tug .battle-team h3{font-size:14px;line-height:17px;margin:0}
.game-wave .battle-team .metric,.game-tug .battle-team .metric{font-size:20px;line-height:23px;margin:1px 0}
.game-wave .battle-team .metric small,.game-tug .battle-team .metric small{font-size:9px}
.game-wave .team-submetric,.game-tug .team-submetric{font-size:8px;line-height:12px;margin:0;white-space:nowrap}
.game-wave .game-instruction{display:none}
.game-tug[data-tug-stage="sampling"] .game-timer{color:#ffe4a3}
.game-tug[data-tug-stage="pulling"] .game-timer #game-time{color:#ffe0a0;text-shadow:0 0 22px #ffbd664d;animation:tug-final-beat 1s ease-in-out infinite}
.game-tug[data-tug-stage="pulling"] .game-instruction,.game-tug[data-tug-stage="sampling"] .game-instruction{border-color:#f2c77c66;color:#ffe6af;background:#211c2bed}
@keyframes tug-final-beat{0%,100%{transform:scale(1)}22%{transform:scale(1.09)}}
.game-tug.match-complete .game-instruction,.game-tug.match-complete .match-event,.game-tug.match-complete .demo-controls{display:none}
@media(prefers-reduced-motion:reduce){.game-tug[data-tug-stage="pulling"] .game-timer #game-time{animation:none}}
@media(max-height:700px){.harvest-page{padding-top:14px}.harvest-page .harvest-collection{padding:10px 0}.harvest-page .harvest-item svg{height:60px}.harvest-page .harvest-footer{margin-top:12px}}
