:root{color-scheme:dark;--bg:#101c2e;--panel:#1b2c42;--ink:#eff2ea;--muted:#9eaebe;--gold:#ebc483;--teal:#8cdbcf;--line:#ffffff19;--red:#e49492;--radius:22px}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:radial-gradient(ellipse at 12% 10%,#263d53 0,transparent 48%),radial-gradient(ellipse at 90% 50%,#25334b 0,transparent 55%),var(--bg);background-attachment:fixed;color:var(--ink);font:15px/1.6 system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;min-height:100vh}body::before{content:"";position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(#e4cfaa28 .8px,transparent .8px);background-size:32px 32px;z-index:-1}button,input,select{font:inherit}button{cursor:pointer;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:3px solid var(--teal);outline-offset:4px}button{transition:background .15s,transform .15s,border-color .15s}input,select{min-width:0;color:var(--ink);background:#0f1c2ddd;border:1px solid #ffffff35;border-radius:10px;padding:11px 13px;width:100%}select option{background:#132237}input::placeholder{color:#8495a8}a{color:var(--teal)}.topbar{max-width:1450px;margin:auto;height:88px;padding:0 38px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.brand{border:0;background:none;display:flex;align-items:center;text-align:left;gap:12px;font-weight:750;font-size:23px;letter-spacing:2px;padding:0}.brand-star{font-size:36px;font-weight:400;color:var(--gold);line-height:1}.brand small{display:block;font:9px ui-monospace,Consolas,monospace;letter-spacing:2.4px;color:var(--muted)}nav{display:flex;align-items:center;gap:10px}.quiet,.secondary,.chip-button{border:1px solid var(--line);border-radius:10px;background:#ffffff08;padding:8px 14px;font-size:12px}.quiet:hover,.secondary:hover{background:#ffffff15;border-color:#ffffff40}.net-badge{font-size:11px;color:var(--teal);padding-right:15px}.net-badge::before{content:"";display:inline-block;border-radius:50%;width:5px;height:5px;background:currentColor;margin-right:8px}.net-badge.offline{color:var(--gold)}#app{max-width:1400px;margin:auto;padding:0 38px 18px}.eyebrow{font:11px ui-monospace,Consolas,monospace;letter-spacing:3px;color:var(--teal);text-transform:uppercase}.hero{display:grid;grid-template-columns:1.25fr 1fr;gap:50px;align-items:center;padding:40px 0 32px}.hero h1{font-size:48px;line-height:1.35;letter-spacing:3px;margin:14px 0 17px;font-weight:720}.hero h1 em{color:var(--gold);font-style:normal}.hero p{font-size:14px;color:var(--muted);margin:0;line-height:1.9}.tags{display:flex;gap:9px;margin-top:24px;flex-wrap:wrap}.tag{font-size:11px;border:1px solid #ffffff24;color:#c4d4df;border-radius:20px;padding:5px 11px}.join-panel{padding:25px;background:linear-gradient(120deg,#30465a99,#182c4188);border:1px solid #8cdbcf35;border-radius:var(--radius);box-shadow:0 20px 40px #0002;position:relative;overflow:hidden}.join-panel::after{content:"{}";position:absolute;right:15px;top:-25px;font:120px ui-monospace,monospace;color:#ffffff04;pointer-events:none}.join-panel h2{font-size:23px;font-weight:600;margin:10px 0 8px}.join-panel p{font-size:12px;margin-bottom:17px}.join-line{display:flex;gap:9px}.join-line input{text-transform:uppercase;font:18px ui-monospace,monospace;letter-spacing:3px}.primary{background:var(--gold);border:1px solid #f3d5a0;color:#24303b;border-radius:11px;padding:11px 21px;font-size:14px;font-weight:750;white-space:nowrap;box-shadow:0 4px 15px #ebc48312}.primary:hover{background:#f4d59e;transform:translateY(-1px)}.primary.teal{background:var(--teal);border-color:#b1eade}.primary.danger{background:#dd9995;border-color:#eba8a4}.library-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:7px 0 17px}.library-heading h2{font-size:17px;font-weight:600;margin:0}.library-heading span{font-size:11px;color:var(--muted)}.game-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.game-tile{display:grid;grid-template-columns:43% 1fr;align-items:center;min-width:0;padding:0;text-align:left;background:#1d2e43;border:1px solid #ffffff20;border-radius:var(--radius);overflow:hidden;box-shadow:0 10px 35px #0002;position:relative}.game-tile:hover{transform:translateY(-3px);border-color:#e6bc7980;box-shadow:0 20px 40px #0003}.tile-art{width:100%;aspect-ratio:1.15;overflow:hidden}.tile-art svg{width:100%;height:100%;display:block}.tile-copy{padding:21px 24px 21px 10px}.tile-copy h3{font-size:23px;margin:8px 0;color:#f4e8d1;font-weight:650;letter-spacing:1px}.tile-copy p{font-size:12px;line-height:1.85;color:var(--muted);margin:0 0 16px}.tile-meta{font-size:10px;letter-spacing:1px;color:var(--teal)}.tile-cta{font-size:12px;color:var(--gold)}.tile-cta b{margin-left:20px;font-weight:400}.site-footer{max-width:1400px;margin:18px auto 0;padding:16px 38px 25px;color:#8194a8;font-size:11px;display:flex;justify-content:space-between;gap:10px}.setup{display:grid;grid-template-columns:1fr 1fr;gap:42px;max-width:1080px;margin:42px auto}.setup-art{border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:0 25px 70px #0003;align-self:start}.setup-art svg{width:100%;display:block}.setup-copy h1{font-size:37px;margin:12px 0}.setup-copy p{color:var(--muted);font-size:14px}.setup-modes{margin:25px 0 20px;display:flex;gap:7px}.mode-btn{flex:1;background:#ffffff05;border:1px solid var(--line);border-radius:11px;padding:10px;font-size:13px}.mode-btn.active{background:#ebc48316;color:var(--gold);border-color:#ebc48388}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:22px}label small{display:block;color:var(--muted);font-size:11px;margin:0 0 7px}.setup-actions{display:flex;gap:10px;flex-wrap:wrap}.setup-note{border-top:1px solid var(--line);margin-top:25px;padding-top:15px;color:var(--muted);font-size:12px;line-height:1.9}.back-line{margin:22px 0 14px;display:flex;justify-content:space-between;align-items:center;gap:10px}.back-line .quiet{padding:6px 10px}.game-caption{font-size:12px;color:var(--muted)}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:23px;max-width:1110px;margin:auto}.stage{min-width:0}.board-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.board-head h1{font-size:24px;margin:0;font-weight:650;letter-spacing:1px}.board-head span{font-size:11px;color:var(--muted)}.board-frame{max-width:590px;margin:0 auto;border-radius:17px;border:9px solid #715a42;box-shadow:0 20px 65px #0005,inset 0 0 0 1px #ffc584;overflow:hidden;background:#dfc299}.board-frame.gomoku{max-width:590px}.board-frame.xiangqi{max-width:490px}.board-frame.jungle{max-width:470px;border-color:#486958}.board{position:relative;line-height:0;width:100%;user-select:none;-webkit-user-select:none}.board>svg{width:100%;height:auto;display:block;pointer-events:none}.piece-cell{position:absolute;display:flex;align-items:center;justify-content:center;padding:0;border:0;background:transparent;border-radius:50%;line-height:1;aspect-ratio:1;transform:translate(-50%,-50%);touch-action:manipulation;transition:filter .12s;z-index:2}.piece-cell:disabled{opacity:1;cursor:default}.piece-cell:focus-visible{outline-color:#1d6f86;outline-offset:0}.piece-cell:hover:not(:disabled){background:#fff3bd35}.piece-cell.selected{background:#275e5733;outline:2px dashed #316858;outline-offset:0}.piece-cell.legal::after{content:"";width:25%;height:25%;border-radius:50%;background:#296d69bb;box-shadow:0 0 0 3px #c8e9c455;position:absolute;z-index:3;pointer-events:none}.piece-cell.legal:has(.man)::after{width:92%;height:92%;background:transparent;border:3px solid #267d7a}.stone{width:84%;height:84%;display:block;border-radius:50%;box-shadow:2px 4px 5px #0005;position:relative;animation:place .2s ease}.stone.black{background:radial-gradient(circle at 32% 24%,#676971 0%,#272a30 33%,#111319 75%);border:1px solid #14171d}.stone.white{background:radial-gradient(circle at 30% 24%,#fffdf5,#e2e1d8 68%,#b4b4af);border:1px solid #b6b4a9}.piece-cell.last .stone::after{content:"";position:absolute;inset:38%;border:1.5px solid #ebbd6f;border-radius:50%}.piece-cell.winline .stone{box-shadow:0 0 0 2px #efaa46,0 0 20px #ffc769}.man{position:relative;width:92%;height:92%;border-radius:50%;display:grid;place-items:center;font-size:clamp(19px,1.8vw,28px);font-family:"STKaiti","KaiTi","Songti SC",serif;font-weight:700;background:radial-gradient(circle at 32% 24%,#fff2d3,#e8c98e 70%,#b18d59);border:2px solid #aa8754;box-shadow:1px 4px 1px #98733f,2px 7px 6px #0003;color:#bd4f41}.man::before{content:"";position:absolute;inset:7%;border:1px solid currentColor;border-radius:50%;opacity:.6}.man.minus{color:#324d60}.piece-cell.last .man{box-shadow:0 0 0 2px #c09539,1px 5px 2px #7c6746}.animal{width:96%;height:96%;position:relative;border-radius:14px;background:#f9e7c9;border:2px solid #ae6961;box-shadow:1px 4px 2px #7457435e;overflow:hidden;display:block}.animal.minus{border-color:#478d9c;background:#d9eff1}.animal svg{width:100%;height:100%;display:block;pointer-events:none}.animal small{position:absolute;left:3px;bottom:2px;font:750 11px system-ui;color:#6a3f37}.animal b{position:absolute;right:3px;top:1px;font:750 9px ui-monospace;color:#6a3f37}.animal.minus small,.animal.minus b{color:#285564}.piece-cell.selected .animal{filter:brightness(1.12)}.piece-cell.last .animal{box-shadow:0 0 0 2px #edcf85,1px 5px 3px #0004}.board-foot{max-width:590px;display:flex;align-items:center;justify-content:space-between;margin:14px auto 0;gap:10px;font-size:12px;color:var(--muted)}.turn-dot{display:inline-block;vertical-align:middle;width:13px;height:13px;border-radius:50%;margin-right:7px;background:#202634;border:1px solid #9aa4ae}.turn-dot.white{background:#f2e9d4}.sidebar{display:flex;flex-direction:column;gap:14px}.side-card{background:#203247a6;border:1px solid var(--line);border-radius:18px;padding:20px}.side-card h2{font-size:14px;font-weight:600;margin:0 0 9px}.side-card p{font-size:12px;line-height:1.9;color:var(--muted);margin:8px 0}.side-eyebrow{font:10px ui-monospace,monospace;color:var(--teal);letter-spacing:2px}.status-title{font-size:22px;font-weight:650;color:var(--gold);margin:7px 0}.control-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.control-grid button{font-size:12px;padding:10px}.control-grid .wide{grid-column:1/-1}.history-list{height:138px;overflow-y:auto;margin:6px 0 0;font:12px/2 ui-monospace,Consolas,monospace;color:#a9bdca;white-space:pre-line}.status-tag{font-size:10px;padding:3px 8px;border:1px solid #8cdbcf55;color:var(--teal);border-radius:20px}.room-code{font:700 32px ui-monospace,monospace;letter-spacing:6px;color:var(--gold);margin:10px 0}.lobby{max-width:1030px;margin:25px auto;display:grid;grid-template-columns:1.45fr 1fr;gap:24px}.lobby-head h1{font-size:32px;margin:10px 0}.lobby-head p{color:var(--muted);font-size:13px}.seats{display:grid;gap:10px;margin:23px 0}.seat{display:flex;gap:13px;align-items:center;border:1px solid var(--line);background:#21344880;padding:14px;border-radius:14px}.seat.empty{border-style:dashed;opacity:.6}.seat-avatar{width:43px;height:43px;border-radius:12px;display:grid;place-items:center;background:#c3af7a22;color:var(--gold);font-size:19px}.seat strong{font-size:14px;font-weight:600}.seat small{font-size:11px;color:var(--muted);display:block}.seat .seat-ready{margin-left:auto;font-size:11px;color:var(--teal)}.hero-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hero-option{border:1px solid var(--line);border-radius:12px;padding:12px 10px;background:#ffffff05;text-align:left}.hero-option.active{border-color:var(--gold);background:#eac28113}.hero-option b{font-size:12px;display:block;color:var(--gold)}.hero-option small{font-size:10px;color:var(--muted)}.waiting-copy{font-size:12px;color:var(--muted);margin-top:16px;line-height:1.9}.lobby-actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.link-copy{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.lobby .side-card{margin-bottom:15px}.modal-shade{position:fixed;inset:0;background:#081220c9;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);z-index:90;padding:20px;display:grid;place-items:center}.modal{position:relative;background:#1d3047;border:1px solid #b0c5d73b;border-radius:24px;padding:30px;width:min(780px,100%);max-height:88vh;overflow:auto;box-shadow:0 25px 100px #0006}.modal-close{position:absolute;right:15px;top:15px;width:30px;height:30px;border:1px solid var(--line);background:#ffffff08;border-radius:50%;font-size:21px}.modal h2{font-size:25px;font-weight:600;margin:8px 30px 18px 0;color:var(--gold)}.modal h3{font-size:16px;margin:23px 0 10px}.modal p,.modal li{color:#b8c8d5;font-size:13px;line-height:1.9}.modal ul{padding-left:20px}.modal .field-row{margin-top:20px}.rules-table{border-collapse:collapse;width:100%;font-size:12px}.rules-table th,.rules-table td{text-align:left;padding:10px;border-bottom:1px solid var(--line);vertical-align:top}.rules-table th{color:var(--gold);font-weight:600;white-space:nowrap}.rules-table td{color:#bbcbd8}.modal .rule-note{background:#e9ba7613;border:1px solid #e9ba763d;border-radius:12px;padding:12px 15px}.rules-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rules-item{padding:13px;border:1px solid var(--line);border-radius:13px;background:#ffffff05}.rules-item b{font-size:13px;color:var(--gold)}.rules-item code{font-size:11px;color:var(--teal);display:block;margin:4px 0}.rules-item p{font-size:11px;margin:0}.error-banner{padding:12px 17px;border:1px solid #e7ae7655;background:#6b45334d;color:#f1c996;border-radius:12px;font-size:12px;margin-bottom:12px}.success-banner{padding:15px 20px;border:1px solid #ebc48366;background:#ebc48312;border-radius:14px;margin-bottom:15px;font-size:17px;color:var(--gold)}.chipbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--muted)}#toast{position:fixed;bottom:23px;left:50%;transform:translateX(-50%);z-index:200;background:#344d5ef5;border:1px solid #a6d4d477;padding:12px 22px;border-radius:13px;max-width:min(650px,90vw);color:#f0f5ed;box-shadow:0 12px 40px #0004;font-size:13px}.cards-view{max-width:1250px;margin:auto}.card-game-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;gap:12px}.card-game-top h1{font-size:25px;letter-spacing:1px;margin:0}.opponents{display:grid;grid-template-columns:repeat(var(--players),minmax(0,1fr));gap:10px}.player-panel{position:relative;min-width:0;background:linear-gradient(145deg,#304157,#213349);border:1px solid #a4bbd333;border-radius:16px;padding:13px;text-align:left;min-height:153px;overflow:hidden}.player-panel:hover{background:linear-gradient(145deg,#3e5265,#293d51)}.player-panel.me{background:linear-gradient(140deg,#375150,#213c43);border-color:#8cdbcf55}.player-panel.current{box-shadow:inset 0 3px 0 var(--gold)}.player-panel.targeted{outline:2px solid var(--gold);outline-offset:2px}.player-panel.available{border-color:var(--teal);box-shadow:0 0 18px #8cdbcf18}.player-panel.reboot{filter:grayscale(.45);opacity:.7}.player-top{display:flex;align-items:center;gap:8px}.hero-sigil{width:36px;height:38px;border-radius:11px;flex-shrink:0;display:grid;place-items:center;color:var(--gold);border:1px solid #d7b57577;background:#d7b57512;font:22px "STKaiti","KaiTi",serif}.player-name{font-size:13px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;font-weight:650;max-width:105px}.player-title{font-size:10px;color:var(--muted)}.hp-dots{display:flex;gap:4px;margin:12px 0 8px}.hp-dots i{display:block;width:14px;height:5px;border-radius:3px;background:var(--teal)}.hp-dots i.empty{background:#8cdbcf22}.scoreline{font:12px ui-monospace,monospace;color:var(--gold);display:flex;align-items:center;justify-content:space-between}.scoreline span{font-size:10px;color:#a6b6c5}.equip-line{margin-top:9px;display:flex;gap:5px;min-height:19px;flex-wrap:wrap;font-size:9px;color:#bacdd6}.equip-line span{padding:1px 5px;border:1px solid #a2bccb33;border-radius:4px}.table-surface{margin:17px 0 15px;min-height:165px;border:1px solid #6b8c9444;border-radius:25px;background:radial-gradient(ellipse at 50% 100%,#384f5266,#14273bb8),repeating-linear-gradient(40deg,#ffffff02 0px,#ffffff02 1px,transparent 1px,transparent 11px);position:relative;display:grid;grid-template-columns:1fr 1fr;gap:25px;padding:22px 28px;overflow:hidden}.table-surface::before{content:"AC";font:110px ui-monospace,monospace;position:absolute;top:7px;left:41%;opacity:.03;pointer-events:none}.table-status h2{font-size:25px;color:var(--gold);margin:4px 0 8px;letter-spacing:1px}.table-status p{margin:0;color:#b6c9d2;font-size:12px;line-height:1.9}.table-status .chipbar{margin-top:12px}.event-log{font-size:11px;line-height:1.8;color:#97acbe;max-height:132px;overflow:auto;white-space:pre-line;padding-left:23px;border-left:1px solid var(--line)}.hand-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px}.hand-header h2{font-size:15px;margin:0}.hand-header span{color:var(--muted);font-size:11px}.hand-scroll{overflow-x:auto;padding:9px 3px 15px;scrollbar-color:#52667c #14263a}.hand{display:flex;gap:10px;width:max-content;min-width:100%}.hand-card{width:130px;height:182px;flex-shrink:0;border:1px solid #d1b68aaa;border-radius:13px;background:linear-gradient(150deg,#f3e5c9,#d8c5a2);color:#343c46;text-align:left;padding:12px;position:relative;box-shadow:0 5px 12px #0003;overflow:hidden}.hand-card::before{content:"";position:absolute;inset:4px;border:1px solid #a58d652f;border-radius:9px;pointer-events:none}.hand-card[data-type="attack"]{background:linear-gradient(155deg,#f1d9c5,#d3a198)}.hand-card[data-type="response"]{background:linear-gradient(155deg,#e4ebdd,#adcac7)}.hand-card[data-type="trick"]{background:linear-gradient(155deg,#e2dbed,#b4accc)}.hand-card[data-type="equipment"]{background:linear-gradient(155deg,#f3e5bf,#c7b381)}.hand-card.selected{outline:3px solid var(--teal);outline-offset:1px;transform:translateY(-5px)}.hand-card.usable{border-color:#fff2cb}.hand-card:hover{filter:brightness(1.05);transform:translateY(-4px)}.hand-card .card-type{display:block;font-size:9px;color:#555d68;letter-spacing:1px}.hand-card .card-code{font:700 12px ui-monospace,Consolas,monospace;display:block;margin-top:12px;overflow-wrap:anywhere;line-height:1.5;min-height:34px}.hand-card .card-title{font-size:15px;font-weight:750;display:block;margin:6px 0}.card-symbol{position:absolute;right:9px;bottom:7px;font:56px ui-monospace,monospace;opacity:.09}.hand-card .card-desc{font-size:10px;line-height:1.65;display:block;color:#59616a}.hand-card .card-id{position:absolute;bottom:10px;left:12px;font:8px ui-monospace;color:#717773}.card-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:14px 17px;background:#263b4b;border:1px solid #92a9b333;border-radius:16px}.card-actions .selected-copy{flex:1;min-width:190px;font-size:12px;color:#bbcbd8;line-height:1.7}.card-actions button{font-size:12px;padding:9px 13px}.response-glow{border-color:#ebc48399;box-shadow:0 0 30px #ebc4830c}.hand-note{font-size:11px;color:var(--muted);margin-top:10px}.mini-hint{font-size:11px;color:var(--muted)}.row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.form-error{color:#f2b6a3;font-size:12px;min-height:20px;margin:10px 0}.busy-shimmer{animation:pulse 1.8s infinite}.countdown{font:22px ui-monospace,monospace;color:var(--gold)}.countdown.urgent{color:#f3a69d}.selected-rule{color:#bfcfd9;font-size:12px}.modal .primary{margin-top:10px}.rules-table code{white-space:nowrap}@keyframes place{from{transform:scale(.65);opacity:.4}to{transform:scale(1);opacity:1}}@keyframes pulse{50%{opacity:.5}}@media(min-width:1500px){.hero h1{font-size:56px}.tile-copy{padding-left:25px}.tile-copy h3{font-size:26px}.hero{padding:45px 0 35px}}@media(max-height:830px) and (min-width:1000px){.topbar{height:69px}.hero{padding:28px 0 22px}.hero h1{font-size:39px}.tile-art{aspect-ratio:1.35}.back-line{margin:13px 0 10px}.board-frame.gomoku{max-width:525px}.board-frame.xiangqi{max-width:442px}.board-frame.jungle{max-width:391px}.board-head{margin-bottom:10px}.sidebar{gap:11px}.side-card{padding:16px}.history-list{height:116px}.site-footer{margin-top:9px;padding-top:10px;padding-bottom:13px}.player-panel{min-height:143px;padding:11px}.table-surface{min-height:134px;padding:16px 23px;margin:13px 0}.event-log{max-height:103px}.hand-card{height:165px;width:122px;padding:11px}.hand-card .card-code{margin-top:9px;min-height:31px}.hand-card .card-title{font-size:14px;margin:5px 0}.hand-card .card-desc{font-size:9px}.hand-scroll{padding-bottom:11px}.card-actions{padding:11px 14px}}@media(max-width:1050px){#app{padding:0 23px 15px}.topbar{padding:0 23px}.hero{gap:25px}.hero h1{font-size:39px}.tile-copy{padding:16px 15px 16px 7px}.tile-copy h3{font-size:21px}.tile-copy p{font-size:11px}.play-layout{grid-template-columns:minmax(0,1fr) 245px;gap:17px}.side-card{padding:15px}.player-panel{padding:10px}.hero-sigil{width:28px;height:34px;font-size:18px}.player-name{font-size:12px;max-width:78px}.player-title{font-size:9px}.player-top{gap:6px}.opponents{gap:8px}.table-status h2{font-size:22px}.setup{gap:25px}}@media(max-width:780px){.topbar{height:74px;padding:0 18px}.brand{font-size:20px;gap:8px}.brand-star{font-size:30px}.brand small{font-size:8px;letter-spacing:1.5px}.net-badge{font-size:10px;padding-right:0}.topbar nav{gap:7px}.quiet{padding:7px 9px;font-size:11px}#app{padding:0 18px 10px}.hero{grid-template-columns:1fr;gap:23px;padding:28px 0}.hero h1{font-size:39px;letter-spacing:2px}.hero p{font-size:13px}.tags{margin-top:17px}.join-panel{padding:21px}.join-panel h2{font-size:21px}.game-grid{grid-template-columns:1fr;gap:14px}.tile-art{aspect-ratio:1.2}.tile-copy{padding:20px}.tile-copy h3{font-size:25px}.tile-copy p{font-size:12px}.site-footer{padding:15px 18px;font-size:10px}.site-footer span{display:none}.setup{grid-template-columns:1fr;margin:22px auto;gap:24px;max-width:550px}.setup-art{max-height:255px}.setup-art svg{width:100%;height:255px}.setup-copy h1{font-size:30px}.setup-modes{margin-top:18px}.play-layout{grid-template-columns:1fr;gap:18px}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sidebar .move-history-card{grid-column:1/-1}.history-list{height:85px}.board-frame.gomoku{max-width:560px}.board-frame.xiangqi{max-width:480px}.board-frame.jungle{max-width:430px}.man{font-size:26px}.board-head h1{font-size:22px}.lobby{grid-template-columns:1fr;gap:17px}.lobby-head h1{font-size:28px}.room-code{font-size:29px}.lobby .side-card{margin-bottom:12px}.opponents{grid-template-columns:repeat(3,minmax(0,1fr))}.player-panel{min-height:134px;padding:11px}.player-name{max-width:125px}.player-title{font-size:10px}.hero-sigil{width:33px}.table-surface{grid-template-columns:1fr;gap:13px;padding:18px}.event-log{border-left:0;border-top:1px solid var(--line);padding:12px 0 0;max-height:74px}.card-game-top h1{font-size:22px}.hand-card{width:124px;height:173px}.hand-scroll{padding-top:7px}.hand-note{font-size:10px}.modal{padding:24px}.modal h2{font-size:22px}.rules-cards{grid-template-columns:1fr 1fr}.card-actions .selected-copy{flex-basis:100%}.card-actions{position:sticky;bottom:7px;box-shadow:0 6px 35px #0005;z-index:5}.board-foot{font-size:11px}.library-heading span{display:none}}@media(max-width:430px){#app{padding:0 12px 10px}.topbar{padding:0 12px;height:67px}.brand{font-size:18px}.brand-star{font-size:26px}.net-badge{display:none}.topbar nav{gap:5px}.quiet{font-size:10px;padding:7px 9px}.hero{padding:24px 3px}.hero h1{font-size:35px}.hero .eyebrow{font-size:9px}.join-panel{padding:17px}.game-tile{grid-template-columns:40% 1fr}.tile-copy{padding:16px 15px 16px 7px}.tile-copy h3{font-size:22px}.tile-copy p{font-size:11px;line-height:1.75;margin-bottom:13px}.tile-meta{font-size:9px}.tile-art{aspect-ratio:.9}.game-tile svg{height:100%;width:100%;object-fit:cover}.board-frame{border-width:6px;border-radius:12px}.man{font-size:22px}.animal{border-width:1.5px;border-radius:9px}.animal small{font-size:9px;bottom:2px;left:2px}.animal b{font-size:8px;right:2px}.board-head h1{font-size:20px}.board-head span{font-size:10px}.side-card{padding:14px}.status-title{font-size:20px}.sidebar{gap:10px}.side-card p{font-size:11px}.control-grid button{padding:9px 5px;font-size:11px}.card-game-top{flex-wrap:wrap;gap:8px}.player-panel{padding:9px;min-height:137px}.player-name{font-size:11px;max-width:66px}.player-title{font-size:9px}.hero-sigil{display:none}.hp-dots{gap:3px}.hp-dots i{width:12px}.scoreline{font-size:11px}.scoreline span{font-size:9px}.equip-line{font-size:8px}.table-surface{padding:16px;margin:13px 0}.table-status h2{font-size:22px}.table-status p{font-size:11px}.card-actions{gap:7px;padding:12px}.card-actions button{font-size:11px;padding:9px 10px}.modal{padding:23px 18px;border-radius:19px}.modal-shade{padding:13px}.rules-cards{grid-template-columns:1fr}.rules-table td,.rules-table th{padding:8px 4px;font-size:11px}.field-row{gap:10px}.setup-copy{padding:0 2px}.setup-copy h1{font-size:28px}.setup-art{max-height:205px}.setup-art svg{height:205px}.setup-modes{gap:5px}.mode-btn{font-size:12px;padding:10px 5px}.card-actions .selected-copy{font-size:11px}.hand-header span{font-size:9px}.site-footer{font-size:9px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Compact desktop table: preserve readable card faces and keep action controls visible. */
.player-top>div{min-width:0;flex:1}.player-name{max-width:100%}
@media(min-width:1000px) and (max-height:850px){
 .player-panel{min-height:121px;padding:10px}.hp-dots{margin:8px 0 6px}
 .table-surface{min-height:118px;padding:12px 20px;margin:10px 0;gap:20px}
 .table-status .eyebrow{margin-bottom:3px}.table-status .chipbar{margin-top:7px}
 .table-status p{line-height:1.65}.event-log{max-height:95px}
 .card-actions .selected-copy{max-height:46px;overflow:auto}
}
