:root{color-scheme:dark;font-family:system-ui,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;--gold: #ffd76a;--surface: #1a2029;--surface-raised: #202833;--line: #344154;--muted: #94a3b7}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 12px 12px,rgba(255,255,255,.025) 1px,transparent 1px) 0 0 / 24px 24px,radial-gradient(1100px 600px at 25% 0%,#2a3140,#171b22 60%,#101318);color:#e8eaed;min-height:100vh}button{font:inherit;color:inherit}button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--gold);outline-offset:2px}img{display:block;border-radius:5px}.tile-img,.marker-img{animation:tile-arrive .18s ease-out}.btn{background:#2f74c4;border:none;border-radius:10px;padding:10px 22px;color:#fff;cursor:pointer;min-height:44px}.btn:hover{background:#3d85da}.btn,.btn-ghost,.group,.line{transition:background-color .14s ease,border-color .14s ease,transform .14s ease}.btn:active,.btn-ghost:active,.group:active,.line-open:active{transform:translateY(1px) scale(.98)}.btn-on{outline:2px solid var(--gold)}.btn-big{margin-top:18px;font-size:17px;padding:13px 40px}.btn-ghost{background:none;border:1px solid #46536a;border-radius:10px;padding:8px 14px;cursor:pointer;min-height:44px}.slot{display:inline-block;border:2px dashed rgba(255,255,255,.4);border-radius:6px;background:#00000026}.slot-34{width:34px;height:34px}.slot-38{width:38px;height:38px}.slot-28{width:28px;height:28px}.setup{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:6px}.setup-back{position:fixed;left:18px;top:18px}.setup-sub{color:#8b98a9;margin:0 0 18px}.setup-label{align-self:start;color:#9fb4cc;font-size:13px;margin-top:10px}.setup-counts{display:flex;gap:10px}.setup-input{width:240px;margin-top:8px;padding:9px 12px;border-radius:10px;border:1px solid #46536a;background:#1d232b;color:#e8eaed}.table{width:min(1320px,100%);margin:0 auto;padding:18px 24px 96px;display:flex;flex-direction:column;gap:20px}.table-head{position:sticky;top:12px;z-index:5;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:18px;padding:10px 12px;background:#141920e0;border:1px solid rgba(82,98,120,.45);border-radius:16px;box-shadow:0 10px 30px #0000003d;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.table-nav,.table-tools,.game-status{display:flex;align-items:center;gap:10px}.table-tools{justify-content:flex-end}.game-status{justify-content:center;padding:5px;background:#11171f;border:1px solid #2e3948;border-radius:12px}.game-mode{color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.round-tag{color:#adbacb;padding:5px 9px;font-size:13px;white-space:nowrap;border-right:1px solid #344154}.turn-tag{padding:5px 9px;white-space:nowrap}.turn-tag b{color:var(--gold)}.opponent-section{padding:16px;background:#181e27b8;border:1px solid rgba(66,79,98,.55);border-radius:16px}.section-heading,.panel-head,.floor-head,.center-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-heading{margin-bottom:12px}.section-heading h2,.panel-head h2{margin:2px 0 0;font-size:18px;line-height:1.2}.section-heading>span{color:var(--muted);font-size:13px}.section-kicker{display:block;color:var(--gold);font-size:10px;font-weight:800;letter-spacing:.13em}.opponents{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.game-stage{display:grid;grid-template-columns:minmax(440px,.9fr) minmax(540px,1.1fr);gap:18px;align-items:stretch}.game-panel{min-width:0;border-radius:18px}.chip{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:stretch;gap:12px;min-height:86px;background:linear-gradient(145deg,#202833,#181e27);border:1px solid var(--line);border-radius:14px;padding:12px 14px}.chip-current{border-color:var(--gold);box-shadow:0 0 0 1px #ffd76a40}.chip-offline{opacity:.62}.chip-name{display:flex;align-items:center;gap:4px;min-width:0;font-weight:700}.chip-score{color:var(--gold);font-weight:700;font-size:13px}.chip-summary{display:flex;flex-direction:column;justify-content:space-between;gap:8px}.chip-preview{display:flex;align-items:center;gap:10px;padding-left:12px;border-left:1px solid #344154}.chip-meta{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end;gap:4px;color:var(--gold);font-size:11px}.chip-wall{display:grid;grid-template-columns:repeat(5,9px);gap:2px}.chip-lines{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.chip-line{display:flex;gap:2px}.chip-line i{width:8px;height:8px;border:1px solid #46536a;border-radius:2px;background:#11161d}.chip-line i.chip-on[data-color="0"]{background:#2f74c4}.chip-line i.chip-on[data-color="1"]{background:#e0b13a}.chip-line i.chip-on[data-color="2"]{background:#b6452e}.chip-line i.chip-on[data-color="3"]{background:#565d66}.chip-line i.chip-on[data-color="4"]{background:#e8e4da}.chip-wall i{width:9px;height:9px;border-radius:2px;background:#2a3140}.chip-wall i.chip-on[data-color="0"]{background:#2f74c4}.chip-wall i.chip-on[data-color="1"]{background:#e0b13a}.chip-wall i.chip-on[data-color="2"]{background:#b6452e}.chip-wall i.chip-on[data-color="3"]{background:#565d66}.chip-wall i.chip-on[data-color="4"]{background:#e8e4da}.chip-floor{color:#f4c9be;font-size:12px}.supply{display:flex;flex-direction:column;gap:18px;padding:18px;background:linear-gradient(145deg,#232b37f5,#161c24fa);border:1px solid var(--line);box-shadow:0 16px 38px #00000047}.supply-head{min-height:42px}.supply-stats{display:flex;gap:6px}.supply-stats span{padding:6px 9px;color:var(--muted);font-size:11px;background:#11171f;border:1px solid #303b4a;border-radius:999px;white-space:nowrap}.supply-stats strong{color:#e8edf4;font-size:12px}.factories{display:grid;grid-template-columns:repeat(3,112px);justify-content:center;align-content:start;gap:14px;padding:4px 0}.factory{position:relative;width:112px;height:112px;border-radius:50%;background:radial-gradient(circle at 35% 28%,#76808d,#49515d 67%,#383f49);border:4px solid #303741;box-shadow:inset 0 2px 5px #fff3,0 8px 18px #00000040;display:grid;grid-template-columns:repeat(2,36px);grid-template-rows:repeat(2,36px);align-items:center;justify-content:center;gap:3px;padding:10px}.factory-index{position:absolute;top:3px;left:50%;transform:translate(-50%);color:#ffffff7a;font-size:9px;font-weight:800;letter-spacing:.1em;pointer-events:none}.factory-empty{background:#0f131959;border:2px dashed #46515f;box-shadow:none}.factory-void{grid-column:1 / -1;grid-row:1 / -1;width:60px;height:60px}.group{display:flex;gap:3px;background:none;border:2px solid transparent;border-radius:10px;padding:3px;cursor:pointer;min-width:44px;min-height:44px;align-items:center;justify-content:center}.factory .group{width:36px;min-width:0;height:36px;min-height:0;padding:1px;border-radius:7px}.factory .group img{width:30px;height:30px}.group:hover{border-color:#fff5}.group:disabled{cursor:default;opacity:.68}.group:disabled:hover{border-color:transparent}.group-sel{border-color:var(--gold);background:#ffd76a1f}.center-zone{overflow:hidden;background:#090d126b;border:1px solid #313d4c;border-radius:14px}.center-head{padding:8px 12px;color:#aeb9c8;font-size:11px;font-weight:700;border-bottom:1px solid #313d4c}.center-head span:last-child{color:#79889b;font-weight:500}.center{display:flex;align-items:center;gap:10px;min-height:82px;padding:10px 12px;flex-wrap:wrap}.center-empty{width:40px;height:40px;margin:auto;border:1px dashed #46515f;border-radius:8px}.board{display:flex;flex-direction:column;padding:18px 20px;background:linear-gradient(145deg,#ab804efa,#825931fa 62%,#694625fa);border:1px solid rgba(255,231,192,.22);box-shadow:0 16px 38px #00000057}.board-current{outline:2px solid rgba(255,215,106,.58);outline-offset:2px}.board-head{padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid rgba(255,239,212,.2)}.board-name{display:flex;align-items:center;gap:6px;margin:2px 0 0;font-size:19px;font-weight:700;color:#f4e9d8}.board-score{display:flex;align-items:baseline;gap:4px;color:#ffe9ad;font-size:12px;animation:score-pulse .26s ease-out}.board-score strong{font-size:28px;line-height:1}.board-body{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(214px,1fr);align-items:center;gap:14px;flex:1;min-height:248px;padding:4px 0 14px}.board-zone{min-width:0}.board-zone-label{display:block;margin-bottom:8px;color:#fff4e2b8;font-size:11px;font-weight:800;letter-spacing:.12em}.pattern-zone .board-zone-label{text-align:right}.board-transfer{display:grid;place-items:center;width:30px;height:30px;color:#fff3dbbd;background:#4b2e1757;border:1px solid rgba(255,239,207,.24);border-radius:50%}.lines{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.line{display:flex;gap:6px;background:none;border:none;padding:4px;border-radius:8px}.line-open{outline:2px dashed var(--gold);outline-offset:1px;cursor:pointer;background:#ffe69b29}.wall{display:grid;grid-template-columns:repeat(5,38px);gap:6px}.wall-ghost[data-color="0"]{background:#2f74c44d;border-color:#2f74c4b3}.wall-ghost[data-color="1"]{background:#e0b13a4d;border-color:#e0b13ab3}.wall-ghost[data-color="2"]{background:#b6452e4d;border-color:#b6452eb3}.wall-ghost[data-color="3"]{background:#565d6659;border-color:#565d66cc}.wall-ghost[data-color="4"]{background:#e8e4da40;border-color:#e8e4da99}.floor{display:flex;gap:8px;margin-top:8px}.floor-wrap{padding-top:12px;border-top:1px solid rgba(255,239,212,.2)}.floor-head{color:#fff4e2d1;font-size:11px;font-weight:700}.floor-head span:last-child{color:#ffe8caa8;font-weight:500}.floor-cell{display:flex;flex-direction:column;align-items:center;gap:2px}.floor-cell em{font-style:normal;font-size:10px;color:#f4c9be}.floor-banner{position:fixed;left:50%;transform:translate(-50%);bottom:18px;display:flex;align-items:center;gap:14px;background:#2b2317;border:1px solid #6b5a35;border-radius:12px;padding:12px 18px}.floor-direct{align-self:flex-start}.table-abort{color:#e8b8ad;border-color:#b6452e8c;white-space:nowrap}.modal-mask{position:fixed;inset:0;background:#0000009e;display:grid;place-items:center;z-index:10}.modal{background:#1d232b;border:1px solid #303a49;border-radius:16px;padding:24px 30px;min-width:340px;max-width:620px;max-height:80vh;overflow:auto}.modal-victory{border-color:#ffd76aa6;box-shadow:0 18px 70px #ffb82f29;animation:victory-arrive .32s cubic-bezier(.2,.8,.2,1)}.modal h2{margin:0 0 14px}.settle>li{margin-bottom:10px}.settle ul{margin:4px 0 0;color:#9fb4cc;font-size:14px}.rank{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.rank li{display:flex;gap:14px;align-items:center}.rank li span{color:#9fb4cc}.rank-win b{color:var(--gold)}.modal-actions{display:flex;gap:12px;margin-top:18px}.home{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px}.home-title{margin:0}.home-sub{color:#8b98a9;margin:0 0 12px}.home-label{display:flex;flex-direction:column;gap:6px;color:#9fb4cc;font-size:13px}.home-input{width:260px;padding:9px 12px;border-radius:10px;border:1px solid #46536a;background:#1d232b;color:#e8eaed}.home-join{display:flex;gap:10px;align-items:center;margin-top:6px}.home-code{width:140px;letter-spacing:4px;text-transform:uppercase;font-weight:700}.lobby{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px}.lobby-leave{position:absolute;top:18px;left:18px}.lobby .sound-toggle{position:absolute;top:18px;right:18px}.lobby-title{margin:0;color:#9fb4cc;font-size:15px;font-weight:400}.lobby-code-row{display:flex;align-items:center;gap:12px}.lobby-code{font-size:40px;font-weight:800;letter-spacing:10px;color:var(--gold)}.plist{list-style:none;margin:0;padding:0;min-width:280px;display:flex;flex-direction:column;gap:8px}.plist li{display:flex;align-items:center;gap:10px;background:#1d232b;border:1px solid #303a49;border-radius:10px;padding:9px 14px}.plist-off{opacity:.55}.plist-empty{color:#5c6a7d;border-style:dashed;justify-content:center}.dot{width:9px;height:9px;border-radius:50%;background:#5c6a7d}.dot-on{background:#4caf6e}.plist-name{flex:1}.plist-host{font-style:normal;font-size:12px;color:var(--gold)}.lobby-wait{color:#9fb4cc}.toast{margin:0;color:#f4c9be;background:#b6452e26;border:1px solid rgba(182,69,46,.5);border-radius:10px;padding:8px 14px;font-size:14px}.wait-banner{position:fixed;left:50%;transform:translate(-50%);bottom:18px;background:#1d232b;border:1px solid #303a49;border-radius:12px;padding:12px 18px;color:#9fb4cc}.btn:disabled{opacity:.5;cursor:not-allowed}.rules-page{width:min(980px,100%);margin:0 auto;padding:28px 24px 72px}.rules-head{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:start;margin-bottom:28px}.rules-head h1{margin:4px 0 8px;font-size:clamp(30px,6vw,52px)}.rules-head p{color:#9fb4cc;max-width:650px;margin:0}.rules-kicker{color:var(--gold)!important;font-size:13px;font-weight:800;letter-spacing:.12em}.rules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.rule-card,.rules-finish{position:relative;background:linear-gradient(145deg,#2a3140f5,#191e26f5);border:1px solid #354156;border-radius:18px;padding:22px}.rule-card h2,.rules-finish h2{margin:0 0 12px;font-size:19px}.rule-card p,.rules-finish p,.rules-finish li{color:#b8c4d2;line-height:1.7}.rule-number{position:absolute;right:18px;top:14px;color:#ffd76a40;font-size:42px;font-weight:900}.rule-tiles,.rule-line,.rule-score,.rule-marker{min-height:64px;display:flex;align-items:center;gap:8px;margin:12px 0}.rule-score strong{color:var(--gold)}.rule-marker span{color:#f4c9be;font-size:13px}.rules-finish{margin-top:14px;border-color:#ffd76a6b}.rules-finish ul{padding-left:22px}.tutorial-page{width:min(1480px,100%);margin:0 auto;padding:18px 24px 72px;--tutorial-teal: #3aa7a0;--tutorial-ink: #20364a;--tutorial-paper: #eef7f6}.tutorial-topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;margin-bottom:22px;padding:10px 12px;background:#141920e0;border:1px solid rgba(82,98,120,.45);border-radius:16px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.tutorial-topbar>.btn-ghost{justify-self:start}.tutorial-tools{display:flex;justify-content:flex-end;gap:8px}.tutorial-phase-progress{display:flex;align-items:center;gap:10px}.tutorial-phase-progress span{display:flex;align-items:center;gap:7px;padding:7px 11px;color:#8290a1;font-size:12px;font-weight:700;border:1px solid #344154;border-radius:999px}.tutorial-phase-progress span b{display:grid;place-items:center;width:20px;height:20px;color:#aeb9c8;background:#303b4a;border-radius:50%}.tutorial-phase-progress span.active{color:#eaf8f7;border-color:#3aa7a0bf;background:#3aa7a024}.tutorial-phase-progress span.active b,.tutorial-phase-progress span.done b{color:#102422;background:#69d0c8}.tutorial-phase-progress span.done{color:#8fc5c0}.tutorial-phase-progress i{color:#596679;font-style:normal}.tutorial-layout{display:grid;grid-template-columns:360px minmax(0,1fr);align-items:start;gap:22px}.tutorial-guide{position:sticky;top:18px;min-height:460px;padding:28px;color:var(--tutorial-ink);background:radial-gradient(420px 240px at 12% 0%,rgba(91,196,188,.2),transparent 70%),linear-gradient(155deg,#f5fbfa,#e6f2f2);border:1px solid #b9d9d6;border-radius:20px;box-shadow:0 18px 45px #0718223d}.tutorial-guide .section-kicker{color:#197e78}.tutorial-guide-topline{display:flex;align-items:center;justify-content:space-between;gap:12px}.tutorial-guide-topline>span:last-child{color:#71908f;font-size:12px;font-weight:800}.tutorial-guide h1{margin:14px 0 12px;font-size:clamp(25px,3vw,34px);line-height:1.16}.tutorial-step-label{margin:30px 0 0;color:#56807f;font-size:12px;font-weight:800;letter-spacing:.08em}.tutorial-copy{margin:0;color:#4e6877;line-height:1.75}.tutorial-tip{display:flex;flex-direction:column;gap:5px;margin-top:24px;padding:14px 16px;background:#3aa7a01a;border-left:3px solid var(--tutorial-teal);border-radius:4px 12px 12px 4px}.tutorial-tip strong{color:#197e78;font-size:11px;letter-spacing:.12em}.tutorial-tip span{color:#486574;font-size:13px;line-height:1.6}.tutorial-notice{margin:18px 0 0;color:#176e82;font-size:13px;line-height:1.55}.tutorial-table{min-width:0;padding:14px;background:#e4f3f314;border:1px solid rgba(149,202,198,.2);border-radius:20px}.tutorial-spectator-note{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:8px 10px;color:#a7c8c5;font-size:12px;font-weight:700}.spectator-dot{width:8px;height:8px;background:#69d0c8;border-radius:50%;box-shadow:0 0 0 5px #69d0c81f}.practice-note{color:#f0d98e}.practice-note .spectator-dot{background:var(--gold);box-shadow:0 0 0 5px #ffd76a1f}.tutorial-stage{grid-template-columns:minmax(400px,.86fr) minmax(500px,1.14fr)}.tutorial-demo-stage{display:grid;grid-template-columns:minmax(390px,.8fr) minmax(500px,1.2fr);align-items:start;gap:16px}.demo-boards{display:flex;flex-direction:column;gap:14px}.demo-player{position:relative;min-width:0;padding-top:13px;opacity:.78}.demo-player-current{opacity:1}.demo-player-label{position:absolute;z-index:2;top:0;left:16px;padding:4px 9px;color:#2d4b56;background:#dff2ef;border:1px solid #8fcac5;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.08em}.tutorial-region-list,.tutorial-facts{margin:22px 0 0;padding:0;list-style:none}.tutorial-region-list{display:flex;flex-direction:column;gap:9px}.tutorial-region-list li{display:grid;grid-template-columns:28px 1fr;align-items:start;gap:10px;color:#486574;font-size:13px;line-height:1.55}.tutorial-region-list li b{display:grid;place-items:center;width:26px;height:26px;color:#fff;background:var(--tutorial-teal);border-radius:8px;font-size:12px}.tutorial-facts{display:flex;flex-direction:column;gap:8px}.tutorial-facts li{position:relative;padding-left:18px;color:#486574;font-size:13px;line-height:1.6}.tutorial-facts li:before{position:absolute;left:1px;top:.7em;width:6px;height:6px;content:"";background:var(--tutorial-teal);border-radius:50%}.tutorial-nav-actions{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;margin-top:26px}.tutorial-nav-actions .btn{padding-inline:14px}.tutorial-guide .btn-ghost{color:#355665;border-color:#9bbfbc}.tutorial-guide .btn-ghost:disabled{opacity:.38;cursor:not-allowed}.tutorial-badge{display:grid;place-items:center;width:54px;height:54px;margin-bottom:18px;color:#102017;background:#63c986;border-radius:50%;font-size:28px;font-weight:900;box-shadow:0 0 0 8px #63c9861a}.tutorial-result{display:grid;grid-template-columns:1fr auto;align-items:end;gap:2px 12px;margin-top:24px;padding:16px;background:#3aa7a014;border:1px solid #a5cdca;border-radius:14px}.tutorial-result span{color:#4e6877;font-size:13px}.tutorial-result strong{grid-row:1 / 3;grid-column:2;color:#197e78;font-size:42px;line-height:1}.tutorial-result small{color:#71908f}.tutorial-actions{display:flex;flex-direction:column;gap:8px;margin-top:20px}.home-tutorial{color:var(--gold);border-color:#ffd76a8c}.tutorial-page[data-tutorial-step="0"] .supply .group,.tutorial-page[data-tutorial-step="2"] .supply .group{opacity:.42}.tutorial-page[data-tutorial-step="0"] .factory[data-factory-index="0"] .group[data-color="0"],.tutorial-page[data-tutorial-step="2"] .center .group[data-color="1"]{opacity:1;border-color:var(--gold);background:#ffd76a24;animation:tutorial-target 1.35s ease-in-out infinite}@keyframes tutorial-target{50%{box-shadow:0 0 0 6px #ffd76a29}}.tutorial-demo-table[data-demo-focus=areas] .supply,.tutorial-demo-table[data-demo-focus=areas] .demo-player:first-child .board{outline:2px solid rgba(105,208,200,.62);outline-offset:3px}.tutorial-demo-table[data-demo-focus=factory] .factory[data-factory-index="0"],.tutorial-demo-table[data-demo-focus=wall] .demo-player:first-child .line[data-row="2"]{outline:3px solid var(--gold);outline-offset:3px;animation:tutorial-target 1.35s ease-in-out infinite}.tutorial-demo-table[data-demo-focus=factory] .center-zone{box-shadow:0 0 0 3px #69d0c88c}.tutorial-demo-table[data-demo-focus=illegal] .demo-player:first-child .line[data-row="1"]{background:#97232a47;outline:3px solid #ff8a8f;outline-offset:2px}.tutorial-demo-table[data-demo-focus=discard] .demo-player:first-child .floor-wrap,.tutorial-demo-table[data-demo-focus=discard] .supply-stats span:last-child{box-shadow:0 0 0 3px #ffa070b8;border-radius:10px}.tutorial-demo-table[data-demo-focus=score] .demo-player:first-child .wall,.tutorial-demo-table[data-demo-focus=score] .demo-player:first-child .board-score{filter:drop-shadow(0 0 7px rgba(255,233,173,.88))}@keyframes tile-arrive{0%{opacity:.25;transform:translateY(-5px) scale(.88)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes score-pulse{50%{color:#fff4c7;transform:scale(1.14)}}@keyframes victory-arrive{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:1320px){.tutorial-stage,.tutorial-demo-stage{grid-template-columns:1fr}.tutorial-stage .factories,.tutorial-demo-stage .factories{grid-template-columns:repeat(auto-fit,112px)}}@media(max-width:900px){.tutorial-layout{grid-template-columns:1fr}.tutorial-guide{position:static;min-height:0}}@media(max-width:1100px){.table{max-width:900px}.table-head{grid-template-columns:minmax(0,1fr) auto}.game-status{grid-column:1 / -1;grid-row:2}.game-stage{grid-template-columns:1fr}.factories{grid-template-columns:repeat(auto-fit,112px)}.board-body{grid-template-columns:minmax(200px,1fr) auto minmax(220px,1fr)}}@media(max-width:720px){.table{padding:12px 10px 86px;gap:12px}.table-head{top:6px;gap:8px;padding:8px;border-radius:13px}.tutorial-page{padding:12px 10px 48px}.tutorial-topbar{grid-template-columns:1fr auto;gap:8px;margin-bottom:12px;padding:8px}.tutorial-phase-progress{grid-column:1 / -1;grid-row:2;justify-content:center}.tutorial-phase-progress span{padding:6px 9px}.tutorial-tools{gap:5px}.tutorial-tools .btn-ghost,.tutorial-tools .sound-toggle{min-height:38px;padding:6px 9px;font-size:12px}.tutorial-guide{padding:20px;border-radius:16px}.tutorial-step-label{margin-top:22px}.tutorial-table{padding:8px}.tutorial-nav-actions{grid-template-columns:1fr}.tutorial-nav-actions .btn-ghost,.tutorial-nav-actions .btn{width:100%}.table-nav,.table-tools{gap:6px}.game-status{width:100%}.game-mode{font-size:10px}.table-abort{min-height:38px;padding:6px 9px;font-size:11px}.opponent-section,.supply{padding:12px}.section-heading{margin-bottom:10px}.opponents{grid-template-columns:1fr}.chip{width:100%;grid-template-columns:minmax(92px,1fr) auto auto;min-height:76px;padding:10px 12px}.factories{grid-template-columns:repeat(3,96px);gap:8px}.factory{width:96px;height:96px}.factory .group img{width:26px;height:26px}.factory .group{width:32px;height:32px}.factory{grid-template-columns:repeat(2,32px);grid-template-rows:repeat(2,32px)}.supply-stats span{padding:5px 7px}.center{padding:8px 10px;min-height:70px}.board{padding:12px}.board-body{grid-template-columns:minmax(0,1fr) minmax(130px,1fr);gap:8px;min-height:196px;padding-bottom:10px}.board-transfer{display:none}.line{gap:3px;padding:2px}.line img,.slot-34{width:24px;height:24px}.wall{grid-template-columns:repeat(5,26px);gap:3px}.wall img,.slot-38{width:26px;height:26px}.floor{gap:4px;overflow-x:auto;padding-bottom:2px}.floor-banner,.wait-banner{width:calc(100% - 20px);bottom:10px;justify-content:space-between}.modal{width:calc(100% - 24px);min-width:0;padding:20px}.home-join{width:min(100%,320px)}.home-join .btn{padding-inline:14px}.lobby-code{font-size:30px;letter-spacing:6px}.rules-page{padding:16px 12px 48px}.rules-head{grid-template-columns:1fr;gap:14px}.rules-grid{grid-template-columns:1fr}}@media(max-width:380px){.table-head .btn-ghost,.table-head .sound-toggle{padding-inline:9px}.game-mode{display:none}.chip-preview{padding-left:8px;gap:7px}.factory{width:88px;height:88px}.factories{grid-template-columns:repeat(3,88px)}.factory .group img{width:23px;height:23px}.factory .group{width:29px;height:29px}.factory{grid-template-columns:repeat(2,29px);grid-template-rows:repeat(2,29px);padding:9px}.board-body{grid-template-columns:minmax(0,1fr) 128px}.line img,.slot-34{width:22px;height:22px}.wall{grid-template-columns:repeat(5,23px)}.wall img,.slot-38{width:23px;height:23px}.home-input{max-width:100%}.round-tag,.turn-tag{font-size:13px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
