:root{--felt:#1d6b49;--felt-dark:#0c3a26;--bg:#171009;--panel:#2a1f13;--panel-light:#3c2d1b;--text:#f3ecdc;--muted:#b5a385;--accent:#f5b342;--danger:#d9534f;--card-bg:#faf5e6;--card-red:#c0392b;--card-black:#262115;--glow:#ffc6696b;--select-lift:26px;--wood-hi:#3a2917;--wood-lo:#23170d;--brass-line:#f5b34238;--brass-fill:linear-gradient(180deg, #ffcb63, #eda32e);--radius:10px;--space-2:2px;--space-4:4px;--space-8:8px;--space-16:16px;--space-32:32px;--space-48:48px;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--card-w:78px;--card-h:113px;--card-r:9px;--hand-overlap:calc(var(--card-w) * .36);--table-scale:.72;--rank-k:.2;--suit-k:.31;--back-scale:.5;--back-w:calc(var(--card-w) * var(--back-scale));--back-h:calc(var(--card-h) * var(--back-scale));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}@supports (height:100svh){html,body,#root{height:100svh}}html{overscroll-behavior:none;overflow:hidden}body{background:var(--bg);color:var(--text);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2,.trump-intro-label,.result-card h2{letter-spacing:.02em;font-family:Georgia,Times New Roman,serif}.card:focus,.pair:focus,.trump-intro:focus{outline:none}.card:focus-visible,.pair:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{font:inherit;color:inherit;background:var(--panel-light);border-radius:var(--radius);cursor:pointer;border:1px solid #0000;padding:.6em 1.1em;transition:background .15s,transform 50ms}button:hover:not(:disabled){background:#4d3a23}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{color:#2a1c00;background:linear-gradient(#ffcb63,#eda32e);font-weight:600;box-shadow:0 2px 8px #00000059}button.primary:hover:not(:disabled){background:linear-gradient(#ffd67d,#f5ad38)}button.danger{border-color:var(--danger);color:#ffb3b1;background:0 0}button.danger:hover:not(:disabled){background:#d9534f2e}input{font:inherit;color:inherit;border-radius:var(--radius);background-color:#1d1409;border:1px solid #4a3820;width:100%;padding:.6em .8em;transition:border-color .15s}input:hover:not(:disabled){border-color:#6a5230}input:focus{outline:2px solid var(--accent);outline-offset:-1px}input::placeholder{color:#b5a3858c}input[type=checkbox]{accent-color:var(--accent);cursor:pointer;width:1.05em;height:1.05em}label,.field{margin-bottom:var(--space-16);display:block}label>span,.field>span{color:var(--muted);margin-bottom:var(--space-4);font-size:.85rem;display:block}.login-divider{align-items:center;gap:var(--space-8);margin:var(--space-16) 0;color:var(--muted);font-size:.82rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:#f3ecdc24;flex:1;height:1px}.screen,.center-screen{background:radial-gradient(90% 60% at 50% 0,#ffc77626,#ffc77600 70%),repeating-linear-gradient(45deg,#ffffff03 0 2px,#00000003 2px 4px),radial-gradient(140% 110% at 50% 18%,#15503a 0%,#0d3624 42%,#072113 76%,#04130a 100%)}.screen{flex-direction:column;height:100%;display:flex}.center-screen{height:100%;padding:calc(var(--space-16) + var(--safe-top)) calc(var(--space-16) + var(--safe-right)) calc(var(--space-16) + var(--safe-bottom)) calc(var(--space-16) + var(--safe-left));place-items:center;display:grid;overflow-y:auto}.panel{background:linear-gradient(180deg, #ffe2aa0f, #ffe2aa00 45%), linear-gradient(180deg, var(--wood-hi), var(--wood-lo));border:1px solid var(--brass-line);padding:var(--space-16);border-radius:14px;width:100%;max-width:380px;box-shadow:0 14px 34px #00000080,inset 0 1px #ffe6be12}.panel h1{margin:0 0 var(--space-16);font-size:1.5rem}button.wide{width:100%}.error-box{border:1px solid var(--danger);border-radius:var(--radius);padding:var(--space-8) var(--space-16);margin-bottom:var(--space-16);background:#3a1512;font-size:.9rem}.notice-box{color:var(--accent);border-radius:var(--radius);padding:var(--space-8) var(--space-16);margin-bottom:var(--space-16);cursor:pointer;background:#33250c;border:1px solid #f0b42973;font-size:.9rem}.link-button{color:var(--accent);background:0 0;border:none;padding:0;text-decoration:underline}.link-button:hover:not(:disabled){color:#ffd67d;background:0 0}.topbar{align-items:center;gap:var(--space-8);padding:calc(var(--space-8) + var(--safe-top)) calc(var(--space-16) + var(--safe-right)) var(--space-8) calc(var(--space-16) + var(--safe-left));border-bottom:1px solid var(--brass-line);z-index:1;background:linear-gradient(#2f2113,#1d140b);grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);display:grid;position:relative;box-shadow:0 4px 14px #00000073}.topbar h2{color:#f6e6c2;text-align:center;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.1rem;overflow:hidden}.topbar-side{align-items:center;gap:var(--space-8);justify-self:start;min-width:0;display:flex}.topbar-side.right{justify-self:end}.topbar-side span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:9em;font-size:.9rem;overflow:hidden}.topbar-side button{white-space:nowrap;flex:none}@media (width<=480px){.topbar-side span{display:none}}.content{padding:var(--space-16) calc(var(--space-16) + var(--safe-right)) calc(var(--space-16) + var(--safe-bottom)) calc(var(--space-16) + var(--safe-left));flex:1;overflow-y:auto}.lobby{gap:var(--space-16);max-width:680px;margin:0 auto;display:grid}.lobby>.error-box,.lobby>.notice-box{margin-bottom:0}.lobby-start{gap:var(--space-8);max-width:none;display:grid}.lobby-actions{gap:var(--space-8);grid-template-columns:1fr 1fr;display:grid}.code-input{letter-spacing:.25em;color:var(--accent);font-family:ui-monospace,monospace;font-size:1.05rem}.code-input::placeholder{letter-spacing:normal;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:1rem}.section-title{align-items:center;gap:var(--space-8);margin:var(--space-8) 0 0;letter-spacing:.1em;text-transform:uppercase;color:#efdcb4;font-family:Georgia,Times New Roman,serif;font-size:.95rem;font-weight:400;display:flex}.section-title:after{content:"";background:linear-gradient(90deg, var(--brass-line), transparent);flex:1;height:1px}.section-title .count{letter-spacing:normal;color:var(--accent);background:#f5b34229;border-radius:999px;padding:.1em .55em;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:.72rem}.room-list{gap:var(--space-8);display:grid}.room-card{align-items:center;column-gap:var(--space-16);row-gap:var(--space-4);padding:var(--space-16);border-radius:var(--radius);background:linear-gradient(180deg, var(--wood-hi), var(--wood-lo));border:1px solid #f5b3421f;grid-template-columns:7.5rem minmax(0,1fr) auto;grid-template-areas:"code info actions""status seats actions";transition:border-color .15s;display:grid;box-shadow:0 6px 16px #00000059,inset 0 1px #ffe6be0d}.room-card:hover{border-color:#f5b34259}.room-card.mine{box-shadow:inset 3px 0 0 var(--accent), 0 6px 16px #00000059}.room-card .code{letter-spacing:.1em;color:var(--accent);grid-area:code;font-family:ui-monospace,monospace;font-size:1.2rem;font-weight:600}.room-status{white-space:nowrap;border-radius:999px;grid-area:status;justify-self:start;padding:.1em .6em;font-size:.72rem}.room-status.open{color:#9be8c2;background:#40b47833}.room-status.playing{color:var(--accent);background:#f5b34229}.room-status.paused{color:var(--muted);background:#ffffff1a}.room-status.full{color:#ffb3b1;background:#d9534f2e}.room-info{align-items:baseline;gap:var(--space-8);flex-wrap:wrap;grid-area:info;min-width:0;display:flex}.room-mode{font-family:Georgia,Times New Roman,serif;font-size:1.05rem}.room-meta{color:var(--muted);font-size:.82rem}.seats{align-items:center;gap:var(--space-4);grid-area:seats;display:flex}.seat{border:1.5px solid #f5b34273;border-radius:50%;width:10px;height:10px}.seat.taken{background:var(--brass-fill);box-shadow:0 0 6px var(--glow);border-color:#eda32e}.seats-text{margin-left:var(--space-4);color:var(--muted);font-size:.8rem}.room-actions{gap:var(--space-8);grid-area:actions;display:flex}.room-actions button:last-child{min-width:8.5em}.empty-tables{justify-items:center;gap:var(--space-16);padding:var(--space-32) var(--space-16);text-align:center;color:var(--muted);display:grid}.empty-tables p{max-width:340px;margin:0}.empty-fan{--scale:.55;display:flex}.empty-fan .card{transform-origin:50% 120%}.empty-fan .card:first-child{margin-right:calc(var(--card-w) * var(--scale) * -.55);transform:rotate(-14deg)}.empty-fan .card:nth-child(3){margin-left:calc(var(--card-w) * var(--scale) * -.55);transform:rotate(14deg)}.login{gap:var(--space-16);width:100%;max-width:380px;display:grid}.brand{text-align:center;justify-items:center;display:grid}.brand-fan{--scale:.72;width:calc(var(--card-w) * var(--scale) * 3.2);height:calc(var(--card-h) * var(--scale) * 1.18);opacity:0;transition:opacity .18s ease-out;position:relative}.brand-fan.open{opacity:1}.brand-fan .card{margin-left:calc(var(--card-w) * var(--scale) / -2);transform-origin:50% 190%;will-change:transform;transition:transform .5s cubic-bezier(.22,1,.36,1);position:absolute;bottom:0;left:50%;transform:rotate(0);box-shadow:0 0 0 1px #00000059,0 6px 14px #00000080}.brand-fan.open .card{transform:rotate(calc((var(--i) - 1.5) * 11deg))}.brand-title{margin:var(--space-8) 0 0;letter-spacing:.08em;background:linear-gradient(#ffe6ad,#f5b342 55%,#c7801d);color:#0000;filter:drop-shadow(0 2px 6px #0000008c);-webkit-background-clip:text;background-clip:text;font-size:2.6rem;line-height:1.1}.login-fields{margin-top:var(--space-16)}@media (prefers-reduced-motion:reduce){.brand-fan,.brand-fan .card{transition:none}}.table-screen{background:radial-gradient(ellipse 120% 80% at 50% 26%, #ffc7762b, #ffc77600 62%), repeating-linear-gradient(45deg, #ffffff03 0 2px, #00000003 2px 4px), radial-gradient(ellipse 140% 110% at 50% 42%, var(--felt) 0%, #155038 46%, var(--felt-dark) 74%, #051d12 100%);height:100%;padding-top:var(--safe-top);padding-left:var(--safe-left);padding-right:var(--safe-right);grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);display:grid;overflow:hidden}.table-screen>*{min-width:0}.opponents{--opp-gap:var(--space-8);justify-content:center;gap:var(--opp-gap);padding:var(--space-8);flex-wrap:wrap;display:flex}.opponents.has-corner{padding-left:calc(var(--space-8) + 40px);padding-right:calc(var(--space-8) + 40px)}.opponent{flex:0 0 calc((100% - (var(--opp-cols,1) - 1) * var(--opp-gap)) / var(--opp-cols,1));border-radius:var(--radius);min-width:0;max-width:300px;padding:var(--space-4) var(--space-8);text-align:center;background:#0c060266;border:2px solid #0000;font-size:.8rem;container-type:inline-size}.opponent.attacker{border-color:var(--accent);box-shadow:0 0 14px #f5b34252}.opponent.defender{border-color:#5ba8dd;box-shadow:0 0 14px #5ba8dd47}.opponent.offline{opacity:.45}.opponent.partner{background:linear-gradient(#40b4781a,#0c060266)}.opponent.partner:not(.attacker):not(.defender){border-color:#40b478b3;box-shadow:0 0 12px #40b47840}.partner-tag{z-index:3;color:#eafff3;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;pointer-events:none;background:#2f8f5b;border-radius:999px;padding:.12em .7em;font-size:.62rem;font-weight:700;position:absolute;top:calc(100% - 2px);left:50%;transform:translate(-50%);box-shadow:0 1px 4px #00000073}.pair.help-asked:before{content:"";pointer-events:none;border:2px dashed #40b478d9;border-radius:8px;position:absolute;inset:-4px}.help-tag{z-index:4;color:#eafff3;white-space:nowrap;pointer-events:none;background:#2f8f5b;border-radius:999px;padding:.05em .5em;font-size:.6rem;font-weight:700;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.badge.partner{color:#9be8c2;background:#40b4784d;margin-left:.35em}.opponent.out{opacity:.3;text-decoration:line-through}.opponent .name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.opponent .cards{color:var(--muted);font-size:.75rem}.opp-hand{margin:var(--space-4) 0 var(--space-2);min-height:calc(var(--back-h) * 1.22);justify-content:center;align-items:flex-start;display:flex;position:relative}.opp-card{width:var(--back-w);height:var(--back-h);border-radius:calc(var(--card-r) * var(--back-scale));--fan-angle:0deg;--fan-drop:0;transform-origin:50%;transform:translateY(calc(var(--fan-drop) * var(--back-h))) rotate(var(--fan-angle));will-change:transform;background:repeating-linear-gradient(45deg,#f0d69c33 0 1.5px,#0000 1.5px 6px),repeating-linear-gradient(-45deg,#f0d69c33 0 1.5px,#0000 1.5px 6px),linear-gradient(160deg,#7e2f36,#5c1f26);flex:none;transition:transform .24s cubic-bezier(.2,.8,.3,1);box-shadow:0 0 0 1.5px #f0e3c8cc,0 2px 4px #00000059}.opp-card+.opp-card,.opp-hand.revealed .card+.card{margin-left:min(calc(var(--back-w) * -1 * var(--opp-overlap,.36)), calc((100cqi - var(--back-w)) / max(1, var(--shown,1) - 1) - var(--back-w)))}.opp-hand.crowded{--back-scale:.34;--opp-overlap:.5}.opp-hand.empty{color:var(--muted);font-size:.7rem;font-style:italic}.opp-hand.revealed .card{--scale:var(--back-scale);--fan-angle:0deg;--fan-drop:0;transform-origin:50%;transform:translateY(calc(var(--fan-drop) * var(--card-h) * var(--scale))) rotate(var(--fan-angle));flex:none}.opp-hand.revealed{flex-direction:column;align-items:center}.reveal-row{justify-content:center;align-items:flex-start;display:flex}.reveal-row+.reveal-row{margin-top:calc(var(--back-h) * -.4)}.opp-more{color:var(--muted);margin-left:var(--space-4);font-size:.65rem}.table-center{gap:var(--space-8);padding:0 var(--space-8);grid-template-columns:82px 1fr;align-items:center;min-height:0;display:grid;overflow:visible clip}.deck-zone{gap:var(--space-8);margin-top:calc(var(--card-h) * .08);color:#f3ecdccc;border-radius:var(--radius);padding:var(--space-8) var(--space-4);text-align:center;--scale:var(--table-scale);background:#0c060252;border:1px solid #ffcd821f;align-content:center;align-self:start;justify-items:center;font-size:.75rem;display:grid}.deck-zone-stacks{align-items:center;gap:var(--space-8);flex-direction:column;display:flex}.discard-stack{width:calc(var(--card-w) * var(--table-scale));height:calc(var(--card-h) * var(--table-scale));position:relative}.discard-stack .card{width:100%;height:100%;position:absolute;inset:0}.deck-stack{isolation:isolate;width:calc(var(--card-w) * var(--table-scale));height:calc(var(--card-h) * var(--table-scale) * 1.12);justify-content:center;align-items:flex-start;display:flex;position:relative}.deck-stack .trump-card,.trump-placeholder{z-index:1;position:absolute;top:0;left:0}.deck-stack .trump-card{--corner-boost:1.25}.deck-stack .deck-pile{z-index:2}.deck-stack .hidden-trump{top:calc(var(--card-h) * var(--table-scale) * -.06);left:calc(var(--card-w) * var(--table-scale) * .16);z-index:0;width:calc(var(--card-w) * var(--table-scale));height:calc(var(--card-h) * var(--table-scale));position:absolute;transform:rotate(7deg)}.deck-own{color:var(--muted);font-size:.72rem}.trump-placeholder{width:calc(var(--card-w) * var(--table-scale));height:calc(var(--card-h) * var(--table-scale));border-radius:calc(var(--card-r) * var(--table-scale));font-size:calc(var(--card-w) * var(--table-scale) * .42);border:2px dashed #f3ecdc4d;place-items:center;display:grid}.deck-pile{top:calc(var(--card-h) * var(--table-scale) * .245);transform-origin:50%;filter:drop-shadow(0 3px 7px #00000080);position:absolute;left:50%;transform:translate(-50%)rotate(90deg)}.deck-label{align-items:center;gap:var(--space-4);white-space:nowrap;flex-direction:column;display:flex}.trump-suit{font-size:1.9rem;line-height:1}.deck-count{font-variant-numeric:tabular-nums;white-space:nowrap;background:#f5b3421f;border:1px solid #f5b34259;border-radius:999px;align-items:center;gap:.12em;height:1.7em;padding:0 .5em;font-size:.85rem;font-weight:600;line-height:1;display:inline-flex}.deck-left,.deck-discard{min-width:2ch;display:inline-block}.deck-left{color:var(--accent);text-align:end}.deck-discard{text-align:start}.deck-left.empty{color:var(--muted)}.deck-sep,.deck-discard{color:var(--muted);font-weight:500}@media (width<=420px){.table-center{gap:var(--space-8);padding-left:var(--space-8);padding-right:var(--space-8);grid-template-columns:66px 1fr}}.pairs{gap:var(--space-8);margin-top:calc(var(--card-h) * .08);min-height:0;max-height:100%;padding-bottom:var(--space-8);--scale:var(--table-scale);flex-wrap:wrap;place-content:flex-start center;align-self:start;display:flex;position:relative;overflow:visible clip}.pair{width:calc(var(--card-w) * var(--table-scale) * 1.22);height:calc(var(--card-h) * var(--table-scale) * 1.2);position:relative}.pair .defense{left:calc(var(--card-w) * var(--table-scale) * .22);top:calc(var(--card-h) * var(--table-scale) * .2);position:absolute}.pair.targetable{cursor:pointer}.pair.targetable:after{content:"";border:2px dashed var(--accent);pointer-events:none;border-radius:8px;animation:1.2s ease-in-out infinite pulse;position:absolute;inset:-4px}@keyframes pulse{50%{opacity:.45}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes zoom-in{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:none}}@keyframes flip-trump{0%{transform:rotateY(180deg)}50%{transform:rotateY(90deg)scale(1.06)}to{transform:rotateY(0)}}.opp-card{animation:.2s ease-out both fade-in}.flight{z-index:35;pointer-events:none;will-change:transform;position:fixed}.flight-inner{will-change:transform;perspective:800px;width:100%;height:100%;position:relative}.flight-flip{width:100%;height:100%;transform-style:preserve-3d;position:relative}.flight-face{backface-visibility:hidden;position:absolute;inset:0}.flight-face.back{transform:rotateY(180deg)}.flight-shadow{border-radius:var(--card-r);opacity:0;will-change:opacity;position:absolute;inset:0;box-shadow:0 12px 16px #00000061}.flight .card{width:100%;height:100%}@keyframes land-reveal{0%{opacity:0}to{opacity:1}}.hand .card.landing,.pairs .card.landing,.discard-stack .card.landing,.opp-card.landing,.pile-pair.landing,.chest-tile.landing{animation:.12s ease-out backwards land-reveal}@media (prefers-reduced-motion:reduce){.opp-card,.pair.targetable:after{animation:none}.opp-card{transition:none}.flight{display:none}}.hand-zone{padding:var(--space-4) var(--space-8) calc(var(--card-h) * .09 + var(--safe-bottom));background:linear-gradient(#0a05021f,#0a050280);flex-direction:column;display:flex}.hand-zone .hand-hint{padding-bottom:var(--space-8);order:1}.hand-zone .actions{padding:0 0 var(--space-16);min-height:calc(2.9rem + var(--space-16));order:2;align-items:center}.hand-zone .actions button{height:2.9rem;padding-top:0;padding-bottom:0}.hand-zone .hand{order:3}.hand-zone .hand-hint,.hand-zone .actions{transition:transform .16s ease-out}.hand-zone.has-selection .hand-hint,.hand-zone.has-selection .actions{transform:translateY(calc(-1 * var(--select-lift)))}.hand-hint{text-align:center;color:#f3ecdcc7;min-height:1.2em;font-size:.85rem}.table-screen.intro-open .hand-hint,.table-screen.intro-open .actions{visibility:hidden}.hand{padding:0 var(--space-8);min-height:calc(var(--card-h) * 1.16);justify-content:center;align-items:flex-start;display:flex;position:relative;overflow:visible}.hand .card{flex:0 0 var(--card-w);will-change:transform;--fan-angle:0deg;--fan-drop:0;transform-origin:50%;transform:translateY(calc(var(--fan-drop) * var(--card-h))) rotate(var(--fan-angle));transition:transform .16s ease-out}.hand .card+.card{margin-left:calc(-1 * var(--hand-overlap))}.hand.two-rows{flex-wrap:wrap;align-content:flex-start}.hand-break{flex-basis:100%;height:0}.hand .card.lower{margin-top:calc(var(--card-h) * -.52)}.hand .card{z-index:1;position:relative}.hand .card.playable{cursor:pointer;box-shadow:0 0 0 1px #00000059, 0 0 13px 2px var(--glow), 0 2px 6px #00000073}.hand .card.playable:hover{transform:translateY(calc(var(--fan-drop) * var(--card-h) - 16px)) rotate(var(--fan-angle))}.hand .card.selected{transform:translateY(calc(var(--fan-drop) * var(--card-h) - var(--select-lift))) rotate(var(--fan-angle));box-shadow:0 0 0 1px #00000059, 0 0 0 3px var(--accent), 0 8px 18px #0000008c}.actions{gap:var(--space-8);padding-top:var(--space-8);flex-wrap:wrap;justify-content:center;display:flex}.actions button{padding:.55em 1.2em}.card{width:calc(var(--card-w) * var(--scale,1));height:calc(var(--card-h) * var(--scale,1));border-radius:calc(var(--card-r) * var(--scale,1));background:var(--card-bg);color:var(--card-black);-webkit-user-select:none;user-select:none;font-weight:700;position:relative;overflow:hidden;box-shadow:0 0 0 1px #00000059,0 2px 6px #00000073}.card.red{color:var(--card-red)}.card .corner{padding:calc(var(--card-w) * var(--scale,1) * .07) calc(var(--card-w) * var(--scale,1) * .08);justify-items:center;display:grid;position:absolute;top:0;left:0}.card .rank{font-size:calc(var(--card-w) * var(--scale,1) * var(--rank-k) * var(--corner-boost,1));line-height:1}.card .suit{font-size:calc(var(--card-w) * var(--scale,1) * var(--rank-k) * .85 * var(--corner-boost,1));line-height:1}.card .pip{font-size:calc(var(--card-w) * var(--scale,1) * var(--suit-k) * var(--corner-boost,1));place-items:center;line-height:1;display:grid;position:absolute;inset:0}.card.illustrated .art{object-fit:cover;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.card.illustrated .corner{background:radial-gradient(at 0 0,#fbfbf7f0 58%,#fbfbf700 78%)}.card.joker{color:#f0c454;background:#120806}.card.joker.red{color:#ff6b57}.card.joker .corner{background:radial-gradient(at 0 0,#0c0604e6 58%,#0c060400 78%)}.card.back{background:radial-gradient(at 50% 38%,#ffd88c29,#0000 72%),repeating-linear-gradient(45deg,#f0d69c2e 0 2px,#0000 2px 9px),repeating-linear-gradient(-45deg,#f0d69c2e 0 2px,#0000 2px 9px),linear-gradient(160deg,#7e2f36,#5c1f26);border:2px solid #f0e3c8}.card.small{width:calc(var(--card-w) * .72);height:calc(var(--card-h) * .72)}.card.small .rank{font-size:.75rem}.card.small .suit{font-size:.65rem}.card.small .pip{font-size:1.1rem}.banner{text-align:center;padding:var(--space-8) var(--space-16);background:#0006;font-size:.9rem}.banner.warn{color:var(--accent);background:#f0b42933}.banner.error{background:#d9534f40}.chat-panel{z-index:40;right:calc(var(--space-8) + var(--safe-right));bottom:calc(var(--space-8) + var(--safe-bottom));width:min(320px, calc(100vw - var(--space-16)));background:var(--panel);padding:var(--space-8);gap:var(--space-8);border-radius:12px;flex-direction:column;max-height:45dvh;display:flex;position:fixed;box-shadow:0 6px 20px #00000073}.chat-lines{gap:var(--space-4);font-size:.85rem;display:grid;overflow-y:auto}.chat-lines .who{color:var(--accent);font-weight:600}.chat-toggle,.quit-toggle{z-index:40;right:calc(var(--space-8) + var(--safe-right));bottom:calc(var(--space-8) + var(--safe-bottom));border-radius:999px;padding:.6em 1em;position:fixed}.quit-toggle{color:var(--muted);background:#0c06028c;border-color:#f3ecdc29}.quit-toggle:hover:not(:disabled){color:var(--text);background:#0c0602bf}.close-room-corner{z-index:40;top:calc(var(--space-8) + var(--safe-top));left:calc(var(--space-8) + var(--safe-left));color:var(--muted);background:#0c06028c;border-color:#f3ecdc29;border-radius:999px;justify-content:center;align-items:center;padding:.45em .65em;line-height:1;display:inline-flex;position:fixed}.close-room-corner:hover:not(:disabled){color:var(--text);background:#0c0602bf}.close-room-corner.danger{border-color:var(--danger);color:#ffb3b1;background:#280806d9;padding:.45em .9em}.chat-badge{background:var(--danger);color:#fff;text-align:center;border-radius:999px;min-width:1.5em;padding:.15em .35em;font-size:.72rem;font-weight:700;line-height:1.2;animation:.18s ease-out both zoom-in;position:absolute;top:-.45em;right:-.35em;box-shadow:0 1px 4px #0006}.chat-bubble{z-index:45;pointer-events:none;max-width:min(220px, calc(100vw - var(--space-16)));padding:var(--space-4) var(--space-8);background:var(--card-bg);color:var(--card-black);text-align:center;transform-origin:var(--tail-x,50%) 0;animation:zoom-in .18s ease-out both, bubble-out .35s ease-in var(--bubble-out,3s) forwards;border-radius:12px;font-size:.78rem;font-weight:500;line-height:1.3;position:fixed;box-shadow:0 4px 14px #00000073}.chat-bubble:before{content:"";top:-5px;left:var(--tail-x,50%);background:inherit;border-radius:2px;width:10px;height:10px;position:absolute;transform:translate(-50%)rotate(45deg)}.chat-bubble-text{-webkit-line-clamp:3;line-clamp:3;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;position:relative;overflow:hidden}.chat-bubble.to-me{box-shadow:0 0 0 2px var(--accent), 0 4px 14px #00000073}@keyframes bubble-out{to{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.chat-bubble{animation:bubble-out 10ms linear var(--bubble-out,3s) forwards}}.chat-lines .bot-mark{width:1.3em;height:1.3em}.bot-mark{object-fit:contain;vertical-align:-.4em;width:1.5em;height:1.5em;margin-right:.25em}.bot-mark.trailing{margin-left:.3em;margin-right:0}button .bot-mark,.opponent .bot-mark,.player-row .bot-mark{vertical-align:middle;width:1.9em;height:1.9em}button .bot-mark{margin-block:-.4em}.icon-button{justify-content:center;align-items:center;padding:.45em .65em;line-height:1;display:inline-flex}@keyframes spin{to{transform:rotate(360deg)}}.icon-spin{animation:.9s linear infinite spin}@media (prefers-reduced-motion:reduce){.icon-spin{animation:none}}.trump-intro{place-content:center;justify-items:center;gap:var(--space-16);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;cursor:pointer;background:#110a04ed;animation:.25s ease-out both fade-in;display:grid;position:fixed;inset:0}.trump-intro-card{--card-w:132px;--card-h:191px;filter:drop-shadow(0 10px 26px #0009);perspective:900px;animation:.25s ease-out both fade-in}.trump-flip{width:var(--card-w);height:var(--card-h);transform-style:preserve-3d;animation:.7s cubic-bezier(.45,0,.25,1) .2s both flip-trump;position:relative}.trump-face{backface-visibility:hidden;position:absolute;inset:0}.trump-face.back{transform:rotateY(180deg)}.trump-intro-label{font-size:1.35rem;font-weight:600;animation:.35s ease-out .2s both zoom-in}@media (width<=420px){.trump-intro-card{--card-w:104px;--card-h:150px}.trump-intro-label{font-size:1.1rem}}@media (prefers-reduced-motion:reduce){.trump-intro,.trump-intro-card,.trump-flip,.trump-intro-label{animation:none}}.result-overlay{padding:var(--space-16);z-index:60;background:#000000bf;place-items:center;display:grid;position:fixed;inset:0}.result-card{background:var(--panel);padding:var(--space-16);text-align:center;border-radius:14px;max-width:340px}.result-card h2{margin:0 0 var(--space-8)}.players-list{gap:var(--space-4);margin:var(--space-16) 0;display:grid}.player-row{align-items:center;gap:var(--space-8);background:var(--panel-light);border-radius:var(--radius);padding:var(--space-8);font-size:.9rem;display:flex}.player-row .grow{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.badge{background:#ffffff1f;border-radius:999px;padding:.15em .5em;font-size:.72rem}.badge.ready{color:#9be8c2;background:#40b4784d}.badge.host{color:var(--accent);background:#f0b42940}.badge.offline{color:#ffb3b1;background:#d9534f40}.player-row.bot-seat{color:var(--muted);background:0 0;border:1px dashed #f5b3424d}.player-row.bot-seat .bot-mark{opacity:.7}.lobby-bots{margin-bottom:var(--space-8);padding-top:var(--space-8);border-top:1px solid #f3ecdc14}.row{gap:var(--space-8);align-items:center;display:flex}.row .grow{flex:1}.settings-panel{max-width:520px;margin:0 auto}.settings-section{margin-bottom:var(--space-16)}.settings-section+.settings-section{padding-top:var(--space-16);border-top:1px solid #f3ecdc14}.settings-title{align-items:center;gap:var(--space-8);margin:0 0 var(--space-8);letter-spacing:.1em;text-transform:uppercase;color:#efdcb4;font-family:Georgia,Times New Roman,serif;font-size:.95rem;font-weight:400;display:flex}.suit-mark{color:var(--text);font-size:1.1rem}.suit-mark.red{color:#e8736a}.settings-section .field{margin:var(--space-16) 0 0}.segmented{gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius);background:#1d1409;border:1px solid #4a3820;display:flex}.segmented button{min-width:0;color:var(--muted);border-radius:calc(var(--radius) - 3px);font-size:var(--seg-font,.9rem);white-space:nowrap;text-overflow:ellipsis;background:0 0;flex:auto;padding:.5em .35em;overflow:hidden}.segmented button:hover:not(:disabled):not(.on){color:var(--text);background:#f5b34214}.segmented button.on{color:var(--accent);background:linear-gradient(#4a361f,#35261a);font-weight:600;box-shadow:inset 0 0 0 1px #f5b34299,0 1px 4px #00000073}.segmented button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.toggle-row{justify-content:space-between;align-items:center;gap:var(--space-16);padding:var(--space-4) 0;display:flex}.toggle-row+.toggle-row{margin-top:var(--space-4)}.toggle-row label{cursor:pointer;margin:0}.toggle-row+.segmented{margin-top:var(--space-8)}.settings-note{margin:var(--space-8) 0 0;color:var(--muted);font-size:.8rem;line-height:1.4}input[type=checkbox].switch{appearance:none;cursor:pointer;background:#1d1409;border:1px solid #4a3820;border-radius:999px;flex:none;width:2.6em;height:1.5em;margin:0;padding:0;transition:background .15s,border-color .15s;position:relative}input[type=checkbox].switch:after{content:"";background:var(--muted);border-radius:50%;width:1.08em;height:1.08em;transition:transform .15s;position:absolute;top:50%;left:.18em;transform:translateY(-50%)}input[type=checkbox].switch:checked{border-color:var(--accent);background:#f5b34238}input[type=checkbox].switch:checked:after{background:var(--brass-fill);transform:translate(1.1em,-50%)}input[type=checkbox].switch:focus{outline:none}input[type=checkbox].switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){input[type=checkbox].switch,input[type=checkbox].switch:after{transition:none}}@media (width<=560px){.lobby-actions{grid-template-columns:1fr}.room-card{row-gap:var(--space-8);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"code status""info seats""actions actions"}.room-status{justify-self:end}.room-actions button:last-child{flex:1}:root{--card-w:82px;--card-h:119px;--card-r:9px;--table-scale:.8;--back-scale:.3;--rank-k:.26}.card .pip{font-size:calc(var(--card-w) * var(--scale,1) * .4 * var(--corner-boost,1))}.opponent{padding:var(--space-4) var(--space-8) var(--space-2);font-size:.75rem}.opponents{--opp-gap:var(--space-4);padding:var(--space-4)}.table-center{align-content:start;gap:var(--space-4);padding:var(--space-4) var(--space-4) 0;grid-template-rows:auto auto;grid-template-columns:1fr;align-items:start}.deck-zone{justify-content:center;align-items:center;gap:var(--space-8);padding:var(--space-4) var(--space-8);flex-flow:wrap;grid-row:1;font-size:.78rem;display:flex}.deck-zone-stacks{gap:var(--space-8);flex-direction:row}.deck-stack{height:calc(var(--card-h) * var(--table-scale));width:calc(var(--card-w) * var(--table-scale) + var(--card-h) * var(--table-scale) + .9rem)}.deck-stack .trump-card,.trump-placeholder{inset:0 auto auto 0}.deck-pile{transform:translate(calc((var(--card-w) - var(--card-h)) * var(--table-scale) / 2), -50%) rotate(90deg);margin-left:0;top:50%;left:auto;right:0}.pairs{padding:var(--space-8) 0 var(--space-4);align-content:flex-start;align-self:start;gap:var(--space-4);grid-row:2;margin-bottom:0}.hand-zone{padding:var(--space-4) var(--space-4) calc(var(--card-h) * .2 + var(--safe-bottom))}.trump-suit{font-size:1.5rem}.chat-toggle,.quit-toggle{top:calc(50% - 1.2em);bottom:auto}.room-card{gap:var(--space-8) var(--space-8);flex-wrap:wrap}.room-card .meta{flex:100%;order:1}.hand-zone .actions{padding-bottom:var(--space-8);min-height:calc(2.6rem + var(--space-8))}.hand-zone .actions button{height:2.6rem}.hand-hint{font-size:.8rem}.table-screen{grid-template-rows:auto auto 1fr}.hand-zone{align-self:end}.chat-toggle,.quit-toggle{padding:.45em .8em;font-size:.85rem}}@media (height<=560px){:root{--card-w:62px;--card-h:90px;--card-r:7px;--table-scale:.66;--back-scale:.3}.opponents{--opp-gap:var(--space-4);padding:var(--space-4)}.opponent{padding:var(--space-2) var(--space-8) var(--space-2);font-size:.7rem}.table-screen{grid-template-rows:auto auto 1fr}.table-center{align-content:start;gap:var(--space-4);padding:var(--space-4) var(--space-4) 0;grid-template-rows:auto auto;grid-template-columns:1fr}.deck-zone{top:var(--space-2);left:var(--space-4);z-index:1;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-8);flex-direction:row;font-size:.7rem;position:absolute}.deck-zone-stacks{gap:var(--space-4);flex-direction:row}.discard-stack{width:calc(var(--card-w) * var(--table-scale) * .7);height:calc(var(--card-h) * var(--table-scale) * .7)}.deck-stack{height:calc(var(--card-h) * var(--table-scale) * .7);width:calc((var(--card-w) + var(--card-h)) * var(--table-scale) * .7 + 1.1rem)}.deck-zone{--scale:calc(var(--table-scale) * .7)}.deck-pile{transform:translate(calc((var(--card-w) - var(--card-h)) * var(--table-scale) * .35 - 4px), -50%) rotate(90deg);margin-left:0;top:50%;left:auto;right:0}.table-center{grid-template-rows:1fr;position:relative}.deck-stack .trump-card,.trump-placeholder{inset:0 0 auto auto}.deck-pile{top:50%;left:calc(var(--card-h) * var(--table-scale) / 2);transform:translate(-50%,-50%)rotate(90deg)}.pairs{padding:var(--space-4) 0 0;align-content:flex-start;align-self:start;gap:var(--space-4);margin-bottom:0;overflow-y:clip}.hand-zone{padding:var(--space-2) var(--space-4) calc(var(--card-h) * .16 + var(--safe-bottom));align-self:end}.hand-zone .actions{padding-bottom:var(--space-4);min-height:calc(2.3rem + var(--space-4))}.hand-zone .actions button{height:2.3rem;font-size:.9rem}.hand-hint{font-size:.75rem}}.opponents.crowded .opponent{padding:var(--space-4);font-size:.72rem}@media (width>=900px){:root{--card-w:144px;--card-h:209px;--card-r:16px}.content{padding:var(--space-32) calc(var(--space-32) + var(--safe-right)) calc(var(--space-32) + var(--safe-bottom)) calc(var(--space-32) + var(--safe-left))}.pairs{gap:var(--space-8)}:root{--rank-k:.14;--suit-k:.23}.hand-hint{font-size:.95rem}.opponent{padding:var(--space-8) var(--space-8) var(--space-4);font-size:.95rem}.opponent .cards{font-size:.85rem}.opponents.crowded .opponent{padding:var(--space-4) var(--space-8);font-size:.82rem}.opp-hand.crowded{--back-scale:.26}.table-center{grid-template-columns:calc((var(--card-h) + var(--card-w)) * var(--table-scale) + 3.5rem) 1fr;gap:var(--space-16);padding-left:var(--space-16);padding-right:var(--space-16)}.deck-zone{padding:var(--space-16) var(--space-8);font-size:.9rem}.deck-zone-stacks{align-items:center;gap:var(--space-16);padding-left:calc((var(--card-h) - var(--card-w)) * var(--table-scale) / 2);flex-direction:row}.deck-zone-stacks .discard-stack{margin-left:calc((var(--card-h) - var(--card-w)) * var(--table-scale) / 2)}.actions button{padding:.65em 1.5em;font-size:1.05rem}}@media (width>=900px) and (height<=860px){:root{--card-w:116px;--card-h:168px;--card-r:13px}}@media (width>=900px) and (height<=700px){:root{--card-w:92px;--card-h:133px;--card-r:11px}}@media (width>=1500px) and (height>=990px){:root{--card-w:174px;--card-h:252px;--card-r:19px;--rank-k:.14;--suit-k:.28}.pairs{gap:var(--space-16)}.deck-zone{font-size:.95rem}}.cardgame-center{align-items:start}.cardgame-main{gap:var(--space-8);margin-top:calc(var(--card-h) * .08);align-content:start;justify-items:center;min-width:0;display:grid}.cardgame-status,.cardgame-note{text-align:center;color:#f3ecdcd1;font-size:.9rem}.cardgame-note{color:var(--muted);font-size:.82rem}.suit-red{color:#ff8a85}.akulina-pile{--scale:var(--table-scale)}.akulina-pile .card.back,.pile-pair{position:absolute;inset:0}.pile-pair .card{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-6deg)}.pile-pair .card.second{transform:translate(10%,4%)rotate(5deg)}.akulina-pick{gap:var(--space-8);justify-items:center;width:100%;display:grid}.pick-title{color:var(--accent);font-weight:600}.pick-fan{max-width:100%;padding:var(--space-4) 0 calc(var(--card-h) * var(--table-scale) * .2);--scale:var(--table-scale);justify-content:center;align-items:flex-start;display:flex;position:relative}.pick-card{all:unset;cursor:pointer;border-radius:calc(var(--card-r) * var(--table-scale));--fan-angle:0deg;--fan-drop:0;transform-origin:50%;transform:translateY(calc(var(--fan-drop) * var(--card-h) * var(--table-scale))) rotate(var(--fan-angle));flex:none;transition:transform .16s ease-out}.pick-card+.pick-card{margin-left:calc(var(--card-w) * var(--table-scale) * -1 * var(--pick-overlap,.5))}.pick-card:hover,.pick-card:focus-visible{transform:translateY(calc(var(--fan-drop) * var(--card-h) * var(--table-scale) - 12px)) rotate(var(--fan-angle))}.pick-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chest-shelf{gap:var(--space-4);flex-wrap:wrap;justify-content:center;align-items:center;min-height:2.2rem;display:flex}.chest-shelf-title{color:var(--muted);margin-right:var(--space-4);font-size:.8rem}.chest-tile{background:var(--card-bg);min-width:1.9rem;height:2.2rem;color:var(--card-black);box-shadow:0 0 0 1px #00000059, 2px 2px 0 -1px var(--card-bg), 2px 2px 0 0 #00000059, 4px 4px 0 -1px var(--card-bg), 4px 4px 0 0 #00000059;border-radius:6px;place-items:center;padding:0 .3rem;font-weight:800;display:inline-grid}.chest-tile.small{border-radius:4px;min-width:1.2rem;height:1.35rem;font-size:.72rem}.chest-empty{color:var(--muted);font-size:.72rem;font-style:italic}.opp-chests{flex-wrap:wrap;justify-content:center;gap:5px;min-height:1.5rem;padding-top:2px;display:flex}.chests-talk{width:100%;max-width:420px;color:var(--muted);text-align:center;gap:2px;font-size:.82rem;display:grid}.chests-talk .latest{color:#f3ecdceb}.hand-zone .actions .suit-toggle{min-width:2.9rem;font-size:1.3rem}.hand-zone .actions .suit-toggle.on{background:var(--accent);border-color:var(--accent);color:#2a1606}.hand-zone .actions .suit-toggle.on .suit-red{color:#9b1d1d}.chests-stock{--scale:var(--table-scale);width:calc(var(--card-w) * var(--table-scale));height:calc(var(--card-h) * var(--table-scale));flex:none;position:relative}.chests-stock .card{position:absolute;inset:0;box-shadow:0 0 0 1px #00000059,2px 2px 0 -1px #5c1f26,3px 3px #f0d69c80,0 4px 8px #00000073}.chests-stock.empty{border-radius:calc(var(--card-r) * var(--table-scale));border:2px dashed #f3ecdc4d}.akulina-deal{flex:none;position:relative}.lobby-game{margin:calc(-1 * var(--space-8)) 0 var(--space-8);text-align:center;color:var(--muted)}.settings-action{letter-spacing:normal;text-transform:none;margin-left:auto;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.rules-button{align-items:center;gap:var(--space-4);vertical-align:middle;border-color:var(--brass-line);color:var(--muted);background:#0c060259;border-radius:999px;padding:.3em .75em;font-size:.8rem;line-height:1.2;display:inline-flex}.rules-button:hover:not(:disabled){color:var(--text);background:#0c06028c}.rules-overlay{z-index:70;padding:calc(var(--space-16) + var(--safe-top)) var(--space-16) calc(var(--space-16) + var(--safe-bottom));background:#000000b3;place-items:center;display:grid;position:fixed;inset:0}.rules-sheet{overscroll-behavior:contain;gap:var(--space-8);width:min(520px,100%);max-height:100%;padding:var(--space-16);border:1px solid var(--brass-line);background:linear-gradient(180deg, var(--wood-hi), var(--wood-lo));text-align:left;border-radius:14px;flex-direction:column;animation:.15s ease-out both zoom-in;display:flex;overflow-y:auto;box-shadow:0 10px 30px #00000080}.rules-sheet h2{color:#efdcb4;margin:0;font-family:Georgia,Times New Roman,serif;font-weight:400}.rules-text{font-size:.9rem;line-height:1.45}.rules-text h3{margin:var(--space-16) 0 var(--space-4);letter-spacing:.1em;text-transform:uppercase;color:#efdcb4;font-family:Georgia,Times New Roman,serif;font-size:.85rem;font-weight:400}.rules-text ul{gap:var(--space-8);margin:0;padding-left:1.2em;display:grid}.rules-goal{margin:var(--space-8) 0;color:var(--accent)}.badge.rules-here{color:var(--accent);white-space:nowrap;background:#f5b34238}@media (prefers-reduced-motion:reduce){.rules-sheet{animation:none}}.opponent{position:relative}.opp-hanging{top:calc(1.6em + var(--space-4));right:var(--space-8);z-index:5;position:absolute;transform:rotate(12deg);box-shadow:0 6px 14px #0000008c}.hand .card.ak-pending{box-shadow:0 0 0 3px var(--accent), 0 0 22px var(--glow)}.hand .card.playable.ak-movable:not(.selected){box-shadow:0 0 0 1px #00000059,0 2px 6px #00000073}.talk-answer.landing,.talk-line.landing{animation:.3s ease-out backwards land-reveal}@media (prefers-reduced-motion:reduce){.talk-answer.landing,.talk-line.landing{animation-duration:10ms}}.chests-talk .talk-line.result{padding:var(--space-4) var(--space-8);box-shadow:0 0 0 1px var(--brass-line);background:#0c060273;border-radius:8px;justify-self:center;font-size:.92rem}.talk-answer.hit,.talk-answer.miss{font-weight:700}.talk-answer.hit{color:#9be8c2}.talk-answer.miss{color:#ff8a85}.chests-talk .result .talk-answer.miss{animation:.45s ease-out both miss-shake;display:inline-block}.chests-talk .result .talk-answer.miss.landing{animation:.3s ease-out backwards land-reveal,.45s ease-out both miss-shake}@keyframes miss-shake{0%{transform:scale(1.25)}30%{transform:scale(1.25)translate(-3px)}50%{transform:scale(1.15)translate(3px)}70%{transform:scale(1.08)translate(-2px)}to{transform:none}}@media (prefers-reduced-motion:reduce){.chests-talk .result .talk-answer.miss,.chests-talk .result .talk-answer.miss.landing{animation:none}}
