:root{--bg: #12161c;--panel: #1b212a;--panel-2: #242c37;--line: #2f3a48;--text: #e6ebf2;--muted: #8d99a8;--accent: #2bb3a3;--accent-2: #f2c14e;--danger: #e5534b;--mine: #6cc6ff;--theirs: #ff9f6b;--ui-scale: 1;--card-w: calc(84px * var(--ui-scale));--card-h: calc(117px * var(--ui-scale));font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:6px 12px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#06201d;font-weight:600}button.on{background:var(--accent);color:#06201d}input,select,textarea{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:6px 8px}textarea{width:100%;font-family:ui-monospace,Consolas,monospace;font-size:13px}.app{min-height:100vh;display:flex;flex-direction:column}header{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap}.brand{font-weight:700}.spacer{flex:1}.room-code{font-family:ui-monospace,monospace;letter-spacing:2px;color:var(--accent-2)}.conn.on{color:var(--accent)}.conn.off{color:var(--danger)}.lang-toggle{display:inline-flex;align-items:center;gap:4px;color:var(--muted)}.lang-toggle button{padding:2px 8px}main{flex:1;display:flex;min-height:0}.center-msg{margin:20vh auto;color:var(--muted)}.lobby{max-width:760px;margin:0 auto;padding:24px 16px 48px;display:flex;flex-direction:column;gap:20px;width:100%}.lobby h1{margin:0}.lobby h2{margin:0 0 8px;font-size:18px}.lobby section{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:10px}.lobby label{display:flex;flex-direction:column;gap:6px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row select,.row input{flex:1;min-width:140px}.ok{color:var(--accent)}.warn{color:var(--accent-2)}.problems{margin:0;padding-left:20px;color:var(--accent-2);font-size:14px}.disclaimer{color:var(--muted);font-size:12px}.hint{font-size:13px;color:var(--muted)}.hint.warn{color:var(--accent-2)}.table{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 340px;min-height:0}.board{display:flex;flex-direction:column;gap:6px;padding:8px 12px;overflow:auto}.side{background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;gap:8px;padding:8px;min-height:0;overflow:auto}.opp-hand{color:var(--muted);font-size:14px}.offline{color:var(--danger)}.area{display:grid;grid-template-columns:72px minmax(0,1fr) 160px;gap:8px;padding:6px;border-radius:10px;background:var(--panel);border:1px solid var(--line)}.area.is-turn{border-color:var(--accent)}.zones-left,.zones-right{display:flex;flex-direction:column;gap:6px;align-items:stretch}.pile{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:4px;text-align:center}.pile-count{font-size:22px;font-weight:700}.pile-label{font-size:12px;color:var(--muted)}.pile-button{width:100%}.ap-area{display:flex;gap:4px;flex-wrap:wrap}.ap-card{width:34px;height:46px;border-radius:4px;background:#3a4a5c;display:grid;place-items:center;font-size:11px;font-weight:700;transition:transform .2s}.ap-card.rested{transform:rotate(90deg);opacity:.5}.lines{display:flex;flex-direction:column;gap:4px}.line{position:relative;display:flex;gap:6px;align-items:center;min-height:calc(var(--card-h) + 6px);padding-left:52px}.line-label{position:absolute;left:0;font-size:12px;color:var(--muted);writing-mode:vertical-rl}.line-front{background:#2bb3a30f;border-radius:6px}.center-bar{display:flex;align-items:center;gap:12px;min-height:34px;flex-wrap:wrap}.turn-tag{padding:4px 10px;border-radius:20px;background:var(--panel-2)}.turn-tag.mine{background:var(--accent);color:#06201d}.battle-tag{color:var(--accent-2)}.revealed{display:flex;gap:4px}.hand{display:flex;gap:6px;flex-wrap:wrap;padding:6px;min-height:calc(var(--card-h) + 12px);background:var(--panel);border-radius:10px;border:1px solid var(--line)}.card-slot{display:grid;place-items:center;flex:none}.card-slot-md{width:var(--card-w);height:var(--card-h)}.card-slot-md.is-rested{width:var(--card-h)}.card-slot-sm{width:60px;height:84px}.card-slot-sm.is-rested{width:84px}.empty-slot{border:1px dashed var(--line);border-radius:6px}.card{position:relative;border-radius:6px;overflow:hidden;background:#222;transition:transform .2s,box-shadow .15s,opacity .15s;outline:2px solid transparent}.card-md{width:var(--card-w);height:var(--card-h)}.card-sm{width:60px;height:84px}.card.rested{transform:rotate(90deg)}.card img{width:100%;height:100%;object-fit:cover;display:block}.card.clickable{cursor:pointer}.card.highlight{outline-color:var(--accent-2);box-shadow:0 0 10px var(--accent-2)}.card.selected{outline-color:var(--mine);box-shadow:0 0 10px var(--mine)}.card.marked{outline-color:var(--danger);box-shadow:0 0 10px var(--danger)}.card.dim{opacity:.45}.card-back{width:100%;height:100%;display:grid;place-items:center;background:repeating-linear-gradient(45deg,#1d4f4a,#1d4f4a 6px,#173f3b 6px 12px);font-weight:800;color:#8fe0d6}.card-fallback{padding:4px;font-size:11px;height:100%;background:var(--panel-2)}.card-fallback-no{color:var(--muted);font-size:9px}.bp{position:absolute;left:2px;bottom:2px;background:#000000bf;padding:0 4px;border-radius:4px;font-size:12px;font-weight:700}.bp.down{color:var(--danger)}.card-badge{position:absolute;right:2px;top:2px;background:#000000bf;padding:0 4px;border-radius:4px;font-size:11px}.prompt{position:relative;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}.prompt.my-turn{border-color:var(--accent-2)}.prompt-title{font-weight:600}.prompt-title.muted{color:var(--muted);font-weight:400}.buttons,.option-cards{display:flex;gap:6px;flex-wrap:wrap}.option-card{display:flex;flex-direction:column;gap:4px;align-items:center}.pick-order{font-size:12px;font-weight:700}.ability{display:flex;gap:6px;align-items:center;justify-content:space-between;font-size:13px}.toast{background:#e5534b26;border:1px solid var(--danger);color:#ffb4ae;border-radius:6px;padding:6px 8px;font-size:13px;cursor:pointer}.busy{font-size:12px;color:var(--muted)}.concede{align-self:flex-end;font-size:12px;padding:2px 8px;color:var(--muted)}.detail{background:var(--panel-2);border-radius:10px;padding:10px;font-size:13px;display:flex;flex-direction:column;gap:6px}.detail.empty{color:var(--muted)}.detail-head{display:flex;justify-content:space-between;gap:8px}.detail-name{font-size:16px;font-weight:700}.detail-sub,.note{color:var(--muted);font-size:12px}.detail-stats{display:flex;flex-wrap:wrap;gap:4px 10px}.card-text p{margin:2px 0;line-height:1.5}.token{display:inline-block;background:#3b4757;border-radius:4px;padding:0 5px;margin:0 2px;font-size:12px}.token.trigger{background:#6b4e16}.detail-trigger{border-top:1px solid var(--line);padding-top:6px}.detail-mods{color:#7ee787}.log-panel{flex:1;min-height:200px;display:flex;flex-direction:column;background:var(--panel-2);border-radius:10px;overflow:hidden}.tabs{display:flex}.tabs button{flex:1;border-radius:0;border:none;border-bottom:1px solid var(--line)}.log-body{flex:1;overflow:auto;padding:6px 8px;font-size:13px;max-height:40vh}.log-line{padding:1px 0}.log-line.mine{color:var(--mine)}.log-line.theirs{color:var(--theirs)}.chat-form{display:flex;gap:4px;padding:6px}.chat-form input{flex:1}.modal-backdrop{position:fixed;inset:0;background:#0009;display:grid;place-items:center;z-index:10}.modal{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px;max-width:min(900px,92vw);max-height:80vh;overflow:auto}.modal-head{display:flex;justify-content:space-between;margin-bottom:8px}.modal-cards{display:flex;flex-wrap:wrap;gap:6px}@media(max-width:1000px){:root{--card-w: calc(64px * var(--ui-scale));--card-h: calc(89px * var(--ui-scale))}.table{grid-template-columns:1fr}.side{border-left:none;border-top:1px solid var(--line)}.area{grid-template-columns:56px minmax(0,1fr)}.zones-right{grid-column:1 / -1;flex-direction:row;flex-wrap:wrap}}@media(max-width:600px){:root{--card-w: calc(54px * var(--ui-scale));--card-h: calc(75px * var(--ui-scale))}.board{padding:6px}.area{grid-template-columns:44px minmax(0,1fr);gap:4px;padding:4px}.line{padding-left:14px;gap:4px}.line-label{font-size:10px}.pile-count{font-size:16px}.prompt{position:sticky;bottom:0;z-index:5;box-shadow:0 -4px 16px #00000080}.side{padding:6px}}.manual{border-top:1px dashed var(--line);padding-top:8px;display:flex;flex-direction:column;gap:6px;font-size:13px}.manual-head{display:flex;justify-content:space-between;align-items:center}.manual .inline{display:inline-flex;align-items:center;gap:4px}.manual input[type=number]{width:48px}.manual button{padding:3px 8px;font-size:12px}button.danger{border-color:var(--danger);color:#ffb4ae}button.link{background:none;border:none;color:var(--accent);padding:0 4px}.pile.clickable{cursor:pointer;border-color:var(--accent-2)}.pile.sel{outline:2px solid var(--mine)}.revealed.peek{align-items:center;border:1px dashed var(--mine);border-radius:6px;padding:2px 6px}.ability-btn{text-align:left;display:block;width:100%}.ability-btn .card-text p{margin:0}.activations{display:flex;flex-direction:column;gap:4px}.effect-source{font-size:12px;color:var(--muted)}.auto-badge{display:inline-block;font-size:11px;padding:0 6px;border-radius:10px;margin-left:4px}.auto-badge.auto{background:#2bb3a340;color:#8fe0d6}.auto-badge.manual{background:#f2c14e33;color:var(--accent-2)}.auto-badge.unsupported{background:#e5534b33;color:#ffb4ae}.effect-line{display:flex;gap:4px;align-items:flex-start}.automation summary{cursor:pointer;color:var(--muted);font-size:12px}.muted-text{color:var(--muted);font-size:12px}.grow{flex:1}.editor{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,400px) 300px;gap:10px;padding:10px;align-items:start;min-width:0}.editor-col{position:sticky;top:10px;max-height:calc(100dvh - 20px);overflow:auto;display:flex;flex-direction:column;gap:10px;min-width:0}.ed-box{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}.ed-box h3{margin:0;font-size:15px}.ed-search{min-height:0}.ed-filters{display:flex;flex-wrap:wrap;gap:6px}.ed-filters select{flex:1 1 110px;min-width:0}.ed-query{flex:1 1 100%}.ed-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--card-w),1fr));gap:8px 6px;justify-items:center}.ed-result{position:relative}.ed-result .card-badge{font-size:13px;font-weight:700;color:var(--accent-2)}.ed-minus{position:absolute;left:2px;top:2px;width:22px;height:22px;padding:0;line-height:1;border-radius:50%;background:#000000bf;font-weight:700}.ed-more{display:flex;justify-content:center;padding:6px}.ed-manage input{flex:1;min-width:120px}.ed-manage .buttons button{padding:4px 10px;font-size:13px}.ed-io{display:flex;flex-direction:column;gap:6px}.ed-total{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.ed-total b{font-size:22px}.ed-curve{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;height:84px}.ed-bar{display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;min-height:0;text-align:center;font-size:11px}.ed-bar-fill{background:var(--accent);border-radius:3px 3px 0 0;min-height:1px;opacity:.85}.ed-bar-n{color:var(--text)}.ed-bar-label{color:var(--muted);border-top:1px solid var(--line)}.ed-triggers{display:flex;gap:12px;flex-wrap:wrap;font-size:13px}.ed-list-head{display:flex;justify-content:space-between;align-items:center}.ed-group{display:flex;flex-direction:column;gap:2px}.ed-group-head{font-weight:600;font-size:13px;border-bottom:1px solid var(--line);padding:4px 0 2px}.ed-row{display:flex;align-items:center;gap:6px;padding:2px 4px;border-radius:6px;font-size:13px}.ed-row:hover{background:var(--panel-2)}.ed-cost{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:#3b4757}.ed-cost.c-red{background:#b8393a}.ed-cost.c-blue{background:#2e6bc4}.ed-cost.c-yellow{background:#c9a227;color:#1b1b1b}.ed-cost.c-green{background:#2f8f4e}.ed-cost.c-purple{background:#7c4bb8}.ed-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ed-no{color:var(--muted);font-size:11px;font-family:ui-monospace,monospace}.ed-count{display:inline-flex;align-items:center;gap:4px}.ed-count b{min-width:14px;text-align:center}.ed-count button{width:24px;height:24px;padding:0;line-height:1}.ed-thumbs{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0}.ed-msg{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:20;background:var(--panel-2);border:1px solid var(--accent);border-radius:8px;padding:8px 14px;box-shadow:0 4px 16px #00000080;font-size:14px;pointer-events:none}.ed-msg.warn{border-color:var(--accent-2);color:var(--accent-2)}@media(max-width:1200px){.editor{grid-template-columns:minmax(0,1fr) minmax(300px,380px)}.editor-search{grid-row:span 2}.editor-detail{grid-column:2;position:static;max-height:none}}@media(max-width:760px){.editor{grid-template-columns:minmax(0,1fr);padding:6px}.editor-col{position:static;max-height:none;overflow:visible}.editor-deck{order:1}.editor-search{order:2;grid-row:auto}.editor-detail{grid-column:auto;order:3}.ed-results{gap:6px 4px}}.status-hints{color:var(--muted);font-size:13px}.empty-slot.drop-target{border:2px dashed var(--accent);background:#2bb3a31f;color:var(--accent);font-size:12px;display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer;animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{background:#2bb3a340}}.idle-clock{padding:6px 10px;border-radius:6px;background:var(--panel-2);font-size:13px;color:var(--muted)}.idle-clock.warn{color:var(--danger);font-weight:600}.modal-backdrop{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px 28px;text-align:center;min-width:260px}.opp-summary{position:fixed;top:64px;left:50%;transform:translate(-50%);width:min(440px,calc(100vw - 32px));max-height:50vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--accent);border-radius:10px;box-shadow:0 8px 30px #00000080;z-index:50}.opp-summary-head{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line)}.opp-summary-head button{padding:2px 8px}.opp-summary-body{overflow-y:auto;padding:8px 12px}label.inline{display:inline-flex;align-items:center;gap:6px}.replay-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.replay-list li{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.replay-list .grow{flex:1;min-width:200px}.replay-controls input[type=range]{width:100%}.opp-hand-cards{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}.undo-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px;font-size:13px}.undo-bar.warn{color:var(--accent-2)}.opp-summary-head{cursor:move;-webkit-user-select:none;user-select:none;touch-action:none}.log-tools{display:flex;gap:8px;align-items:center;padding:6px 8px;font-size:13px;border-bottom:1px solid var(--line)}.log-tools button,.tabs .tab-tool{padding:2px 8px;font-size:12px}.tabs .tab-tool{margin-left:auto}.log-panel.collapsed,.tabs .tab-tool{flex:0 0 auto}.ed-fav{position:absolute;right:2px;top:2px;width:22px;height:22px;padding:0;line-height:1;border-radius:50%;background:#0009;color:var(--muted);opacity:0;transition:opacity .15s}.ed-result:hover .ed-fav,.ed-fav.on{opacity:1}.ed-fav.on{color:var(--accent-2)}@media(hover:none){.ed-fav{opacity:1}}.ed-odds table{width:100%;border-collapse:collapse;font-size:13px}.ed-odds th,.ed-odds td{padding:3px 6px;border-bottom:1px solid var(--line);text-align:left}.ed-odds td:not(:first-child),.ed-odds th:not(:first-child){text-align:right;white-space:nowrap}.ed-odds{max-height:320px;overflow-y:auto}.ed-draw-hand{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.scale-select{font-size:13px}:root[data-theme=light]{--bg: #eef1f5;--panel: #ffffff;--panel-2: #e6ebf1;--line: #c9d2dd;--text: #1c2430;--muted: #5d6b7c;--accent: #0f8f82;--accent-2: #c48a0c;--danger: #c93a33;--mine: #1f78c8;--theirs: #c45a1d}@media(prefers-color-scheme:light){:root:not([data-theme]){--bg: #eef1f5;--panel: #ffffff;--panel-2: #e6ebf1;--line: #c9d2dd;--text: #1c2430;--muted: #5d6b7c;--accent: #0f8f82;--accent-2: #c48a0c;--danger: #c93a33;--mine: #1f78c8;--theirs: #c45a1d}}.settings{position:relative}.settings summary{list-style:none;cursor:pointer;padding:6px 12px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2)}.settings summary::-webkit-details-marker{display:none}.settings-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:60;min-width:200px;display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #00000059}.settings-menu label{display:flex;justify-content:space-between;align-items:center;gap:8px}.public-rooms h2{margin-top:0}.lobby label.inline{display:inline-flex;flex-direction:row;align-items:center;gap:6px;margin:0}.room-section .row{flex-wrap:wrap}label.inline input[type=checkbox]{width:auto;flex:0 0 auto}.row label.inline input[type=checkbox]{min-width:0;flex:0 0 auto}.row label.inline select{flex:0 0 auto;min-width:0}.pile-button.has-action{border-color:var(--accent-2);box-shadow:0 0 8px var(--accent-2)}.mat{gap:8px;--side-col: 300px;--pile-col: 120px}.zone{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px 8px 8px}.zone-title{position:absolute;top:4px;left:10px;font-size:11px;color:var(--muted);letter-spacing:.05em;pointer-events:none}.mat-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:34px}.mat-status .spacer{flex:1}.chip{font-size:12px;padding:3px 10px;border-radius:20px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);white-space:nowrap}.chip-off{border-color:var(--danger);color:var(--danger)}.mat-status .idle-clock{padding:3px 10px;border-radius:20px;font-size:12px}.opp-hand-row{display:flex;justify-content:center;gap:3px;min-height:24px;flex-wrap:wrap}.mini-back{width:16px;height:22px;border-radius:3px;background:linear-gradient(135deg,#2b3d55,#1a2638);border:1px solid var(--line)}.mat .area{grid-template-columns:var(--pile-col) minmax(0,1fr) var(--side-col);gap:8px;padding:0;background:transparent;border:none}.mat .area.is-turn .zone{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}.mat .zones-left{display:flex;flex-direction:column;justify-content:center;gap:6px}.mat .zones-right{display:grid;grid-template-columns:1fr 1fr;align-content:center;gap:6px}.mat .zones-right .ap-area{grid-column:1 / -1;justify-content:center}.mat .lines{gap:6px}.mat .line{padding:18px 8px 6px;min-height:calc(var(--card-h) + 26px);justify-content:center}.mat .line-front{background:color-mix(in srgb,var(--accent) 7%,var(--panel))}.empty-slot{display:flex;align-items:center;justify-content:center}.empty-label{font-size:11px;color:color-mix(in srgb,var(--muted) 60%,transparent)}.empty-slot.drop-target .empty-label{display:none}.mid-row{display:grid;grid-template-columns:minmax(0,1fr) var(--side-col);gap:8px;align-items:stretch}.mid-row.no-action{grid-template-columns:minmax(0,1fr)}.mid-center{min-height:96px;display:flex;align-items:center}.mid-center .center-bar{justify-content:center;width:100%}.mid-action{padding:20px 6px 6px;max-height:46vh;overflow-y:auto;border-color:var(--accent-2)}.mid-action .prompt{background:transparent;border:none;padding:0 4px}.mat .hand{display:block;padding:20px 8px 8px}.hand-cards{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;min-height:var(--card-h)}.mat .opp-hand,.mat .center-bar .turn-tag{display:none}@media(max-width:1000px){.mat{--pile-col: 56px}.mat .area{grid-template-columns:var(--pile-col) minmax(0,1fr)}.mat .zones-right{grid-column:1 / -1;grid-template-columns:auto 1fr 1fr}.mat .zones-right .ap-area{grid-column:auto}.mid-row{grid-template-columns:minmax(0,1fr)}.mid-action{max-height:none}}@media(max-width:600px){.zone{padding:16px 4px 4px}.mat .line{padding:14px 4px 4px;min-height:calc(var(--card-h) + 18px)}.mid-action{position:sticky;bottom:0;z-index:5;box-shadow:0 -4px 16px #00000080}.mat-status .chip{display:none}}.mini-backs{display:inline-flex;gap:2px;margin-left:6px;vertical-align:middle}.mini-backs .mini-back{width:9px;height:13px;border-radius:2px}.mid-center{min-height:64px}.mat .zones-left .pile{padding:2px}.mat .zones-left .pile-count{font-size:20px}.lobby-cols,.lobby-col{display:flex;flex-direction:column;gap:20px}@media(min-width:1100px){.lobby{max-width:1180px}.lobby-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}}@media(max-width:600px){header button,header .settings summary{padding:4px 8px;font-size:13px}}.editor{grid-template-columns:250px minmax(340px,440px) minmax(0,1fr)}.editor-decks{order:0}.ed-decks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.ed-decks li{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:8px;overflow:hidden}.ed-decks li.on{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.ed-deck-item{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:none;border-radius:0;background:var(--panel-2);text-align:left;padding:6px 10px}.ed-deck-name{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ed-deck-count{font-size:12px;color:var(--muted)}.ed-deck-count.ok{color:var(--accent)}.ed-deck-del{border:none;border-left:1px solid var(--line);border-radius:0;padding:0 10px;color:var(--muted)}.ed-deck-del:hover{color:var(--danger)}.ed-samples summary{cursor:pointer;padding:4px 0}.ed-samples ul{list-style:none;margin:4px 0 0;padding:0;max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.ed-samples li button{width:100%;text-align:left;font-size:13px;padding:4px 8px}.ed-deckname{flex:1;font-size:16px;font-weight:600}.ed-total-badge{flex:0 0 auto;padding:4px 12px;border-radius:20px;border:1px solid var(--danger);color:var(--danger);font-weight:700}.ed-total-badge.ok{border-color:var(--accent);color:var(--accent)}.ed-total-badge.over{background:var(--danger);color:#fff}.chips{display:flex;flex-wrap:wrap;gap:4px;align-items:center;width:100%}.chips-label{font-size:12px;color:var(--muted);width:36px}.chip-btn{padding:3px 12px;border-radius:20px;font-size:13px}.chip-btn.on{background:var(--accent);border-color:var(--accent);color:#06201d}.chip-btn.color-red:before,.chip-btn.color-blue:before,.chip-btn.color-yellow:before,.chip-btn.color-green:before,.chip-btn.color-purple:before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:0}.chip-btn.color-red:before{background:#e5534b}.chip-btn.color-blue:before{background:#3d8bfd}.chip-btn.color-yellow:before{background:#f2c14e}.chip-btn.color-green:before{background:#3fb950}.chip-btn.color-purple:before{background:#a371f7}.ed-results-head{flex-wrap:nowrap}.ed-slist{display:flex;flex-direction:column;gap:4px}.ed-srow{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto 24px auto;align-items:center;gap:6px;padding:4px 6px;border-radius:8px;border:1px solid transparent}.ed-srow:hover{background:var(--panel-2)}.ed-srow.in-deck{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.ed-srow .card-slot-sm,.ed-srow .card-sm{width:44px;height:62px}.ed-srow-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ed-srow-sub{font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px;align-items:center}.ed-srow button{padding:2px 9px}.ed-srow-count{text-align:center;font-weight:700}.ed-fav-inline{color:var(--muted)}.ed-fav-inline.on{color:var(--accent-2)}@media(max-width:1200px){.editor{grid-template-columns:minmax(320px,400px) minmax(0,1fr)}.editor-deck{grid-column:1;grid-row:1;position:static;max-height:none}.editor-decks{grid-column:1;grid-row:2;position:static;max-height:none}.editor-search{grid-column:2;grid-row:1 / span 2}}@media(max-width:760px){.editor{grid-template-columns:minmax(0,1fr)}.editor-decks,.editor-deck,.editor-search{grid-column:auto;grid-row:auto}.editor-decks{display:contents}.ed-decklist,.editor-decks>.detail{min-width:0}.ed-decklist{order:0}.editor-deck{order:1}.editor-search{order:2}.editor-decks>.detail{order:3}}html:has(.app.editor-mode){scrollbar-gutter:stable}.topnav{display:flex;gap:2px;margin-left:12px}.topnav button{background:transparent;border:none;border-radius:0;border-bottom:2px solid transparent;padding:8px 12px;color:var(--muted)}.topnav button:hover{color:var(--text)}.topnav button.on{color:var(--text);font-weight:700;border-bottom-color:var(--accent)}.lobby{max-width:1180px}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 14%,var(--panel)),var(--panel))}.hero h1{margin:0 0 4px}.hero p{margin:0}.lobby .hero-name{min-width:260px}.deck-pick select{flex:3}.deck-text summary{cursor:pointer;color:var(--muted);font-size:14px;margin-bottom:8px}.deck-text textarea{width:100%}.mode-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}@media(max-width:1200px){.mode-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.x-follow,.disclaimer a{color:var(--accent)}.x-follow{font-size:13px;margin-right:8px;white-space:nowrap}.match-notify{font-size:12px;color:var(--muted)}.match-waiting{font-size:13px;color:var(--muted)}.match-waiting.has{color:var(--accent);font-weight:700}.match-active{display:flex;flex-direction:column;gap:8px}.match-status{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border-radius:8px;background:color-mix(in srgb,var(--accent) 15%,var(--panel));font-weight:700}.match-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);animation:match-pulse 1.2s ease-in-out infinite}@keyframes match-pulse{50%{opacity:.25}}.lobby .mode-tile{display:flex;flex-direction:column;gap:10px}.mode-tile h2{margin:0}.mode-tile p{margin:0;font-size:13px}.tile-options{display:flex;flex-direction:column;gap:8px;flex:1}.tile-options select,.tile-options input:not([type=checkbox]){width:100%}.tile-action{margin-top:auto}button.tile-action{width:100%;padding:10px;font-size:16px}.code-input{font-size:22px;letter-spacing:.3em;text-align:center;font-family:ui-monospace,monospace;text-transform:uppercase}@media(max-width:900px){.mode-tiles{grid-template-columns:minmax(0,1fr)}}.room-page{display:grid;grid-template-columns:minmax(0,640px) minmax(260px,340px);justify-content:center;align-items:start;gap:16px;padding:32px 16px;width:100%;box-sizing:border-box}.room-page.solo{grid-template-columns:minmax(0,640px)}.room-main{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px}.room-side{min-height:320px;max-height:70vh;display:flex;flex-direction:column}.room-side .log-panel{flex:1;min-height:0}.invite-card{display:flex;flex-direction:column;align-items:center;gap:10px}.invite-card p{margin:0}.room-seats{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.seat-card{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.seat-card.ready{border-color:var(--accent)}.seat-card.empty{border-style:dashed;justify-content:center}.seat-name{font-size:18px;font-weight:700;overflow-wrap:anywhere}.seat-deck{font-size:14px}.room-deck{width:100%;display:flex;flex-direction:column;align-items:center;gap:6px}.room-deck label{width:min(100%,420px);display:flex;gap:8px;align-items:center}.room-deck select{flex:1;min-width:0}.room-ready{display:flex;flex-direction:column;align-items:center;gap:8px}.room-ready button.big{font-size:18px;padding:10px 36px}.room-buttons{justify-content:center}@media(max-width:760px){.room-page{grid-template-columns:minmax(0,1fr);padding:12px}.room-main{padding:16px 12px}.room-side{max-height:50vh}}.big-code{font-size:48px;font-weight:800;letter-spacing:.25em;font-family:ui-monospace,monospace;color:var(--accent-2);padding-left:.25em}.waiting-card p{margin:0;color:var(--muted)}.chips-row{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.waiting-dots{display:flex;gap:6px}.waiting-dots span{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:blink 1.2s infinite ease-in-out}.waiting-dots span:nth-child(2){animation-delay:.2s}.waiting-dots span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.2}40%{opacity:1}}.library{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:10px;padding:10px;align-items:start}.library-detail{position:sticky;top:10px}@media(max-width:900px){.library{grid-template-columns:minmax(0,1fr)}.library-detail{position:static;order:-1}}@media(max-width:600px){.topnav button{padding:6px 8px;font-size:13px}.big-code{font-size:36px}}.lobby section.hero{flex-direction:row;align-items:flex-end;justify-content:space-between}.lobby section.hero>div{flex:1 1 320px}.lobby .hero-name{flex:0 1 300px}.tile-options label.inline{white-space:nowrap}.tile-options label.inline select{flex:1}.waiting-room{align-items:flex-start}.waiting-card{height:auto}.app.in-game main{min-height:100dvh}.game-controls{display:inline-flex;align-items:center;gap:6px}.game-controls button,.game-controls summary{padding:3px 10px;font-size:13px}.conn-dot{width:9px;height:9px;border-radius:50%;background:var(--danger)}.conn-dot.on{background:var(--accent)}.game-menu .settings-menu{min-width:230px}.choice-overlay{position:fixed;inset:0;z-index:80;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:16px}.choice-dialog{width:min(980px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;background:var(--panel)!important;border:1px solid var(--accent-2)!important;border-radius:12px;padding:16px!important;box-shadow:0 12px 40px #00000080}.choice-dialog .option-cards{justify-content:center;gap:10px}.choice-dialog .prompt-title{font-size:17px}.zoom-backdrop{z-index:120}.zoom{display:flex;gap:16px;align-items:flex-start;max-width:min(900px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}.zoom-img{width:min(360px,42vw);border-radius:10px;flex:0 0 auto}.zoom-noimg{aspect-ratio:5 / 7;display:grid;place-items:center;background:var(--panel-2)}.zoom-text{flex:1;min-width:220px;display:flex;flex-direction:column;gap:10px}@media(max-width:600px){.zoom{flex-direction:column;align-items:center}.zoom-img{width:min(300px,80vw)}}.mat .card{animation:card-in .28s ease-out}@keyframes card-in{0%{opacity:0;transform:scale(.85) translateY(6px)}}.mat .card.rested{animation:none}.mat{position:relative}.flash{position:absolute;inset:0;pointer-events:none;z-index:40;border-radius:10px;animation:flash .9s ease-out forwards}.flash-hurt{box-shadow:inset 0 0 80px #e5534bbf}.flash-hit{box-shadow:inset 0 0 60px #f2c14e8c}@keyframes flash{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.mat .card,.flash,.empty-slot.drop-target,.waiting-dots span{animation:none}}.choice-dialog{display:flex;flex-direction:column;gap:10px}.choice-dialog .card-slot-md,.choice-dialog .card-md{width:130px;height:181px}@media(max-width:600px){.choice-dialog .card-slot-md,.choice-dialog .card-md{width:92px;height:128px}}.bp,.card-badge,.ap-card{color:#f0f4f8}.bp.up{color:#7ee787}.bp.down{color:#ff7b72}@media(max-width:1000px)and (orientation:landscape)and (min-width:640px){:root{--card-w: calc(50px * var(--ui-scale));--card-h: calc(70px * var(--ui-scale))}.mat{--pile-col: 64px;--side-col: 200px;gap:4px}.mat .area{grid-template-columns:var(--pile-col) minmax(0,1fr) var(--side-col)}.mat .zones-right{grid-column:auto;grid-template-columns:1fr 1fr}.mat .zones-right .ap-area{grid-column:1 / -1}.mid-row{grid-template-columns:minmax(0,1fr) var(--side-col)}.mid-action{max-height:60vh;position:relative;box-shadow:none}.zone{padding:15px 4px 4px}.zone-title{font-size:10px;top:2px}.mat .line{padding:13px 4px 3px;min-height:calc(var(--card-h) + 16px)}.mid-center{min-height:48px}.mat-status .chip{display:inline-block}.ap-card{width:24px;height:32px;font-size:9px}.mat .zones-left .pile-count{font-size:16px}}.hand-cards:empty{display:none}.result-banner{width:100%;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px}.result-text{font-size:30px;font-weight:800;letter-spacing:.08em}.result-banner.won .result-text{color:var(--accent-2);text-shadow:0 0 18px color-mix(in srgb,var(--accent-2) 60%,transparent)}.result-banner.lost .result-text{color:var(--muted)}:root[data-theme=light] .token{background:#dfe6ee;color:#1c2430}:root[data-theme=light] .token.trigger{background:#f5e3b8;color:#6b4508}@media(prefers-color-scheme:light){:root:not([data-theme]) .token{background:#dfe6ee;color:#1c2430}:root:not([data-theme]) .token.trigger{background:#f5e3b8;color:#6b4508}}@media(max-width:600px){.settings-menu{position:fixed;left:8px;right:8px;top:52px;min-width:0}}.settings-menu label.inline{justify-content:flex-start}.art-picker{position:relative;display:inline-flex}.art-picker.open{z-index:30}.art-btn{padding:1px 7px;font-size:11px;border-radius:20px;color:var(--muted)}.art-btn.on{color:var(--accent-2);border-color:var(--accent-2)}.art-pop{position:absolute;right:0;top:calc(100% + 4px);z-index:30;display:flex;gap:6px;padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #0006}.art-choice{display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px;font-size:11px}.art-choice.on{border-color:var(--accent-2)}.ed-thumbs .ed-result .art-picker{position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.ed-thumbs .art-btn{background:#000000bf;color:#f0f4f8}.detail-variants{display:flex;gap:6px;flex-wrap:wrap}.detail-variant{display:flex;flex-direction:column;align-items:center;gap:2px;padding:3px;font-size:11px}.detail-variant img{width:48px;height:67px;object-fit:cover;border-radius:4px;background:var(--panel-2)}.cost-badge{position:absolute;top:3px;left:3px;display:flex;gap:2px;align-items:center;padding:1px 3px;border-radius:6px;background:#000000c7;color:#f0f4f8;font-weight:800;font-size:12px;line-height:1;pointer-events:none}.cost-energy{min-width:17px;height:17px;border-radius:50%;display:grid;place-items:center;font-size:11px;color:#fff;background:#6b7787;box-shadow:inset 0 0 0 1.5px #ffffff8c}.cost-energy.c-red{background:#d9443c}.cost-energy.c-blue{background:#2f7fe0}.cost-energy.c-yellow{background:#d8a20f}.cost-energy.c-green{background:#2f9e47}.cost-energy.c-purple{background:#8a55d8}.cost-ap{font-size:10px;padding:0 2px;color:#ffd76a}.card-slot-lg,.card-lg{width:var(--hand-w, 118px);height:var(--hand-h, 164px)}.detail-image{display:block;padding:0;border:none;background:none;margin:0 auto 6px;cursor:zoom-in}.detail-image img{display:block;max-width:100%;max-height:38vh;border-radius:10px;box-shadow:0 6px 18px #00000059}@media(min-width:1001px){.app.in-game{--card-h: calc(clamp(60px, calc((100dvh - 310px) / 5.45), 118px) * var(--ui-scale));--card-w: calc(var(--card-h) * .716);--hand-h: calc(var(--card-h) * 1.32);--hand-w: calc(var(--hand-h) * .716)}.app.in-game main{min-height:0;height:100dvh}.app.in-game .table{height:100dvh;min-height:0}.app.in-game .side{height:100dvh}.table .mat{display:grid;height:100dvh;overflow:auto;gap:6px;padding:8px 10px;align-content:start;grid-template-columns:78px max-content minmax(150px,190px) minmax(240px,1fr);grid-template-rows:auto auto auto minmax(44px,auto) auto 1fr;grid-template-areas:"status status status status" "ohand  ohand  ohand  action" "opile  olines ozones action" "mid    mid    mid    action" "mpile  mlines mzones action" "hand   hand   hand   hand"}.table .mat.no-action{grid-template-columns:78px minmax(max-content,1fr) minmax(150px,190px);grid-template-areas:"status status status" "ohand  ohand  ohand" "opile  olines ozones" "mid    mid    mid" "mpile  mlines mzones" "hand   hand   hand"}.table .mat>.mat-status{grid-area:status}.table .mat>.opp-hand-row{grid-area:ohand}.table .mat .area,.table .mat .mid-row{display:contents}.table .mat .area-opp>.zones-left{grid-area:opile}.table .mat .area-opp>.lines{grid-area:olines}.table .mat .area-opp>.zones-right{grid-area:ozones}.table .mat .area-me>.zones-left{grid-area:mpile}.table .mat .area-me>.lines{grid-area:mlines}.table .mat .area-me>.zones-right{grid-area:mzones}.table .mat .mid-center{grid-area:mid;min-height:44px}.table .mat .mid-action{grid-area:action;max-height:none;min-height:0;overflow-y:auto}.table .mat>.hand{grid-area:hand;min-height:0;overflow:hidden}.table .mat .line{padding:17px 6px 4px;min-height:calc(var(--card-h) + 22px);justify-content:flex-start;gap:5px}.table .mat .lines{gap:4px}.table .mat .zones-right{grid-template-columns:1fr 1fr;align-content:center}.table .mat .zones-right .pile{padding:2px}.table .mat .zones-right .pile-count,.table .mat .zones-left .pile-count{font-size:18px}.table .mat .ap-card{width:26px;height:36px;font-size:10px}.table .mat .hand-cards{gap:8px;min-height:var(--hand-h);align-items:flex-start}.table .mat .zone{padding:17px 6px 5px}.table .mat .zone-title{top:3px}.table .mat .card-md .bp{font-size:11px}.table .mat .card-md .card-badge{font-size:10px}}@media(min-width:1001px){.app.in-game{--card-h: calc(clamp(60px, calc((100dvh - 300px) / 5.45), 150px) * var(--ui-scale))}.table .mat{grid-template-columns:78px max-content minmax(150px,190px) minmax(260px,440px);justify-content:center}.table .mat>.hand{display:flex;flex-direction:column}.table .mat>.hand .hand-cards{flex:1;align-items:center}}.prompt-modal-backdrop{position:fixed;inset:0;z-index:90;background:#00000080;display:flex;align-items:center;justify-content:center;padding:16px}.prompt.prompt-modal{width:min(760px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;background:var(--panel);border:1px solid var(--accent-2);border-radius:14px;padding:18px 20px;gap:12px;box-shadow:0 16px 48px #0000008c;animation:pop-in .18s ease-out}.prompt-modal .prompt-title{font-size:18px}.prompt-modal .buttons button{padding:8px 16px;font-size:15px}.prompt-modal .option-cards{justify-content:center;gap:10px}.prompt-modal-tools{justify-content:flex-end;border-top:1px solid var(--line);padding-top:8px}.prompt-modal-tools button{font-size:12px!important;padding:3px 10px!important;color:var(--muted)}@keyframes pop-in{0%{opacity:0;transform:scale(.94)}}.mid-center{flex-wrap:wrap;gap:8px}.mid-prompt{flex:1 1 100%;display:flex;justify-content:center}.prompt.prompt-float{width:min(820px,100%);background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:8px 14px;gap:6px;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center}.prompt.prompt-float.my-turn{border-color:var(--accent-2);box-shadow:0 0 0 1px var(--accent-2),0 8px 26px #0006;animation:pop-in .18s ease-out}.prompt-float .prompt-title{flex:1 1 100%;text-align:center;font-size:15px}.prompt-float .buttons,.prompt-float .activations,.prompt-float .hint{justify-content:center}.prompt-float>*{max-width:100%}.toast-float{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:130;background:var(--panel);box-shadow:0 8px 24px #00000073;padding:8px 14px;font-size:14px}.side .opp-summary{position:static;transform:none;width:auto;max-height:34vh;box-shadow:none}.side .opp-summary-head{cursor:default}@media(min-width:1001px){.app.in-game{--card-h: calc(clamp(60px, calc((100dvh - 330px) / 5.45), 150px) * var(--ui-scale))}.table .mat{grid-template-columns:78px max-content minmax(150px,190px);grid-template-rows:auto auto auto minmax(44px,auto) auto 1fr;grid-template-areas:"status status status" "ohand  ohand  ohand" "opile  olines ozones" "mid    mid    mid" "mpile  mlines mzones" "hand   hand   hand"}.table .mat .mid-center{padding:16px 8px 6px}}@media(min-width:1001px){.app.in-game .table{grid-template-columns:minmax(0,1fr) clamp(340px,30vw,520px)}}@media(min-width:1001px){.app.in-game .prompt-modal-backdrop{right:clamp(340px,30vw,520px)}}@media(min-width:1001px){.table .mat>.hand{container-type:size}.table .mat>.hand .card-slot-lg,.table .mat>.hand .card-lg{height:min(var(--hand-h),calc(100cqh - 30px));width:calc(min(var(--hand-h),calc(100cqh - 30px))*.716)}}@media(min-width:1001px){.table .mat .mid-center{contain:inline-size;min-width:0}.prompt.prompt-float{width:100%;max-width:820px}}@media(min-width:1001px){.table .mat>.mat-status,.table .mat>.opp-hand-row{contain:inline-size;min-width:0}}@media(min-width:1001px){.table .mat{grid-template-columns:minmax(0,1fr) 78px max-content minmax(150px,190px) minmax(0,1fr);justify-content:stretch;grid-template-areas:"status status status status status" "ohand  ohand  ohand  ohand  ohand" ".      opile  olines ozones ." "mid    mid    mid    mid    mid" ".      mpile  mlines mzones ." "hand   hand   hand   hand   hand"}.table .mat>.hand .hand-cards{flex-wrap:nowrap;overflow-x:auto;justify-content:safe center}}@media(min-width:1001px){.app.in-game{--card-h: calc(clamp(56px, calc((100dvh - 350px) / 5.35), 150px) * var(--ui-scale))}.table .mat>.mat-status{flex-wrap:nowrap;overflow:hidden}.table .mat>.mat-status .status-hints{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table .mat>.mat-status .spacer{display:none}.table .mat>.mat-status .turn-tag,.table .mat>.mat-status .chip,.table .mat>.mat-status .game-controls{flex:0 0 auto}}@media(max-width:1000px){.app.in-game{--hand-h: calc(var(--card-h) * 1.3);--hand-w: calc(var(--hand-h) * .716)}.mat .hand .hand-cards{flex-wrap:nowrap;overflow-x:auto;justify-content:safe center}}@media(max-width:1000px){.mid-row{grid-template-columns:minmax(0,1fr)!important}}.phase-track{display:inline-flex;gap:2px;font-size:11px}.phase-step{padding:2px 7px;border-radius:20px;color:var(--muted);background:var(--panel-2);opacity:.6}.phase-step.done{opacity:.85}.phase-step.now{opacity:1;background:var(--accent);color:#06201d;font-weight:700}.energy-chips{display:flex;flex-wrap:wrap;gap:3px;justify-content:center;align-items:center;padding:3px 0}.energy-chips .pile-label{flex:1 1 100%;text-align:center}.life-pile{position:relative}.life-stack{position:relative;height:34px;width:26px;margin:0 auto 2px}.life-card{position:absolute;left:0;width:26px;height:14px;border-radius:3px;background:linear-gradient(135deg,#2c6d65,#1a3f3b);border:1px solid rgba(255,255,255,.25)}.battle-panel{display:flex;align-items:center;gap:18px;justify-content:center;padding:4px 8px}.battle-side{display:flex;flex-direction:column;align-items:center;gap:4px}.battle-label{font-size:12px;color:var(--muted)}.battle-vs{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:26px;font-weight:900;color:var(--accent-2);letter-spacing:.06em}.battle-odds{font-size:11px;font-weight:700;padding:1px 8px;border-radius:20px;background:var(--panel-2)}.battle-odds.win{color:var(--accent)}.battle-odds.lose{color:var(--danger)}.battle-player{width:var(--card-w);height:var(--card-h);border:2px dashed var(--danger);border-radius:8px;display:grid;place-items:center;color:var(--danger);font-weight:800}.battle-panel{flex-wrap:wrap;gap:10px;padding:4px 12px;border-radius:10px;background:color-mix(in srgb,var(--accent-2) 12%,var(--panel-2));border:1px solid color-mix(in srgb,var(--accent-2) 45%,transparent);font-size:14px}.battle-side{flex-direction:row;gap:4px}.battle-bp{font-size:18px;color:var(--text)}.battle-vs{flex-direction:row;font-size:18px}.battle-direct{color:var(--danger)}.phase-track{flex:0 0 auto}.phase-step{white-space:nowrap}@media(min-width:1001px){.table .mat>.mat-status .status-hints{min-width:9em}}.card-tags{position:absolute;right:2px;bottom:2px;display:flex;flex-direction:column;align-items:flex-end;gap:1px;pointer-events:none}.card-tag{font-size:10px;font-weight:800;line-height:1.2;padding:0 3px;border-radius:3px;background:#000c;color:#f0f4f8}.card-tag.tag-impact{background:#b7432f}.card-tag.tag-damage{background:#a3254f}.card-tag.tag-snipe{background:#2f6fb7}.card-tag.tag-impactNullify{background:#5b6b7d}.card-tag.tag-cantAttack,.card-tag.tag-cantBlock{background:#444;color:#ffb4ae}.pile-label{word-break:keep-all}.bp~.card-tags{bottom:20px}.card.rested .card-tags{transform:rotate(-90deg);transform-origin:bottom right}.drag-wrap[draggable=true]{cursor:grab}.drag-wrap[draggable=true]:active{cursor:grabbing}.mat .line.drop-line{outline:2px dashed var(--accent);outline-offset:-2px;background:color-mix(in srgb,var(--accent) 14%,var(--panel))}.drop-wrap.drop-raid .card{outline:2px solid var(--accent-2);box-shadow:0 0 12px var(--accent-2)}.drop-wrap.drop-replace .card{outline:2px dashed var(--danger)}.mat .line.choosing-remove{outline:2px dashed var(--danger);outline-offset:-2px}.line-full-hint{position:absolute;top:2px;left:50%;transform:translate(-50%);z-index:3;padding:1px 8px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;white-space:nowrap;pointer-events:none}.log-line{border-left:3px solid transparent;padding-left:6px}.log-line.log-turn{border-left:none;padding:4px 0 2px;font-weight:700}.log-line.log-phase{opacity:.6;font-size:12px}.log-line.log-play{border-left-color:var(--accent)}.log-line.log-battle{border-left-color:var(--danger)}.log-line.log-effect{border-left-color:#a371f7}@media(min-width:1001px){.mid-prompt{flex:1 1 320px}.mid-center .center-bar{width:auto;flex:0 1 auto}.prompt.prompt-float:not(.my-turn){padding:4px 12px;background:transparent;border-color:transparent}.prompt.prompt-float:not(.my-turn) .prompt-title{font-size:13px;color:var(--muted)}.table .mat>.mat-status .status-hints{min-width:0}}@media(min-width:1001px)and (max-width:1500px){.table .mat>.mat-status .status-hints{display:none}}.announcer{position:absolute;top:44px;left:50%;transform:translate(-50%);z-index:45;display:flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;border-radius:12px;background:color-mix(in srgb,var(--panel) 92%,transparent);border:1px solid var(--theirs);box-shadow:0 10px 30px #00000073;cursor:pointer;animation:announce-in .22s ease-out;max-width:min(560px,90%)}.announcer-text{font-weight:700;font-size:15px}.announcer-more{font-size:12px;color:var(--muted)}@keyframes announce-in{0%{opacity:0;transform:translate(-50%,-10px)}}.drop-wrap.recent .card{outline:2px solid var(--theirs);box-shadow:0 0 14px var(--theirs);animation:recent-glow 1.2s ease-in-out 2}@keyframes recent-glow{50%{box-shadow:0 0 4px var(--theirs)}}.damage-float{position:absolute;top:-6px;right:-4px;font-size:22px;font-weight:900;color:var(--danger);text-shadow:0 2px 6px rgba(0,0,0,.6);pointer-events:none;animation:damage-up 1.4s ease-out forwards}@keyframes damage-up{0%{opacity:0;transform:translateY(8px) scale(.8)}15%{opacity:1;transform:translateY(0) scale(1.15)}to{opacity:0;transform:translateY(-22px) scale(1)}}.mat .hand .card.clickable{transition:transform .15s ease-out,box-shadow .15s}.mat .hand .card.clickable:hover{transform:translateY(-8px);z-index:2}@media(prefers-reduced-motion:reduce){.announcer,.drop-wrap.recent .card,.damage-float{animation:none}.mat .hand .card.clickable:hover{transform:none}}.mat .hand .hand-cards{padding-top:10px}@media(min-width:1001px){.table .mat>.announcer{position:static;transform:none;grid-row:3;grid-column:5;align-self:center;justify-self:center;flex-direction:column;text-align:center;padding:8px;max-width:100%;animation:announce-side .22s ease-out}.table .mat>.announcer .announcer-text{font-size:13px}}@keyframes announce-side{0%{opacity:0;transform:translate(10px)}}.mat>.mat-status,.table .mat>.mat-status{overflow:visible;position:relative;z-index:95}.game-menu .settings-menu{z-index:120}.turn-splash{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);z-index:60;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 44px;border-radius:16px;background:color-mix(in srgb,var(--panel) 88%,transparent);border:2px solid var(--theirs);box-shadow:0 16px 50px #00000080;animation:splash 1.3s ease-out forwards}.turn-splash.mine{border-color:var(--accent)}.turn-splash-turn{font-size:13px;color:var(--muted)}.turn-splash-text{font-size:30px;font-weight:900;letter-spacing:.1em}.turn-splash.mine .turn-splash-text{color:var(--accent)}@keyframes splash{0%{opacity:0;transform:translate(-50%,-50%) scale(.85)}15%{opacity:1;transform:translate(-50%,-50%) scale(1)}75%{opacity:1}to{opacity:0}}.trigger-option{max-width:220px}.trigger-text{font-size:13px;text-align:left;display:flex;flex-direction:column;gap:4px;align-items:flex-start}@media(prefers-reduced-motion:reduce){.turn-splash{animation:none}}.card-slot.is-rested{display:flex;justify-content:center;align-items:center}.detail-under-cards{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.detail-mods{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--line);padding-top:6px;font-size:13px}.detail-mod{display:flex;gap:6px;flex-wrap:wrap}.log-line.has-card{cursor:pointer}.log-line.has-card:hover{background:var(--panel-2)}.ap-card.rested>span{display:inline-block;transform:rotate(-90deg)}.prompt.prompt-float:not(.my-turn) .prompt-title:after{content:"";display:inline-block;width:1.2em;text-align:left;animation:dots 1.4s steps(4,end) infinite}@keyframes dots{0%{content:""}25%{content:"．"}50%{content:"．．"}75%{content:"．．．"}}.drop-wrap.attacking-up .card-slot{animation:lunge-up .45s ease-out}.drop-wrap.attacking-down .card-slot{animation:lunge-down .45s ease-out}@keyframes lunge-up{40%{transform:translateY(-22px)}}@keyframes lunge-down{40%{transform:translateY(22px)}}@media(prefers-reduced-motion:reduce){.drop-wrap.attacking-up .card-slot,.drop-wrap.attacking-down .card-slot{animation:none}}@media(min-width:1001px){.app.in-game{--card-h: calc(clamp(56px, calc((100dvh - 250px) / 5.75), 150px) * var(--ui-scale));--hand-h: calc(var(--card-h) * 1.32)}.table .mat.main-phase{--hand-h: calc(var(--card-h) * 1.6)}.table .mat{grid-template-columns:minmax(0,1fr) 78px max-content minmax(150px,190px) minmax(220px,300px) minmax(0,1fr);grid-template-rows:auto auto auto auto 1fr;grid-template-areas:"status status status status status status" "ohand  ohand  ohand  ohand  ohand  ohand" ".      opile  olines ozones mid    ." ".      mpile  mlines mzones mid    ." "hand   hand   hand   hand   hand   hand"}.table .mat .mid-center{grid-area:mid;flex-direction:column;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;gap:8px;min-height:0;overflow-y:auto;padding:18px 8px 8px}.table .mat .mid-center .center-bar{flex-direction:column;align-items:stretch;width:100%}.table .mat .mid-prompt{flex:0 0 auto}.table .mat .prompt.prompt-float{max-width:none;padding:10px}.table .mat .prompt-float .buttons{flex-direction:column;align-items:stretch}.table .mat .prompt-float .buttons button{width:100%}.table .mat .battle-panel{flex-direction:column;gap:4px;text-align:center}.table .mat .revealed{flex-wrap:wrap;justify-content:center}.table .mat .mid-center>.announcer{position:static;transform:none;flex-direction:row;max-width:none;padding:6px;animation:announce-side .22s ease-out}.table .mat .mid-center>.announcer .announcer-text{font-size:13px}.app.in-game .table{grid-template-columns:minmax(0,1fr) clamp(280px,22vw,380px)}.app.in-game .prompt-modal-backdrop{right:clamp(280px,22vw,380px)}.app.in-game .side .detail-image img{max-height:26vh}}@media(min-width:1001px){.table .mat.main-phase{--hand-h: calc(var(--card-h) * 1.9)}}@media(min-width:1001px){.table .mat>.hand .card-slot-lg,.table .mat>.hand .card-lg{--fit-h: min(var(--hand-h), calc(100cqh - 30px) , calc((100cqw - 16px - (var(--hand-n, 1) - 1) * 6px) / var(--hand-n, 1) / .716));height:var(--fit-h);width:calc(var(--fit-h) * .716)}.table .mat>.hand .hand-cards{flex-wrap:nowrap}}.ap-card.has-art{padding:0;overflow:hidden;background:#1b232d}.ap-card.has-art img{width:100%;height:100%;object-fit:cover;display:block}@media(min-width:1001px){.table .mat .ap-card.has-art{width:34px;height:47px}}.ed-ap-head{display:flex;align-items:center;gap:10px}.ed-ap-current{flex:none;width:40px;height:56px;display:grid;place-items:center}.ed-ap-current img{width:100%;height:100%;object-fit:cover;border-radius:4px}.ed-ap-current .ap-card{width:40px;height:56px}.ed-ap-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ed-ap-info .hint{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ed-ap-head .buttons{flex:none}.ed-ap-title{display:flex;align-items:center;gap:8px;font-size:13px}.ed-ap-title select{flex:1;min-width:0}.ed-ap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px;max-height:240px;overflow-y:auto}.ed-ap-option{padding:2px;border:2px solid transparent;border-radius:6px;background:none;aspect-ratio:.716}.ed-ap-option img{width:100%;height:100%;object-fit:cover;border-radius:4px;display:block}.ed-ap-option.on{border-color:var(--accent)}.battle-cards{display:none}@media(min-width:1001px){.table .mat .mid-center .battle-cards{display:flex;align-items:center;justify-content:center;gap:10px;padding:4px 0 2px}.table .mat .battle-card{border-radius:8px;padding:3px}.table .mat .battle-card.attacker{box-shadow:0 0 0 2px var(--accent-2)}.table .mat .battle-card.defender{box-shadow:0 0 0 2px var(--danger)}.table .mat .battle-card .battle-player{font-size:14px}.table .mat .battle-cards-vs{font-size:22px;color:var(--accent-2)}}.mid-hints{display:none}@media(min-width:1001px){.table .mat>.mat-status .status-hints{display:none}.table .mat .mid-center>.mid-hints{display:flex;flex-direction:column;gap:3px;margin:auto 0 0;padding:8px 4px 0;list-style:none;border-top:1px dashed var(--line);font-size:12px;color:var(--muted)}.table .mat .mid-center>.mid-hints li:first-child{color:var(--text);font-weight:700}}.prompt-modal-tools .prompt-tools-left{margin-right:auto}.prompt-modal .prompt-main-buttons{justify-content:center}.prompt-modal .trigger-option .trigger-text.muted-text{color:var(--muted)}.prompt-modal{width:fit-content;min-width:min(420px,100%);max-width:min(760px,100%)}@media(min-width:1001px){.table .mat .lines .line{min-width:calc(4 * var(--card-h) + 3 * 5px + 12px);justify-content:center}}@media(min-width:1001px){.table .mat .ap-card,.table .mat .ap-card.has-art{width:calc(var(--card-w) * .46);height:calc(var(--card-h) * .46);font-size:12px}.table .mat .ap-area{gap:8px;justify-content:center}}@media(min-width:1001px){.table .mat .ap-area{gap:calc((var(--card-h) - var(--card-w)) * .46 + 6px)}}@media(min-width:1001px){.app.replay-mode{--header-h: 56px;--card-h: calc(clamp(56px, calc((100dvh - 250px - var(--header-h)) / 5.75), 150px) * var(--ui-scale));--card-w: calc(var(--card-h) * .716);--hand-h: calc(var(--card-h) * 1.32);--hand-w: calc(var(--hand-h) * .716)}.app.replay-mode>header{flex-wrap:nowrap;min-height:var(--header-h);box-sizing:border-box}.app.replay-mode main,.app.replay-mode .table,.app.replay-mode .table .mat,.app.replay-mode .side{height:calc(100dvh - var(--header-h));min-height:0}.app.replay-mode main{overflow:hidden}}@media(min-width:1001px){.app.replay-mode .table .mat{--hand-h: calc(var(--card-h) * 1.9)}}.mid-center .center-bar:empty{display:none}@media(max-width:1000px){.mat .mid-center{padding-top:20px}}.faceup-row{display:flex;flex-wrap:wrap;justify-content:center;gap:2px;margin-top:2px}.faceup-row .card-slot,.faceup-row .card{width:28px;height:39px}.faceup-row .card .bp,.faceup-row .card .card-tags{display:none}.life-option{display:flex;flex-direction:column;align-items:center;gap:2px}.life-option-no{font-size:12px;color:var(--muted)}.pile-button{position:relative;overflow:hidden}.pile-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%;opacity:.45;pointer-events:none}.pile-button .pile-count,.pile-button .pile-label{position:relative;text-shadow:0 1px 3px rgba(0,0,0,.9),0 0 6px rgba(0,0,0,.8)}.pile-button .pile-label{color:var(--text)}@media(min-width:1001px){.table .mat .zones-right .pile-button{min-height:calc(var(--card-h) * .72);display:flex;flex-direction:column;justify-content:flex-end}.table .mat .zones-right .pile-thumb{opacity:.6}}.drop-wrap[draggable=true]{cursor:grab}.drop-wrap.move-incoming .card{outline:2px dashed var(--accent);outline-offset:2px;opacity:.85}.mat .line.drop-event,.mat .mid-center.drop-event{outline:2px dashed var(--accent-2);outline-offset:-2px;background:color-mix(in srgb,var(--accent-2) 12%,var(--panel))}.mid-center{position:relative}.drop-event-label{position:absolute;inset:0;display:grid;place-items:center;font-size:20px;font-weight:700;color:var(--accent-2);background:color-mix(in srgb,var(--panel) 70%,transparent);pointer-events:none;border-radius:inherit}@media(min-width:901px){.app.library-mode{height:100dvh;min-height:0}.app.library-mode .library{height:100%;min-height:0;align-items:stretch}.app.library-mode .library-search,.app.library-mode .library-detail{min-height:0;overflow-y:auto;scrollbar-gutter:stable}.app.library-mode .library-detail{position:static}}.card,.card img,.zoom-img,.detail-image img,.detail-variant img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}@media(max-width:1000px)and (pointer:coarse){.app.in-game .side>.detail{display:none}}[data-touch-drag]{touch-action:pan-x;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.touch-drag-ghost{position:fixed;z-index:1000;pointer-events:none;opacity:.9;margin:0;filter:drop-shadow(0 8px 16px rgba(0,0,0,.6))}.touch-drag-source{opacity:.35}[data-touch-drag=any]{touch-action:none}.bug-report h2{margin:0}.bug-form{display:flex;flex-direction:column;gap:10px}.bug-form label{display:flex;flex-direction:column;gap:4px}.bug-form textarea,.bug-form input,.bug-form select{width:100%;box-sizing:border-box}.bug-cats{display:flex;flex-wrap:wrap;gap:6px}.bug-cats button.on{background:var(--accent);border-color:var(--accent);color:#062a26;font-weight:700}.bug-form .req{color:var(--accent-2);font-size:12px}.bug-cards{display:flex;flex-wrap:wrap;gap:6px}.bug-card{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 10px;border:1px solid var(--line);border-radius:999px;background:var(--panel-2);font-size:13px}.bug-card button{border:none;background:transparent;padding:0 6px}.bug-replay{align-items:flex-end;flex-wrap:wrap}.bug-replay label:not(.grow){width:120px}.hint.ok{color:var(--accent)}.report-card{align-self:flex-start;margin-top:6px;font-size:13px}.link-button{background:none;border:none;padding:0;color:var(--accent);text-decoration:underline;cursor:pointer}.consent-banner{position:fixed;left:50%;bottom:16px;transform:translate(-50%);width:min(720px,calc(100% - 32px));z-index:900;display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 16px;background:var(--panel);border:1px solid var(--accent);border-radius:10px;box-shadow:0 8px 24px #00000073;font-size:14px}.consent-banner>span{flex:1 1 320px}.changelog h2{margin:0}.changelog-entry+.changelog-entry{border-top:1px solid var(--line);padding-top:8px}.changelog-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.changelog-entry ul{margin:6px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:3px}.new-badge{font-size:12px;padding:1px 8px;border-radius:999px;background:var(--accent-2);color:#1a1206;vertical-align:middle}.version-label{white-space:nowrap}.detail-under{border-top:1px solid var(--line);padding-top:6px}.detail-under-cards{gap:8px}.detail-under-card{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px}button.card-badge.badge-btn{border:1px solid var(--accent);color:#fff;cursor:pointer;font:inherit;font-size:11px;font-weight:700;line-height:1.3;min-width:22px;min-height:18px;z-index:2}button.card-badge.badge-btn:hover{background:var(--accent);color:#062a26}@media(max-width:1000px){:is(.app.in-game,.app.replay-mode){--pile-col: 42px;--zone-col: 56px;--line-gap: 3px}:is(.app.in-game,.app.replay-mode) main{min-height:0}:is(.app.in-game,.app.replay-mode) .table .mat{display:grid;gap:4px;padding:4px 6px;height:var(--screen-h);box-sizing:border-box;overflow:hidden;align-content:stretch;grid-template-columns:var(--pile-col) minmax(0,1fr) var(--zone-col)}:is(.app.in-game,.app.replay-mode) .table .mat .area,:is(.app.in-game,.app.replay-mode) .table .mat .mid-row{display:contents}:is(.app.in-game,.app.replay-mode) .table .mat>.mat-status{grid-area:status}:is(.app.in-game,.app.replay-mode) .table .mat .area-opp>.zones-left{grid-area:opile}:is(.app.in-game,.app.replay-mode) .table .mat .area-opp>.lines{grid-area:olines}:is(.app.in-game,.app.replay-mode) .table .mat .area-opp>.zones-right{grid-area:ozones}:is(.app.in-game,.app.replay-mode) .table .mat .area-me>.zones-left{grid-area:mpile}:is(.app.in-game,.app.replay-mode) .table .mat .area-me>.lines{grid-area:mlines}:is(.app.in-game,.app.replay-mode) .table .mat .area-me>.zones-right{grid-area:mzones}:is(.app.in-game,.app.replay-mode) .table .mat .mid-center{grid-area:mid}:is(.app.in-game,.app.replay-mode) .table .mat>.hand{grid-area:hand}:is(.app.in-game,.app.replay-mode) .table .mat>.mat-status{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;min-width:0;overflow:hidden;font-size:12px}:is(.app.in-game,.app.replay-mode) .table .mat>.mat-status .phase-track,:is(.app.in-game,.app.replay-mode) .table .mat>.mat-status .status-hints,:is(.app.in-game,.app.replay-mode) .table .mat>.mat-status .chip .mini-backs{display:none}:is(.app.in-game,.app.replay-mode) .table .mat>.mat-status .turn-tag{font-size:12px;padding:3px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto}:is(.app.in-game,.app.replay-mode) .table .mat>.mat-status .chip,:is(.app.in-game,.app.replay-mode) .table .mat>.mat-status button,:is(.app.in-game,.app.replay-mode) .table .mat>.mat-status summary{font-size:12px;padding:3px 6px;white-space:nowrap}:is(.app.in-game,.app.replay-mode) .table .mat .lines{display:flex;flex-direction:column;gap:3px;min-width:0}:is(.app.in-game,.app.replay-mode) .table .mat .lines .line{min-width:0;min-height:0;padding:2px 3px;gap:var(--line-gap);justify-content:flex-start;flex-wrap:nowrap}:is(.app.in-game,.app.replay-mode) .table .mat .lines .line .zone-title,:is(.app.in-game,.app.replay-mode) .table .mat .zones-left .zone-title,:is(.app.in-game,.app.replay-mode) .table .mat .zones-right .zone-title,:is(.app.in-game,.app.replay-mode) .table .mat>.hand>.zone-title,:is(.app.in-game,.app.replay-mode) .table .mat .mid-center>.zone-title{display:none}:is(.app.in-game,.app.replay-mode) .table .mat .lines .card-slot-md.is-rested .card{transform:rotate(90deg) scale(.716)}:is(.app.in-game,.app.replay-mode) .table .mat .lines .empty-slot .empty-label{font-size:10px}:is(.app.in-game,.app.replay-mode) .table .mat .zones-left{display:flex;flex-direction:column;justify-content:space-around;gap:2px;padding:2px;min-width:0}:is(.app.in-game,.app.replay-mode) .table .mat .zones-left .pile{padding:1px}:is(.app.in-game,.app.replay-mode) .table .mat .zones-left .pile-count{font-size:15px;line-height:1.1}:is(.app.in-game,.app.replay-mode) .table .mat .zones-left .pile-label{font-size:10px}:is(.app.in-game,.app.replay-mode) .table .mat .zones-left .life-stack{display:none}:is(.app.in-game,.app.replay-mode) .table .mat .energy-chips{font-size:10px}:is(.app.in-game,.app.replay-mode) .table .mat .zones-right{display:flex;flex-direction:column;justify-content:space-around;gap:3px;padding:2px;min-width:0}:is(.app.in-game,.app.replay-mode) .table .mat .zones-right .ap-area{display:flex;flex-wrap:wrap;justify-content:center;gap:2px}:is(.app.in-game,.app.replay-mode) .table .mat .zones-right .ap-card{width:15px;height:21px;font-size:0}:is(.app.in-game,.app.replay-mode) .table .mat .zones-right .pile-button{min-height:0;padding:2px 1px}:is(.app.in-game,.app.replay-mode) .table .mat .zones-right .pile-count{font-size:15px;line-height:1.1}:is(.app.in-game,.app.replay-mode) .table .mat .zones-right .pile-label{font-size:10px}:is(.app.in-game,.app.replay-mode) .table .mat .mid-center{min-height:0;padding:2px 4px;font-size:12px}:is(.app.in-game,.app.replay-mode) .table .mat .mid-center .prompt-title{font-size:13px}:is(.app.in-game,.app.replay-mode) .table .mat .mid-center button{font-size:13px;padding:4px 10px}:is(.app.in-game,.app.replay-mode) .table .mat .mid-center .mid-hints{display:none}:is(.app.in-game,.app.replay-mode) .table .mat>.hand{min-height:0;padding:2px 4px;overflow:hidden}:is(.app.in-game,.app.replay-mode) .table .mat>.hand .hand-cards{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;justify-content:flex-start;gap:4px;height:100%;align-items:center}:is(.app.in-game,.app.replay-mode) .table .mat>.hand .card-slot-lg,:is(.app.in-game,.app.replay-mode) .table .mat>.hand .card-lg{width:var(--hand-w);height:var(--hand-h)}}@media(max-width:1000px)and (orientation:portrait){:is(.app.in-game,.app.replay-mode){--card-w: min(calc((100vw - var(--pile-col) - var(--zone-col) - 12px - 8px - 6px - 3 * var(--line-gap)) / 4), calc((var(--screen-h) - 150px) / 5.4 * .716));--card-h: calc(var(--card-w) / .716);--hand-h: calc(var(--card-h) * 1.15);--hand-w: calc(var(--hand-h) * .716)}:is(.app.in-game,.app.replay-mode) .table .mat{grid-template-rows:auto auto minmax(0,auto) auto minmax(0,1fr);grid-template-areas:"status status status" "opile  olines ozones" "mid    mid    mid" "mpile  mlines mzones" "hand   hand   hand"}}@media(max-width:1000px)and (orientation:landscape){:is(.app.in-game,.app.replay-mode){--card-h: calc((var(--screen-h) - 34px - 8px - 4 * 10px) / 4);--card-w: calc(var(--card-h) * .716);--hand-h: calc(var(--card-h) * 1.05);--hand-w: calc(var(--hand-h) * .716)}:is(.app.in-game,.app.replay-mode) .table .mat{grid-template-columns:var(--pile-col) calc(4 * var(--card-w) + 3 * var(--line-gap) + 10px) var(--zone-col) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) minmax(0,1fr);grid-template-areas:"status status status status" "opile  olines ozones mid" "mpile  mlines mzones hand"}:is(.app.in-game,.app.replay-mode) .table .mat>.hand .hand-cards{flex-wrap:wrap;overflow-y:auto;overflow-x:hidden;align-content:flex-start}:is(.app.in-game,.app.replay-mode) .table .mat .mid-center{overflow-y:auto}}.ap-summary{display:none}@media(max-width:1000px){:is(.app.in-game,.app.replay-mode) .table .mat .zones-right .ap-area{display:none}:is(.app.in-game,.app.replay-mode) .table .mat .zones-right .ap-summary{display:block;text-align:center;font-size:12px;font-weight:700;padding:3px 0;border-radius:6px;background:var(--panel-2);border:1px solid var(--line)}:is(.app.in-game,.app.replay-mode) .table .mat .lines .card-slot-md,:is(.app.in-game,.app.replay-mode) .table .mat .lines .card-slot-md.is-rested,:is(.app.in-game,.app.replay-mode) .table .mat .lines .empty-slot{width:var(--card-w);min-width:var(--card-w);height:var(--card-h);flex:0 0 auto}:is(.app.in-game,.app.replay-mode) .table .mat>.hand{container-type:size}:is(.app.in-game,.app.replay-mode) .table .mat>.hand .hand-cards{--fit-h: min( calc(100cqh - 10px) , calc(var(--card-h) * 1.6));--fit-w: calc(var(--fit-h) * .716);--overlap: min(4px, calc((100cqw - 10px - var(--hand-n) * var(--fit-w)) / max(var(--hand-n) - 1, 1)));flex-wrap:nowrap;overflow:visible;justify-content:center;gap:0;height:100%;align-items:center}:is(.app.in-game,.app.replay-mode) .table .mat>.hand .hand-cards>*+*{margin-left:var(--overlap)}:is(.app.in-game,.app.replay-mode) .table .mat>.hand .card-slot-lg,:is(.app.in-game,.app.replay-mode) .table .mat>.hand .card-lg{width:var(--fit-w);height:var(--fit-h)}}@media(max-width:1000px)and (orientation:landscape){:is(.app.in-game,.app.replay-mode) .table .mat>.hand .hand-cards{flex-wrap:nowrap;overflow:visible}}@media(max-width:1000px)and (orientation:portrait){:is(.app.in-game,.app.replay-mode){--phone-side: 60px;--card-w: min(calc((100vw - var(--phone-side) - 12px - 4px - 8px - 3 * var(--line-gap)) / 4), calc((var(--screen-h) - 150px) / 5.4 * .716))}:is(.app.in-game,.app.replay-mode) .table .mat{grid-template-columns:minmax(0,1fr) var(--phone-side);grid-template-rows:auto auto auto minmax(0,auto) auto auto minmax(0,1fr);grid-template-areas:"status status" "olines opile" "olines ozones" "mid    mid" "mlines mzones" "mlines mpile" "hand   hand"}:is(.app.in-game,.app.replay-mode) .table .mat .zones-left,:is(.app.in-game,.app.replay-mode) .table .mat .zones-right{justify-content:space-evenly}:is(.app.in-game,.app.replay-mode) .table .mat>.hand .hand-cards{--fit-h: min( calc(100cqh - 10px) , calc(var(--card-h) * 1.45))}}@media(max-width:1000px){:is(.app.in-game,.app.replay-mode) .table .mat .lines .empty-slot.drop-target{font-size:11px;line-height:1.2;padding:2px;text-align:center}}@media(max-width:1000px){:is(.app.in-game,.app.replay-mode){--screen-h: 100dvh}.app.replay-mode{--replay-bar-h: 96px;--screen-h: calc(100dvh - var(--replay-bar-h))}.app.replay-mode>header{display:none}.app.replay-mode .table{padding-bottom:var(--replay-bar-h)}.app.replay-mode .replay-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;height:var(--replay-bar-h);box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:4px 8px;background:var(--panel);border-top:1px solid var(--line);box-shadow:0 -4px 12px #00000059}.app.replay-mode .replay-bar input[type=range]{width:100%;margin:0}.app.replay-mode .replay-bar .hint{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app.replay-mode .replay-bar .buttons{display:flex;flex-wrap:nowrap;gap:4px;justify-content:space-between}.app.replay-mode .replay-bar .buttons button{flex:1 1 0;padding:4px 2px;font-size:13px;min-width:0}:is(.app.in-game,.app.replay-mode) .table .mat>.opp-hand-row{grid-area:ohand;display:flex;gap:2px;overflow-x:auto;min-height:0}:is(.app.in-game,.app.replay-mode) .table .mat>.opp-hand-row .card-slot-sm,:is(.app.in-game,.app.replay-mode) .table .mat>.opp-hand-row .card-sm{width:calc(var(--card-w) * .55);height:calc(var(--card-h) * .55);flex:0 0 auto}.app.in-game .table .mat.spectating>.hand .hand-cards{--fit-h: min( calc(100cqh - 10px) , calc(var(--card-h) * .8))}}@media(max-width:1000px)and (orientation:portrait){:is(.app.in-game,.app.replay-mode) .table .mat{grid-template-rows:auto auto auto auto minmax(0,auto) auto auto minmax(0,1fr);grid-template-areas:"status status" "ohand  ohand" "olines opile" "olines ozones" "mid    mid" "mlines mzones" "mlines mpile" "hand   hand"}}@media(max-width:1000px)and (orientation:landscape){:is(.app.in-game,.app.replay-mode) .table .mat{grid-template-rows:auto auto minmax(0,1fr) minmax(0,1fr);grid-template-areas:"status status status status" "opile  olines ozones ohand" "opile  olines ozones mid" "mpile  mlines mzones hand"}.app.replay-mode{--replay-bar-h: 84px}}@media(max-width:1000px)and (orientation:portrait){.app.in-game .table .mat.spectating{height:auto}.app.in-game .table .mat.spectating>.hand{height:calc(var(--card-h) * .8 + 16px)}}.replay-bar{display:flex;flex-direction:column;gap:6px}@media(min-width:1001px){.replay-close{display:none}}.disclaimer-box{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 16px;font-size:13px;color:var(--muted)}.disclaimer-box summary{cursor:pointer;color:var(--text);font-weight:700}.disclaimer-body h3{font-size:14px;color:var(--text);margin:14px 0 4px}.disclaimer-body p{margin:4px 0;line-height:1.7}.disclaimer-body a{color:var(--accent)}.tutorial-select{max-width:980px;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:18px}.tutorial-select h2,.tutorial-select h3{margin:0 0 6px}.tutorial-select p{margin:0 0 8px}.tutorial-themes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tutorial-theme{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px;text-align:center;background:var(--panel)}.tutorial-theme img{width:min(140px,100%);aspect-ratio:.716;object-fit:cover;border-radius:6px;margin-bottom:4px}.tutorial-theme.on{background:var(--panel-2);color:var(--text);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}.tutorial-theme-title{font-weight:700}.tutorial-theme-sub,.tutorial-theme-char{font-size:12px;color:var(--muted)}.tutorial-lessons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.tutorial-lesson{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.tutorial-lesson:disabled{opacity:.45;cursor:default}.tutorial-lesson-no{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--panel-2);font-weight:700}.tutorial-lesson-body{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.tutorial-lesson-title{font-weight:700}.tutorial-lesson-summary{font-size:13px;color:var(--muted)}.tutorial-done{flex:none;color:var(--accent);font-size:20px;font-weight:700}@media(max-width:600px){.tutorial-themes{gap:6px}.tutorial-theme{padding:6px}.tutorial-theme-sub{display:none}}.lobby section.tutorial-banner,.tutorial-banner{display:flex;flex-direction:row;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 40px 10px 12px;border:1px solid var(--accent);border-radius:8px;background:var(--panel);text-align:left;position:relative}.tutorial-banner-text{flex:1;min-width:200px;display:flex;flex-direction:column;gap:2px}.tutorial-banner-close{position:absolute;top:4px;right:4px;padding:2px 10px;background:transparent;border-color:transparent;color:var(--muted);font-size:18px}.coach{position:fixed;z-index:125;width:324px;max-width:calc(100vw - 16px);max-height:46vh;overflow:auto;display:flex;flex-direction:column;gap:8px;padding:10px 12px;background:var(--panel);border:2px solid var(--accent-2);border-radius:10px;box-shadow:0 10px 28px #00000080}.coach.coach-right{right:8px}.coach.coach-left{left:8px}.coach.coach-top{top:8px}.coach.coach-bottom{bottom:8px}.coach-head{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted)}.coach-text{font-size:15px;line-height:1.6}.coach-wait,.coach-do{font-size:13px;color:var(--accent-2)}.coach .buttons{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.coach .buttons .spacer{flex:1}.tutorial-leave{padding:2px 10px}.tutorial-target{outline:3px solid var(--accent-2)!important;outline-offset:-3px;border-radius:6px;animation:tutorial-pulse 1.1s ease-in-out infinite}@keyframes tutorial-pulse{0%,to{outline-color:var(--accent-2);box-shadow:0 0 #f2c14e8c}50%{outline-color:#f2c14e59;box-shadow:0 0 14px 4px #f2c14e8c}}@media(prefers-reduced-motion:reduce){.tutorial-target{animation:none}}@media(max-width:1000px){.coach{left:6px;right:6px;width:auto;max-width:none;max-height:34vh;padding:6px 10px;gap:4px}.coach.coach-left,.coach.coach-right{left:6px;right:6px}.coach.coach-top{top:4px}.coach.coach-bottom{bottom:4px}.coach-text{font-size:13px;line-height:1.45}.coach .buttons button{padding:3px 8px;font-size:13px}}@media(max-width:1000px)and (orientation:landscape){.coach,.coach.coach-left,.coach.coach-right{right:auto;width:46vw;max-height:42vh}}@media(min-width:1001px){.coach.coach-float{right:auto;bottom:auto;transition:top .25s ease,left .25s ease}.coach.coach-float:before{content:"";position:absolute;width:14px;height:14px;background:var(--panel);border:2px solid var(--accent-2);transform:rotate(45deg)}.coach.coach-arrow-none:before{display:none}.coach.coach-arrow-left:before{left:-9px;top:calc(var(--arrow-at) - 7px);border-top:none;border-right:none}.coach.coach-arrow-right:before{right:-9px;top:calc(var(--arrow-at) - 7px);border-bottom:none;border-left:none}.coach.coach-arrow-top:before{top:-9px;left:calc(var(--arrow-at) - 7px);border-bottom:none;border-right:none}.coach.coach-arrow-bottom:before{bottom:-9px;left:calc(var(--arrow-at) - 7px);border-top:none;border-left:none}.coach.coach-float{overflow:visible}}@media(max-width:1000px){.app.tutorial-mode{--screen-h: calc(100dvh - var(--coach-h, 110px))}.app.tutorial-mode .table .mat{margin-top:var(--coach-h, 110px)}.app.tutorial-mode .table>.side{display:none}.app.tutorial-mode .coach,.app.tutorial-mode .coach.coach-top,.app.tutorial-mode .coach.coach-bottom{inset:0 0 auto;width:auto;max-height:30vh;border-radius:0 0 10px 10px;border-top:none;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:8px;row-gap:2px;padding:4px 10px 6px}.app.tutorial-mode .coach-head{grid-column:1;grid-row:1;min-width:0;justify-content:flex-start}.app.tutorial-mode .coach .buttons{grid-column:2;grid-row:1;flex-wrap:nowrap}.app.tutorial-mode .coach .buttons .spacer{display:none}.app.tutorial-mode .coach .buttons button{padding:2px 8px}.app.tutorial-mode .coach-text,.app.tutorial-mode .coach-wait{grid-column:1 / -1}.app.tutorial-mode .coach-do{font-size:12px;white-space:nowrap}.app.tutorial-mode .coach .coach-leave{display:none}}@media(max-width:1000px)and (orientation:portrait){.app.tutorial-mode .table .mat :is(.zones-left,.zones-right) :is(.pile,.energy-chips){display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;justify-content:center;column-gap:2px;min-height:0;padding:1px}.app.tutorial-mode .table .mat :is(.zones-left,.zones-right) .pile-count{font-size:13px}}@media(max-width:1000px){:is(.app.in-game,.app.replay-mode) .table .mat .mid-center:has(.trigger-option) .center-bar .revealed{display:none}:is(.app.in-game,.app.replay-mode) .table .mat .trigger-option{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:8px;row-gap:4px;max-width:320px}:is(.app.in-game,.app.replay-mode) .table .mat .trigger-option>.card-slot{grid-row:1 / span 2}:is(.app.in-game,.app.replay-mode) .table .mat .trigger-option>button{justify-self:start}}.bug-trap{position:absolute;left:-10000px;width:1px;height:1px;opacity:0}.bug-turnstile{min-height:65px}.deck-board{max-width:1100px;margin:0 auto;padding:20px 16px 40px;display:flex;flex-direction:column;gap:14px}.board-head h1{margin:0 0 6px;font-size:24px}.board-head p{margin:0 0 10px}.board-filters{gap:8px;flex-wrap:wrap;align-items:center}.board-list{display:flex;flex-direction:column;gap:10px}.board-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.board-card.open{border-color:var(--accent)}.board-card-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;cursor:pointer}.board-preview{display:flex;gap:4px;--card-w: 46px;--card-h: 64px}.board-info{display:flex;flex-direction:column;gap:3px;min-width:0}.board-title{display:flex;gap:6px;align-items:center;font-size:16px;overflow-wrap:anywhere}.board-place{border-color:var(--accent-2);color:var(--accent-2)}.board-warn{color:var(--accent-2)}.board-body{border-top:1px solid var(--line);padding:12px;display:flex;flex-direction:column;gap:10px}.board-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px}@media(max-width:760px){.board-card-head{grid-template-columns:minmax(0,1fr) auto}.board-preview{grid-column:1 / -1}}.board-info a{color:var(--accent)}@media(max-width:600px){.topnav{flex:1 1 100%;order:10;margin-left:0;overflow-x:auto;scrollbar-width:none}.topnav button{flex:0 0 auto;white-space:nowrap}}.board-illegal{border-color:var(--danger, #e06c6c);color:var(--danger, #e06c6c)}.board-search{flex:1 1 220px;min-width:0}.board-hits{font-size:13px;color:var(--accent)}.board-stats{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:12px;align-items:end}@media(max-width:760px){.board-stats{grid-template-columns:minmax(0,1fr)}}.submit-deck{background:var(--panel);border:1px solid var(--accent);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px;margin-top:10px}.submit-deck h2{margin:0;font-size:18px}.submit-deck label{display:flex;flex-direction:column;gap:4px}.submit-deck textarea{width:100%;box-sizing:border-box}.submit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.board-community{border-color:var(--accent);color:var(--accent)}.my-reports ul{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:8px}.my-reports li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}.my-report-text{flex:1 1 200px;min-width:0;overflow-wrap:anywhere}.my-report-hint{flex-basis:100%;font-size:12px}.report-state.st-open,.report-state.st-fixing{background:color-mix(in srgb,var(--accent) 25%,var(--panel))}.report-state.st-resolved{background:#2f7d4f;color:#fff}.report-state.st-declined{background:#5b6b7d;color:#fff}.report-deck{display:flex;flex-direction:column;gap:6px;max-width:420px;margin-top:8px}.board-note{margin:0;padding:6px 10px;border-left:3px solid var(--accent);color:var(--text);white-space:pre-wrap}.account-menu{position:relative}.account-btn.signed-in{padding:0;width:32px;height:32px;border-radius:50%;overflow:hidden;display:inline-flex;align-items:center;justify-content:center}.account-btn img{width:100%;height:100%;object-fit:cover}.account-initial{font-weight:700}.account-backdrop{position:fixed;inset:0;z-index:40}.account-panel{position:fixed;right:8px;top:56px;z-index:41;width:min(320px,calc(100vw - 16px));background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px;box-shadow:0 8px 24px #00000059;display:flex;flex-direction:column;gap:10px}.account-signin,.account-signedin{display:flex;flex-direction:column;gap:8px}.account-panel p{margin:0}.account-panel .small{font-size:12px}.gsi-button{min-height:44px}.account-panel details summary{cursor:pointer}
