@font-face{font-family:ProtestRiot;src:url(/assets/protest-riot.ttf) format("truetype");font-display:swap}:root{font-family:Inter,Segoe UI,Microsoft JhengHei,system-ui,sans-serif;color:#f6f2e9;background:#111524;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--gold:#f1c76d;--muted:#a7aec1;--panel:#202b46;--card-w:85px}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible,input:focus-visible{outline:3px solid #ffe097;outline-offset:4px}button{color:inherit}svg{display:block}img{max-width:100%;-webkit-user-select:none;user-select:none}button svg{width:21px;height:21px;flex-shrink:0}button:disabled{opacity:.45}button:disabled.card-button{opacity:1}h1,h2,h3,p{margin:0}button{border:0}a{color:inherit}.app{position:relative;isolation:isolate;min-height:100dvh;overflow:hidden}.topbar{position:relative;z-index:5;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;min-height:88px;padding:18px 32px}.topbar-left{display:flex;align-items:center;gap:15px}.header-logo{width:205px;filter:drop-shadow(0 3px 12px #03071480)}.topbar-controls{display:flex;justify-content:flex-end;gap:9px}.icon-button{display:grid;place-items:center;flex-shrink:0;width:43px;height:43px;border:1px solid #ffffff26;border-radius:11px;background:#10182dbf;box-shadow:0 2px 5px #0003;transition:background .15s,border-color .15s,transform .15s}.icon-button:hover{background:#263454;border-color:#e2bb6566}.icon-button:active{transform:translateY(1px)}.sound-button img{width:25px;height:25px;object-fit:contain}.welcome{display:flex;align-items:center;gap:12px;text-align:left;background:none;padding:0}.welcome>.avatar{width:50px;height:50px;border:1px solid #c4ccdd66}.welcome small{font-size:9px;letter-spacing:1.8px;display:block;color:#bfc1d4;margin-bottom:5px}.welcome strong{font-size:17px;font-weight:600;display:flex;gap:14px;align-items:center}.edit-name{color:#aaa8c3;font-size:16px}.mode-tag{font-size:12px;letter-spacing:2px;color:#cbd1dd}.avatar{display:block;overflow:hidden;border-radius:50%;background:#1e2c3d}.avatar svg,.avatar img{width:100%;height:100%;object-fit:cover}.lobby-screen{display:flex;flex-direction:column;background:#191d4b url(/assets/menu-background.webp) center/cover no-repeat}.lobby-screen:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(ellipse at 50% 45%,transparent,#15183a66 75%)}.lobby-screen .topbar{min-height:112px}.lobby-screen .header-logo{width:268px}.lobby-content{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:16px 24px 38px;text-align:center}.eyebrow{display:block;font-size:10px;font-weight:600;letter-spacing:4px;color:var(--gold);margin-bottom:16px}.lobby-title h1{font-size:clamp(23px,3vw,37px);letter-spacing:3px;font-weight:600;line-height:1.4}.lobby-title p{font-size:13px;color:#b9bbd0;letter-spacing:1px;line-height:1.9;margin-top:12px}.play-tile{background:none;position:relative;width:228px;margin:33px 0 5px;padding:0;transition:transform .22s,filter .22s;filter:drop-shadow(0 18px 25px #080d2d7a)}.play-tile>img{display:block;width:100%}.play-tile:hover{transform:translateY(-6px);filter:drop-shadow(0 22px 32px #080d2daa)}.play-tile:active{transform:translateY(-1px)}.tile-callout{position:absolute;bottom:4%;left:3%;right:3%;height:17%;border-radius:0 0 12px 12px;background:linear-gradient(#ff9a33,#ef6b22);font-weight:700;font-size:19px;letter-spacing:2px;display:flex;align-items:center;justify-content:center;gap:14px;text-shadow:0 1px 2px #783e21}.tile-callout svg{width:20px}.resume-button{display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid #d5bf7959;background:#f1c76d0a;padding:11px 20px;border-radius:8px;font-size:14px;margin-top:17px;min-width:227px;color:#f0d995}.resume-button:hover{background:#f1c76d1a}.resume-button small{font-size:11px;margin-left:10px;color:#aeb1c8}.lobby-facts{display:flex;align-items:center;gap:26px;margin-top:29px;color:#adb2cd;font-size:12px;letter-spacing:1px}.lobby-facts b{color:#ebd7ac;font-size:17px;margin-right:5px;font-weight:500}.lobby-facts i{display:block;width:1px;height:18px;background:#ffffff20}.text-button{background:none;color:var(--muted);padding:0;font-size:12px;line-height:1.7}.text-button:hover{color:#f3d997}.how-to{margin-top:22px}.how-to span{margin-left:7px;color:var(--gold)}.lobby-footer{display:flex;align-items:center;justify-content:center;gap:7px;padding:15px 24px 22px;color:#9197b7;font-size:10px;letter-spacing:1px}.lobby-footer button{font-size:10px;border-left:1px solid #ffffff28;margin-left:9px;padding-left:16px}.offline-dot{width:5px;height:5px;border-radius:50%;background:#81b9a0;margin-right:3px}.table-screen{height:100dvh;min-height:660px;display:flex;flex-direction:column;background:#17131e url(/assets/floor.webp) center/cover no-repeat}.table-screen:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(#10182ee8,#0e0c1d33 45%,#140a1599)}.table-screen .topbar{min-height:79px;padding:15px 25px}.table-screen .header-logo{width:163px}.table-area{position:relative;flex:1;min-height:340px;width:min(1240px,100%);margin:0 auto}.table-art{position:absolute;left:50%;top:51%;transform:translate(-50%,-50%);width:86%;height:99%;object-fit:fill;max-width:none;pointer-events:none;filter:drop-shadow(0 22px 15px #0006)}.round-label{position:absolute;top:18px;left:34px;display:flex;gap:8px;align-items:baseline;border-left:2px solid var(--gold);padding-left:12px}.round-label>span{font-size:10px;letter-spacing:2px;color:#e0c691}.round-label strong{font-family:ProtestRiot,serif;font-size:28px;font-weight:400}.round-label small{color:#b7b4b8;font:12px Inter,system-ui}.trump-label{position:absolute;right:30px;top:18px;display:flex;gap:8px;align-items:center}.trump-label .trump-symbol{width:30px;height:33px;object-fit:contain;filter:brightness(0) invert(85%) sepia(35%) saturate(468%)}.trump-label span{font-size:8px;line-height:1.8;letter-spacing:1.5px;color:#bfb1a1}.trump-label b{font-size:11px;letter-spacing:1px;color:#e7d9b9;font-weight:500}.seat{position:absolute;z-index:2;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:112px;transition:filter .2s}.seat .avatar{width:76px;height:76px;border:3px solid #111a2d;box-shadow:0 3px 10px #0008;transition:border-color .2s,box-shadow .2s}.avatar-wrap{position:relative}.dealer{position:absolute;bottom:1px;right:-1px;border-radius:50%;background:linear-gradient(#f6d27e,#b67c38);color:#392914;font-family:Georgia,serif;font-weight:700;font-size:10px;width:18px;height:18px;display:grid;place-items:center;border:1px solid #ffe2a0}.seat-info{display:flex;flex-direction:column;align-items:center}.player-name{display:flex;align-items:center;gap:6px;max-width:180px;font-family:ProtestRiot,Microsoft JhengHei,sans-serif;font-size:18px;line-height:1.4;text-shadow:0 2px 3px #000b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-name small{font-family:Inter,sans-serif;font-size:7px;color:#ecce84;background:#f3c86918;border:1px solid #f3c86955;padding:2px 4px;border-radius:3px;letter-spacing:1px}.seat-stats{display:flex;align-items:center;gap:0;border-radius:6px;overflow:hidden;margin-top:4px;background:#289f62;box-shadow:0 2px 3px #0004;font-family:ProtestRiot,serif;font-size:22px;line-height:1.2}.seat-stats>span{padding:3px 10px}.seat-stats>span:first-child{border-radius:5px;background:#323f45;min-width:36px;text-align:center}.seat-stats>span:last-child{min-width:45px;background:#259b5a}.seat-stats>span:last-child.made-bid{background:#b67b2d}.seat-meta{font-size:9px;color:#cad0ce;margin-top:5px;letter-spacing:.5px;text-shadow:0 1px 2px #000a}.seat.active .avatar{border-color:#f1c76d;box-shadow:0 0 0 4px #f1c76d26,0 0 23px #f1c76d5a}.seat.active .seat-meta{color:#ffe0a1}.seat-2{top:1%;left:50%;transform:translate(-50%);flex-direction:row;gap:12px}.seat-2 .seat-info{align-items:flex-start}.seat-3{left:9%;top:46%;transform:translate(-50%,-50%)}.seat-1{right:9%;top:46%;transform:translate(50%,-50%)}.seat-0{left:50%;bottom:-8px;transform:translate(-50%);flex-direction:row;gap:9px}.seat-0 .avatar{width:44px;height:44px;border-width:2px}.seat-0 .seat-info{flex-direction:row;gap:10px}.seat-0 .player-name{font-size:14px;max-width:140px}.seat-0 .seat-stats{font-size:19px;margin:0}.seat-0 .seat-stats>span{padding:3px 7px}.seat-0 .seat-meta{display:none}.seat-0 .dealer{width:15px;height:15px;font-size:9px}.table-center{position:absolute;top:51%;left:50%;transform:translate(-50%,-50%);width:176px;display:flex;align-items:center;flex-direction:column;gap:12px;opacity:.2;pointer-events:none}.table-center>img{width:160px;filter:grayscale(1)}.table-center>span{font-size:12px;letter-spacing:3px;color:#e5f2ef}.trick-pile{position:absolute;top:10%;right:17%;bottom:6%;left:17%;pointer-events:none}.trick-card{position:absolute;width:77px;aspect-ratio:82/115;filter:drop-shadow(1px 5px 4px #0008);animation:throw-card .24s ease-out;z-index:calc(3 + var(--order))}.card-art{display:block;width:100%;height:100%;overflow:hidden;border-radius:5px}.trick-card-0{left:calc(50% - 38px);top:52%;transform:rotate(-4deg)}.trick-card-1{left:calc(50% + 50px);top:calc(43% - 57px);transform:rotate(8deg)}.trick-card-2{left:calc(50% - 38px);top:calc(28% - 57px);transform:rotate(4deg)}.trick-card-3{left:calc(50% - 124px);top:calc(43% - 57px);transform:rotate(-8deg)}.winning-card{filter:drop-shadow(0 0 8px #f7d270);z-index:9}.winner-tag{position:absolute;bottom:-9px;left:50%;transform:translate(-50%);background:linear-gradient(#f9dc8a,#d99b3c);color:#382406;border-radius:3px;padding:3px 8px;font-size:9px;font-weight:800;letter-spacing:1px;box-shadow:0 2px 4px #0008}.turn-message{position:relative;display:flex;flex-shrink:0;justify-content:center;align-items:center;gap:8px;min-height:46px;margin:12px 10px 0;color:#c6c5c4;font-size:12px;letter-spacing:.6px;text-shadow:0 1px 4px #000a}.status-dot{width:5px;height:5px;background:#a9afba;border-radius:50%;flex-shrink:0}.your-turn{color:#ffe4a2}.your-turn .status-dot{background:#f0c05c;box-shadow:0 0 10px #f1be7a}.auto-label{font-size:9px;letter-spacing:0;color:#c4e0d9;border:1px solid #92b8a366;border-radius:4px;padding:2px 6px;margin-left:5px}.hand{position:relative;flex-shrink:0;width:min(960px,calc(100% - 56px));height:146px;margin:0 auto;--card-w:85px}.card-button{position:absolute;left:var(--desktop-left);top:9px;width:var(--card-w);aspect-ratio:82/115;padding:0;border:0;border-radius:6px;background:#ececea;box-shadow:-3px 2px 5px #0006;transform-origin:50% 95%;transition:transform .17s,filter .2s,box-shadow .2s;animation:deal-in .3s ease-out backwards;animation-delay:calc(var(--index) * 15ms)}.card-button:hover:not(:disabled),.card-button:focus-visible{transform:translateY(-15px);z-index:30}.card-button.legal-card{box-shadow:0 0 0 1px #d7d5cc33,-3px 3px 5px #0006}.card-button.illegal-card{filter:brightness(.5) saturate(.55)}.hint-card{transform:translateY(-17px);box-shadow:0 0 0 3px #ffe3a2,0 0 25px #ffdc7877!important;z-index:29}.empty-hand{text-align:center;position:absolute;top:35px;right:0;bottom:35px;left:0;color:#bcb5b4;font-size:13px}.game-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;min-height:54px;flex-shrink:0;background:linear-gradient(transparent,#0a0d1acc);padding:0 28px 12px}.hand-legend{display:flex;gap:12px;align-items:center;font-size:10px;color:#a9a6b2;letter-spacing:.5px}.hand-legend span{color:#d3cbbc}.hand-legend i{width:1px;height:10px;background:#fff3}.game-footer nav{display:flex;gap:8px}.action-button{display:flex;align-items:center;justify-content:center;gap:7px;background:#131b2abf;border:1px solid #ffffff18;border-radius:8px;font-size:11px;color:#d1d3da;padding:9px 12px;transition:background .15s}.action-button svg{width:15px;height:15px}.action-button:hover:not(:disabled){background:#253347;border-color:#f1c76d66}.action-button.on{border-color:#d8bb6c88;color:#ffe0a1;background:#ae8d2f22}.action-button:disabled{opacity:.35}.dialog-layer{position:fixed;top:0;right:0;bottom:0;left:0;background:#030612ba;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:20;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade-in .15s ease-out}.dialog{width:min(600px,100%);max-height:calc(100dvh - 48px);overflow:auto;background:linear-gradient(155deg,#28344e,#172039);border:1px solid #c5a15b88;border-radius:18px;box-shadow:inset 0 1px #f9e5b333,0 25px 100px #0008;outline:none;scrollbar-width:thin;scrollbar-color:#6d7891 transparent}.dialog-header{padding:24px 27px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #ffffff14}.dialog h2{font-size:20px;font-weight:600;letter-spacing:1.3px;color:#f4dfb5}.dialog-header:before{content:"";width:5px;height:20px;border-radius:2px;background:linear-gradient(#f7d481,#b88236);flex-shrink:0}.dialog-header h2{margin-right:auto}.close-button{background:#101a2c77;border:1px solid #ffffff1a;box-shadow:none;width:31px;height:31px;border-radius:8px}.close-button svg{width:17px;height:17px}.dialog-content{padding:23px 27px 27px}.primary-button{display:flex;align-items:center;justify-content:center;gap:18px;background:linear-gradient(160deg,#edcd83,#c6984d);color:#302517;box-shadow:0 3px #8b612b,inset 0 1px #fff7;border:1px solid #f7dca2;min-height:45px;border-radius:8px;padding:11px 21px;font-size:13px;font-weight:700;letter-spacing:1px;transition:filter .15s,transform .15s}.primary-button:hover:not(:disabled){filter:brightness(1.1)}.primary-button:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #8b612b}.primary-button:disabled{background:#5c6472;border-color:#828794;box-shadow:0 2px #404754;color:#ccd0d3;opacity:.6}.primary-button svg{width:18px;height:18px}.secondary-button{display:flex;align-items:center;justify-content:center;min-height:45px;border:1px solid #8796b455;border-radius:8px;background:#101b2b44;padding:11px 18px;color:#c4ccda;font-size:13px}.secondary-button:hover{background:#34435d}.full-width{width:100%;margin-top:24px}.bid-layer{align-items:flex-start;padding-top:clamp(145px,28vh,285px);background:#03061066;-webkit-backdrop-filter:none;backdrop-filter:none}.bid-layer .dialog{width:min(570px,100%)}.bid-layer .dialog-content{padding-top:16px}.bid-description{font-size:12px;color:#b9c1d3;margin-bottom:19px;letter-spacing:.5px}.bid-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px}.bid-grid button{background:linear-gradient(#4b5870,#334159);border:1px solid #8590a15e;box-shadow:0 3px #121b2f;border-radius:11px;min-height:48px;font-family:ProtestRiot,serif;font-size:23px;transition:background .15s,transform .15s}.bid-grid button:hover{border-color:#f1c76d;background:#636449}.bid-grid button.selected{background:linear-gradient(#f6dc93,#ce9c4f);border-color:#ffebba;color:#362713;box-shadow:0 3px #846227}.bid-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:25px}.suggested-bid{font-size:11px;color:#c9bd9b;letter-spacing:.4px;text-decoration:underline;text-decoration-color:#c9bd9b55;text-underline-offset:5px}.confirm-bid{min-width:184px}.rules-content{font-size:12px;line-height:1.9;color:#bfc8d8}.rules-intro{color:#e7ddc9;font-size:13px;margin-bottom:24px}.rule-block{display:flex;gap:17px;margin-bottom:23px}.rule-number{color:#d4b774;font-family:ProtestRiot,serif;font-size:22px;opacity:.8;line-height:1.3}.rule-block h3{font-size:14px;color:#f1e4cd;font-weight:600;margin-bottom:5px}.rank-order{font-size:11px;color:#d0b877;margin-top:8px;letter-spacing:.7px}.quiet-note{border-top:1px solid #ffffff12;padding-top:16px;margin-top:17px;font-size:11px;line-height:1.9;color:#99a5be}.dialog-subtitle{font-size:12px;color:#afbbd1;margin-bottom:18px;line-height:1.8}.scores-layer .dialog{width:min(730px,100%)}.score-scroll{overflow-x:auto;margin:0 -5px}.score-table{border-collapse:collapse;width:100%;font-size:12px;table-layout:fixed;min-width:355px;text-align:center}.score-table th{color:#b4bfd1;font-weight:400;padding:14px 6px}.score-table thead th{font-size:12px;color:#e6d0a3;border-bottom:1px solid #a9b6ca33;overflow:hidden;text-overflow:ellipsis}.score-table td{padding:13px 7px;border-bottom:1px solid #aab8d118;font-size:14px;font-variant-numeric:tabular-nums}.score-table th:first-child{width:65px}.score-table td strong{display:block;font-weight:500}.score-table td small{display:block;font-size:9px;color:#91a1ba;margin-top:5px;white-space:nowrap}.score-table tfoot td,.score-table tfoot th{color:#f1d391;border-bottom:0;padding-top:19px;font-weight:600}.you-column{background:#f1c76d08}.negative{color:#efa5a4!important}.empty-score{color:#68758e}.setting-row{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:5px 0 26px;border-bottom:1px solid #ffffff15}.setting-row b,.speed-setting h3{font-size:14px;font-weight:500;color:#e3dfd4}.setting-row small{display:block;color:#a2afc5;font-size:11px;margin-top:8px}.toggle{width:47px;height:27px;background:#4d5a72;border-radius:20px;padding:3px;flex-shrink:0}.toggle span{display:block;width:21px;height:21px;background:#d9dfeb;border-radius:50%;transform:translate(0);transition:transform .2s}.toggle.enabled{background:#b89750}.toggle.enabled span{transform:translate(20px);background:#ffe5ad}.speed-setting{margin-top:23px}.speed-setting>p{font-size:11px;color:#a2afc5;margin:8px 0 18px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:#111b2e;padding:5px;border-radius:10px}.segmented button{padding:11px;border-radius:7px;color:#9fadca;font-size:12px;background:none}.segmented button.selected{color:#f5d48d;background:#35415a;box-shadow:0 2px 5px #0003}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:25px}.confirm-description{font-size:13px;color:#c3cad8;line-height:2}.name-label{display:block;color:#bcc8db;font-size:12px;margin-bottom:12px}input{width:100%;padding:13px 16px;background:#101b2f;color:#f2e4c9;border:1px solid #8795ad55;border-radius:9px;outline:none;font-size:16px}.round-summary{display:flex;justify-content:space-between;gap:10px;align-items:center;color:#e8d4b0;font-size:13px;margin-bottom:22px}.round-summary>strong{font-family:ProtestRiot,serif;font-size:31px;color:#edd18d}.result-players{display:flex;flex-direction:column;gap:7px}.result-players>div{display:flex;align-items:center;gap:12px;border:1px solid #ffffff14;background:#0e182944;padding:9px 14px;border-radius:10px}.result-players .avatar{width:39px;height:39px;flex-shrink:0}.result-players .result-you{border-color:#cda75d66;background:#a1822c0e}.result-players b{font-size:13px;font-weight:500}.result-players small{display:block;font-size:10px;color:#97a6c0;margin-top:5px;font-weight:400}.result-players strong{margin-left:auto;text-align:right;font-family:ProtestRiot,system-ui;font-size:21px;color:#e0d3b8;white-space:nowrap}.result-players strong small{font-family:Inter,system-ui;font-size:10px}.match-winner{display:flex;flex-direction:column;align-items:center;text-align:center;padding-bottom:20px}.match-winner>img{width:76px;margin-bottom:10px}.match-winner>span{font-size:10px;letter-spacing:3px;color:#cebe93}.match-winner h3{font-size:21px;font-weight:500;color:#f1d99e;line-height:1.7;margin-top:10px}.match-winner p{font-family:ProtestRiot,serif;font-size:26px;color:#f1d99e;margin-top:6px}.result-home{display:block;margin:21px auto 0}.last-trick-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;text-align:center}.last-trick-cards>div>span{font-size:10px;color:#c9d1dd;display:block;margin-bottom:12px;white-space:nowrap}.last-card{width:100%;max-width:89px;aspect-ratio:82/115;margin:0 auto;filter:drop-shadow(0 4px 4px #0005)}.last-trick-cards strong{display:block;font-size:10px;font-weight:400;margin-top:13px;color:#d0bf9d}.toast{position:fixed;z-index:40;bottom:88px;left:50%;transform:translate(-50%);padding:13px 23px;color:#f3dfb5;background:#142336ed;border:1px solid #d4b57888;border-radius:9px;box-shadow:0 8px 35px #0007;font-size:12px;max-width:calc(100% - 32px);text-align:center;line-height:1.7;animation:fade-in .15s}.storage-warning{position:fixed;bottom:10px;left:50%;transform:translate(-50%);z-index:35;background:#342c24;color:#f1d4a1;font-size:10px;padding:10px 36px 10px 15px;border:1px solid #bd8d5a;border-radius:7px;max-width:95vw}.storage-warning button{background:none;position:absolute;right:8px;top:4px;font-size:18px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes throw-card{0%{opacity:0;scale:.82;translate:0 13px}to{opacity:1;scale:1;translate:0 0}}@keyframes deal-in{0%{opacity:0;translate:0 30px}to{opacity:1;translate:0 0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media(min-width:1600px){.table-area{max-width:1380px}.table-screen .topbar{padding:21px 42px;min-height:95px}.header-logo{width:220px}.hand{--card-w:95px;height:162px;width:min(1080px,calc(100% - 60px))}.seat .avatar{width:86px;height:86px}.player-name{font-size:20px}.trick-card{width:88px}.trick-card-0,.trick-card-2{left:calc(50% - 44px)}.lobby-content{padding-bottom:50px}.play-tile{width:255px;margin-top:43px}.lobby-title h1{font-size:40px}}@media(max-width:900px){.topbar{padding:16px 20px;gap:10px}.lobby-screen .header-logo{width:220px}.welcome strong{font-size:14px}.welcome>.avatar{width:42px;height:42px}.welcome small{font-size:8px}.topbar-controls{gap:6px}.icon-button{width:37px;height:37px;border-radius:9px}.icon-button svg{width:19px;height:19px}.table-screen .topbar{padding:13px 18px;min-height:70px}.table-screen .header-logo{width:150px}.mode-tag{display:none}.table-art{width:88%;height:93%;top:51%}.seat .avatar{width:65px;height:65px}.seat-3{left:9%}.seat-1{right:9%}.seat-0 .avatar{width:36px;height:36px}.seat-0 .seat-info{gap:8px}.seat-0 .player-name{font-size:12px}.seat-0 .seat-stats{font-size:18px}.seat-2{top:2%}.seat-meta{font-size:8px}.player-name{font-size:16px}.hand{--card-w:75px;height:129px;width:calc(100% - 48px)}.game-footer{padding:1px 20px 12px}.hand-legend{font-size:9px;gap:8px}.action-button{padding:9px 10px;font-size:10px;gap:5px}.game-footer nav{gap:5px}.round-label{left:21px;top:13px}.trump-label{right:18px;top:13px}.trick-card{width:66px}.trick-card-0,.trick-card-2{left:calc(50% - 33px)}.trick-card-1{left:calc(50% + 37px)}.trick-card-3{left:calc(50% - 103px)}.table-center{width:135px}.table-center>img{width:135px}.turn-message{font-size:11px;min-height:43px;margin-top:7px}}@media(max-width:600px){.lobby-screen .topbar{grid-template-columns:1fr auto;min-height:82px;padding:18px}.lobby-screen .header-logo{position:absolute;left:50%;top:106px;transform:translate(-50%);width:240px}.lobby-screen .topbar-controls .fullscreen-button{display:none}.welcome{gap:8px}.welcome small{font-size:7px;letter-spacing:1.2px}.welcome strong{font-size:13px}.welcome>.avatar{width:36px;height:36px}.edit-name{display:none}.topbar-controls{gap:7px}.icon-button{width:34px;height:34px;border-radius:8px}.sound-button img{width:22px;height:22px}.lobby-content{padding:118px 20px 30px;justify-content:center}.eyebrow{font-size:8px;letter-spacing:2.5px;margin-bottom:13px}.lobby-title h1{font-size:23px;letter-spacing:1.5px}.lobby-title p{font-size:11px;letter-spacing:0;margin-top:10px}.play-tile{width:193px;margin-top:29px}.tile-callout{font-size:16px}.lobby-facts{gap:18px;font-size:10px;margin-top:28px;letter-spacing:0}.lobby-facts b{font-size:15px}.lobby-footer{font-size:9px;padding:13px 10px 18px;letter-spacing:0}.lobby-footer button{font-size:9px}.how-to{font-size:11px}.resume-button{font-size:12px;padding:9px 16px;margin-top:18px;min-width:210px}.table-screen{min-height:730px}.table-screen .topbar{min-height:64px;padding:12px 14px;gap:9px}.table-screen .header-logo{width:137px}.table-screen .topbar-controls{gap:5px}.table-screen .topbar-controls .fullscreen-button{display:none}.table-screen .topbar .icon-button{width:32px;height:32px}.table-area{min-height:332px;width:100%}.table-art{width:100%;height:90%;top:54%}.round-label{left:15px;top:5px;padding-left:8px;gap:5px}.round-label>span{font-size:7px;letter-spacing:1px}.round-label strong{font-size:22px}.round-label small{font-size:9px}.trump-label{right:13px;top:8px;gap:4px}.trump-label .trump-symbol{width:19px;height:23px}.trump-label span{font-size:6px;line-height:1.7;letter-spacing:1px}.trump-label b{font-size:8px;letter-spacing:0}.seat{min-width:75px}.seat .avatar{width:48px;height:48px;border-width:2px}.seat-2{top:7px;gap:8px}.seat-2 .avatar{width:51px;height:51px}.seat-2 .player-name{font-size:14px}.seat-2 .seat-meta{display:none}.seat-3{left:4%;top:49%;transform:translateY(-50%)}.seat-1{right:4%;top:49%;transform:translateY(-50%)}.player-name{font-size:12px;max-width:92px}.seat-stats{font-size:17px;border-radius:5px;margin-top:3px}.seat-stats>span{padding:2px 5px}.seat-stats>span:first-child{min-width:23px}.seat-stats>span:last-child{min-width:28px}.seat-meta{font-size:7px;max-width:80px;margin-top:5px}.seat-0{bottom:-2px;gap:5px}.seat-0 .avatar{width:30px;height:30px}.seat-0 .player-name{font-size:11px;max-width:100px}.seat-0 .player-name small{font-size:6px;padding:1px 3px}.seat-0 .seat-stats{font-size:17px}.seat-0 .seat-stats>span{padding:2px 5px}.dealer{font-size:8px;bottom:-1px;width:14px;height:14px}.seat-0 .dealer{font-size:7px;width:12px;height:12px}.table-center{top:52%;gap:8px;width:100px}.table-center>img{width:100px}.table-center>span{font-size:8px;letter-spacing:1.5px}.trick-pile{top:18%;right:14%;bottom:12%;left:14%}.trick-card{width:53px}.trick-card-0{left:calc(50% - 26px);top:52%}.trick-card-1{left:calc(50% + 28px);top:calc(45% - 37px)}.trick-card-2{left:calc(50% - 26px);top:calc(28% - 38px)}.trick-card-3{left:calc(50% - 80px);top:calc(45% - 37px)}.winner-tag{font-size:7px;padding:2px 5px;bottom:-7px}.turn-message{min-height:39px;font-size:10px;letter-spacing:0;gap:6px;margin:8px 9px 3px}.auto-label{font-size:7px;padding:2px 4px;margin-left:1px}.hand{--card-w:61px;width:calc(100% - 32px);height:202px}.card-button{top:calc(6px + var(--row)*97px);left:var(--mobile-left);border-radius:5px}.card-button:hover:not(:disabled),.card-button:focus-visible{transform:translateY(-8px)}.hint-card{transform:translateY(-9px)}.game-footer{min-height:63px;padding:4px 12px calc(12px + env(safe-area-inset-bottom));justify-content:center;gap:0}.hand-legend{display:none}.game-footer nav{width:100%;justify-content:space-between;gap:5px}.action-button{flex:1;flex-direction:column;gap:5px;padding:7px 3px;border-radius:8px;font-size:9px;min-height:48px;white-space:nowrap}.action-button svg{width:17px;height:17px}.dialog-layer{padding:15px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dialog{border-radius:14px;max-height:calc(100dvh - 30px)}.dialog-header{padding:18px 17px 15px;gap:10px}.dialog-header:before{height:17px;width:4px}.dialog h2{font-size:16px;letter-spacing:.6px}.dialog-content{padding:18px 17px 21px}.dialog-header .close-button{width:29px;height:29px}.primary-button,.secondary-button{font-size:12px;padding:10px 15px;min-height:43px;gap:10px}.bid-layer{padding-top:175px;-webkit-backdrop-filter:none;backdrop-filter:none}.bid-description{font-size:11px;margin-bottom:15px}.bid-grid{gap:7px}.bid-grid button{min-height:40px;border-radius:9px;font-size:20px}.bid-bottom{margin-top:21px;gap:7px}.confirm-bid{min-width:153px}.suggested-bid{font-size:10px}.rules-content{font-size:11px}.rules-intro{font-size:12px}.rule-block{gap:12px;margin-bottom:18px}.rule-block h3{font-size:13px}.rule-number{font-size:19px}.quiet-note{font-size:10px}.last-trick-cards{gap:9px}.last-trick-cards>div>span{font-size:8px}.last-trick-cards strong{font-size:8px}.last-card{max-width:69px}.scores-layer .dialog-content{padding-left:12px;padding-right:12px}.score-table{min-width:310px;font-size:10px}.score-table th:first-child{width:44px}.score-table th,.score-table td{padding:12px 4px}.score-table thead th{font-size:10px}.score-table td{font-size:12px}.score-table td small{font-size:8px}.round-summary{font-size:11px}.round-summary>strong{font-size:27px}.result-players>div{padding:8px 10px;gap:10px}.result-players b{font-size:12px}.result-players small{font-size:9px}.result-players strong{font-size:19px}.result-players .avatar{width:34px;height:34px}.result-players strong small{font-size:9px}.match-winner>img{width:60px}.match-winner h3{font-size:18px}.match-winner p{font-size:23px}.match-winner{padding-bottom:18px}.dialog-actions{margin-top:22px;gap:10px}.dialog-actions>*{flex:1}.toast{font-size:11px;bottom:88px;padding:11px 17px}.storage-warning{width:calc(100% - 24px);font-size:9px}}@media(max-width:365px){.table-screen .header-logo{width:120px}.table-screen .topbar{padding-left:10px;padding-right:10px}.table-screen{min-height:720px}.hand{--card-w:55px;height:187px}.card-button{top:calc(6px + var(--row)*90px)}.seat-3{left:1%}.seat-1{right:1%}.seat .avatar{width:43px;height:43px}.table-area{min-height:330px}.lobby-title h1{font-size:21px}.lobby-facts{gap:13px}.bid-grid{gap:5px}.bid-grid button{min-height:37px;font-size:18px}.confirm-bid{min-width:140px}.bid-layer .dialog-content{padding-left:14px;padding-right:14px}}@media(max-height:650px)and (min-width:601px){.table-screen{min-height:500px}.table-screen .topbar{min-height:55px;padding-top:8px;padding-bottom:8px}.table-screen .header-logo{width:130px}.table-area{min-height:270px}.table-art{height:96%}.seat .avatar{width:46px;height:46px}.seat-2{top:0}.seat-2 .seat-stats{font-size:18px}.seat-0 .avatar{width:27px;height:27px}.seat-0{bottom:-7px}.seat-meta{display:none}.player-name{font-size:13px}.seat-stats{font-size:18px}.hand{--card-w:58px;height:92px;width:min(790px,calc(100% - 80px))}.card-button{top:4px}.turn-message{min-height:31px;margin-top:3px;font-size:10px}.game-footer{min-height:43px;padding-bottom:8px}.action-button{padding:7px 10px}.trick-card{width:53px}.trick-card-0,.trick-card-2{left:calc(50% - 26px)}.trick-card-2{top:calc(27% - 35px)}.trick-card-1{left:calc(50% + 27px);top:calc(43% - 36px)}.trick-card-3{left:calc(50% - 80px);top:calc(43% - 36px)}.table-center>img{width:105px}.table-center>span{font-size:9px}.bid-layer{padding-top:90px}.bid-layer .dialog{width:460px}.bid-layer .dialog-header{padding:15px 20px 12px}.bid-layer .dialog-content{padding:12px 20px 17px}.bid-grid button{min-height:33px;font-size:20px;border-radius:8px}.bid-grid{gap:7px}.bid-bottom{margin-top:17px}.bid-description{margin-bottom:12px;font-size:11px}.lobby-screen .topbar{min-height:70px}.lobby-screen .header-logo{width:200px}.lobby-content{padding:10px 20px 20px}.lobby-title .eyebrow{margin-bottom:8px}.lobby-title h1{font-size:24px}.lobby-title p{margin-top:7px;font-size:11px}.play-tile{width:160px;margin-top:17px}.tile-callout{font-size:14px}.lobby-facts{margin-top:17px;font-size:10px}.lobby-facts b{font-size:14px}.how-to{margin-top:12px;font-size:10px}.lobby-footer{padding-bottom:12px}.resume-button{margin-top:10px;padding:6px 13px;font-size:11px;min-width:190px}.resume-button small{font-size:9px}}@media(max-height:450px)and (min-width:601px){.table-screen{min-height:390px}.table-screen .topbar{min-height:46px;padding:6px 14px}.table-screen .topbar .icon-button{width:30px;height:30px}.table-area{min-height:218px}.table-art{width:80%;height:100%}.seat-1{right:15%}.seat-3{left:15%}.seat .avatar{width:36px;height:36px}.player-name{font-size:11px}.seat-stats{font-size:14px}.seat-stats>span{padding:2px 5px;min-width:23px!important}.seat-2 .seat-stats{font-size:15px}.seat-0 .avatar{display:none}.seat-0 .seat-stats{font-size:14px}.seat-0 .player-name{font-size:10px}.table-center>img{width:87px}.round-label{left:18px;top:6px}.round-label strong{font-size:21px}.trump-label{top:6px}.hand{--card-w:43px;height:66px;width:min(640px,calc(100% - 140px))}.card-art{border-radius:3px}.turn-message{min-height:24px;margin-top:2px;font-size:9px}.game-footer{min-height:34px;padding:0 17px 5px}.action-button{padding:5px 10px;font-size:9px}.action-button svg{width:13px;height:13px}.trick-card{width:40px}.trick-card-0,.trick-card-2{left:calc(50% - 20px)}.trick-card-2{top:calc(29% - 28px)}.trick-card-1{left:calc(50% + 22px);top:calc(44% - 28px)}.trick-card-3{left:calc(50% - 61px);top:calc(44% - 28px)}.bid-layer{padding-top:57px}.bid-layer .dialog-header{padding:13px 18px 11px}.bid-layer .dialog h2{font-size:16px}.bid-layer .dialog-content{padding:11px 18px 14px}.bid-grid button{min-height:29px;font-size:18px}.bid-description{margin-bottom:10px;font-size:10px}.bid-bottom{margin-top:14px}.bid-bottom .primary-button{min-height:36px;padding:8px 14px;font-size:11px}.lobby-screen{min-height:390px}.lobby-screen .topbar{min-height:58px}.lobby-content{padding-top:0}.lobby-title h1{font-size:21px}.lobby-title .eyebrow,.lobby-title p{display:none}.play-tile{width:141px;margin-top:13px}.lobby-facts{margin-top:13px}.lobby-footer{font-size:9px;padding:8px}.how-to{margin-top:9px}.lobby-screen .header-logo{width:176px}.welcome>.avatar{width:34px;height:34px}.welcome strong{font-size:12px}.lobby-screen .topbar .icon-button{width:32px;height:32px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-delay:0ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.topbar{z-index:auto}.header-logo,.table-center{mix-blend-mode:screen}.seat-0{width:max-content;max-width:calc(100% - 16px)}.seat-stats{white-space:nowrap;flex-shrink:0}.lobby-modes{display:flex;align-items:flex-start;justify-content:center;gap:70px}.lobby-modes .play-tile{width:215px}.lobby-modes .tile-callout{font-size:17px;letter-spacing:1px}.multiplayer-tile .tile-callout{background:linear-gradient(#ff9a33,#ef6b22)}.room-waiting{display:flex;flex:1;justify-content:center;align-items:center;padding:20px 20px 42px;overflow:auto}.table-screen:has(.room-waiting){height:auto;min-height:100dvh}.room-card{width:min(650px,100%);border:1px solid #c6a56c66;border-radius:18px;background:linear-gradient(150deg,#25314df5,#16213aef);box-shadow:0 25px 70px #0005;padding:30px}.room-card-heading{text-align:center;margin-bottom:24px}.room-card-heading .eyebrow{font-size:9px;margin-bottom:12px;letter-spacing:3px}.room-card h1{font-size:26px;font-weight:600;letter-spacing:1px}.room-card-heading p{font-size:12px;line-height:1.8;color:#b9c3d5;margin-top:9px}.invite-block{padding:15px 17px;background:#111c32aa;border:1px solid #f1c76d2b;border-radius:10px;margin-bottom:20px}.invite-block>div:first-child{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.invite-block>div>span{font-size:8px;letter-spacing:2px;color:#aeb9cc}.invite-block strong{font-family:ProtestRiot,monospace;font-size:25px;letter-spacing:4px;color:#f2d695}.invite-block .secondary-button{margin-left:auto;padding:7px 13px;min-height:34px;font-size:10px}.invite-block input{font-size:10px;margin-top:13px;padding:9px 11px;color:#9eacc5;background:#0a152977}.copy-notice{font-size:10px;line-height:1.7;color:#e9cb85;margin-top:9px}.room-players{display:grid;grid-template-columns:1fr 1fr;gap:10px}.room-player{display:flex;align-items:center;gap:12px;min-height:75px;padding:13px;border:1px solid #a3b1d027;border-radius:10px;background:#111d3344;min-width:0}.room-player>img{width:42px;height:42px;border-radius:50%;flex-shrink:0}.room-player>span{min-width:0}.room-player b{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:500;overflow-wrap:anywhere;flex-wrap:wrap}.room-player b small{font-size:6px;letter-spacing:.7px;color:#f0ce8b;border:1px solid #ddbd6344;border-radius:3px;padding:2px 3px}.room-player em{font-size:10px;font-style:normal;display:block;margin-top:6px;color:#929fb9;line-height:1.5}.room-player i{width:6px;height:6px;border-radius:50%;background:#6b7585;margin-left:auto;flex-shrink:0}.room-player i.presence-online{background:#7fbc9a}.room-player.is-ready{border-color:#72a88977;background:#4488550e}.room-player.is-ready em{color:#a3d5b9}.empty-seat-icon{display:grid;place-items:center;flex-shrink:0;border:1px dashed #9eadc544;width:42px;height:42px;border-radius:50%;font-size:22px;color:#74839c}.fill-bots{display:flex;align-items:center;gap:12px;font-size:12px;margin-top:22px;cursor:pointer;color:#dfdacb}.fill-bots input{width:17px;height:17px;accent-color:#d3b166;flex-shrink:0}.fill-bots small{display:block;font-size:10px;color:#9aa8bf;margin-top:6px}.room-lobby-actions{display:flex;align-items:center;justify-content:center;gap:13px;margin-top:25px}.room-lobby-actions>button{flex:1}.ready-button.is-ready{background:#41815a33;border-color:#80b39b;color:#afd6be}.waiting-host{font-size:11px;color:#9caac2;line-height:1.7;flex:1}.leave-room-link{display:block;margin:22px auto 0;font-size:11px}.room-tabs{grid-template-columns:1fr 1fr;margin-bottom:24px}.multiplayer-entry label:not(.sr-only){margin-top:18px}.code-input{text-transform:uppercase;letter-spacing:5px;font-family:monospace;font-size:20px}.form-error{font-size:12px;line-height:1.8;color:#f0b4a8;margin-top:17px}.connection-card{text-align:center;padding:42px 30px}.connection-card h1{font-size:22px}.connection-card p{color:#aebbd1;font-size:12px;line-height:1.8;margin:18px 0 25px}.connection-card button{margin:auto}.room-emblem{font-size:35px;color:#e2c17a;margin-bottom:17px}.online-room-badge{position:absolute;top:59px;left:34px;z-index:3;background:#111c33aa;border:1px solid #c8a55b55;border-radius:5px;color:#e0c690;font-size:10px;letter-spacing:1.4px;padding:5px 9px}.online-room-badge:hover{background:#344464}.connection-banner{position:relative;z-index:4;display:flex;justify-content:center;align-items:center;gap:14px;padding:9px 16px;background:#5b3d27d9;color:#f2d9aa;font-size:11px;line-height:1.7;text-align:center}.connection-banner button{flex-shrink:0;border:1px solid #c4a57788;padding:5px 8px;border-radius:5px;background:#252336;color:#f5d995}.turn-clock{font-size:10px;min-width:29px;padding:3px 5px;line-height:1;border:1px solid #b3c3d344;border-radius:5px;color:#c2d4dd;font-variant-numeric:tabular-nums;flex-shrink:0}.turn-clock.running-low{color:#f3ba7e;border-color:#e8a65f66}.your-turn-hand+.game-footer:has(.leave-room-link){padding-top:0}.room-info-note{color:#afbed4;font-size:12px;line-height:1.8;margin-top:16px}.room-info-players{display:flex;gap:10px;flex-wrap:wrap}.room-info-players span{font-size:11px;border:1px solid #a6b7d633;padding:7px 10px;border-radius:6px;color:#c0ccdd}.room-info-players small{color:#f0cb87;margin-left:6px}.room-info-actions{display:flex;justify-content:flex-end;margin-top:23px}@media(max-width:900px){.lobby-modes{gap:42px}.lobby-modes .play-tile{width:200px}.online-room-badge{left:21px;top:48px}.room-card{padding:25px}}@media(max-width:600px){.lobby-modes{gap:16px;width:100%}.lobby-modes .play-tile{width:min(43vw,175px);margin-top:30px}.lobby-modes .tile-callout{font-size:12px;gap:6px;letter-spacing:.4px}.lobby-modes .tile-callout svg{width:15px}.lobby-screen .lobby-footer{flex-wrap:wrap;line-height:1.8}.room-waiting{padding:15px 12px 28px;align-items:flex-start}.room-card{padding:23px 17px;border-radius:13px}.room-card h1{font-size:22px}.room-card-heading p{font-size:10px}.room-card-heading .eyebrow{font-size:8px}.invite-block{padding:13px 12px}.invite-block>div:first-child{gap:10px}.invite-block>div>span{font-size:7px;letter-spacing:1px}.invite-block strong{font-size:22px;letter-spacing:2px}.invite-block .secondary-button{font-size:9px;padding:6px 9px;min-height:31px}.invite-block input{font-size:9px}.room-players{gap:8px;grid-template-columns:1fr}.room-player{min-height:63px;padding:10px 12px}.room-player>img,.empty-seat-icon{width:36px;height:36px}.room-player b{font-size:12px}.room-player em{font-size:9px}.room-player i{margin-right:3px}.room-lobby-actions{gap:10px;margin-top:21px}.room-lobby-actions .primary-button,.room-lobby-actions .secondary-button{font-size:11px;padding:10px 12px}.waiting-host{font-size:10px}.fill-bots{font-size:11px;line-height:1.5}.fill-bots small{font-size:9px}.multiplayer-entry .dialog-subtitle{font-size:11px}.multiplayer-entry .room-tabs{margin-bottom:20px}.form-error{font-size:11px}.online-room-badge{top:42px;left:15px;font-size:7px;letter-spacing:.6px;padding:4px 6px}.turn-message:has(.turn-clock){gap:5px;letter-spacing:0;flex-wrap:wrap;align-content:center}.turn-clock{font-size:8px;padding:3px 4px;min-width:24px}.auto-label{margin-left:0}.room-info-note{font-size:11px}.room-info-players span{font-size:10px}.room-info-actions button{width:100%}.connection-banner{font-size:10px;gap:8px;padding:7px 10px}.connection-card{padding:30px 20px}.connection-card h1{font-size:20px}.connection-card p{font-size:11px}}@media(max-width:365px){.lobby-modes{gap:13px}.lobby-modes .play-tile{width:43vw}.lobby-modes .tile-callout{font-size:11px}.invite-block>div:first-child{gap:8px}.invite-block strong{font-size:21px}.invite-block .secondary-button{font-size:8px;padding:6px 8px}}@media(max-height:650px)and (min-width:601px){.lobby-modes .play-tile{width:150px;margin-top:17px}.lobby-modes{gap:65px}.lobby-modes .tile-callout{font-size:12px}.online-room-badge{top:47px;left:21px;font-size:8px}.room-waiting{padding-top:10px}.room-card{padding:22px}.room-card-heading{margin-bottom:17px}}@media(max-height:450px)and (min-width:601px){.lobby-modes .play-tile{width:134px;margin-top:12px}.lobby-modes{gap:60px}.lobby-modes .tile-callout{font-size:10px}.online-room-badge{top:37px;left:18px;font-size:7px;padding:3px 5px}.turn-clock{font-size:8px;min-width:22px}.room-waiting{align-items:flex-start}.room-card{max-width:560px}.room-players{grid-template-columns:1fr 1fr}.room-card-heading h1{font-size:22px}}
