/* Independent table layout; size by available height, including mobile browser chrome. */
body.landlord-open{overflow:hidden;overscroll-behavior:none}
.landlord-overlay{position:fixed;z-index:1000;inset:0;padding:0!important;background:#0b1010;overflow:hidden;overscroll-behavior:none}
.landlord-overlay[hidden]{display:none!important}
.landlord-stage{width:100%!important;max-width:none!important;height:100%!important;min-height:0!important;aspect-ratio:auto!important;margin:0!important;position:relative}
.ll2-shell{--gold:#d6b47b;--light:#f5e7c7;--cw:clamp(76px,13dvh,112px);--ch:calc(var(--cw)*130/93);--left:165px;--right:185px;--dock:max(156px,calc(var(--ch) + 40px));--portrait:clamp(96px,17dvh,145px);position:relative;isolation:isolate;display:flex;flex-direction:column;box-sizing:border-box;width:100%;height:100%;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);color:var(--light);font:14px/1.4 system-ui,-apple-system,'PingFang SC',sans-serif;background:#28352a url('/sanguosha/sanguosha-battle/image/backdrop/default.jpg') center/cover;overflow:hidden}
.ll2-shell::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0b171640,#0c161718 48%,#0b101938),linear-gradient(0deg,#071113a8,transparent 45%)}
.ll2-shell *{box-sizing:border-box}
.ll2-shell button{min-height:32px;border:1px solid #947647;border-radius:4px;background:linear-gradient(#403526,#201b15);box-shadow:inset 0 1px #ffffff15;color:#eeddba;font:inherit;font-weight:600;cursor:pointer;touch-action:manipulation;white-space:nowrap;padding:5px 12px}
.ll2-shell button:hover:not(:disabled){border-color:#f0d998;filter:brightness(1.15)}
.ll2-shell button:focus-visible{outline:2px solid #fff4b3;outline-offset:2px}
.ll2-shell button:disabled{cursor:default;opacity:.45}
.ll2-shell button.confirm,.ll2-shell .ll2-gold{background:linear-gradient(#923b2e,#541d19);border-color:#d3ac64;box-shadow:inset 0 0 0 1px #291912,0 2px 8px #0005;color:#fff0ce;min-width:90px}
.ll2-header{display:flex;align-items:center;gap:20px;height:40px;flex:none;padding:3px 16px;background:linear-gradient(#101e20ed,#11191a99);border-bottom:1px solid #baa27150;white-space:nowrap;z-index:5}
.ll2-header>b{font:700 21px/1.1 'STKaiti','KaiTi',serif;letter-spacing:2px;color:#ead4a0}
.ll2-header em{font-style:normal;font-size:18px;border-left:1px solid #ab8b5d;padding-left:12px;margin-left:6px}
.ll2-header>span{font-size:12px;color:#c8bba3}
.ll2-header nav{margin-left:auto;display:flex;gap:5px}
.ll2-header button{padding:3px 9px;min-height:28px;font-size:12px;background:#10212799;border-color:#6973696b}
.ll2-header button:last-child{font-size:21px;width:30px;padding:0}
.ll2-volume{display:flex;align-items:center;gap:4px;padding:0 5px;color:#c8bba3;font-size:10px;background:#10212799;border:1px solid #6973696b;border-radius:4px}
.ll2-volume input{width:58px;accent-color:#d6b47b;margin:0;touch-action:manipulation}
.ll2-table{min-height:0;flex:1;display:grid;grid-template-rows:minmax(0,1fr) var(--dock);position:relative}
.ll2-battlefield{position:relative;min-height:0}
.ll2-opponents{position:absolute;inset:32px clamp(22px,6vw,110px) auto;display:flex;justify-content:space-between;align-items:start;z-index:2;pointer-events:none}
.ll2-person{width:var(--portrait);position:relative;flex:none;transition:filter .25s;pointer-events:auto}
.ll2-person .ll2-portrait{width:100%;height:calc(var(--portrait)*1.36);display:block;padding:0;position:relative;border:2px solid #a88d5f;border-radius:5px;background-color:#171d18;background-size:cover;background-position:center 23%;box-shadow:0 5px 15px #0008;overflow:visible;isolation:isolate}
.ll2-portrait::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#0c1013f0,transparent 45%)}
.ll2-person .ll2-portrait.can-target{border-color:#ffc64b;box-shadow:0 0 10px #eabc524f;cursor:crosshair}
.ll2-person.active .ll2-portrait{box-shadow:0 0 0 1px #e2cd88,0 0 24px #dfb75377}
.ll2-person.active::before{content:'行动中';position:absolute;left:50%;top:-12px;transform:translateX(-50%);z-index:3;background:#af7431;border:1px solid #dabb7a;padding:0 8px;font-size:10px;white-space:nowrap}
.ll2-person.targeted .ll2-portrait{border-color:#ff6f48;box-shadow:0 0 0 2px #b74b30,0 0 24px #d56732aa}
.ll2-role{position:absolute;top:5px;left:-10px;border:1px solid #93b98c;background:#254138;padding:4px 3px;color:#e1f5cc;writing-mode:vertical-rl;font:700 15px serif;letter-spacing:3px;border-radius:3px;box-shadow:1px 1px 4px #0009}
.ll2-role.lord{background:#721d21;border-color:#d5a369;color:#ffe0aa}
.ll2-player-name{position:absolute;bottom:7px;left:5px;right:5px;color:#fff1d0;font:700 23px 'STKaiti','KaiTi',serif;text-shadow:0 2px 3px #000;white-space:nowrap}
.ll2-player-name small{display:block;color:#d4c6aa;font:10px system-ui;margin-top:2px}
.ll2-vitals{display:flex;justify-content:space-between;gap:5px;padding:3px 2px;color:#d6c3a1;background:#0e1419c9;font-size:11px;border-radius:0 0 4px 4px}
.ll2-hearts{color:#9ad081;letter-spacing:0;font-size:14px;white-space:nowrap}
.ll2-hearts i{color:#dfd6ba;font-style:normal;margin-left:4px;font-size:11px}
.ll2-vitals>span:last-child{align-self:center;white-space:nowrap}
.ll2-opponent-name,.ll2-opponent-role{position:absolute;top:13px;z-index:4;min-height:44px;padding:4px 3px;border:1px solid #bb9c66;background:linear-gradient(#172225,#0c1518);box-shadow:1px 2px 5px #000a;color:#f3e4bc;font:700 14px/1.1 'STKaiti','KaiTi',serif;letter-spacing:2px;writing-mode:vertical-rl;text-align:center;text-shadow:0 1px 2px #000;white-space:nowrap}
.ll2-opponent-name{left:-27px;border-radius:3px 0 0 3px}
.ll2-opponent-role{right:-27px;border-color:#93b98c;background:#254138;color:#e1f5cc;border-radius:0 3px 3px 0}
.ll2-opponent-role.lord{border-color:#d5a369;background:#721d21;color:#ffe0aa}
/* 对手装备是武将卡内的横版条，叠在立绘下半部，复用本人装备区素材。 */
.ll2-person.opponent .ll2-portrait{overflow:hidden}
.ll2-opponent-gear{position:absolute;z-index:5;left:3px;right:3px;bottom:3px;display:flex;flex-direction:column;gap:2px;pointer-events:none}
.ll2-opponent-equip{display:block;min-width:0;line-height:0}
.ll2-opponent-equip img{display:block;width:100%;height:auto;max-height:22px;object-fit:fill;filter:drop-shadow(0 1px 1px #000)}
.ll2-opponent-gear-fallback,.ll2-opponent-judge{height:15px;min-width:0;display:flex;align-items:center;gap:3px;padding:1px 4px;border:1px solid #b69a66;background:linear-gradient(90deg,#30291dcc,#172321e8);box-shadow:0 1px 3px #0009;color:#f0dfb5;font:700 8px/1 serif;white-space:nowrap}
.ll2-opponent-gear-fallback small,.ll2-opponent-judge small{flex:none;color:#d4bd82;font:700 7px/1 system-ui}
.ll2-opponent-gear-fallback b,.ll2-opponent-judge b{min-width:0;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px #000}
.ll2-opponent-judge{border-color:#bc7059;color:#ffd0aa}
.ll2-chain{position:absolute;bottom:52%;left:0;width:100%;background:#121b20b3;color:#e6d39a;letter-spacing:3px;text-shadow:0 1px #000;border-top:2px dotted #c1c0a7;border-bottom:2px dotted #c1c0a7;font-size:13px}
.ll2-wine{position:absolute;top:5px;right:5px;padding:1px 5px;border-radius:50%;background:#ab4128;color:white}
.ll2-skill-status{position:absolute;bottom:44%;left:0;right:0;background:#252038ed;border-block:1px solid #ae9bc1;color:#f4daff;padding:3px;font-size:11px;white-space:normal}
.ll2-skill-status.charged{background:#65281be8;border-color:#dcaa64;color:#ffe1a9}
.ll2-fushi-mark,.ll2-dongdao-mark{display:inline-block;margin-left:3px;padding:1px 4px;border-radius:8px;background:#502b1ddd;color:#ffe1a8;border:1px solid #b67b43;font-size:10px;white-space:nowrap}
.ll2-dongdao-mark{background:#263c64dd;border-color:#82b5e8;color:#d8eeff}
.ll2-dead{position:absolute;inset:0;display:grid;place-items:center;font:700 30px serif;background:#0c0f1380;color:#b6b3a7;transform:rotate(-12deg)}
.ll2-person.dead{filter:grayscale(1)}
.ll2-target-num{position:absolute;right:-8px;top:-8px;border-radius:50%;width:25px;height:25px;line-height:25px;background:#9f341d;border:1px solid #ffd995;color:#fff4c6}
.ll2-phase{position:absolute;left:50%;top:13px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;color:#e7dfc4;font-size:11px;white-space:nowrap;text-shadow:0 1px 4px #000}
.ll2-phase b{font:700 17px serif;color:#f5e5b5;letter-spacing:3px;padding-right:12px;border-right:1px solid #d3bd8b77}
.ll2-phase small{color:#ddd0ad}
.ll2-center{position:absolute;left:25%;right:25%;top:48px;bottom:68px;display:flex;justify-content:center;align-items:center;z-index:3;pointer-events:none}
.ll2-center button{pointer-events:auto}
.ll2-table-cards{display:flex;gap:12px;align-items:flex-end;opacity:.92}
.ll2-shell:has(.ll2-event) .ll2-table-cards{visibility:hidden}
.ll2-table-cards .ll2-card:disabled{filter:none}
.ll2-table-cards>div{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.ll2-table-cards small{font-size:10px;color:#f1e4c0;text-shadow:0 1px 4px #000;max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ll2-table-cards .ll2-card{--card-width:calc(var(--cw)*.88)}
.ll2-card{--card-art:none;--card-width:var(--cw);position:relative;flex:none;width:var(--card-width);height:auto;aspect-ratio:93/130;padding:0!important;border:1px solid #a78e62!important;background:#e9ddbe var(--card-art) center/100% 100% no-repeat!important;border-radius:4px!important;color:#221c19!important;box-shadow:0 3px 8px #0008!important;overflow:hidden;font-family:serif!important;transition:transform .12s,border-color .12s,filter .12s;min-height:0!important;isolation:isolate}
.ll2-card:disabled{opacity:1!important;filter:brightness(.7) saturate(.75)}
.ll2-card.selectable{filter:none}
.ll2-card.picked{transform:translateY(-13px);border-color:#ffd36d!important;box-shadow:0 0 0 2px #bf7d35,0 0 17px #e5bc6260!important;z-index:3}
/* Elevation represents selection only; hover (including sticky touch hover)
   must not keep a deselected card raised. */
.ll2-card:hover:not(:disabled){z-index:4}
.ll2-corner{position:absolute;top:3px;left:3px;display:grid;line-height:.98;font:bold 18px/1 Georgia,serif;background:#f0e3c8e8;min-width:18px;text-align:center;border-radius:2px;padding:1px}
.ll2-corner i{font-style:normal;font-size:16px}
.ll2-card.red .ll2-corner{color:#9f211e}
.ll2-card-name{position:absolute;left:0;right:0;bottom:0;font-size:13px;font-weight:700;background:linear-gradient(#eee1c4b0,#ebdbb5);padding:3px 0;color:#302218;white-space:normal;line-height:1.05;text-shadow:0 1px #fffa}
.ll2-controls{z-index:5;position:absolute;bottom:calc(var(--dock) + 3px);left:calc(var(--left) + 16px);right:calc(var(--right) + 16px);display:flex;flex-direction:column;align-items:center;justify-content:end;gap:5px;text-align:center;pointer-events:none}
.ll2-prompt{display:flex;align-items:baseline;justify-content:center;gap:10px;max-width:100%;padding:3px 10px;border-radius:3px;background:#10201bd9;text-shadow:0 1px 3px #000;pointer-events:auto}
.ll2-prompt>b{color:#f3e4bc;font:600 13px/1.4 system-ui;flex:none;max-width:100%}
.ll2-prompt small{font-size:11px;color:#d1d2bb;line-height:1.4;min-width:0;max-width:550px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ll2-buttons{display:flex;justify-content:center;gap:8px;pointer-events:auto}
.ll2-buttons:empty{display:none}
.ll2-buttons button{min-width:76px;min-height:32px;padding:4px 14px;font-size:12px}
.ll2-bottom{display:grid;grid-template-columns:var(--left) minmax(0,1fr) var(--right);grid-template-rows:minmax(0,1fr);gap:16px;align-items:end;background:linear-gradient(transparent,#071317b3);padding:0 14px 7px;position:relative;z-index:4;min-height:0}
.ll2-equipment{align-self:end;min-width:0;max-width:165px}
.ll2-equipment header{display:flex;justify-content:space-between;font-size:11px;color:#dfcfaa;padding:0 2px 4px;text-shadow:0 1px 3px #000}
.ll2-equipment header small{color:#9fb5a7}
.ll2-equipment>button{position:relative;display:flex;align-items:center;justify-content:space-between;gap:5px;width:100%;height:26px;min-height:0;margin:2px 0;padding:0 7px;background:#111e1ab8;border-color:#ac956177;font-size:11px;cursor:default;border-radius:3px;overflow:hidden}
.ll2-equipment>button[data-ll2-card]{cursor:pointer;border-color:#d1b569}
.ll2-equipment>button.equipped{color:#e6d4a9}
.ll2-equipment>button.picked{outline:2px solid #ffce58;outline-offset:0;background:#8a5c20;border-color:#ffd479;box-shadow:0 0 12px #ffbd4588}
.ll2-equipment i{font-size:10px;color:#af9a72;font-style:normal;white-space:nowrap}
.ll2-equipment b{font-family:serif;font-size:12px;overflow:hidden;text-overflow:ellipsis}
.ll2-equipment small{position:relative;font:bold 10px Georgia;margin-left:auto;background:#e4e1ccd9;border-radius:2px;padding:0 2px;color:#25241c}
.red{color:#b65c50}
.ll2-delays{min-height:16px;color:#c0ba9e;font-size:10px;display:flex;flex-wrap:wrap;gap:4px;padding-top:2px}
.ll2-delays span{border:1px solid #99765b;color:#e8ba92;padding:0 3px}
.ll2-hand-wrap{min-width:0;align-self:end}
.ll2-hand-label{display:flex;gap:7px;align-items:center;height:16px;color:#c1c6b0;font-size:10px;text-shadow:0 1px 3px #000}
.ll2-hand-label b{color:#e4cc92}
.ll2-hand-label span{margin-left:auto;color:#b4c1b5}
.ll2-hand-wrap.ll2-fushi-hand .ll2-hand-label{color:#ffe0a0}
.ll2-hand-wrap.ll2-fushi-hand .ll2-hand{background:linear-gradient(90deg,#562d191f,#80511b38,#562d191f);border-top:1px solid #bf86414d;border-radius:6px}
.ll2-hand-wrap.ll2-fushi-hand .ll2-card{filter:drop-shadow(0 0 5px #d9953855)}
.ll2-hand{display:flex;align-items:flex-end;overflow-x:auto;overflow-y:hidden;padding:13px 3px 4px;min-height:calc(var(--ch) + 17px);scrollbar-width:none;gap:0;overscroll-behavior-x:contain;touch-action:pan-x}
.ll2-hand::-webkit-scrollbar{display:none}
.ll2-hand .ll2-card{margin-right:calc(var(--cw)*-.23)}
.ll2-hand .ll2-card:last-child{margin-right:0}
.ll2-hand .ll2-card:disabled{filter:brightness(.67) saturate(.7)}
.ll2-empty-hand{width:100%;text-align:center;margin:auto;color:#65776d;font-size:14px;letter-spacing:3px}
.ll2-own{position:relative;justify-self:end;display:flex;align-items:flex-end;gap:8px;max-width:100%}
.ll2-own .ll2-person{width:max(82px,calc(var(--cw)*1.04))}
.ll2-own .ll2-portrait{height:var(--ch)}
.ll2-own .ll2-hearts{font-size:clamp(10px,1.6dvh,12px);letter-spacing:-1px}
.ll2-own .ll2-hearts i{font-size:10px;letter-spacing:0;margin-left:2px}
.ll2-own .ll2-vitals{font-size:10px;gap:2px}
.ll2-skills{position:absolute;right:calc(100% + 7px);bottom:4px;display:flex;flex-direction:column;gap:5px;z-index:5}
.ll2-skills button,.ll2-skills>span{font:700 12px serif;min-height:30px;padding:5px 9px;border:1px solid #b2a172;background:linear-gradient(#394339,#1b251f);color:#eee4bd;border-radius:4px;white-space:nowrap;text-align:center}
.ll2-skills>span{font-size:10px;opacity:.7}
.ll2-skills .on{background:#8b5724;border-color:#e1c376}
.ll2-choice-board{pointer-events:auto;background:linear-gradient(#222b2af7,#0d1719fa);border:1px solid #ba9f69;box-shadow:0 10px 40px #000a;padding:10px 12px;border-radius:5px;text-align:center;max-width:100%;max-height:100%;overflow:auto}
.ll2-choice-board>b{display:block;font:700 18px serif;color:#e4d097;margin-bottom:9px}
.ll2-options{display:flex;align-items:end;justify-content:safe center;gap:9px;overflow:auto;padding:3px;max-width:100%;scrollbar-width:thin}
.ll2-options.ll2-benxi-options{display:grid;grid-template-columns:repeat(2,minmax(110px,1fr));align-items:stretch;justify-content:stretch;overflow:visible}
.ll2-options.ll2-benxi-options .ll2-text-option{min-width:0;width:100%}
.ll2-option{display:flex;flex-direction:column;gap:4px;flex:none;padding:2px}
.ll2-option small{font-size:10px;color:#b4bba9}
.ll2-choice-board .ll2-card{--card-width:calc(var(--cw)*.85)}
.ll2-option.chosen .ll2-card,.ll2-text-option.chosen,.ll2-card-back.chosen{border-color:#ffdc79!important;box-shadow:0 0 0 2px #c49149!important}
.ll2-card-back{flex:none;width:calc(var(--cw)*.85);height:auto;aspect-ratio:93/130;background:#282b27 url('/sanguosha/sanguosha-battle/image/system/card-back.png') center/100% 100%!important;font-family:serif!important;text-shadow:0 1px #000}
.ll2-text-option{min-width:110px;min-height:44px!important}
.ll2-fx{position:absolute;inset:0;pointer-events:none;z-index:15;display:grid;place-items:center}
.ll2-event{position:absolute;left:25%;right:25%;top:48px;bottom:calc(var(--dock) + 72px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;animation:ll2-pop .25s ease-out;z-index:2}
.ll2-event .ll2-card{--card-width:calc(var(--cw)*1.12);filter:none;box-shadow:0 12px 25px #0008!important}
.ll2-event>strong{font:700 24px serif;color:#ffdc96;text-shadow:0 2px 6px #000}
.ll2-event>strong:empty{display:none}
.ll2-event p{margin:0;background:#091317e8;border:1px solid #b69a6977;padding:7px 20px;text-align:center;color:#f6e5b8;font-size:14px;box-shadow:0 5px 20px #0008}
.ll2-event.damage p{color:#ffd2b7;border-color:#bc6c49}
.ll2-event.heal p{color:#bde5ac;border-color:#8fac72}
.ll2-target-lines{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.ll2-target-lines line{stroke:#ffd394;stroke-width:2;stroke-dasharray:10 4}
.ll2-fx-layer{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;contain:layout style}
.ll2-fx-layer.judging{background:#050c112c}
.ll2-judgement{width:min(580px,75vw);border:2px solid #b6a375;border-radius:5px;box-shadow:0 10px 55px #000d;background:linear-gradient(145deg,#2b302df9,#0d171afa);padding:16px 24px;animation:ll2-pop .22s ease}
.ll2-judgement header{text-align:center;border-bottom:1px solid #ac996055;padding-bottom:10px;font:700 23px serif;letter-spacing:3px;color:#f4d68e}
.ll2-judgement header small{font:12px system-ui;letter-spacing:1px;color:#bcbca2}
.ll2-judge-content{display:flex;align-items:center;justify-content:center;gap:35px;padding:22px 0 10px}
.ll2-judge-card{position:relative;perspective:800px}
.ll2-judge-card .ll2-card{filter:none;animation:ll2-flip .65s ease-out}
.ll2-judge-card>strong{position:absolute;left:0;right:0;bottom:12px;transform:rotate(-10deg);font:900 24px serif;text-align:center;text-shadow:0 1px 3px #000;background:#131c1da3;animation:ll2-stamp .3s .6s both}
.ll2-judge-card .success{color:#ffc979}
.ll2-judge-card .failure{color:#dedbc8}
.ll2-judge-content>div:last-child{max-width:250px}
.ll2-judge-content b{color:#fff1c3;font-size:15px}
.ll2-judge-content p{font-size:12px;color:#adb9aa;line-height:1.8}
.ll2-log{position:absolute;right:12px;top:58px;bottom:calc(var(--ch) + 65px);z-index:20;width:min(290px,60vw);background:#0c181bf2;border:1px solid #9c8d64;border-radius:4px;display:flex;flex-direction:column;box-shadow:0 5px 30px #0008}
.ll2-log header{display:flex;justify-content:space-between;align-items:center;padding:5px 12px;color:#dcc596;border-bottom:1px solid #746947}
.ll2-log>div{overflow:auto;flex:1;padding:8px 12px;scrollbar-width:thin}
.ll2-log p{margin:0;padding:5px 0;border-bottom:1px solid #8f9b9120;color:#bfccbe;font-size:12px}
.ll2-lobby{flex:1;min-height:0;overflow:auto;text-align:center;display:flex;flex-direction:column;justify-content:safe center;align-items:center;padding:28px 15px;background:radial-gradient(ellipse,#0b191d44,#09181ac4)}
.ll2-eyebrow{font:12px serif;letter-spacing:6px;color:#d6bb80}
.ll2-lobby h1{font:700 clamp(46px,10dvh,92px)/1.2 'STKaiti','KaiTi',serif;letter-spacing:14px;margin:12px 0;color:#f3e5bc;text-shadow:0 5px 20px #000}
.ll2-lobby p{margin:8px 0;color:#c0c5ae;line-height:1.7}
.ll2-beans{font:30px Georgia;color:#eacf8d;margin:20px 0}
.ll2-beans small{display:block;font:11px system-ui;color:#b2baaa;margin-top:4px}
.ll2-start-buttons{display:flex;gap:16px}
.ll2-start-buttons button{min-height:45px;padding:8px 28px}
.ll2-lobby .ll2-muted{font-size:11px;margin-top:18px;color:#8eaa9a}
.ll2-exchange{margin-top:18px;border-top:1px solid #75816c66;padding-top:10px;color:#c7b892;font-size:12px}
.ll2-exchange summary{cursor:pointer}
.ll2-exchange input{width:80px;margin:8px;border:1px solid #8d805b;padding:6px;background:#132126;color:#eedfae}
.ll2-exchange small{display:block;font-size:10px}
.ll2-lucky{flex:1;min-height:0;overflow:auto;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;background:radial-gradient(ellipse,#594b2744,#09181ac4)}
.ll2-lucky h2{font:700 42px/1.2 'STKaiti','KaiTi',serif;letter-spacing:8px;color:#f3e5bc;margin:10px 0;text-shadow:0 5px 20px #000}
.ll2-lucky p{max-width:620px;color:#d2d6bf;font-size:13px;line-height:1.7}
.ll2-lucky-hand{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;min-height:142px;margin:14px 0}
.ll2-lucky-stock{color:#edcf88!important}
.ll2-shop-modal article{width:min(820px,calc(100vw - 48px))}
.ll2-general-pool-modal article{width:min(940px,calc(100vw - 34px))}
.ll2-general-pool-modal h2 small{font:600 13px sans-serif;color:#bfc8ad;margin-left:8px}
.ll2-general-pool-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:14px}
.ll2-general-pool-card{position:relative;min-height:170px;padding:9px 8px;text-align:left;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;gap:3px;background-size:cover;background-position:center top;border:1px solid #b99b61;color:#f2e4bd}
.ll2-general-pool-card::before{content:'';position:absolute;inset:0;background:linear-gradient(transparent 15%,#081116ca 58%,#081116f8);z-index:-1}
.ll2-general-pool-card.enabled{box-shadow:inset 0 0 0 1px #e5c87844,0 3px 8px #0006}.ll2-general-pool-card.disabled{filter:grayscale(.9) brightness(.58);border-color:#6d7270}
.ll2-general-pool-card:disabled{opacity:.7;cursor:not-allowed}.ll2-general-pool-card i{position:absolute;top:7px;right:7px;padding:2px 5px;border-radius:4px;background:#213e27e8;color:#dcf3c8;font-size:10px;font-style:normal}.ll2-general-pool-card.disabled i{background:#432222e8;color:#ffd0c5}.ll2-general-pool-card b{font:700 19px serif;color:#ffebbd}.ll2-general-pool-card small,.ll2-general-pool-card span{font-size:10px;line-height:1.35;color:#d4d7c1}.ll2-general-pool-modal footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:15px}.ll2-general-pool-modal footer small{font-size:11px;color:#c7cdb8}.ll2-general-pool-modal footer button{min-width:100px}
.ll2-shop-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.ll2-shop-feedback{margin:8px 0 2px;padding:8px 10px;border:1px solid #c9ad6a;border-radius:5px;background:#262b1f;color:#f5dfa2;font-weight:700;font-size:12px}
.ll2-shop-feedback.success{border-color:#a7cf86;background:#193022;color:#e4f5ce}.ll2-shop-feedback.error{border-color:#e48770;background:#3b1d1d;color:#ffe0d5}.ll2-shop-feedback.pending{border-color:#e4c67b;background:#3a301d;color:#fff0be}
.ll2-shop-item{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:76px;padding:9px 10px;border:1px solid #9d83534f;background:linear-gradient(135deg,#304034db,#172529e8);border-radius:8px;text-align:left;box-shadow:inset 0 1px #e8cb8b12,0 3px 8px #0002}
.ll2-shop-item:hover{border-color:#d6b66f9c;background:linear-gradient(135deg,#3a4d38ed,#1b2c2fef)}
.ll2-shop-icon{width:48px;height:48px;object-fit:contain;padding:3px;border-radius:8px;background:radial-gradient(circle,#e5c37b28,#08141740);filter:drop-shadow(0 3px 4px #0008)}
.ll2-shop-icon[src$="hand_luck_card.svg"]{padding:10px;transform:scale(.88)}
.ll2-shop-item>div{display:grid;gap:4px;min-width:0}.ll2-shop-item b{color:#f5d994;font-size:15px}.ll2-shop-item small,.ll2-shop-item i{font-size:11px;line-height:1.45;color:#c0c9b0}.ll2-shop-item i{color:#e8cc87;font-style:normal}
.ll2-shop-item aside{display:grid;gap:5px;flex:none}.ll2-shop-item button{white-space:nowrap;min-height:30px;font-size:11px}.ll2-shop-item.pending{box-shadow:0 0 0 1px #e7c76c,0 0 16px #e7c76c44}.ll2-shop-item.sold{opacity:.52;filter:saturate(.55)}
.ll2-shop-quantity{display:flex;align-items:center;justify-content:space-between;gap:3px;padding:2px 0}.ll2-shop-quantity b{min-width:22px;text-align:center;color:#fff0ba}.ll2-shop-quantity button{width:27px;min-height:25px;padding:0;font-size:16px;line-height:1}
.ll2-result{font:700 32px Georgia,serif;color:#ebc66e;margin:25px 0}
.ll2-draft{flex:1;min-height:0;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:safe center;padding:18px;overflow:auto}
.ll2-draft h2{font:700 32px serif;margin:12px 0;color:#ecdbad}
.ll2-draft>p{font-size:12px;color:#b7c4b0;margin:0 0 20px}
.ll2-draft>div{display:flex;justify-content:center;gap:20px;max-width:95%;width:900px}
.ll2-draft>div>button{position:relative;width:165px;height:min(360px,46dvh);min-height:180px;flex:1;background-size:cover;background-position:center top;border:2px solid #9a865b;display:flex;flex-direction:column;justify-content:flex-end;padding:12px 10px;overflow:hidden;white-space:normal;isolation:isolate}
.ll2-draft>div>button::before{content:'';position:absolute;inset:0;background:linear-gradient(transparent 18%,#0a121acc 56%,#071117fa);z-index:-1}
.ll2-draft b{font:700 29px serif;color:#ffebbd}
.ll2-draft small{color:#babb9a;font-size:11px}
.ll2-draft strong{font:700 17px serif;color:#e4c783;margin:7px 0}
.ll2-draft span{font-size:12px;line-height:1.55;color:#cbd2b8;min-height:60px}
.ll2-draft>.ll2-eyebrow{min-height:0}
.ll2-draft>div.ll2-draft-cards{flex:none}
.ll2-draft>div.ll2-draft-reroll{width:auto;max-width:95%;align-items:center;gap:9px;margin:-8px 0 10px;padding:5px 9px;border:1px solid #856637;border-radius:7px;background:#1c1a16d9}
.ll2-draft>div.ll2-draft-reroll>span{min-height:0;font-size:11px;color:#ead69c}
.ll2-draft>div.ll2-draft-reroll>button{width:auto;height:auto;min-height:30px;padding:5px 12px;display:block;background:#755226;border-color:#d5ad58;color:#fff0bf;white-space:nowrap}
.ll2-draft>div.ll2-draft-reroll>button::before{display:none}
.ll2-draft>div.ll2-draft-cards{align-items:stretch}
.ll2-draft-card{width:165px;height:min(405px,54dvh);min-height:214px;flex:1;display:flex;flex-direction:column;gap:6px}
.ll2-draft-card>.ll2-draft-preview{position:relative;flex:1;min-height:180px;background-size:cover;background-position:center top;border:2px solid #9a865b;display:flex;flex-direction:column;justify-content:flex-end;padding:12px 10px;overflow:hidden;white-space:normal;isolation:isolate}
.ll2-draft-card>.ll2-draft-preview::before{content:'';position:absolute;inset:0;background:linear-gradient(transparent 18%,#0a121acc 56%,#071117fa);z-index:-1}
.ll2-draft-card>.ll2-draft-preview.chosen{border-color:#ffe1a1;box-shadow:0 0 0 2px #ac733b,0 0 18px #d5aa6744}
.ll2-draft-card>.ll2-draft-exchange{width:100%;min-height:30px;padding:5px 8px;border:1px solid #b78a42;background:#4c3523;color:#ffe4a0;font-size:12px}
.ll2-draft-card>.ll2-draft-exchange:disabled{opacity:.58}
.ll2-draft>div>button.chosen{border-color:#ffe1a1;box-shadow:0 0 0 2px #ac733b,0 0 18px #d5aa6744}
.ll2-draft-detail{display:flex;align-items:center;gap:20px;width:900px;max-width:95%;margin-top:14px;text-align:left;background:#111d20e8;border:1px solid #9a865b;padding:12px 16px;flex:none}
.ll2-draft-detail>div{flex:1;min-width:0}
.ll2-draft-detail b{font:700 16px serif}
.ll2-draft-detail p{font-size:12px;line-height:1.7;margin:5px 0 0;color:#dfdcc7}
.ll2-draft-detail>button{flex:none}
.ll2-modal{position:absolute;z-index:25;inset:0;background:#020b11c9;display:grid;place-items:center;padding:25px;backdrop-filter:blur(4px)}
.ll2-modal article{position:relative;width:min(650px,90vw);max-height:90%;overflow:auto;padding:22px 28px;border:1px solid #b39d6a;background:#142127;color:#c3cbbd;box-shadow:0 15px 40px #0008;border-radius:5px}
.ll2-modal h2{font:700 24px serif;color:#e9d498;margin:0 0 16px}
.ll2-modal p{font-size:13px;line-height:1.8}
.ll2-modal b{color:#f0d69d}
.ll2-portrait[data-ll2-general-info],.ll2-skills [data-ll2-general-info]{cursor:help}
.ll2-general-info-modal{z-index:45;background:#02080be0}
.ll2-general-info-modal article{width:min(790px,calc(100vw - 44px));height:min(590px,calc(100dvh - 54px));max-height:none;overflow:hidden;padding:0;display:grid;grid-template-columns:minmax(210px,35%) minmax(0,1fr);background:linear-gradient(135deg,#283326,#10191b 64%);border:2px solid #b99b61;box-shadow:0 18px 65px #000d}
.ll2-general-info-art{position:relative;min-height:0;overflow:hidden;background:#17221e}
.ll2-general-info-art::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#07100eec,transparent 52%);pointer-events:none}
.ll2-general-info-art img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top}
.ll2-general-info-art span{position:absolute;z-index:1;left:12px;right:10px;bottom:11px;color:#e5d1a0;font:700 14px/1.35 serif;text-shadow:0 2px 3px #000}
.ll2-general-info-content{min-width:0;min-height:0;display:flex;flex-direction:column;padding:22px 26px 15px;background:linear-gradient(90deg,#1a2421ed,#11191bd9)}
.ll2-general-info-content>header{padding-right:34px;border-bottom:1px solid #c1a86c77;padding-bottom:10px}
.ll2-general-info-content>header small{display:block;color:#a7b8a8;font-size:11px;letter-spacing:3px}
.ll2-general-info-content h2{margin:2px 0 3px;font:700 33px/1.15 'STKaiti','KaiTi',serif;color:#f0d58e;text-shadow:0 2px 3px #000}
.ll2-general-info-content header p{margin:0;color:#c7d0bb;font-size:13px;line-height:1.4}
.ll2-general-info-skills{min-height:0;overflow:auto;padding:12px 3px 4px 0;scrollbar-width:thin}
.ll2-general-info-skills section{padding:8px 10px;margin-bottom:8px;border-left:3px solid #6e855f;background:#070f0f70;border-radius:0 4px 4px 0}
.ll2-general-info-skills section.focused{border-left-color:#f0c45e;background:#4c351a8c;box-shadow:inset 0 0 0 1px #d9b46c66}
.ll2-general-info-skills b{display:inline-block;padding:2px 8px;border:1px solid #b4975d;border-radius:3px;background:#334a33;color:#ffe5a1;font:700 17px serif}
.ll2-general-info-skills p{margin:5px 0 0;color:#ece2c7;font-size:14px;line-height:1.55;white-space:pre-wrap}
.ll2-general-info-content footer{padding-top:8px;border-top:1px solid #a68c5a55;color:#9ca998;font-size:10px}
.ll2-general-info-hover{z-index:24;display:block;padding:0;background:transparent;backdrop-filter:none;pointer-events:none}
.ll2-general-info-hover article{position:absolute;left:var(--info-x);top:var(--info-y);width:min(500px,42vw);height:min(350px,calc(100dvh - 20px));max-height:none;grid-template-columns:140px minmax(0,1fr);border-color:#c3a66caa;background:linear-gradient(120deg,#1f2b25e8,#10191bea);box-shadow:0 8px 32px #0009;opacity:.97}
.ll2-general-info-hover .ll2-general-info-art span{left:7px;right:5px;bottom:7px;font-size:10px}
.ll2-general-info-hover .ll2-general-info-content{padding:12px 15px 10px;background:linear-gradient(90deg,#18231fec,#101819e8)}
.ll2-general-info-hover .ll2-general-info-content>header{padding-right:0;padding-bottom:6px}
.ll2-general-info-hover .ll2-general-info-content>header small{font-size:9px;letter-spacing:2px}
.ll2-general-info-hover .ll2-general-info-content h2{font-size:24px}
.ll2-general-info-hover .ll2-general-info-content header p{font-size:10px}
.ll2-general-info-hover .ll2-general-info-skills{padding-top:7px}
.ll2-general-info-hover .ll2-general-info-skills section{padding:5px 7px;margin-bottom:5px}
.ll2-general-info-hover .ll2-general-info-skills b{font-size:13px;padding:1px 5px}
.ll2-general-info-hover .ll2-general-info-skills p{font-size:11px;line-height:1.4;margin-top:3px}
.ll2-dismiss{position:absolute;top:7px;right:8px}
.ll2-error{position:absolute;z-index:30;top:60px;left:50%;transform:translateX(-50%);background:#613529;border:1px solid #d6ad70;border-radius:5px;color:#fff0cc;padding:8px 16px;max-width:90%;font-size:12px}
.ll2-error button{margin-left:10px}
.ll2-loading{height:100%;display:grid;place-items:center;background:#101f23;color:#e3d5b1;font-size:18px}
.ll2-rotate{display:none}
@keyframes ll2-flip{0%{transform:rotateY(90deg) scale(.8)}100%{transform:none}}
@keyframes ll2-stamp{from{opacity:0;scale:1.8}to{opacity:1;scale:1}}
@keyframes ll2-pop{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
@keyframes ll2-line{to{stroke-dashoffset:-28}}

.ll2-seat-number{position:absolute;top:5px;right:5px;font:10px/1.5 system-ui;color:#f3e5c4;background:#101a1bd9;border:1px solid #a58e5d88;padding:0 4px;border-radius:2px}

.ll2-controls.waiting .ll2-prompt small{display:none}

.ll2-equipment>button:disabled{opacity:1;color:#a6a98d}

.ll2-equip-art{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.ll2-equipment>button>small{z-index:2}

.ll2-equipment>button.equipped:has(.ll2-equip-art){background:#111a17;border-color:#b8a372}

.ll2-equipment small.red{color:#a43122}

.ll2-event-cards{display:flex;gap:5px}

.ll2-event-cards .ll2-card{--card-width:var(--cw)}

.ll2-draw-back{position:absolute;width:52px;height:auto;aspect-ratio:93/130;border:1px solid #e2c486;border-radius:4px;background:#29382d url('/sanguosha/sanguosha-battle/image/system/card-back.png') center/cover;box-shadow:0 4px 12px #0008;z-index:3}

.ll2-equipment>button[data-ll2-inspect]{cursor:help}

body.landlord-open .toast{z-index:1100}

/* Landscape phones: compact dock, full-height cards, open center. */
@media (max-height:600px) {
 .ll2-shell{--cw:clamp(58px,16.5dvh,88px);--left:145px;--right:142px;--dock:max(132px,calc(var(--ch) + 32px));--portrait:clamp(72px,21dvh,116px);font-size:11px}
 .ll2-header{height:30px;padding:2px 10px;gap:12px}
 .ll2-header>b{font-size:17px;letter-spacing:1px}
 .ll2-header em{font-size:14px;padding-left:8px}
 .ll2-header>span{font-size:10px}
 .ll2-header nav{gap:4px}
 .ll2-header button{min-height:25px;font-size:10px;padding:2px 7px}
 .ll2-header button:last-child{font-size:18px;width:25px}
 .ll2-volume{padding:0 3px;font-size:8px}.ll2-volume input{width:42px}
 .ll2-opponents{top:30px;left:5%;right:5%}
 .ll2-role{font-size:11px;padding:3px 2px;left:-7px;letter-spacing:2px}
 .ll2-player-name{font-size:18px;bottom:4px}
 .ll2-player-name small{font-size:8px}
 .ll2-seat-number{font-size:8px;top:3px;right:3px;padding:0 3px}
 .ll2-vitals{font-size:9px;padding:2px;gap:2px}
 .ll2-hearts{font-size:10px;letter-spacing:-1px}
 .ll2-hearts i{font-size:9px;letter-spacing:0;margin-left:2px}
 .ll2-vitals>span:last-child{white-space:nowrap}
 .ll2-opponent-name,.ll2-opponent-role{top:10px;min-height:36px;padding:3px 2px;font-size:11px;letter-spacing:1px}
 .ll2-opponent-name{left:-20px}.ll2-opponent-role{right:-20px}
 .ll2-opponent-gear{left:2px;right:2px;bottom:2px;gap:1px}
 .ll2-opponent-equip img{max-height:16px}
 .ll2-opponent-gear-fallback,.ll2-opponent-judge{height:12px;padding:1px 2px;font-size:7px}
 .ll2-opponent-gear-fallback small,.ll2-opponent-judge small{font-size:6px}
 .ll2-person.active::before{font-size:9px;top:-13px}
 .ll2-phase{top:9px;gap:8px;font-size:9px}
 .ll2-phase b{font-size:13px;padding-right:8px;letter-spacing:2px}
 .ll2-phase small{font-size:9px}
 .ll2-center{left:25%;right:25%;top:30px;bottom:70px}
 .ll2-table-cards{gap:7px}
 .ll2-table-cards .ll2-card{--card-width:calc(var(--cw)*.8)}
 .ll2-table-cards small{font-size:8px;max-width:64px}
 .ll2-bottom{gap:10px;padding:0 9px 5px}
 .ll2-equipment header{font-size:9px;padding-bottom:2px}
 .ll2-equipment header small{font-size:8px}
 .ll2-equipment>button{height:22px;margin:2px 0}
 .ll2-equipment i{font-size:9px}
 .ll2-equipment b{font-size:10px}
 .ll2-equipment small{font-size:9px}
 .ll2-delays{font-size:9px;min-height:14px}
 .ll2-hand-label{height:13px;font-size:9px}
 .ll2-hand-label span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .ll2-hand{padding:11px 3px 3px;min-height:calc(var(--ch) + 14px)}
 .ll2-card-name{font-size:11px;padding:2px 0}
 .ll2-corner{font-size:14px;left:2px;top:2px;min-width:13px}
 .ll2-corner i{font-size:12px}
 .ll2-card.picked{transform:translateY(-8px)}
 .ll2-controls{left:calc(var(--left) + 19px);right:calc(var(--right) + 19px);gap:4px;bottom:calc(var(--dock) + 2px)}
 .ll2-prompt{display:block;padding:3px 6px;max-width:100%}
 .ll2-prompt>b{font-size:11px;line-height:1.25;display:block}
 .ll2-prompt small{font-size:9px;line-height:1.25;-webkit-line-clamp:1}
 .ll2-buttons{gap:6px}
 .ll2-buttons button{padding:4px 9px;min-height:30px;min-width:62px;font-size:11px}
 .ll2-skills{gap:4px;right:calc(100% + 6px)}
 .ll2-skills button{font-size:11px;min-height:30px;padding:4px 8px}
 .ll2-skills>span{font-size:9px;min-height:18px;padding:2px 5px}
 .ll2-skill-status{font-size:8px;padding:1px;bottom:42%}
 .ll2-choice-board{padding:5px 8px}
 .ll2-choice-board>b{font-size:12px;margin-bottom:4px}
 .ll2-options{gap:7px;padding:3px}
 .ll2-options.ll2-benxi-options{grid-template-columns:repeat(2,minmax(95px,1fr));gap:6px}
 .ll2-choice-board .ll2-card{--card-width:calc(var(--cw)*.78)}
 .ll2-card-back{width:calc(var(--cw)*.72);font-size:10px!important;padding:0 3px}
 .ll2-option small{font-size:8px}
 .ll2-text-option{min-height:33px!important;min-width:95px;font-size:10px!important}
 .ll2-event{left:25%;right:25%;top:54px;bottom:calc(var(--dock) + 67px);gap:4px}
 .ll2-event .ll2-card{--card-width:calc(var(--cw)*.9)}
 .ll2-event-cards .ll2-card{--card-width:calc(var(--cw)*.8)}
 .ll2-event p{font-size:11px;padding:4px 9px}
 .ll2-event>strong{font-size:17px}
 .ll2-judgement{width:440px;padding:9px 18px}
 .ll2-judgement header{font-size:18px;padding-bottom:6px}
 .ll2-judge-content{padding:10px 0 4px;gap:25px}
 .ll2-judge-content b{font-size:12px}
 .ll2-judge-content p{font-size:10px}
 .ll2-judge-card>strong{font-size:19px}
 .ll2-log{top:36px;bottom:10px;width:230px}
 .ll2-log p{font-size:10px}
 .ll2-draft{padding:12px}.ll2-draft h2{font-size:22px;margin:5px 0}.ll2-draft>p{font-size:10px;margin-bottom:8px}.ll2-draft>div{gap:12px;width:720px}.ll2-draft>div>button{min-height:155px;height:62dvh;padding:8px}.ll2-draft b{font-size:21px}.ll2-draft small{font-size:9px}.ll2-draft strong{font-size:14px;margin:3px 0}.ll2-draft span{font-size:10px;min-height:42px}.ll2-draft .ll2-eyebrow{min-height:0}.ll2-lobby{padding:12px}.ll2-lobby h1{font-size:40px;margin:5px 0}.ll2-lobby p{font-size:10px;margin:3px 0}.ll2-beans{font-size:23px;margin:8px 0}.ll2-beans small{font-size:9px}.ll2-start-buttons button{min-height:34px;padding:5px 20px}.ll2-lobby .ll2-muted{margin-top:8px;font-size:9px}.ll2-exchange{margin-top:5px;padding-top:5px;font-size:10px}.ll2-eyebrow{font-size:10px}.ll2-modal article{padding:15px 20px}.ll2-modal h2{font-size:19px}.ll2-modal p{font-size:11px;margin:7px 0}.ll2-lucky{padding:12px}.ll2-lucky h2{font-size:28px}.ll2-lucky-hand{min-height:100px;margin:7px 0}.ll2-lucky-hand .ll2-card{width:67px;height:96px}.ll2-shop-list{gap:6px}.ll2-shop-item{grid-template-columns:48px minmax(0,1fr) auto;min-height:64px;padding:6px 8px;gap:6px}.ll2-shop-icon{width:44px;height:44px;padding:2px}.ll2-shop-item b{font-size:12px}.ll2-shop-item small,.ll2-shop-item i{font-size:9px}.ll2-shop-item button{font-size:10px;min-height:27px;padding:3px 6px}.ll2-general-pool-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.ll2-general-pool-card{min-height:125px;padding:6px}.ll2-general-pool-card b{font-size:15px}.ll2-general-pool-card small,.ll2-general-pool-card span{font-size:8px}.ll2-general-pool-card i{font-size:8px;top:4px;right:4px}.ll2-general-pool-modal footer{margin-top:8px}.ll2-general-pool-modal footer small{font-size:9px}
}
@media (max-width:740px) and (orientation:landscape) {
 .ll2-shell{--left:128px;--right:130px}
 .ll2-opponents{left:4%;right:4%}
 .ll2-hand-label span{display:none}
 .ll2-header{gap:9px}
 .ll2-header nav{gap:3px}
 .ll2-header button{padding:2px 6px}
 .ll2-volume span{display:none}.ll2-volume input{width:36px}
}
@media (max-width:700px) and (orientation:portrait) {
 .ll2-rotate{position:absolute;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(ellipse at center,#1c3435,#09151b);text-align:center;padding:30px}
 .ll2-rotate span{font-size:85px;color:#d8ba77}
 .ll2-rotate b{font:700 30px serif;color:#ead7ac;letter-spacing:5px}
 .ll2-rotate p{font-size:14px;color:#aebdaf;margin:15px 0 30px}
 .ll2-header>span{display:none}
}
@media (max-width:640px) {
 .ll2-shop-list{grid-template-columns:1fr}
 .ll2-general-pool-list{grid-template-columns:repeat(3,minmax(0,1fr))}.ll2-general-pool-card{min-height:108px}
}
@media (prefers-reduced-motion:reduce) {
 .ll2-shell *{animation:none!important;transition:none!important}
}

/* Progression rewards share the outer game's inventory and equipment artwork. */
.ll2-growth{width:min(740px,100%);margin-top:18px;padding:12px 14px;background:#10201edb;border:1px solid #ac95616b;border-radius:6px;text-align:left;flex:none}
.ll2-growth>header,.ll2-reward-drop>header{display:flex;justify-content:space-between;gap:12px;align-items:center;color:#efdaa9;font-size:13px}
.ll2-growth>header>span,.ll2-reward-drop>header>span{font-size:11px;color:#b7c6af}
.ll2-milestones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:9px 0}
.ll2-milestones>div{padding:8px 10px;background:#2b352aad;border:1px solid #82785470;border-radius:4px;display:grid;gap:5px}
.ll2-milestones b{font-size:12px;color:#e6d6aa}
.ll2-milestones i{font:10px system-ui;color:#adb5a1;float:right}
.ll2-milestones span{font-size:11px;color:#c6c7b2}
.ll2-milestones .earned{background:#34472b8c;border-color:#9caf6480}
.ll2-milestones .earned i{color:#b7d491}
.ll2-growth>small{font-size:10px;color:#a9b7a0;display:block}
.ll2-reward-rules{width:min(740px,100%);margin-top:10px;text-align:left;font-size:12px;color:#d5c8a5;flex:none}
.ll2-reward-rules summary{cursor:pointer;padding:5px 0;color:#e1ce9d}
.ll2-reward-rules p{font-size:11px!important;line-height:1.65!important;margin:6px 0!important}
.ll2-result-screen{gap:0}
.ll2-settlement{display:grid;grid-template-columns:210px minmax(0,1fr);gap:24px;align-items:center;width:min(740px,100%);flex:none}
.ll2-result-intro{display:flex;align-items:center;flex-direction:column;min-width:0}
.ll2-result-intro h1{font-size:42px;letter-spacing:3px;margin:12px 0}
.ll2-result-intro .ll2-result{font-size:25px;display:block;margin:12px 0 3px;white-space:nowrap}
.ll2-result-intro>small{font-size:11px;color:#b8b79d}
.ll2-result-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:20px}
.ll2-result-actions button{min-height:34px;font-size:12px;padding:5px 12px}
.ll2-reward-drop{padding:16px;background:#132320ed;border:1px solid #ad945e99;border-radius:6px;text-align:left;min-width:0}
.ll2-loot{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 0;padding:0}
.ll2-loot>li{display:flex;gap:8px;align-items:center;padding:8px;background:#303b2abd;border:1px solid #697b534d;border-radius:4px;min-width:0;font-size:12px}
.ll2-loot img{width:30px;height:30px;object-fit:contain;flex:none}
.ll2-loot>li>b,.ll2-loot>li>strong{margin-left:auto;white-space:nowrap;color:#f4d690}
.ll2-loot .ll2-loot-equip{grid-column:1/-1;background:#333528}
.ll2-loot .ll2-loot-equip.legendary{background:linear-gradient(110deg,#574328,#2c3526);border-color:#c1954999}
.ll2-loot-equip>div{display:grid;gap:3px;min-width:0}
.ll2-loot-equip small{font-size:10px;color:#c0c7ae;line-height:1.4}
.ll2-lobby .ll2-milestone-earned{font-size:11px;color:#d9c685;margin:10px 0 0}
.ll2-lobby .ll2-reward-empty{padding:25px 10px;margin:0;font-size:13px;line-height:1.8;color:#bfc8b6;text-align:center}
@media(max-height:600px){
 .ll2-growth{margin-top:10px;padding:8px 10px}
 .ll2-growth>header,.ll2-reward-drop>header{font-size:12px}
 .ll2-growth>header>span,.ll2-reward-drop>header>span{font-size:10px}
 .ll2-milestones{margin:6px 0;gap:6px}
 .ll2-milestones>div{padding:5px 7px;gap:3px}
 .ll2-milestones b{font-size:11px}
 .ll2-milestones span,.ll2-milestones i,.ll2-growth>small{font-size:9px}
 .ll2-settlement{grid-template-columns:180px minmax(0,1fr);gap:16px}
 .ll2-result-intro h1{font-size:32px;margin:8px 0;letter-spacing:2px}
 .ll2-result-intro .ll2-result{font-size:21px;margin:8px 0 2px}
 .ll2-result-actions{margin-top:12px;gap:6px}
 .ll2-result-actions button{font-size:11px;min-height:30px;padding:4px 10px}
 .ll2-reward-drop{padding:10px}
 .ll2-loot{gap:5px;margin-top:8px}
 .ll2-loot>li{padding:5px 7px;font-size:11px;gap:6px;min-height:36px}
 .ll2-loot img{width:24px;height:24px}
 .ll2-loot-equip small{font-size:9px}
 .ll2-reward-rules{margin-top:4px;font-size:11px}
 .ll2-lobby .ll2-milestone-earned{font-size:10px;margin-top:6px}
}
@media(max-height:600px){
 .ll2-result-intro>.ll2-eyebrow{display:none}
 .ll2-result-actions{margin-top:8px}
 .ll2-result-screen .ll2-growth{margin-top:8px;padding:6px 10px}
}
/* Keep full new-general descriptions readable in a short landscape viewport. */
@media (max-height:600px) and (orientation:landscape){
 .ll2-general-info-modal{padding:12px}.ll2-general-info-modal article{width:min(720px,calc(100vw - 24px));height:calc(100dvh - 24px);grid-template-columns:minmax(145px,29%) minmax(0,1fr)}
 .ll2-general-info-content{padding:12px 16px 9px}.ll2-general-info-content h2{font-size:24px}.ll2-general-info-content>header{padding-bottom:6px}.ll2-general-info-content header p{font-size:10px}.ll2-general-info-skills{padding-top:7px}.ll2-general-info-skills section{padding:5px 7px;margin-bottom:4px}.ll2-general-info-skills b{font-size:13px;padding:1px 5px}.ll2-general-info-skills p{font-size:10px;line-height:1.35;margin-top:3px}.ll2-general-info-content footer{padding-top:5px;font-size:8px}.ll2-general-info-art span{left:7px;bottom:6px;font-size:10px}
 .ll2-draft>div.ll2-draft-cards>button{height:clamp(100px,37dvh,200px);min-height:100px;padding:5px}
 .ll2-draft-card{height:clamp(130px,43dvh,230px);min-height:130px;gap:4px}.ll2-draft-card>.ll2-draft-preview{min-height:100px;padding:5px}.ll2-draft-card>.ll2-draft-exchange{min-height:26px;padding:3px;font-size:10px}
 .ll2-draft-detail{margin-top:8px;padding:7px 10px;gap:12px}
 .ll2-draft-detail b{font-size:12px}
 .ll2-draft-detail p{font-size:10px;line-height:1.45;margin-top:3px}
 .ll2-draft-detail>button{min-height:32px;font-size:11px;padding:5px 10px}
}
@media (max-height:600px) and (orientation:landscape){
 .ll2-choice-board .ll2-options{align-items:center}
 .ll2-choice-board .ll2-option{padding:0}
 .ll2-choice-board .ll2-option small{line-height:1;margin-top:2px}
 .ll2-choice-board .ll2-card{--card-width:calc(var(--cw)*.7)}
 .ll2-choice-board .ll2-card-back{width:calc(var(--cw)*.7)}
}
@media (max-height:350px) and (orientation:landscape){
 .ll2-center:has(.ll2-choice-board){top:0;bottom:65px}
 .ll2-battlefield:has(.ll2-choice-board) .ll2-phase{display:none}
 .ll2-choice-board .ll2-card{--card-width:36px}
 .ll2-choice-board .ll2-card-back{width:36px}
 .ll2-choice-board .ll2-option small{display:none}
}

/* The covered lobby is idle while the table is open. */
body.landlord-open #game{visibility:hidden;content-visibility:hidden}
body.landlord-open #game *{animation-play-state:paused!important}
.ll2-hand{contain:layout style}
@media (prefers-reduced-motion:reduce){.ll2-shell *{animation:none!important;transition:none!important}}
