*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 15% 10%,rgba(232,75,75,.18),transparent 28rem),radial-gradient(circle at 90% 0%,rgba(68,140,255,.2),transparent 24rem),#101114;color:#f6f1e8;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,sans-serif}body.battle-active{overflow:hidden}body:not(.battle-active){overflow:hidden}button,input,select{font:inherit;min-width:0}button{min-height:2.75rem;border:0;border-radius:6px;padding:.65rem 1rem;background:#f8d64e;color:#161616;font-weight:800;cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.52;filter:grayscale(.35);box-shadow:none}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #f8d64e;outline-offset:2px}button.secondary{border:1px solid rgba(255,255,255,.16);background:#252832;color:#f6f1e8}button.connection-action{min-width:7rem;color:#fff}button.connection-action-open{background:#2eaf5d}button.connection-action-retry{background:#d83a34}input,select{width:100%;border:1px solid rgba(255,255,255,.18);border-radius:6px;padding:.7rem .8rem;background:#191b22;color:#f6f1e8}label span{display:block;margin-bottom:.35rem;color:#bfc3cf;font-size:.8rem}.shell{position:relative;width:min(1280px,calc(100% - 2rem));margin:0 auto;padding:1rem 0 1.6rem}.shell:not(.shell-battle){height:100dvh;padding:.7rem 0 2rem;overflow:hidden}.shell:before{content:"";position:fixed;inset:0;z-index:-1;background:url(/lobby-background.webp) center/cover no-repeat;opacity:.68;filter:brightness(1.08) saturate(1.04);pointer-events:none}.shell-battle{width:100%;height:100dvh;padding:0;overflow:hidden}.shell-battle:before{display:none}.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:"actions title status";align-items:center;gap:.85rem 1.2rem;margin-bottom:.65rem;padding-top:.1rem}.lobby-topbar-actions{grid-area:actions;display:inline-grid;grid-auto-flow:column;grid-auto-columns:minmax(0,auto);gap:.55rem;align-items:center;justify-self:start}.lobby-topbar-status-group{grid-area:status;display:inline-grid;grid-auto-flow:column;grid-auto-columns:minmax(0,auto);gap:.55rem;align-items:center;justify-self:end}.lobby-title-wrap{grid-area:title;position:relative;display:flex;align-items:center;justify-content:center;justify-self:center;width:min(100%,78rem);min-height:clamp(2.9rem,5.3vw,3.9rem);padding:.1rem .9rem .18rem;background:transparent;text-align:center}.lobby-title-wrap:before{content:"";position:absolute;left:50%;top:50%;width:min(100%,34rem);height:145%;background:radial-gradient(circle at 50% 50%,rgba(85,198,255,.34),rgba(14,86,181,.18) 42%,transparent 72%);filter:blur(14px);transform:translate(-50%,-50%);opacity:.92;pointer-events:none;animation:lobby-title-pulse 3.8s ease-in-out infinite}.lobby-title-wrap:after{content:"";position:absolute;left:50%;top:50%;width:min(100%,29rem);height:120%;background:linear-gradient(108deg,transparent 0%,rgba(255,255,255,.08) 36%,rgba(161,229,255,.84) 48%,transparent 60%);transform:translate(-50%,-50%) skew(-18deg);opacity:0;pointer-events:none;animation:lobby-title-sheen 6.8s ease-in-out infinite}.lobby-title{margin:0;color:#0b3a8f;font-size:clamp(1.8rem,3.6vw,3rem);font-weight:800;letter-spacing:.04em;line-height:1.15;text-align:center;font-family:Microsoft YaHei,PingFang SC,Inter,sans-serif;white-space:nowrap}.eyebrow{margin:0 0 .35rem;color:#65d17a;font-weight:900;text-transform:uppercase}.status{flex:0 0 auto;border-radius:999px;padding:.45rem .8rem;background:#2b2f39;color:#d9deea;font-weight:800}.status-open{background:#236c39;color:#e9fff0}.status-error{background:#8a2525;color:#fff0f0}.panel{border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:1rem;background:#171920eb;overflow:hidden}.shell:not(.shell-battle) .panel{border-color:#1118271f;background:#ffffffeb;color:#171b24;box-shadow:0 .9rem 2.4rem #141a2429}.shell:not(.shell-battle) .panel h2,.shell:not(.shell-battle) .panel strong{color:#171b24}.shell:not(.shell-battle) label span,.shell:not(.shell-battle) .muted,.shell:not(.shell-battle) .room-meta span,.shell:not(.shell-battle) .room-meta p,.shell:not(.shell-battle) .room-code-label,.shell:not(.shell-battle) .player-pill small,.shell:not(.shell-battle) .log-panel li{color:#4b5565}.shell:not(.shell-battle) input,.shell:not(.shell-battle) select{border-color:#1118272e;background:#ffffffe0;color:#171b24}.shell:not(.shell-battle) button.secondary{border-color:#11182729;background:#eef2f8;color:#172033}.lobby-storm-backdrop{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.lobby-storm-vignette,.lobby-storm-grid,.lobby-storm-glow,.lobby-storm-beams,.lobby-storm-particles,.lobby-screen-lightnings{position:absolute;inset:0}.lobby-storm-vignette{background:radial-gradient(circle at 50% 20%,rgba(88,191,255,.28),transparent 24rem),radial-gradient(circle at 50% 48%,rgba(9,58,128,.12),transparent 34rem),linear-gradient(180deg,#0209160d,#02091638)}.lobby-storm-grid{background-image:linear-gradient(rgba(77,169,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(77,169,255,.06) 1px,transparent 1px);background-size:4.8rem 4.8rem;-webkit-mask-image:linear-gradient(180deg,#000000d6,#0000002e);mask-image:linear-gradient(180deg,#000000d6,#0000002e)}.lobby-storm-glow{filter:blur(24px);opacity:.72}.lobby-storm-glow.glow-left{background:radial-gradient(circle at 0% 50%,rgba(67,165,255,.26),transparent 36%)}.lobby-storm-glow.glow-right{background:radial-gradient(circle at 100% 38%,rgba(0,191,255,.24),transparent 34%)}.lobby-storm-beam{position:absolute;left:var(--storm-left);top:-5rem;width:var(--storm-width);height:var(--storm-height);opacity:var(--storm-opacity);background:linear-gradient(180deg,#8adcff6b,#05205200);filter:blur(8px);transform-origin:top center;animation:lobby-storm-beam-sway var(--storm-duration) ease-in-out infinite;animation-delay:var(--storm-delay)}.lobby-storm-particle{position:absolute;left:var(--storm-particle-left);bottom:-2.6rem;width:var(--storm-particle-size);height:var(--storm-particle-size);border-radius:999px;background:#62c9ffb8;box-shadow:0 0 .55rem #00bfffc2,0 0 1.1rem #136eff47;animation:lobby-storm-particle-rise var(--storm-particle-duration) linear infinite;animation-delay:var(--storm-particle-delay)}.lobby-screen-lightning{position:absolute;left:var(--lightning-left);top:var(--lightning-top);width:clamp(.12rem,.22vw,.22rem);height:var(--lightning-height);opacity:0;background:linear-gradient(180deg,#f4fbfff5,#00bfffeb);clip-path:polygon(50% 0%,0% 16%,66% 26%,28% 46%,100% 58%,38% 72%,76% 100%,18% 84%);box-shadow:0 0 .8rem #70d5ffdb,0 0 1.9rem #0047ab6b;mix-blend-mode:screen;transform:rotate(var(--lightning-rotate));transform-origin:top center}.lobby-screen-lightning.flash-a{animation:lobby-lightning-flash-a 8.2s infinite}.lobby-screen-lightning.flash-b{animation:lobby-lightning-flash-b 9.8s infinite}.lobby-screen-lightning.flash-c{animation:lobby-lightning-flash-c 11.4s infinite}.ui-toast{position:fixed;left:50%;bottom:.9rem;transform:translate(-50%);z-index:60;width:min(34rem,calc(100% - 1.5rem));margin:0;padding:.75rem 1rem;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#1e222bf5;color:#f6f1e8;font-weight:900;text-align:center;box-shadow:0 .85rem 2rem #00000047}.ui-toast.toast-enter{animation:toast-in .18s ease-out}.toast-success{border-color:#65d17a8c;background:#1b522ef5}.toast-warning{border-color:#f8d64e8c;background:#543e13f5}@keyframes lobby-storm-beam-sway{0%,to{transform:translate(-50%) translateY(0) rotate(-5deg) scaleY(.96);opacity:calc(var(--storm-opacity) * .7)}50%{transform:translate(-50%) translateY(1.1rem) rotate(4deg) scaleY(1.06);opacity:var(--storm-opacity)}}@keyframes lobby-storm-particle-rise{0%{opacity:0;transform:translate3d(0,2.8rem,0) scale(.6)}14%{opacity:var(--storm-particle-opacity)}55%{opacity:calc(var(--storm-particle-opacity) * .72);transform:translate3d(var(--storm-particle-drift),-15rem,0) scale(1)}to{opacity:0;transform:translate3d(calc(var(--storm-particle-drift) * -.65),-30rem,0) scale(.72)}}@keyframes lobby-title-scan-shift{0%{transform:translateY(-10%) scaleY(1);opacity:.18}35%{opacity:.3}50%{transform:translateY(6%) scaleY(1.03);opacity:.42}to{transform:translateY(-10%) scaleY(1);opacity:.18}}@keyframes lobby-title-overexpose-flash{0%,38%,to{background-position:50% 50%,160% 50%;opacity:0}41%{opacity:.96}46%{background-position:50% 50%,34% 50%;opacity:.72}53%{opacity:.18}60%{background-position:50% 50%,-70% 50%;opacity:0}}@keyframes lobby-title-flow{0%{background-position:0% 50%}to{background-position:300% 50%}}@keyframes lobby-title-rumble{0%,88%,to{transform:translateZ(0) scaleX(1) scaleY(1)}90%{transform:translate3d(.04em,-.02em,0) scaleX(1.018) scaleY(.986)}93%{transform:translate3d(-.03em,.03em,0) scaleX(.992) scaleY(1.018)}96%{transform:translate3d(.025em,-.015em,0) scaleX(1.012) scaleY(.992)}}@keyframes lobby-title-pulse{0%,to{filter:drop-shadow(0 0 .5rem rgba(0,191,255,.34))}50%{filter:drop-shadow(0 0 .9rem rgba(110,208,255,.56))}}@keyframes lobby-title-sheen{0%,42%{background-position:155% 50%;opacity:0}48%{opacity:.92}58%{opacity:.46}76%,to{background-position:-120% 50%;opacity:0}}@keyframes lobby-particle-rise{0%{opacity:0;transform:translate3d(0,2rem,0) scale(.7)}16%{opacity:.92}50%{transform:translate3d(.5rem,-7rem,0) scale(1)}to{opacity:0;transform:translate3d(-.35rem,-14rem,0) scale(.72)}}@keyframes lobby-lightning-flash-a{0%,12%,to{opacity:0}13%,14%,16%{opacity:1}15%,17%{opacity:.2}}@keyframes lobby-lightning-flash-b{0%,40%,to{opacity:0}41%,42%,44%{opacity:1}43%,45%{opacity:.16}}@keyframes lobby-lightning-flash-c{0%,66%,to{opacity:0}67%,68%,70%{opacity:1}69%,71%{opacity:.14}}.finish-banner{margin-bottom:1rem;background:#232a35}.panel h2,.hand h2{margin:0 0 .9rem;font-size:1rem}.connection-panel,.layout,.form-grid,.button-row,.room-meta,.hand-header{display:grid;gap:.8rem}.connection-panel{grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr) auto;align-items:end;margin-bottom:1rem}.button-row{grid-auto-flow:column;grid-auto-columns:max-content}.layout{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);align-items:start;margin-bottom:1rem}.lobby-layout{grid-template-columns:minmax(9.5rem,.39fr) minmax(0,1.61fr);gap:1rem}.lobby-control,.lobby-status,.rules-guide{position:relative;min-height:100%}.lobby-control{display:grid;gap:1rem;background:linear-gradient(135deg,rgba(248,214,78,.14),transparent 34%),#171920f0}.shell:not(.shell-battle) .lobby-control{background:linear-gradient(135deg,rgba(248,214,78,.2),transparent 34%),#fffffff0}.lobby-status{background:linear-gradient(135deg,rgba(101,209,122,.12),transparent 32%),linear-gradient(315deg,rgba(68,140,255,.1),transparent 35%),#171920f0}.shell:not(.shell-battle) .lobby-status{background:linear-gradient(135deg,rgba(101,209,122,.18),transparent 32%),linear-gradient(315deg,rgba(68,140,255,.16),transparent 35%),#fffffff0}.rules-guide{grid-column:1 / -1;display:grid;gap:1rem;background:linear-gradient(135deg,rgba(115,183,255,.12),transparent 28%),linear-gradient(315deg,rgba(248,214,78,.1),transparent 34%),#171920f0}.shell:not(.shell-battle) .rules-guide{background:linear-gradient(135deg,rgba(115,183,255,.18),transparent 28%),linear-gradient(315deg,rgba(248,214,78,.16),transparent 34%),#fffffff0}.rule-entry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}.rule-entry-button{width:100%;min-height:4.6rem;border:0;color:#fff;font-size:1.05rem;font-weight:900;letter-spacing:0;box-shadow:inset 0 -.18rem #0000003d,0 .85rem 1.5rem #00000038}.rule-entry-button:disabled{opacity:.5}.rule-entry-red{background:linear-gradient(180deg,#f34b45,#c62828)}.rule-entry-yellow{color:#231b09;background:linear-gradient(180deg,#ffe16a,#fbc02d)}.rule-entry-green{background:linear-gradient(180deg,#59c967,#2e7d32)}.rule-entry-blue{background:linear-gradient(180deg,#43a5ff,#1565c0)}.rules-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.rule-card{border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#0a0c117a;overflow:hidden}.rule-card summary{display:grid;gap:.22rem;min-height:4.4rem;padding:.85rem;cursor:pointer;list-style:none}.rule-card summary::-webkit-details-marker{display:none}.rule-card summary span{color:#73b7ff;font-size:.72rem;font-weight:900;text-transform:uppercase}.rule-card summary strong{color:#f6f1e8;font-size:1rem;line-height:1.2}.rule-card ul{display:grid;gap:.45rem;margin:0;padding:0 .95rem .95rem 1.9rem;color:#d9deea;font-size:.86rem;line-height:1.45}.lobby-panel-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.2rem .65rem;min-width:0}.lobby-panel-heading .eyebrow{grid-column:1 / -1;margin-bottom:0;font-size:.66rem}.lobby-panel-heading h2{margin:0;font-size:clamp(1.2rem,2.35vw,1.82rem);line-height:1}.lobby-panel-heading>span{justify-self:end;border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:.28rem .52rem;background:#ffffff14;color:#f6f1e8;font-size:.72rem;font-weight:900;white-space:nowrap}.shell:not(.shell-battle) .lobby-panel-heading>span{border-color:#1118271f;background:#1118270f;color:#172033}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lobby-control .form-grid{grid-template-columns:1fr}.lobby-control label{display:grid;gap:.35rem}.lobby-control input,.lobby-control select{min-height:clamp(2.15rem,4.3vw,2.55rem);border-color:#ffffff29;background:#0a0c1194;box-shadow:inset 0 1px #ffffff0d}.shell:not(.shell-battle) .lobby-control input,.shell:not(.shell-battle) .lobby-control select{border-color:#11182729;background:#ffffffe6;box-shadow:inset 0 1px #ffffffa6}.room-code-inputs{display:grid;grid-template-columns:repeat(6,minmax(1.85rem,1fr));gap:.28rem}.lobby-control .room-code-digit{width:100%;min-width:0;text-align:center;font-size:clamp(.95rem,2vw,1.05rem);font-weight:900;letter-spacing:0}.lobby-actions{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row;grid-auto-columns:auto}.lobby-actions button{min-height:clamp(2.2rem,4.6vw,2.6rem);font-size:.88rem}.lobby-actions .copy-room-button{background:#2f63c9;color:#f4f9ff}.lobby-actions .copy-room-button:disabled{opacity:.52;filter:grayscale(.2)}.lobby-hints,.room-chip-row{display:flex;flex-wrap:wrap;gap:.45rem}.lobby-hints span,.room-chip-row span{border:1px solid rgba(255,255,255,.13);border-radius:999px;padding:.35rem .6rem;background:#ffffff12;color:#d9deea;font-size:.75rem;font-weight:800}.shell:not(.shell-battle) .lobby-hints span,.shell:not(.shell-battle) .room-chip-row span{border-color:#1118271f;background:#ffffffb3;color:#334155}.room-meta{grid-template-columns:minmax(8rem,auto) minmax(0,1fr);align-items:end;gap:.5rem .9rem;margin-bottom:1rem;min-width:0}.room-meta-actions{justify-self:end;align-self:start;display:grid;gap:.45rem}.add-bot-menu-button,.add-bot-menu-add-button{min-height:clamp(2.05rem,4.2vw,2.4rem)}.add-bot-menu{position:relative;display:grid;gap:.45rem;overflow:visible}.add-bot-menu-button{width:100%;padding-inline:.72rem}.add-bot-menu-panel{position:absolute;top:calc(100% + .35rem);left:0;right:0;z-index:8;display:grid;gap:.35rem;min-width:max-content;padding:.45rem;border:1px solid rgba(96,165,250,.18);border-radius:8px;background:#eff6ffeb;box-shadow:0 .8rem 2rem #0f172a2e}.add-bot-menu-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.55rem}.add-bot-menu-label{color:#17344b;font-size:.82rem;font-weight:800}.add-bot-menu-add-button{width:2.4rem;min-width:2.4rem;padding:0;font-size:1.25rem;line-height:1}.room-code-label{display:block;margin-bottom:.2rem;color:#aeb5c4;font-size:.72rem;font-weight:800}.room-meta strong{display:block;font-size:clamp(1.8rem,5vw,3.1rem);line-height:.95;letter-spacing:.08em;word-break:break-all;overflow-wrap:anywhere}.room-meta p{grid-column:1 / -1;margin:0;color:#cbd1de;overflow-wrap:anywhere}.room-meta span,.muted,.error-line{color:#bfc3cf}.room-meta span,.player-pill span,.player-pill small,.opponent strong,.opponent span,.table-facts span,.selection-summary span,.finish-banner p,.log-panel li{min-width:0;overflow-wrap:anywhere;word-break:break-word}.error-line{grid-column:1 / -1;margin:0;color:#ff9c9c;min-height:1.5rem;line-height:1.4;overflow-wrap:anywhere}.empty-lobby{display:grid;gap:.7rem;min-height:15rem;align-content:center;text-align:center}.empty-lobby strong{font-size:1.25rem}.empty-lobby p{margin:0}.empty-seat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.45rem;width:min(100%,24rem);margin:.3rem auto 0}.empty-seat-grid span{display:grid;place-items:center;aspect-ratio:1;border:1px dashed rgba(255,255,255,.18);border-radius:8px;color:#ffffff5c;font-weight:900}.shell:not(.shell-battle) .empty-seat-grid span{border-color:#1118272e;background:#ffffff75;color:#11182761}.players{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.6rem;margin-bottom:.9rem}.players-compact{grid-template-columns:repeat(auto-fit,minmax(7.8rem,1fr));gap:.55rem}.player-pill,.opponent{border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:.75rem;background:#20232c;min-width:0}.player-pill{display:grid;grid-template-columns:3rem minmax(0,1fr) auto;grid-template-areas:"avatar name action" "avatar meta action" "avatar bot action";align-items:center;column-gap:.7rem}.player-pill-compact{grid-template-columns:2.8rem minmax(0,1fr);grid-template-areas:"avatar name";gap:.65rem;padding:.65rem .78rem}.shell:not(.shell-battle) .player-pill{border-color:#1118271f;background:#ffffffd1}.player-pill.self{border-color:#f8d64ed9;background:linear-gradient(135deg,rgba(248,214,78,.16),transparent 44%),#20232c;box-shadow:0 0 0 1px #f8d64e1f}.shell:not(.shell-battle) .player-pill.self{background:linear-gradient(135deg,rgba(248,214,78,.22),transparent 44%),#ffffffe6}.shell:not(.shell-battle) .player-pill.left{border-color:#ef44447a;background:linear-gradient(135deg,rgba(239,68,68,.12),transparent 46%),#ffffffd6}.shell:not(.shell-battle) .player-pill.offline{opacity:.72}.player-pill-empty{border-style:dashed;background:#11131994;color:#9299a8}.shell:not(.shell-battle) .player-pill-empty{background:#ffffff94;color:#64748b}.avatar-empty{display:grid;place-items:center;color:#7f8796;font-weight:900}.player-pill span,.player-pill small,.opponent span{display:block}.player-pill small,.opponent span{margin-top:.25rem;color:#aeb5c4}.avatar{width:3rem;height:3rem;border:2px solid rgba(255,255,255,.18);border-radius:50%;object-fit:cover;background:#101114}.player-pill span{grid-area:name}.player-pill-compact span{margin:0;align-self:center;font-size:var(--lobby-player-name-size, .96rem);font-weight:800;line-height:1.08;overflow:hidden;text-overflow:clip;overflow-wrap:normal;word-break:keep-all;white-space:nowrap}.player-pill small{grid-area:meta}.player-pill .avatar{grid-area:avatar}.player-pill-compact .avatar{width:2.8rem;height:2.8rem;border-width:3px}.player-pill-compact.is-ready .avatar{border-color:#3dd672f2;box-shadow:0 0 0 1px #3dd6722e}.player-pill-compact.is-unready .avatar{border-color:#ef4444f2;box-shadow:0 0 0 1px #ef444424}.player-pill-compact small,.player-pill-compact .mini-kick-button,.player-pill-compact .bot-tag{display:none}.bot-tag,.seat-bot-tag{display:inline-grid;place-items:center;width:fit-content;border-radius:999px;background:#1d4ed8;color:#fff;font-size:.68rem;font-weight:900;line-height:1}.player-pill .bot-tag{grid-area:bot;margin-top:.25rem;padding:.22rem .42rem}.seat-bot-tag{padding:.18rem .38rem;margin-top:.18rem}.battle-immersive .seat-bot-tag{position:absolute;top:.45rem;left:.45rem;z-index:3;margin:0}.mini-kick-button{grid-area:action;align-self:center;min-height:2rem;padding:.35rem .55rem;border-radius:8px;background:#ef4444;color:#fff;font-size:.78rem}.host-room-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.6rem}.host-room-actions button{width:100%;min-height:3rem}.host-room-actions-single{grid-template-columns:1fr}.seed-line{margin-bottom:.8rem}.lobby-layout-v2,.lobby-layout-v3{height:calc(100dvh - 9rem);grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(22rem,.94fr) minmax(0,1.16fr);gap:.85rem}.lobby-scale-frame{width:100%;height:100%;overflow:hidden}.lobby-scale-content{height:100%;min-height:100%;transform:scale(var(--lobby-ui-scale, 1));transform-origin:top center}.lobby-control-panel-v2,.lobby-chat-panel,.lobby-advanced-panel{position:relative;min-height:100%;overflow:hidden}.lobby-control-panel-v2{--lobby-control-space: clamp(.44rem, 1.45cqw, .72rem);--lobby-control-card-pad: clamp(.52rem, 1.7cqw, .72rem);--lobby-control-field-gap: clamp(.22rem, .75cqw, .34rem);--lobby-control-height: clamp(2.2rem, 5.3cqw, 2.85rem);--lobby-control-label-size: clamp(.66rem, 1.45cqw, .8rem);--lobby-control-text-size: clamp(.82rem, 1.8cqw, .94rem);--lobby-control-pill-height: clamp(2rem, 4.6cqw, 2.42rem);container:lobby-control-panel / inline-size}.lobby-chat-panel{display:grid;grid-template-rows:auto minmax(0,.74fr) minmax(9.2rem,.82fr) auto;gap:.45rem;height:100%;max-height:100%;background:linear-gradient(135deg,rgba(68,140,255,.12),transparent 26%),linear-gradient(315deg,rgba(0,191,255,.08),transparent 34%),linear-gradient(180deg,#0f131bf5,#090c11f0)}.lobby-chat-panel:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(137,206,255,.06),transparent 18%),radial-gradient(circle at top right,rgba(0,191,255,.12),transparent 28%);pointer-events:none}.lobby-scrollable{scrollbar-width:none;-ms-overflow-style:none}.lobby-scrollable::-webkit-scrollbar{display:none}.lobby-card-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.45rem .75rem}.lobby-card-heading strong{font-size:.95rem;font-weight:900}.lobby-card-heading span{color:#bfc9d8;font-size:.72rem;font-weight:700}.shell:not(.shell-battle) .lobby-card-heading span{color:#4b5565}.lobby-field{display:grid;gap:var(--lobby-control-field-gap, .28rem)}.lobby-identity-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;align-items:end}.lobby-identity-meta-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.lobby-identity-meta-label{display:grid;gap:.18rem;min-width:0}.lobby-identity-meta-label span{color:#8aa0b8;font-size:.7rem;font-weight:800}.lobby-identity-meta-label strong{min-width:0;color:#f4f9ff;font-size:1.26rem;font-weight:800;line-height:1.15;overflow-wrap:anywhere}.shell:not(.shell-battle) .lobby-identity-meta-label span{color:#64748b}.lobby-ready-tags{display:flex;flex-wrap:wrap;gap:.35rem}.lobby-ready-tag{display:inline-flex;align-items:center;padding:.18rem .48rem;border-radius:999px;font-size:.68rem;font-weight:800;line-height:1.1;background:#ffffff14;color:#d7e2ef}.lobby-ready-tag.is-ready{background:#22c55e29;color:#d8ffe7}.lobby-ready-tag.is-unready{background:#ef444429;color:#ffe2e2}.lobby-ready-tag.is-offline{background:#94a3b82e;color:#e2e8f0}.lobby-ready-tag.is-left{background:#78350f2e;color:#fde68a}.lobby-ready-tag.is-waiting{background:#f59e0b24;color:#fff1b3}.shell:not(.shell-battle) .lobby-ready-tag{background:#1118270f;color:#334155}.shell:not(.shell-battle) .lobby-ready-tag.is-ready{background:#22c55e1f;color:#166534}.shell:not(.shell-battle) .lobby-ready-tag.is-unready{background:#ef44441f;color:#991b1b}.shell:not(.shell-battle) .lobby-ready-tag.is-offline{background:#94a3b824;color:#475569}.shell:not(.shell-battle) .lobby-ready-tag.is-left{background:#f59e0b24;color:#92400e}.lobby-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--lobby-control-space, .75rem);min-height:0;align-items:start}.lobby-identity-card,.lobby-matchmaking-card{border-color:#7db1ff3d;box-shadow:inset 0 1px #ffffff0d,0 0 0 1px #4d94ff14}.shell:not(.shell-battle) .lobby-identity-card,.shell:not(.shell-battle) .lobby-matchmaking-card{border-color:#2563eb2e;box-shadow:inset 0 1px #ffffffa6,0 0 0 1px #2563eb0f}.lobby-identity-card{grid-template-rows:auto minmax(0,1fr)}.lobby-identity-card-body,.lobby-matchmaking-card-body{display:grid;gap:var(--lobby-control-space, .68rem);min-height:0}.lobby-identity-card-body{grid-template-rows:auto minmax(0,1fr);align-content:start}.lobby-matchmaking-card{--matchmaking-space: var(--lobby-control-space);--matchmaking-label-size: var(--lobby-control-label-size);--matchmaking-control-height: var(--lobby-control-height);--matchmaking-button-size: var(--lobby-control-text-size);--matchmaking-pill-height: var(--lobby-control-pill-height)}.lobby-matchmaking-card .lobby-card-heading{gap:calc(var(--matchmaking-space) * .6) var(--matchmaking-space)}.lobby-matchmaking-card .lobby-card-heading strong{font-size:clamp(.88rem,.42vw + .24vh,1rem)}.lobby-matchmaking-card .lobby-field{gap:calc(var(--matchmaking-space) * .45)}.lobby-matchmaking-card .lobby-field span{font-size:var(--matchmaking-label-size)}.lobby-matchmaking-card .room-code-inputs{grid-template-columns:repeat(6,minmax(0,1fr));gap:calc(var(--matchmaking-space) * .45)}.lobby-matchmaking-card .room-code-digit{min-height:var(--matchmaking-control-height);font-size:clamp(.88rem,1.9cqw,1.02rem)}.lobby-matchmaking-card select,.lobby-matchmaking-card input{min-height:var(--matchmaking-control-height);font-size:var(--matchmaking-button-size)}.lobby-matchmaking-card-body{align-content:start;gap:var(--matchmaking-space)}.lobby-matchmaking-card .lobby-primary-button,.lobby-matchmaking-card .lobby-room-actions-grid button,.lobby-matchmaking-card .lobby-start-game-button{min-height:var(--matchmaking-control-height);font-size:var(--matchmaking-button-size)}.lobby-matchmaking-card .lobby-room-status-pill{min-height:var(--matchmaking-pill-height);padding:clamp(.32rem,1.05cqw,.5rem) clamp(.55rem,1.6cqw,.8rem);font-size:clamp(.7rem,1.48cqw,.82rem)}.lobby-actions-room{margin-top:0}.lobby-room-actions-card{display:grid;gap:.68rem}.lobby-room-actions-block{gap:.55rem}.lobby-primary-action-row button{width:100%}.lobby-primary-button{background:linear-gradient(180deg,#3b82f6,#2563eb);color:#f8fbff;box-shadow:inset 0 -.18rem #00000029,0 .6rem 1.4rem #2563eb47}.lobby-primary-button:disabled{opacity:.55;filter:grayscale(.15)}.lobby-topbar-status-group .lobby-settings-button{margin-left:0;min-height:2.2rem;padding:.35rem .7rem;font-size:.82rem;white-space:nowrap}.shell:not(.shell-battle) .lobby-topbar-status-group .lobby-rule-button{border-color:#f8d64eb8;background:#f8d64e;color:#161616}.lobby-mobile-scale-tip{margin:.35rem 0 0;color:#64748b;font-size:clamp(.68rem,1.42cqw,.78rem);font-weight:800;line-height:1.25;text-align:center}.lobby-start-game-button.is-ready-to-start:enabled{border-color:#ffffff7a;background:linear-gradient(120deg,#e53935,#ffcf33 32%,#2477ff,#22c55e);background-size:260% 100%;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.34);box-shadow:inset 0 -.18rem #0000002e,0 .65rem 1.5rem #2477ff47;animation:lobby-start-gradient-flow 2.6s linear infinite}@keyframes lobby-start-gradient-flow{0%{background-position:0% 50%}to{background-position:260% 50%}}.lobby-room-actions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;justify-items:stretch}.lobby-room-actions-grid button{width:100%;min-height:2.85rem}.lobby-actions .copy-room-button.is-active{background:linear-gradient(180deg,#22c55e,#16a34a);color:#f3fff7}.lobby-leave-room-button.is-active{background:linear-gradient(180deg,#ef4444,#dc2626);color:#fff5f5}.add-bot-menu-button.is-active{background:linear-gradient(180deg,#3b82f6,#2563eb);color:#f8fbff}.add-bot-menu-button.is-inactive,.add-bot-menu-button:disabled,.add-bot-menu-add-button:disabled{background:linear-gradient(180deg,#dbeafe,#bfdbfe);color:#5b7aa8;border-color:#60a5fa2e}.lobby-room-actions-grid .copy-room-button.is-paste,.lobby-room-actions-grid .copy-room-button.is-paste:enabled{background:linear-gradient(180deg,#eef4ff,#dbeafe);border-color:#60a5fa2e;color:#5b7aa8}.lobby-room-actions-grid .lobby-leave-room-button.is-active,.lobby-room-actions-grid .lobby-leave-room-button.is-active:enabled{background:linear-gradient(180deg,#ef4444,#dc2626);border-color:#ef444459;color:#fff5f5}.lobby-room-actions-grid .add-bot-menu-button.is-active,.lobby-room-actions-grid .add-bot-menu-button.is-active:enabled{background:linear-gradient(180deg,#3b82f6,#2563eb);border-color:#3b82f659;color:#f8fbff}.lobby-room-actions-grid .add-bot-menu-button.is-inactive,.lobby-room-actions-grid .add-bot-menu-button:disabled{background:linear-gradient(180deg,#dbeafe,#bfdbfe);border-color:#60a5fa2e;color:#5b7aa8}.lobby-room-status-pill{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:2.3rem;padding:.45rem .7rem;border-radius:999px;background:#ffffff14;color:#d7e2ef;font-size:.76rem;font-weight:800;text-align:center}.lobby-room-status-pill.is-ready{background:#3dd67229;color:#d8ffe7}.lobby-room-status-pill.is-live{background:#448cff2e;color:#dcecff}.lobby-room-status-pill.is-alert,.lobby-room-status-pill.is-waiting{background:#f8d64e29;color:#fff1b3}.shell:not(.shell-battle) .lobby-room-status-pill{background:#1118270f;color:#334155}.shell:not(.shell-battle) .lobby-room-status-pill.is-ready{background:#22c55e1f;color:#166534}.shell:not(.shell-battle) .lobby-room-status-pill.is-live{background:#3b82f61f;color:#1d4ed8}.shell:not(.shell-battle) .lobby-room-status-pill.is-alert,.shell:not(.shell-battle) .lobby-room-status-pill.is-waiting{background:#f59e0b24;color:#92400e}.lobby-hub-panel,.lobby-chat-shell{display:grid;gap:.45rem;min-height:0}.lobby-hub-panel{grid-template-rows:auto auto;align-content:start;align-self:start}.lobby-chat-shell{grid-template-rows:auto minmax(0,1fr);min-height:0;overflow:hidden;border:1px solid rgba(125,177,255,.16);border-radius:12px;padding:.6rem;background:linear-gradient(180deg,#ffffff0f,#ffffff05),#0a101c7a}.lobby-chat-shell-full{min-height:0;height:100%;margin-top:0}.lobby-hub-panel-header{display:flex;align-items:end;justify-content:space-between;gap:.75rem}.lobby-hub-panel-header h3{margin:.12rem 0 0;font-size:1.1rem;line-height:1.15}.lobby-hub-panel-header>span{flex:0 0 auto;border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:.26rem .55rem;background:#ffffff0f;color:#d7e2ef;font-size:.72rem;font-weight:800}.shell:not(.shell-battle) .lobby-hub-panel-header>span{border-color:#1118271a;background:#1118270d;color:#334155}.lobby-hub-members{min-height:0;overflow:auto}.lobby-chat-panel{grid-template-rows:minmax(0,1fr) auto}.lobby-chat-topbar,.lobby-hub-panel,.lobby-chat-shell,.lobby-chat-composer,.lobby-control-panel-v2,.lobby-control-stack,.lobby-room-summary-card{position:relative;z-index:1}.lobby-form-card{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--lobby-control-space, .68rem);min-width:0;padding:var(--lobby-control-card-pad, .72rem);border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#ffffff0a}.lobby-actions-single-column{grid-template-columns:1fr}.lobby-host-actions-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.lobby-host-actions-row:empty{display:none}.lobby-host-actions-row button{min-height:clamp(2.2rem,4.8vw,2.65rem);width:100%}.lobby-room-summary-card{margin-bottom:0;padding:.72rem;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#ffffff0a}.lobby-chat-topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.7rem}.lobby-chat-summary{display:grid;gap:.3rem;min-width:0}.lobby-chat-summary strong{font-size:1.55rem;line-height:1;letter-spacing:.06em;color:#f6fbff}.lobby-chat-summary span{color:#bfc9d8;font-size:.84rem;font-weight:700}.lobby-room-hub-metrics{display:grid;grid-template-columns:repeat(3,minmax(4.8rem,auto));gap:.55rem;justify-content:end}.lobby-room-hub-metrics-compact,.lobby-room-hub-metrics-chat{grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch}.lobby-members-panel{min-height:0;padding-top:.1rem}.lobby-seat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;min-height:0}.lobby-seat-card{position:relative;display:grid;gap:.18rem;align-content:center;min-height:3.64rem;padding:.43rem .5rem;border:1px solid rgba(125,177,255,.16);border-radius:8px;background:linear-gradient(180deg,#ffffff29,#ffffff0f),#233552b8;box-shadow:inset 0 1px #ffffff14,0 .55rem 1.3rem #030a1824;container:lobby-seat / inline-size;overflow:hidden}.lobby-seat-main{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(.32rem,2.8cqi,.56rem);width:100%;min-width:0}.lobby-seat-avatar{width:clamp(1.56rem,16cqi,2.48rem);height:clamp(1.56rem,16cqi,2.48rem);flex:0 0 clamp(1.56rem,16cqi,2.48rem);border-radius:999px;object-fit:cover;border:1px solid rgba(168,216,255,.28);background:linear-gradient(180deg,#ffffff1f,#ffffff0a),#162236eb}.lobby-seat-text{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:.06rem;min-width:0;width:100%;align-content:center}.lobby-seat-name{min-width:0;color:#f4f9ff;font-size:var(--lobby-player-name-size, clamp(.34rem, 7.2cqi, 1.08rem));font-weight:850;line-height:1;overflow:hidden;text-overflow:clip;overflow-wrap:normal;word-break:keep-all;white-space:nowrap;letter-spacing:-.01em}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.lobby-title{color:transparent;background:linear-gradient(110deg,#f8fbff,#b9c7d6 22%,#54b7ff 45%,#f3f8ff 62%,#2f7fd8 78%,#eef6ff);background-size:240% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;position:relative;z-index:2;animation:lobby-title-silver-flow 5.6s linear infinite,lobby-title-rumble 3.8s infinite,lobby-title-pulse 3.4s ease-in-out infinite;text-shadow:0 0 .18rem rgba(132,220,255,.56),0 0 .55rem rgba(53,133,255,.42),0 0 1.2rem rgba(17,76,184,.24)}.lobby-title:before{content:attr(aria-label);position:absolute;inset:0;z-index:-1;color:transparent;background:linear-gradient(110deg,#f8fbffe0,#54b7ffc7 45%,#2f7fd8d6);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:blur(5px);opacity:.54;transform:translateY(.02em);animation:lobby-title-flow 7.6s linear infinite,lobby-title-overexpose-flash 9.4s ease-in-out infinite}.lobby-title-bolt,.lobby-title-arc{position:absolute;top:50%;pointer-events:none}.lobby-title-bolt{width:clamp(.14rem,.24vw,.24rem);height:clamp(3.8rem,10vh,5.5rem);opacity:0;background:linear-gradient(180deg,#fffffff5,#00bfffeb);clip-path:polygon(50% 0%,0% 18%,66% 30%,22% 52%,100% 66%,34% 78%,74% 100%,16% 84%);box-shadow:0 0 .55rem #78dcffd1,0 0 1.25rem #0047ab5c;mix-blend-mode:screen;z-index:1}.lobby-title-bolt.bolt-left{left:calc(50% - min(15.2rem,32vw));transform:translate(-50%,-58%) rotate(-14deg);animation:lobby-lightning-flash-a 8.8s infinite}.lobby-title-bolt.bolt-center{left:50%;transform:translate(-50%,-60%) rotate(-2deg);animation:lobby-lightning-flash-b 9.6s infinite}.lobby-title-bolt.bolt-right{left:calc(50% + min(15rem,31vw));transform:translate(-50%,-58%) rotate(13deg);animation:lobby-lightning-flash-c 10.7s infinite}.lobby-title-arc{width:clamp(1.8rem,6vw,3rem);height:clamp(1rem,3.4vw,1.7rem);border-top:2px solid rgba(137,223,255,.78);border-left:2px solid rgba(78,171,255,.58);filter:drop-shadow(0 0 .4rem rgba(0,191,255,.4));opacity:.82;z-index:1}.lobby-title-arc.arc-left{left:calc(50% - min(16.8rem,35vw));transform:translate(-50%,-56%) rotate(-11deg)}.lobby-title-arc.arc-right{left:calc(50% + min(16.8rem,35vw));transform:translate(-50%,-44%) rotate(169deg)}@keyframes lobby-title-silver-flow{0%{background-position:0% 50%}to{background-position:240% 50%}}.lobby-seat-status{color:#c8d6e5;font-size:clamp(.54rem,5.6cqi,.82rem);font-weight:700;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@container lobby-seat (max-width: 9.5rem){.lobby-seat-name{font-size:min(var(--lobby-player-name-size, .62rem),.62rem)}.lobby-seat-status{font-size:.56rem}}@container lobby-control-panel (max-width: 24rem){.lobby-control-grid{grid-template-columns:1fr;align-items:start}.lobby-identity-card,.lobby-matchmaking-card{width:100%}.lobby-identity-card{grid-template-rows:auto auto}.lobby-identity-card-body{grid-template-rows:auto auto auto}}.lobby-seat-kick-button{position:absolute;right:.45rem;bottom:.45rem;min-height:1.7rem;padding:.22rem .48rem;opacity:0;pointer-events:none;transform:translateY(.2rem);transition:opacity .16s ease,transform .16s ease}.lobby-seat-card.offline{opacity:.72}.lobby-seat-card.left{opacity:.52}.lobby-seat-card.self{border-color:#63b3ed75}.lobby-seat-kick-button{position:absolute;right:.6rem;bottom:.6rem;min-height:1.9rem;padding:.28rem .55rem;opacity:0;pointer-events:none;transform:translateY(.2rem);transition:opacity .16s ease,transform .16s ease}.lobby-seat-card:hover .lobby-seat-kick-button,.lobby-seat-card:focus-within .lobby-seat-kick-button{opacity:1;pointer-events:auto;transform:translateY(0)}.shell:not(.shell-battle) .lobby-seat-card{border-color:#2563eb24;background:linear-gradient(180deg,#ffffffe6,#f7faffeb),#fffffff0;box-shadow:inset 0 1px #ffffffd1,0 .55rem 1.2rem #1e40af14}.shell:not(.shell-battle) .lobby-seat-name{color:#172033}.shell:not(.shell-battle) .lobby-seat-status{color:#475569}.shell:not(.shell-battle) .lobby-seat-card-empty{background:#f8fafcf2}.lobby-seat-card.is-ready{border-color:#22c55e73}.lobby-seat-card.is-unready{border-color:#ef44446b}.lobby-seat-card[data-room-bot=true]{border-color:#b8b8b88c;box-shadow:inset 0 1px #ffffff1f,0 .55rem 1.2rem #94a3b824}.shell:not(.shell-battle) .lobby-seat-card.is-ready{border-color:#22c55e6b}.shell:not(.shell-battle) .lobby-seat-card.is-unready{border-color:#ef444461}.shell:not(.shell-battle) .lobby-seat-card[data-room-bot=true]{border-color:#94a3b87a;box-shadow:inset 0 1px #ffffffd1,0 .55rem 1.1rem #94a3b81f}.lobby-seat-card{min-height:4.16rem;padding:.4rem .5rem}.lobby-seat-main{grid-template-columns:auto minmax(0,1fr);gap:clamp(.38rem,3.2cqi,.68rem);width:100%}.lobby-seat-avatar{width:clamp(1.76rem,18cqi,2.72rem);height:clamp(1.76rem,18cqi,2.72rem);flex-basis:clamp(1.76rem,18cqi,2.72rem)}.lobby-seat-name{font-size:var(--lobby-player-name-size, clamp(.34rem, 7.2cqi, 1.08rem));line-height:1}.lobby-seat-status{font-size:clamp(.54rem,5.6cqi,.82rem);line-height:1}.lobby-feed-item-player,.lobby-feed-item-self{display:grid;grid-template-columns:3rem minmax(0,1fr);align-items:start;gap:.72rem;min-width:0}.lobby-feed-item-self{grid-template-columns:minmax(0,1fr) 3rem}.lobby-feed-item-system{display:flex;justify-content:center}.lobby-feed-avatar{flex:0 0 3rem;width:3rem;height:3rem;border-radius:12px;object-fit:cover;border:1px solid rgba(168,216,255,.26);background:linear-gradient(180deg,#ffffff1a,#ffffff08),#131c2af0;box-shadow:0 .55rem 1.1rem #00000038,inset 0 1px #ffffff0a}.lobby-feed-item-player .lobby-feed-avatar{justify-self:start}.lobby-feed-item-self .lobby-feed-avatar{justify-self:end}.lobby-feed-bubble-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:.36rem;min-width:0;flex:1 1 auto}.lobby-feed-item-self .lobby-feed-bubble-wrap{align-items:flex-end}.lobby-feed-item-self .lobby-feed-speaker{justify-content:flex-end;text-align:right}.lobby-feed-speaker{display:inline-flex;align-items:center;min-width:0;font-size:.8rem;line-height:1.1;color:#493c27e0}.lobby-feed-bubble{width:fit-content;max-width:min(100%,28rem);padding:.82rem .95rem;border-radius:14px;font-size:.92rem;line-height:1.45;color:#193247;white-space:pre-wrap;overflow-wrap:break-word;word-break:normal;border:1px solid rgba(191,168,132,.24);background:linear-gradient(180deg,#fffffff5,#fcf5e8fa),#fffaf1;box-shadow:inset 0 1px #ffffff9e,0 .65rem 1.3rem #785a3014}.lobby-feed-item-self .lobby-feed-bubble{margin-left:auto;background:linear-gradient(180deg,#fffdf7fa,#f8eed8fa),#fff3dd}.lobby-feed-system-pill{display:inline-flex;align-items:center;justify-content:center;max-width:min(100%,24rem);padding:.48rem .8rem;border-radius:999px;font-size:.76rem;line-height:1.2;text-align:center;color:#5e4a2ae6;border:1px solid rgba(191,168,132,.28);background:#fffcf5e0}.lobby-chat-input{min-height:3.1rem;border-color:#7db1ff3d;background:#fffffff5;color:#142232}.lobby-chat-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;align-items:center}.lobby-chat-feed{display:flex;flex-direction:column;align-items:stretch;gap:.85rem;min-height:0;height:100%;max-height:100%;flex:1 1 auto;padding:1rem .95rem;overflow-y:auto;overflow-x:hidden;border:1px solid rgba(191,168,132,.24);border-radius:12px;background:linear-gradient(180deg,#fff8eceb,#f6ecd6f5),#f2e6d1;box-shadow:inset 0 1px #ffffff73,0 .9rem 2rem #785a3014}.shell:not(.shell-battle) .lobby-chat-shell{border-color:#bfa88438;background:linear-gradient(180deg,#fff9eff2,#f8efdcfa),#f5ead7}.shell:not(.shell-battle) .lobby-chat-feed{border-color:#bfa88438;background:linear-gradient(180deg,#fff9effa,#f6ecd6fa),#f2e6d1}.lobby-feed-empty{justify-content:center}.lobby-advanced-summary::-webkit-details-marker{display:none}.lobby-advanced-content{display:grid;gap:.85rem;margin-top:.9rem}.lobby-debug-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.lobby-advanced-url input{min-height:2.9rem}.battle{display:grid;gap:1rem}.battle-immersive{position:relative;width:calc(100% * var(--battle-ui-inverse-scale, 1.25));height:calc(100dvh * var(--battle-ui-inverse-scale, 1.25));gap:0;overflow:hidden;transform:scale(var(--battle-ui-scale, .8));transform-origin:top left;--battle-side-offset: clamp(1rem, 4vw, 60px);--battle-table-y: clamp(-8rem, -12vh, -2rem);--battle-pile-offset: clamp(1.5rem, 6vw, 5.5rem);--battle-draw-pile-offset: clamp(2.8rem, 9vw, 8.8rem);--battle-center-offset: calc(clamp(-2.7rem, -3.4vw, -.9rem) - 60px) ;--battle-facts-offset: clamp(9rem, 23vw, 19.5rem);--battle-center-scale: 1.26;--battle-draw-pile-center-y: 50%;--battle-draw-pile-scale: var(--battle-center-scale);--battle-table-facts-center-y: 50%;--battle-table-facts-scale: var(--battle-center-scale);--turn-orbit-bottom: 25%;--hand-card-scale: 1;--battle-hand-slot-width: clamp(5rem, 7.4vw, 7rem);--battle-action-guide-gap: 6px;--battle-hand-cards-offset-top: 4rem;--battle-hud-bottom-limit: calc(max(.35rem, env(safe-area-inset-top)) + 4rem) ;--battle-action-dock-top-limit: calc(100% - max(.65rem, env(safe-area-inset-bottom)) - clamp(17rem, 34vh, 22.5rem)) ;--battle-seat-band-padding: 12px;--battle-seat-band-top: calc(var(--battle-hud-bottom-limit) + var(--battle-seat-band-padding));--battle-seat-band-bottom: calc(var(--battle-action-dock-top-limit) - var(--battle-seat-band-padding));--battle-seat-band-height: calc(var(--battle-seat-band-bottom) - var(--battle-seat-band-top));--battle-seat-base-height: 82px;--battle-seat-base-width: 196px;--battle-seat-row-gap: 18px;--battle-seat-scale-min: .45;--battle-seat-scale-max: 1.45;--battle-opponent-seat-scale: 1}.battle-debug-grid{position:absolute;inset:0;z-index:2147483647;pointer-events:none;border:2px solid rgba(248,214,78,.9);background-image:linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px),linear-gradient(rgba(68,140,255,.28) 1px,transparent 1px),linear-gradient(90deg,rgba(68,140,255,.28) 1px,transparent 1px),linear-gradient(90deg,transparent calc(50% - 1px),rgba(248,214,78,.95) calc(50% - 1px),rgba(248,214,78,.95) calc(50% + 1px),transparent calc(50% + 1px)),linear-gradient(transparent calc(50% - 1px),rgba(248,214,78,.95) calc(50% - 1px),rgba(248,214,78,.95) calc(50% + 1px),transparent calc(50% + 1px));background-size:40px 40px,40px 40px,10% 10%,10% 10%,100% 100%,100% 100%;box-shadow:inset 0 0 0 1px #080b0fcc}.battle-debug-grid-title{position:absolute;top:.45rem;left:.55rem;z-index:3;padding:.22rem .45rem;border-radius:6px;background:#080b0fb8;color:#f8d64e;font-size:.72rem;font-weight:800;letter-spacing:0}.battle-debug-label,.battle-debug-percent{position:absolute;z-index:2;padding:.08rem .2rem;border-radius:4px;background:#080b0f9e;color:#ffffffe6;font-size:.58rem;font-weight:700;line-height:1;white-space:nowrap;text-shadow:0 1px 1px rgba(0,0,0,.55)}.battle-debug-label-x{top:1.75rem;transform:translate(2px) rotate(-35deg);transform-origin:left center}.battle-debug-label-y{left:.35rem;transform:translateY(2px)}.battle-debug-percent{background:#448cffb8;color:#fff}.battle-debug-percent-x{bottom:.35rem;transform:translate(-50%)}.battle-debug-percent-y{right:.35rem;transform:translateY(-50%)}.battle-immersive.battle-debug-boxes{--battle-debug-box-color: rgba(255, 82, 168, .96);--battle-debug-box-soft-color: rgba(255, 82, 168, .28);--battle-debug-box-shadow: inset 0 0 0 1px var(--battle-debug-box-color), 0 0 0 1px var(--battle-debug-box-color), 0 0 0 4px var(--battle-debug-box-soft-color)}.battle-immersive.battle-debug-boxes .battle-stage,.battle-immersive.battle-debug-boxes .battle-hud,.battle-immersive.battle-debug-boxes .battle-error-line,.battle-immersive.battle-debug-boxes .battle-table,.battle-immersive.battle-debug-boxes .seat,.battle-immersive.battle-debug-boxes .self-seat-chat-anchor,.battle-immersive.battle-debug-boxes .battle-chat-bubble,.battle-immersive.battle-debug-boxes .battle-chat-toggle-button,.battle-immersive.battle-debug-boxes .battle-chat-composer,.battle-immersive.battle-debug-boxes .center-draw-pile-box,.battle-immersive.battle-debug-boxes .center-discard-pile-shell,.battle-immersive.battle-debug-boxes .discard-pile,.battle-immersive.battle-debug-boxes .discard-stack,.battle-immersive.battle-debug-boxes .center-table,.battle-immersive.battle-debug-boxes .center-table-facts-box,.battle-immersive.battle-debug-boxes .table-facts,.battle-immersive.battle-debug-boxes .battle-action-dock,.battle-immersive.battle-debug-boxes .battle-action-dock .actions,.battle-immersive.battle-debug-boxes .battle-action-dock .hand,.battle-immersive.battle-debug-boxes .battle-action-dock .hand-header,.battle-immersive.battle-debug-boxes .battle-action-dock .action-guide,.battle-immersive.battle-debug-boxes .battle-action-dock .cards,.battle-immersive.battle-debug-boxes .battle-action-dock .selection-panel,.battle-immersive.battle-debug-boxes .battle-action-dock .selection-summary,.battle-immersive.battle-debug-boxes .battle-action-dock .selection-actions,.battle-immersive.battle-debug-boxes .battle-action-dock .hand-card-slot,.battle-immersive.battle-debug-boxes .battle-action-dock .card-button,.battle-immersive.battle-debug-boxes .opponent-actions,.battle-immersive.battle-debug-boxes .opponent-actions button,.battle-immersive.battle-debug-boxes .draw-pile,.battle-immersive.battle-debug-boxes .draw-pile button,.battle-immersive.battle-debug-boxes .table-fact,.battle-immersive.battle-debug-boxes .normal-draw-offer,.battle-immersive.battle-debug-boxes .event-modal,.battle-immersive.battle-debug-boxes .challenge-prompt,.battle-immersive.battle-debug-boxes .color-picker-panel,.battle-immersive.battle-debug-boxes .color-picker-panel button,.battle-immersive.battle-debug-boxes .initial-direction-modal{box-shadow:var(--battle-debug-box-shadow)}.battle-immersive.battle-debug-boxes .battle-stage,.battle-immersive.battle-debug-boxes .battle-hud,.battle-immersive.battle-debug-boxes .battle-table,.battle-immersive.battle-debug-boxes .center-draw-pile-box,.battle-immersive.battle-debug-boxes .center-discard-pile-shell,.battle-immersive.battle-debug-boxes .center-table-facts-box,.battle-immersive.battle-debug-boxes .center-table,.battle-immersive.battle-debug-boxes .battle-action-dock,.battle-immersive.battle-debug-boxes .battle-action-dock .actions,.battle-immersive.battle-debug-boxes .battle-action-dock .hand,.battle-immersive.battle-debug-boxes .battle-action-dock .cards,.battle-immersive.battle-debug-boxes .battle-action-dock .selection-panel,.battle-immersive.battle-debug-boxes .normal-draw-offer,.battle-immersive.battle-debug-boxes .event-modal,.battle-immersive.battle-debug-boxes .challenge-prompt,.battle-immersive.battle-debug-boxes .color-picker-panel,.battle-immersive.battle-debug-boxes .initial-direction-modal{border-radius:10px}.battle-immersive.battle-debug-boxes .battle-action-dock .hand-card-slot,.battle-immersive.battle-debug-boxes .battle-action-dock .card-button,.battle-immersive.battle-debug-boxes .color-picker-panel button,.battle-immersive.battle-debug-boxes .opponent-actions button,.battle-immersive.battle-debug-boxes .draw-pile button,.battle-immersive.battle-debug-boxes .table-fact,.battle-immersive.battle-debug-boxes .battle-chat-toggle-button{border-radius:8px}.battle-debug-boundary-line{position:absolute;left:0;right:0;z-index:4;height:0;border-top:2px solid rgba(255,99,132,.92);box-shadow:0 0 .45rem #ff63846b}.battle-debug-boundary-line-top{top:var(--battle-hud-bottom-limit)}.battle-debug-boundary-line-bottom{top:var(--battle-action-dock-top-limit);border-top-color:#5eead4f0;box-shadow:0 0 .45rem #5eead466}.battle-debug-boundary-label{position:absolute;left:.55rem;top:0;transform:translateY(-100%);padding:.14rem .34rem;border-radius:4px;background:#080b0fd1;color:#fff;font-size:.64rem;font-weight:900;letter-spacing:0;white-space:nowrap}.battle-stage{position:relative;overflow:hidden;background:linear-gradient(180deg,#0c101659,#0c10161f),url(/battle-stage.webp) center/cover no-repeat}.battle-rule-button{display:none;position:absolute;top:calc(max(.35rem,env(safe-area-inset-top)) + 3.55rem);right:max(.15rem,env(safe-area-inset-right));z-index:16;place-items:center;width:2.9rem;height:2.9rem;min-width:2.9rem;min-height:2.9rem;padding:0;border:1px solid rgba(255,255,255,.34);border-radius:999px;background:#f8d64e;color:#161616;font-size:1.72rem;font-weight:900;line-height:1;box-shadow:0 .28rem .7rem #00000038}.battle-stage:before{content:"";position:absolute;inset:0;background:#080b0f99;transition:opacity .45s ease;pointer-events:none}.battle.other-turn .battle-stage:before{opacity:.58}.battle.my-turn .battle-stage:before{animation:battle-stage-focus 3s ease-out forwards}.battle-stage>*{position:relative;z-index:1}.battle-immersive .table-zone{display:block;width:100%;height:100%;min-height:100%;border:0;border-radius:0;padding:max(.35rem,env(safe-area-inset-top)) clamp(.65rem,1.8vw,1.3rem) max(.65rem,env(safe-area-inset-bottom));background:linear-gradient(180deg,#080a0e57,#080a0eb8),url(/battle-stage.webp) center/cover no-repeat;overflow:hidden}.battle-immersive .battle-stage:before{background:radial-gradient(circle at 50% 46%,rgba(248,214,78,.08),transparent 24rem),#080b0f75}.battle-hud{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:space-between;padding:.8rem 1rem;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#1a1f28eb;color:#e6ebf4}.battle-immersive .battle-hud{position:absolute;top:max(.35rem,env(safe-area-inset-top));left:clamp(.65rem,1.8vw,1.3rem);right:calc(100% - 100vw + clamp(.65rem,1.8vw,1.3rem));z-index:10002;align-self:start;border-radius:8px;padding:.55rem .75rem;background:#12151cc7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 .7rem 1.8rem #0000003d;transform:scale(var(--battle-ui-inverse-scale, 1));transform-origin:top left}.battle-connection-status{border-radius:999px;padding:.24rem .55rem;background:#ffffff14;color:#d9deea;font-size:.78rem;font-weight:900}.battle-connection-status.status-open{background:#65d17a2e;color:#dfffe7}.battle-connection-status.status-error,.battle-connection-status.status-closed{background:#e84b4b33;color:#ffd6d6}.battle-error-line{position:absolute;top:calc(max(.35rem,env(safe-area-inset-top)) + 3.05rem);left:50%;z-index:17;width:min(32rem,calc(100% - 1.5rem));min-height:1.4rem;margin:0;padding:.35rem .7rem;border-radius:999px;color:#ffb8b8;font-size:.82rem;font-weight:800;text-align:center;transform:translate(-50%);pointer-events:none}.battle-error-line:empty{opacity:0}.hud-primary{color:#fff6c8;font-weight:900}.hud-item{display:inline-flex;align-items:center;gap:.35rem}.hud-settings-button,.hud-rule-button,.hud-leave-button{min-height:2.2rem;padding:.35rem .7rem;font-size:.82rem}.hud-settings-button{margin-left:auto}.battle-hud .hud-settings-button{border-color:#fff3;background:#252832;color:#f6f1e8}.battle-hud .hud-rule-button{border-color:#43a5ffb3;background:#2f63c9;color:#f4f9ff}.battle-hud .hud-leave-button{border-color:#f8d64eb3;background:#f8d64e;color:#161616}.battle-hud .hud-leave-button:disabled{opacity:.52;filter:grayscale(.3)}.battle-hud-actions{display:inline-flex;align-items:center;gap:.5rem;margin-left:auto;position:relative}.battle-hud-actions .hud-settings-button{margin-left:0}.battle-chat-dock{position:relative;z-index:1;display:grid;justify-items:end;gap:.4rem;width:auto;max-width:min(16rem,calc(100vw - 1.3rem));pointer-events:auto}.battle-chat-toggle-button{min-width:4.75rem;min-height:2.2rem;padding:.35rem .78rem;border-color:#d0d6e057;background:#bcc2cdd6;color:#17202b;font-size:.82rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 .55rem 1.25rem #0000002e,inset 0 1px #ffffff61}.battle-chat-dock.open .battle-chat-toggle-button{background:#d6dbe3e6;border-color:#ebeff585}.battle-chat-composer{position:absolute;top:calc(100% + .55rem);right:0;width:min(16rem,calc(100vw - 2rem));display:none;gap:.6rem;padding:.72rem;border:1px solid rgba(222,228,236,.22);border-radius:8px;background:#b2b9c4d1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 .95rem 2.2rem #0000003d,inset 0 1px #ffffff57}.battle-chat-composer.open{display:grid}.battle-chat-composer-footer{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.settings-modal-backdrop{position:fixed;inset:0;z-index:10003;display:grid;place-items:start end;padding:calc(max(.35rem,env(safe-area-inset-top)) + 3.8rem) clamp(.65rem,1.8vw,1.3rem) 1rem;background:#0000002e}.settings-modal{width:min(15.4rem,calc(100vw - 1.3rem));display:grid;grid-template-rows:auto minmax(0,1fr);gap:.58rem;height:min(65svh,36.4rem);padding:.62rem;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#12151cf5;color:#f6f1e8;box-shadow:0 1rem 2.4rem #00000057;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);overflow:hidden}.settings-modal-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.settings-modal-header strong{font-size:.74rem;white-space:nowrap}.settings-modal-header button{width:1.6rem;height:1.6rem;min-height:1.6rem;padding:0;font-size:.95rem}.settings-modal-body{display:grid;gap:.58rem;min-height:0;overflow-x:hidden;overflow-y:auto;padding-right:.1rem;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:rgba(248,214,78,.45) rgba(255,255,255,.06)}.settings-modal-body::-webkit-scrollbar{width:.55rem}.settings-modal-body::-webkit-scrollbar-track{border-radius:999px;background:#ffffff0f}.settings-modal-body::-webkit-scrollbar-thumb{border-radius:999px;background:#f8d64e73}.settings-segment{display:grid;gap:.3rem;min-width:0;margin:0;padding:0;border:0}.settings-segment legend{color:#d7dde8;font-size:.58rem;font-weight:900;white-space:nowrap}.settings-segment-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.3rem}.settings-segment-options button{min-height:1.65rem;padding:.18rem .2rem;border:1px solid rgba(255,255,255,.16);background:#252832;color:#f6f1e8;font-size:.56rem;line-height:1;white-space:nowrap}.settings-segment-options button.active{border-color:#f8d64ec7;background:#f8d64e;color:#161616}.settings-slider-segment{gap:.35rem}.settings-slider-row{display:grid;grid-template-columns:1.6rem minmax(0,1fr) 2.35rem;align-items:center;gap:.32rem;min-width:0}.settings-mute-button{width:1.6rem;height:1.6rem;min-height:1.6rem;padding:0;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#252832;color:#f6f1e8;font-size:.74rem;line-height:1}.settings-mute-button-on{border-color:#50d27eb3;background:#1f7a3d;color:#fff}.settings-mute-button-muted{border-color:#ff5b5bc7;background:#b5252f;color:#fff}.settings-slider-row input[type=range]{width:100%;min-width:0;margin:0;accent-color:#f8d64e}.settings-slider-row output{color:#f6f1e8;font-size:.56rem;font-weight:900;text-align:right;white-space:nowrap}.settings-grid-toggle{width:100%;min-height:1.7rem;margin-top:.2rem;border-color:#448cff6b;font-size:.58rem;white-space:nowrap}.settings-grid-toggle.active{border-color:#f8d64ec7;background:#f8d64e;color:#161616}.settings-contact-row{display:flex;align-items:center;justify-content:space-between;gap:.35rem}.settings-contact-line{min-width:0;padding:.18rem .35rem;border:1px solid rgba(125,177,255,.18);border-radius:6px;background:#7db1ff14;color:#dcecff;font-size:.56rem;font-weight:900;letter-spacing:0;text-align:right;white-space:nowrap}.settings-update-log-shell{display:grid;justify-items:end}.settings-update-log-button{min-height:1.5rem;padding:.12rem .4rem;border-color:#7db1ff47;font-size:.54rem;font-weight:800;white-space:nowrap}.settings-update-log-button.active{border-color:#f8d64ec7;background:#f8d64e;color:#161616}.update-log-backdrop{position:fixed;inset:0;z-index:10004;background:#0000003d}.update-log-dialog{position:fixed;left:50%;top:50%;z-index:10005;width:min(30rem,calc(100vw - 2rem));display:grid;grid-template-rows:auto minmax(0,1fr);gap:.65rem;height:min(28rem,calc(100svh - 2rem));padding:.85rem;border:1px solid rgba(125,177,255,.24);border-radius:10px;background:#12151cfa;color:#f6f1e8;box-shadow:0 1rem 2.4rem #00000057;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transform:translate(-50%,-50%);overflow:hidden}.update-log-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.update-log-dialog-title-wrap{display:flex;align-items:center;gap:.55rem;cursor:grab;-webkit-user-select:none;user-select:none}.update-log-dialog-dragbar{width:2.2rem;height:.32rem;border-radius:999px;background:#7db1ff6b}.update-log-dialog-close{width:2rem;min-width:2rem;min-height:2rem;padding:0}.settings-update-log-panel{display:grid;align-content:start;gap:.65rem;width:100%;min-height:0;padding:.75rem;border:1px solid rgba(125,177,255,.2);border-radius:6px;background:#7db1ff14;word-break:break-word;white-space:normal;overflow-y:auto;scrollbar-gutter:stable}.settings-update-log-panel::-webkit-scrollbar{width:.65rem}.settings-update-log-panel::-webkit-scrollbar-track{border-radius:999px;background:#ffffff0f}.settings-update-log-panel::-webkit-scrollbar-thumb{border-radius:999px;background:#c9d8ea57}.settings-update-log-section{display:grid;gap:.3rem}.settings-update-log-section strong{color:#f5f9ff;font-size:.82rem}.settings-update-log-section ul{margin:0;padding-left:1rem;color:#dcecff}.settings-update-log-section li+li{margin-top:.2rem}.settings-update-log-empty{margin:0;color:#dcecff;font-size:.82rem}.settings-adjust-panel{display:grid;gap:.45rem;padding:.5rem;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#ffffff0f;align-content:start}.settings-adjust-grid{display:grid;gap:.75rem}.settings-section-card{display:grid;gap:.85rem;padding:.85rem;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:#ffffff0a}.settings-adjust-shell{gap:.7rem}.settings-adjust-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.settings-adjust-header strong{color:#f3f7ff;font-size:.9rem}.settings-adjust-actions{display:flex;flex-wrap:nowrap;gap:.3rem;justify-content:stretch;margin-top:.1rem}.settings-reset-button{border-color:#f8d64e6b}.settings-adjust-actions>button{flex:1 1 0;min-width:0;font-size:.56rem;white-space:nowrap}.settings-adjust-panel .settings-grid-toggle{margin-top:0}.settings-orbit-slider-row{grid-template-columns:1.6rem minmax(0,1fr) 2.6rem}.settings-slider-icon{display:grid;place-items:center;width:1.6rem;height:1.6rem;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#252832;color:#f6f1e8;font-size:.82rem;font-weight:900}.hud-chip{border-radius:999px;padding:.25rem .55rem;background:#ffffff1a;color:#f6f1e8;font-size:.78rem;font-weight:900}.hud-chip.warning{background:#f8d64e2e;color:#ffe27a}.hud-chip.danger{background:#e84b4b33;color:#faa}.table-color{display:inline-flex;align-items:center;gap:.45rem}.color-swatch{width:.9rem;height:.9rem;border-radius:50%;border:1px solid rgba(255,255,255,.35);box-shadow:inset 0 0 0 1px #00000038}.table-zone{min-height:26rem;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:1rem;background:linear-gradient(135deg,#26624394,#19202aeb),#1a2028}.table-zone.battle-stage{position:relative;overflow:hidden;background:linear-gradient(180deg,#0c101659,#0c10161f),url(/battle-stage.webp) center/cover no-repeat}.table-zone.battle-stage>:not(.turn-direction-orbit):not(.battle-hud):not(.battle-chat-dock):not(.battle-table):not(.battle-action-dock):not(.settings-modal-backdrop):not(.event-modal-backdrop):not(.normal-draw-offer-backdrop){position:relative;z-index:2}.turn-direction-orbit{position:absolute;left:50%;top:50%;bottom:auto;z-index:1;width:clamp(17.16rem,45.24vw,45.24rem);aspect-ratio:1;pointer-events:none;transform:translate(-50%,-50%) translateY(var(--battle-table-y, clamp(2rem, 17vh, 12rem))) scale(var(--turn-orbit-scale, 1));transform-origin:center center;animation:turn-direction-orbit-spin 42s linear infinite;animation-delay:var(--turn-orbit-animation-delay, 0ms)}.turn-direction-orbit-clockwise{animation-direction:normal}.turn-direction-orbit-counter{animation-direction:reverse}.turn-direction-orbit img{width:100%;height:100%;object-fit:contain;opacity:.3;transform-origin:center center;-webkit-user-select:none;user-select:none}.battle-immersive .ui-toast{position:absolute;top:calc(max(.65rem,env(safe-area-inset-top)) + 3.25rem);left:50%;z-index:18;margin:0;transform:translate(-50%)}.opponents{display:contents}.opponent.current{border-color:#f8d64e}.battle-table{position:relative;min-height:33rem;overflow:visible}.battle-immersive .battle-table{position:absolute;inset:0;z-index:12;min-height:0;height:100%;overflow:visible;margin-top:0;padding-top:0}.battle-immersive .table-zone.battle-stage>.battle-table{position:absolute}.seat{position:absolute;z-index:18;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name count" "state count" "actions actions actions";align-items:center;width:clamp(10rem,18vw,14rem);overflow:hidden;box-shadow:0 .75rem 2rem #0000003d}.seat:before{content:"";position:absolute;inset:0;z-index:0;background-image:var(--seat-avatar-image);background-position:center 30%;background-size:cover;opacity:.9;filter:brightness(.9)}.seat:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#090c12d1,#090c1273)}.seat.current:before{opacity:1;filter:brightness(1.12) saturate(1.08)}.seat.current:after{background:linear-gradient(90deg,#090c1238,#090c120a)}.seat>*{position:relative;z-index:2}.seat-badge{position:absolute;top:.5rem;right:.55rem;z-index:3;padding:.2rem .45rem;border-radius:999px;background:#f8d64e29;color:#f8d64e;font-size:.72rem;font-weight:900}.battle-immersive .seat .seat-badge{top:var(--seat-status-top, 50%);transform:translateY(-50%)}.seat-badge.success{background:#63dd8b29;color:#63dd8b}.seat-badge.warning{background:#f8c6532e;color:#f8c653}.seat-badge.danger{background:#e84b4b33;color:#faa}.seat-badge.active{background:#73b7ff2e;color:#73b7ff}.seat-badge.neutral{background:#dce2ee1f;color:#cfd7e6}.seat strong{grid-area:name}.battle-immersive .seat strong{position:absolute!important;top:auto!important;right:auto!important;bottom:var(--seat-name-bottom)!important;left:var(--seat-name-left)!important;z-index:3;max-width:calc(100% - 4.55rem);overflow:hidden;margin:0;padding:.18rem .42rem;background:#fff;color:#161616;font-size:.82rem;font-weight:900;line-height:1.15;text-align:left;text-overflow:ellipsis;justify-self:start;transform:none;white-space:nowrap}.seat small{grid-area:state;color:#aeb5c4}.battle-immersive .seat small{position:absolute;top:var(--seat-detail-top);left:var(--seat-detail-left);z-index:3;max-width:calc(100% - 4.8rem);margin:0;transform:translateY(-50%)}.hand-count-badge{grid-area:count;align-self:center;justify-self:end;min-width:2.7rem;min-height:1.96rem;display:grid;place-items:center;border-radius:0;background:#f8d64e;color:#161616!important;font-size:1.8em;font-weight:900;line-height:1}.battle-immersive .hand-count-badge{position:absolute;top:var(--seat-count-top);right:var(--seat-count-right);z-index:3;align-self:auto;justify-self:auto}.seat.current{border-color:#f8d64e;background:linear-gradient(135deg,#f8d64e38,#262b36f5),#262b36;box-shadow:0 0 0 2px #f8d64e6b,0 0 1.1rem #f8d64e42,0 .75rem 2rem #00000052}.seat.current .seat-badge{animation:current-seat-breathe 2.4s ease-in-out infinite}.seat.current small{color:#dde8fb}.seat.round-eliminated{border-color:#e84b4bc7;box-shadow:0 0 0 2px #e84b4b61,0 .75rem 2rem #00000052}.seat.round-left{border-color:#ef4444eb;box-shadow:0 0 0 3px #ef444494,0 0 1.1rem #ef44443d,0 .75rem 2rem #00000052}.seat.round-winner{border-color:#63dd8bd1;box-shadow:0 0 0 2px #63dd8b5c,0 .75rem 2rem #00000052}.seat-top{top:0;left:50%;transform:translate(-50%)}.battle-immersive .seat-top{top:-.65rem}.seat-left,.seat-mid-left{left:0;top:42%;transform:translateY(-50%)}.seat-mid-left{top:62%}.seat-right,.seat-mid-right{right:0;top:42%;transform:translateY(-50%)}.seat-mid-right{top:62%}.seat-top-left{top:2.5rem;left:5%}.seat-top-right{top:2.5rem;right:5%}.battle-immersive .seat-side{top:var(--seat-top);width:var(--battle-seat-base-width);transform:translateY(-50%) scale(var(--seat-scale, var(--battle-opponent-seat-scale, 1)));transform-origin:center center}.battle.is-initial-direction-lock .battle-table,.battle.is-initial-direction-lock .battle-action-dock,.battle.is-initial-direction-lock .battle-hud,.battle.is-initial-direction-lock .turn-direction-orbit,.battle.is-initial-direction-lock .battle-error-line{pointer-events:none}.battle.is-initial-direction-lock .initial-direction-backdrop{pointer-events:auto}.battle-immersive .seat{display:block;min-height:var(--battle-seat-base-height);padding:0;--seat-scale: var(--battle-opponent-seat-scale, 1);--seat-name-left: 0;--seat-name-bottom: 0;--seat-count-top: 0;--seat-count-right: 0;--seat-status-top: 50%;--seat-action-right: 0;--seat-action-bottom: 0;--seat-detail-left: .45rem;--seat-detail-top: 50%}.battle-immersive .seat-side-left{left:calc(clamp(.45rem,1.4vw,1.1rem) + var(--battle-side-offset, clamp(1rem, 4vw, 60px)));right:auto}.battle-immersive .seat-side-right{right:calc(clamp(.45rem,1.4vw,1.1rem) + var(--battle-side-offset, clamp(1rem, 4vw, 60px)));left:auto}.self-seat{left:auto;right:0;bottom:auto;top:-12vh;transform:translateY(-50%);background:#262b36}.battle-immersive .self-seat{top:var(--seat-top);right:calc(clamp(.45rem,1.4vw,1.1rem) + var(--battle-side-offset, clamp(1rem, 4vw, 60px)));left:auto;bottom:auto;width:clamp(9.5rem,15vw,12.25rem);--seat-scale: .92;transform:translateY(-50%) scale(var(--seat-scale));transform-origin:center center;opacity:.96}.self-seat-chat-anchor{position:absolute;right:clamp(.85rem,2vw,1.5rem);bottom:clamp(8.4rem,16vh,11rem);width:min(10rem,calc(100% - 1.5rem));z-index:24;transform-origin:bottom right}.battle-chat-bubble{position:relative;z-index:12;max-width:min(9.6rem,100%);padding:.45rem .68rem;border:1px solid rgba(255,255,255,.16);border-radius:.85rem;background:var(--battle-chat-bubble-bg, rgba(255, 255, 255, .92));color:var(--battle-chat-bubble-text, #122234);font-size:.76rem;font-weight:900;line-height:1.35;text-align:left;word-break:break-word;box-shadow:0 .8rem 1.8rem #00000038,0 0 .9rem var(--battle-chat-bubble-shadow, rgba(255, 255, 255, .14));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.battle-chat-bubble:after{content:"";position:absolute;width:.68rem;height:.68rem;background:inherit;border:inherit;border-left:0;border-top:0;transform:rotate(45deg)}.battle-chat-anchor{position:absolute;z-index:24;pointer-events:none}.battle-chat-anchor-opponent{top:var(--seat-top);transform-origin:center center}.battle-chat-anchor-side-left{left:calc(clamp(.45rem,1.4vw,1.1rem) + var(--battle-side-offset, clamp(1rem, 4vw, 60px)) + (var(--battle-seat-base-width) * var(--battle-opponent-seat-scale, 1)) + .75rem);transform:translateY(-50%) scale(var(--seat-scale, 1))}.battle-chat-anchor-side-right{right:calc(clamp(.45rem,1.4vw,1.1rem) + var(--battle-side-offset, clamp(1rem, 4vw, 60px)) + (var(--battle-seat-base-width) * var(--battle-opponent-seat-scale, 1)) + .75rem);transform:translateY(-50%) scale(var(--seat-scale, 1))}.battle-chat-anchor-top-left,.battle-chat-anchor-top-right{top:calc(var(--seat-top) + (2.75rem * var(--seat-scale, 1)) + .5rem);transform:scale(var(--seat-scale, 1))}.battle-chat-anchor-top-left{left:calc(clamp(.45rem,1.4vw,1.1rem) + var(--battle-side-offset, clamp(1rem, 4vw, 60px)) + .9rem)}.battle-chat-anchor-top-right{right:calc(clamp(.45rem,1.4vw,1.1rem) + var(--battle-side-offset, clamp(1rem, 4vw, 60px)) + .9rem)}.battle-chat-anchor-side-left .battle-chat-bubble:after{left:-.38rem;top:calc(50% - .34rem)}.battle-chat-anchor-side-right .battle-chat-bubble:after{right:-.38rem;top:calc(50% - .34rem)}.battle-chat-anchor-top-left .battle-chat-bubble:after{left:1rem;top:-.38rem;transform:rotate(225deg)}.battle-chat-anchor-top-right .battle-chat-bubble:after{right:1rem;top:-.38rem;transform:rotate(225deg)}.battle-chat-anchor-self .battle-chat-bubble{margin-left:auto;transform:scale(var(--battle-ui-inverse-scale, 1));transform-origin:bottom right}.battle-chat-anchor-self .battle-chat-bubble:after{right:1rem;top:calc(100% - .34rem)}.opponent-actions{grid-area:actions;display:grid;grid-template-columns:1fr;gap:.45rem;margin-top:.65rem}.battle-immersive .opponent-actions{position:absolute;right:var(--seat-action-right);bottom:var(--seat-action-bottom);z-index:3;width:min(4.4rem,42%);margin:0}.opponent-actions button{min-height:2rem;padding:.35rem;border:2px solid #ffffff;background:transparent;color:#fff;font-size:.8rem;font-weight:900}.opponent-actions button.uno-catch-available{border-color:#ef4444;color:#fff;background:#ef4444eb;box-shadow:0 0 0 2px #ef444440}.center-table{display:grid;grid-template-columns:minmax(7rem,8rem) minmax(8rem,10rem) minmax(0,12rem);align-items:center;justify-content:center;gap:1.2rem;width:min(42rem,calc(100% - 3rem));min-height:18rem;margin:5.5rem auto 4.5rem}.battle-immersive .center-table{position:absolute;top:50%;left:50%;z-index:2;width:min(43rem,calc(100% - 2rem));min-height:clamp(12rem,34vh,18rem);margin:0;gap:0;transform:translate(-50%,-50%) translateY(var(--battle-table-y, clamp(2rem, 17vh, 12rem)));transform-origin:center center}.battle-immersive .center-side-shell,.battle-immersive .center-discard-pile-shell{position:absolute;top:50%;transform-origin:center center}.battle-immersive .center-side-box{position:relative}.draw-pile,.top-card{display:grid;justify-items:center;gap:.5rem}@media(max-height:720px){.battle-immersive{--battle-center-scale: 1.08}}@media(max-height:600px){.battle-immersive{--battle-center-scale: .94}}.battle-immersive .draw-pile{position:relative;z-index:5}.battle-immersive .center-draw-pile-shell{left:var(--battle-draw-pile-center-x, 50%);top:var(--battle-draw-pile-center-y, 50%);z-index:5;transform:translate(-50%,-50%) scale(var(--battle-draw-pile-scale, var(--battle-center-scale, 1)))}.battle-immersive .center-discard-pile-shell{left:50%;z-index:3;transform:translate(-50%,-50%) translate(calc(var(--battle-center-offset) + var(--battle-pile-offset, clamp(1.5rem, 6vw, 5.5rem)))) scale(var(--battle-center-scale, 1))}.battle-immersive .discard-pile{position:relative}.battle-immersive .center-table-facts-shell{left:var(--battle-table-facts-center-x, 50%);top:var(--battle-table-facts-center-y, 50%);z-index:5;transform:translate(-50%,-50%) scale(var(--battle-table-facts-scale, var(--battle-center-scale, 1)))}.battle-immersive .table-facts{position:relative}.draw-pile img,.top-card img,.card-button img{display:block;width:100%;height:auto;object-fit:contain}.draw-pile img,.top-card img{max-width:8rem}.draw-pile button{width:100%;min-height:3.2rem}.discard-pile{min-height:13rem}.discard-stack{position:relative;width:min(10rem,100%);aspect-ratio:2 / 3;isolation:isolate}.discard-card{position:absolute;inset:0;z-index:var(--pile-index);border-radius:8px;outline:3px solid var(--discard-frame-color, rgba(168, 174, 184, .92));outline-offset:2px;transform-origin:center;transform:translate(var(--pile-x),var(--pile-y)) rotate(var(--pile-rotate));filter:drop-shadow(0 .45rem .6rem rgba(0,0,0,.28))}.history-discard-card{opacity:var(--pile-opacity, .9);filter:brightness(.8) drop-shadow(0 .45rem .6rem rgba(0,0,0,.28))}.history-discard-card:nth-child(n+2){box-shadow:-.16rem .16rem #0000002e}.latest-play-group,.active-draw-chain,.draw-stack-burst{position:absolute;inset:0;z-index:20}.latest-play-card{z-index:calc(20 + var(--fan-index));transform:translate(var(--fan-x),var(--fan-y)) rotate(var(--fan-rotate));filter:drop-shadow(0 .6rem .8rem rgba(0,0,0,.34))}.latest-play-group.single .latest-play-card{transform:translate(0) rotate(0)}.latest-play-group.sequence,.latest-play-group.multiple,.latest-play-group.discard-same-color{transform:translate(-.35rem)}.latest-play-group.discard-same-color .latest-play-card:last-child{z-index:42;transform:translateY(-.35rem) rotate(0)}.active-draw-chain{display:flex;align-items:center;justify-content:center;gap:0;transform:translateY(-.2rem)}.draw-chain-card{width:min(7.2rem,82%);margin-left:-3.8rem;border-radius:8px;outline:3px solid var(--discard-frame-color, rgba(168, 174, 184, .92));outline-offset:2px;z-index:calc(35 + var(--chain-index));filter:drop-shadow(0 .65rem .9rem rgba(0,0,0,.36))}.draw-chain-card:first-child{margin-left:0}.draw-stack-burst{left:50%;top:46%;width:8rem;aspect-ratio:2 / 3;transform:translate(-50%,-50%);pointer-events:none}.burst-card{position:absolute;inset:0;z-index:calc(30 + var(--burst-index));width:100%;filter:drop-shadow(0 .55rem .8rem rgba(0,0,0,.32));animation:draw-stack-burst .62s ease-out forwards}.latest-play-card.play-card-landing{animation:discard-land .36s ease-out}.flying-card{position:absolute;z-index:64;width:7rem;top:44%;left:50%;pointer-events:none;transform-origin:center;animation:fly-from-opponent .62s ease-out forwards}.flying-card.from-seat{top:var(--seat-effect-top, 44%);left:var(--seat-effect-left, 50%);animation-name:fly-from-seat}.flying-card.from-self{animation-name:fly-from-self}.flying-card.from-left,.flying-card.from-mid-left,.flying-card.from-top-left{animation-name:fly-from-left}.flying-card.from-right,.flying-card.from-mid-right,.flying-card.from-top-right{animation-name:fly-from-right}.flying-card.from-seat{animation-name:fly-from-seat}.draw-flying-card{position:absolute;z-index:64;width:4.8rem;top:48%;left:42%;pointer-events:none;transform-origin:center;filter:drop-shadow(0 .65rem .9rem rgba(0,0,0,.34));animation:draw-to-top .68s ease-in-out forwards}.draw-flying-card.from-self{animation-name:draw-to-self}.draw-flying-card.from-left,.draw-flying-card.from-mid-left,.draw-flying-card.from-top-left{animation-name:draw-to-left}.draw-flying-card.from-right,.draw-flying-card.from-mid-right,.draw-flying-card.from-top-right{animation-name:draw-to-right}.draw-flying-card.to-seat{animation-name:draw-to-seat}.draw-stack-explosion{position:absolute;left:var(--seat-effect-left, 50%);top:var(--seat-effect-top, 42%);z-index:66;width:calc(4rem * var(--explosion-scale, 1));aspect-ratio:1;pointer-events:none;transform:translate(-50%,-50%)}.draw-stack-explosion.from-self{top:var(--seat-effect-top, calc(100% - 4.2rem) );bottom:auto;left:var(--seat-effect-left, 50%);transform:translate(-50%,-50%)}.draw-stack-explosion.from-side-left,.draw-stack-explosion.from-left,.draw-stack-explosion.from-mid-left,.draw-stack-explosion.from-top-left{left:var(--seat-effect-left, calc(clamp(.45rem, 1.4vw, 1.1rem) + var(--battle-side-offset, 60px) + 5.8rem));top:var(--seat-effect-top, 48%)}.draw-stack-explosion.from-side-right,.draw-stack-explosion.from-right,.draw-stack-explosion.from-mid-right,.draw-stack-explosion.from-top-right{left:var(--seat-effect-left, calc(100% - calc(clamp(.45rem, 1.4vw, 1.1rem) + var(--battle-side-offset, 60px) + 5.8rem)));right:auto;top:var(--seat-effect-top, 48%);transform:translate(-50%,-50%)}.explosion-core,.explosion-ring,.explosion-spark,.explosion-shard{position:absolute;left:50%;top:50%;pointer-events:none}.explosion-core{width:38%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#fff 0 20%,#f8d64e 21% 48%,#ef444414 70%);box-shadow:0 0 calc(1.5rem * var(--explosion-scale, 1)) #f8d64ed9,0 0 calc(3.4rem * var(--explosion-scale, 1)) #ef444473;transform:translate(-50%,-50%) scale(.25);animation:draw-stack-explosion-core .72s ease-out forwards}.explosion-ring{width:52%;aspect-ratio:1;border:.18rem solid rgba(255,245,157,.9);border-radius:50%;transform:translate(-50%,-50%) scale(.15);animation:draw-stack-explosion-ring .78s ease-out forwards}.explosion-spark{width:calc(.34rem * var(--explosion-scale, 1));height:calc(.9rem * var(--explosion-scale, 1));border-radius:999px;background:linear-gradient(#fff,#f8d64e 45%,#ef4444);box-shadow:0 0 .65rem #f8d64eb8;transform:translate(-50%,-50%) rotate(var(--spark-angle)) translateY(0) scale(.5);animation:draw-stack-explosion-spark .76s ease-out forwards}.explosion-shard{width:calc(.54rem * var(--explosion-scale, 1));height:calc(.82rem * var(--explosion-scale, 1));border:1px solid rgba(255,255,255,.46);border-radius:3px;background:linear-gradient(135deg,#2d76fff2,#101420f5 55%,#ef4444e6);box-shadow:0 .35rem .65rem #00000047;transform:translate(-50%,-50%) rotate(var(--shard-angle)) translateY(0) rotate(0) scale(.45);animation:draw-stack-explosion-shard .78s cubic-bezier(.18,.82,.24,1) forwards}.spark-1{--spark-angle: 0deg}.spark-2{--spark-angle: 28deg}.spark-3{--spark-angle: 56deg}.spark-4{--spark-angle: 84deg}.spark-5{--spark-angle: 112deg}.spark-6{--spark-angle: 140deg}.spark-7{--spark-angle: 168deg}.spark-8{--spark-angle: 196deg}.spark-9{--spark-angle: 224deg}.spark-10{--spark-angle: 252deg}.spark-11{--spark-angle: 280deg}.spark-12{--spark-angle: 308deg}.spark-13{--spark-angle: 336deg}.spark-14{--spark-angle: 18deg}.shard-1{--shard-angle: 18deg}.shard-2{--shard-angle: 63deg}.shard-3{--shard-angle: 108deg}.shard-4{--shard-angle: 153deg}.shard-5{--shard-angle: 198deg}.shard-6{--shard-angle: 243deg}.shard-7{--shard-angle: 288deg}.shard-8{--shard-angle: 333deg}.penalty-question-burst{position:absolute;left:var(--seat-effect-left, 50%);top:var(--seat-effect-top, 42%);z-index:66;width:calc(5rem * var(--question-burst-scale, 1));aspect-ratio:1;pointer-events:none;transform:translate(-50%,-50%)}.penalty-question-burst.from-self{top:var(--seat-effect-top, calc(100% - 4.2rem) );bottom:auto;left:var(--seat-effect-left, 50%);transform:translate(-50%,-50%)}.penalty-question-burst.from-side-left,.penalty-question-burst.from-left,.penalty-question-burst.from-mid-left,.penalty-question-burst.from-top-left{left:var(--seat-effect-left, calc(clamp(.45rem, 1.4vw, 1.1rem) + var(--battle-side-offset, 60px) + 5.8rem));top:var(--seat-effect-top, 48%)}.penalty-question-burst.from-side-right,.penalty-question-burst.from-right,.penalty-question-burst.from-mid-right,.penalty-question-burst.from-top-right{left:var(--seat-effect-left, calc(100% - calc(clamp(.45rem, 1.4vw, 1.1rem) + var(--battle-side-offset, 60px) + 5.8rem)));right:auto;top:var(--seat-effect-top, 48%);transform:translate(-50%,-50%)}.penalty-question{position:absolute;left:50%;top:58%;display:grid;place-items:center;width:calc(1.15rem * var(--question-burst-scale, 1));height:calc(1.15rem * var(--question-burst-scale, 1));border:2px solid rgba(255,255,255,.76);border-radius:999px;color:#fff;font-size:calc(1rem * var(--question-burst-scale, 1));font-weight:1000;line-height:1;text-shadow:0 .12rem .28rem rgba(0,0,0,.45);box-shadow:0 .35rem .75rem #0000003d,0 0 .65rem var(--question-glow);transform:translate(-50%,20%) scale(.35) rotate(0);opacity:0;animation:penalty-question-pop .92s cubic-bezier(.17,.86,.28,1) forwards;animation-delay:var(--question-delay)}.question-red{--question-glow: rgba(239, 68, 68, .72);background:#ef4444}.question-yellow{--question-glow: rgba(248, 214, 78, .72);background:#f8d64e;color:#161616;text-shadow:none}.question-blue{--question-glow: rgba(59, 130, 246, .72);background:#3b82f6}.question-green{--question-glow: rgba(34, 197, 94, .72);background:#22c55e}.challenge-prompt{position:absolute;left:50%;top:1rem;z-index:6;display:grid;gap:.55rem;width:min(18rem,calc(100% - 1rem));padding:.85rem;border:1px solid rgba(248,214,78,.45);border-radius:8px;background:#14161cf5;box-shadow:0 1rem 2.5rem #0000006b;transform:translate(-50%)}.challenge-countdown{height:.45rem;overflow:hidden;border-radius:999px;background:#ffffff1f}.challenge-prompt small{color:#e6ebf4;line-height:1.3}.challenge-countdown span{display:block;width:100%;height:100%;border-radius:inherit;background:#f8d64e;animation:challenge-countdown 5s linear forwards}.challenge-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.event-modal-backdrop{position:fixed;inset:0;z-index:10004;display:grid;place-items:center;padding:1rem;background:#0a0c129e}.event-modal{width:min(24rem,100%);display:grid;gap:.75rem;padding:1.1rem;border-radius:8px;border:1px solid rgba(255,255,255,.16);background:#242832;box-shadow:0 20px 60px #00000061}.event-modal h2,.event-modal p{margin:0}.event-modal.success{border-color:#63dd8b6b}.event-modal.warning{border-color:#f8c6537a}.rule-modal-backdrop{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:1rem;background:#04060ab8}.rule-modal{width:min(62rem,100%);max-height:min(88svh,56rem);display:grid;gap:1rem;padding:1rem;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#171920f5;box-shadow:0 24px 70px #0000007a;overflow:auto}.rule-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.rule-modal-header h2,.rule-modal-header p{margin:0}.rule-modal-header-actions{display:inline-flex;gap:.5rem}.rule-image-viewer{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:.75rem}.rule-image-viewer-card-nav{grid-template-columns:auto minmax(0,1fr) auto}.rule-image-viewer img{width:100%;max-height:68svh;object-fit:contain;border-radius:8px;background:#0000004d}.rule-page-button{min-width:2.4rem;min-height:2.4rem;padding:.35rem .55rem;font-size:1.35rem;line-height:1}.rule-card-nav-button{min-width:2.7rem;min-height:3.8rem;padding:.45rem .7rem;font-size:2rem;line-height:1}.rule-page-controls{justify-self:center;display:inline-flex;align-items:center;gap:.65rem}.rule-page-indicator{color:#d9deea;font-weight:900}.rule-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}.rule-card-button{position:relative;display:grid;justify-items:center;gap:.45rem;min-height:10.5rem;padding:.7rem;border:1px solid rgba(255,255,255,.13);border-radius:8px;background:#0a0c117a;color:#f6f1e8}.rule-card-index{position:absolute;top:.45rem;left:.45rem;display:inline-grid;place-items:center;min-width:1.55rem;height:1.55rem;border-radius:999px;background:#f8d64e;color:#161616;font-size:.78rem;font-weight:900;box-shadow:0 .3rem .7rem #00000047}.rule-card-button img{height:clamp(6rem,18vw,8.5rem);max-width:100%;object-fit:contain}.rule-card-button span{font-size:.86rem;font-weight:900}.table-facts{display:grid;gap:.5rem;padding:.75rem;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#10131ad1;color:#e6ebf4;min-width:0}.table-fact{display:inline-flex;align-items:center;justify-content:space-between;gap:.45rem;min-height:1.8rem;padding:.25rem .45rem;border-radius:6px;background:#ffffff12;font-size:.88rem;font-weight:800}.table-fact-primary{border:1px solid rgba(248,214,78,.3);background:#f8d64e26;color:#fff2ad}.table-fact-danger{border:1px solid rgba(232,75,75,.34);background:#e84b4b2e;color:#ffb8b8}.direction-indicator{display:inline-flex;align-items:center;gap:.25rem;min-width:2.8rem;justify-content:center;padding:.12rem .42rem;border:1px solid rgba(115,183,255,.34);border-radius:999px;background:#73b7ff24;color:#d9ecff;font-weight:900;line-height:1}.direction-icon{font-size:1.25rem}.direction-counter-clockwise{border-color:#f8d64e61;background:#f8d64e29;color:#fff2ad}.actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;padding:.35rem;border-radius:8px}.battle-action-dock{position:absolute;right:clamp(.65rem,1.8vw,1.3rem);bottom:max(.65rem,env(safe-area-inset-bottom));left:clamp(.65rem,1.8vw,1.3rem);z-index:1000;display:grid;grid-template-columns:clamp(12rem,16vw,15rem) minmax(0,1fr);align-items:start;gap:.75rem;height:auto;min-height:0;padding:.55rem;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#101218b8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 -.75rem 2rem #00000038;overflow:hidden;isolation:isolate}.battle-action-dock:before{content:"";position:absolute;inset:0;z-index:0;opacity:0;pointer-events:none;background:linear-gradient(90deg,#fff0,#ffffff0a 28%,#ffffff2e 42%,#fffffff5,#fff3 58%,#ffffff0d 72%,#fff0);transform:translate(135%)}.battle-action-dock.turn-sweep-active:before{opacity:1;animation:battle-turn-sweep 1.15s cubic-bezier(.16,.86,.24,1) 1 both;animation-delay:var(--battle-turn-sweep-delay-ms, 0ms)}.battle-action-dock>*{position:relative;z-index:1}.battle-chat-input{min-width:0;padding:.72rem .95rem;border:1px solid rgba(255,255,255,.32);border-radius:999px;background:#f8fafde6;color:#1a232d;font-size:.94rem;font-weight:700}.battle-chat-meta{color:#17202bc2;font-size:.8rem;font-weight:800;white-space:nowrap}.battle-chat-send-button{min-width:4.8rem;height:2.7rem;border-color:#d0d6e06b;background:#e7ebf1eb;color:#18202a}.battle-immersive .table-zone.battle-stage>.battle-action-dock{position:absolute}.battle-action-dock .actions{align-self:start;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:3.2rem auto;align-content:start;justify-items:stretch;gap:.55rem;width:100%;min-width:0;max-width:none;padding:0}.battle-action-dock .actions>*{justify-self:stretch;width:100%;min-width:0}.battle-action-dock .actions button{width:100%;height:3.2rem;min-height:3.2rem}.battle-action-dock #say-uno-button{border-color:#73b7ff8f;background:#2f63c9;color:#f4f9ff;box-shadow:inset 0 1px #ffffff29}.battle-action-dock #say-uno-button:disabled{opacity:.5;filter:saturate(.8) brightness(.95)}.actions.is-active{background:#f8d64e1c;box-shadow:inset 0 0 0 1px #f8d64e38}.battle.my-turn .hand{border:1px solid rgba(248,214,78,.26);box-shadow:0 0 0 2px #f8d64e14}.hand{border-radius:8px;padding:1rem;background:#171920;min-width:0}.battle-action-dock .hand{align-self:start;position:relative;display:grid;grid-template-rows:auto auto;align-content:start;height:auto;min-height:0;max-height:none;padding:0;border:0;background:transparent;overflow:visible}.hand-header{grid-template-columns:1fr auto;align-items:center;min-width:0}.hand-total-count{min-width:3.5rem;padding:.28rem .62rem;border:2px solid rgba(22,22,22,.92);border-radius:6px;background:#f8d64e;color:#161616;font-size:1.05rem;font-weight:950;line-height:1;text-align:center;box-shadow:0 0 0 2px #ffffff42,0 .35rem .9rem #00000052}.action-guide{margin-bottom:.8rem;padding:.7rem .85rem;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#20232c;color:#d7dde8;font-weight:800;line-height:1.35}.battle-action-dock .action-guide{position:absolute;top:calc(1.6rem + 10px);left:0;right:0;z-index:2;margin-bottom:0;padding:.45rem .6rem;font-size:.82rem;box-shadow:0 .45rem 1rem #0000002e}.guide-active{border-color:#65d17a80;background:#1e492db8;color:#e9fff0}.guide-warning{border-color:#f8d64e73;background:#503c14b8;color:#fff0b8}.guide-danger{border-color:#e84b4b73;background:#532323b8;color:#ffd4d4}.cards{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.8rem .65rem;overflow:visible;padding:1.6rem 0 .65rem}.battle-action-dock .cards{flex-wrap:nowrap;align-items:flex-start;gap:.55rem;align-self:start;max-height:none;margin-top:var(--battle-hand-cards-offset-top, 4rem);padding:0 .25rem .95rem;overflow:visible;overscroll-behavior-x:contain;scrollbar-width:none;position:relative;z-index:20;width:100%;min-width:0}.battle-action-dock .cards::-webkit-scrollbar{display:none}.battle-action-dock .cards.cards-overlap{position:relative;display:block;min-height:var(--hand-overlap-height, 11rem);max-height:none;overflow:visible}.battle-action-dock .cards.cards-overlap .hand-card-slot{position:absolute;top:20px;bottom:auto;width:var(--battle-hand-slot-width);transform-origin:bottom center}.battle-action-dock .cards .hand-card-slot{margin-top:20px;z-index:2147483646}.battle-action-dock .cards:not(.cards-overlap) .hand-card-slot{transform-origin:bottom left}.battle-action-dock .cards:not(.cards-overlap) .hand-card-slot+.hand-card-slot{margin-left:calc((var(--hand-card-scale, 1) - 1) * var(--battle-hand-slot-width))}.battle-action-dock .cards.cards-overlap .hand-card-slot:hover,.battle-action-dock .cards.cards-overlap .hand-card-slot.is-selected{z-index:2147483647!important}.hand-card-slot{display:block;position:relative;flex:0 1 clamp(6.8rem,9vw,10.5rem);min-width:0;min-height:auto;aspect-ratio:2 / 3;overflow:visible;transition:transform .15s ease,z-index .15s ease}.card-button{display:block;width:100%;height:100%;min-height:auto;border:0;border-radius:8px;padding:0;background:transparent;aspect-ratio:2 / 3;overflow:hidden;position:relative;cursor:pointer;transition:transform .15s ease,outline-color .15s ease,filter .15s ease,opacity .15s ease}.battle-action-dock .hand-card-slot{flex:0 0 var(--battle-hand-slot-width);scale:var(--hand-card-scale, 1);transform-origin:bottom center}.card-button.playable{filter:brightness(1.08) saturate(1.08);box-shadow:0 0 0 2px #65d17a6b}.card-button.combo-candidate{box-shadow:0 0 0 2px #aa5eff8a}.card-button.playable.combo-candidate{box-shadow:0 0 0 2px #65d17a6b,0 0 0 4px #aa5eff2e}.card-button.compatible{opacity:1;filter:brightness(1.05) saturate(1.02)}.card-button.incompatible{opacity:.9;filter:grayscale(.08) brightness(.78);cursor:not-allowed}.card-button.disabled{opacity:.88;filter:grayscale(.05) brightness(.78);cursor:not-allowed}.hand-card-slot.is-selected{transform:translateY(-25%);z-index:3}.card-button.selected{outline:3px solid #f8d64e;outline-offset:2px}.card-button.selected img{opacity:1}.hand-card-slot.card-motion-select{animation:card-select-lift .18s cubic-bezier(.2,.8,.2,1) both}.hand-card-slot.card-motion-deselect{animation:card-deselect-drop .18s cubic-bezier(.2,.8,.2,1) both}.card-button.recent-drawn{outline:3px solid #e84b4b;outline-offset:4px}.card-button.recent-drawn.selected{box-shadow:0 0 0 2px #f8d64eb8,0 0 0 6px #e84b4b6b}.card-button:hover,.card-button:focus-visible{outline:2px solid #f8d64e}.card-rule-help-button{position:absolute;left:.45rem;bottom:.45rem;z-index:6;display:inline-grid;place-items:center;width:clamp(1.75rem,2.4vw,2.05rem);height:clamp(1.75rem,2.4vw,2.05rem);min-width:clamp(1.75rem,2.4vw,2.05rem);min-height:clamp(1.75rem,2.4vw,2.05rem);padding:0;border:2px solid rgba(168,174,184,.95);border-radius:999px;background:transparent;color:#b9c0ca;font-size:1.02rem;font-weight:900;line-height:1;box-shadow:0 0 0 1px #06080c47,0 .45rem .95rem #00000052;opacity:0;visibility:hidden;pointer-events:none;filter:brightness(.72);transform:translateY(.2rem) scale(.92);transition:opacity .18s ease,visibility 0s linear .18s,filter .18s ease,transform .18s ease}.card-rule-help-button span{transform:translateY(-.02em)}.card-rule-help-button.is-visible{opacity:.9;visibility:visible;pointer-events:auto;filter:brightness(.95);transform:translateY(0) scale(1);transition:opacity .18s ease,visibility 0s linear 0s,filter .18s ease,transform .18s ease}.card-rule-help-button:hover,.card-rule-help-button:focus-visible{background:#bac0c914;filter:brightness(1.02);transform:translateY(0) scale(1.04)}.card-button[data-card-tooltip]:hover,.card-button[data-card-tooltip]:focus-visible{overflow:visible}.card-button[data-card-tooltip]:after{content:attr(data-card-tooltip);position:absolute;left:50%;bottom:calc(100% + .55rem);z-index:120;width:max-content;max-width:min(16rem,70vw);padding:.38rem .55rem;border:1px solid rgba(248,214,78,.55);border-radius:8px;background:#12151cf5;color:#f6f1e8;font-size:.78rem;font-weight:800;line-height:1.35;pointer-events:none;opacity:0;transform:translate(-50%,.25rem);transition:opacity .12s ease,transform .12s ease;white-space:normal;box-shadow:0 .5rem 1.2rem #0000004d}.card-button[data-card-tooltip]:hover:after,.card-button[data-card-tooltip]:focus-visible:after{opacity:0;transform:translate(-50%,.25rem)}.card-hover-tooltip{position:fixed;z-index:10050;max-width:min(18rem,calc(100vw - 1rem));padding:.46rem .62rem;border:1px solid rgba(248,214,78,.62);border-radius:8px;background:#0f121af5;color:#f8fbff;font-size:.8rem;font-weight:850;line-height:1.35;pointer-events:none;box-shadow:0 .65rem 1.45rem #00000057}.card-hover-tooltip[hidden]{display:none}.card-button.disabled:hover,.card-button.incompatible:hover{transform:none}.normal-draw-offer-backdrop{position:fixed;inset:0;z-index:10000!important;display:grid;place-items:center;padding:1rem;background:#00000080;transform:translateY(20vh)}.normal-draw-offer-modal{position:relative;z-index:10001!important;width:min(24rem,100%);display:grid;gap:.8rem;text-align:center;box-shadow:0 20px 60px #00000061}.initial-direction-backdrop{position:fixed;inset:0;z-index:2147483646;display:grid;place-items:center;padding:1rem;background:#0000006b;pointer-events:auto}.initial-direction-modal{position:relative;z-index:2147483647;width:min(24rem,100%);display:grid;gap:.85rem;padding:1rem;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#12151cf5;color:#f6f1e8;text-align:center;box-shadow:0 20px 60px #00000061}.initial-direction-modal strong{font-size:1.1rem}.initial-direction-modal p{margin:0;color:#d9deea}.initial-direction-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.initial-direction-actions button:first-child{background:#f8d64e;color:#161616}.initial-direction-actions button:last-child{background:#2f63c9}.selection-panel{display:grid;gap:.8rem;margin-top:.9rem;padding:.9rem;border-radius:8px;background:#20232c;min-width:0}.battle-action-dock .selection-panel{align-self:start;grid-template-columns:1fr;grid-template-rows:auto 6.9rem minmax(3.25rem,1fr);align-content:stretch;justify-items:stretch;gap:.45rem;width:100%;height:auto;min-width:0;min-height:0;max-width:100%;margin-top:0;padding:.55rem;background:#20232cd1;overflow:hidden}.battle-action-dock .selection-summary{gap:.2rem}.battle-action-dock .selection-actions{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(2,1fr);align-self:start;justify-self:stretch;width:100%;height:auto;min-height:0}.battle-action-dock .selection-actions button{justify-self:stretch;width:100%;height:3.2rem;min-height:3.2rem}.selection-summary{display:grid;gap:.35rem}.selection-summary strong{font-size:.95rem}.selection-summary span{color:#c7cdd8;display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selection-actions{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);gap:.5rem}.selection-actions button{min-width:0;padding:.7rem .55rem}.selection-actions button:first-child{min-height:3.35rem;font-size:1.05rem}.selection-actions button#play-button{background:#f8d64e}.selection-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:.55rem;width:100%;min-width:0;min-height:2.38rem;height:100%;padding:.05rem 0;border-radius:0;border:0;background:transparent;color:#f4f7fce6;text-align:left}.selection-toggle-copy{display:flex;align-items:center;min-width:0;flex:1 1 auto}.selection-toggle-copy strong{font-size:1.04rem;line-height:1.05;font-weight:800;letter-spacing:.01em;white-space:nowrap;color:#e8eef7e0;text-shadow:0 1px 0 rgba(0,0,0,.16)}.selection-toggle-switch{display:inline-grid;place-items:center;flex:0 0 auto;margin-left:auto;width:3.36rem;min-width:3.36rem;height:2.1rem;min-height:2.1rem;padding:0;border:0;background:transparent}.battle-action-dock .selection-toggle-switch{width:3.36rem;min-width:3.36rem;height:2.1rem;min-height:2.1rem}.selection-toggle-track{position:relative;display:block;width:2.8rem;height:1.43rem;border-radius:999px;background:#833535ad;box-shadow:inset 0 0 0 1px #ffffff14,inset 0 .06rem .16rem #00000029;transition:background-color .16s ease,box-shadow .16s ease}.selection-toggle-switch:focus-visible{outline:2px solid rgba(239,245,255,.92);outline-offset:2px}.selection-toggle-row.is-on .selection-toggle-track{background:#2e9856bd}.selection-toggle-switch:hover .selection-toggle-track,.selection-toggle-switch:focus-visible .selection-toggle-track{box-shadow:inset 0 0 0 1px #ffffff1f,inset 0 .08rem .2rem #0000002e}.selection-toggle-thumb{position:absolute;top:.18rem;left:.18rem;width:1.06rem;height:1.06rem;border-radius:999px;background:#fbfdff;box-shadow:0 .08rem .22rem #0000003d,inset 0 1px #ffffffb3;transform:translate(0);transition:transform .16s ease,background-color .18s ease}.selection-toggle-row.is-on .selection-toggle-thumb{transform:translate(1.37rem)}.color-picker-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:1rem;background:#0000008c}.color-picker-panel{width:min(24rem,100%);display:grid;gap:.8rem}.color-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.color-choices button{display:grid;justify-items:start;align-content:start;gap:.45rem;min-width:0;min-height:5.2rem;padding:.9rem .8rem;font-weight:900;text-transform:none;color:#f6f1e8}.color-choices button strong{display:block;font-size:1rem}.color-choices button .color-swatch{width:1.4rem;height:1.4rem}.color-red{background:#be2d2d}.color-yellow{background:#c29a12}.color-blue{background:#2f63c9}.color-green{background:#2d8a46}.log-panel summary{cursor:pointer;font-weight:900;list-style:none}.log-panel summary::-webkit-details-marker{display:none}.log-panel summary:after{content:"▾";float:right;color:#bfc3cf;font-size:.8rem}.log-panel[open] summary:after{content:"▴"}.log-panel ol{max-height:12rem;margin:.85rem 0 0;padding-left:1.2rem;overflow:auto;color:#c7cdd8}.shell:not(.shell-battle) .log-panel summary,.shell:not(.shell-battle) .log-panel ol{color:#334155}.shell:not(.shell-battle) .log-panel summary:after{color:#64748b}@keyframes discard-land{0%{opacity:.4;transform:translateY(-1.2rem) rotate(-6deg) scale(.92)}}@keyframes card-select-lift{0%{transform:translateY(0)}to{transform:translateY(-25%)}}@keyframes card-deselect-drop{0%{transform:translateY(-25%)}to{transform:translateY(0)}}@keyframes draw-stack-burst{0%{opacity:1;transform:translate(0) rotate(0) scale(.98)}to{opacity:0;transform:translate(var(--burst-x),var(--burst-y)) rotate(var(--burst-rotate)) scale(.92)}}@keyframes draw-stack-explosion-core{0%{opacity:0;transform:translate(-50%,-50%) scale(.18)}22%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1.38)}}@keyframes draw-stack-explosion-ring{0%{opacity:.95;transform:translate(-50%,-50%) scale(.08)}to{opacity:0;transform:translate(-50%,-50%) scale(1.65)}}@keyframes draw-stack-explosion-spark{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--spark-angle)) translateY(0) scale(.35)}18%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) rotate(var(--spark-angle)) translateY(calc(-2.9rem * var(--explosion-scale, 1))) scale(.95)}}@keyframes draw-stack-explosion-shard{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--shard-angle)) translateY(0) rotate(0) scale(.42)}16%{opacity:.94}to{opacity:0;transform:translate(-50%,-50%) rotate(var(--shard-angle)) translateY(calc(-2.25rem * var(--explosion-scale, 1))) rotate(72deg) scale(.86)}}@keyframes penalty-question-pop{0%{opacity:0;transform:translate(-50%,20%) scale(.35) rotate(0)}18%{opacity:1;transform:translate(-50%,2%) scale(.82) rotate(calc(var(--question-rotate) * .28))}68%{opacity:1;transform:translate(calc(-50% + var(--question-x)),calc(-1 * var(--question-y))) scale(1.12) rotate(var(--question-rotate))}to{opacity:0;transform:translate(calc(-50% + var(--question-x)),calc(-1 * var(--question-y) + 1rem)) scale(.88) rotate(var(--question-rotate))}}@keyframes fly-from-opponent{0%{opacity:0;transform:translate(-50%,-50%) translateY(-9rem) scale(.28) rotate(-8deg)}to{opacity:1;transform:translate(-50%,-50%) translate(0) scale(1) rotate(0)}}@keyframes fly-from-seat{0%{opacity:0;transform:translate(-50%,-50%) scale(.28) rotate(-10deg)}to{top:44%;left:50%;opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}}@keyframes turn-direction-orbit-spin{0%{transform:translate(-50%,-50%) translateY(var(--battle-table-y, clamp(2rem, 17vh, 12rem))) scale(var(--turn-orbit-scale, 1)) rotate(0)}to{transform:translate(-50%,-50%) translateY(var(--battle-table-y, clamp(2rem, 17vh, 12rem))) scale(var(--turn-orbit-scale, 1)) rotate(360deg)}}@keyframes fly-from-self{0%{opacity:0;transform:translate(-50%,-50%) translateY(11rem) scale(.8) rotate(7deg)}to{opacity:1;transform:translate(-50%,-50%) translate(0) scale(1) rotate(0)}}@keyframes fly-from-left{0%{opacity:0;transform:translate(-50%,-50%) translate(-18rem,-2rem) scale(.28) rotate(-12deg)}to{opacity:1;transform:translate(-50%,-50%) translate(0) scale(1) rotate(0)}}@keyframes fly-from-right{0%{opacity:0;transform:translate(-50%,-50%) translate(18rem,-2rem) scale(.28) rotate(12deg)}to{opacity:1;transform:translate(-50%,-50%) translate(0) scale(1) rotate(0)}}@keyframes draw-to-self{0%{opacity:.94;transform:translate(-50%,-50%) translate(0) scale(.48) rotate(-5deg)}to{opacity:0;transform:translate(-50%,-50%) translate(5rem,13rem) scale(.92) rotate(6deg)}}@keyframes draw-to-top{0%{opacity:.94;transform:translate(-50%,-50%) translate(0) scale(.48) rotate(-5deg)}to{opacity:0;transform:translate(-50%,-50%) translateY(-10rem) scale(.44) rotate(7deg)}}@keyframes draw-to-left{0%{opacity:.94;transform:translate(-50%,-50%) translate(0) scale(.48) rotate(-5deg)}to{opacity:0;transform:translate(-50%,-50%) translate(-18rem,-4rem) scale(.42) rotate(-12deg)}}@keyframes draw-to-right{0%{opacity:.94;transform:translate(-50%,-50%) translate(0) scale(.48) rotate(-5deg)}to{opacity:0;transform:translate(-50%,-50%) translate(18rem,-4rem) scale(.42) rotate(12deg)}}@keyframes draw-to-seat{0%{top:48%;left:42%;opacity:.94;transform:translate(-50%,-50%) scale(.48) rotate(-5deg)}to{top:var(--seat-effect-top, 42%);left:var(--seat-effect-left, 50%);opacity:0;transform:translate(-50%,-50%) scale(.92) rotate(6deg)}}@keyframes challenge-countdown{0%{width:100%}to{width:0%}}@keyframes battle-stage-focus{0%{opacity:.58}to{opacity:.1}}@keyframes current-seat-breathe{0%,to{box-shadow:0 0 #f8d64e47}50%{box-shadow:0 0 0 .28rem #f8d64e00}}@keyframes toast-in{0%{opacity:0;transform:translateY(-.45rem)}}@media(max-width:820px){body:not(.battle-active){overflow-x:hidden;overflow-y:auto}.shell{width:calc(100% - 1rem);padding-top:.8rem}.shell:not(.shell-battle){height:auto;min-height:100dvh;overflow:visible}.topbar{margin-bottom:.8rem}.connection-panel,.layout,.form-grid,.rules-guide-grid,.center-table{grid-template-columns:1fr}.rule-entry-grid,.rule-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rule-image-viewer{grid-template-columns:1fr 1fr}.rule-image-viewer img{grid-column:1 / -1;grid-row:1}.button-row{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-columns:initial}.button-row button{width:100%}.button-row button:last-child{grid-column:1 / -1}.lobby-actions button:last-child{grid-column:auto}.center-table{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"pile top" "facts facts";width:min(100%,28rem);gap:.9rem;margin:1rem auto 1.2rem}.draw-pile{grid-area:pile}.discard-pile{grid-area:top}.table-facts{grid-area:facts}.cards{gap:.65rem .5rem}.hand-card-slot,.card-button{flex-basis:clamp(5.6rem,18vw,7.2rem)}.battle-hud{gap:.35rem;padding:.7rem .85rem}.selection-actions,.color-choices{grid-template-columns:1fr 1fr}.topbar{grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "actions" "status";justify-items:center}.topbar .status,.lobby-topbar-actions,.lobby-title-wrap,.lobby-topbar-status-group{grid-column:auto;justify-self:center}.topbar .status,.lobby-topbar-status-group{justify-self:center}.lobby-topbar-status-group{grid-auto-flow:row;justify-items:center}.lobby-topbar-actions{justify-self:center}.lobby-control-grid{grid-template-columns:1fr}.lobby-layout-v2,.lobby-layout-v3{height:auto;min-height:0;grid-template-rows:auto auto;align-items:start}.lobby-identity-card,.lobby-matchmaking-card{height:auto}.lobby-chat-panel{grid-template-rows:minmax(0,1fr) auto;min-height:clamp(16rem,38vh,22rem);max-height:clamp(16rem,38vh,22rem);height:clamp(16rem,38vh,22rem)}.lobby-identity-row,.lobby-chat-composer,.lobby-debug-actions,.lobby-host-actions-row{grid-template-columns:1fr;display:grid}.lobby-chat-topbar,.lobby-hub-panel-header{grid-template-columns:1fr;justify-items:stretch}.lobby-hub-panel-header{display:grid}.lobby-room-hub-metrics,.lobby-room-hub-metrics-compact,.lobby-room-hub-metrics-chat{grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch}}@keyframes battle-turn-sweep{0%{opacity:0;transform:translate(135%)}12%{opacity:1}54%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-135%)}}@media(min-width:821px)and (max-height:720px){body:not(.battle-active){overflow-x:hidden;overflow-y:auto}.shell:not(.shell-battle){height:auto;min-height:100dvh;overflow:visible}.lobby-layout-v2,.lobby-layout-v3{height:auto;min-height:calc(100dvh - 9rem);align-items:start}}@media(max-width:960px)and (orientation:landscape){.battle{grid-template-columns:minmax(0,1.3fr) minmax(18rem,.7fr);align-items:start}.table-zone{min-height:calc(100vh - 7rem);margin-bottom:0}.hand{position:sticky;top:.75rem;max-height:calc(100vh - 1.5rem);overflow:auto}.cards{max-height:none}.battle-table{min-height:28rem}.center-table{margin-top:5rem;margin-bottom:4rem}}@media(max-width:560px){body:not(.battle-active){overflow-x:hidden;overflow-y:auto}.shell{width:calc(100% - .75rem);padding-top:.75rem}.shell:not(.shell-battle){height:auto;min-height:100dvh;overflow:visible;padding-bottom:1.35rem}.topbar{gap:.75rem;grid-template-columns:minmax(0,1fr)}.lobby-topbar-status-group{gap:.45rem}.lobby-title-wrap{width:100%;min-height:clamp(3rem,12vw,4rem);padding:.15rem .3rem .25rem}.lobby-title{font-size:clamp(1.45rem,6.2vw,2rem);letter-spacing:.02em}.lobby-topbar-actions{gap:.45rem;grid-auto-flow:column}.lobby-sound-button,.lobby-rule-button{min-width:2.75rem;min-height:2.75rem}.lobby-rule-button{padding-inline:.8rem}.lobby-layout-v2,.lobby-layout-v3{height:auto;min-height:0;grid-template-rows:auto auto;align-items:start;gap:.75rem}.lobby-control-panel-v2,.lobby-chat-panel,.lobby-bottom-row{min-height:0}.lobby-control-stack{padding-right:.05rem;gap:.5rem}.lobby-room-hub-metrics,.lobby-room-hub-metrics-compact,.lobby-room-hub-metrics-chat{grid-template-columns:1fr}.lobby-seat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lobby-chat-feed{padding:.8rem .75rem}.lobby-feed-item-player,.lobby-feed-item-self{grid-template-columns:2.35rem minmax(0,1fr);gap:.55rem}.lobby-feed-item-self{grid-template-columns:minmax(0,1fr) 2.35rem}.lobby-feed-avatar{width:2.35rem;height:2.35rem;border-radius:9px}.lobby-feed-bubble{max-width:100%;padding:.72rem .82rem}.rule-modal{max-height:92svh;padding:.8rem}.rule-modal-header{align-items:start;flex-direction:column}.rule-entry-button{min-height:3.9rem;font-size:.95rem}.rule-card-button{min-height:8.8rem}.button-row{grid-template-columns:1fr}.button-row button:last-child{grid-column:auto}.room-meta{grid-template-columns:1fr}.room-meta strong{font-size:1.35rem}.players{grid-template-columns:1fr}.empty-seat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.battle-table{display:flex;flex-direction:column;gap:.8rem;min-height:auto}.opponents{display:flex;gap:.6rem;overflow-x:auto;padding-bottom:.35rem}.seat{position:relative;width:min(10.5rem,72vw);grid-template-columns:2.65rem minmax(0,1fr) auto;padding:.6rem;flex:0 0 auto;transform:none!important;inset:auto!important}.seat .avatar{width:2.5rem;height:2.5rem}.seat-badge{top:.35rem;right:.45rem}.self-seat{width:min(12rem,78vw);margin:0 auto}.table-zone{min-height:auto;padding:.75rem}.center-table{width:100%;margin:0;gap:.75rem;grid-template-columns:1fr;grid-template-areas:"pile" "top" "facts"}.draw-pile img,.top-card img{max-width:6.6rem}.discard-pile{min-height:11rem}.flying-card{width:5.8rem}.draw-flying-card{width:4.2rem}.actions{flex-direction:column;align-items:stretch}.actions button{width:100%}.selection-actions{grid-template-columns:1fr}.selection-panel{padding:.8rem}.hand{padding:.85rem}.cards{gap:.55rem .4rem;padding-top:1.25rem}.hand-card-slot,.card-button{flex-basis:clamp(4.9rem,28vw,6.1rem)}.log-panel ol{max-height:8rem}}@media(max-width:960px)and (orientation:landscape){.battle-immersive{display:grid;grid-template-columns:1fr;--battle-table-y: clamp(-4rem, -8vh, -1.4rem);--battle-center-offset: calc(clamp(-1.3rem, -2.5vw, -.35rem) - 60px) ;--battle-pile-offset: clamp(.8rem, 4vw, 2.8rem);--battle-draw-pile-offset: clamp(1.5rem, 6.5vw, 4.8rem);--battle-facts-offset: clamp(5.4rem, 14.5vw, 10.8rem);--battle-center-scale: 1.08;--turn-orbit-bottom: 38%}.battle-immersive .table-zone{min-height:100%;height:100%}.battle-immersive .hand:not(.battle-action-dock .hand){position:relative;top:auto;max-height:min(34vh,13rem);overflow:hidden}.battle-action-dock .hand{max-height:none;overflow:visible}.battle-immersive .battle-table{min-height:0;height:100%;overflow:visible;margin-top:0}.battle-immersive .center-table{margin:0}}@media(max-width:820px){.battle-immersive{--battle-table-y: clamp(-2.8rem, -6vh, -.9rem);--battle-center-offset: calc(clamp(-.8rem, -3.2vw, -.12rem) - 60px) ;--battle-pile-offset: clamp(.75rem, 5vw, 2rem);--battle-draw-pile-offset: clamp(1.35rem, 7vw, 3.8rem);--battle-facts-offset: clamp(5.2rem, 16.8vw, 9.8rem);--battle-center-scale: .98;--turn-orbit-bottom: 35%}.battle-immersive .table-zone{padding:max(.55rem,env(safe-area-inset-top)) .55rem max(.55rem,env(safe-area-inset-bottom))}.battle-immersive .battle-hud{gap:.35rem;padding:.5rem .6rem}.battle-immersive .battle-table{display:block;min-height:0;height:100%;overflow:visible;margin-top:0;padding-top:0}.battle-immersive .opponents{display:contents;overflow:visible;padding-bottom:0;transform:none}.battle-immersive .seat:not(.seat-side):not(.self-seat){position:relative;width:min(10.5rem,72vw);transform:none!important;inset:auto!important}.battle-immersive .seat-side{position:absolute;top:var(--seat-top)!important;width:clamp(7.2rem,26vw,9.2rem);transform:translateY(-50%) scale(calc(var(--seat-scale, .8) * .72))!important}.battle-immersive .self-seat{position:absolute;top:var(--seat-top)!important;right:calc(clamp(.45rem,1.4vw,1.1rem) + var(--battle-side-offset, clamp(1rem, 4vw, 60px)));left:auto;bottom:auto;width:clamp(7.2rem,26vw,9.2rem);transform:translateY(-50%) scale(.82)!important;margin:0}.battle-immersive .center-table{width:min(100%,24rem);min-height:clamp(10rem,31vh,14rem);margin:0;transform:translate(-50%,-50%) translateY(var(--battle-table-y))}.battle-action-dock{grid-template-columns:clamp(9rem,30vw,11rem) minmax(0,1fr);gap:.45rem;padding:.45rem}.battle-chat-meta{font-size:.74rem}.battle-chat-composer-footer{align-items:stretch;flex-direction:column}.battle-chat-send-button{width:100%}.battle-action-dock .actions{grid-template-columns:1fr;width:100%;min-width:0;max-width:none}.battle-action-dock .hand{max-height:none}.battle-action-dock .cards{flex-wrap:nowrap;max-height:none;margin-top:var(--battle-hand-cards-offset-top, 3.5rem)}.battle-immersive{--battle-hand-slot-width: clamp(4.35rem, 18vw, 5.35rem)}.battle-action-dock .selection-panel{padding:.45rem}}@media(max-width:560px){.shell-battle{width:100%;padding:0}.battle-immersive .battle-hud{max-height:4.8rem;overflow:auto}.battle-rule-button{top:calc(max(.55rem,env(safe-area-inset-top)) + 5.05rem);right:max(.12rem,env(safe-area-inset-right));width:2.7rem;height:2.7rem;min-width:2.7rem;min-height:2.7rem;padding:0;font-size:1.6rem}.battle-immersive .center-table{min-height:clamp(8.5rem,27vh,12rem);margin-top:0}.battle-immersive{--battle-center-scale: .78;--turn-orbit-bottom: 30%}.battle-immersive .draw-pile img,.battle-immersive .top-card img{max-width:5.4rem}.battle-action-dock .hand-header,.battle-action-dock .action-guide{display:none}.battle-action-dock .cards{max-height:7.8rem;margin-top:var(--battle-hand-cards-offset-top, 1.15rem)}.battle-action-dock .selection-actions{grid-template-columns:1fr}.settings-adjust-header{align-items:stretch;flex-direction:column}.settings-adjust-actions{justify-content:stretch}.settings-adjust-actions>button{flex:1 1 auto}}#portrait-overlay{position:fixed;inset:0;z-index:99999;display:none;flex-direction:column;align-items:center;justify-content:center;gap:clamp(1.2rem,5vw,1.8rem);padding:clamp(1.5rem,6vw,2.75rem);background:#000;text-align:center;-webkit-user-select:none;user-select:none}#portrait-overlay.is-visible{display:flex}body.portrait-overlay-active{overflow:hidden}.portrait-copy{display:flex;flex-direction:column;align-items:center;gap:.55rem;max-width:min(22rem,100%)}.portrait-spin-shell{position:relative;display:grid;place-items:center}.portrait-spin-icon{grid-area:1 / 1;width:clamp(7.15rem,28.6vw,10.4rem);height:auto;animation:portrait-spin 3s linear infinite;opacity:.92;pointer-events:none;filter:drop-shadow(0 0 1rem rgba(255,255,255,.18))}.portrait-skip-button{grid-area:1 / 1;z-index:1;min-width:clamp(4.25rem,18vw,5.3rem);min-height:clamp(4.25rem,18vw,5.3rem);padding:.55rem .95rem;border:1px solid rgba(255,216,77,.72);border-radius:999px;background:radial-gradient(circle at 50% 35%,#ffdb6e5c,#ffdb6e14 55%,#ffdb6e00),#0f0f0fd6;color:#fff6bf;font-size:clamp(.92rem,3.9vw,1rem);font-weight:800;letter-spacing:.08em;box-shadow:0 .9rem 1.8rem #00000047,inset 0 0 0 1px #ffffff14;opacity:0;pointer-events:none;transform:scale(.82);transition:opacity .18s ease,transform .18s ease,box-shadow .18s ease,border-color .18s ease;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}#portrait-overlay.skip-ready .portrait-skip-button{opacity:1;pointer-events:auto;transform:scale(1)}.portrait-skip-button:hover,.portrait-skip-button:focus-visible{border-color:#ffe682f5;box-shadow:0 1rem 2rem #00000057,0 0 1.4rem #ffd84d42,inset 0 0 0 1px #ffffff24;outline:none}.portrait-text-main{margin:0;color:#fff;font-size:clamp(1.7rem,6.5vw,2.4rem);font-weight:800;letter-spacing:.08em}.portrait-text-sub{margin:0;color:#ffffffe6;font-size:clamp(1.05rem,4.2vw,1.45rem);line-height:1.45}.portrait-text-tip{margin:.3rem 0 0;color:#ffffffb8;font-size:clamp(.92rem,3.5vw,1.1rem);line-height:1.55}.portrait-text-tip-emphasis{color:#ffd84d;font-weight:800}@keyframes portrait-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
