@layer legacy {
@font-face{font-family:Onest;src:url('../assets/fonts/Onest.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{font-family:Onest,Arial,sans-serif;color:#f6f4e9;background:#132522;--cream:#f6f4e9;--muted:#9aafa6;--gold:#e8c77b;--line:#ffffff17;--card-w:112px;--table-card-w:104px;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:radial-gradient(ellipse at 50% -20%,#315548,transparent 70%),#132522}button,input{font:inherit}button{cursor:pointer;border:0;color:inherit;background:transparent;transition:background .15s,box-shadow .15s; -webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button:not(.card):hover{filter:brightness(1.1)}a{color:inherit}header{height:88px;max-width:1400px;margin:auto;padding:0 42px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.brand{text-decoration:none;display:flex;align-items:center;gap:12px;font-size:29px;font-weight:800;letter-spacing:-1px;line-height:1}.brand-icon{font-family:Georgia,serif;font-size:44px;color:var(--gold)}.brand-sub{display:block;font-size:8px;letter-spacing:2.8px;font-weight:500;color:var(--muted);margin-top:7px}.header-actions{display:flex;align-items:center;gap:12px}.icon{width:42px;height:42px;display:grid;place-items:center;border:1px solid #ffffff1c;border-radius:50%;font-size:20px}.secondary{border:1px solid #ffffff2b;background:#ffffff07;border-radius:12px;padding:13px 20px;font-size:14px;font-weight:600}.primary{background:linear-gradient(#f2d894,#e2bb64);border-radius:12px;color:#26352b;font-weight:800;padding:14px 30px;box-shadow:0 3px 0 #ae8843,0 5px 18px #0002;font-size:16px}.primary:active{translate:0 2px;box-shadow:0 1px 0 #ae8843}.ghost{padding:12px 16px;color:var(--muted);font-size:13px}.wide{width:100%;margin-top:14px}.panel{background:#1d332c;border:1px solid #ffffff18;border-radius:24px;box-shadow:0 16px 60px #07181335;padding:30px}.home{max-width:1180px;margin:38px auto 20px;padding:0 28px;display:grid;grid-template-columns:1.1fr 1fr;gap:72px;align-items:center}.welcome{text-align:center;position:relative;padding:20px 0 0}.table-logo>span{display:inline-grid;place-items:center;width:48px;height:48px;border:1px solid #d4b76b50;border-radius:50%;font-size:25px;color:var(--gold)}.table-logo>p:first-of-type{font-size:10px;letter-spacing:3px;color:var(--gold);margin:20px 0 12px}h1{font-size:clamp(48px,5vw,72px);letter-spacing:-3px;line-height:1.04;margin:16px 0;font-weight:800}h1 em{color:var(--gold);font-style:normal}h2{font-size:23px;letter-spacing:-.7px;margin:0}.lead{font-size:15px;color:#a6bbb0;line-height:1.7;margin:22px 0}.hero-cards{height:220px;display:flex;align-items:center;justify-content:center;margin:18px 0 4px}.hero-cards>div{margin-left:-35px;transform:translateY(var(--lift)) rotate(var(--angle));transform-origin:50% 100%}.hero-cards>div:first-child{margin-left:0}.hero-cards .card{width:124px;aspect-ratio:120/174;box-shadow:0 15px 22px #0004}.welcome-stats{display:flex;align-items:center;justify-content:center;gap:24px;margin:36px 0 0;color:var(--muted);font-size:11px}.welcome-stats strong{font-size:21px;font-weight:700;color:var(--cream);display:block;margin-bottom:5px}.welcome-stats .ghost{max-width:120px}.section-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;gap:10px}.eyebrow{color:var(--gold);font-size:9px;letter-spacing:2px;margin:0 0 7px;font-weight:600}.setup-suit{font-size:44px;color:#d2bb7540}.setup{background:linear-gradient(135deg,#284134,#20372d)}label{display:block;font-size:12px;color:#b8c9be;margin:18px 0 9px;font-weight:500}.segmented{padding:4px;display:flex;gap:3px;background:#0f241b70;border:1px solid #0001;border-radius:12px}.segmented button{flex:1;border-radius:9px;padding:11px 6px;font-size:13px;color:#99b3a4;white-space:nowrap;font-weight:500}.segmented button.active{background:#496b50;color:#fff9e6;box-shadow:inset 0 1px 0 #ffffff15,0 2px 5px #0002}.rule-description{font-size:11px;color:#9bb09e;margin:10px 0 22px;min-height:16px}.setting-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.setting-grid label{margin-top:0}.check{display:flex;align-items:center;gap:9px;font-weight:400;font-size:11px;margin:22px 0 12px}.check input{width:16px;height:16px;accent-color:var(--gold)}.play-button{height:56px;letter-spacing:.1px;margin-top:8px}.online-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.online-buttons .secondary{padding:13px 8px}.micro{font-size:11px;color:var(--muted);line-height:1.65}.centered{text-align:center}.setup>.micro:last-child{margin:20px 0 0}footer{max-width:1300px;margin:36px auto 0;padding:18px 40px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;color:#7c9788;font-size:11px}input{width:100%;min-width:0;background:#12291f;color:var(--cream);border:1px solid #ffffff25;border-radius:10px;padding:13px 15px;font-size:14px}input::placeholder{color:#729180}.join{display:flex;gap:10px}.join .secondary{flex-shrink:0}.card{display:block;width:var(--card-w);aspect-ratio:120/174;padding:0;border-radius:8px;flex-shrink:0;background:#fffdf6;box-shadow:0 4px 9px #0003;user-select:none;-webkit-user-select:none;position:relative}.card svg{display:block;width:100%;height:100%;pointer-events:none;overflow:visible;border-radius:8px}.card.red{color:#c63e45}.red{color:#ea7370}.card:disabled{opacity:1}.card.playable{box-shadow:0 0 0 2px #d7dfbf99,0 6px 14px #0003}.card.is-trump::after{content:'♠';content:attr(data-trump);position:absolute;bottom:5px;left:5px;color:#8d9c86;font-size:9px}.in-game header{height:66px;max-width:none;padding:0 28px}.in-game .brand{font-size:23px}.in-game .brand-icon{font-size:31px}.in-game .brand-sub{font-size:7px;letter-spacing:2px}.in-game .header-actions .secondary{padding:9px 16px;font-size:12px}.in-game .header-actions .icon{width:34px;height:34px;font-size:17px}.in-game footer{display:none}.game{max-width:1500px;margin:0 auto;padding:0 24px;--hand-extra:0px}.game-toolbar{display:flex;align-items:center;justify-content:space-between;height:60px;gap:10px}.game-toolbar>div{text-align:center;display:flex;gap:12px;align-items:center}.game-toolbar strong{font-weight:600;font-size:14px}.game-toolbar>div>span{color:var(--muted);font-size:11px}.toolbar-button{font-size:13px;color:#9bb3a7;padding:12px}.arena{position:relative;isolation:isolate;height:calc(100dvh - 132px);min-height:580px;max-height:1100px;--card-w:clamp(96px,14dvh,124px);--table-card-w:clamp(94px,13dvh,114px)}.felt{position:absolute;inset:65px 65px 132px;border-radius:46%;border:10px solid #395445;background:radial-gradient(ellipse at 50% 35%,#427953,#285638 70%,#244d33);box-shadow:0 0 0 2px #ad956f20,0 0 0 12px #162e23,inset 0 0 0 2px #95ac7350,inset 0 0 60px #0b2c2860,0 16px 30px #0002;z-index:-1}.felt::after{content:'';position:absolute;inset:0;border-radius:inherit;opacity:.15;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath d='M0 0h1v1H0zM2 2h1v1H2z' fill='%23d3e3ac'/%3E%3C/svg%3E")}.felt-mark{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);color:#d1dcbb16;font-size:140px;text-align:center;line-height:1}.felt-mark span{display:block;font-size:13px;letter-spacing:5px;margin-top:20px;white-space:nowrap}.opponent{position:absolute;z-index:2;min-width:160px}.opponent.north{left:50%;top:4px;transform:translateX(-50%)}.opponent.west{left:10px;top:27%}.opponent.east{right:10px;top:27%}.opponent-info{display:flex;align-items:center;gap:10px;background:#12291fd9;border:1px solid #ffffff12;border-radius:40px;padding:8px 13px 8px 8px;box-shadow:0 8px 14px #0001}.opponent.current .opponent-info{border-color:#e7c57680;box-shadow:0 0 0 3px #e7c5760a}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#98a389,#566f5a);color:#f9f1d6;font-weight:700;font-size:16px;flex-shrink:0;border:2px solid #ccd4a540}.avatar-2{background:linear-gradient(135deg,#b49b83,#79563e)}.avatar-3{background:linear-gradient(135deg,#7999a1,#365665)}.opponent-info strong{display:block;font-size:13px;font-weight:600;max-width:95px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opponent-info div>span{display:block;font-size:9px;color:#93ab9b;margin-top:3px}.opponent.current .opponent-info div>span{color:var(--gold)}.card-count{font-size:14px;margin-left:9px;font-weight:600;color:#bdc8b6}.opponent-hand{height:70px;width:160px;margin:8px auto 0;position:relative}.mini-back{position:absolute;left:calc(50% - 24px + (var(--i) - (var(--n) - 1)/2)*16px);top:0;width:48px;height:70px;transform:rotate(calc((var(--i) - (var(--n) - 1)/2)*4deg));transform-origin:50% 150%;filter:drop-shadow(0 2px 2px #0004)}.mini-back svg{width:100%;height:100%}.opponent.player-finished .opponent-hand{visibility:hidden}.deck-zone{position:absolute;left:18%;top:43%;transform:translate(-50%,-50%);width:124px;text-align:center;z-index:1}.deck-cards{height:156px;position:relative}.deck-zone .trump{position:absolute;width:88px;top:24px;left:23px;transform:rotate(90deg);transform-origin:50% 50%}.deck-back{position:absolute;width:88px;height:128px;left:0;top:4px;filter:drop-shadow(3px 0 0 #d3d1bc) drop-shadow(3px 0 0 #b9bba8)}.deck-back svg{width:100%;height:100%}.deck-back b{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:18px;background:#153b43;color:#f9f1d6;border:1px solid #adbc9460;border-radius:50%;width:36px;height:36px;display:grid;place-items:center}.deck-zone>span{font-size:9px;letter-spacing:2px;color:#b1c3a6}.deck-zone>span>b{font-size:17px;margin-left:4px}.discard-zone{position:absolute;right:14%;top:43%;transform:translate(50%,-50%);width:75px;text-align:center}.discard-art{width:62px;height:90px;opacity:.15;margin:auto;transform:rotate(14deg);border-radius:6px}.discard-art.has-discard{opacity:.85;filter:drop-shadow(3px 3px 0 #193d33)}.discard-zone>span{display:block;font-size:9px;color:#9ab292;margin-top:14px;white-space:nowrap}.battle{position:absolute;left:28%;right:23%;top:150px;bottom:calc(250px + var(--hand-extra));display:flex;align-content:center;align-items:center;justify-content:center;flex-wrap:wrap;gap:18px 20px;min-height:150px;border:2px dashed transparent;border-radius:22px;padding:14px;z-index:3}.battle:has(.empty-table){border-color:#c6d5b026;max-height:210px;top:30%}.empty-table{text-align:center;color:#c1d3b67d;pointer-events:none}.empty-table>span{font-size:38px;font-weight:200;line-height:1}.empty-table p{font-size:14px;margin:10px 0 8px;font-weight:500}.empty-table small{font-size:10px;color:#a2bd968c}.pair{position:relative;width:calc(var(--table-card-w) + 30px);height:calc(var(--table-card-w)*1.45 + 30px);flex-shrink:0;border-radius:10px}.pair .card{width:var(--table-card-w)}.pair .defense{position:absolute;top:25px;left:26px;transform:rotate(7deg);z-index:1}.target-label{position:absolute;left:0;bottom:2px;font-size:9px;color:#c6d6b987;letter-spacing:.4px;pointer-events:none}.pair:has(.defense) .target-label{display:none}.pair[data-do]{cursor:pointer}.transfer-zone{position:absolute;right:21%;bottom:calc(245px + var(--hand-extra));z-index:4;border:1px dashed #d5c28566;border-radius:12px;padding:13px 18px;color:#e1d29b;font-size:13px;background:#1f4b3060;text-align:left}.transfer-zone span{margin-left:12px}.transfer-zone small{display:block;font-size:9px;color:#aabe98;margin-top:4px}.table-status{position:absolute;left:50%;bottom:calc(221px + var(--hand-extra));transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:9px;color:#e8eddc;font-size:14px;white-space:nowrap;padding:10px 18px;border-radius:24px;background:#173720c9;z-index:3;max-width:95%;text-overflow:ellipsis}.status-dot{width:6px;height:6px;border-radius:50%;background:#819b7f}.status-dot.your-turn{background:var(--gold);box-shadow:0 0 0 4px #e8c77b16}.clock{border-left:1px solid #ffffff25;padding-left:12px;margin-left:4px;color:var(--gold);font-size:12px}.player-zone{position:absolute;bottom:0;left:10%;right:10%;z-index:5}.player-caption{display:flex;justify-content:space-between;align-items:center;margin:0 0 5px;color:#c5d2bf;font-size:9px;letter-spacing:1.5px}.player-caption b{font-size:11px;margin-left:5px;color:var(--gold)}.player-caption>span:last-child{font-size:10px;letter-spacing:0;color:#94ab97}.hand{position:relative;height:calc(var(--card-w)*1.45 + 22px + (var(--rows,1) - 1)*var(--card-w)*1.45*.69);width:100%;padding:0;touch-action:none;user-select:none;-webkit-user-select:none}.hand .card{position:absolute;left:0;top:10px;transform:translate(var(--x,0px),var(--y,0px)) rotate(var(--rotate,0deg));transform-origin:50% 100%;cursor:grab;transition:filter .12s,box-shadow .12s;touch-action:none}.hand .card::before{content:'';position:absolute;inset:-5px;z-index:-1}.hand .card.selected{translate:0 -20px;box-shadow:0 0 0 3px var(--gold),0 10px 20px #0004;z-index:100!important}.hand .card:disabled{cursor:default;filter:brightness(.93)}@media(hover:hover){.hand .card:not(:disabled):hover{translate:0 -20px;z-index:100!important;box-shadow:0 0 0 2px #e5daba,0 12px 25px #0003}.hand .card{transition:translate .15s}}.hand .card.drag-source{opacity:.22;translate:0 0}.drag-ghost{z-index:1000!important;box-shadow:0 16px 30px #0005;pointer-events:none!important;translate:0 0!important}.dragging{cursor:grabbing!important;user-select:none}.drop-ready{outline:2px solid #e8c77b85;outline-offset:5px;background-color:#d8c57808}.battle.drop-ready{border-color:#d8c57885;outline:none}.drop-over{outline:3px solid #ffe3a5!important;outline-offset:6px;filter:brightness(1.12)}.battle.drop-over{border-color:#ffe3a5;background-color:#dfcb9010}.actions{min-height:51px;display:flex;align-items:center;justify-content:center;gap:12px;position:relative;margin-top:3px;padding-bottom:8px}.actions .primary,.actions .secondary{min-width:128px;padding:12px 23px;font-size:14px}.take-button{background:#33473b;border-color:#bac7b34d}.connection-state{position:absolute;right:0;bottom:24px;font-size:9px;color:#6f8e79}.chat{position:fixed;right:20px;bottom:10px;z-index:7;max-width:160px;text-align:right}.chat button{padding:5px;font-size:9px}.chat p{font-size:9px;margin:5px}.lobby{max-width:780px;margin:50px auto;text-align:center}.lobby h1{font-size:44px}.lobby p{font-size:14px;color:#afc4b1;line-height:1.7}.lobby button{margin:8px}.members{display:flex;gap:15px;justify-content:center;flex-wrap:wrap;margin:26px 0}.member{display:flex;flex-direction:column;align-items:center;gap:10px;font-size:13px;padding:15px}.veil{position:fixed;inset:0;z-index:20;background:#071e18c9;backdrop-filter:blur(8px);display:grid;place-items:center;padding:20px}.modal{width:min(560px,100%);max-height:86dvh;overflow:auto;box-shadow:0 24px 100px #0006}.modal .section-top{margin-bottom:20px}.modal p,.modal li{font-size:13px;color:#b3c9b8;line-height:1.8}.modal li{padding:6px 0}.modal table{border-collapse:collapse;width:100%;font-size:12px}.modal td,.modal th{text-align:left;padding:12px 7px;border-bottom:1px solid var(--line)}.modal th{font-size:10px;color:var(--muted)}.result-stats{display:flex;justify-content:center;gap:60px;text-align:center}.result-stats strong{font-size:44px;color:var(--gold);display:block}.result-stats span{font-size:12px;color:var(--muted)}#toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);z-index:1100;background:#ede2c5;color:#29392b;border-radius:12px;padding:13px 20px;box-shadow:0 6px 30px #0004;font-size:12px;line-height:1.5;max-width:min(460px,92vw);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:translate(-50%,0)}.in-game #toast{bottom:calc(var(--card-w)*1.45 + 90px)}.loading{text-align:center;padding:120px}
@media(max-width:1000px){.home{gap:32px}.battle{left:23%;right:19%;gap:12px}.opponent.west{left:0}.opponent.east{right:0}.opponent{min-width:135px}.opponent-info{gap:7px}.opponent-hand{width:135px}.deck-zone{left:14%}.discard-zone{right:10%}.player-zone{left:5%;right:5%}.felt{inset:65px 30px 132px}.game-toolbar>div{flex-direction:column;gap:3px}}
@media(max-width:640px){header{height:72px;padding:0 20px}.brand{font-size:24px}.brand-icon{font-size:35px}.header-actions{gap:8px}.header-actions .secondary{padding:10px;font-size:12px}.header-actions .secondary span{display:none}.icon{width:34px;height:34px;font-size:16px}.home{grid-template-columns:1fr;padding:0 18px;gap:16px;margin:14px auto}.welcome{padding:8px 0}.table-logo>span,.table-logo>p:first-of-type{display:none}h1{font-size:42px;letter-spacing:-2px;margin:10px 0}.table-logo h1 br{display:none}.lead{font-size:12px;margin:12px 0}.lead br{display:none}.hero-cards{height:125px;margin:5px 0 8px}.hero-cards .card{width:73px}.hero-cards>div{margin-left:-18px}.welcome-stats{display:none}.setup{padding:22px;border-radius:20px}.section-top{margin-bottom:19px}h2{font-size:20px}.segmented button{font-size:12px;padding:11px 5px}.rule-description{font-size:10px;margin:10px 0 18px}.check{margin:16px 0 11px}.play-button{height:52px}.setup>.micro:last-child{margin-top:15px}footer{padding:15px 20px;margin-top:20px}.in-game header{height:54px;padding:0 14px}.in-game .brand{font-size:20px}.in-game .brand-icon{font-size:29px}.in-game .brand-sub{display:none}.in-game .header-actions{gap:6px}.in-game .header-actions .secondary{padding:8px}.in-game .header-actions .icon{width:29px;height:29px;font-size:14px}.game{padding:0 8px}.game-toolbar{height:48px}.game-toolbar strong{font-size:12px}.game-toolbar>div>span{font-size:9px}.toolbar-button{font-size:11px;padding:8px 4px}.toolbar-button span{font-size:10px}.arena{height:calc(100dvh - 106px);min-height:530px;--card-w:92px;--table-card-w:82px}.felt{inset:60px 3px 135px;border-radius:60px;border-width:5px;box-shadow:0 0 0 2px #ad956f20,0 0 0 5px #162e23,inset 0 0 0 1px #95ac7350,inset 0 0 45px #0b2c2860}.opponent{min-width:0;max-width:122px;width:31%;top:3px!important}.opponent.north{left:50%;transform:translateX(-50%)}.opponent.west{left:1%}.opponent.east{right:1%}.opponent-info{padding:6px 7px 6px 5px;border-radius:12px;gap:5px}.avatar{width:25px;height:25px;font-size:12px;border-width:1px}.opponent-info strong{font-size:10px;max-width:62px}.opponent-info div>span{font-size:8px;margin-top:2px}.card-count{font-size:11px;margin-left:1px}.opponent-hand{height:47px;width:90px;margin-top:7px}.mini-back{width:31px;height:45px;left:calc(50% - 15px + (var(--i) - (var(--n) - 1)/2)*10px)}.deck-zone{left:8px;top:122px;transform:none;width:66px}.deck-cards{height:103px}.deck-zone .trump{width:51px;top:19px;left:18px}.deck-back{width:51px;height:74px;top:4px}.deck-back b{width:25px;height:25px;font-size:12px}.deck-zone>span{font-size:7px;letter-spacing:1px}.deck-zone>span>b{font-size:13px;margin-left:2px}.discard-zone{right:10px;top:125px;transform:none;width:42px}.discard-art{width:36px;height:52px}.discard-zone>span{font-size:7px;margin-top:9px}.battle{left:74px;right:48px;top:116px;bottom:calc(238px + var(--hand-extra));padding:6px;gap:10px 9px;min-height:140px}.battle:has(.empty-table){top:160px;left:83px;right:57px;max-height:175px}.empty-table p{font-size:11px}.empty-table small{font-size:9px;line-height:1.5;display:block;padding:0 7px}.pair{width:calc(var(--table-card-w) + 15px);height:calc(var(--table-card-w)*1.45 + 18px)}.pair .defense{top:17px;left:14px}.target-label{font-size:8px;bottom:-1px}.transfer-zone{bottom:calc(236px + var(--hand-extra));right:16px;padding:9px 12px;font-size:11px}.transfer-zone small{font-size:8px;display:none}.table-status{bottom:calc(216px + var(--hand-extra));font-size:12px;padding:9px 12px;gap:7px;max-width:96%}.player-zone{left:1%;right:1%}.player-caption{margin:0 8px 5px;font-size:8px;letter-spacing:1px}.player-caption>span:last-child{font-size:8px;max-width:220px;text-align:right}.hand{height:calc(var(--card-w)*1.45 + 20px + (var(--rows,1) - 1)*var(--card-w)*1.45*.69)}.actions{gap:10px;margin-top:2px;min-height:46px}.actions .primary,.actions .secondary{font-size:13px;padding:10px 21px;min-width:107px}.actions .ghost{font-size:11px;padding:10px}.connection-state{display:none}.chat{right:8px;bottom:55px;max-width:90px;opacity:.8}.chat button{font-size:8px}.chat p{display:none}.lobby{margin:20px 14px}.lobby h1{font-size:32px}.modal{padding:22px}.in-game #toast{bottom:220px}.felt-mark{font-size:110px}.felt-mark span{font-size:9px;letter-spacing:3px}}
@media(max-width:370px){.arena{--card-w:86px;--table-card-w:74px}.battle{left:65px;right:40px;gap:8px 5px}.pair{width:calc(var(--table-card-w) + 11px)}.pair .defense{left:10px}.player-caption>span:last-child{max-width:180px}.opponent-info strong{max-width:48px}.avatar{width:22px;height:22px}}
@media(max-height:650px) and (min-width:641px){.in-game header{height:48px}.game-toolbar{height:42px}.arena{height:calc(100dvh - 94px);min-height:410px;--card-w:88px;--table-card-w:80px}.felt{inset:42px 42px 112px}.opponent-hand{height:50px}.mini-back{width:36px;height:52px}.opponent.west,.opponent.east{top:16%}.battle{top:98px;bottom:calc(195px + var(--hand-extra));gap:8px;padding:5px}.pair{width:calc(var(--table-card-w) + 20px);height:calc(var(--table-card-w)*1.45 + 18px)}.pair .defense{left:19px;top:17px}.table-status{bottom:calc(175px + var(--hand-extra));font-size:12px}.deck-zone{top:40%;scale:.8}.discard-zone{scale:.8}.actions{min-height:43px}.player-caption{font-size:8px}.actions .primary,.actions .secondary{font-size:12px;padding:9px 20px}.battle:has(.empty-table){top:24%;max-height:140px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.pair .card{pointer-events:none}.pair.can-target{outline:2px solid #e8c77b85;outline-offset:5px}.pair.can-target .target-label{color:var(--gold)}
@media(max-width:640px){.battle.has-cards{left:18px;right:14px;top:218px;padding:4px;gap:10px 9px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#a8be9550 transparent}.battle.has-cards .pair{flex-shrink:0}}
@media(max-height:740px) and (max-width:640px){.arena{min-height:0;--card-w:84px;--table-card-w:74px}.battle.has-cards{top:178px;bottom:calc(205px + var(--hand-extra));align-content:safe center}.deck-zone{top:106px;scale:.85;transform-origin:top left}.discard-zone{top:115px}.table-status{bottom:calc(197px + var(--hand-extra))}.battle:has(.empty-table){top:139px;bottom:calc(220px + var(--hand-extra));min-height:105px}.transfer-zone{bottom:calc(224px + var(--hand-extra))}.player-caption>span:last-child{font-size:7px}}
@media(min-width:641px) and (min-height:651px){.table-status{bottom:calc(285px + var(--hand-extra))}.battle{bottom:calc(325px + var(--hand-extra))}.transfer-zone{bottom:calc(325px + var(--hand-extra))}}
@media(max-width:640px) and (min-height:741px){.battle.has-cards{top:200px;bottom:calc(254px + var(--hand-extra));padding:0;row-gap:6px}.deck-zone>span{position:absolute;top:-17px;left:0}}
@media(max-width:640px) and (max-height:740px){.battle.has-cards{bottom:calc(235px + var(--hand-extra));top:174px;padding:0}.deck-zone>span{position:absolute;top:-17px;left:0}}
.felt::after{opacity:.085}
@media(max-width:640px){.welcome{padding:4px 0}.table-logo h1{font-size:33px;letter-spacing:-1.6px;margin:6px 0}.lead{font-size:11px;line-height:1.5;margin:8px 0}.hero-cards{height:98px;margin:3px 0 8px}.hero-cards .card{width:62px}.home{gap:12px}.setup .section-top{margin-bottom:15px}.setup .check{margin-top:14px}}
@media(max-width:640px) and (max-height:700px){.hero-cards{display:none}.welcome .lead{display:none}.home{margin-top:8px}.setup{padding:17px}.setup .section-top{margin-bottom:12px}.setup label{margin-top:12px}.setup .rule-description{margin-bottom:14px}.setup .online-buttons{margin-top:12px}.setup>.micro:last-child{display:none}}
@media(min-width:641px) and (max-height:500px){.in-game header{height:40px}.game-toolbar{height:40px}.arena{height:calc(100dvh - 84px);min-height:0;--card-w:78px;--table-card-w:70px}.felt{inset:25px 45px 70px;border-width:5px}.opponent.north{top:0}.opponent.west,.opponent.east{top:25%}.opponent-hand{display:none}.opponent-info{padding:5px 10px 5px 5px}.avatar{width:28px;height:28px;font-size:13px}.opponent-info strong{font-size:11px}.opponent-info div>span{font-size:8px}.deck-zone{scale:.6;left:15%;top:39%}.discard-zone{scale:.6;right:11%;top:39%}.battle,.battle:has(.empty-table){top:45px;bottom:148px;min-height:105px;max-height:none;left:25%;right:21%;padding:2px;gap:9px;flex-wrap:nowrap;overflow-x:auto;justify-content:safe center}.pair{width:88px;height:119px}.pair .defense{left:17px;top:15px}.table-status{bottom:137px;font-size:10px;padding:6px 12px}.player-zone{left:18%;right:18%}.player-caption{display:none}.hand{height:calc(var(--card-w)*1.45 + 15px + (var(--rows,1) - 1)*var(--card-w)*1.45*.69)}.actions{position:absolute;bottom:12px;right:-25%;margin:0;flex-direction:column;gap:7px;min-height:0}.actions .primary,.actions .secondary{min-width:95px;font-size:11px;padding:8px 14px}.actions .ghost{font-size:9px;padding:5px}.connection-state{display:none}.transfer-zone{bottom:132px;right:16%;padding:8px;font-size:10px}.transfer-zone small{display:none}.empty-table>span{font-size:24px}.empty-table p{font-size:11px}.empty-table small{font-size:8px}.in-game #toast{bottom:130px}.chat{display:none}}
@media(max-width:640px) and (max-height:800px){.hero-cards{display:none}.welcome .lead{display:none}.home{margin-top:8px}.setup{padding:17px}.setup .section-top{margin-bottom:12px}.setup label{margin-top:12px}.setup .rule-description{margin-bottom:14px}.setup .online-buttons{margin-top:12px}.setup>.micro:last-child{display:none}}
@media(max-width:640px) and (max-height:620px){.setup label{margin-top:9px;margin-bottom:6px}.setup .segmented button{padding:8px 5px}.setup .rule-description{margin:7px 0 11px}.setup .section-top{margin-bottom:10px}.setup .check{margin:11px 0 8px}.play-button{height:45px}.table-logo h1{font-size:29px}.setup h2{font-size:18px}}
@media(min-width:641px) and (max-height:500px){.player-zone{bottom:12px}}
.empty-table.end-result{color:var(--cream)}.end-result>span{color:var(--gold);font-size:48px}.end-result p{font-size:21px;letter-spacing:-.5px}.end-result small{color:#c2d2b9}
@media(max-width:640px){.end-result p{font-size:16px}.end-result>span{font-size:36px}}
/* Quick start: one primary action, optional rules in a separate sheet. */
.quick-home{display:flex;justify-content:center;max-width:620px;margin:28px auto;padding:0 20px;gap:0}
.quick-start{width:100%;max-width:460px;padding:0;background:none;border:0;box-shadow:none;text-align:center}
.home-heading .eyebrow{letter-spacing:3px;font-size:10px}.home-heading h1{font-size:64px;margin:6px 0;letter-spacing:-3px}.home-heading>p:last-child{color:#bdcec5;font-size:16px;margin:10px 0}
.start-cards{height:174px;display:flex;align-items:center;justify-content:center;margin:12px 0 18px;padding-top:10px}.start-cards>div{transform:translateY(var(--lift)) rotate(var(--angle));margin-left:-25px}.start-cards>div:first-child{margin-left:0}.start-cards .card{width:96px;box-shadow:0 10px 28px #0004}
.quick-play{height:74px;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.quick-play>span{font-size:24px;font-weight:800}.quick-play small{font-size:12px;font-weight:500;opacity:.8}
.quick-start .online-buttons{gap:12px;margin-top:14px}.quick-start .online-buttons button{padding:17px 8px;background:#ffffff09}.quick-start .online-buttons span{font-size:15px;display:block}.quick-start .online-buttons small{display:block;font-size:11px;font-weight:400;color:#adbbb2;margin-top:7px}
.rules-summary{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;padding:20px 4px;margin-top:10px;border-bottom:1px solid var(--line);gap:10px}.rules-summary strong{font-size:13px;font-weight:500;display:block}.rules-summary small{display:block;color:#9eb5a7;font-size:11px;margin-top:6px}.change-rules{font-size:12px;color:var(--gold);white-space:nowrap}
.resume-button{display:block;width:100%;padding:17px 10px;margin-top:10px;color:#e8d396;background:#e8c77b09;border:1px solid #e8c77b24;border-radius:12px;font-size:13px}.home-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:10px;color:#96afa0;font-size:12px}.home-bottom .ghost{padding-left:4px}.quick-home~footer{display:none}
/* The play area uses the space for cards and explicit player roles. */
.felt{inset:42px 12px 112px;border-radius:30px;border:1px solid #8daa7d30;background:radial-gradient(ellipse at 50% 20%,#346945,#224c35 80%);box-shadow:inset 0 0 80px #0c2c2730}.felt-mark{opacity:.45}
.opponent.west{left:8%;top:4px}.opponent.east{right:8%;top:4px}.opponent-info{border:2px solid #ffffff18}.opponent.current .opponent-info{border-color:#e7c576;box-shadow:0 0 0 3px #e7c57615}.opponent.is-defender .opponent-info{border-color:#82d4cd;box-shadow:0 0 0 3px #82d4cd15}.opponent.is-defender .opponent-info div>span{color:#a8eeea}.opponent-info div>span{font-size:11px;font-weight:600}.opponent-info strong{font-size:14px}.opponent{min-width:190px}.opponent-hand{opacity:.8;height:59px}.mini-back{width:40px;height:58px}
.deck-zone{left:12%;top:43%}.discard-zone{right:9%;top:43%}.battle{left:23%;right:18%;top:133px;bottom:calc(325px + var(--hand-extra));gap:14px;padding:10px;align-content:safe center;overflow:auto}.battle:has(.empty-table){top:26%;max-height:180px}.arena{--card-w:clamp(104px,14dvh,132px);--table-card-w:clamp(88px,12dvh,112px)}
.table-status{bottom:calc(253px + var(--hand-extra));display:flex;flex-direction:column;gap:5px;min-width:300px;max-width:90%;padding:12px 22px;border:1px solid #809a7f50;border-radius:14px;background:#173b2c;white-space:normal;text-align:center;color:#edf5e9}.status-heading{display:flex;align-items:center;justify-content:center;gap:9px}.status-heading strong{font-size:17px;line-height:1.3;font-weight:750}.turn-route{font-size:11px;line-height:1.3;color:#b2c8b8}.table-status.is-actionable{background:#f2dfaa;border-color:#f9e7b8;color:#263b2c;box-shadow:0 4px 24px #0002}.is-actionable .turn-route{color:#526148}.is-actionable .status-dot{background:#377b4c;box-shadow:0 0 0 4px #377b4c18}.is-actionable .clock{color:#4c6947;border-color:#405c3730}
.player-zone{left:8%;right:8%}.player-caption{font-size:10px;letter-spacing:.8px;margin-bottom:10px}.player-caption>span:last-child{font-size:11px;color:#bad0bd;letter-spacing:0}.hand .card:disabled{filter:brightness(.8) saturate(.72)}.hand .card.playable{box-shadow:0 -3px 0 #edd995,0 4px 10px #0004}.actions .primary,.actions .secondary{min-width:150px}.target-label{color:#d4e2cd;font-size:10px}.transfer-zone{bottom:calc(325px + var(--hand-extra));right:18%;background:#234b37}
@media(max-width:640px){
  .quick-home{margin:18px auto;padding:0 24px}.home-heading h1{font-size:48px}.home-heading>p:last-child{font-size:14px}.start-cards{height:145px;margin:9px 0 17px}.start-cards .card{width:81px}.quick-play{height:68px}.quick-start .online-buttons span{font-size:14px}.quick-start .online-buttons small{font-size:10px}.rules-summary strong{font-size:12px}.rules-summary{padding:19px 0}.home-bottom{margin-top:5px}
  .arena{--card-w:96px;--table-card-w:78px;min-height:0}.felt{inset:36px 0 122px;border-radius:22px}.opponent{min-width:0;width:32%;max-width:130px}.opponent.west{left:0}.opponent.east{right:0}.opponent-info{gap:4px;padding:6px 4px;border-radius:10px}.opponent-info strong{font-size:11px;max-width:68px}.opponent-info div>span{font-size:9px;font-weight:600;max-width:83px;line-height:1.15}.opponent .avatar{display:none}.opponent-info>div{flex:1;min-width:0}.card-count{font-size:12px;margin-right:3px}.opponent-hand{height:39px;width:85px;margin-top:6px}.mini-back{width:27px;height:39px;left:calc(50% - 13px + (var(--i) - (var(--n) - 1)/2)*9px)}
  .deck-zone{left:8px;top:111px;transform:none;scale:.9;transform-origin:top left}.discard-zone{right:8px;top:116px;transform:none;scale:.85}.deck-zone>span{position:absolute;top:-17px;left:0}
  .battle.has-cards{top:190px;left:12px;right:12px;bottom:calc(280px + var(--hand-extra));min-height:100px;padding:2px;gap:8px 10px;align-content:safe center}.battle:has(.empty-table){top:146px;left:85px;right:57px;bottom:calc(284px + var(--hand-extra));min-height:105px;max-height:180px}
  .table-status{bottom:calc(222px + var(--hand-extra));min-width:0;width:94%;max-width:none;padding:10px 8px;gap:4px;border-radius:12px}.status-heading strong{font-size:15px}.turn-route{font-size:10px}.player-zone{left:2%;right:2%}.player-caption{margin:0 0 7px;font-size:9px;gap:6px;letter-spacing:0}.player-caption>span:last-child{font-size:9px;max-width:220px;line-height:1.3}.transfer-zone{bottom:calc(285px + var(--hand-extra));right:12px}.actions .primary,.actions .secondary{font-size:12px;min-width:130px;padding:11px 15px}.target-label{font-size:8px}.chat{display:none}
}
@media(max-width:640px) and (max-height:740px){.arena{--card-w:84px;--table-card-w:70px}.table-status{bottom:calc(201px + var(--hand-extra));padding:8px}.status-heading strong{font-size:14px}.battle.has-cards{top:165px;bottom:calc(265px + var(--hand-extra))}.battle:has(.empty-table){top:119px;bottom:calc(265px + var(--hand-extra))}.deck-zone{top:102px;scale:.7}.discard-zone{top:102px;scale:.7}.transfer-zone{bottom:calc(262px + var(--hand-extra))}.player-caption>span:last-child{font-size:8px}}
@media(max-width:640px) and (max-height:670px){.quick-home{margin-top:12px}.start-cards{height:102px;margin:4px 0 13px}.start-cards .card{width:59px}.home-heading h1{font-size:39px}.home-heading>p:last-child{margin:6px 0;font-size:13px}.home-heading .eyebrow{display:none}.quick-start .online-buttons button{padding:13px 4px}.quick-play{height:59px}.quick-play>span{font-size:21px}.rules-summary{padding:15px 0}.home-bottom{margin-top:0}.resume-button{padding:11px;margin-top:7px}}
@media(max-height:650px) and (min-width:641px){.arena{--card-w:88px;--table-card-w:76px}.table-status{bottom:calc(181px + var(--hand-extra));padding:8px 12px;min-width:280px}.status-heading strong{font-size:14px}.battle{top:100px;bottom:calc(247px + var(--hand-extra))}.battle:has(.empty-table){top:23%;bottom:calc(247px + var(--hand-extra))}.transfer-zone{bottom:calc(247px + var(--hand-extra))}}
@media(max-height:500px) and (min-width:641px){.arena{--card-w:78px;--table-card-w:68px}.opponent{min-width:150px}.opponent.west,.opponent.east{top:0}.opponent-info strong{font-size:11px}.opponent-info div>span{font-size:9px}.table-status{bottom:140px;padding:5px 12px;gap:1px;min-width:250px}.status-heading strong{font-size:12px}.turn-route{font-size:9px}.battle,.battle:has(.empty-table){top:54px;bottom:183px;left:23%;right:20%;min-height:75px}.battle .pair{height:100px}.player-zone{left:18%;right:18%}.deck-zone{top:33%;scale:.55}.discard-zone{top:33%;scale:.55}.transfer-zone{bottom:140px;right:9%}.quick-home{margin-top:12px}.start-cards{display:none}.home-heading h1{font-size:40px}.quick-start{max-width:430px}.quick-play{height:56px}.quick-start .online-buttons button{padding:12px}.rules-summary{padding:12px 0}}
.wallet-button{border:1px solid #e8c77b35;border-radius:20px;padding:9px 14px;color:#f0d493;font-size:13px;white-space:nowrap;background:#e8c77b08}.wallet-balances p{display:flex;justify-content:space-between;padding:12px;background:#ffffff07;border-radius:9px}.wallet-balances strong{color:var(--gold)}.lobby-stake{color:var(--gold)!important}
@media(max-width:640px){.wallet-button{font-size:11px;padding:8px 9px}.header-actions{gap:5px}.in-game .header-actions{gap:5px}.brand-sub{display:none}header{padding:0 14px}}
.hand{height:calc(var(--card-w)*1.45 + 22px + (var(--rows,1) - 1)*var(--card-w)*.5)}
.table-status{bottom:calc(var(--player-height,240px) + 12px)}
.battle,.battle.has-cards,.battle:has(.empty-table){bottom:calc(var(--player-height,240px) + 100px)}
.transfer-zone{bottom:calc(var(--player-height,240px) + 93px)}
@media(max-height:500px) and (min-width:641px){.table-status{bottom:calc(var(--player-height,140px) + 17px)}.battle,.battle.has-cards,.battle:has(.empty-table){bottom:calc(var(--player-height,140px) + 63px)}.transfer-zone{bottom:calc(var(--player-height,140px) + 19px)}}
@media(max-height:620px) and (max-width:640px){.arena{--card-w:78px;--table-card-w:62px}.player-caption>span:last-child{display:none}.battle.has-cards{top:139px}.deck-zone{top:81px;scale:.55}.discard-zone{top:85px;scale:.6}.opponent-hand{height:26px}.mini-back{width:20px;height:29px}.battle:has(.empty-table){top:113px}.table-status{padding:7px 5px}.status-heading strong{font-size:13px}.turn-route{font-size:9px}.actions .primary,.actions .secondary{padding:9px 12px}.player-caption{margin-bottom:3px}}
.ad-paused #app{pointer-events:none}.ad-paused::after{content:'Рекламная пауза';position:fixed;inset:0;z-index:2000;background:#10291ee8;display:grid;place-items:center;color:#ecd398;font:600 18px Onest,Arial,sans-serif}
.last-move{display:block;text-align:center;font-size:11px;color:#e2d3a2;margin-top:2px;line-height:1.2}.opponent:has(.last-move) .opponent-hand{opacity:.65}
@media(max-width:640px){.last-move{font-size:9px;margin-top:4px}}
@media(max-height:500px) and (min-width:641px){.last-move{position:absolute;left:0;right:0;font-size:9px}}
.battle:has(.empty-table){overflow:hidden;min-height:0}
.battle.has-cards{gap:8px;min-height:0;overflow:visible}
@media(max-width:640px){.battle.has-cards:has(.pair:nth-child(4)){top:175px;align-content:center}}
@media(max-width:640px) and (max-height:740px){.battle.has-cards:has(.pair:nth-child(4)){top:147px}}
@media(max-width:640px) and (max-height:620px){.battle.has-cards:has(.pair:nth-child(4)){top:131px}.battle .target-label{font-size:7px}.battle:has(.empty-table) .empty-table small{display:none}.battle:has(.empty-table) .empty-table>span{font-size:26px}.battle:has(.empty-table) .empty-table p{margin:6px 0;font-size:10px}}
.battle.has-cards:has(.pair:nth-child(4)){display:grid;grid-template-columns:repeat(3,max-content);justify-content:center;align-items:center}
@media(max-height:500px) and (min-width:641px){.battle.has-cards:has(.pair:nth-child(4)){display:flex}}
.battle.dense-table{overflow:auto;align-content:start}
@media(max-width:640px) and (max-height:620px){.battle.has-cards:has(.pair:nth-child(4)){top:60px;bottom:calc(var(--player-height,195px) + 70px)}.battle.has-cards:has(.pair:nth-child(4)) .pair{height:calc(var(--table-card-w)*1.45 + 10px)}.battle.has-cards:has(.pair:nth-child(4)) .defense{top:9px;left:9px}.arena:has(.pair:nth-child(4)) .opponent-hand,.arena:has(.pair:nth-child(4)) .last-move{display:none}.arena:has(.pair:nth-child(4)) .deck-zone{top:65px;scale:.45}.arena:has(.pair:nth-child(4)) .discard-zone{display:none}}
.hand-sort-button{flex-shrink:0;white-space:nowrap;border:1px solid #e8c77b4a;border-radius:9px;padding:7px 10px;color:#efda9b;background:#18392c;font-size:11px;letter-spacing:0}
.player-caption{gap:10px}.player-caption>span:first-child{white-space:nowrap}.player-caption>span:nth-child(2){font-size:11px;color:#bad0bd;letter-spacing:0;flex:1;text-align:center}
.hand .card.unplayable{filter:brightness(.82) saturate(.75)}.hand .card.drag-source{pointer-events:none}
.hand .card.reorder-before::after,.hand .card.reorder-after::after{content:'';position:absolute;left:-7px;top:4px;bottom:4px;width:4px;background:#ffe29d;border-radius:4px;box-shadow:0 0 12px #f9d58a;z-index:101}
.hand .card.reorder-after::after{left:auto;right:-7px}.hand.reordering{border-radius:18px;background:#e8c77b0a}
.hand-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hand-modes button{padding:16px;text-align:left;border:1px solid #ffffff25;border-radius:12px;background:#ffffff05}.hand-modes button.active{border-color:#e8c77b;background:#e8c77b14}.hand-modes strong{display:block;font-size:14px}.hand-modes small{display:block;margin-top:8px;font-size:11px;color:#b2c6b8;line-height:1.5}
@media(max-width:640px){.player-caption>span:nth-child(2){display:none}.player-caption{justify-content:space-between;margin:0 0 5px}.hand-sort-button{font-size:10px;padding:6px 8px}.hand-modes{grid-template-columns:1fr}.hand-modes button{padding:12px}.hand-modes small{margin-top:4px}}
@media(max-height:500px) and (min-width:641px){.player-caption{display:flex;margin-bottom:0}.player-caption>span:first-child,.player-caption>span:nth-child(2){display:none}.hand-sort-button{position:absolute;left:-25%;bottom:15px;font-size:9px}}
.pace-link{padding:0;color:inherit;font-size:inherit;text-decoration:underline;text-decoration-color:#e8c77b70;text-underline-offset:3px}
.hand{height:calc(var(--card-w)*1.45 + 22px + (var(--rows,1) - 1)*var(--hand-row-step,39px))}
@media(max-width:640px) and (max-height:620px){
  .arena.large-hand .opponent-hand,.arena.large-hand .last-move{display:none}
  .arena.large-hand .battle,.arena.large-hand .battle:has(.empty-table),.arena.large-hand .battle.has-cards{top:50px;bottom:calc(var(--player-height,240px) + 72px);left:64px;right:35px;max-height:none}
  .arena.large-hand .battle .empty-table>span{font-size:18px}
  .arena.large-hand .battle .empty-table p{font-size:9px;margin:3px 0}
}

}
