@charset "UTF-8";
:root{--bg:#07121d;--panel:#102333;--ink:#f0e8d5;--muted:#9fb2bb;--line:#345261;--bronze:#a77a45;--gold:#eac68a;--cyan:#55e0d5;--red:#ff8868;--violet:#bd9afa;--paper:#0a1724;--sheet:#112737;--sans:"Microsoft YaHei","PingFang SC",sans-serif;--serif:"Songti SC","SimSun",serif;--mono:"Consolas",monospace;--dock-h:224px;--seat-w:148px;--seat-h:204px}
*{box-sizing:border-box}html{background:var(--bg);color:var(--ink);scrollbar-color:#4e6a76 #0c1a27}body{margin:0;font:14px/1.6 var(--sans);color:var(--ink);background:radial-gradient(ellipse at 75% 15%,#1f414e,transparent 50%),#07121d;-webkit-tap-highlight-color:transparent}body:has(.arena-shell){overflow:hidden}button,a,input{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;min-height:44px;border-radius:5px}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}button svg{pointer-events:none}svg{display:block}h1,h2,h3,p{margin:0}small{font-size:11px}a{color:var(--cyan)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.icon{width:19px;height:19px;flex:none}.icon-btn{display:grid;place-items:center;width:44px;height:44px;min-width:44px;border:1px solid #58707b;background:linear-gradient(#203746,#10232f);color:#c5d9de;box-shadow:inset 0 1px #a3b3b322}.icon-btn:hover{border-color:var(--gold);color:var(--gold)}.eyebrow{font:10px/1.5 var(--mono);letter-spacing:2px;color:#95afb9}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border:1px solid #5e7882;background:linear-gradient(#203b4b,#122633);padding:10px 16px;font-weight:700;box-shadow:inset 0 1px #e5e8d622,0 3px 7px #0005;color:#e2ebeb}.btn-primary{color:#241c12;border-color:#f3d39a;background:linear-gradient(#f0d198,#b78143);box-shadow:inset 0 1px #fff1c8,0 4px 0 #684625,0 5px 15px #0005;text-shadow:0 1px #ffffff35}.btn-primary:hover{filter:brightness(1.1)}.btn-red{color:#fff0dc;border-color:#ff9975;background:linear-gradient(#c56443,#743827)}.btn-lime{color:#042629;border-color:#94f5e9;background:linear-gradient(#9ceddf,#54b8b5)}.btn-secondary{color:#b8cbd3;border-color:#405f6c;background:linear-gradient(#18313f,#102430)}.btn:disabled{background:#192b36;color:#718994;border-color:#3d5660;box-shadow:none;text-shadow:none;filter:none}.btn-wide{width:100%}.text-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:44px;border:0;padding:7px 8px;background:transparent;font-size:12px;color:#b8c9ca}.text-btn:hover{color:var(--gold)}.pill{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;border:1px solid currentColor;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:600;line-height:1.6}.live-dot{width:6px;height:6px;display:inline-block;background:var(--cyan);border-radius:50%;box-shadow:0 0 8px #5ae8df88}.portrait{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 28%;flex:none;user-select:none}.boot-screen{min-height:100svh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;background:radial-gradient(ellipse,#1d4050,transparent 65%)}.boot-icon{border-radius:13px;box-shadow:0 0 30px #2cdacc30}.boot-mark{font:900 45px/1.2 var(--serif);letter-spacing:7px;color:var(--gold)}.boot-screen>p{color:var(--muted);font-size:13px}.noscript{padding:24px}
/* Full-screen office arena. */
.game-shell{position:relative;isolation:isolate;width:100%;height:100svh;overflow:hidden;background:#102c35 none center/cover no-repeat}.game-shell:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#06111a70,transparent 45%,#03101a20)}.game-header{position:absolute;top:0;left:0;right:0;z-index:12;height:58px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:7px 20px;background:linear-gradient(#05121ce8,#0b233678);border-bottom:1px solid #8a704b88}.wordmark{display:flex;align-items:center;gap:9px;font:900 23px var(--serif);letter-spacing:3px;color:var(--gold);white-space:nowrap}.brand-glyph{width:33px;height:33px;display:grid;place-items:center;border:1px solid #e6c38b;color:#f4d59b;background:linear-gradient(135deg,#314d59,#07111d);font:900 23px var(--serif);border-radius:5px;box-shadow:inset 0 0 0 2px #17303b,0 0 15px #d5aa5630}.header-meta{display:flex;align-items:center;gap:12px}.header-actions{display:flex;gap:6px}.round-chip{text-align:right;font-size:10px;line-height:1.4;color:#9fb8c1}.round-chip b{display:block;color:#f2d19a;font:700 16px var(--mono);letter-spacing:1px}.turn-strip{position:absolute;z-index:13;top:11px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:16px;max-width:48%;min-height:36px;padding:6px 16px;border:1px solid #526e76;border-radius:25px;background:#102936e8;box-shadow:0 3px 12px #0005;font-size:12px}.turn-indicator{display:flex;align-items:center;gap:7px;white-space:nowrap}.deck-info{font:10px var(--mono);color:#8bb1bd;white-space:nowrap}.turn-strip.your-turn{color:#c9fff3;border-color:#64d4c5;background:#13443fdf;box-shadow:0 0 20px #27c8b328}.turn-strip.response-turn{color:#ffe4c4;border-color:#ffae6b;background:#6d3523ed;box-shadow:0 0 25px #ea704542}.turn-strip.response-turn .live-dot{background:#ffbd73;animation:signal 1.3s infinite}.save-warning{position:absolute;top:59px;left:50%;transform:translateX(-50%);z-index:30;background:#b27539;color:#fff2d9;padding:4px 12px;font-size:11px}.spectator-note{position:absolute;left:15px;bottom:calc(var(--dock-h) + 10px);z-index:12;display:flex;align-items:center;gap:12px;background:#102635e8;border:1px solid #55717e;padding:8px 10px;font-size:12px}.spectator-note .btn{font-size:11px;padding:8px}.arena-stage,.battlefield{position:absolute;inset:58px 0 var(--dock-h);padding:0}.table-hud{position:absolute;top:11px;left:20px;right:20px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;z-index:4;pointer-events:none}.table-hud>*{pointer-events:auto}.objective-banner{display:flex;align-items:center;gap:9px;max-width:310px;padding:7px 11px;border-left:3px solid #b88e55;background:#0a1d2db8;border-radius:2px;font-size:11px}.objective-banner>span:first-child{font-size:10px;color:#e2c68f;white-space:nowrap;letter-spacing:1px}.objective-banner p{font-size:11px;line-height:1.6;color:#c5d5d5}.event-slip{display:flex;align-items:center;gap:7px;max-width:300px;min-height:44px;padding:7px 10px;background:#0b2330d6;border:1px solid #5d7372;border-radius:4px;text-align:left}.event-slip>.icon{width:16px;height:16px;color:#d7b57f}.event-slip b{font-size:11px;font-weight:600;white-space:nowrap;color:#e3cd9f}.event-slip p{display:none}.event-expand{font-size:10px;white-space:nowrap;color:#9ac7c7;margin-left:5px}
.opponents{position:absolute;inset:18px 28px 15px;pointer-events:none;z-index:5}.opponent{--seat-color:#d2a873;position:absolute;pointer-events:auto;width:var(--seat-w);height:var(--seat-h);padding:0 7px 7px;border:2px solid #9a784c;border-radius:8px;background:linear-gradient(115deg,#243946,#0a1c2b 65%);text-align:center;box-shadow:0 7px 16px #0008,inset 0 0 0 2px #3a473d;transition:filter .2s,transform .2s,border-color .2s}.opponent:after{content:"";position:absolute;inset:4px;border:1px solid #a6b7a31f;border-radius:4px;pointer-events:none}.opponent[data-side="labor"]{--seat-color:var(--cyan);border-color:#3f9c96}.opponent[data-side="capital"]{--seat-color:var(--red);border-color:#b06a4b}.opponent[data-side="merchant"]{--seat-color:var(--violet);border-color:#8d6eaf}.opponent:nth-child(1){left:1%;top:37%}.opponent:nth-child(2){left:50%;top:0;transform:translateX(-50%)}.opponent:nth-child(3){right:1%;top:37%}.opponents.four .opponent:nth-child(2){left:39%;top:0;right:auto}.opponents.four .opponent:nth-child(3){left:61%;top:0;right:auto;transform:translateX(-50%)}.opponents.four .opponent:nth-child(4){left:auto;right:1%;top:37%}.opponent-head{height:132px;position:relative;margin:0 -7px 3px;overflow:hidden;border-radius:6px 6px 0 0;background:#102c3a}.portrait-frame{width:100%;height:100%;overflow:hidden;background:radial-gradient(ellipse at 50% 75%,#294b5a,transparent)}.opponent-head .portrait{object-position:50% 22%}.opponent-head:after{content:"";position:absolute;bottom:0;left:0;right:0;height:32px;background:linear-gradient(transparent,#0b1d2b)}.hand-number{position:absolute;right:5px;top:6px;z-index:2;display:flex;align-items:center;gap:3px;padding:2px 4px;color:#f3dcaf;border:1px solid #a38d66;background:#0c1d2bdf;border-radius:3px;font:11px var(--mono)}.hand-number .icon{width:12px;height:13px}.opponent-name{font-size:14px;font-weight:700;line-height:19px;color:#f5dfb5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.opponent-identity{font-size:10px;line-height:15px;color:var(--seat-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hp-row{display:flex;align-items:center;justify-content:center;gap:3px;flex-wrap:nowrap;min-height:16px}.hp-dot{width:9px;height:7px;background:linear-gradient(#b7e59b,#6eae72);border:1px solid #d5f2b36b;border-radius:2px;transform:skew(-8deg);box-shadow:0 0 5px #7ecd6f30;flex:none}.hp-dot.empty{background:#20333a;border-color:#56685f;box-shadow:none}.hp-number{font:10px var(--mono);margin-left:2px;color:#d2e3cc;white-space:nowrap}.equipment-row{display:flex;align-items:center;justify-content:center;gap:3px;font-size:9px;line-height:14px;min-height:15px;margin-top:2px;overflow:hidden;white-space:nowrap}.equip-pill{padding:0 3px;color:#a9c7d0;border:1px solid #47616d;background:#132a38;border-radius:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.opponent.is-active{border-color:#f1ca85;box-shadow:0 0 0 1px #c89a51,0 0 25px #f3bf612b,0 7px 17px #0008}.opponent.is-active:before,.opponent.is-responding:before{content:"行动中";position:absolute;top:-10px;left:50%;transform:translateX(-50%);z-index:3;padding:1px 9px;border:1px solid #edc783;background:linear-gradient(#80603b,#4b3824);color:#ffe6b4;font-size:10px;line-height:15px;border-radius:3px;white-space:nowrap}.opponent.is-responding{border-color:#ff8b5e;box-shadow:0 0 20px #ff754659}.opponent.is-responding:before{content:"正在响应";color:#ffe5ca;background:#7d3d27;border-color:#f99a6b}.opponent.status-out{filter:grayscale(1);opacity:.42}.opponent.status-slacking{border-color:#d78a63;filter:saturate(.65)}.out-stamp{font-size:12px;letter-spacing:2px;color:#b2b9ba}.countdown{display:flex;align-items:center;justify-content:center;gap:4px;min-height:16px;font-size:10px;color:#f5a17b;line-height:1.4}.countdown .icon{width:12px;height:12px}.opponent.is-target,.opponent.targetable{outline:2px dashed #8becdd;outline-offset:5px}.opponent.is-selected,.opponent.selected-target{border-color:#c0fff0;box-shadow:0 0 0 2px #62e0d2,0 0 35px #5df7e980}.taunt-bubble{position:absolute;top:27%;left:calc(100% + 10px);z-index:8;width:140px;padding:9px 10px;border:1px solid #caac75;border-radius:8px;background:#e8d7b8;color:#263136;font:700 12px/1.6 var(--sans);box-shadow:0 4px 14px #0005;pointer-events:none;animation:taunt-pop .24s ease-out}.taunt-bubble:before{content:"";position:absolute;top:15px;left:-6px;width:10px;height:10px;background:#e8d7b8;transform:rotate(45deg);border-left:1px solid #caac75;border-bottom:1px solid #caac75}.opponent:nth-last-child(1) .taunt-bubble{left:auto;right:calc(100% + 10px)}.opponent:nth-last-child(1) .taunt-bubble:before{left:auto;right:-6px;transform:rotate(225deg)}
.arena-center,.board-center{position:absolute;left:50%;top:58%;transform:translate(-50%,-50%);width:min(42vw,490px);z-index:3;text-align:center}.board-kicker{display:none}.action-spotlight{position:relative;display:flex;align-items:center;justify-content:center;gap:15px;min-height:103px;padding:10px 18px;color:#e6d5b6;border:1px solid #9c88554d;border-radius:8px;background:radial-gradient(ellipse,#0b1e2ad9,#0c253452 70%,transparent);box-shadow:0 15px 28px #0002}.spotlight-art{width:104px;flex:none;filter:drop-shadow(0 5px 8px #0008)}.spotlight-art .card-illustration{height:74px;width:104px;border:1px solid #ac8b58;border-radius:4px}.spotlight-art .portrait{width:75px;height:90px;margin:auto;border:1px solid #ab8857;border-radius:5px}.spotlight-copy{text-align:left;min-width:0}.spotlight-copy>.eyebrow{font-size:9px;color:#8ebbc3;letter-spacing:1px}.spotlight-copy strong{font:900 25px/1.4 var(--serif);color:#f1d6a2;display:block;margin:2px 0 4px;text-shadow:0 2px #0008}.spotlight-copy p{font-size:12px;color:#b3cfd4;line-height:1.6}.spotlight-stamp{position:absolute;top:-8px;right:13px;font-size:10px;letter-spacing:1px;color:#f2d5a0;background:#213b42;border:1px solid #a38859;padding:1px 7px;border-radius:2px}.action-spotlight.empty{background:none;border-color:transparent;box-shadow:none;opacity:.56;min-height:86px}.action-spotlight.empty .spotlight-stamp{position:static;border:0;background:none;color:#dfbd85;font:900 28px var(--serif);letter-spacing:6px;padding:0}.action-spotlight.empty p{display:none}.battle-log{list-style:none;padding:0;margin:10px 0 0}.battle-log li{display:none}.battle-log li:last-child{display:block;font-size:11px;line-height:1.65;color:#c0d4d5;text-shadow:0 1px 3px #000;max-height:36px;overflow:hidden}.arena-effects{position:absolute;inset:0;z-index:25;pointer-events:none;overflow:visible}
/* Three-part player command dock. */
.player-dock,.own-zone{position:absolute;bottom:0;left:0;right:0;z-index:15;height:var(--dock-h);display:grid;grid-template-columns:260px minmax(0,1fr) 148px;gap:18px;align-items:center;padding:12px 24px;background:linear-gradient(0deg,#04101bef,#0f2636ef 75%,#1a3945ed);border-top:2px solid #ac8753;box-shadow:0 -4px 28px #0005}.player-dock:before{content:"";position:absolute;top:2px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#e9ca8b80,transparent);pointer-events:none}.self-panel{position:relative;display:flex;align-items:flex-end;min-width:0;height:100%;gap:12px;padding-right:12px;border-right:1px solid #5f705f6b}.self-portrait{position:relative;flex:0 0 97px;height:calc(100% + 25px);align-self:flex-end;overflow:hidden;border:2px solid #ad8752;border-radius:9px 9px 4px 4px;background:#102638;box-shadow:0 0 17px #d3ac6540}.self-portrait>.portrait{object-position:50% 18%}.self-portrait:after{content:"";position:absolute;inset:auto 0 0;height:38px;background:linear-gradient(transparent,#0b1d2f)}.self-info{flex:1;min-width:0;align-self:center}.self-header{position:relative;display:flex;align-items:center;gap:8px}.self-header>.self-avatar{width:73px;height:105px;border:1px solid #b98b4c;border-radius:5px}.self-panel:has(.self-portrait) .self-header>.self-avatar{display:none}.self-title{min-width:0;flex:1}.self-title h2{font-size:17px;line-height:1.4;display:flex;align-items:flex-start;gap:4px;flex-wrap:wrap;color:#f7dcab}.self-title .pill{font-size:9px;color:#78d9cd;padding:0 4px;margin:4px 0}.self-title .hp-row{justify-content:flex-start;gap:2px;margin-top:5px;flex-wrap:wrap}.self-title .hp-dot{width:8px;height:7px}.self-title .hp-number{font-size:10px}.self-equipment{display:flex;flex-wrap:wrap;gap:3px;font-size:10px;color:#7c9eac;margin-top:6px;line-height:1.6}.self-header>.self-equipment{display:none}.own-skills{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.skill-button{display:flex;align-items:center;justify-content:center;gap:5px;flex:1;min-width:44px;min-height:44px;padding:5px 7px;border:1px solid #576d75;background:linear-gradient(#233f4c,#102936);color:#bbd0d5;font-size:11px;line-height:1.4;box-shadow:inset 0 1px #d7e2da0d}.skill-button .icon{width:14px;height:14px}.skill-status{font-size:9px;color:#7d9daa;display:block;margin-top:2px}.skill-button.can-use{border-color:#66ccbe;color:#b5f5e6;background:linear-gradient(#285754,#133936);box-shadow:0 0 10px #43c4b01c}.skill-button.rest.can-use{border-color:#b79660;background:linear-gradient(#5b4c32,#302c26);color:#f4d8a0}.hand-zone{min-width:0;align-self:stretch;display:flex;flex-direction:column;justify-content:flex-end}.hand-label{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:10px;color:#91b2be;line-height:1.6;min-height:18px;padding:0 4px 4px}.hand-label b{color:#d8d4b0;font-weight:700}.hand-label span:last-child{text-align:right}.hand-cards{position:relative;display:flex;align-items:flex-end;gap:9px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;overscroll-behavior-x:contain;min-width:0;min-height:178px;padding:12px 5px 8px}.hand-cards::-webkit-scrollbar{display:none}.playing-card{--card-color:#e6be82;position:relative;flex:0 0 121px;width:121px;height:167px;min-height:167px;padding:6px;display:flex;flex-direction:column;justify-content:flex-start;gap:3px;text-align:left;border:2px solid #b18b55;border-radius:7px;background:linear-gradient(145deg,#3f4747,#172632 45%,#10212e);color:#e5d6b8;box-shadow:inset 0 0 0 2px #0c1d2b,inset 0 2px 7px #eee0b126,0 5px 8px #0008;transform:rotate(calc((var(--card-index,0) - (var(--card-count,1) - 1) / 2) * .65deg));transform-origin:50% 100%;transition:transform .18s,border-color .18s,box-shadow .18s;isolation:isolate}.playing-card:before{content:"";position:absolute;inset:3px;border:1px solid #a88e5d68;border-radius:4px;pointer-events:none;z-index:-1}.playing-card:after{content:"";position:absolute;top:5px;right:5px;left:5px;height:2px;background:linear-gradient(90deg,transparent,var(--card-color),transparent);opacity:.8}.card-top{display:flex;justify-content:space-between;align-items:center;gap:3px;min-height:14px;line-height:14px}.card-rank{font:700 11px var(--mono);color:#e8dfc4;white-space:nowrap}.card-rank.red-suit{color:#ff9f86}.card-category{font-size:10px;color:var(--card-color);font-weight:700;letter-spacing:.5px}.card-art{height:58px;min-height:58px;width:100%;display:flex;align-items:center;justify-content:center;border:1px solid #7d765c;background:#142531;border-radius:3px;overflow:hidden;flex:none}.card-illustration{width:100%;height:auto;display:block;overflow:hidden}.card-art>.card-illustration{height:100%;object-fit:contain}.card-name{display:block;font:900 20px/1.2 var(--serif);letter-spacing:1px;color:#f5dfaf;white-space:nowrap;text-shadow:0 2px #0008}.card-summary{display:block;color:#b3c6ce;font-size:10px;line-height:13px;min-height:26px;letter-spacing:-.1px}.card-type{font-size:9px;line-height:13px;min-height:14px;margin-top:auto;color:#8b9fac;border-top:1px solid #56676b;padding:2px 2px 0;white-space:nowrap}.playing-card.is-playable{border-color:#6ce3d3;box-shadow:inset 0 0 0 2px #133c41,0 0 0 1px #63ceb06b,0 3px 12px #0008,0 0 13px #43d2c52b}.playing-card.is-playable .card-type{color:#9df1dd;border-color:#3a9c92}.playing-card.is-waiting .card-art{filter:saturate(.7) brightness(.8)}.playing-card.is-selected,.playing-card.selected,.playing-card[aria-pressed="true"]{transform:translateY(-13px) rotate(0);border-color:#ffe1a0;box-shadow:0 0 0 2px #dcb76c,0 0 28px #efbd5b65,0 8px 15px #0009;z-index:5}.playing-card:hover{transform:translateY(-8px) rotate(0);z-index:4}.playing-card:active{transform:translateY(-4px) rotate(0)}.hand-empty{flex:1;display:flex;justify-content:center;align-items:center;min-height:152px;border:1px dashed #4b6a77;border-radius:6px;color:#6d94a6;font-size:12px}.command-zone{align-self:center;min-width:0;padding-left:6px}.turn-controls{display:flex;flex-direction:column;align-items:stretch;gap:11px}.turn-controls .btn{order:0;min-height:53px;width:100%;padding:12px 8px;font-size:15px;letter-spacing:1px}.turn-hint{order:1;font-size:11px;line-height:1.8;color:#8fadb8;text-align:center}.response-panel{position:absolute;z-index:40;bottom:calc(100% + 13px);left:50%;transform:translateX(-50%);width:min(510px,calc(100vw - 40px));max-height:min(340px,62vh);overflow:auto;padding:16px;border:1px solid #f3b979;border-top:3px solid #ffbc76;border-radius:8px;background:linear-gradient(135deg,#4b3424f5,#152a36fa);box-shadow:0 12px 38px #000b,0 0 26px #ed9b412d}.response-panel:before{content:"需要你响应";display:block;font:700 10px var(--mono);letter-spacing:3px;color:#f7c887;margin-bottom:5px}.response-heading{display:flex;align-items:flex-start;gap:7px;color:#ffe0b0;font-size:16px;font-weight:700;line-height:1.5}.response-heading .icon{margin-top:2px;color:#ffab6d}.response-panel>p{font-size:12px;line-height:1.8;color:#c2c7b9;margin-top:7px}.response-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:12px;max-height:180px;overflow:auto;padding:2px 2px 5px}.response-actions .btn{min-height:46px;min-width:0;padding:9px 8px;font-size:12px;white-space:normal;line-height:1.5}.response-actions .btn-secondary{grid-column:1/-1;color:#b6c9c9;background:#132a37;border-color:#6f7562;box-shadow:none}.first-run{position:absolute;z-index:30;left:50%;bottom:calc(100% + 15px);transform:translateX(-50%);width:min(460px,80vw);display:flex;align-items:center;gap:10px;padding:8px 13px;background:#103c45f0;border:1px solid #74cfc0;border-radius:7px;box-shadow:0 6px 20px #0007;font-size:12px;line-height:1.8;color:#b8e9df}.first-run b{color:#eece93}.first-run p{flex:1}.first-run>.text-btn{color:#d7ebdb;white-space:nowrap;min-width:50px}.orientation-tip{display:none}.player-feedback{position:absolute;z-index:45;top:20%;left:50%;transform:translateX(-50%);width:max-content;max-width:170%;font:900 28px/1.2 var(--serif);color:#ff926e;text-shadow:0 2px #47281f,2px 0 #1c1822,-2px 0 #1c1822,0 -2px #1c1822;pointer-events:none;animation:feedback-rise 1.2s ease-out both}.player-feedback.heal,.player-feedback.good,.player-feedback.is-heal{color:#a9efab;text-shadow:0 2px #1d482e,2px 0 #14232d,-2px 0 #14232d}.player-feedback.slacking{font-size:20px;color:#f4b177}.player-feedback small{display:block;text-align:center;font:700 10px var(--sans)}
/* Dialogs and codices */
.modal-backdrop{position:fixed;inset:0;z-index:80;display:flex;justify-content:center;align-items:center;padding:18px;background:#010712b9;backdrop-filter:blur(5px);animation:dialog-in .15s}.modal{width:100%;max-width:570px;max-height:calc(100svh - 36px);overflow:auto;border:1px solid #aa8754;border-top:3px solid #d7b77b;background:linear-gradient(130deg,#183444,#0c1e2e 70%);border-radius:9px;box-shadow:0 20px 70px #000b,inset 0 1px #f1d9a42b;scrollbar-width:thin}.modal-header{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 21px 11px;background:#142b3aee;backdrop-filter:blur(8px);border-bottom:1px solid #4d62645e}.modal-header h2{font-size:21px;font-weight:700;letter-spacing:1px;color:#ead0a0}.modal-header .eyebrow{font-size:9px;margin-bottom:3px;color:#82b3bf}.modal-header .icon-btn{border:0;background:transparent;box-shadow:none;margin-right:-8px}.modal-content{padding:16px 21px 22px}.modal p{line-height:1.85}.modal-actions{display:flex;gap:9px;margin-top:18px}.modal-actions>.btn{flex:1;min-width:0;font-size:13px}.help-intro{font-size:13px;color:#aac3cc;margin-bottom:16px;line-height:1.9}.help-step{display:grid;grid-template-columns:26px 1fr;gap:12px;margin:17px 0}.step-number{width:25px;height:25px;display:grid;place-items:center;border:1px solid #a68c5e;border-radius:4px;color:#eac28a;background:#283d42;font:700 12px var(--mono)}.help-step h3{font-size:14px;color:#e1d5b8;margin-bottom:4px}.help-step p{font-size:12px;line-height:1.9;color:#a9c0ca}.rules-note{font-size:11px;line-height:1.9;color:#9cc3c8;background:#102f3d;border-left:3px solid #6dbdae;padding:12px;margin-top:18px}.help-card-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.help-card-legend>div{font-size:11px;border:1px solid #3e626d;padding:10px;background:#112b39;color:#a9c1cc}.help-card-legend b{display:block;color:#ddcaa2;font-size:13px;margin-bottom:3px}.menu-list{display:flex;flex-direction:column;gap:8px}.menu-list>.btn{justify-content:space-between;font-size:13px}.menu-meta{font-size:11px;color:#7c9da9;border-top:1px solid #3e5b65;padding-top:13px;margin-top:17px;line-height:1.9}.role-guide-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:20px}.role-guide-grid .role-option{min-height:123px}.role-guide-grid .role-option>.portrait{height:97px}.guide-role{border-top:1px solid #46616d;padding-top:17px}.guide-role-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:13px}.guide-role-head>.portrait{width:106px;height:159px;border:1px solid #bc9258;border-radius:5px}.guide-role-head h3{font-size:24px;color:#ecd0a0;line-height:1.4;margin-bottom:7px}.guide-role-head p{font-size:11px;line-height:1.8;color:#97b5c3}.guide-role-head .text-btn{font-size:11px;padding-left:0;color:#89d7ce}.skill-definition{font-size:12px;line-height:1.9;color:#a6c0ca;border-bottom:1px solid #355562;padding:11px 0}.skill-definition b{display:block;font-size:13px;color:#e5cfa3;margin-bottom:3px}.guide-select{margin-top:17px}.action-card-detail{display:grid;grid-template-columns:74px minmax(0,1fr);gap:15px;border-bottom:1px solid #45606a;padding-bottom:16px;margin-bottom:15px}.action-card-detail.has-illustration{grid-template-columns:150px minmax(0,1fr);align-items:center}.detail-art{position:relative;display:flex;justify-content:center;align-items:center;min-height:83px;width:74px;border:1px solid #a28559;border-radius:5px;background:#0b2331}.detail-art>.icon{width:38px;height:38px;color:#d2be95}.detail-art.wide{width:100%;height:auto;min-height:0;aspect-ratio:160/112;overflow:hidden}.detail-art>.card-illustration{width:100%;height:100%}.detail-art>.card-rank{position:absolute;z-index:1;top:6px;left:6px;background:#0c1c28da;border:1px solid #b19261;padding:1px 4px;border-radius:2px;font-size:10px}.action-card-detail h3{font:900 29px/1.35 var(--serif);letter-spacing:1px;color:#f1d59f;margin-bottom:8px}.action-card-detail p{font-size:12px;line-height:1.9;color:#a9c2cd}.action-cost{font-size:11px;padding:10px 12px;background:#163641;border-left:3px solid #6aafaa;color:#add4d0;line-height:1.9;margin-bottom:13px}.action-cost.warning{background:#423829;border-color:#cb965e;color:#dec59f}.action-availability{font-size:12px;line-height:1.9;color:#97b9c5;padding:8px 0}.target-label{display:flex;align-items:center;gap:7px;color:#d2d8cd;font-size:12px;font-weight:600;margin:5px 0 10px}.target-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.target-choice{position:relative;min-height:77px;display:flex;align-items:center;gap:11px;padding:8px 10px;border:1px solid #577584;border-radius:5px;background:linear-gradient(#213b4a,#122a39);text-align:left}.target-choice>.portrait{width:44px;height:58px;border-radius:3px;border:1px solid #a18458}.target-choice b{display:block;font-size:13px;color:#ddcfb2}.target-choice small{display:block;font-size:11px;color:#85adbb;line-height:1.7;margin-top:4px}.target-choice.selected{border-color:#89e6d5;background:linear-gradient(#285951,#163c3b);box-shadow:0 0 0 1px #4d9e91,0 0 16px #4ac1af20}.target-choice.selected:after{content:"✓";position:absolute;right:7px;top:3px;color:#a7ffe4;font-size:13px;font-weight:900}.target-choice.selected b{color:#d9ffe9}.target-choice:disabled{opacity:.45}.card-codex{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 12px}.card-codex .playing-card{width:100%;height:202px;min-height:202px;transform:none;padding:8px;gap:5px}.card-codex .card-art{height:83px;min-height:83px}.card-codex .card-name{font-size:22px}.card-codex .card-summary{font-size:11px;line-height:15px;min-height:30px}.card-codex .card-rank{font-size:10px}.codex-detail>.detail-art{width:min(100%,350px);margin:0 auto 16px;border-width:2px;box-shadow:0 8px 20px #0005}.codex-detail>.eyebrow{font-size:10px;margin-bottom:5px;color:#82b8c3}.codex-detail h3{font:900 32px var(--serif);color:#f0d39a;letter-spacing:2px;margin:5px 0}.card-tagline{font:700 16px/1.7 var(--serif);color:#d3b888;margin:7px 0 11px}.codex-detail>p:not(.card-tagline){font-size:13px;color:#abc3ce;line-height:1.95}.card-facts{display:flex;flex-direction:column;margin:17px 0 0;background:#102c3b;border-left:3px solid #4eafa7;padding:0}.card-facts>div{display:grid;grid-template-columns:67px 1fr;gap:12px;padding:11px 12px;border-bottom:1px solid #395662}.card-facts>div:last-child{border-bottom:0}.card-facts dt{font-size:11px;letter-spacing:1px;color:#6cabb6}.card-facts dd{font-size:12px;line-height:1.85;margin:0;color:#bdcfd3}.codex-detail blockquote{font:14px/1.9 var(--serif);margin:16px 0 0;padding:11px 0 0;border-top:1px solid #4e645d;color:#bda77e}.full-log{display:flex;flex-direction:column;gap:11px;max-height:57vh;overflow:auto}.full-log>div{font-size:12px;line-height:1.8;color:#bed0d7;border-bottom:1px solid #34525f;padding-bottom:10px}.full-log small{display:block;font:9px var(--mono);color:#6499a7;margin-bottom:4px}.outcome-card{text-align:center;padding:8px 0 4px}.result-stamp{display:inline-block;font:900 36px/1.3 var(--serif);letter-spacing:5px;color:#f7b487;text-shadow:0 3px #6c3f27,0 0 20px #d67a3d66;margin:12px 0 22px;padding:8px 18px;border-top:1px solid #b27c4a;border-bottom:1px solid #b27c4a}.result-stamp.won{color:#f2d89d;text-shadow:0 3px #78602d,0 0 25px #dca94f77}.outcome-card h3{font-size:23px;color:#e9d4ad;margin-bottom:7px}.outcome-card>p{font-size:12px;color:#8cb0be}.result-players{display:flex;flex-direction:column;gap:6px;text-align:left;margin-top:18px}.result-player{display:flex;align-items:center;gap:10px;padding:6px 9px;background:#102a38;border:1px solid #3e5d69;border-radius:4px;font-size:12px;color:#a8c1cd}.result-player>.portrait{width:35px;height:44px;border-radius:3px}.result-player b{flex:1;color:#ddcfb1}.result-player .pill{font-size:9px}.result-footnote{font-size:10px;color:#7ea2b0;text-align:center;margin-top:15px}.audio-settings{display:flex;flex-direction:column}.audio-hero{display:flex;gap:12px;align-items:flex-start;margin-bottom:17px}.audio-hero>.icon{width:27px;height:27px;color:#72d6ca;margin-top:4px}.audio-hero h3{font-size:17px;color:#e4d4b7;margin-bottom:6px}.audio-hero p{font-size:12px;color:#8db4c1;line-height:1.9}.audio-row{display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:69px;border-top:1px solid #365662;padding:12px 0}.audio-label{flex:1;min-width:0}.audio-label b{font-size:13px;color:#c8d8da;display:block}.audio-label small{display:block;font-size:11px;line-height:1.8;color:#7eabb9;margin-top:3px}.audio-toggle{min-width:72px;min-height:44px;border:1px solid #557482;background:#183747;color:#91b0bd;font-size:12px;font-weight:700;padding:8px 10px}.audio-toggle.on{border-color:#72c5b7;color:#b9f2df;background:linear-gradient(#2b5951,#173c38)}.audio-control{display:grid;grid-template-columns:72px minmax(0,1fr) 39px;gap:10px;align-items:center;min-height:60px;border-top:1px solid #345562;padding:7px 0;color:#afcad1;font-size:12px}.audio-control input{width:100%;height:44px;accent-color:#79c9ba;cursor:pointer;margin:0}.audio-control output{font:11px var(--mono);color:#bca87d;text-align:right}.audio-status{font-size:12px;color:#96d2c7;border-top:1px solid #446b6e;padding-top:13px;margin-top:16px;line-height:1.9}.audio-caption{font-size:11px;color:#7198aa;margin-top:10px;line-height:1.9}.toast{position:fixed;z-index:150;bottom:25px;left:50%;transform:translate(-50%,15px);max-width:calc(100vw - 30px);width:max-content;padding:10px 16px;border:1px solid #b09261;border-radius:6px;background:#112936f5;color:#e9dbbb;font-size:12px;box-shadow:0 6px 20px #0007;opacity:0;pointer-events:none;transition:.15s}.toast.show{opacity:1;transform:translate(-50%,0)}.fatal{max-width:500px;margin:14vh auto;padding:25px}.fatal h1{font-size:28px;color:#ecc98f;margin-bottom:13px}.fatal p{color:#93b5c2;margin-bottom:18px}.arena-edition{font:600 11px/1.4 var(--sans);letter-spacing:1px;color:#81b6c1;white-space:nowrap}.hand-empty{flex-direction:column;text-align:center}.hand-empty small{display:block;font-size:10px;margin-top:5px}.self-info .own-skills{display:flex;flex-direction:column;gap:4px;margin-top:7px}.self-info .skill-button{flex:auto;width:100%;white-space:nowrap;min-height:44px;padding:5px 7px;justify-content:flex-start;font-size:11px}.self-info .skill-button>span{min-width:0}.self-info .skill-status{white-space:normal}.self-info .own-skills>.skill-button:last-child:has(>.icon:only-child){position:absolute;right:9px;bottom:0;width:32px;min-width:32px;min-height:44px;justify-content:center;background:transparent;border:0;box-shadow:none}
@keyframes signal{50%{opacity:.35}}@keyframes dialog-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes feedback-rise{0%{opacity:0;transform:translate(-50%,10px) scale(.8)}15%{opacity:1;transform:translate(-50%,-7px) scale(1.12)}70%{opacity:1;transform:translate(-50%,-24px) scale(1)}100%{opacity:0;transform:translate(-50%,-43px) scale(.9)}}@keyframes taunt-pop{from{opacity:0;scale:.8}to{opacity:1;scale:1}}
/* Lobby character roster */
.app-frame{max-width:1400px;margin:auto}.lobby{min-height:100svh;padding:25px 42px;background:radial-gradient(ellipse at 17% 42%,#28566455,transparent 45%)}.site-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:17px;border-bottom:1px solid #5d776451}.test-tag{font-size:10px;color:#aec9cd;border:1px solid #536e76;background:#112836;padding:4px 9px;letter-spacing:1px}.lobby-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:66px;align-items:start;padding:38px 0 20px}.hero-copy{position:relative;min-width:0}.hero-copy>.eyebrow{color:#84c9c7}.hero-copy h1{font-size:68px;line-height:1.16;font-weight:900;letter-spacing:-3px;margin:17px 0 19px;text-shadow:0 4px 2px #0007}.hero-copy h1 span{color:var(--gold)}.hero-copy>p{font-size:14px;line-height:1.9;color:#b5cacf}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.hero-actions>.btn{min-height:50px;font-size:15px}.hero-poster{position:relative;min-height:280px;margin-top:29px;overflow:hidden;border:1px solid #a37d4e;border-radius:8px;background:linear-gradient(90deg,#0b1b2f88,#20384911),none center 45%/cover;box-shadow:inset 0 0 0 4px #0a1c2bcc,0 10px 35px #0004}.poster-copy{position:relative;z-index:2;width:55%;padding:25px;pointer-events:none}.poster-copy strong{font-size:29px;font-weight:900;line-height:1.5;letter-spacing:2px;display:block;color:#f3d5a4;margin:17px 0}.poster-copy .eyebrow{font-size:9px;color:#8edbd7}.poster-tag{display:inline-block;color:#a8e9dd;border:1px solid #4ca9a1;padding:4px 7px;font-size:11px;background:#092933b8}.poster-badge{position:absolute;right:0;bottom:0;width:54%;height:100%}.poster-badge .portrait{object-position:50% 18%;mask-image:linear-gradient(90deg,transparent,#000 25%);height:100%}.poster-badge-footer{position:absolute;bottom:13px;right:14px;left:30px;padding:5px 8px;display:flex;justify-content:space-between;background:#061522bc;border:1px solid #b48a51;color:#f3dba9;font:10px var(--mono)}.hero-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:15px;color:#8eaeb7;font-size:11px}.hero-foot span:first-child{display:flex;gap:6px;align-items:center}.setup{min-width:0;padding:22px;border:1px solid #45616e;border-top:2px solid #a67a44;border-radius:7px;background:linear-gradient(135deg,#193746bb,#0c1d2bef);box-shadow:inset 0 1px #cbdfd511,0 12px 35px #0003}.section-label{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}.section-label h2{font-size:15px;letter-spacing:1px}.section-label h2>span{font:11px var(--mono);color:#e0b67b;margin-right:9px}.section-label .text-btn{font-size:11px;padding-right:0}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:20px;padding:4px;background:#081925;border:1px solid #405e6b;border-radius:5px}.mode-option{min-height:62px;padding:9px 12px;background:transparent;border:1px solid transparent;text-align:left}.mode-option strong{display:block;font-size:14px}.mode-option small{display:block;font-size:11px;line-height:1.6;color:#8aa6b3;margin-top:3px}.mode-option.active{border-color:#ab8757;background:linear-gradient(#4c4b3c,#263a3d);box-shadow:inset 0 1px #edd8a440}.mode-option.active strong{color:#f1d4a2}.mode-option.active small{color:#bfccc4}.role-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:2px 1px 10px}.role-option{position:relative;display:flex;align-items:center;flex-direction:column;justify-content:flex-end;min-width:0;min-height:103px;padding:0;border:1px solid #536877;background:#0a1b29;border-radius:4px;overflow:hidden;color:#c1d1d6;font-size:11px}.role-option .portrait{width:100%;height:78px;object-position:50% 20%}.role-option>span{width:100%;padding:5px 2px;text-align:center;background:#0d202de8;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-option.active{border-color:#e2bd7f;box-shadow:0 0 0 1px #c49d66,0 0 13px #e1b76644}.role-option.active>span{background:linear-gradient(#7c623d,#463a2a);color:#fff0ce}.role-option:disabled{filter:grayscale(.8);opacity:.38}.role-preview{display:grid;grid-template-columns:96px minmax(0,1fr);gap:15px;border-top:1px solid #3e5b67;padding-top:16px;margin-top:6px}.role-preview>.portrait{height:142px;border:1px solid #ae8a52;border-radius:5px}.role-preview h3{font-size:22px;display:flex;align-items:center;gap:8px;line-height:1.5;margin-bottom:4px}.role-title{font-size:11px;line-height:1.75;color:#91b3bd;margin-bottom:8px}.skill-brief{font-size:12px;line-height:1.8;color:#b9ccd3}.skill-brief b{color:#e4d2ad}.role-quote{font-family:var(--serif);font-size:12px;color:#83cec9;margin-top:9px}.start-block{margin-top:18px}.start-block>.btn-primary{min-height:52px;font-size:16px;letter-spacing:3px}.start-caption{font-size:11px;text-align:center;color:#8faab5;margin-top:11px;line-height:1.7}.continue-btn{display:flex;margin:5px auto 0}.lobby-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-top:13px;margin-top:7px;border-top:1px solid #36535e;color:#829eaa;font-size:11px}
/* Landscape phone arena */
@media(max-width:1100px) and (orientation:landscape){:root{--dock-h:170px;--seat-w:106px;--seat-h:148px}.game-header{height:48px;padding:2px 12px}.game-header .wordmark{font-size:18px;letter-spacing:2px}.game-header .brand-glyph{width:27px;height:27px;font-size:20px}.header-meta{gap:7px}.round-chip{font-size:9px}.round-chip b{font-size:12px}.header-actions{gap:4px}.turn-strip{top:7px;min-height:33px;padding:5px 10px;font-size:11px;max-width:44%;gap:7px}.deck-info{display:none}.arena-stage,.battlefield{top:48px}.table-hud{top:6px;left:10px;right:10px}.objective-banner{max-width:215px;padding:4px 7px;gap:5px}.objective-banner>span:first-child{font-size:9px}.objective-banner p{font-size:10px;line-height:1.5}.event-slip{max-width:230px;padding:5px 7px;gap:5px}.event-slip b{font-size:10px}.event-expand{font-size:9px}.opponents{inset:8px 16px 6px}.opponent{padding:0 5px 4px;border-radius:6px}.opponent-head{height:88px;margin:0 -5px 2px;border-radius:4px 4px 0 0}.opponent-name{font-size:12px;line-height:17px}.opponent-identity{font-size:9px;line-height:13px}.hp-row{min-height:14px;gap:2px}.hp-dot{width:6px;height:6px}.hp-number{font-size:9px;letter-spacing:-.5px}.equipment-row{font-size:8px;line-height:12px;min-height:12px;margin-top:0}.hand-number{font-size:9px;right:3px;top:4px}.hand-number .icon{width:10px;height:10px}.opponent.is-active:before,.opponent.is-responding:before{font-size:9px;line-height:13px;top:-8px;padding:0 6px}.arena-center,.board-center{top:63%;width:42vw}.action-spotlight{min-height:73px;padding:6px 10px;gap:9px;border-radius:6px}.spotlight-art{width:72px}.spotlight-art .card-illustration{width:72px;height:51px}.spotlight-art .portrait{width:44px;height:61px}.spotlight-copy strong{font-size:19px;line-height:1.3;margin-bottom:1px}.spotlight-copy p{font-size:10px}.spotlight-copy>.eyebrow{display:none}.spotlight-stamp{font-size:8px;top:-7px;padding:0 5px}.action-spotlight.empty{min-height:60px}.action-spotlight.empty .spotlight-stamp{font-size:23px;letter-spacing:4px}.battle-log{margin-top:4px}.battle-log li:last-child{font-size:9px;max-height:28px}.player-dock,.own-zone{grid-template-columns:190px minmax(0,1fr) 104px;gap:10px;padding:8px 12px}.self-panel{gap:8px;padding-right:8px}.self-portrait{flex-basis:66px;height:calc(100% + 16px);border-width:1px}.self-title h2{font-size:13px;line-height:1.35}.self-title .pill{font-size:8px;line-height:1.5;margin:2px 0}.self-title .hp-row{margin-top:4px;gap:2px}.self-title .hp-dot{width:6px;height:6px}.self-title .hp-number{font-size:8px}.self-equipment{font-size:8px;line-height:1.4;margin-top:3px}.self-info .own-skills{gap:3px;margin-top:5px}.self-info .skill-button{min-height:44px;padding:4px;font-size:9px;gap:3px}.skill-button .icon{width:11px;height:11px}.skill-status{display:none}.hand-label{font-size:9px;min-height:15px;padding-bottom:2px;line-height:1.4}.hand-label span:last-child{max-width:65%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hand-cards{min-height:140px;padding:10px 4px 3px;gap:6px}.hand-cards .playing-card{flex-basis:94px;width:94px;height:132px;min-height:132px;padding:4px;border-width:1.5px;border-radius:5px;gap:2px}.hand-cards .card-top{min-height:11px;line-height:11px}.hand-cards .card-rank{font-size:9px}.hand-cards .card-category{font-size:8px}.hand-cards .card-art{height:42px;min-height:42px}.hand-cards .card-name{font-size:16px;line-height:19px;letter-spacing:.5px}.hand-cards .card-summary{font-size:9px;line-height:11px;min-height:22px;letter-spacing:-.15px}.hand-cards .card-type{font-size:8px;line-height:10px;min-height:12px;padding-top:1px}.command-zone{padding:0}.turn-controls{gap:7px}.turn-controls .btn{min-height:48px;padding:9px 5px;font-size:12px;letter-spacing:.5px}.turn-hint{font-size:9px;line-height:1.7}.first-run{bottom:calc(100% + 9px);max-width:410px;padding:5px 10px;font-size:11px}.response-panel{bottom:calc(100% + 8px);max-height:calc(100svh - 80px);width:min(490px,65vw);padding:11px 13px}.response-heading{font-size:13px}.response-panel>p{font-size:11px;line-height:1.65}.response-actions{margin-top:8px;max-height:115px}.response-actions .btn{min-height:44px;font-size:11px}.taunt-bubble{font-size:10px;line-height:1.6;width:116px;padding:7px}.modal-backdrop{padding:10px}.modal{max-height:calc(100svh - 20px);max-width:650px}.modal-header{padding:9px 16px 7px}.modal-header h2{font-size:18px}.modal-header .eyebrow{font-size:8px}.modal-content{padding:12px 16px 15px}.action-card-detail.has-illustration{grid-template-columns:150px 1fr}.action-card-detail h3{font-size:25px}.target-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.target-choice{min-height:67px;padding:6px;gap:7px}.target-choice>.portrait{width:34px;height:48px}.target-choice b{font-size:11px}.target-choice small{font-size:9px}.modal-actions{margin-top:12px}.modal-actions .btn{min-height:44px;font-size:12px}.card-codex{grid-template-columns:repeat(4,minmax(0,1fr))}.card-codex .playing-card{height:182px;min-height:182px}.card-codex .card-art{height:67px;min-height:67px}.card-codex .card-name{font-size:20px}.role-guide-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.role-guide-grid .role-option{min-height:111px}.role-guide-grid .role-option>.portrait{height:85px}.spectator-note{padding:5px 8px;font-size:10px;bottom:calc(var(--dock-h) + 8px)}.player-feedback{font-size:23px}}
@media(max-height:410px) and (orientation:landscape){:root{--dock-h:150px;--seat-w:91px;--seat-h:125px}.opponent-head{height:70px}.opponent-name{font-size:11px;line-height:15px}.opponent-identity{font-size:8px;line-height:12px}.equipment-row{font-size:7px;min-height:11px;line-height:11px}.opponent .hp-dot{width:5px;height:5px}.opponent .hp-number{font-size:8px}.opponents{inset:7px 10px 5px}.opponent:nth-child(1),.opponent:nth-child(3),.opponents.four .opponent:nth-child(4){top:36%}.opponents.four .opponent:nth-child(3){top:0}.table-hud{top:4px}.objective-banner{max-width:193px;padding:3px 6px}.objective-banner p{font-size:9px}.event-slip{max-width:196px;background:#0b2330a8}.event-slip .icon{width:12px;height:12px}.event-slip b{font-size:9px}.event-expand{display:none}.player-dock{grid-template-columns:165px minmax(0,1fr) 91px;gap:8px;padding:6px 9px}.self-portrait{flex-basis:55px}.self-title h2{font-size:12px}.self-title .pill{font-size:7px}.self-equipment{display:none}.self-info .own-skills{margin-top:4px;gap:3px}.self-info .skill-button{font-size:9px;padding:3px;min-height:44px}.skill-status{display:none}.hand-label{font-size:8px;line-height:12px;min-height:12px}.hand-cards{min-height:126px;padding-top:9px;gap:5px}.hand-cards .playing-card{flex-basis:85px;width:85px;height:119px;min-height:119px;gap:1px;padding:4px}.hand-cards .card-art{height:36px;min-height:36px}.hand-cards .card-name{font-size:15px;line-height:18px}.hand-cards .card-summary{font-size:8px;line-height:10px;min-height:20px}.hand-cards .card-type{font-size:7px;line-height:9px;min-height:10px}.turn-controls .btn{font-size:11px;min-height:44px}.turn-hint{font-size:8px;line-height:1.5}.arena-center,.board-center{top:66%;width:43vw}.action-spotlight{min-height:59px;padding:4px 8px;gap:7px}.spotlight-art,.spotlight-art .card-illustration{width:58px}.spotlight-art .card-illustration{height:41px}.spotlight-copy strong{font-size:16px}.spotlight-copy p{font-size:9px;line-height:1.5}.spotlight-stamp{font-size:7px}.battle-log li:last-child{font-size:8px;line-height:1.5;max-height:24px}.taunt-bubble{font-size:9px;width:105px}.first-run{max-width:365px;font-size:10px;padding:3px 8px}.first-run .text-btn{font-size:10px}.response-panel{max-height:calc(100svh - 52px)}.response-actions{max-height:99px}}
/* Portrait fallback: fully playable, with a clear landscape invitation. */
@media(orientation:portrait){body:has(.arena-shell){overflow:auto}.game-shell{height:auto;min-height:100svh;overflow:hidden;background-position:50% 0;background-attachment:fixed}.game-header{position:relative;height:57px;padding:6px 12px}.game-header .wordmark{font-size:20px}.header-meta{gap:7px}.header-actions{gap:4px}.round-chip{font-size:9px}.round-chip b{font-size:13px}.turn-strip{position:relative;top:auto;left:auto;transform:none;max-width:none;margin:8px 10px 0;min-height:34px;justify-content:space-between;font-size:11px;padding:6px 11px}.deck-info{font-size:9px}.arena-stage,.battlefield{position:relative;inset:auto;min-height:345px;padding:13px 10px 0;display:flex;flex-direction:column}.table-hud{position:static;display:flex;gap:7px;align-items:stretch;z-index:4;margin-bottom:15px}.objective-banner{flex:1;min-width:0;max-width:none;padding:6px 7px;gap:5px}.objective-banner>span:first-child{display:none}.objective-banner p{font-size:10px;line-height:1.6}.event-slip{max-width:50%;padding:6px 7px;min-height:44px;gap:5px}.event-slip .icon{width:13px;height:13px}.event-slip b{font-size:10px;white-space:normal;line-height:1.4}.event-expand{display:none}.opponents,.opponents.four{position:relative;inset:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;pointer-events:auto;width:100%;z-index:5}.opponents.four{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.opponents>.opponent,.opponents.four>.opponent:nth-child(n){position:relative;top:auto;right:auto;left:auto;bottom:auto;transform:none;width:100%;height:165px;padding:0 5px 5px}.opponent-head{height:100px;margin:0 -5px 3px}.opponent-name{font-size:12px;line-height:18px}.opponent-identity{font-size:9px;line-height:14px}.hp-row{gap:2px;min-height:14px}.hp-dot{width:6px;height:6px}.hp-number{font-size:9px;letter-spacing:-.6px;margin-left:1px}.equipment-row{font-size:8px;line-height:12px;min-height:12px}.hand-number{font-size:9px;padding:1px 3px;right:3px;top:4px}.hand-number .icon{width:10px;height:11px}.opponents.four .opponent{height:155px}.opponents.four .opponent-head{height:91px}.opponents.four .opponent-name{font-size:11px}.opponents.four .opponent-identity{font-size:8px}.opponents.four .hp-dot{width:5px;height:5px}.opponents.four .hp-row{gap:1px}.opponents.four .hp-number{font-size:8px}.opponents.four .equipment-row{font-size:7px}.opponent.is-active:before,.opponent.is-responding:before{font-size:8px;line-height:13px;top:-8px;padding:0 5px}.countdown{font-size:9px;gap:2px}.countdown .icon{width:10px;height:10px}.arena-center,.board-center{position:relative;left:auto;top:auto;transform:none;width:100%;min-height:118px;display:flex;flex-direction:column;justify-content:center;padding:8px 7px 5px}.action-spotlight{min-height:78px;padding:8px 12px;gap:13px;width:100%;max-width:350px;margin:auto}.spotlight-art{width:78px}.spotlight-art .card-illustration{width:78px;height:55px}.spotlight-copy strong{font-size:21px}.spotlight-copy p{font-size:11px}.spotlight-art .portrait{width:49px;height:66px}.action-spotlight.empty{min-height:75px}.action-spotlight.empty .spotlight-stamp{font-size:25px}.battle-log{margin-top:5px}.battle-log li:last-child{font-size:10px;line-height:1.6;max-height:32px}.player-dock,.own-zone{position:relative;bottom:auto;height:auto;display:grid;grid-template-columns:1fr;gap:9px;padding:12px 11px calc(13px + env(safe-area-inset-bottom));border-top:2px solid #967c50}.self-panel{height:103px;gap:12px;padding:0;border:0;align-items:center}.self-portrait{height:115px;flex-basis:76px;border-width:1px;align-self:flex-end}.self-info{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center}.self-title h2{font-size:16px;line-height:1.4}.self-title .pill{font-size:9px}.self-title .hp-row{gap:2px;margin-top:3px}.self-title .hp-dot{width:7px;height:6px}.self-title .hp-number{font-size:9px}.self-equipment{font-size:9px;margin-top:3px}.self-info .own-skills{margin:0;gap:4px}.self-info .skill-button{font-size:10px;min-height:44px;padding:5px;gap:3px;line-height:1.35}.skill-status{font-size:8px;line-height:1.4;margin-top:1px}.hand-label{font-size:10px;padding:0 2px 3px;line-height:1.5}.hand-cards{min-height:176px;gap:8px;padding:12px 3px 7px}.hand-cards .playing-card{flex-basis:111px;width:111px;height:164px;min-height:164px;gap:3px;padding:5px}.hand-cards .card-art{height:56px;min-height:56px}.hand-cards .card-name{font-size:19px;line-height:22px}.hand-cards .card-summary{font-size:10px;line-height:13px;min-height:26px}.hand-cards .card-type{font-size:9px}.hand-cards .card-top{min-height:13px;line-height:13px}.hand-cards .card-rank{font-size:10px}.hand-cards .card-category{font-size:9px}.command-zone{padding:0}.turn-controls{flex-direction:row;align-items:center;gap:12px}.turn-controls>.btn{order:1;min-height:47px;width:auto;min-width:125px;padding:10px 15px;font-size:13px}.turn-hint{order:0;text-align:left;flex:1;font-size:11px;line-height:1.7}.orientation-tip{display:flex;justify-content:center;align-items:center;gap:6px;padding:8px 10px;background:#0a1e2a;color:#83b9c1;font-size:10px;letter-spacing:1px;border-top:1px solid #34515e}.response-panel{position:relative;bottom:auto;left:auto;transform:none;grid-column:1;grid-row:1;width:100%;max-height:350px;padding:12px;z-index:40;box-shadow:0 7px 25px #0006}.response-heading{font-size:14px}.response-panel>p{font-size:12px}.response-actions{max-height:190px}.response-actions .btn{font-size:12px}.first-run{position:relative;left:auto;bottom:auto;transform:none;width:100%;padding:6px 9px;grid-row:1;grid-column:1;max-width:none;font-size:11px;box-shadow:none}.first-run p{line-height:1.7}.first-run .text-btn{font-size:11px}.spectator-note{position:relative;left:auto;bottom:auto;margin:9px 10px 0;padding:7px 8px;font-size:11px;z-index:10}.save-warning{position:relative;top:auto;left:auto;transform:none;text-align:center;font-size:10px}.taunt-bubble{top:auto;bottom:calc(100% + 5px);left:0;width:133px;font-size:10px;line-height:1.6;padding:6px 8px}.taunt-bubble:before{left:20px;top:auto;bottom:-6px;transform:rotate(-45deg)}.opponent:nth-last-child(1) .taunt-bubble{right:0;left:auto}.opponent:nth-last-child(1) .taunt-bubble:before{right:20px;top:auto;bottom:-6px;transform:rotate(-45deg)}.modal-backdrop{align-items:flex-end;padding:12px 10px calc(12px + env(safe-area-inset-bottom))}.modal{max-height:calc(100svh - 28px)}.modal-header{padding:13px 16px 8px}.modal-header h2{font-size:20px}.modal-content{padding:13px 16px 19px}.action-card-detail.has-illustration{grid-template-columns:1fr;gap:13px}.action-card-detail.has-illustration .detail-art{max-width:255px;margin:auto}.target-choice{padding:7px 8px;gap:8px;min-height:73px}.target-choice>.portrait{width:37px;height:53px}.target-choice b{font-size:12px}.target-choice small{font-size:10px}.modal-actions .btn{font-size:12px;padding:10px 8px}.card-codex{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 11px}.card-codex .playing-card{height:218px;min-height:218px;padding:8px;gap:6px}.card-codex .card-art{height:96px;min-height:96px}.card-codex .card-name{font-size:23px}.card-codex .card-summary{font-size:12px;line-height:16px;min-height:32px}.role-guide-grid{gap:6px}.role-guide-grid .role-option{min-height:110px}.role-guide-grid .role-option>.portrait{height:85px}.guide-role-head{gap:11px}.guide-role-head>.portrait{width:90px;height:135px}.guide-role-head h3{font-size:21px}.audio-control{grid-template-columns:67px 1fr 36px;gap:8px}.player-feedback{font-size:24px}}
@media(max-width:760px){.lobby{padding:18px 18px 23px}.lobby-grid{grid-template-columns:1fr;gap:25px;padding-top:26px}.hero-copy h1{font-size:52px;line-height:1.2;margin:13px 0}.hero-copy>p{font-size:13px}.hero-actions{margin-top:18px}.hero-poster{min-height:230px;margin-top:21px}.poster-copy{padding:22px}.poster-copy strong{font-size:27px}.hero-foot{font-size:10px}.setup{padding:17px}.role-strip{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.role-option{min-height:92px;font-size:10px}.role-option>.portrait{height:68px}.role-preview{grid-template-columns:84px 1fr;gap:12px}.role-preview>.portrait{height:127px}.role-preview h3{font-size:20px}.skill-brief{font-size:11px}.role-title{font-size:10px}.lobby-footer{justify-content:center;gap:4px 10px}.lobby-footer>span{width:100%;text-align:center}.section-label h2{font-size:14px}.section-label>.eyebrow{font-size:9px}.mode-option{padding:8px 9px;min-height:62px}.mode-option strong{font-size:13px}.mode-option small{font-size:10px}}
@media(max-width:1100px) and (orientation:landscape){.arena-edition{display:none}.opponents>.opponent:nth-child(1),.opponents:not(.four)>.opponent:nth-child(3),.opponents.four>.opponent:nth-child(4){top:auto;bottom:0}.response-panel{bottom:calc(100% + 6px);max-height:calc(100svh - var(--dock-h) - 58px);overflow:auto}.response-actions{max-height:105px}}
.self-info .own-skills>.skill-button:last-child:has(>.icon:only-child){display:none}
@media(min-width:1500px){:root{--dock-h:254px;--seat-w:172px;--seat-h:238px}.opponent-head{height:163px}.opponent-name{font-size:16px}.player-dock{grid-template-columns:310px minmax(0,1fr) 185px;gap:25px;padding:15px 35px}.self-portrait{flex-basis:121px}.self-title h2{font-size:20px}.playing-card{flex-basis:145px;width:145px;height:197px;padding:8px;gap:5px}.card-art{height:72px;min-height:72px}.card-name{font-size:23px}.card-summary{font-size:12px;line-height:15px;min-height:30px}.card-type{font-size:10px}.hand-cards{min-height:212px}.command-zone .btn{min-height:60px;font-size:17px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.playing-card:hover,.playing-card.is-selected,.playing-card.selected,.playing-card[aria-pressed="true"]{transform:none}.player-feedback{opacity:1;transform:translate(-50%,-12px)}}
@media(max-height:410px) and (orientation:landscape){.arena-center,.board-center{top:auto;bottom:3px;transform:translateX(-50%);padding:0}.action-spotlight{min-height:44px;height:44px;padding:3px 7px;gap:7px}.spotlight-art,.spotlight-art .card-illustration{width:47px}.spotlight-art .card-illustration{height:33px}.spotlight-art .portrait{width:27px;height:36px}.spotlight-copy strong{font-size:15px;line-height:18px;margin:0}.spotlight-copy p{font-size:9px;line-height:13px}.spotlight-stamp{font-size:7px}.action-spotlight.empty{min-height:44px;height:44px}.action-spotlight.empty .spotlight-stamp{font-size:20px}.battle-log{display:none}.self-info .skill-button{white-space:nowrap}.self-info .own-skills{margin-top:4px}}
.portrait-frame{display:block}.self-info{min-height:0}
@media(max-height:410px) and (orientation:landscape){:root{--dock-h:168px}.self-panel,.hand-zone{min-height:0}.player-dock,.own-zone{align-items:stretch}.self-panel{height:100%}.hand-zone{justify-content:flex-end}.hand-cards{min-height:0;height:134px;flex:none}.self-info{align-self:center}.response-panel{max-height:calc(100svh - var(--dock-h) - 58px)}}
@media(max-width:1100px) and (orientation:landscape){.response-panel{padding:9px 11px}.response-panel:before{margin-bottom:3px;font-size:9px;line-height:12px}.response-heading{font-size:13px;line-height:18px}.response-panel>p{font-size:11px;line-height:16px;margin-top:4px}.response-actions{margin-top:6px;padding:1px 1px 3px;gap:6px}.response-actions .btn-secondary{grid-column:auto}.response-actions .btn:only-child{grid-column:1/-1}.response-actions .btn{min-height:44px;padding:7px 6px}}
@media(max-width:600px) and (orientation:portrait){.arena-edition{display:none}.game-header .fullscreen-btn{display:none}.game-header{padding-left:10px;padding-right:10px;gap:8px}.game-header .wordmark{font-size:18px;letter-spacing:1px;gap:6px;min-width:0;flex:0 1 auto}.game-header .brand-glyph{width:28px;height:28px;font-size:21px;flex:none}.header-meta{gap:7px;min-width:0;flex:none}.header-actions{gap:4px;flex:none}.round-chip{font-size:9px}.round-chip b{font-size:12px}.game-header .icon-btn{min-width:44px;width:44px;flex:none}}

/* Flat visual foundation. Geometry preserves the verified arena layout. */
:root{--bg:#111817;--panel:#1a2423;--ink:#e7e5da;--muted:#9ca8a2;--line:#435b59;--bronze:#bfbdae;--gold:#e7e5da;--cyan:#66e6cf;--red:#e4614c;--violet:#b19ac5;--paper:#e7e5da;--sheet:#172322;--dock-h:246px}
html{background:#111817;scrollbar-color:#607977 #121c1b}body{color:#e7e5da;background:#111817}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,#090e0e0b 3px 4px);z-index:70}button{border-radius:0;font-weight:600}.icon-btn,.btn,.btn-primary,.btn-secondary,.btn-red,.btn-lime,.audio-toggle,.audio-toggle.on,.skill-button,.skill-button.can-use,.skill-button.rest.can-use{border-radius:0;box-shadow:none;text-shadow:none}.btn{color:#e4e3dc;background:#273b39;border:1px solid #7e9a98;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));font-weight:800}.btn-primary{color:#171d1d;background:#e7e5da;border-color:#e7e5da;box-shadow:inset 0 -4px #ba4e3d}.btn-primary:hover{background:#f6f3e6;filter:none}.btn-secondary{background:#1a2b2a;color:#d3d1c5;border-color:#53726f}.btn-red{background:#c75240;color:#fff3df;border-color:#ea7361}.btn-lime{background:#63cbb6;border-color:#8bdfd8;color:#122d2b}.btn:disabled{background:#293635;border-color:#465b59;color:#74897b;box-shadow:none}.icon-btn{background:#172726;border-color:#566f6d;color:#d5d3c7}.icon-btn:hover{border-color:#91d3ce;color:#b9f3ee}.text-btn{color:#c0bdac}.text-btn:hover{color:#e7e5da}.pill{border-radius:0;background:transparent;letter-spacing:.5px}.eyebrow{color:#89bcb8;letter-spacing:1.7px}.muted{color:#88a5a3}.brand-glyph{border:0;border-radius:0;box-shadow:none;background:#df5d47;color:#172322;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);font-family:var(--sans)}.wordmark{color:#e7e5da;font-family:var(--sans);font-weight:1000;font-style:italic;letter-spacing:1px}.arena-edition{font-style:normal;color:#79b9b4}.round-chip{color:#8caeab}.round-chip b{color:#e5e4d5}.live-dot{background:#72d9d0;box-shadow:none;border-radius:0;transform:rotate(45deg)}
/* Flat stage: copper frames and photographic table are deliberately removed. */
.game-shell{background-color:#162221;background-image:linear-gradient(90deg,#8eb6b30b 1px,transparent 1px),linear-gradient(#8eb6b308 1px,transparent 1px);background-size:48px 48px;background-attachment:initial}.game-shell:before{background:linear-gradient(137deg,transparent 0 24%,#7594910a 24% 34%,transparent 34% 63%,#dad8ce08 63% 64%,transparent 64%),linear-gradient(0deg,#0f1918aa,transparent 50%)}.game-shell:after{content:"";position:absolute;z-index:-1;left:28%;right:28%;top:24%;bottom:calc(var(--dock-h) + 20px);border:1px solid #80a6a322;transform:rotate(-10deg);clip-path:polygon(0 15%,15% 15%,15% 0,100% 0,100% 85%,85% 85%,85% 100%,0 100%);background:repeating-linear-gradient(90deg,transparent 0 33px,#98b6b409 33px 34px)}.game-header{background:#131f1ef0;border-bottom:1px solid #6d8b8855;box-shadow:none}.turn-strip{border-radius:0;background:#162b29f0;border:1px solid #598783;box-shadow:none;clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px)}.turn-strip.your-turn{background:#294f4c;color:#c0efeb;border-color:#7dbbb6;box-shadow:none}.turn-strip.response-turn{background:#6d3529;color:#f1d1ad;border-color:#dc7565;box-shadow:none}.deck-info{color:#7ebbb6}.table-hud{gap:14px}.objective-banner{background:#162927e0;border-left:3px solid #cac7b9;border-radius:0;box-shadow:none}.objective-banner>span:first-child{color:#e2e2c8}.objective-banner p{color:#c6c3b3}.event-slip{background:#182b29de;border:1px solid #617f7d;border-radius:0;box-shadow:none}.event-slip b{color:#d3d0c4}.event-slip>.icon{color:#c0bcab}.event-expand{color:#7db6b1}.save-warning{background:#95463a}.spectator-note{background:#182c2a;border-color:#657f7d}.orientation-tip{background:#152322;border-color:#476563;color:#90b6b3}
/* Transparent illustrated actors; irregular cutout ornaments never enclose the figure. */
.opponent{--seat-color:#c2bfaf;background:transparent;border:0;border-radius:0;box-shadow:none;padding-left:6px;padding-right:6px;overflow:visible;isolation:isolate}.opponent:after{z-index:-1;inset:10% -8px 32px;border:0;border-radius:0;background:linear-gradient(154deg,#59767424,#1a393638 64%,transparent 64%);clip-path:polygon(5% 4%,82% 0,100% 19%,94% 77%,74% 100%,7% 91%,0 50%);transform:rotate(-4deg)}.opponent:before{content:"";position:absolute;z-index:-1;left:-8px;top:16px;bottom:34px;width:19px;border-top:2px solid var(--seat-color);border-bottom:2px solid var(--seat-color);background:repeating-linear-gradient(0deg,transparent 0 8px,#90b5b233 8px 10px);transform:rotate(9deg)}.opponent[data-side="labor"]{--seat-color:#7ae2d9;border:0}.opponent[data-side="capital"]{--seat-color:#e97867;border:0}.opponent[data-side="merchant"]{--seat-color:#bd9acb;border:0}.opponent-head{overflow:visible;background:transparent;border-radius:0}.opponent-head:after{display:none}.portrait-frame{display:block;background:transparent;overflow:visible;border:0}.portrait{object-fit:contain;object-position:50% 100%;border:0;border-radius:0;background:transparent}.opponent-head .portrait{object-fit:contain;object-position:50% 100%;height:calc(100% + 15px);width:calc(100% + 18px);margin-left:-9px;margin-top:-15px;filter:drop-shadow(0 3px 0 #0b161588);animation:v4-actor-float 4.7s ease-in-out infinite}.opponent:nth-child(2n) .portrait{animation-delay:-1.4s}.opponent-name{color:#e8e8d8;font-family:var(--sans);font-weight:1000;font-style:italic;letter-spacing:.6px;text-shadow:2px 2px #142b29;line-height:1.3}.opponent-identity{color:var(--seat-color);font-size:10px;letter-spacing:1px}.hand-number{color:#d0cdc0;background:#152e2c;border:1px solid #658b88;border-radius:0;box-shadow:none;top:auto;bottom:3px;right:-1px;transform:rotate(3deg)}.hp-dot{background:#91cac5;border:0;border-radius:0;box-shadow:none;transform:skew(-15deg)}.hp-dot.empty{background:#334c4a;border:1px solid #5a7976}.hp-number{color:#cac7b9}.opponent.is-active,.opponent.is-responding{border:0;box-shadow:none}.opponent.is-active:after{background:#69b2ac2b;outline:1px solid #8bc6c155;animation:v4-rune-breathe 2s ease-in-out infinite}.opponent.is-active:before,.opponent.is-responding:before{content:"行动";position:absolute;top:-9px;bottom:auto;left:50%;width:auto;padding:1px 8px;background:#98c7c3;border:0;border-radius:0;box-shadow:none;color:#213533;font:900 10px/1.6 var(--sans);transform:translateX(-50%) rotate(-4deg);z-index:3}.opponent.is-responding:before{content:"响应";background:#d96351;color:#271917}.opponent.status-slacking{filter:saturate(.5);border:0}.opponent.status-out{opacity:.28;filter:grayscale(1)}.countdown{color:#dc8476}.out-stamp{color:#849b99}.equipment-row{overflow:visible;gap:4px;min-height:23px;margin-top:3px}.equip-slot{display:inline-grid;place-items:center;flex:none;width:30px;height:22px;min-width:0;border:1px solid #658784;background:#253b39;clip-path:polygon(4px 0,100% 0,100% calc(100% - 4px),calc(100% - 4px) 100%,0 100%,0 4px);vertical-align:middle;color:#c1bdac}.equip-slot>.card-illustration{width:100%;height:100%;object-fit:contain}.equip-slot>.icon{width:15px;height:15px}.equip-slot.empty{color:#668986;background:#19302e;border-style:dashed;border-color:#496c69;opacity:.65}.equip-slot.is-target{outline:2px solid #8de4dd;outline-offset:3px;background:#3b6965;opacity:1}.taunt-bubble{background:#e5e2d0;color:#203231;border:0;border-radius:0;box-shadow:4px 4px #314d4b3d;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,14px 100%,5px calc(100% - 7px),0 100%);font-weight:900}.taunt-bubble:before{display:none}
/* Flat office deck and a real staggered arc. */
.player-dock,.own-zone{background:#172625f0;border-top:1px solid #9abab788;box-shadow:none}.player-dock:before{top:0;left:18%;right:12%;height:3px;background:repeating-linear-gradient(90deg,#c2bead 0 30px,transparent 30px 38px)}.self-panel{border-right:1px dashed #6c8b8855;overflow:visible}.self-portrait{padding:0;display:block;border:0!important;border-radius:0!important;background:transparent;box-shadow:none;overflow:visible;isolation:isolate}.self-portrait:after{inset:12% -8% 0;border:0;background:linear-gradient(145deg,#83b8b422 0 70%,transparent 70%);clip-path:polygon(10% 0,95% 5%,100% 82%,54% 100%,0 78%);z-index:-1;transform:rotate(6deg)}.self-portrait>.portrait{height:calc(100% + 12px);margin-top:-12px;object-fit:contain;object-position:50% 100%;filter:drop-shadow(0 3px 0 #0b181799);animation:v4-actor-float 5.2s ease-in-out infinite}.self-portrait[data-do="player-info"]{cursor:pointer;touch-action:manipulation}.self-portrait:focus-visible{outline:2px dashed #8be4dd;outline-offset:5px}.self-title h2{color:#e7e5d1;font-family:var(--sans);font-weight:1000;font-style:italic;letter-spacing:.5px}.self-title .pill{color:#c8c5b5;border-radius:0}.self-title .hp-number{color:#c7c4b4}.self-equipment{gap:5px;line-height:1}.self-equipment .equip-slot{width:35px;height:25px}.skill-button,.self-info .skill-button{clip-path:polygon(5px 0,100% 0,100% calc(100% - 5px),calc(100% - 5px) 100%,0 100%,0 5px);border-radius:0;border-color:#557b78;background:#1e3735;color:#d2cfc3;box-shadow:none;font-weight:900}.skill-button.can-use{background:#86b7b3;border-color:#c6c3b3;color:#152f2d;box-shadow:none}.skill-button.rest.can-use{background:#c95f4f;border-color:#e7897b;color:#f0e4c3}.skill-status{color:#81a29f}.can-use .skill-status{color:#254a47}.rest.can-use .skill-status{color:#f0d5b0}.hand-zone{position:relative;container-type:inline-size;overflow:visible}.hand-label{color:#92b4b1;font-family:var(--mono);font-size:10px;letter-spacing:.4px}.hand-label b{color:#d0cec1}.hand-cards{height:calc(100% - 18px);min-height:0;display:flex;justify-content:center;align-items:flex-end;gap:0;overflow:visible;padding:12px 16px 12px;isolation:isolate}.hand-cards .playing-card{--card-w:121px;flex-basis:var(--card-w);width:var(--card-w);margin-left:min(0px,calc((100cqw - 32px - var(--card-count,1)*var(--card-w)) / max(1,var(--card-count,1) - 1)));margin-bottom:calc(24px - var(--card-lift,0px));transform:rotate(var(--card-angle,0deg));transform-origin:50% 100%;z-index:calc(2 + var(--card-index,0));will-change:transform;margin-top:0;overflow:visible}.hand-cards .playing-card:first-child{margin-left:0}.playing-card{padding:6px;gap:3px;border:1px solid #181f1e;border-radius:0;background:#e8e5d5;color:#192b29;box-shadow:3px 4px #07181780,inset 0 0 0 3px #c5c1b1;isolation:isolate}.playing-card:before{inset:3px;border:1px solid #657f7d80;border-radius:0;z-index:-1;clip-path:polygon(0 0,77% 0,100% 13%,100% 100%,15% 100%,0 89%)}.playing-card:after{top:0;left:0;right:0;height:4px;background:var(--card-color);opacity:1}.card-top{color:#324b49}.card-rank{color:#1e3634;font-weight:900}.card-rank.red-suit{color:#b34936}.card-category{font-weight:1000;letter-spacing:1px;color:var(--card-color)}.card-art{background:#dfdfcc;border:0;border-radius:0;position:relative}.card-art:after{content:"";position:absolute;inset:3px;border-block:1px solid #6b8d8a33;pointer-events:none}.card-name{color:#192f2d;text-shadow:none;font-family:var(--sans);font-weight:1000;font-style:italic;letter-spacing:0;line-height:1.1}.card-summary{color:#445c5a;font-weight:700;letter-spacing:-.3px}.card-type{color:#587674;border-color:#8baeab;background:#cecbbd;font-weight:800;padding-left:4px}.playing-card.is-playable{border-color:#a4e6e1;box-shadow:inset 0 0 0 2px #73b7b1,0 0 0 1px #64b2ac,3px 5px #061a1880}.playing-card.is-playable .card-type{background:#8fbeba;color:#173c39;border-color:#6ca7a2}.playing-card.is-waiting{box-shadow:inset 0 0 0 2px #9eb9b7,3px 4px #0612117a}.playing-card.is-waiting .card-art{filter:saturate(.65);opacity:.83}.playing-card.is-waiting .card-type{background:#d4d4c3;color:#67705c}.hand-cards .playing-card.is-selected,.hand-cards .playing-card.selected,.hand-cards .playing-card[aria-pressed="true"]{transform:translateY(-15px) rotate(0);border-color:#f4d5ae;background:#f3e7cd;box-shadow:inset 0 0 0 2px #b94736,0 0 0 2px #e2705f,4px 8px #102422a3;z-index:50}.hand-cards .playing-card.is-selected:after{height:6px;background:#c74d3a}.hand-cards .playing-card:hover{transform:translateY(-10px) rotate(0);z-index:49}.hand-zone:has(.is-selected) .hand-label{opacity:.22}.hand-empty{border:1px dashed #537b78;color:#70928f;border-radius:0;background:transparent}.turn-hint{color:#8db3b0}.command-zone .btn-primary{font-family:var(--sans);font-weight:1000;letter-spacing:1px}.first-run{background:#204542f0;color:#d3d0c4;border:1px solid #93c5c1;border-radius:0;box-shadow:none}.first-run b{color:#e2e4bc}.response-panel{border:1px solid #d16e5f;border-top:4px solid #cb5846;border-radius:0;background:#233332f5;box-shadow:5px 6px #09171677}.response-panel:before{color:#c97c70}.response-heading{color:#f0d7ad;font-weight:1000}.response-heading .icon{color:#da6d5c}.response-panel>p{color:#c2bead}.response-actions .btn-secondary{background:#203d3b;color:#c9c6b8;border-color:#5e827f}.response-actions .btn-primary{background:#d8bc8e;color:#352e1a;border-color:#dcc69d}
/* Avatar-first targeting, circuit talisman lock marks, two icon equipment slots. */
.target-rune{position:absolute;display:grid;place-items:center;z-index:8;pointer-events:none;left:50%;top:31%;width:47px;height:47px;transform:translate(-50%,-50%) rotate(-12deg);border:1px solid #8ce3dc;border-radius:0;background:#294f4c11;clip-path:polygon(0 0,35% 0,35% 3px,3px 3px,3px 35%,0 35%,0 0,100% 0,100% 35%,calc(100% - 3px) 35%,calc(100% - 3px) 3px,65% 3px,65% 0,100% 0,100% 100%,65% 100%,65% calc(100% - 3px),calc(100% - 3px) calc(100% - 3px),calc(100% - 3px) 65%,100% 65%,100% 100%,0 100%,0 65%,3px 65%,3px calc(100% - 3px),35% calc(100% - 3px),35% 100%,0 100%);animation:v4-target-breathe 1.8s ease-in-out infinite}.target-rune .icon{width:26px;height:26px;color:#9aefe8}.targetable{cursor:crosshair;outline:0!important}.opponent.targetable:after{background:#5aafa840;outline:1px dashed #8fe3dc;outline-offset:4px;animation:v4-rune-breathe 1.8s ease-in-out infinite}.targetable .portrait{filter:drop-shadow(1px 0 #7dd6cf) drop-shadow(-1px 0 #7dd6cf) drop-shadow(0 -1px #7dd6cf)}.targetable:hover .portrait{filter:drop-shadow(2px 0 #b3f0eb) drop-shadow(-2px 0 #b3f0eb) drop-shadow(0 -2px #b3f0eb)}.target-selected .target-rune{border-color:#e98171;background:#a3352422;animation:none;transform:translate(-50%,-50%) rotate(0)}.target-selected .target-rune .icon{color:#ef7d6c}.target-selected .portrait{filter:drop-shadow(2px 0 #e06957) drop-shadow(-2px 0 #e06957) drop-shadow(0 -2px #e06957)}.opponent.target-selected:after{background:#a83e2e38;outline:1px solid #dc7767}.target-muted .portrait{opacity:.34;filter:saturate(.35)}.target-muted .opponent-name,.target-muted .equipment-row,.target-muted .hp-row,.target-muted .opponent-identity{opacity:.5}.self-panel.targetable{outline:none}.self-panel.targetable .self-portrait:after{background:#6db9b348;outline:1px dashed #a0e3dd}.self-panel.target-selected .self-portrait:after{background:#ba51413b;outline:1px solid #e38d80}.self-panel.target-muted .self-portrait{opacity:.48}.self-portrait>.target-rune{top:42%;width:50px;height:50px}.board-center:has(.targeting-bar){z-index:35;top:auto;bottom:9px;width:min(54vw,600px);transform:translateX(-50%)}.targeting-bar{display:grid;grid-template-columns:69px minmax(0,1fr) 44px;gap:12px;align-items:center;padding:12px;background:#dad8ce;border:1px solid #4e6c6a;border-left:5px solid #b94a39;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));box-shadow:none;text-align:left;color:#223b39}.targeting-art{display:block;width:69px;height:52px;overflow:hidden;position:relative}.targeting-art>.card-illustration{width:100%;height:100%}.targeting-art>.portrait{object-fit:contain;width:100%;height:100%}.targeting-bar .eyebrow{font-size:9px;letter-spacing:1px;color:#557a77}.targeting-bar strong{display:block;font-size:20px;line-height:1.3;font-weight:1000;font-style:italic;letter-spacing:-.4px;color:#243c3a}.targeting-bar p{font-size:12px;line-height:1.7;color:#4d6c69;margin-top:3px}.targeting-cost{display:block;font-size:10px;color:#aa4535;line-height:1.6;margin-top:3px}.targeting-bar>.icon-btn{color:#3c5b58;background:#c8c5b5;border-color:#678683;width:44px;height:44px}.target-zones{display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 11px;background:#192e2ced;border:1px solid #5d807d;margin-top:7px;box-shadow:none}.zone-target{display:flex;align-items:center;gap:7px;margin-right:7px;max-width:120px}.zone-target>.portrait{width:34px;height:49px}.zone-target>b{font-size:11px;font-weight:900;color:#c9c6b8}.zone-choice{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:76px;min-width:44px;min-height:60px;padding:5px;border:1px solid #6b9692;background:#2c4b48;clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px);color:#cfccbf;box-shadow:none}.zone-choice:hover{background:#437c77;color:#edf0c7}.zone-choice>.card-illustration{width:43px;height:31px}.zone-choice>.icon{width:24px;height:24px}.zone-choice small{display:block;font-size:10px;line-height:1.35;max-width:100%;font-weight:800;text-align:center;overflow-wrap:anywhere}
/* Roster, guide, dialogs and audio share the same printed interface. */
.lobby{background:#142322}.site-top,.lobby-footer{border-color:#56747266}.test-tag{background:#1b3331;color:#c1bead;border-color:#668381;letter-spacing:2px}.hero-copy h1{font-family:var(--sans);font-weight:1000;font-style:italic;text-shadow:none;letter-spacing:-3px;color:#e3e4d1}.hero-copy h1 span{color:#ce5d4c}.hero-copy>.eyebrow{color:#80b8b3}.hero-copy>p{color:#9cb7b5}.hero-poster{background:#253b39;border:0;border-radius:0;box-shadow:none;clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,22px 100%,0 calc(100% - 22px));isolation:isolate;overflow:hidden}.hero-poster:before{content:"";position:absolute;width:230px;height:230px;right:-20px;top:15%;background:#81b8b322;transform:rotate(20deg);border:1px solid #92c3bf55;clip-path:polygon(0 25%,25% 0,100% 0,100% 75%,75% 100%,0 100%)}.poster-copy strong{font-family:var(--sans);font-weight:1000;font-style:italic;color:#c8c5b6}.poster-copy .eyebrow{color:#76a6a2}.poster-tag{background:#1f4542;border-color:#76a5a1;color:#c2bfae}.poster-badge .portrait{mask-image:none;object-fit:contain;object-position:50% 100%;animation:v4-actor-float 6s ease-in-out infinite}.poster-badge-footer{background:#172b29c9;border:0;border-left:3px solid #b55d50;color:#93bdba;font-size:9px}.hero-foot{color:#749a97}.setup{background:#1a2e2c;border:1px solid #577976;border-top:4px solid #8bb6b2;border-radius:0;box-shadow:none}.section-label h2{font-weight:1000;color:#d8d6cb}.section-label h2>span{color:#b5584a}.mode-switch{background:#142725;border-color:#557774;border-radius:0}.mode-option{border-radius:0}.mode-option strong{color:#cbc9bb;font-weight:900}.mode-option small{color:#789e9b}.mode-option.active{background:#8ebdb9;border-color:#c5c2b2;box-shadow:none}.mode-option.active strong{color:#183533}.mode-option.active small{color:#426c69}.role-option{border-radius:0;background:#213b39;border:0;box-shadow:none;isolation:isolate;overflow:hidden}.role-option:before{content:"";position:absolute;inset:10px 4px 20px;z-index:-1;background:#5b9a952b;clip-path:polygon(10% 0,100% 14%,85% 100%,0 90%);transform:rotate(8deg)}.role-option .portrait{object-fit:contain;object-position:50% 100%;transition:transform .2s}.role-option>span{background:#193230d9;color:#8bbab6;font-weight:900}.role-option.active{background:#315a57;box-shadow:none;outline:1px solid #8dcec9;outline-offset:1px}.role-option.active>span{background:#8cc8c3;color:#1e3e3b}.role-option.active .portrait{transform:translateY(-2px)}.role-preview{border-color:#557c79}.role-preview>.portrait{border:0;border-radius:0;object-fit:contain}.role-preview h3{font-weight:1000;color:#d4d2c6;font-style:italic}.role-title{color:#789f9c}.skill-brief{color:#9ab9b6}.skill-brief b{color:#d4d1c5}.role-quote{color:#85b4b0;font-family:var(--sans);font-weight:700}.start-caption{color:#789f9c}.lobby-footer{color:#709996}.modal-backdrop{background:#071514bd;backdrop-filter:blur(3px)}.modal{background:#1a2d2b;border:1px solid #67928e;border-top:4px solid #93bfbb;border-radius:0;box-shadow:7px 8px #07171677}.modal-header{background:#1b312fed;border-bottom:1px solid #5b817e55;backdrop-filter:none}.modal-header h2{color:#d5d3c8;font-family:var(--sans);font-weight:1000;font-style:italic}.modal-header .eyebrow{color:#7caba7}.modal p,.help-intro{color:#9bbcb9}.step-number{border:0;border-radius:0;background:#59918c;color:#152c2a}.help-step h3{color:#cdcabc;font-weight:900}.help-step p{color:#96bcb9}.rules-note{background:#243f3d;border-color:#79b7b2;color:#8ac0bc}.help-card-legend>div{border-color:#4c7773;background:#1f3a38;color:#7bada9}.help-card-legend b{color:#c6c3b3;font-weight:900}.menu-meta{border-color:#4a716e;color:#759e9b}.guide-role{border-color:#507e7a}.guide-role-head>.portrait{border:0;border-radius:0;object-fit:contain}.guide-role-head h3{color:#cdcabc;font-family:var(--sans);font-weight:1000;font-style:italic}.guide-role-head p{color:#83b0ac}.guide-role-head .text-btn{color:#80c4be}.skill-definition{color:#85b3af;border-color:#426c69}.skill-definition b{color:#bfbcab;font-weight:900}.action-card-detail{border-color:#4b7874}.action-card-detail h3,.codex-detail h3{font-family:var(--sans);font-weight:1000;font-style:italic;color:#d3d1c5;text-shadow:none}.action-card-detail p,.action-availability,.codex-detail>p:not(.card-tagline){color:#8bbcb8}.detail-art{background:#233c3a;border:1px solid #669591;border-radius:0;box-shadow:none}.detail-art>.card-rank{background:#d4d2c7;color:#254542;border:0;border-radius:0}.codex-detail>.detail-art{box-shadow:none;border-width:1px}.card-tagline{font-family:var(--sans);font-weight:900;color:#85bcb7}.action-cost{background:#213d3b;border-color:#6fb1ac;color:#8abeba}.action-cost.warning{background:#433b28;border-color:#b55a4c;color:#c5b58a}.card-facts{background:#203c3a;border-color:#65a39e}.card-facts>div{border-color:#416f6b}.card-facts dt{color:#6b9f9b}.card-facts dd{color:#8cbcb8}.codex-detail blockquote{color:#75a5a1;border-color:#477773;font-family:var(--sans);font-weight:800}.target-label{color:#c1bead}.target-choice{border-radius:0;border-color:#4c7e7a;background:#274643;box-shadow:none}.target-choice>.portrait{border:0;border-radius:0;object-fit:contain}.target-choice b{color:#c6c3b4;font-weight:900}.target-choice small{color:#72aba6}.target-choice.selected{background:#42817c;border-color:#84d1cb;box-shadow:none}.target-choice.selected b{color:#c0efeb}.target-choice.selected:after{color:#9dede6}.card-codex .playing-card{transform:none;margin:0}.full-log>div{border-color:#3e6b67;color:#8bc0bc}.full-log small{color:#659f9a}.outcome-card h3{color:#c8c5b6;font-weight:1000}.outcome-card>p{color:#6ba5a0}.result-stamp,.result-stamp.won{color:#bfbcab;border-color:#4e908b;text-shadow:none;font-family:var(--sans);font-weight:1000;font-style:italic}.result-player{background:#23403e;border-color:#437874;border-radius:0;color:#78b4af}.result-player b{color:#c7c4b4}.result-player>.portrait{border:0;border-radius:0;object-fit:contain}.result-footnote{color:#5d9a95}.audio-hero>.icon{color:#76bfb9}.audio-hero h3{color:#c7c4b4;font-weight:900}.audio-hero p,.audio-label small{color:#71aca7}.audio-label b{color:#c1bdac}.audio-row,.audio-control{border-color:#3d736f;color:#81c1bc}.audio-toggle{border-color:#498d87;background:#274e4b;color:#7bc8c2}.audio-toggle.on{background:#5dafa8;border-color:#bebba9;color:#193b38;box-shadow:none}.audio-control input{accent-color:#71c4bd}.audio-control output{color:#7bbdb8}.audio-status{border-color:#3d7f7a;color:#6abab3}.audio-caption{color:#59a19b}.voice-audition{color:#80c4be;border-color:#397b76;font-weight:700}.voice-role-label{display:flex;align-items:center;gap:10px;justify-content:space-between;font-size:12px;margin-bottom:10px}.voice-role-label>select{flex:1;min-width:0;max-width:230px;min-height:44px;padding:8px 10px;border:1px solid #4f938d;border-radius:0;background:#203e3c;color:#c1bdac;font:700 12px var(--sans);color-scheme:dark}.voice-direction{font-size:11px;line-height:1.7;color:#5da8a2!important;margin-top:4px}.toast{background:#223b39f5;border:1px solid #57a29c;border-radius:0;box-shadow:3px 4px #0b201e66;color:#c4c1b1}.boot-screen{background:#192524}.boot-mark{color:#d3d1c5;font-family:var(--sans);font-weight:1000;font-style:italic}.boot-icon{box-shadow:none;filter:grayscale(.6)}
.opponent .equipment-row{position:absolute;right:-7px;top:43%;height:auto;display:flex;flex-direction:column;margin:0;gap:3px}.opponent .equip-slot{width:23px;height:19px}.opponent .equip-slot>.icon{width:12px;height:12px}.meeting-badge{display:inline-block;font-size:8px;line-height:12px;padding:0 3px;border:0;background:#8d382b;color:#e3ca9b;white-space:nowrap}.opponent .meeting-badge{position:absolute;left:0;top:49%;max-width:110%;transform:rotate(-3deg);z-index:3}
@keyframes v4-actor-float{0%,100%{translate:0 0}50%{translate:0 -2px}}@keyframes v4-rune-breathe{0%,100%{opacity:.55}50%{opacity:1}}@keyframes v4-target-breathe{0%,100%{scale:.95;opacity:.62}50%{scale:1.06;opacity:1}}
/* Responsive targeting and non-clipping hand arcs. */
.hand-cards .playing-card{margin-bottom:calc(16px - clamp(0px,var(--card-lift,0px),16px));transform:rotate(var(--card-angle,0deg))}
@media(min-width:1500px){.hand-cards .playing-card{--card-w:145px}}
@media(max-width:1100px) and (orientation:landscape){:root{--dock-h:186px}.hand-cards .playing-card{--card-w:94px}.hand-cards{padding-bottom:10px}.opponent .equip-slot{width:22px;height:18px}.opponent .equipment-row{right:-5px;top:42%}.board-center:has(.targeting-bar){bottom:5px;width:min(51vw,480px)}.targeting-bar{grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;padding:4px 7px;border-left-width:3px;min-height:51px}.targeting-art{width:44px;height:35px}.targeting-bar .eyebrow{font-size:8px;line-height:11px;letter-spacing:.5px}.targeting-bar strong{font-size:16px;line-height:18px}.targeting-bar p{font-size:10px;line-height:13px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.targeting-cost{font-size:8px;line-height:11px;margin:0}.targeting-bar>.icon-btn{width:44px;height:44px;min-height:44px}.target-zones{gap:6px;margin-top:4px;padding:5px 7px}.zone-choice{min-height:48px;width:67px;padding:3px}.zone-choice>.card-illustration{width:32px;height:23px}.zone-choice>.icon{width:19px;height:19px}.zone-choice small{font-size:8px;line-height:11px}.zone-target{gap:4px;margin-right:4px}.zone-target>.portrait{width:25px;height:36px}.zone-target>b{font-size:9px}.self-info .self-equipment{position:absolute;left:2px;bottom:2px;z-index:5;display:flex;gap:3px}.self-equipment .equip-slot{width:27px;height:21px}.self-equipment .equip-slot>.icon{width:13px;height:13px}.self-info>.meeting-badge{font-size:7px;line-height:10px;padding:0 2px}.opponent-head .portrait{height:calc(100% + 9px);margin-top:-9px}.target-rune{width:37px;height:37px}.target-rune .icon{width:23px;height:23px}.self-portrait>.target-rune{width:39px;height:39px}.voice-role-label>select{max-width:260px}.role-guide-grid .portrait{object-fit:contain}}
@media(max-height:410px) and (orientation:landscape){:root{--dock-h:168px;--seat-w:91px;--seat-h:125px}.hand-label{display:none}.hand-zone{justify-content:flex-end;overflow:visible}.hand-cards{height:100%;min-height:0;padding:10px 16px 11px;overflow:visible}.hand-cards .playing-card{--card-w:85px;transform:rotate(clamp(-9deg,var(--card-angle,0deg),9deg));margin-bottom:calc(16px - clamp(0px,var(--card-lift,0px),16px));height:119px;min-height:119px}.hand-cards .playing-card.is-selected,.hand-cards .playing-card:hover{transform:translateY(-11px) rotate(0)}.hand-cards .card-name{font-size:16px;line-height:18px;letter-spacing:-.5px}.hand-cards .card-summary{font-size:8px;line-height:10px;font-weight:800}.hand-cards .card-type{font-size:7px}.opponent .equipment-row{right:-4px;top:42%;gap:2px}.opponent .equip-slot{width:20px;height:17px}.opponent .equip-slot>.icon{width:11px;height:11px}.opponent .meeting-badge{font-size:7px;line-height:10px;top:52%;left:-2px}.opponent-head .portrait{height:calc(100% + 8px);margin-top:-8px}.board-center:has(.targeting-bar){width:min(48vw,420px);bottom:4px;top:auto}.targeting-bar{grid-template-columns:34px minmax(0,1fr) 44px;gap:6px;min-height:46px;padding:0 5px;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px))}.targeting-art{width:34px;height:27px}.targeting-bar .eyebrow{font-size:9px;line-height:12px;letter-spacing:.2px}.targeting-bar strong{font-size:15px;line-height:18px}.targeting-bar p{display:none}.targeting-cost{font-size:9.5px;line-height:12px;max-height:none;white-space:normal;overflow:visible;overflow-wrap:anywhere}.targeting-bar:has(.targeting-cost){min-height:60px;padding-top:3px;padding-bottom:3px}.targeting-bar>.icon-btn{width:44px;height:44px;min-height:44px;background:transparent;border:0}.target-zones{min-height:50px;gap:5px;padding:4px 6px;margin-top:3px}.zone-choice{min-height:44px;height:44px;width:61px;padding:2px;gap:1px}.zone-choice small{font-size:7px;line-height:10px}.zone-choice>.card-illustration{width:30px;height:21px}.zone-choice>.icon{width:16px;height:16px}.zone-target>.portrait{width:22px;height:32px}.zone-target>b{font-size:8px;max-width:45px;line-height:12px}.self-info .self-equipment{display:flex;left:0;bottom:0}.self-equipment .equip-slot{width:24px;height:19px}.self-info .skill-button{font-size:10px;letter-spacing:-.4px}.self-info .skill-button .icon{width:10px;height:10px}.target-rune{width:32px;height:32px}.target-rune .icon{width:19px;height:19px}.self-portrait>.target-rune{width:34px;height:34px}.response-panel{max-height:calc(100svh - var(--dock-h) - 58px)}.response-actions .btn:only-child{grid-column:1/-1}.opponent .portrait{animation-duration:5.8s}.role-preview>.portrait{object-fit:contain}}
@media(orientation:portrait){:root{--dock-h:246px}.game-shell:after{left:13%;right:13%;top:18%;bottom:37%;border-color:#6c93902d}.opponent-head .portrait{height:calc(100% + 10px);margin-top:-10px}.opponent .equipment-row{right:-4px;top:44%;gap:3px}.opponent .equip-slot{width:23px;height:19px}.self-panel{height:112px}.self-portrait{height:129px;flex-basis:83px}.self-info{display:grid;grid-template-columns:minmax(0,1fr) minmax(85px,1fr);grid-template-rows:auto auto;gap:4px 7px}.self-header{grid-column:1;grid-row:1}.self-info .self-equipment{grid-column:1;grid-row:2;position:static;display:flex;margin:0;gap:4px}.self-info>.meeting-badge{grid-column:1;grid-row:3;justify-self:start;font-size:7px;line-height:10px}.self-info .own-skills{grid-column:2;grid-row:1/3;align-self:center;margin:0;gap:4px}.self-info .skill-button{min-height:44px;font-size:10px;letter-spacing:-.5px}.self-info .skill-status{display:none}.self-equipment .equip-slot{width:28px;height:22px}.hand-zone{container-type:inline-size;overflow:visible}.hand-label{font-size:9px;line-height:14px;padding:0 3px 2px;min-height:16px}.hand-cards{height:214px;min-height:214px;padding:15px 16px 12px;overflow:visible;justify-content:center}.hand-cards .playing-card{--card-w:111px;flex-basis:var(--card-w);width:var(--card-w);height:164px;min-height:164px;margin-bottom:calc(22px - clamp(0px,var(--card-lift,0px),22px));transform:rotate(var(--card-angle,0deg));gap:3px;padding:5px}.hand-cards .playing-card.is-selected,.hand-cards .playing-card:hover{transform:translateY(-13px) rotate(0)}.hand-cards .card-name{font-size:20px;line-height:22px;letter-spacing:-.8px}.hand-cards .card-summary{font-size:10px;line-height:13px;font-weight:800}.hand-cards .card-type{font-size:9px}.board-center:has(.targeting-bar){position:relative;top:auto;bottom:auto;left:auto;width:100%;transform:none;padding:8px 0;min-height:0}.targeting-bar{grid-template-columns:50px minmax(0,1fr) 44px;gap:8px;width:100%;padding:8px;border-left-width:4px}.targeting-art{width:50px;height:38px}.targeting-bar strong{font-size:18px;line-height:22px}.targeting-bar .eyebrow{font-size:8px;letter-spacing:.5px}.targeting-bar p{font-size:11px;line-height:16px;max-height:48px;overflow:auto}.targeting-cost{font-size:9px;line-height:13px}.target-zones{gap:6px;margin-top:5px;padding:7px}.zone-target{gap:4px;max-width:92px;margin-right:1px}.zone-target>.portrait{width:28px;height:43px}.zone-target>b{font-size:9px;line-height:14px}.zone-choice{width:66px;min-height:54px;padding:4px}.zone-choice>.card-illustration{width:35px;height:25px}.zone-choice small{font-size:8px;line-height:11px}.target-rune{width:38px;height:38px}.target-rune .icon{width:24px;height:24px}.self-portrait>.target-rune{width:43px;height:43px}.card-codex .playing-card{margin:0;transform:none}.role-guide-grid .role-option>.portrait{object-fit:contain}}
@media(max-width:380px) and (orientation:portrait){.self-portrait{flex-basis:68px;height:119px}.self-panel{height:108px;gap:8px}.self-title h2{font-size:13px}.self-info{grid-template-columns:minmax(0,1fr) minmax(83px,1fr)}.self-info .skill-button{font-size:9px}.hand-cards .playing-card{--card-w:107px}.target-zones{gap:4px;padding:6px 4px}.zone-target{max-width:77px}.zone-target>.portrait{width:23px;height:36px}.zone-target>b{font-size:8px}.zone-choice{width:59px}.targeting-bar p{font-size:10px}.opponents.four .opponent-head .portrait{margin-top:-7px;height:calc(100% + 7px)}}
@media(prefers-reduced-motion:reduce){.portrait,.opponent:after,.target-rune{animation:none!important;translate:none!important;scale:1!important}.hand-cards .playing-card.is-selected{transform:translateY(-9px) rotate(0)!important}.hand-cards .playing-card:hover{transform:rotate(var(--card-angle,0deg))!important}}
.target-rune{clip-path:none;border:0;background:none}.target-rune:before{content:"";position:absolute;inset:0;color:#70dfcc;background:linear-gradient(currentColor,currentColor) left top/12px 1px no-repeat,linear-gradient(currentColor,currentColor) left top/1px 12px no-repeat,linear-gradient(currentColor,currentColor) right top/12px 1px no-repeat,linear-gradient(currentColor,currentColor) right top/1px 12px no-repeat,linear-gradient(currentColor,currentColor) left bottom/12px 1px no-repeat,linear-gradient(currentColor,currentColor) left bottom/1px 12px no-repeat,linear-gradient(currentColor,currentColor) right bottom/12px 1px no-repeat,linear-gradient(currentColor,currentColor) right bottom/1px 12px no-repeat}.target-selected .target-rune{background:none;border:0}.target-selected .target-rune:before{color:#e8876a}
/* Table portraits prioritize an expressive upper-body silhouette over full-body thumbnails. */
.opponent-head .portrait{object-fit:cover;object-position:50% 0;animation:v4-actor-float 4.7s ease-in-out infinite}.self-portrait>.portrait{width:100%;height:100%;margin-top:0;object-fit:cover;object-position:50% 0}.self-portrait{align-self:stretch;height:100%}
@media(max-width:1100px) and (orientation:landscape){.opponent-head .portrait{width:calc(100% + 18px);height:calc(100% + 20px);margin-left:-9px;margin-top:-20px;object-fit:cover;object-position:50% 0}.self-portrait{flex-basis:78px}.self-info .skill-button{font-size:10px;padding-left:4px;padding-right:4px}.self-info .skill-button .icon{width:10px;height:10px}}
@media(max-height:410px) and (orientation:landscape){:root{--seat-h:158px}.opponent-head{height:105px}.opponent-head .portrait{width:calc(100% + 18px);height:124px;margin-left:-9px;margin-top:-19px;object-fit:cover;object-position:50% 0}.opponent-name{font-size:11px;line-height:14px}.opponent-identity{font-size:8px;line-height:12px}.opponent .hp-row{min-height:13px}.opponent .equipment-row{top:45%}.self-portrait{flex-basis:68px;height:100%;align-self:stretch}.self-portrait>.portrait{object-fit:cover;object-position:50% 0}.self-panel{gap:6px;padding-right:5px}.self-info .skill-button{font-size:9px;min-height:44px;letter-spacing:-.7px;padding-left:3px;padding-right:3px}.self-info .skill-button .icon{display:none}.self-info>.meeting-badge{font-size:6px;letter-spacing:-.5px}}
@media(orientation:portrait){.self-portrait{height:115px;align-self:center;flex-basis:83px}.self-portrait>.portrait{object-fit:cover;object-position:50% 0}.opponent-head .portrait{object-fit:cover;object-position:50% 0}}
/* Last-action presentation uses the same cut-paper print language. */
.action-spotlight{background:#152725e8;border:1px solid #5d8880;border-radius:0;box-shadow:none;color:#dcded3;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}.spotlight-art{filter:none}.spotlight-art .card-illustration{border:0;border-radius:0}.spotlight-art .portrait{border:0;border-radius:0;object-fit:contain}.spotlight-copy strong{font-family:var(--sans);font-weight:1000;font-style:italic;color:#e6e1d3;text-shadow:none;letter-spacing:-.5px}.spotlight-copy p{color:#9fc4b9}.spotlight-copy>.eyebrow{color:#6fada0}.spotlight-stamp{top:0;right:6px;border:0;border-radius:0;background:#bd5e4e;color:#f4e2ca;font-weight:900;clip-path:polygon(4px 0,100% 0,100% 100%,0 100%,0 4px)}.action-spotlight.empty{background:none;border:0;box-shadow:none;clip-path:none;opacity:.42}.action-spotlight.empty .spotlight-stamp{background:transparent;border:0;color:#b4ccc2;font-family:var(--sans);font-weight:1000;font-style:italic;letter-spacing:5px}.fatal h1{color:#dfddd2}.fatal p{color:#95b8ae}
/* v0.5 — flat office game UI, original 3D comedy cast and visible loadout. */
.game-shell{background-color:#163c33;background-image:url('./assets/art-v5/office-city.webp');background-position:center;background-size:cover;background-repeat:no-repeat}.game-shell:before{background:linear-gradient(0deg,#08281f55,transparent 46%,#0a2b2333)}.game-shell:after{display:none}.opponent:after{inset:29% -7px 31px;border:0;border-radius:50%;clip-path:none;transform:none;background:radial-gradient(ellipse at 50% 70%,#64c2a62d,transparent 68%)}.opponent:before{display:none}.opponent.is-active:before,.opponent.is-responding:before{display:block}.opponent.is-active:after,.opponent.targetable:after,.opponent.target-selected:after{outline:0;border:0;border-radius:50%;clip-path:none;background:radial-gradient(ellipse at 50% 72%,#8ee1bd44,transparent 70%)}.opponent.target-selected:after{background:radial-gradient(ellipse at 50% 72%,#ec7b5b55,transparent 70%)}.self-portrait:after{clip-path:none;border:0;border-radius:50%;inset:34% -9% -2%;transform:none;background:radial-gradient(ellipse at 50% 75%,#6bd3b02b,transparent 70%)}.self-panel.targetable .self-portrait:after,.self-panel.target-selected .self-portrait:after{outline:0}.target-rune{transform:translate(-50%,-50%);animation:none}.live-dot{border-radius:50%;transform:none}.playing-card:before{clip-path:none}.game-shell .portrait{filter:drop-shadow(0 3px 2px #08281b66)}.targetable .portrait{filter:drop-shadow(1px 0 #7dd6ba) drop-shadow(-1px 0 #7dd6ba) drop-shadow(0 -1px #7dd6ba)}.target-selected .portrait{filter:drop-shadow(2px 0 #e7775c) drop-shadow(-2px 0 #e7775c) drop-shadow(0 -2px #e7775c)}
/* A notification at the dock edge leaves the central stage free. */
.response-panel{position:absolute;left:12px;right:12px;bottom:calc(100% + 5px);transform:none;width:auto;max-width:none;max-height:none;min-height:52px;display:flex;align-items:center;gap:10px;padding:3px 6px 3px 12px;border:1px solid #d78264;border-left:5px solid #e66a4e;border-top-width:1px;border-radius:0;background:#173d32f5;box-shadow:0 4px 10px #06261b66;overflow:visible;z-index:40}.response-panel:before{display:none}.response-heading{display:flex;align-items:center;gap:6px;flex:0 0 auto;max-width:190px;color:#ffe5bc;font-size:13px;line-height:16px;font-weight:1000}.response-heading .icon{width:18px;height:18px;margin:0;color:#f48b67}.response-panel>p{min-width:0;flex:1;margin:0;font-size:11px;line-height:16px;color:#d5e0c6;max-height:32px;overflow:hidden}.response-panel>p b{color:#fff2cc}.response-impact{display:block;max-width:190px;font-size:10px;line-height:14px;color:#f1be91;flex:0 1 auto}.response-detail{flex:none;min-height:44px;min-width:44px;display:grid;place-items:center;padding:3px 7px;border:0;border-left:1px solid #86ab8b66;background:transparent;color:#b9dec4;font-size:11px;line-height:14px}.response-detail:hover{color:#fff2cd;background:#2e5b48}.response-actions{display:flex;flex:none;gap:6px;margin:0;padding:0;max-height:none;overflow:visible}.response-actions .btn,.response-actions .btn-secondary{grid-column:auto;min-height:44px;min-width:72px;padding:5px 10px;font-size:12px;line-height:16px;background:#e2dec7;color:#294438;border-color:#f6e8c5;box-shadow:inset 0 -3px #c9654a;white-space:nowrap}.response-actions .btn:only-child{grid-column:auto}
/* Self equipment is a real two-slot rack; skill tokens live with the turn controls. */
.self-info{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:6px}.self-header{min-width:0}.equipment-rack,.self-info .equipment-rack{display:flex;flex-wrap:wrap;gap:6px;position:static;left:auto;bottom:auto;margin:0;line-height:1;align-items:center}.equipment-rack .equip-slot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:72px;height:54px;min-width:64px;border:1px solid #98bb9c;background:#315f4b;clip-path:polygon(4px 0,100% 0,100% calc(100% - 4px),calc(100% - 4px) 100%,0 100%,0 4px);color:#f2e5bf;opacity:1;box-shadow:inset 0 -3px #0c2e2466}.equipment-rack .equip-slot>.card-illustration{width:43px;height:29px;flex:none;object-fit:contain}.equipment-rack .equip-slot>.icon{width:25px;height:25px;flex:none}.equipment-rack .equip-slot>small,.equipment-rack .equip-slot>b,.equipment-rack .equip-label{display:block;font:900 10px/12px var(--sans);text-align:center;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:inherit}.equipment-rack .equip-slot.empty{background:#142e26;border-color:#638e73;border-style:dashed;color:#87ad8f;opacity:1;box-shadow:none}.equipment-rack .equip-slot.occupied{background:#44785d;border-color:#d4d7aa}.equipment-rack .equip-slot.is-target{background:#457d60;outline:2px solid #9af0cd;outline-offset:2px}.opponent .equipment-row{position:absolute;right:-12px;top:47%;display:flex;flex-direction:column;gap:4px;min-height:0;margin:0;overflow:visible;z-index:6}.opponent .equip-slot{width:29px;height:29px;border:1px solid #95bb98;background:#2f5f49;box-shadow:1px 2px #092d2066;opacity:1}.opponent .equip-slot.empty{background:#152f26;border-color:#649775;opacity:.8}.opponent .equip-slot>.icon{width:21px;height:21px}.opponent .equip-slot>.card-illustration{width:100%;height:100%}.opponent .equip-slot>small,.opponent .equip-slot>b,.opponent .equip-label{display:none}.self-info>.meeting-badge{font-size:9px;line-height:12px;align-self:flex-start}
.command-zone{display:flex;flex-direction:column;justify-content:center;align-self:stretch;gap:9px}.skill-rail{display:flex;gap:6px;align-items:stretch;justify-content:center;min-height:44px;width:100%;position:relative;z-index:2}.skill-rail .skill-button,.skill-rail .skill-token{display:flex;flex:1;min-width:44px;width:0;min-height:48px;padding:5px 4px;align-items:center;justify-content:center;gap:4px;white-space:normal;border:1px solid #7aa386;background:#234b3d;clip-path:polygon(5px 0,100% 0,100% calc(100% - 5px),calc(100% - 5px) 100%,0 100%,0 5px);color:#dce1bf;font-size:11px;line-height:14px;font-weight:900}.skill-rail .skill-button>span,.skill-rail .skill-token>span{min-width:0}.skill-rail .icon{width:17px;height:17px;flex:none}.skill-rail .skill-status{font-size:9px;line-height:12px;margin-top:2px;display:block;color:#8ab89a}.skill-rail .can-use{border-color:#c5e4b4;background:#80b994;color:#173c2a;box-shadow:inset 0 -3px #4c896d}.skill-rail .can-use .skill-status{color:#2e6646}.skill-rail .rest.can-use{border-color:#f1bea0;background:#ca6a4d;color:#fff1cb;box-shadow:inset 0 -3px #984531}.skill-rail .rest.can-use .skill-status{color:#ffe4bf}.skill-rail button:disabled{opacity:.55}.command-zone .turn-controls{min-height:0;gap:7px}.command-zone .turn-controls>.btn{min-height:48px}.command-zone .turn-hint{font-size:10px;line-height:14px}.command-zone .text-btn{padding:2px;min-height:28px;font-size:10px}
@media(max-width:1100px) and (orientation:landscape){.response-panel{left:9px;right:9px;gap:7px;padding:3px 5px 3px 9px}.response-heading{max-width:145px;font-size:11px;line-height:14px}.response-heading .icon{width:15px;height:15px}.response-panel>p{font-size:10px;line-height:14px;max-height:28px}.response-impact{font-size:9px;line-height:12px;max-width:140px}.response-detail{font-size:9px;padding-inline:5px}.response-actions .btn{min-width:68px;font-size:11px;padding-inline:7px}.self-info{gap:5px}.equipment-rack,.self-info .equipment-rack{gap:4px}.equipment-rack .equip-slot{width:64px;height:44px;min-width:64px}.equipment-rack .equip-slot>.card-illustration{width:36px;height:24px}.equipment-rack .equip-slot>.icon{width:22px;height:22px}.equipment-rack .equip-slot>small,.equipment-rack .equip-slot>b,.equipment-rack .equip-label{font-size:9px;line-height:11px}.skill-rail{gap:4px}.skill-rail .skill-button,.skill-rail .skill-token{min-height:44px;font-size:10px;line-height:12px;gap:2px;padding:4px 2px;flex-direction:column}.skill-rail .icon{width:14px;height:14px}.skill-rail .skill-status{display:none}.command-zone{gap:6px}.command-zone .text-btn{display:none}.command-zone .turn-controls>.btn{min-height:44px}.command-zone .turn-hint{font-size:9px;line-height:12px}.opponent .equip-slot{width:28px;height:28px}.opponent .equip-slot>.icon{width:20px;height:20px}}
@media(max-height:410px) and (orientation:landscape){.player-dock{grid-template-columns:165px minmax(0,1fr) 100px}.response-panel{bottom:calc(100% + 3px);min-height:50px;padding:2px 4px 2px 7px;gap:6px}.response-heading{max-width:132px;font-size:10px;line-height:13px;gap:4px}.response-panel>p{font-size:10px;line-height:13px;max-height:26px}.response-impact{max-width:125px;font-size:9px;line-height:12px}.response-actions .btn{min-height:44px;min-width:62px;font-size:10px;line-height:13px;padding:3px 6px}.response-detail{width:44px;min-height:44px;min-width:44px;font-size:9px;line-height:11px;padding:2px}.self-info{gap:4px;align-self:center}.self-title h2{font-size:12px;line-height:16px;gap:3px;letter-spacing:0}.self-title .pill{font-size:7px;line-height:10px;padding:0 2px;margin:0;letter-spacing:0}.self-title .hp-row{margin-top:3px;min-height:12px;flex-wrap:nowrap;gap:1px}.self-title .hp-dot{width:6px;height:6px}.self-title .hp-number{font-size:8px;line-height:11px;margin-left:2px}.equipment-rack,.self-info .equipment-rack{gap:4px;flex-direction:column;align-items:flex-start;position:static}.equipment-rack .equip-slot{width:64px;height:44px;min-width:64px}.self-info>.meeting-badge{font-size:8px;line-height:10px;padding:0 2px;margin:0}.command-zone{gap:8px}.command-zone .turn-controls{gap:0}.command-zone .turn-hint{display:none}.command-zone .turn-controls>.btn{min-height:44px;font-size:11px;padding:5px 4px;gap:3px;letter-spacing:0}.command-zone .turn-controls>.btn .icon{width:13px;height:13px}.skill-rail{min-height:44px;gap:4px}.skill-rail .skill-button,.skill-rail .skill-token{font-size:9px;line-height:11px;min-width:44px;min-height:44px;padding:3px 2px;letter-spacing:-.4px}.skill-rail .icon{display:none}.opponent .equipment-row{top:45%;right:-14px;gap:3px}.opponent .equip-slot{width:28px;height:28px}.opponent .equip-slot>.icon{width:20px;height:20px}}
@media(orientation:portrait){.response-panel{position:relative;left:auto;right:auto;bottom:auto;transform:none;grid-column:1;grid-row:auto;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:3px 7px;padding:5px 7px;min-height:64px;max-height:none;overflow:visible}.response-heading{grid-column:1;grid-row:1;font-size:11px;line-height:14px;max-width:none;gap:4px}.response-heading .icon{width:14px;height:14px}.response-panel>p{grid-column:1;grid-row:2;font-size:10px;line-height:14px;max-height:28px}.response-impact{grid-column:1;grid-row:3;max-width:none;font-size:9px;line-height:12px}.response-detail{grid-column:2;grid-row:1/4;font-size:9px;line-height:12px;width:44px;min-height:44px}.response-actions{grid-column:3;grid-row:1/4}.response-actions .btn{min-width:61px;max-width:70px;min-height:44px;white-space:normal;font-size:10px;line-height:14px;padding:3px 5px}.self-info{display:flex;flex-direction:row;flex-wrap:wrap;gap:5px;align-items:center;justify-content:space-between}.self-header{flex:1;min-width:90px}.equipment-rack,.self-info .equipment-rack{position:static;display:flex;flex-direction:row;flex-wrap:nowrap;gap:4px;flex:none;margin:0}.equipment-rack .equip-slot{width:64px;height:44px;min-width:64px}.equipment-rack .equip-slot>.card-illustration{width:35px;height:24px}.equipment-rack .equip-slot>.icon{width:23px;height:23px}.equipment-rack .equip-slot>small,.equipment-rack .equip-slot>b,.equipment-rack .equip-label{font-size:9px;line-height:11px}.self-title h2{font-size:14px;line-height:18px}.self-title .pill{font-size:8px;margin:0}.self-info>.meeting-badge{font-size:8px;line-height:11px}.command-zone{display:flex;flex-direction:row;gap:8px;align-items:center}.skill-rail{flex:1;min-width:0;max-width:164px;gap:5px}.skill-rail .skill-button,.skill-rail .skill-token{min-height:48px;padding:4px 3px;font-size:10px;line-height:13px;flex-direction:column;gap:2px}.skill-rail .icon{display:none}.skill-rail .skill-status{display:none}.command-zone .turn-controls{flex:1;display:flex;flex-direction:column;gap:0;align-items:stretch}.command-zone .turn-controls>.btn{min-width:0;width:100%;min-height:48px;font-size:12px;padding:7px 5px}.command-zone .turn-hint,.command-zone .text-btn{display:none}.opponent .equipment-row{right:-13px;top:43%;gap:3px}.opponent .equip-slot{width:28px;height:28px}.opponent .equip-slot>.icon{width:20px;height:20px}}
@media(max-width:380px) and (orientation:portrait){.self-panel{gap:5px}.self-portrait{flex-basis:67px}.self-info{gap:4px}.self-title h2{font-size:13px}.self-header{min-width:73px}.equipment-rack .equip-slot{width:64px;min-width:64px}.response-heading{font-size:10px}.response-panel>p{font-size:9px}.response-actions .btn{min-width:58px}.skill-rail{max-width:150px}}
@media(prefers-reduced-motion:reduce){.game-shell .portrait{animation:none!important}.target-rune{animation:none!important}}
.effect-demo-note{font-size:11px;color:#b5c8b8;margin:0 0 8px}.effect-preview-stage{position:relative;isolation:isolate;height:240px;overflow:hidden;background:linear-gradient(#0b251c55,#0b251c66),url('./assets/art-v5/office-city.webp') center/cover;border:1px solid #668d7c}.effect-preview-stage .arena-effects{inset:0}.effect-preview-static{display:none;width:120px;position:absolute;left:50%;top:45%;transform:translate(-50%,-50%)}.effect-preview-static>svg{width:100%;height:auto}.voice-lab{margin-top:16px;padding:12px;border:1px solid #668d7c;background:#173c32}.voice-lab>b{font-size:13px;color:#e9d8ae}.voice-lab>p{font-size:11px;line-height:1.6;color:#b5c8b8}
@media(max-height:410px) and (orientation:landscape){.effect-preview-stage{height:190px}.effect-demo-note{margin-bottom:4px}}
@media(prefers-reduced-motion:reduce){.effect-preview-static{display:block}}
/* QA: upper-body self portrait, a quiet first-run line, and a content-sized response. */
.self-portrait{overflow:hidden;clip-path:none;background:transparent!important;border:0!important;border-radius:0!important}.self-portrait>.portrait{position:absolute;left:50%;top:0;width:165%;height:165%;max-width:none;margin:0;transform:translateX(-50%);object-fit:cover;object-position:50% 0;mask-image:linear-gradient(to bottom,#000 0 46%,transparent 64%);-webkit-mask-image:linear-gradient(to bottom,#000 0 46%,transparent 64%)}.self-portrait:after{display:none}.self-portrait>.target-rune{z-index:9}.self-portrait:focus-visible{outline:2px solid #a2ebcc;outline-offset:2px}
.first-run{left:302px;right:190px;top:3px;bottom:auto;transform:none;width:auto;max-width:none;height:24px;min-height:24px;display:flex;gap:5px;padding:0 5px;background:#153f32eb;border:0;border-bottom:1px solid #7ca88a66;border-radius:0;box-shadow:none;font-size:10px;line-height:14px;z-index:26;overflow:visible}.first-run p{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:14px}.first-run b{color:#d5e0b6;font-weight:900}.first-run>.text-btn{flex:none;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;font-size:9px;line-height:12px;color:#e0e7c9;background:transparent}
.response-panel{left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:min(520px,calc(100% - 24px));min-width:0;gap:9px}.response-panel:not(:has(.response-actions>.btn)){max-width:min(365px,calc(100% - 24px))}.response-heading{display:grid;grid-template-columns:18px minmax(0,1fr);column-gap:5px;row-gap:0;max-width:170px;min-width:0;flex:0 1 auto;line-height:15px}.response-heading>.icon{grid-column:1;grid-row:1/3;align-self:center}.response-heading>.response-impact{grid-column:2;grid-row:2;max-width:none;line-height:12px;white-space:nowrap}.response-panel>p{flex:0 1 auto;max-width:190px;min-width:65px}.response-actions{flex:none;align-items:center}.response-actions>.response-detail{min-height:44px;height:44px;min-width:44px;width:44px;padding:2px}.response-actions>.btn{min-height:44px;height:44px}
.opponent-name,.opponent-identity,.opponent>.hp-row,.opponent>.countdown{position:relative;background:#0b2d25e8;text-shadow:1px 1px 1px #071d16;padding-inline:3px}.opponent-name{border-radius:3px 3px 0 0}.opponent>.hp-row,.opponent>.countdown{border-radius:0 0 3px 3px}.opponent-name,.opponent-identity{overflow:hidden;text-overflow:ellipsis}.opponent>.hp-row{white-space:nowrap;flex-wrap:nowrap}
@media(max-width:1100px) and (orientation:landscape){.first-run{left:212px;right:126px;top:2px;height:23px;font-size:9px;padding:0 4px}.response-panel{left:50%;right:auto;max-width:min(440px,calc(100% - 24px));height:50px;min-height:50px;gap:6px;padding:2px 4px 2px 7px}.response-panel:not(:has(.response-actions>.btn)){max-width:min(335px,calc(100% - 24px))}.response-heading{grid-template-columns:15px minmax(0,1fr);max-width:150px;font-size:11px;line-height:14px;gap:0 4px}.response-heading>.response-impact{font-size:9px;line-height:12px}.response-panel>p{max-width:155px;font-size:10px;line-height:13px;max-height:26px}.game-shell:has(.response-panel) .opponent-head{height:68px}.game-shell:has(.response-panel) .opponent-head .portrait{height:92px;margin-top:-24px}.game-shell:has(.response-panel) .opponent .equipment-row{top:24%;gap:3px}.game-shell:has(.response-panel) .board-center:not(:has(.targeting-bar)){visibility:hidden}.game-shell:has(.response-panel) .board-center:has(.targeting-bar){top:4px;bottom:auto}.game-shell:has(.response-panel) .opponent-name{line-height:14px}.game-shell:has(.response-panel) .opponent-identity{line-height:12px}.game-shell:has(.response-panel) .opponent>.hp-row{min-height:13px}}
@media(max-height:410px) and (orientation:landscape){.first-run{left:190px;right:117px;top:3px}.response-heading{max-width:138px;font-size:10px;line-height:13px}.response-panel>p{max-width:145px}.game-shell:has(.response-panel) .opponent-head{height:68px}.game-shell:has(.response-panel) .opponent-head .portrait{height:92px;margin-top:-24px}.game-shell:has(.response-panel) .board-center:has(.targeting-bar){top:4px;bottom:auto}.self-portrait>.portrait{width:165%;height:165%;margin:0;top:0}}
@media(max-height:380px) and (orientation:landscape){.game-shell:has(.response-panel) .opponent-head{height:50px}.game-shell:has(.response-panel) .opponent-head .portrait{height:76px;margin-top:-26px}.game-shell:has(.response-panel) .opponent .equipment-row{top:15%}}
@media(orientation:portrait){.self-portrait>.portrait{width:165%;height:165%;margin:0}.first-run{position:relative;left:auto;right:auto;top:auto;bottom:auto;transform:none;width:100%;height:25px;min-height:25px;grid-column:1;grid-row:auto;font-size:9px;padding-inline:4px}.response-panel{position:relative;left:auto;right:auto;top:auto;bottom:auto;transform:none;width:100%;max-width:100%;height:auto;min-height:58px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 6px;padding:4px 6px}.response-panel:not(:has(.response-actions>.btn)){max-width:100%}.response-heading{grid-column:1;grid-row:1;max-width:none;font-size:11px;line-height:14px;grid-template-columns:15px minmax(0,1fr)}.response-panel>p{grid-column:1;grid-row:2;max-width:none;min-width:0;max-height:26px}.response-actions{grid-column:2;grid-row:1/3;display:flex;gap:4px}.response-actions>.response-detail{position:static;grid-row:auto;grid-column:auto;min-width:44px;min-height:44px}.response-actions>.btn{min-width:58px;max-width:64px;min-height:44px}.opponent-name{font-size:11px}.opponent-identity{font-size:8px}}
@media(min-height:381px) and (max-height:410px) and (orientation:landscape){.game-shell:has(.response-panel) .opponent-head{height:62px}.game-shell:has(.response-panel) .opponent-head .portrait{height:86px}}
@media(max-height:380px) and (orientation:landscape){.game-shell:has(.response-panel) .opponents.four .opponent[data-seat="2"],.game-shell:has(.response-panel) .opponents.four .opponent[data-seat="3"],.game-shell:has(.response-panel) .opponents:not(.four) .opponent[data-seat="2"]{translate:0 -14px}}
.self-portrait>.portrait[data-role="niuma"]{object-position:85% 0}
.voice-lab-v06{margin:0 0 18px;background:#173b32;border:1px solid #b59c68}.voice-lab-v06>b{font-size:18px;color:#ffe5b4}.performance-samples{display:grid;gap:12px;margin-top:12px}.performance-sample{display:grid;grid-template-columns:85px minmax(0,1fr);gap:12px;border-top:1px solid #6a8b7355;padding-top:10px}.performance-sample>.portrait{width:85px;height:128px;object-fit:contain;align-self:center}.performance-sample>div{min-width:0}.performance-sample b{display:block;font-size:15px;color:#f5e8cb}.performance-sample small{display:block;color:#81d6bc;font-size:11px}.performance-sample p{margin:7px 0;font-size:12px;line-height:1.7;color:#ddd8bf}.performance-sample .btn{min-height:44px;padding:6px 12px;font-size:12px}.previous-auditions{margin-top:12px;font-size:11px;color:#b5c8b8}.previous-auditions summary{cursor:pointer;padding:9px 0}.turn-sequence small{white-space:nowrap}
@media(min-height:381px) and (max-height:410px) and (orientation:landscape){.game-shell:has(.response-panel) .opponents.four .opponent[data-seat="2"],.game-shell:has(.response-panel) .opponents.four .opponent[data-seat="3"]{translate:0 -8px}}
/* v0.7: costs have their own explicit confirmation; administrative discards stay direct. */
.targeting-bar.has-untargeted-confirm{grid-template-columns:minmax(0,1fr) 90px 44px;gap:8px;padding:7px 8px}.has-untargeted-confirm>.targeting-art{display:none}.has-untargeted-confirm>div{min-width:0}.has-untargeted-confirm .eyebrow{font-size:9px;letter-spacing:.3px}.has-untargeted-confirm strong{font-size:18px;line-height:22px}.has-untargeted-confirm p{font-size:10px;line-height:14px;max-height:28px}.has-untargeted-confirm .targeting-cost{display:block;color:#743d27;font-weight:900;font-size:11px;line-height:15px;white-space:normal}.untargeted-confirm{font-size:12px;line-height:16px;padding:6px;min-height:44px;white-space:normal}
.event-slip{display:flex;align-items:center;gap:7px;width:220px;min-height:58px;padding:5px 8px;background:#173f35f5;border:1px solid #bca06b;box-shadow:0 3px 0 #092e25;color:#f8e6bc;clip-path:none;text-align:left}.event-slip>.icon{width:17px;height:17px;color:#e5d8aa;margin-left:auto}.event-badge-art{display:block;width:44px;height:44px;flex:none}.event-badge-art>.card-illustration{width:100%;height:100%}.event-badge-copy{min-width:0;display:grid;gap:1px}.event-badge-copy>small{font-size:9px;line-height:12px;color:#acd4b9;letter-spacing:.4px}.event-badge-copy>b{font-size:14px;line-height:18px;color:#fff0c6}.event-badge-copy>span{font-size:10px;line-height:13px;color:#d0d8b7}.event-slip.lasting-event{border:2px solid #f0b968;background:#62462aea;box-shadow:0 2px #b8833c,0 0 12px #ecb25244}.lasting-event .event-badge-copy>small{color:#ffda87;font-weight:900}.lasting-event .event-badge-copy>span{color:#ffe4af;font-weight:800}
.modal.event-announcement-modal{max-width:650px;border:2px solid #e8ba7a;background:#193d33;box-shadow:0 18px 65px #000a}.event-announcement-modal .modal-header{border-bottom-color:#c4a46c}.event-hero{display:grid;grid-template-columns:130px minmax(0,1fr);gap:20px;align-items:center;min-height:160px}.event-hero-art{position:relative;width:130px;height:150px;display:grid;place-items:center;background:radial-gradient(ellipse,#f4d89435,transparent 70%)}.event-hero-art>.card-illustration{width:130px;height:140px;filter:drop-shadow(0 5px 5px #092c22)}.is-new-event .event-hero-art>.card-illustration{animation:event7-arrive 2.7s cubic-bezier(.2,.7,.3,1) both}.event-stamp{position:absolute;bottom:0;left:50%;transform:translateX(-50%) rotate(-7deg);border:2px solid #df8b5c;background:#f0dfb8;color:#8f362a;padding:1px 8px;white-space:nowrap;font-size:13px;font-weight:1000;box-shadow:2px 3px #092c2288}.is-new-event .event-stamp{animation:event7-stamp 2.5s ease-out both}.event-description{min-width:0}.event-description>.eyebrow{color:#dfc48d;letter-spacing:1px}.event-description>h3{font-size:30px;line-height:1.25;margin:5px 0 10px;color:#fff1ca;font-weight:1000}.event-description>p{font-size:14px;line-height:1.8;color:#e2e2c8;white-space:normal}.event-duration{display:block;margin-top:10px;padding:6px 8px;background:#0c2e25;border-left:3px solid #dca162;font-size:11px;line-height:1.7;color:#c6dfbb}.event-read-note{margin:14px 0 8px;text-align:center;font-size:12px;color:#9ce6c2}.event-announcement .modal-actions{margin-top:8px}.event-announcement .btn{min-height:46px}
@keyframes event7-arrive{0%{opacity:0;transform:translateY(-24px) scale(.74) rotate(-8deg)}28%{opacity:1;transform:translateY(3px) scale(1.06) rotate(3deg)}55%{opacity:1;transform:translateY(0) scale(1) rotate(-2deg)}100%{opacity:1;transform:none}}
@keyframes event7-stamp{0%,22%{opacity:0;scale:1.5;translate:0 -12px}43%{opacity:1;scale:.94;translate:0 2px}62%,100%{opacity:1;scale:1;translate:0 0}}
@media(max-width:1100px) and (orientation:landscape){.table-hud .event-slip{position:fixed;left:116px;top:4px;z-index:15;width:140px;min-height:40px;height:40px;gap:4px;padding:2px 5px;box-shadow:none}.event-badge-art{width:31px;height:32px}.event-badge-copy>b{font-size:11px;line-height:13px}.event-badge-copy>small{font-size:8px;line-height:10px;letter-spacing:0}.event-badge-copy>span{font-size:8px;line-height:10px}.event-slip>.icon{width:13px;height:13px}.event-hero{grid-template-columns:100px minmax(0,1fr);min-height:125px;gap:14px}.event-hero-art{width:100px;height:118px}.event-hero-art>.card-illustration{width:100px;height:110px}.event-description>h3{font-size:25px;margin:3px 0 6px}.event-description>p{font-size:13px;line-height:1.7}.event-duration{margin-top:6px;padding:3px 6px}.event-read-note{margin:9px 0 5px;font-size:11px}.has-untargeted-confirm p{display:none}.has-untargeted-confirm strong{font-size:16px;line-height:19px}.has-untargeted-confirm .targeting-cost{font-size:10px;line-height:14px}}
@media(max-width:700px) and (orientation:landscape){.table-hud .event-slip{left:104px;width:134px}.event-badge-art{width:27px}.event-badge-copy>span{font-size:7.5px}.targeting-bar.has-untargeted-confirm{grid-template-columns:minmax(0,1fr) 82px 44px;gap:5px}}
@media(orientation:portrait){.table-hud .event-slip{position:static;width:45%;min-width:145px;min-height:68px;align-self:stretch}.event-badge-art{width:36px;height:40px}.event-badge-copy>b{font-size:12px}.event-badge-copy>span{font-size:9px}.event-slip>.icon{display:none}.event-hero{grid-template-columns:78px minmax(0,1fr);gap:10px;min-height:140px}.event-hero-art{width:78px;height:120px}.event-hero-art>.card-illustration{width:78px;height:108px}.event-description>h3{font-size:24px}.event-description>p{font-size:13px;line-height:1.75}.event-duration{font-size:10px}.event-stamp{font-size:10px;padding-inline:5px}.targeting-bar.has-untargeted-confirm{grid-template-columns:minmax(0,1fr) 78px 44px;gap:5px}.has-untargeted-confirm .eyebrow{font-size:8px}.has-untargeted-confirm .targeting-cost{font-size:10px}.has-untargeted-confirm strong{font-size:17px}.untargeted-confirm{font-size:11px}}
@media(prefers-reduced-motion:reduce){.is-new-event .event-hero-art>.card-illustration,.is-new-event .event-stamp{animation:none!important}}
/* v0.6: distinguish the turn owner from the person currently acting or responding. */
.turn-strip{width:max-content;max-width:min(48vw,560px);min-height:44px;padding:4px 12px;gap:12px}.turn-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-width:0}.turn-indicator{max-width:100%;font-weight:800;line-height:16px;overflow:hidden;text-overflow:ellipsis}.turn-sequence{display:flex;align-items:center;gap:4px;max-width:100%;min-width:0;white-space:nowrap;font-style:normal}.turn-seat{display:inline-grid;place-items:center;flex:none;width:18px;height:18px;border:1px solid #628c79;border-radius:50%;background:#173a2e;color:#c0d9b7;font:800 10px/1 var(--mono);position:relative}.turn-seat.owner{border-color:#d7b56b;color:#edcf8a;box-shadow:0 0 0 1px #c5a45933}.turn-seat.acting{border-color:#caffdc;background:#6bd0a4;color:#143b2b;box-shadow:0 0 8px #68dbaa77}.turn-seat.owner.acting{outline:1px solid #d7bd79;outline-offset:2px}.turn-seat.out{opacity:.3;border-color:#6b8073;background:#23342d;color:#849a89;text-decoration:line-through;box-shadow:none;outline:none}.turn-sequence>b{font:700 11px/1 var(--sans);color:#6d9d83}.turn-sequence>small{min-width:0;max-width:150px;margin-left:4px;overflow:hidden;text-overflow:ellipsis;color:#b5cda9;font-size:10px;line-height:14px;letter-spacing:0}
.opponent:before,.opponent.is-active:before,.opponent.is-responding:before{content:none!important;display:none!important}.opponent.is-active:after{animation:none;outline:0;background:radial-gradient(ellipse at 50% 76%,#c2a65528,transparent 67%)}.opponent.is-acting:after{inset:24% -15px 26px;border:0;border-radius:50%;clip-path:none;background:radial-gradient(ellipse at 50% 75%,#97f3c64d 0,#52d8aa30 35%,transparent 70%);box-shadow:0 9px 16px -10px #68e7b3;animation:v6-acting-light 1.8s ease-in-out infinite}.opponent.is-acting .portrait{filter:drop-shadow(1px 0 #a3f5c8) drop-shadow(-1px 0 #a3f5c8) drop-shadow(0 0 7px #6ce2b174)}.opponent.is-acting .opponent-name{color:#e6ffda;background:#154d39f5;box-shadow:inset 2px 0 #86edbb,inset -2px 0 #86edbb}.opponent.is-acting>.hp-row,.opponent.is-acting>.countdown{background:#143f30f5;box-shadow:inset 0 -1px #78d9a9}.opponent.is-acting.target-muted .portrait{opacity:.7}.opponent.is-acting.target-selected .portrait{filter:drop-shadow(2px 0 #ef8764) drop-shadow(-2px 0 #ef8764) drop-shadow(0 0 8px #e77c5966)}
.seat-number{position:absolute;z-index:10;top:4px;left:-7px;display:grid;place-items:center;width:24px;height:24px;min-height:0;border:1px solid #c7d8ac;border-radius:50%;background:#123b2ff5;color:#fff0c7;font:1000 12px/1 var(--mono);box-shadow:1px 2px #09261c88}.is-active>.seat-number{border-color:#e9c77e;color:#ffe3a2}.is-acting>.seat-number{border-color:#b9ffd4;background:#3c946c;color:#f5ffe4;box-shadow:0 0 0 2px #5fca9a55}.acting-badge,.owner-badge{position:absolute;z-index:11;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:20px;padding:2px 7px;max-width:calc(100% + 14px);white-space:nowrap;font:1000 10px/14px var(--sans);letter-spacing:.2px;border-radius:3px;text-shadow:none;pointer-events:none}.opponent>.acting-badge{top:79px;bottom:auto;left:50%;transform:translateX(-50%);background:#a2ecc3;color:#153c2a;border:1px solid #e7ffce;box-shadow:0 2px 0 #1b6547,0 0 10px #65ddaa66}.acting-badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex:none}.opponent>.owner-badge{top:0;right:-5px;left:auto;background:#493f25e8;color:#e3c57f;border:1px solid #a4915c;font-size:9px;line-height:12px;min-height:17px;padding:1px 5px}.opponent.is-responding>.acting-badge{background:#efaa7c;color:#482b1a;border-color:#ffe5b4;box-shadow:0 2px 0 #9c5c37,0 0 10px #dd8c5355}
.self-panel.is-turn-owner{border-right-color:#a58e4b77}.self-panel.is-turn-owner:after{content:"";position:absolute;inset:auto 9px 0 0;height:2px;background:#c3a75a55;pointer-events:none}.self-panel.is-acting:before{content:"";position:absolute;z-index:0;left:-7px;bottom:4px;width:95px;height:27px;border-radius:50%;background:radial-gradient(ellipse,#9bedbc77,#43b98d33 45%,transparent 72%);box-shadow:0 0 18px #60dbaa33;pointer-events:none;animation:v6-acting-light 1.8s ease-in-out infinite}.self-panel.is-acting:after{content:"";position:absolute;inset:0 auto 0 -4px;width:3px;height:auto;background:linear-gradient(transparent,#90eebb 25% 75%,transparent);pointer-events:none}.self-panel.is-acting .self-portrait{filter:drop-shadow(1px 0 #adf5cf) drop-shadow(-1px 0 #adf5cf) drop-shadow(0 0 7px #6ce2b174)}.self-panel.is-acting.target-selected .self-portrait{filter:drop-shadow(2px 0 #ed8966) drop-shadow(-2px 0 #ed8966)}.self-panel.is-acting .self-title h2{color:#d9ffd2}.self-panel>.acting-badge,.self-panel>.owner-badge{left:0;right:auto;top:auto;bottom:0;transform:none;max-width:100%;font-size:9px;line-height:12px;min-height:18px;padding:1px 5px;background:#a2ecc3;color:#153c2a;border:1px solid #e7ffce}.self-panel>.owner-badge{background:#493f25e8;color:#e3c57f;border-color:#a4915c}.game-shell:has(.response-panel) .self-panel.is-acting>.acting-badge{background:#efaa7c;color:#482b1a;border-color:#ffe5b4}.self-portrait:before{content:attr(data-seat-number);position:absolute;left:1px;top:3px;z-index:8;display:grid;place-items:center;width:22px;height:22px;min-height:0;border:1px solid #b6d5a9;border-radius:50%;background:#123b2ff5;color:#fff0c7;font:1000 11px/1 var(--mono)}
/* Shared 3D card artwork gets the largest row; short effect and joke both stay present. */
.playing-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 22px 26px 24px;gap:3px;height:194px;min-height:194px;padding:6px;border:1px solid #294c3d;background:#fff0d8;color:#214737;box-shadow:3px 4px #092b2088,inset 0 0 0 3px #dfd3ad}.playing-card:before{inset:3px;border:1px solid #8caa8b77;clip-path:none}.playing-card:after{height:4px;background:var(--card-color)}.card-top{min-height:0;line-height:13px;gap:2px}.card-rank{font-size:10px;line-height:13px;color:#244a37}.card-category{font-size:9px;line-height:13px;letter-spacing:.4px;color:#486c50}.card-art{width:100%;height:100%;min-height:0;background:radial-gradient(ellipse at 50% 63%,#d9e5c866,transparent 70%);border:0;border-radius:0;overflow:visible;filter:none;opacity:1}.card-art:after{display:none}.card-art>.card-illustration{display:block;width:100%;height:100%;min-height:0;border:0;border-radius:0;overflow:visible}.card-name{display:block;margin:0;font:1000 italic 20px/22px var(--sans);color:#214333;letter-spacing:-.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:0;font:800 10px/13px var(--sans);letter-spacing:-.2px;color:#345a44}.card-quip{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0;padding-top:2px;border-top:1px dashed #b99b7588;font:800 9px/11px var(--sans);letter-spacing:-.2px;color:#a4573a}.card-type{display:none!important}.playing-card.is-playable{border-color:#348b66;box-shadow:3px 4px #092b2088,inset 0 0 0 2px #68b68a,inset 0 -4px #68b68a}.playing-card.is-playable .card-art{filter:none;opacity:1}.playing-card.is-waiting .card-art{filter:saturate(.75);opacity:.87}.playing-card.is-selected{border-color:#e37552;box-shadow:0 0 0 2px #f0a077,3px 5px #092b2088,inset 0 0 0 2px #e18359}.playing-card.is-selected .card-name{color:#94482e}.hand-cards .playing-card{height:194px;min-height:194px}.card-codex .playing-card{height:238px;min-height:238px;display:grid;grid-template-rows:minmax(0,1fr) 24px 30px 28px;gap:4px;padding:8px}.card-codex .card-art{height:100%;min-height:0}.card-codex .card-name{font-size:22px;line-height:24px}.card-codex .card-summary{font-size:11px;line-height:15px;min-height:0}.card-codex .card-quip{font-size:10px;line-height:12px}
@keyframes v6-acting-light{0%,100%{opacity:.7}50%{opacity:1}}
@media(max-width:1100px) and (orientation:landscape){.turn-strip{top:3px;max-width:40vw;min-height:40px;padding:3px 8px;gap:5px}.turn-copy{gap:1px}.turn-indicator{font-size:10px;line-height:14px;gap:5px}.turn-sequence{gap:2px}.turn-seat{width:14px;height:14px;font-size:8px}.turn-sequence>b{font-size:8px}.turn-sequence>small{max-width:112px;margin-left:3px;font-size:8px;line-height:11px}.opponent>.acting-badge{top:65px;font-size:9px;line-height:12px;min-height:18px;padding:1px 5px}.seat-number{width:22px;height:22px;font-size:11px;left:-5px;top:2px}.self-panel>.acting-badge,.self-panel>.owner-badge{font-size:8px;line-height:11px;min-height:16px;padding:1px 3px}.hand-cards .playing-card{--card-w:98px;height:162px;min-height:162px;grid-template-rows:minmax(0,1fr) 20px 24px 22px;gap:2px;padding:5px}.hand-cards .card-name{font-size:18px;line-height:20px}.hand-cards .card-summary{font-size:10px;line-height:12px;min-height:0}.hand-cards .card-quip{font-size:9px;line-height:10px}.hand-cards .card-art{height:100%;min-height:0}.hand-cards .card-top{line-height:11px}.hand-cards .card-rank{font-size:9px;line-height:11px}.hand-cards .card-category{font-size:8px;line-height:11px}.game-shell:has(.response-panel) .opponent>.acting-badge{top:43px}.game-shell:has(.response-panel) .opponent>.owner-badge{top:-1px}}
@media(max-height:410px) and (orientation:landscape){.turn-strip{max-width:36vw;top:3px;padding:2px 7px;min-height:40px}.turn-indicator{font-size:10px;line-height:14px}.turn-copy{gap:1px}.turn-sequence>small{max-width:105px}.hand-cards{padding-top:8px;padding-bottom:3px}.hand-cards .playing-card{--card-w:96px;height:140px;min-height:140px;grid-template-rows:minmax(0,1fr) 18px 20px 20px;padding:4px;gap:2px}.hand-cards .card-art{height:100%;min-height:0}.hand-cards .card-name{font-size:16px;line-height:18px;letter-spacing:-.5px}.hand-cards .card-summary{font-size:9px;line-height:10px;min-height:0;letter-spacing:-.2px}.hand-cards .card-quip{font-size:8.5px;line-height:9px;padding-top:1px;letter-spacing:-.2px}.hand-cards .card-top,.hand-cards .card-rank,.hand-cards .card-category{line-height:10px;font-size:8px}.opponent>.acting-badge{top:84px;min-height:18px;font-size:9px;line-height:12px}.opponent>.owner-badge{font-size:8px;line-height:11px;min-height:15px;top:-1px;right:-4px}.seat-number{width:21px;height:21px;font-size:10px}.self-portrait:before{width:20px;height:20px;font-size:10px;left:1px;top:2px}.game-shell:has(.response-panel) .opponent>.acting-badge{top:41px}.card-codex .playing-card{height:210px;min-height:210px;grid-template-rows:minmax(0,1fr) 21px 26px 24px;padding:7px;gap:3px}.card-codex .card-name{font-size:19px;line-height:21px}.card-codex .card-summary{font-size:10px;line-height:13px}}
@media(max-height:380px) and (orientation:landscape){.hand-cards .playing-card{height:136px;min-height:136px}.game-shell:has(.response-panel) .opponent>.acting-badge{top:29px}.turn-strip{max-width:35vw}.turn-sequence>small{max-width:96px}}
@media(orientation:portrait){.turn-strip{position:relative;top:auto;left:auto;transform:none;width:auto;max-width:none;min-height:52px;margin:8px 10px 0;padding:5px 9px;gap:6px}.turn-copy{gap:3px}.turn-indicator{font-size:11px;line-height:15px}.turn-sequence{gap:3px}.turn-seat{width:17px;height:17px;font-size:9px}.turn-sequence>small{max-width:137px;font-size:9px;line-height:12px}.turn-sequence>b{font-size:9px}.opponent>.acting-badge{top:68px;min-height:18px;font-size:9px;line-height:12px;padding:1px 4px}.opponents.four .opponent>.acting-badge{top:62px;font-size:8px;line-height:11px;min-height:16px;padding:1px 3px}.opponent>.owner-badge{top:-2px;right:-3px;font-size:8px;line-height:11px;min-height:15px;padding:1px 4px}.seat-number{width:22px;height:22px;top:0;left:-2px;font-size:11px}.self-panel>.acting-badge,.self-panel>.owner-badge{bottom:0;font-size:8px;min-height:16px;line-height:11px}.hand-cards{height:233px;min-height:233px;padding-inline:24px;padding-top:16px;padding-bottom:9px}.hand-cards .playing-card{--card-w:115px;height:184px;min-height:184px;grid-template-rows:minmax(0,1fr) 22px 26px 24px;gap:3px;padding:5px;margin-left:min(0px,calc((100cqw - 48px - var(--card-count,1)*var(--card-w)) / max(1,var(--card-count,1) - 1)));transform:rotate(clamp(-8deg,var(--card-angle,0deg),8deg))}.hand-cards .playing-card:first-child{margin-left:0}.hand-cards .card-art{height:100%;min-height:0}.hand-cards .card-name{font-size:19px;line-height:22px}.hand-cards .card-summary{font-size:10px;line-height:13px;min-height:0}.hand-cards .card-quip{font-size:9.5px;line-height:11px;padding-top:2px}.hand-cards .card-top,.hand-cards .card-rank,.hand-cards .card-category{line-height:12px;font-size:9px}.card-codex .playing-card{height:244px;min-height:244px;grid-template-rows:minmax(0,1fr) 24px 30px 28px;padding:8px;gap:4px}.card-codex .card-art{height:100%;min-height:0}.card-codex .card-name{font-size:22px;line-height:24px}.card-codex .card-summary{font-size:11px;line-height:15px}}
@media(max-width:380px) and (orientation:portrait){.turn-sequence{gap:2px}.turn-sequence>small{max-width:119px}.turn-seat{width:16px;height:16px}.hand-cards .playing-card{--card-w:110px}.opponents.four .seat-number{left:0;width:20px;height:20px;font-size:10px}.opponents.four .opponent>.acting-badge{font-size:8px;padding-inline:2px}}
@media(prefers-reduced-motion:reduce){.opponent.is-acting:after,.self-panel.is-acting:before{animation:none!important}}
/* Rank/type sit in the artwork corners instead of consuming a sixth content row. */
.playing-card .card-top{position:absolute;z-index:4;left:5px;right:5px;top:5px;height:13px;min-height:0;margin:0;pointer-events:none}.playing-card .card-rank,.playing-card .card-category{background:#fff3dbdc;border:0;border-radius:3px;padding:0 3px}.playing-card:before{border:0;background:none}.playing-card .card-art>.card-illustration>path{display:none}.playing-card .card-art>.card-illustration>circle{opacity:.08}.playing-card .card-art>.card-illustration>ellipse{opacity:.12}
@media(max-height:410px) and (orientation:landscape){.hand-cards .playing-card .card-top{height:10px;top:4px;left:4px;right:4px}.hand-cards .playing-card .card-rank,.hand-cards .playing-card .card-category{padding-inline:2px}}
/* Final QA: a clear mint silhouette and physical pool of light identify the actor. */
.opponent.is-acting .portrait{filter:drop-shadow(2px 0 #aaffd1) drop-shadow(-2px 0 #aaffd1) drop-shadow(0 -2px #aaffd1) drop-shadow(0 2px #aaffd1) drop-shadow(0 0 12px #64e5abbb);opacity:1}.opponent.is-acting:after{inset:auto -18px 25px;height:31px;border:2px solid #8ef0bb;border-radius:50%;background:radial-gradient(ellipse,#b6ffd56e,#4cdda843 53%,#45ce9a11 72%);box-shadow:0 0 15px #72f3b688,inset 0 0 10px #aaffcc55;opacity:1;animation:v6-acting-light 1.8s ease-in-out infinite}.opponent.is-active:not(.is-acting):after{border:0;box-shadow:none;background:radial-gradient(ellipse at 50% 76%,#c2a6551c,transparent 67%)}.self-panel.is-acting .self-portrait{z-index:1;filter:drop-shadow(0 0 7px #8ef8bdc9)}.self-panel.is-acting .self-portrait>.portrait{filter:drop-shadow(2px 0 #aaffd1) drop-shadow(-2px 0 #aaffd1) drop-shadow(0 -2px #aaffd1) drop-shadow(0 2px #aaffd1) drop-shadow(0 0 11px #61dfa6b3);opacity:1}.self-panel.is-acting:before{left:-8px;bottom:10px;width:89px;height:24px;border:2px solid #a5f8c6;border-radius:50%;background:radial-gradient(ellipse,#b7ffd372,#50dda749 55%,#39b58a0a 75%);box-shadow:0 0 17px #75efb689,inset 0 0 8px #a6f5c45c;z-index:0}.self-panel.is-acting:after{inset:5px auto 14px -4px;width:82px;height:auto;clip-path:polygon(32% 0,66% 0,100% 100%,0 100%);background:linear-gradient(transparent,#59e0a50d 35%,#6ae8af32);z-index:0}.self-panel.is-acting.target-selected .self-portrait>.portrait,.opponent.is-acting.target-selected .portrait{filter:drop-shadow(2px 0 #f5a17b) drop-shadow(-2px 0 #f5a17b) drop-shadow(0 -2px #f5a17b) drop-shadow(0 0 11px #ed825a88)}
@media(max-width:700px) and (orientation:landscape){.turn-strip{max-width:30vw}.turn-sequence>small{max-width:85px}}
@media(prefers-reduced-motion:reduce){.opponent.is-acting:after,.self-panel.is-acting:before{animation:none!important}}
@media(max-width:1100px) and (orientation:landscape){.table-hud{z-index:16}}
/* v0.8: private identity deductions and visible, temporary protection. */
.identity-guess{position:absolute;z-index:13;top:28px;right:-4px;display:grid;place-items:center;min-width:29px;height:24px;padding:2px 4px;border:1px solid #fff0c1;background:var(--guess-color,#e0d4b7);color:#193d2e;font:1000 12px/16px var(--sans);box-shadow:2px 2px #173c2c;transform:rotate(4deg);pointer-events:none}.identity-guess:after{content:"";position:absolute;inset:2px;border:1px dashed #21443355;pointer-events:none}.focus-badge{position:absolute;z-index:12;right:-4px;top:58px;display:flex;align-items:center;gap:1px;height:23px;padding:2px 4px;border:1px solid #d3ffe3;background:#2f7157;color:#d3ffe3;font:900 10px/14px var(--mono);box-shadow:1px 2px #183c2e}.focus-badge>.icon{width:14px;height:16px}.self-panel>.focus-badge{top:30px;left:0;right:auto}
.modal.player-note-modal{max-width:540px;border-color:#c3aa72;background:#193d31}.player-note-modal .modal-content{padding:12px 18px 18px}.player-file-head{display:flex;align-items:center;gap:14px;padding-bottom:9px;border-bottom:1px solid #a2c09a44}.player-file-head>.portrait{width:82px;height:90px;object-fit:contain;filter:drop-shadow(0 4px 3px #08271e77)}.player-file-head>div{min-width:0}.player-file-head h3{font:1000 italic 25px/1.4 var(--sans);color:#fff0c7}.player-file-head p{font-size:12px;line-height:1.8;color:#c8d9b6}.player-file-head .eyebrow{font-size:10px;color:#bcd5ab;letter-spacing:.5px}.identity-notebook{padding-top:11px}.identity-notebook-title{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:9px;color:#f8e3b9}.identity-notebook-title>b{font-size:15px}.identity-notebook-title>small{font-size:10px;color:#b0c3a5}.identity-mark-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.identity-mark-option{display:grid;place-items:center;align-content:center;gap:4px;min-height:65px;padding:5px 2px;border:1px solid #809f7d;background:#193c31;color:var(--guess-color);box-shadow:0 3px #0c2b20}.identity-mark-option>strong{font:1000 italic 24px/26px var(--sans)}.identity-mark-option>span{font-size:10px;line-height:14px;white-space:nowrap}.identity-mark-option.selected{background:var(--guess-color);color:#183e2c;border:2px solid #fff1c4;box-shadow:0 0 0 2px #8dc49a44,0 3px #0c2b20}.identity-note-footer{display:flex;align-items:center;justify-content:space-between;gap:9px;color:#becfae;font-size:11px;margin-top:5px}.identity-note-footer>.text-btn{font-size:11px;color:#f3d1a0}.player-note-modal .modal-actions{margin-top:8px}.public-identity-note{padding:13px 0 4px;font-size:12px;color:#c4d2af}
@media(max-width:1100px) and (orientation:landscape){.player-note-modal .modal-header{padding:9px 15px 5px}.player-note-modal .modal-header h2{font-size:19px;line-height:25px}.player-note-modal .modal-content{padding:7px 15px 12px}.player-file-head{gap:10px;padding-bottom:5px}.player-file-head>.portrait{width:64px;height:64px}.player-file-head h3{font-size:22px}.player-file-head p{font-size:11px;line-height:1.5}.identity-notebook{padding-top:7px}.identity-notebook-title{margin-bottom:6px}.identity-mark-option{min-height:56px;gap:2px}.identity-mark-option>strong{font-size:22px;line-height:24px}.identity-note-footer{margin-top:1px}.player-note-modal .modal-actions{margin-top:3px}.player-note-modal .modal-actions .btn{min-height:44px;padding:5px 12px;font-size:11px}}
@media(orientation:portrait){.identity-mark-options{gap:5px}.player-file-head>.portrait{width:68px;height:83px}.player-file-head h3{font-size:22px}.player-note-modal .modal-content{padding-inline:13px}.identity-notebook-title>b{font-size:14px}}

/* v0.9: ink-and-paper card frames around the same sculptural comic cutouts used on stage. */
.playing-card{border:2px solid #152623;border-radius:2px;background:linear-gradient(153deg,#f6e6c6,#e5c895);color:#152623;box-shadow:3px 4px 0 #081d18,inset 0 0 0 2px #f8e8c9}
.playing-card:before{inset:3px;border:1px solid #15262366}
.playing-card:after{height:5px;background:var(--card-color);box-shadow:0 -1px #152623}
.card-art{position:relative;background:radial-gradient(ellipse at 50% 65%,#e5b47d80,transparent 70%);isolation:isolate}
.card-art:before{content:'';position:absolute;inset:3% 1% 8%;z-index:-1;opacity:.22;transform:rotate(-8deg);background-image:radial-gradient(#152623 1px,transparent 1px);background-size:5px 5px;clip-path:polygon(0 20%,88% 0,100% 78%,13% 100%)}
.card-art>.card-illustration{filter:drop-shadow(1px 2px 0 #15262324)}
.card-rank{color:#152623;font-weight:900}
.card-category{color:#f6e5c1;background:#152623;padding:0 4px;transform:skew(-7deg);border-bottom:2px solid var(--card-color)}
.card-name{color:#152623;text-shadow:1px 1px #f9e9c8;letter-spacing:-.65px;transform:skew(-3deg)}
.card-summary{color:#273c31;font-weight:900}
.card-quip{color:#a83224;border-color:#15262350;font-weight:900}
.playing-card.is-playable{border-color:#152623;box-shadow:0 0 0 2px #7ac599,3px 5px #08271c,inset 0 -5px #2b8b66}
.playing-card.is-selected{border-color:#152623;box-shadow:0 0 0 3px #e44e32,4px 7px #081d18,inset 0 -5px #d6432b}
.playing-card.is-selected .card-name{color:#a8281f}
.status-stamps{position:absolute;left:-5px;top:34px;z-index:11;display:flex;flex-direction:column;gap:2px;pointer-events:none}
.status-stamps>span{display:grid;place-items:center;width:19px;height:19px;border:1px solid #152623;background:#efdab5;color:#a83224;box-shadow:1px 1px #152623;font:1000 11px/1 var(--sans);transform:rotate(-7deg)}
.status-stamps>[data-status=safe]{background:#a9c9aa;color:#153c2b}
.status-stamps>[data-status=bet]{background:#c83b2b;color:#ffedc5}
.self-info .status-stamps{position:static;flex-direction:row;margin-top:3px;gap:3px}
.public-status-list{margin-top:12px;padding:9px 12px;background:#092c2588;border-left:3px solid #d66b43;color:#dce1bf}
.public-status-list>b{font-size:12px;color:#f7d9a0}
.public-status-list>p{margin-top:6px;font-size:11px;line-height:1.7}
.public-status-list strong{color:#ffbc84;margin-right:8px}
.choice-response .response-actions{max-height:none;flex-wrap:nowrap;gap:5px}
.choice-response .response-actions .btn{padding:4px 8px;white-space:nowrap;font-size:10px;min-height:44px}
@media(max-height:410px) and (orientation:landscape){.status-stamps{left:-7px;top:32px;gap:1px}.status-stamps>span{width:16px;height:16px;font-size:10px}.self-info .status-stamps{margin-top:2px}.choice-response{max-width:min(470px,72vw)}.choice-response .response-heading{font-size:11px}.choice-response>p{font-size:10px}.choice-response .response-actions .btn{font-size:9px;padding-inline:6px}.card-art:before{background-size:4px 4px}}
@media(orientation:portrait){.status-stamps{left:-2px;top:28px}.status-stamps>span{width:17px;height:17px;font-size:10px}.choice-response .response-actions .btn{font-size:10px}.card-category{padding:0 3px}}
/* v0.10 — explicit three-slot loadouts, public action direction and touch card picking. */
.self-panel{padding-bottom:53px}
.self-panel .equipment-rack{position:absolute;inset:auto 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;width:auto;flex-direction:row;align-items:stretch}
.self-panel .equipment-rack .equip-slot{width:auto;min-width:44px;height:48px;min-height:44px;clip-path:none;border-radius:2px;overflow:visible;padding:3px 1px 2px;gap:1px}
.equip-slot{position:relative;isolation:isolate;cursor:pointer;touch-action:manipulation}
.equip-slot .equip-slot-symbol{position:absolute;top:1px;left:2px;display:grid;place-items:center;width:12px;height:12px;color:#ffe4b1;opacity:.65}
.equip-slot-symbol>.icon{width:11px;height:11px}
.equip-art{display:grid;place-items:center;width:100%;height:29px;color:#ffedbf}
.equip-art>.icon{width:35px;height:29px;stroke-width:1.8;filter:drop-shadow(1px 1px #10291b)}
.equip-empty-mark{display:grid;place-items:center;width:100%;height:26px;font:400 22px/1 var(--sans);opacity:.5}
.equip-slot.empty>.equip-slot-symbol{position:static;width:100%;height:26px;opacity:.65}
.equip-slot.empty>.equip-slot-symbol .icon{width:24px;height:24px}
.equip-slot.empty>.equip-empty-mark{display:none}
.equipment-rack .equip-slot>small{font-size:8px;line-height:10px;max-width:100%;letter-spacing:-.2px}
.equip-slot.can-equip{border-style:solid;border-color:#f1be66;background:#285b40;box-shadow:inset 0 0 0 1px #f1be6677}
.equip-ready{position:absolute;right:-2px;top:-6px;background:#e6ba60;border:1px solid #173b2e;color:#183c2c;font:900 normal 7px/11px var(--sans);padding:0 2px}
.equip-slot:focus-visible{outline:3px solid #f0a176;outline-offset:2px;z-index:61}
.equip-slot:hover,.equip-slot:focus-within{z-index:62}
.equip-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;translate:-50% 0;z-index:100;display:none;width:235px;max-width:calc(100vw - 24px);padding:11px 12px;background:#f1dfb9;color:#172d28;border:2px solid #172d28;box-shadow:4px 4px #0b211bdd;text-align:left;white-space:normal;pointer-events:none;font:700 11px/1.6 var(--sans)}
.equip-slot:hover>.equip-tooltip,.equip-slot:focus-visible>.equip-tooltip{display:block}
.equip-tooltip>b{display:block;font:1000 italic 18px/1.4 var(--sans);color:#ad3528}
.equip-tooltip>em{display:block;font:900 normal 9px/1.6 var(--sans);padding-bottom:5px;border-bottom:1px dashed #27403266;margin-bottom:5px}
.equip-tooltip>span{display:block}
.equip-attributes{display:flex!important;flex-wrap:wrap;gap:4px;margin:4px 0}
.equip-attributes>strong{padding:2px 5px;background:#214d40;color:#f4e1b8;font-size:10px}
.equip-attributes i{color:#ffd38b;font-style:normal}
.equipment-rack .equip-tooltip{position:fixed;left:12px;bottom:calc(var(--dock-h) + 8px);translate:none;width:270px}
.opponent .equipment-row{top:auto;bottom:19px;right:-15px;gap:3px}
.opponent .equipment-row .equip-slot{display:flex;align-items:center;justify-content:center;min-height:28px;width:30px;height:30px;padding:0;border-radius:2px;clip-path:none;overflow:visible}
.opponent .equip-art{height:100%;width:100%}.opponent .equip-art>.icon{height:25px;width:25px}
.opponent .equip-slot-symbol{display:none}.opponent .equip-slot.empty>.equip-slot-symbol{display:grid;height:100%}.opponent .equip-slot.empty>.equip-slot-symbol>.icon{width:20px;height:20px}
.opponent .equipment-row .equip-slot>small{position:absolute;left:50%;bottom:-2px;translate:-50% 0;background:#132f26ed;padding:0 2px;display:block;font:900 6px/8px var(--sans);color:#e9d8ad;max-width:38px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.opponent .equipment-row .equip-slot.empty>small{display:none}
.opponent .equip-tooltip{left:auto;right:0;translate:none;bottom:calc(100% + 6px)}
.opponent[data-seat="1"] .equip-tooltip{left:0;right:auto}
.self-panel>.acting-badge,.self-panel>.owner-badge{bottom:53px}
.game-shell:has(.hand-cards .playing-card[data-equipment-slot="tool"]:hover) .equipment-rack .slot-tool,.game-shell:has(.hand-cards .playing-card[data-equipment-slot="confidence"]:hover) .equipment-rack .slot-confidence,.game-shell:has(.hand-cards .playing-card[data-equipment-slot="reach"]:hover) .equipment-rack .slot-reach,.game-shell:has(.hand-cards .playing-card[data-equipment-slot="tool"]:focus-visible) .equipment-rack .slot-tool,.game-shell:has(.hand-cards .playing-card[data-equipment-slot="confidence"]:focus-visible) .equipment-rack .slot-confidence,.game-shell:has(.hand-cards .playing-card[data-equipment-slot="reach"]:focus-visible) .equipment-rack .slot-reach{outline:2px solid #f7ca7e;outline-offset:2px;background:#7b5934;animation:v10-slot-pulse 1.3s ease-in-out infinite}
.slot-guide{display:grid;grid-template-columns:50px 1fr;gap:4px 12px;color:#e3dbba}.slot-guide-icon{grid-row:1/3;display:grid;place-items:center;background:#315e47;border:1px dashed #a6b282}.slot-guide-icon .icon{width:34px;height:34px}.slot-guide h3{font:1000 italic 23px/1.4 var(--sans)}.slot-guide p{font-size:12px;line-height:1.7}.slot-card-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-top:10px}.slot-card{display:flex;flex-direction:column;align-items:center;gap:5px;background:#ead7ad;border:2px solid #172f26;color:#183c2d;padding:8px;text-align:left}.slot-card>.card-illustration{width:100%;height:90px;object-fit:contain}.slot-card>b{font-size:15px}.slot-card>span{font-size:10px;line-height:1.6}
.live-action-callout{position:absolute;z-index:27;left:50%;top:99px;transform:translateX(-50%) rotate(-1deg);max-width:min(620px,80vw);display:flex;align-items:center;justify-content:center;gap:8px;padding:4px 12px;border:2px solid #152923;background:#edd9ac;color:#173a2c;box-shadow:3px 3px #112920c7;font:900 12px/1.4 var(--sans);pointer-events:none}
.live-action-callout>b{font:1000 italic 23px/1.3 var(--sans);color:#b32c23;white-space:nowrap}.live-action-destination{display:flex;align-items:center;gap:5px;min-width:0}.live-action-destination>.icon{width:18px;height:18px;flex:none}
.opponent.is-action-source .portrait,.self-panel.is-action-source .self-portrait>.portrait{filter:drop-shadow(2px 0 #f4d085) drop-shadow(-2px 0 #f4d085) drop-shadow(0 -2px #f4d085)!important}
.opponent.is-action-target .portrait,.self-panel.is-action-target .self-portrait>.portrait{filter:drop-shadow(3px 0 #ef6c47) drop-shadow(-3px 0 #ef6c47) drop-shadow(0 -3px #ef6c47) drop-shadow(0 2px #ef6c47)!important}
.opponent.is-action-source:before,.self-panel.is-action-source .self-portrait:after{display:block;content:'出招';position:absolute;left:-5px;top:18px;bottom:auto;right:auto;width:auto;height:auto;z-index:20;background:#efcf8e;color:#173b2c;border:1px solid #132c23;border-radius:0;padding:2px 4px;font:1000 italic 10px/14px var(--sans);transform:rotate(-7deg);clip-path:none}
.opponent.is-action-target:before,.self-panel.is-action-target .self-portrait:after{display:block;content:'目标';position:absolute;left:-5px;top:18px;bottom:auto;right:auto;width:auto;height:auto;z-index:20;background:#cf432e;color:#fff0c9;border:1px solid #132c23;border-radius:0;padding:2px 4px;font:1000 italic 11px/14px var(--sans);transform:rotate(-7deg);clip-path:none}
.card-choice-panel.response-panel{display:block!important;left:50%;right:auto;bottom:calc(100% + 4px);transform:translateX(-50%);width:min(620px,calc(100vw - 24px));max-width:none;min-height:0;max-height:min(330px,calc(100vh - 75px));overflow:hidden;padding:7px 9px;border:2px solid #152e26;border-top:4px solid #d95132;background:#ecdbb8;color:#183d2f;z-index:50;box-shadow:5px 6px #0c2b20aa}
.card-choice-panel>header{display:flex;align-items:center;gap:7px;padding-bottom:5px}.pick-owner{height:38px;width:36px;flex:none;overflow:hidden}.pick-owner>.portrait{height:60px;width:48px;object-fit:cover;object-position:50% 0;filter:none!important}.card-choice-panel>header>div{flex:1;min-width:0}.card-choice-panel header strong{font:1000 italic 17px/1.3 var(--sans);color:#aa3326}.card-choice-panel header p{font-size:10px;line-height:1.5;margin:2px 0 0;white-space:normal}.card-choice-panel header p>b{display:inline-block;margin-left:8px;background:#285444;color:#f3dbaa;padding:1px 5px;font-size:10px}.card-choice-panel header>.btn{min-height:44px;padding:5px 9px;font-size:11px;flex:none}
.choice-cards{display:flex;justify-content:flex-start;align-items:stretch;gap:7px;overflow:auto;max-height:160px;padding:4px 3px 6px;scroll-snap-type:x proximity}.pick-card{position:relative;flex:0 0 78px;width:78px;height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid #18372c;border-radius:2px;background:#f3dfb3;color:#193d2c;box-shadow:2px 3px #163d2b44;scroll-snap-align:center;touch-action:manipulation}.pick-card:hover,.pick-card:focus-visible{outline:3px solid #c3442d;outline-offset:1px;transform:translateY(-2px)}.pick-card-art{display:block;width:100%;height:74px;min-height:0}.pick-card-art>.card-illustration{height:100%;width:100%;object-fit:contain}.pick-card>b{font:1000 italic 11px/15px var(--sans);white-space:nowrap;z-index:2}.pick-card>small{font:800 8px/11px var(--sans);z-index:2}.pick-card-suit{position:absolute;top:2px;left:3px;z-index:3;font:900 8px/11px var(--mono);background:#f3dfb3c9}.pick-card.is-back{background:#295e50;color:#f0d8a8}.pick-back-pattern{position:absolute;inset:4px;border:1px solid #d6ba7b;background:repeating-linear-gradient(45deg,transparent 0 5px,#debd7b22 5px 7px),repeating-linear-gradient(-45deg,transparent 0 5px,#debd7b22 5px 7px)}.pick-card.is-back>b{display:grid;place-items:center;width:42px;height:42px;background:#ead4a1;color:#204b3a;border:2px solid #122e22;transform:rotate(-6deg);font:1000 italic 27px/1 var(--sans);margin-bottom:9px}.pick-privacy{display:block;font-size:9px;line-height:1.5;border-top:1px dashed #29453266;padding-top:3px}
.score-report{margin-top:18px;text-align:left}.score-report-title{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:3px solid #c5754b;padding-bottom:8px}.score-report-title .eyebrow{font-size:9px;line-height:1.5;color:#9dbc9c}.score-report-title h4{font:1000 italic 23px/1.4 var(--sans);color:#f2d89e}.own-score{text-align:right}.own-score>strong{display:block;font:1000 italic 36px/1 var(--sans);color:#efaf70}.own-score>span{font-size:10px;color:#ccdfb5}.scoreboard{display:flex;flex-direction:column;gap:6px;margin-top:9px}.score-row{display:flex;align-items:center;gap:8px;background:#15382b;border:1px solid #577c5d;padding:6px 8px;min-height:74px}.score-row.is-self{border-color:#d69d60;background:#2f4d34}.score-rank{width:27px;flex:none;color:#8eb596;font:1000 italic 14px/1 var(--mono)}.is-mvp .score-rank{font-size:12px;color:#ffc477;transform:rotate(-6deg)}.score-row>.portrait{width:49px;height:62px;object-fit:cover;object-position:50% 0;flex:none}.score-player{flex:1;min-width:0}.score-player>b{font-size:13px;color:#e5ddba}.score-player>small{display:block;font-size:9px;color:#98b995;margin-top:2px}.score-stats{display:flex;flex-wrap:wrap;gap:2px 9px;margin-top:5px}.score-stats>span{font-size:9px;color:#94b78d;white-space:nowrap}.score-stats b{font:900 11px/1 var(--mono);margin-left:3px;color:#f3dca7}.score-value{flex:none;text-align:right;min-width:42px}.score-value>strong{display:block;font:1000 italic 26px/1 var(--sans);color:#f0c78b}.score-value>span{font-size:10px;color:#b7d4a5}.score-note{font-size:10px;line-height:1.7;color:#a0ba92;margin-top:9px}.score-report+.result-players{display:none}
@keyframes v10-slot-pulse{50%{outline-offset:4px;filter:brightness(1.3)}}
@media(max-width:1100px) and (orientation:landscape){.self-panel .equipment-rack .equip-slot{height:44px}.self-panel .equipment-rack{gap:3px}.self-panel{padding-bottom:48px}.self-panel>.acting-badge,.self-panel>.owner-badge{bottom:48px}.equip-art{height:27px}.equip-art>.icon{height:26px;width:31px}.live-action-callout{top:84px;gap:5px;padding:3px 8px;font-size:10px;max-width:72vw}.live-action-callout>b{font-size:18px}.live-action-destination>.icon{width:14px}.opponent .equipment-row{bottom:21px;top:auto;right:-14px}.card-choice-panel.response-panel{width:min(560px,calc(100vw - 28px));max-height:calc(100vh - 56px)}.card-choice-panel header strong{font-size:15px}.card-choice-panel header p{font-size:9px}.pick-owner{height:31px}.pick-owner>.portrait{height:53px}.choice-cards{max-height:126px;gap:6px}.pick-card{flex-basis:70px;width:70px;height:102px}.pick-card-art{height:65px}.pick-privacy{font-size:8px}}
@media(max-height:410px) and (orientation:landscape){.self-panel{padding-bottom:46px}.self-panel .equipment-rack{gap:2px}.self-panel .equipment-rack .equip-slot{height:44px;min-width:44px;padding-top:1px}.equipment-rack .equip-slot>small{font-size:7px;line-height:9px}.equip-art{height:28px}.self-panel>.acting-badge,.self-panel>.owner-badge{bottom:46px;font-size:7px;line-height:10px;min-height:13px}.self-panel .self-portrait{max-height:93px;align-self:flex-start}.self-info{align-self:flex-start}.self-info .status-stamps{gap:2px}.self-info .status-stamps>span{width:13px;height:13px;font-size:8px}.live-action-callout{top:73px;max-width:74vw;padding:2px 7px;font-size:9px;gap:4px}.live-action-callout>b{font-size:16px;letter-spacing:-.5px}.opponent .equipment-row{bottom:20px;top:auto}.opponent .equipment-row .equip-slot{width:27px;height:27px;min-height:27px}.opponent .equip-art>.icon{width:23px;height:23px}.card-choice-panel.response-panel{max-height:calc(100vh - 58px);bottom:calc(100% + 3px);padding:4px 7px}.card-choice-panel>header{padding-bottom:2px;gap:5px}.choice-cards{max-height:110px;padding-block:2px 5px}.pick-card{width:62px;flex-basis:62px;height:93px}.pick-card-art{height:59px}.pick-card>b{font-size:10px;line-height:13px}.pick-card>small{font-size:8px;line-height:10px}.pick-card.is-back>b{width:34px;height:34px;font-size:23px;margin-bottom:7px}.card-choice-panel header strong{font-size:14px}.card-choice-panel header p{max-height:26px;overflow:hidden}.pick-privacy{font-size:8px}.equipment-rack .equip-tooltip{bottom:calc(var(--dock-h) + 6px)}}
@media(orientation:portrait){.self-panel{padding-bottom:0;min-height:116px}.self-panel .equipment-rack{position:static;display:grid;grid-template-columns:repeat(3,46px);width:146px;gap:4px;flex:none}.self-panel .equipment-rack .equip-slot{height:44px;min-width:44px}.self-info{flex-wrap:wrap;gap:5px}.self-info .self-header{min-width:100%;flex:0 0 100%}.self-panel>.acting-badge,.self-panel>.owner-badge{bottom:0}.live-action-callout{position:relative;left:auto;top:auto;transform:rotate(-1deg);max-width:calc(100% - 20px);width:max-content;margin:8px auto 2px;font-size:9px;gap:5px;padding:3px 7px}.live-action-callout>b{font-size:16px}.live-action-destination>.icon{width:12px;height:12px}.opponent .equipment-row{top:auto;bottom:21px;right:-12px}.opponent .equipment-row .equip-slot{width:27px;height:27px;min-height:27px}.card-choice-panel.response-panel{position:relative;left:auto;right:auto;bottom:auto;transform:none;width:100%;max-height:310px;grid-column:1;grid-row:auto;margin-bottom:4px;padding:6px}.card-choice-panel header strong{font-size:15px}.card-choice-panel header p{font-size:9px}.choice-cards{max-height:145px}.pick-card{width:75px;flex-basis:75px;height:108px}.pick-card-art{height:71px}.pick-privacy{font-size:8px}.score-report-title h4{font-size:20px}.score-row{gap:5px;padding:5px}.score-row>.portrait{width:37px;height:57px}.score-rank{width:24px;font-size:12px}.score-player>b{font-size:12px}.score-stats{gap:3px 6px}.score-stats>span{font-size:8px}.score-stats b{font-size:9px}.score-value>strong{font-size:23px}.own-score>strong{font-size:30px}.equip-tooltip{display:none!important}}
@media(prefers-reduced-motion:reduce){.equipment-rack .equip-slot{animation:none!important}}
.reach-value{display:flex;align-items:center;gap:3px;font:900 8px/12px var(--sans);color:#c6c79d;margin-top:3px}.reach-value>.icon{width:12px;height:12px}.equipment-facts{display:flex;align-items:flex-start;gap:10px;margin:12px 0;padding:10px 12px;background:#f0ddb6;border:2px solid #17372d;color:#173d2e;text-align:left}.equipment-facts>.icon{flex:none;width:37px;height:37px}.equipment-facts>div>b{font-size:12px;color:#ad3c28}.equipment-facts p{margin:4px 0 0;font-size:11px;line-height:1.6;color:#264b39}.equipment-facts strong{margin-right:9px;color:#9a4e2e}
@media(max-height:410px) and (orientation:landscape){.reach-value{font-size:7px;line-height:9px;margin-top:2px}.reach-value>.icon{width:10px;height:10px}}
.score-stats>.score-stat-penalty{color:#f0ab87}.score-stats>.score-stat-penalty>b{color:#ffbf9b}.score-stat-penalty>i{font:900 normal 8px/1.4 var(--sans);margin-left:3px;color:#f8ae88}.score-formula{margin-top:10px;padding:7px 9px;border:1px solid #6c8b65;background:#102e23;color:#b6cba7}.score-formula>summary{display:flex;align-items:center;justify-content:space-between;gap:7px;min-height:28px;cursor:pointer;font:900 11px/1.5 var(--sans);color:#e5cf9e;list-style:none}.score-formula>summary>.icon{width:15px;height:15px}.score-formula p{margin:6px 0 0;font-size:10px;line-height:1.8;color:#b4c9a4;overflow-wrap:anywhere}
@media(orientation:portrait){.score-formula{padding:6px 8px}.score-formula p{font-size:9px}.score-stats>.score-stat-penalty>i{font-size:7px}}
/* Pending choices own their reading area; legacy response bars never clip physical cards. */
.game-shell .own-zone .card-choice-panel.response-panel{height:auto!important;min-height:0;max-height:min(220px,calc(100dvh - 66px));width:min(560px,calc(100vw - 28px));max-width:min(560px,calc(100vw - 28px));display:block;overflow:visible;z-index:50}
.pick-context{display:block;color:#214c3b;font:900 10px/1.4 var(--sans);margin-top:1px;overflow-wrap:anywhere}
.live-action-callout.is-pending-relation{border-color:#e79c67;background:#f0dcad}.live-action-callout>small{display:block;border-left:1px solid #26433377;padding-left:7px;font:900 9px/1.4 var(--sans);color:#35553a;max-width:125px}

.status-stamps>[data-status=solo]{background:#edbc6f;color:#25462c}
@media(max-width:1100px) and (orientation:landscape){.game-shell .own-zone .card-choice-panel.response-panel{height:auto!important;min-height:0;max-height:calc(100dvh - 60px);width:min(560px,calc(100vw - 28px));max-width:min(560px,calc(100vw - 28px));padding:4px 7px}.card-choice-panel>header{padding-bottom:2px}.pick-context{font-size:9px;line-height:12px}.card-choice-panel header p{font-size:8px;line-height:11px;max-height:22px}.card-choice-panel header strong{font-size:14px;line-height:17px}.live-action-callout>small{font-size:8px;max-width:110px;padding-left:5px}}
@media(max-height:410px) and (orientation:landscape){.game-shell .own-zone .card-choice-panel.response-panel{height:auto!important;min-height:0;max-height:calc(100dvh - 58px);width:min(560px,calc(100vw - 28px));max-width:min(560px,calc(100vw - 28px));bottom:calc(100% + 3px)}.card-choice-panel>header{min-height:39px}.pick-owner{height:35px}.pick-context{font-size:9px;line-height:11px}.card-choice-panel header p{font-size:8px;line-height:10px;max-height:20px;margin-top:0}.card-choice-panel header p>b{font-size:8px;padding:0 3px}.card-choice-panel .choice-cards{height:100px;max-height:100px;padding:2px 3px 5px}.card-choice-panel .pick-card{height:93px;width:62px;flex-basis:62px}.card-choice-panel .pick-privacy{font-size:8px;line-height:11px;margin-top:1px;padding-top:2px}.live-action-callout.is-pending-relation{max-width:84vw;top:58px}.live-action-callout>small{max-width:106px;font-size:7px}}
@media(orientation:portrait){.game-shell .own-zone .card-choice-panel.response-panel{position:relative;left:auto;right:auto;bottom:auto;transform:none;height:auto!important;width:100%;max-width:100%;max-height:none;overflow:visible}.card-choice-panel header p{font-size:9px;line-height:13px}.live-action-callout>small{display:none}}
/* A physical-card picker carries its own persistent context; keep avatar cues, avoid stacked captions. */
.game-shell:has(.card-choice-panel)>.live-action-callout{display:none}
/* While picking cards, lift the whole dock stacking context above the table HUD. */
.game-shell:has(.card-choice-panel)>.own-zone{z-index:20}
.game-shell:has(.card-choice-panel)>.game-header{z-index:30}
.game-shell:has(.card-choice-panel)>.turn-strip{z-index:31}

/* Short landscape screens reserve the top bar before laying out a full touch picker. */
@media(max-height:410px) and (orientation:landscape){.game-shell .own-zone .card-choice-panel.response-panel{position:fixed;top:54px;bottom:auto;left:50%;right:auto;transform:translateX(-50%);max-height:calc(100dvh - 64px)}}
/* Touch equipment inspection opens directly on its rules, with full artwork one step deeper. */
.modal.equipment-quick-modal{max-width:500px}.equipment-quick-modal .modal-content{padding:10px 17px 15px}.equipment-quick-head{display:flex;align-items:center;gap:12px}.equipment-quick-icon{display:grid;place-items:center;width:54px;height:54px;flex:none;border:1px solid #afbe8a;background:#28533e;color:#f3d6a0}.equipment-quick-icon>.icon{width:42px;height:42px;stroke-width:1.7}.equipment-quick-head .eyebrow{font-size:9px;letter-spacing:.3px;color:#a7c28d}.equipment-quick-head h3{font:1000 italic 25px/1.3 var(--sans);color:#f0d49e;margin:2px 0}.equipment-quick-head small{font-size:10px;color:#a7bf92}.equipment-quick-effect{margin-top:11px;padding:8px 10px;background:#e7d4ab;color:#1f4331;border-left:4px solid #c75b37}.equipment-quick-effect>strong{font-size:10px;color:#a3442d}.equipment-quick-effect>p{font:800 12px/1.7 var(--sans);margin-top:3px;color:#214431}.equipment-quick-replace{display:flex;align-items:flex-start;gap:6px;margin:9px 0 0;font-size:10px;line-height:1.7;color:#a8c194}.equipment-quick-replace>.icon{width:15px;height:15px;flex:none;margin-top:1px}.equipment-quick-modal .modal-actions{margin-top:11px}
@media(max-height:410px) and (orientation:landscape){.equipment-quick-modal .modal-header{padding:7px 15px 4px}.equipment-quick-modal .modal-header h2{font-size:19px;line-height:25px}.equipment-quick-modal .modal-header .eyebrow{font-size:8px}.equipment-quick-modal .modal-content{padding:6px 15px 11px}.equipment-quick-head{gap:10px}.equipment-quick-icon{width:45px;height:45px}.equipment-quick-icon>.icon{width:34px;height:34px}.equipment-quick-head h3{font-size:23px;line-height:28px;margin:0}.equipment-quick-head small{font-size:9px}.equipment-quick-effect{margin-top:8px;padding:6px 9px}.equipment-quick-effect>p{font-size:11px;line-height:1.65;margin-top:2px}.equipment-quick-replace{font-size:9px;line-height:15px;margin-top:7px}.equipment-quick-modal .modal-actions{margin-top:8px;gap:6px}.equipment-quick-modal .modal-actions .btn{min-height:44px;font-size:11px;padding:5px 10px}}

/* v0.11 — category silhouettes and avatar performance replace table-spanning arrows. */
[data-card-family="basic"]{--category-color:#ba432f}[data-card-family="trick"]{--category-color:#236d68}[data-card-family="equipment"]{--category-color:#b98230}
.category-emblem{position:relative;display:inline-grid;place-items:center;flex:none;width:23px;height:23px;vertical-align:middle;background:#f2e0b7;color:var(--category-accent,#236d68);border:2px solid var(--category-color,#236d68);box-shadow:1px 1px #152e25;line-height:1;transform:none;isolation:isolate}
.category-emblem>.icon{width:16px;height:16px;stroke-width:2.1}.category-emblem.family-basic{border-radius:50%}.category-emblem.family-trick{border-radius:1px;rotate:45deg}.category-emblem.family-trick>.icon{rotate:-45deg}.category-emblem.family-equipment{border:0;background:#d6a84c;color:#17392a;clip-path:polygon(23% 0,77% 0,100% 27%,100% 73%,77% 100%,23% 100%,0 73%,0 27%);filter:drop-shadow(1px 1px #183329);box-shadow:none}
.playing-card[data-card-family]:after{left:0;right:0;top:0;height:6px;background:var(--category-color);box-shadow:0 1px #152e25;opacity:1}
.playing-card .card-top>.category-emblem.card-category{position:absolute;right:0;top:-1px;width:20px;height:20px;min-width:20px;padding:0;letter-spacing:0;overflow:visible;font-size:0;border-bottom-width:2px;z-index:5}
.playing-card .card-top>.category-emblem.family-basic{background:#f4e4c1;border-radius:50%;transform:none}.playing-card .card-top>.category-emblem.family-trick{background:#f4e4c1;border-radius:1px;transform:none}.playing-card .card-top>.category-emblem.family-equipment{background:#d6a84c;border:0;transform:none}.playing-card .card-top>.category-emblem>.icon{width:14px;height:14px}
.category-legend{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px 17px;margin:10px 0 15px;padding:7px 10px;background:#13392d;border-block:1px solid #68805d;color:#d6dcba}.category-legend>span{display:flex;align-items:center;gap:7px}.category-legend b{font:900 10px/1.5 var(--sans)}.category-legend .category-emblem{width:20px;height:20px}.category-legend .category-emblem>.icon{width:14px;height:14px}
.card-detail-title,.equipment-quick-head h3{display:flex;align-items:center;gap:10px}.card-detail-title .category-emblem{width:27px;height:27px}.codex-detail[data-card-family]>.eyebrow{border-left:5px solid var(--category-color);padding-left:7px}.equipment-quick[data-card-family] .equipment-quick-icon{border-top:4px solid var(--category-color)}.equipment-quick-head h3>.category-emblem{width:21px;height:21px}.equipment-quick-head h3>.category-emblem>.icon{width:15px;height:15px}
.equip-slot[data-card-family]:after{content:'';position:absolute;inset:0 0 auto;height:3px;background:var(--category-color);pointer-events:none}.equip-slot .equip-slot-symbol{width:17px;height:17px;opacity:1;top:1px;left:1px}.equip-slot-symbol>.category-emblem{width:16px;height:16px}.equip-slot-symbol>.category-emblem>.icon{width:12px;height:12px}.equip-slot.empty>.equip-slot-symbol>.category-emblem{width:26px;height:26px}.equip-slot.empty>.equip-slot-symbol>.category-emblem>.icon{width:20px;height:20px}.opponent .equip-slot.occupied>.equip-slot-symbol{display:grid;position:absolute;width:12px;height:12px;z-index:2;left:-1px;top:-1px}.opponent .equip-slot.occupied>.equip-slot-symbol>.category-emblem{width:12px;height:12px}.opponent .equip-slot.occupied>.equip-slot-symbol>.category-emblem>.icon{width:9px;height:9px}.opponent .equip-slot.empty>.equip-slot-symbol>.category-emblem{width:21px;height:21px}.opponent .equip-slot.empty>.equip-slot-symbol>.category-emblem>.icon{width:15px;height:15px}.slot-guide-icon>.category-emblem{width:35px;height:35px}.slot-guide-icon>.category-emblem>.icon{width:26px;height:26px}.slot-card{position:relative;border-top:5px solid var(--category-color)}.slot-card>.category-emblem{position:absolute;top:5px;right:5px}
.pick-card.is-face[data-card-family]{border-top:4px solid var(--category-color)}.pick-card>.pick-category{position:absolute;top:2px;right:2px;width:17px;height:17px;z-index:4}.pick-card>.pick-category>.icon{width:12px;height:12px}
.live-action-destination{font-weight:1000;color:#a03625}.opponent.is-action-source .portrait,.self-panel.is-action-source .self-portrait>.portrait{filter:drop-shadow(2px 0 #f3d18a) drop-shadow(-2px 0 #f3d18a) drop-shadow(0 -2px #f3d18a) drop-shadow(0 0 8px #f4c66cbb)!important;animation:v11-source-rise 650ms ease-out both}.opponent.is-action-target .portrait,.self-panel.is-action-target .self-portrait>.portrait{filter:drop-shadow(3px 0 #f0784b) drop-shadow(-3px 0 #f0784b) drop-shadow(0 -3px #f0784b) drop-shadow(0 2px #f0784b) drop-shadow(0 0 10px #ea7545a0)!important;animation:v11-target-pulse 1100ms ease-in-out infinite}.opponent.is-action-target.is-action-benefit .portrait,.self-panel.is-action-target.is-action-benefit .self-portrait>.portrait{filter:drop-shadow(3px 0 #8fddaa) drop-shadow(-3px 0 #8fddaa) drop-shadow(0 -3px #8fddaa) drop-shadow(0 0 10px #68cb9ba0)!important}.is-action-target.is-action-benefit:before,.self-panel.is-action-target.is-action-benefit .self-portrait:after{background:#397657!important;color:#f0edc1!important}.is-action-hit .portrait-frame:after{content:'';position:absolute;inset:20% -13% 10%;z-index:8;background:#f4dd9b;clip-path:polygon(0 36%,24% 31%,16% 0,43% 24%,62% 3%,66% 29%,100% 17%,79% 48%,99% 68%,70% 67%,84% 100%,51% 76%,27% 98%,27% 68%,2% 77%,16% 52%);pointer-events:none;animation:v11-avatar-impact 700ms ease-out both;mix-blend-mode:screen}
@keyframes v11-source-rise{0%{translate:0 3px;scale:.98}38%{translate:0 -4px;scale:1.025}100%{translate:0 0;scale:1}}@keyframes v11-target-pulse{0%,100%{scale:1;opacity:1}50%{scale:1.035;opacity:.85}}@keyframes v11-avatar-impact{0%{opacity:0;scale:.5}22%{opacity:.85;scale:1.15}65%,100%{opacity:0;scale:1.25}}
@media(max-height:410px) and (orientation:landscape){.playing-card .card-top>.category-emblem.card-category{width:17px;height:17px;min-width:17px;top:0}.playing-card .card-top>.category-emblem>.icon{width:12px;height:12px}.playing-card[data-card-family]:after{height:5px}.equipment-quick-head h3>.category-emblem{width:19px;height:19px}.category-legend{gap:8px 13px;padding:6px 8px}.category-legend b{font-size:9px}}
@media(prefers-reduced-motion:reduce){.opponent.is-action-source .portrait,.self-panel.is-action-source .self-portrait>.portrait,.opponent.is-action-target .portrait,.self-panel.is-action-target .self-portrait>.portrait,.is-action-hit .portrait-frame:after{animation:none!important;translate:0 0!important;scale:1!important;opacity:1!important}.is-action-hit .portrait-frame:after{display:none}}

.status-stamps>[data-status=heal-lock],.status-stamps>[data-status=skip-turn]{font-size:7px;letter-spacing:-.8px}.status-stamps>[data-status=skip-draw]{font-size:7px;letter-spacing:-.5px}.status-stamps>[data-status=empower]{background:#d3a749;color:#173d2c}
.category-legend>small{font:900 9px/1 var(--sans);color:#ddac86}.category-legend>i{height:20px;width:1px;background:#6e8867}

/* Compact loadouts occupy their own row; public role facts never sit behind equipment. */
.self-panel{display:grid;grid-template-columns:minmax(68px,38%) minmax(0,1fr);grid-template-rows:minmax(0,1fr) 48px;gap:7px 8px;align-items:start;padding:0 9px 0 0}
.self-panel .self-portrait{grid-column:1;grid-row:1;width:100%;height:100%;max-height:none;min-width:0;align-self:stretch}
.self-panel>.self-info{grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:stretch;justify-content:center;align-self:stretch;gap:4px;min-width:0;height:100%}
.self-info .self-header{min-width:0;min-height:0;flex:none;width:100%;display:block}.self-title h2{display:block;margin:0;font-size:16px;line-height:21px;letter-spacing:0;overflow-wrap:anywhere}.self-identity{display:block;color:#c4d6b1;font:900 10px/14px var(--sans);white-space:nowrap}.self-title .hp-row{flex-wrap:nowrap;margin-top:3px}.self-title .hp-number{white-space:nowrap}
.self-panel>.equipment-rack{grid-column:1/-1;grid-row:2;position:static;inset:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;width:100%;height:48px;margin:0;align-self:end}
.self-panel>.equipment-rack .equip-slot{position:relative;width:100%;min-width:0;height:48px;min-height:44px}
.self-status-row{display:flex;align-items:center;flex-wrap:wrap;gap:3px;min-height:0;max-height:32px;overflow:hidden}.self-status-row>.focus-badge,.self-status-row>.meeting-badge,.self-status-row>.status-stamps{position:static;inset:auto;margin:0;translate:none;transform:none;flex:none}.self-status-row>.focus-badge{width:auto;min-width:20px;height:17px;gap:2px;padding:1px 3px;font-size:9px}.self-status-row>.focus-badge>.icon{width:11px;height:11px}.self-status-row>.meeting-badge{max-width:100%;font-size:8px;line-height:11px}.self-status-row>.status-stamps{display:flex;flex-wrap:wrap;gap:2px}
.self-panel>.acting-badge,.self-panel>.owner-badge{top:-10px;bottom:auto;left:0;z-index:7}
.hand-count-badge{position:absolute;display:inline-flex;align-items:center;justify-content:center;gap:3px;min-width:45px;min-height:19px;padding:2px 4px;z-index:12;background:#122e25f2;border:1px solid #c2b77d;color:#f2dcaa;box-shadow:1px 2px #10281b77;font:900 10px/13px var(--sans);white-space:nowrap;transform:none;pointer-events:none}
.hand-count-badge>.icon{width:12px;height:12px}.hand-count-badge>small{font:900 8px/12px var(--sans)}.hand-count-badge>b{font:1000 12px/13px var(--mono);min-width:10px}.self-portrait>.self-hand-count{left:50%;right:auto;top:auto;bottom:1px;translate:-50% 0;transform:none}
.opponent .hand-count-badge{left:-3px;right:auto;top:auto;bottom:0;translate:none;transform:none}
.opponent-facts{position:relative;z-index:7;display:flex;flex-direction:column;align-items:stretch;width:100%;min-width:0;background:#0b2d25ed;border-radius:3px;padding:1px 0 2px}.opponent-facts .opponent-name,.opponent-facts .opponent-identity{position:relative;z-index:1;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.opponent-facts>.hp-row,.opponent-facts>.countdown{position:relative;min-height:13px;background:#0b2d25ed;white-space:nowrap}.opponent-facts>.hp-row{flex-wrap:nowrap;gap:2px}
.opponent .opponent-head>.equipment-row,.game-shell:has(.response-panel) .opponent .opponent-head>.equipment-row{position:absolute;top:2px;bottom:auto;right:-12px;display:grid;grid-template-columns:30px;grid-template-rows:repeat(3,30px);gap:3px;min-height:0;height:auto;max-height:none;margin:0;z-index:8}
.opponent .opponent-head>.equipment-row .equip-slot{width:30px;height:30px;min-height:30px}.opponent .equipment-row .equip-slot>small{bottom:0;left:50%;font-size:6px;line-height:8px;max-width:100%;background:#132f26f2}
/* User-requested subtle direction: a single thin dashed curve, without an arrowhead. */
.interaction-layer{position:absolute;inset:0;z-index:17;pointer-events:none;overflow:hidden}.interaction-layer>svg{display:block;width:100%;height:100%;overflow:visible;pointer-events:none}.interaction-curve{fill:none;stroke:rgba(244,218,157,.23);stroke-width:1.05;stroke-dasharray:4 7;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none}
.action-clock{display:inline-grid;grid-template-columns:13px 24px;grid-template-rows:13px 10px;align-items:center;justify-content:center;column-gap:3px;flex:none;min-width:50px;min-height:31px;padding:3px 5px;color:#e9d3a1;background:#193c2ebd;border:1px solid #7b8f653d;border-radius:2px;font-variant-numeric:tabular-nums;position:relative;overflow:hidden}.action-clock>.icon{grid-column:1;grid-row:1;width:12px;height:12px}.action-clock>b{grid-column:2;grid-row:1;font:1000 15px/16px var(--mono);text-align:center}.action-clock>small{grid-column:1/-1;grid-row:2;text-align:center;font:900 8px/10px var(--sans)}.action-clock:after{content:'';position:absolute;left:0;bottom:0;height:2px;width:calc(var(--clock-progress,0)*100%);background:currentColor;pointer-events:none}.action-clock.is-idle{opacity:.55}.action-clock.is-urgent{color:#f6a47a;border-color:#d2764977;background:#4a3025cc}.action-clock.is-paused{color:#b5c9a3}.action-clock.is-paused:after{opacity:.4}
@media(max-width:1100px) and (orientation:landscape){.self-panel{grid-template-columns:58px minmax(0,1fr);grid-template-rows:minmax(0,1fr) 44px;gap:6px 6px;padding:0 6px 0 0}.self-panel>.equipment-rack{height:44px;gap:3px}.self-panel>.equipment-rack .equip-slot{height:44px;min-height:44px}.self-title h2{font-size:13px;line-height:17px}.self-identity{font-size:8px;line-height:12px}.self-title .hp-row{margin-top:2px}.self-status-row{max-height:28px;gap:2px}.self-status-row>.status-stamps>span{width:13px;height:13px;font-size:8px}.hand-count-badge{min-width:43px;min-height:18px;padding:1px 3px;gap:2px}.hand-count-badge>small{font-size:8px}.hand-count-badge>b{font-size:11px}.hand-count-badge>.icon{width:10px;height:10px}.opponent .opponent-head>.equipment-row,.game-shell:has(.response-panel) .opponent .opponent-head>.equipment-row{grid-template-columns:26px;grid-template-rows:repeat(3,26px);gap:2px;right:-11px;top:1px}.opponent .opponent-head>.equipment-row .equip-slot{width:26px;height:26px;min-height:26px}.opponent .equip-art>.icon{width:22px;height:22px}.action-clock{min-width:47px;min-height:27px;padding:2px 4px;grid-template-rows:12px 9px}.action-clock>b{font-size:14px}.action-clock>small{font-size:7px}.interaction-curve{stroke-width:.95;stroke:rgba(244,218,157,.22)}}
@media(max-height:410px) and (orientation:landscape){.self-panel{grid-template-columns:53px minmax(0,1fr);grid-template-rows:minmax(0,1fr) 44px;gap:5px 5px;padding:0 5px 0 0}.self-panel>.self-info{gap:2px}.self-panel .self-portrait{max-height:none;height:100%;align-self:stretch}.self-title h2{font-size:12px;line-height:16px}.self-identity{font-size:8px;line-height:11px}.self-title .hp-row{min-height:12px;gap:1px}.self-title .hp-number{font-size:8px;line-height:11px}.self-title .hp-dot{width:5px;height:5px}.self-title .reach-value{font-size:7px;line-height:10px;margin-top:1px}.self-status-row{max-height:27px}.self-panel>.acting-badge,.self-panel>.owner-badge{top:-9px;bottom:auto;font-size:7px;line-height:10px;min-height:12px}.opponent .opponent-head{height:84px;margin-bottom:1px}.opponent-facts .opponent-name{font-size:11px;line-height:14px}.opponent-facts .opponent-identity{font-size:8px;line-height:10px}.opponent-facts>.hp-row,.opponent-facts>.countdown{min-height:12px;line-height:12px}.opponent-facts .hp-number{font-size:8px;line-height:10px}.opponent .hand-count-badge{min-width:42px;bottom:0;font-size:8px}.opponent .hand-count-badge>b{font-size:10px}.opponent .hand-count-badge>small{font-size:7px}.action-clock{min-width:43px;min-height:25px;grid-template-columns:11px 21px;grid-template-rows:11px 9px;column-gap:2px;padding:2px 3px}.action-clock>.icon{width:10px;height:10px}.action-clock>b{font-size:13px}.turn-strip{gap:5px}.turn-strip>.deck-info{font-size:8px;max-width:150px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}
@media(orientation:portrait){.self-panel{height:158px;min-height:158px;grid-template-columns:80px minmax(0,1fr);grid-template-rows:minmax(0,1fr) 44px;padding:0;gap:6px 12px}.self-panel>.equipment-rack{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;height:44px}.self-panel>.equipment-rack .equip-slot{width:100%;height:44px}.self-panel>.self-info{flex-wrap:nowrap;gap:3px}.self-title h2{font-size:16px;line-height:20px}.self-identity{font-size:9px;line-height:12px}.self-panel>.acting-badge,.self-panel>.owner-badge{top:0;bottom:auto}.self-status-row{max-height:30px}.opponent .opponent-head>.equipment-row,.game-shell:has(.response-panel) .opponent .opponent-head>.equipment-row{right:-7px;top:0;grid-template-columns:25px;grid-template-rows:repeat(3,25px);gap:2px}.opponent .opponent-head>.equipment-row .equip-slot{width:25px;height:25px;min-height:25px}.opponent .hand-count-badge{left:-3px;min-width:40px;font-size:8px}.opponent .hand-count-badge>small{font-size:7px}.action-clock{min-width:43px}.interaction-curve{stroke-opacity:.8}}
.retired-card-guide{margin-top:18px;border-top:1px solid #627f60;padding-top:8px}.retired-card-guide>summary{min-height:44px;cursor:pointer;display:flex;align-items:center;color:#c7d3ae;font:900 12px/1.5 var(--sans)}.retired-card-guide>p,.retired-card-notice{font:800 11px/1.7 var(--sans);color:#d4bc8b}.retired-card-notice{border-left:3px solid #c3945e;padding:4px 8px;background:#173d2b;margin-bottom:8px}
.game-header .icon-btn:has(.sound-state){display:flex;flex-direction:column;justify-content:center;gap:1px}.sound-state{font:900 8px/10px var(--sans);color:#e3c998}.game-header .icon-btn:has(.sound-state)>.icon{height:17px;width:17px}
.defensive-distance{display:inline-flex;align-items:center;gap:1px;margin-left:3px;font:900 8px/11px var(--sans);color:#d3bb87}.defensive-distance>.icon{width:10px;height:10px}
/* Short phones keep faces below the header; negative portrait margins used to collapse the entire head upwards. */
@media(max-height:410px) and (orientation:landscape){
  .game-shell .opponents .opponent .opponent-head .portrait-frame{position:relative;display:block;height:100%;overflow:hidden;mask-image:linear-gradient(#000 0 82%,transparent 100%);-webkit-mask-image:linear-gradient(#000 0 82%,transparent 100%)}
  .game-shell .opponents .opponent .opponent-head .portrait{position:absolute;left:44%;top:7px;width:90%;height:126px;max-width:none;margin:0;transform:translateX(-50%);object-fit:cover;object-position:50% 0}
  .game-shell:has(.response-panel) .opponents .opponent .opponent-head .portrait{top:6px;width:82%;height:116px;margin:0}
  .game-shell .table-hud{left:114px;right:auto;top:7px;width:148px;gap:0}
  .game-shell[data-mode="identity"] .table-hud{width:96px}
  .game-shell .objective-banner{display:block;width:100%;max-width:none;padding:3px 5px;border-left-width:2px}
  .game-shell .objective-banner>span:first-child{display:block;font-size:8px;line-height:10px;letter-spacing:0}
  .game-shell .objective-banner p{font-size:8px;line-height:10px}
  .game-shell>.live-action-callout,.game-shell>.live-action-callout.is-pending-relation{top:166px;min-height:22px;max-width:min(420px,74vw);gap:5px;padding:1px 7px;border-width:1px;font-size:8px;line-height:16px}
  .game-shell>.live-action-callout>b{font-size:15px;line-height:18px}
  .game-shell>.live-action-callout>small{display:none}
  .game-shell:has(.response-panel)>.live-action-callout{top:132px}
  .game-shell .opponent .hand-count-badge{left:calc(100% + 3px);right:auto;top:88px;bottom:auto;translate:none;transform:none;min-width:41px;z-index:13}
  .game-shell .opponents:not(.four) .opponent[data-seat="3"] .hand-count-badge,.game-shell .opponents.four .opponent[data-seat="4"] .hand-count-badge{left:auto;right:calc(100% + 3px)}
}

/* v0.13: transparent action cues and private multiplayer handovers. */
.game-shell>.live-action-callout,.game-shell>.live-action-callout.is-pending-relation{border:0;background:none;box-shadow:none;color:#fff0d5;text-shadow:0 2px 3px #101b18,1px 0 #101b18,-1px 0 #101b18;padding:2px 6px}.live-action-callout>b{color:#ffd589;text-shadow:2px 2px #692b23,-1px -1px #102a25}.live-action-callout>small{border:0;color:#e4dfc7}.targeting-cue{display:flex;align-items:center;justify-content:center;gap:10px;max-width:620px;margin:0 auto;color:#ffedca;text-shadow:0 2px 3px #091d16}.targeting-cue>.targeting-art{display:none}.targeting-cue>div{min-width:0}.targeting-cue strong{font:1000 italic 24px/1.25 var(--sans);color:#ffd58a}.targeting-cue .eyebrow{font-size:9px;line-height:1.4}.targeting-cue .targeting-cost{display:block;font-size:10px;line-height:1.4;max-width:340px}.targeting-cue>.icon-btn{flex:none}.targeting-cue .untargeted-confirm{flex:none;min-height:44px}.targeting-cue .sr-only{position:absolute}
.play-style-setup{margin:0 0 18px}.play-style-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.play-style-option{min-height:58px;padding:8px 6px;border:1px solid #73674e;background:#172b27;color:#e7d6ae;text-align:center;cursor:pointer}.play-style-option b{display:block;font-size:14px}.play-style-option small{display:block;font-size:10px;margin-top:3px;color:#b8b6a1}.play-style-option.active{background:#e8c889;border-color:#ffe1a1;color:#1d3129;box-shadow:inset 0 -3px #bd5437}.play-style-option.active small{color:#4d5441}.seat-count-switch{display:flex;gap:12px;margin-top:10px}.seat-count-switch>.active{color:#ffe1a1;text-decoration:underline;text-underline-offset:4px}.human-count{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;font-size:13px}.human-count select{min-height:44px;padding:6px 12px;background:#152e27;color:#f2dfb7;border:1px solid #897b58;font:700 13px var(--sans)}.human-count>span{font-size:10px;color:#b8b5a0}.room-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.room-fields label{font-size:11px;color:#d1c8af}.room-fields input{display:block;width:100%;min-width:0;min-height:44px;margin-top:5px;padding:8px 10px;background:#10231e;border:1px solid #746a4d;color:#f7e8c7;font:700 14px var(--sans);border-radius:0}.room-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.room-buttons>.btn{flex:1;min-height:44px}.room-hint,.room-lobby>p{font-size:11px;line-height:1.65;color:#bcbba4}.room-error{padding:9px;border-left:3px solid #dc7256;color:#ffc1a4;font-size:12px;line-height:1.6}.room-lobby{margin-top:14px;padding:12px;border:1px solid #8a7853;background:#142b24}.room-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.room-heading b{font-size:24px;color:#ffdc8b;letter-spacing:3px}.room-members{margin:12px 0;padding:0;list-style:none}.room-members li{display:flex;align-items:center;gap:6px;padding:9px 0;border-top:1px solid #54726055;font-size:13px}.room-members li>b{font-size:9px;color:#e5b86c}.room-members li>span{margin-left:auto;font-size:10px;color:#9ce4c0}
.handover-screen{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:28px 22px;background:radial-gradient(ellipse at 50% 35%,#294b3f,#101f1a 70%);color:#f5e2ba}.handover-stamp{display:grid;place-items:center;width:72px;height:72px;border:3px solid #d25d3e;color:#e2734e;font:1000 51px/1 var(--sans);transform:rotate(-8deg);margin-bottom:20px}.handover-screen h1{font:900 30px/1.4 var(--sans);margin:14px 0}.handover-screen h1 em{font-style:normal;color:#ffcb74}.handover-screen p{max-width:340px;font-size:13px;line-height:1.8;color:#d0c9ad;margin:0 0 24px}.handover-screen .btn{max-width:370px;min-height:52px}.handover-screen>.text-btn{margin-top:18px;min-height:44px}.event-countdown{display:flex;align-items:center;gap:8px;position:relative;overflow:hidden;margin:14px 0 8px;padding:8px 10px;color:#f7d58d;background:#173a2c;font:700 12px var(--sans)}.event-countdown>b{font-size:27px;line-height:1}.event-countdown>i{position:absolute;bottom:0;left:0;height:3px;width:calc(var(--notice-progress,1)*100%);background:#e5ae59;transition:width .2s linear}
@media(max-height:450px) and (orientation:landscape){.targeting-cue{gap:5px}.targeting-cue strong{font-size:18px}.targeting-cue .eyebrow{font-size:8px}.targeting-cue .targeting-cost{font-size:8px;max-width:285px}.handover-screen{padding:16px}.handover-stamp{width:44px;height:44px;font-size:31px;margin-bottom:8px}.handover-screen h1{font-size:24px;margin:6px 0}.handover-screen h1 br{display:none}.handover-screen p{margin-bottom:12px}.handover-screen>.text-btn{margin-top:5px}.event-countdown{margin:8px 0 4px;padding:5px 9px}.event-countdown>b{font-size:21px}}
@media(orientation:portrait){.play-style-option b{font-size:12px}.play-style-option small{font-size:9px}.room-fields{grid-template-columns:1fr}.targeting-cue strong{font-size:20px}.targeting-cue .targeting-cost{font-size:9px}.targeting-cue .eyebrow{font-size:8px}}

@media(orientation:landscape){.opponents[data-count="5"]>.opponent:nth-child(1){left:0;right:auto;top:auto;bottom:0;transform:none}.opponents[data-count="5"]>.opponent:nth-child(2){left:28%;right:auto;top:0;bottom:auto;transform:translateX(-50%)}.opponents[data-count="5"]>.opponent:nth-child(3){left:50%;right:auto;top:0;bottom:auto;transform:translateX(-50%)}.opponents[data-count="5"]>.opponent:nth-child(4){left:72%;right:auto;top:0;bottom:auto;transform:translateX(-50%)}.opponents[data-count="5"]>.opponent:nth-child(5){left:auto;right:0;top:auto;bottom:0;transform:none}.opponents[data-count="5"]>.opponent:last-child .hand-count-badge{left:auto;right:calc(100% + 3px)}}
@media(orientation:portrait){.opponents[data-count="5"]{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:20px}.opponents[data-count="5"]>.opponent{position:relative;left:auto;right:auto;top:auto;bottom:auto;transform:none}.opponents[data-count="5"]>.opponent:nth-child(4){grid-column:1}.opponents[data-count="5"]>.opponent:nth-child(5){grid-column:3}}
.network-warning{position:relative;z-index:65;display:flex;align-items:center;justify-content:center;gap:12px;padding:7px 10px;background:#6a3528;color:#ffe0be;font:700 11px/1.5 var(--sans)}.network-warning>.text-btn{min-height:32px;color:#fff0c8;flex:none}
.room-only-layout{max-width:620px;margin:0 auto}.room-only-layout>.setup{margin:12px 0 22px}.room-mode-title{font:1000 31px/1.25 var(--sans);color:#f2d39b;margin:10px 0}.room-fixed-rules{font-size:12px;line-height:1.7;color:#c6c4ab;margin:0 0 12px}
.participant-label{display:flex;align-items:center;justify-content:center;gap:3px;max-width:100%;min-width:0;color:#b9d8c1;font:700 9px/12px var(--sans)}.participant-label>b{min-width:0;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.participant-label>i{flex:none;font:700 7px/10px var(--sans);padding:0 2px;border:1px solid #6f967d;color:#f3dca0;border-radius:2px}.participant-label[data-participant="ai"]{color:#93ab9d}.own-participant{justify-content:flex-start;margin:0 0 1px;max-width:130px}.opponent-facts>.participant-label{padding-inline:2px;background:#0b2d25ed}@media(max-height:410px) and (orientation:landscape){.participant-label{font-size:7px;line-height:9px;gap:2px}.participant-label>i{font-size:6px;line-height:8px;padding-inline:1px}.own-participant{max-width:110px;margin-bottom:0}}@media(orientation:portrait){.participant-label{font-size:8px;line-height:11px}.own-participant{font-size:10px;line-height:13px}}
