:root{--ink:#283c34;--muted:#85877c;--paper:#f7f5ef;--green:#285442;--green-dark:#193e32;--line:#e5e3d9;--orange:#b77848;--cream:#f4eddf;--serif:Georgia,'Times New Roman',serif;--sans:'Segoe UI',Arial,sans-serif;font-family:var(--sans);color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.42}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #cc9b5b;outline-offset:4px}a{color:inherit}button{transition:background .18s,color .18s,box-shadow .18s}button:disabled:hover{transform:none}h1,h2,h3,p{margin:0}button{border:0}button span{pointer-events:none}.app-shell{max-width:1600px;margin:auto;padding:0 48px}.app-header{height:100px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-weight:750;font-size:28px;letter-spacing:-1.2px}.brand-mark{display:grid;place-items:center;width:43px;height:43px;border-radius:13px;background:var(--green);color:#fff6e8;font-size:32px;transform:rotate(-7deg)}.brand-dot{color:var(--orange)}.header-center{font-size:12px;color:#8a8c81;display:flex;align-items:center;gap:9px}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#8caf78;flex:none}.header-actions{display:flex;align-items:center;gap:19px}.icon-button{width:34px;height:34px;background:none;font-size:26px;position:relative}.sound-off{font-size:12px;position:absolute;right:0;bottom:5px}.quiet-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:transparent;font-size:12px;color:#707b71;padding:9px 4px;border-radius:5px}.quiet-button:hover:not(:disabled){color:var(--green);background:#eceee5}.quiet-button>span:first-child{font-size:18px}.help-icon{border:1px solid #979f90;border-radius:100%;width:17px;height:17px;display:inline-grid;place-items:center;font-size:11px!important}.portrait{background-image:url('/assets/woodland-friends.png');background-size:200% 200%;background-repeat:no-repeat;background-color:var(--cream);border-radius:50%}.animal-0{background-position:0 0}.animal-1{background-position:100% 0}.animal-2{background-position:0 100%}.animal-3{background-position:100% 100%}.profile-avatar{width:39px;height:39px;border:2px solid white;box-shadow:0 0 0 1px #e8e2d6}.page-heading{display:flex;align-items:center;justify-content:space-between;padding:35px 0 29px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:700;color:#87917f;display:flex;align-items:center;gap:7px}.eyebrow>span{height:4px;width:4px;background:#aa8057;transform:rotate(45deg)}h1{font-family:var(--serif);font-size:39px;letter-spacing:-1.35px;font-weight:400;margin:9px 0 8px;line-height:1.15}.page-heading p{color:var(--muted);font-size:12px}.outline-button{background:transparent;border:1px solid #dadfd4;border-radius:8px;padding:12px 16px;font-size:12px;display:flex;gap:9px;align-items:center}.outline-button:hover{background:#eaece2}.button-arrow{color:#8d988c;padding-left:7px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:25px;align-items:start}.play-area{background:#eeefe7;border:1px solid #e4e7dc;border-radius:16px;overflow:hidden;position:relative;min-width:0}.table-topline{height:49px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#8b9186}.room-label{font-size:9px;font-weight:700;letter-spacing:1.4px;display:flex;align-items:center;gap:8px;color:#556c59}.tiny-label{font-size:7px;color:#9b9f95;background:#e6e9df;padding:4px 5px;border-radius:3px;letter-spacing:.7px}.table-stage{height:412px;position:relative;isolation:isolate}.table-shadow{position:absolute;width:76%;height:66%;left:12%;top:21%;border-radius:50%;background:#223d28;filter:blur(25px);opacity:.16;transform:translateY(15px)}.wood-table{position:absolute;inset:47px 63px 30px;border-radius:46%;background:linear-gradient(145deg,#c3a47a,#ad8b5f 25%,#d0b48e 45%,#997b56 85%);padding:11px;box-shadow:0 8px 0 #927652,0 10px 0 #81684c,0 15px 24px #3e4b3d1c,inset 0 2px 1px #e3d2b5;transform:rotate(-.5deg)}.felt{height:100%;border-radius:inherit;background:radial-gradient(ellipse at 45% 30%,#3a7158 0%,#2c5e49 47%,#224936 100%);box-shadow:inset 0 4px 9px #14332480,inset 0 0 50px #193f3226;position:relative;overflow:hidden}.felt:after{content:'';position:absolute;inset:0;opacity:.075;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23ffffff' filter='url(%23n)' opacity='.7' d='M0 0h180v180H0z'/%3E%3C/svg%3E");pointer-events:none}.felt-line{position:absolute;inset:15px;border:1px solid #b5c59129;border-radius:inherit}.table-watermark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#c3d2ae0e;font-size:100px;line-height:1;pointer-events:none}.table-watermark span{font-family:var(--serif);font-size:28px}.seat{position:absolute;z-index:3;text-align:center;width:144px;--breath:0s}.seat-top{top:0;left:50%;transform:translateX(-50%);--breath:-1s}.seat-left{left:0;top:137px;--breath:-2s}.seat-right{right:0;top:137px;--breath:-3s}.avatar-wrap{position:relative;width:72px;height:72px;margin:auto;border:4px solid #f4f2e9;border-radius:50%;box-shadow:0 3px 10px #1b362b26;background:#eee5d5;transition:box-shadow .3s}.avatar-wrap .portrait{width:100%;height:100%;animation:breathe 5s ease-in-out infinite;animation-delay:var(--breath)}@keyframes breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-1.5px) scale(1.02)}}.seat-indicator{position:absolute;bottom:-2px;right:-1px;border:2px solid var(--paper);border-radius:50%;height:16px;width:16px;background:#8c9f74}.seat.active .avatar-wrap{box-shadow:0 0 0 3px #caa36a,0 0 0 7px #d8c49930}.seat.active .seat-indicator{background:#d3aa61;animation:pulse 1.3s ease infinite}@keyframes pulse{50%{box-shadow:0 0 0 5px #d3aa6130}}.seat-name{font-size:12px;font-weight:650;margin-top:8px;display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:5px;background:#eeefe7e8}.seat-name span{font-size:7px;font-weight:500;color:#889181;letter-spacing:.5px}.seat-meta{font-size:8px;color:#7a8475;max-width:145px;background:#eeefe7eb;border-radius:4px;padding:2px 3px;margin:1px auto 0;width:fit-content;min-height:14px}.mini-hand{height:21px;display:flex;align-items:center;justify-content:center;margin-top:5px;padding-right:6px}.mini-card{width:13px;height:19px;display:block;margin-right:-6px;border:1px solid #eee2cd;border-radius:2px;background:repeating-linear-gradient(45deg,#789282 0 2px,#526f5c 2px 4px);transform:rotate(var(--angle,0deg));box-shadow:0 1px 2px #0002}.speech-bubble{position:absolute;top:-12px;left:80%;white-space:nowrap;background:var(--cream);padding:7px 11px;border-radius:10px 10px 10px 0;box-shadow:0 2px 8px #163c2a20;font-size:12px;font-weight:700;color:var(--green);opacity:0;transition:opacity .2s;pointer-events:none}.seat-right .speech-bubble{left:auto;right:80%;border-radius:10px 10px 0 10px}.speech-bubble.visible{opacity:1}.table-welcome{position:absolute;top:142px;left:50%;transform:translateX(-50%);width:70%;text-align:center;z-index:2;color:#f4edde}.welcome-flourish{font-size:21px;color:#c4b78b;margin-bottom:9px}.table-welcome h2{font:400 25px var(--serif);letter-spacing:-.5px}.table-welcome p{font-size:10px;line-height:1.8;color:#c5d1bb;margin:10px 0 17px}.cream-button{background:#f4eddb;border:1px solid #ede2c7;color:#294e39;box-shadow:0 3px 0 #122f2838;border-radius:6px;padding:11px 16px;font-size:11px;font-weight:650;display:inline-flex;gap:19px;align-items:center}.cream-button:hover{background:#fff9e9}.table-welcome small{display:block;font-size:8px;color:#a4b59d;margin-top:12px}.table-badge{position:absolute;bottom:50px;left:50%;transform:translateX(-50%);font-size:8px;letter-spacing:.6px;white-space:nowrap;color:#a8bd9a90}.table-badge span{margin-right:6px}.hand-area{padding:0 26px;position:relative;min-height:191px}.hand-heading{display:flex;align-items:center;justify-content:space-between;min-height:36px;gap:10px}.you-label{display:flex;align-items:center;gap:8px;font-size:12px}.small-avatar{width:27px;height:27px;display:inline-block;border:2px solid #faf8ef}.team-badge{font-size:7px;font-weight:600;letter-spacing:1px;color:#8b9383;padding:5px 7px;background:#e4e8dc;border-radius:4px}.team-badge.re{background:#dce6d5;color:#426742}.team-badge.kontra{background:#e9dfcd;color:#8b693c}#hand-hint{font-size:9px;color:#8d9486;text-align:right}.hand{height:155px;position:relative;max-width:780px;margin:0 auto}.playing-card{position:absolute;width:78px;height:116px;border-radius:7px;background:#fffdf6;color:#273e35;box-shadow:0 2px 3px #273c3425,0 7px 12px #223a2613;border:1px solid #d9d9cd;overflow:hidden;padding:0;user-select:none}.playing-card.red{color:#b25340}.card-corner{position:absolute;top:6px;left:7px;display:flex;flex-direction:column;font-family:var(--serif);font-size:20px;line-height:.92;align-items:center;font-weight:600}.card-corner .suit{font-size:17px;margin-top:3px}.card-corner.bottom{top:auto;left:auto;right:7px;bottom:6px;transform:rotate(180deg)}.card-art{position:absolute;inset:26px 13px;display:flex;align-items:center;justify-content:center;font:39px var(--serif)}.card-art .portrait{width:100%;height:100%;border-radius:40% 40% 45% 45%;border:1px solid #e5dfca}.card-art.court{inset:27px 14px 24px}.court-crown{position:absolute;top:15px;left:50%;transform:translateX(-50%);font-size:11px;color:#bda46c}.ace-ornament{border:1px solid #c5b17e66;position:absolute;width:36px;height:49px;transform:rotate(30deg);border-radius:40%}.card-pips{position:absolute;inset:28px 18px 26px;display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:1fr;align-items:center;justify-items:center;font-size:15px;line-height:.8}.card-pips span:nth-child(n+5){transform:rotate(180deg)}.hand .playing-card{left:50%;top:11px;transform:translateX(var(--x)) translateY(var(--y)) rotate(var(--rot));transform-origin:50% 140%;transition:transform .32s cubic-bezier(.2,.75,.2,1),filter .25s,box-shadow .25s;z-index:var(--index)}.hand .playing-card:hover:not(:disabled),.hand .playing-card:focus-visible:not(:disabled){transform:translateX(var(--x)) translateY(calc(var(--y) - 19px)) rotate(0deg);z-index:50;box-shadow:0 7px 15px #183e332d,0 0 0 2px #cfb47e}.hand .playing-card:disabled{opacity:1}.hand .playing-card.illegal{filter:brightness(.87) saturate(.55)}.hand .playing-card.playable:after{content:'';position:absolute;bottom:3px;width:16px;height:2px;background:#608267;border-radius:4px;left:calc(50% - 8px)}.hand.preview .playing-card{filter:saturate(.7);pointer-events:none}.game-toolbar{border-top:1px solid #e0e5d7;padding:11px 20px;min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#eff1e8}.toolbar-left,.toolbar-right{display:flex;gap:17px;align-items:center}#turn-label{font-size:9px;color:#79896f;display:flex;align-items:center;gap:6px}.announce-button{background:#dfe7d7;border:1px solid #cedac7;border-radius:6px;padding:9px 14px;font-size:11px;font-weight:650;min-width:96px}.announce-button:not(:disabled){background:var(--green);color:#fff7e8;border-color:var(--green)}.sidebar{display:flex;flex-direction:column;gap:16px}.side-card{background:#faf9f4;border:1px solid var(--line);border-radius:12px;padding:21px}.section-eyebrow{font-size:8px;letter-spacing:1.5px;font-weight:700;color:#909682;display:flex;align-items:center;justify-content:space-between;gap:10px}.section-eyebrow>span{font-size:9px;letter-spacing:0;color:#a1a792}.side-card h2{font-family:var(--serif);font-size:22px;letter-spacing:-.6px;font-weight:400;margin-top:10px;white-space:nowrap}.side-card h2>span{color:#b37e4f}.side-intro{font-size:10px;color:#959b8c;margin-top:8px}.player-list{display:flex;flex-direction:column;gap:17px;margin-top:25px}.player-row{display:flex;align-items:center;gap:10px}.player-row .portrait{width:38px;height:38px;flex:none;border:1px solid #e8e1d0}.player-details{flex:1;min-width:0}.player-details strong{font-size:11px;font-weight:650;display:block;overflow:hidden;text-overflow:ellipsis}.player-details small{display:block;font-size:9px;color:#949b8d;margin-top:4px}.player-total{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.player-total small{display:block;font-size:8px;font-weight:400;color:#9da18f;text-align:right;margin-top:3px}.sidebar-note{border-top:1px solid var(--line);margin-top:21px;padding-top:16px;display:flex;gap:9px;color:#8c977f}.sidebar-note>span{font-size:20px;color:#aeb695}.sidebar-note p{font-size:9px;line-height:1.8}.rules-card{padding:17px 20px}.section-eyebrow button{padding:0;font-size:17px;background:none;color:#899981}.rule-summary{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.rule-chip{font-size:9px;background:#eeeee4;border:1px solid #e7e6d9;padding:5px 7px;border-radius:5px;color:#818a76;display:flex;align-items:center;gap:5px}.rule-chip span{color:#688462}.tempo-row{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding-top:11px;font-size:10px;color:#939988}.tempo-row select{color:#5f765c;background:transparent;border:0;font-size:10px;max-width:110px;cursor:pointer}.tip-card{border:1px solid #e9e3d1;border-radius:10px;background:#f0eddf;padding:15px 15px 16px;display:flex;gap:10px}.tip-symbol{color:#a89562;font-size:24px}.tip-card .section-eyebrow{font-size:7px;color:#a1916d;letter-spacing:1.2px;margin-top:2px}.tip-card p{font-size:10px;color:#8b846e;line-height:1.8;margin-top:7px}.score-link{display:flex;align-items:center;justify-content:space-between;background:none;font-size:11px;color:#829076;padding:0 4px}.score-link:hover{color:var(--green)}footer{display:flex;justify-content:space-between;color:#a3a799;font-size:9px;padding:23px 1px 28px;gap:15px}.footer-club{color:#a6b096;margin:0 5px}.trick-zone{position:absolute;inset:0;pointer-events:none;z-index:4}.trick-card{left:calc(50% - 39px);top:calc(55% - 58px);transform:translate(var(--tx),var(--ty)) rotate(var(--tr));z-index:var(--order);box-shadow:0 4px 6px #092c303b}.table-message{position:absolute;z-index:5;left:50%;top:72%;transform:translate(-50%,-50%);text-align:center;color:#e9ead6;font-size:11px;white-space:nowrap;padding:6px 13px;border-radius:20px;background:#1b433675;pointer-events:none;opacity:0;transition:opacity .2s}.table-message.visible{opacity:1}.deck{display:none;position:absolute;left:calc(50% - 31px);top:calc(53% - 46px);width:62px;height:92px;border:3px solid #f2ebd9;border-radius:6px;background:repeating-linear-gradient(45deg,#80927a 0 3px,#4a6e59 3px 6px);box-shadow:2px 3px 0 #d2cbb7,4px 6px 0 #eee9da,6px 9px 0 #d3c8b1;z-index:6}.deck.visible{display:block}.flying-card{position:fixed;z-index:100;pointer-events:none;margin:0;transform-origin:center;will-change:transform,opacity}.flying-back{width:50px;height:74px;border:3px solid #faf3e3;border-radius:5px;background:repeating-linear-gradient(45deg,#829980 0 3px,#486d58 3px 6px);box-shadow:0 4px 9px #1833283b}.seat.won .avatar-wrap{animation:celebrate .7s cubic-bezier(.3,.2,.3,1)}@keyframes celebrate{25%{transform:translateY(-8px) rotate(-6deg)}55%{transform:translateY(-3px) rotate(5deg)}80%{transform:translateY(-4px) rotate(-2deg)}}
dialog{border:1px solid #e2e1d4;border-radius:18px;padding:27px;background:#faf9f3;color:var(--ink);box-shadow:0 24px 100px #0e302c42;width:min(580px,calc(100vw - 30px));max-height:90dvh;overflow:auto}dialog::backdrop{background:#16362b66;backdrop-filter:blur(6px)}dialog[open]{animation:modal-in .23s ease-out}@keyframes modal-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.modal-header h2{font:400 28px var(--serif);letter-spacing:-.7px;margin-top:9px}.close-button{font-size:26px;width:30px;height:30px;background:#eeeee5;border-radius:50%;color:#7c8c75;flex:none;line-height:1}.modal-intro{font-size:12px;line-height:1.7;color:#86917f;margin-top:17px}.preset-row{display:flex;gap:9px;margin:20px 0 12px}.preset{font-size:11px;padding:9px 13px;background:#eceee3;border:1px solid #dfe5d7;border-radius:7px}.preset.active{background:var(--green);color:#fff9e9;border-color:var(--green)}.rule-field{padding:13px 0;display:flex;justify-content:space-between;gap:25px;align-items:center;border-bottom:1px solid #e8e8dd;cursor:pointer}.rule-field strong{font-size:12px;font-weight:600;display:block}.rule-field small{font-size:10px;line-height:1.65;display:block;color:#8c9685;margin-top:4px}.toggle{appearance:none;-webkit-appearance:none;flex:none;width:33px;height:20px;position:relative;background:#d9ddcf;border-radius:20px;cursor:pointer;transition:background .2s}.toggle:before{content:'';position:absolute;top:3px;left:3px;height:14px;width:14px;border-radius:50%;background:white;box-shadow:0 1px 2px #0002;transition:transform .2s}.toggle:checked{background:var(--green)}.toggle:checked:before{transform:translateX(13px)}.settings-extras{margin:19px 0;display:flex;flex-direction:column;gap:14px;font-size:11px}.settings-extras>label:first-child{display:flex;align-items:center;justify-content:space-between}.settings-extras input[type=text],input[name=name]{border:1px solid #daddcf;background:#fffdf7;padding:8px 10px;border-radius:5px;max-width:190px;font-size:12px}.checkbox-line{display:flex;align-items:center;gap:8px}.checkbox-line input{accent-color:var(--green)}.scope-note{font-size:10px;line-height:1.75;color:#929783;background:#f0f0e7;padding:12px;border-radius:7px}.modal-footer{margin-top:22px;display:flex;justify-content:space-between;gap:14px;align-items:center}.primary-button{background:var(--green);color:#f9f4e7;border-radius:7px;padding:12px 18px;font-size:12px;font-weight:600;display:inline-flex;gap:18px;align-items:center;justify-content:center}.primary-button:hover{background:#35664e}.help-content{font-size:12px;line-height:1.8;color:#7e8a74;margin-top:20px}.help-content h3{font-size:13px;color:var(--ink);margin:20px 0 6px}.help-content .scope-note{margin-top:20px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);max-width:calc(100vw - 30px);background:#244c3e;color:#f8f3e4;border:1px solid #54755a;padding:13px 23px;border-radius:9px;box-shadow:0 5px 30px #17382b30;z-index:300;opacity:0;pointer-events:none;font-size:12px;text-align:center;transition:transform .2s,opacity .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.result-top{text-align:center;padding:8px 0 20px}.result-top .portrait{height:80px;width:80px;margin:auto;border:4px solid #ebe5d4}.result-top .eyebrow{justify-content:center;margin-top:17px}.result-top h2{font:400 34px var(--serif);margin:9px 0}.result-top p{font-size:12px;color:#8b9483;line-height:1.8}.result-score{display:grid;grid-template-columns:1fr 1fr;background:#ecede2;border-radius:10px;padding:16px;text-align:center;margin:8px 0 20px}.result-score>div:first-child{border-right:1px solid #d7ddcc}.result-score strong{display:block;font:30px var(--serif);margin:5px}.result-score span,.result-score small{font-size:10px;color:#8b927c}.result-row{display:flex;justify-content:space-between;gap:15px;font-size:11px;padding:8px 0;border-bottom:1px solid #ecece1;color:#7b8971}.result-row .positive{color:#3c7850}.result-row .negative{color:#b36a4e}.result-total{font-size:15px;font-weight:600;margin-top:10px;color:var(--ink)}.result-players{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0;font-size:10px;color:#78866e}.result-players span{background:#eaece0;padding:6px 9px;border-radius:5px}.result-modal>.close-button{position:absolute;top:20px;right:20px}.last-trick-cards{display:flex;justify-content:center;gap:16px;margin:26px 0 17px}.last-card-wrap{text-align:center}.last-card-wrap .playing-card{position:relative;display:block}.last-card-wrap small{display:block;font-size:10px;color:#8b937f;margin-top:10px}.last-summary{text-align:center;font-size:12px;color:#7a8b71;line-height:1.8;margin-bottom:10px}.score-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:22px;text-align:right}.score-table th,.score-table td{padding:11px 5px;border-bottom:1px solid #e7e8dc}.score-table th{font-size:10px;color:#8e9982}.score-table td:first-child,.score-table th:first-child{text-align:left}.empty-scores{font-size:13px;line-height:1.8;color:#8a9580;padding:28px 0}.resume-note{font-size:9px;color:#c5d1bb}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
@media(min-width:1400px){.table-stage{height:440px}.wood-table{inset:50px 68px 28px}.table-welcome{top:153px}.seat-left,.seat-right{top:150px}.hand-area{min-height:204px}.hand{height:168px}.hand .playing-card{width:87px;height:129px}.hand .card-corner{font-size:23px}.hand .card-pips{inset:30px 20px;font-size:17px}.hand .card-art.court{inset:30px 16px}.game-layout{grid-template-columns:minmax(0,1fr) 300px;gap:28px}.side-card{padding:24px}.player-list{gap:19px}.rules-card{padding:20px 23px}.tip-card{padding:18px}.page-heading{padding:39px 0 32px}}
@media(max-width:1150px){.app-shell{padding:0 28px}.game-layout{grid-template-columns:minmax(0,1fr) 245px;gap:17px}.side-card{padding:17px}.side-card h2{font-size:20px}.table-stage{height:390px}.wood-table{inset:50px 40px 27px}.seat{width:113px}.seat-left{left:-5px}.seat-right{right:-5px}.avatar-wrap{height:61px;width:61px}.seat-meta{max-width:105px;font-size:7px}.table-welcome{top:137px}.table-welcome h2{font-size:22px}.table-badge{font-size:7px}.hand-area{padding:0 15px}.hand-heading{gap:4px}.team-badge{font-size:6px}.toolbar-left,.toolbar-right{gap:9px}.game-toolbar{padding:10px 12px}.game-toolbar .quiet-button{font-size:10px}#turn-label{font-size:8px}.header-center{font-size:10px}.table-topline{padding:0 15px}.table-topline #round-label{font-size:9px}.tiny-label{display:none}}
@media(max-width:960px){.app-shell{padding:0 22px}.app-header{height:80px}.header-center{display:none}.game-layout{grid-template-columns:minmax(0,1fr) 220px;gap:14px}.page-heading{padding:25px 0}h1{font-size:33px}.side-card{padding:15px}.side-card h2{font-size:18px}.side-intro{font-size:9px}.sidebar{gap:12px}.player-list{margin-top:20px;gap:14px}.player-row .portrait{height:33px;width:33px}.sidebar-note{margin-top:15px;padding-top:12px}.sidebar-note p{font-size:8px}.table-welcome h2{font-size:21px}.table-welcome{width:70%;top:140px}.table-welcome p{font-size:9px}.table-stage{height:370px}.wood-table{inset:50px 30px 23px}.table-badge{bottom:40px}.seat-left,.seat-right{top:130px}.seat{width:94px}.seat-left{left:-6px}.seat-right{right:-6px}.avatar-wrap{height:55px;width:55px}.seat-meta{max-width:86px}.seat-name{font-size:10px}.seat-name span{font-size:6px}.hand .playing-card{width:68px;height:105px}.hand{height:148px}.hand-area{min-height:180px}.hand-heading .team-badge{max-width:110px;font-size:6px}.hand-heading #hand-hint{font-size:8px;max-width:145px}.card-corner{font-size:18px;top:5px;left:5px}.card-corner .suit{font-size:15px}.card-corner.bottom{right:5px;bottom:5px}.card-pips{inset:25px 15px 24px;font-size:13px}.card-art.court{inset:25px 13px 22px}.cream-button{font-size:10px;padding:10px 13px;gap:10px}.table-welcome small{font-size:7px}.game-toolbar{gap:5px}.toolbar-left,.toolbar-right{gap:6px}.announce-button{font-size:10px;padding:8px 8px;min-width:79px}.toolbar-left .quiet-button{font-size:9px}.toolbar-left .quiet-button>span:first-child{font-size:15px}#turn-label{max-width:83px;line-height:1.5}.tip-card{padding:12px}.tip-card p{font-size:9px}}
@media(max-width:760px){.app-shell{padding:0 16px}.game-layout{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:12px}.round-card{grid-row:span 2}.tip-card{align-self:start}.score-link{grid-column:2;padding:3px}.table-stage{height:395px}.wood-table{inset:44px 45px 28px}.seat{width:130px}.avatar-wrap{height:66px;width:66px}.seat-left,.seat-right{top:134px}.seat-name{font-size:12px}.seat-meta{max-width:112px;font-size:8px}.seat-left{left:0}.seat-right{right:0}.table-welcome{top:142px}.table-welcome h2{font-size:26px}.table-welcome p{font-size:11px}.table-welcome small{font-size:8px}.table-welcome .cream-button{font-size:12px;padding:12px 16px}.table-badge{bottom:49px}.hand .playing-card{width:77px;height:116px}.hand-area{padding:0 20px;min-height:190px}.hand{height:152px}.hand-heading #hand-hint{max-width:none;font-size:9px}.team-badge{font-size:7px!important;max-width:none!important}.game-toolbar{padding:11px 17px}.toolbar-left,.toolbar-right{gap:12px}.toolbar-left .quiet-button{font-size:11px}#turn-label{max-width:none;font-size:9px}.announce-button{min-width:85px;font-size:11px}.page-heading{padding:24px 0}.outline-button{font-size:11px;padding:10px}.header-actions{gap:11px}.brand{font-size:25px}.header-actions .quiet-button{font-size:11px}.side-card h2{font-size:23px}.player-row .portrait{height:36px;width:36px}footer>span:last-child{display:none}.sidebar-note p{font-size:9px}.player-list{gap:16px}.side-intro{font-size:10px}}
@media(max-width:480px){.app-shell{padding:0 10px}.app-header{height:70px}.brand{font-size:23px;gap:8px}.brand-mark{width:35px;height:35px;font-size:28px;border-radius:10px}.header-actions{gap:7px}.header-actions .quiet-button>span:last-child{display:none}.profile-avatar{height:31px;width:31px}.page-heading{padding:23px 2px 20px}.page-heading h1{font-size:29px;letter-spacing:-1px}.eyebrow{font-size:7px;letter-spacing:1.5px}.page-heading p{font-size:10px}.page-heading .outline-button{font-size:10px;padding:8px;gap:4px}.button-arrow{display:none}.play-area{border-radius:13px}.table-topline{height:41px;padding:0 12px}.room-label{font-size:8px;gap:5px}.table-topline #round-label{font-size:8px}.table-stage{height:340px}.wood-table{inset:44px 15px 21px;padding:8px}.felt-line{inset:10px}.seat{width:82px}.seat-top{top:0}.seat-left,.seat-right{top:115px}.seat-left{left:-3px}.seat-right{right:-3px}.avatar-wrap{height:49px;width:49px;border-width:3px}.seat-name{font-size:9px;padding:3px 5px;margin-top:5px}.seat-name span{font-size:6px}.seat-meta{font-size:7px;max-width:77px;min-height:12px}.seat-indicator{height:12px;width:12px}.table-welcome{top:124px;width:70%}.table-welcome h2{font-size:20px}.welcome-flourish{font-size:15px;margin-bottom:7px}.table-welcome p{font-size:9px;margin:8px 0 13px}.table-welcome .cream-button{font-size:10px;padding:10px 12px;gap:9px}.table-welcome small{font-size:6px;margin-top:10px}.table-badge{bottom:37px;font-size:6px;letter-spacing:.3px}.hand-area{padding:0 10px;min-height:164px}.hand{height:129px}.hand .playing-card{width:62px;height:97px;top:9px;border-radius:5px}.card-corner{font-size:16px;left:5px;top:5px}.card-corner .suit{font-size:13px;margin-top:2px}.card-corner.bottom{bottom:5px;right:5px}.card-pips{inset:23px 14px;font-size:11px}.card-art.court{inset:23px 12px 21px}.court-crown{top:13px;font-size:9px}.card-art{font-size:29px}.ace-ornament{width:27px;height:37px}.hand-heading{min-height:31px}.hand-heading .you-label{gap:5px;font-size:10px}.small-avatar{height:22px;width:22px}.team-badge{font-size:6px!important;letter-spacing:.5px;padding:4px}.hand-heading #hand-hint{font-size:8px;max-width:145px}.game-toolbar{padding:9px 10px;min-height:51px;flex-wrap:wrap}.toolbar-left,.toolbar-right{gap:8px}.toolbar-left .quiet-button{font-size:9px}.toolbar-left .quiet-button>span:first-child{font-size:15px}#turn-label{font-size:8px;max-width:70px;line-height:1.4}.announce-button{padding:8px;min-width:75px;font-size:10px}.sidebar{grid-template-columns:1fr 1fr;gap:10px}.side-card{padding:14px}.side-card h2{font-size:19px;white-space:normal}.section-eyebrow{font-size:7px;letter-spacing:.9px}.section-eyebrow>span{font-size:8px}.side-intro{font-size:8px;line-height:1.7}.player-list{gap:13px;margin-top:17px}.player-row{gap:7px}.player-row .portrait{width:30px;height:30px}.player-details strong{font-size:10px}.player-details small{font-size:8px}.player-total{font-size:11px}.sidebar-note{gap:6px}.sidebar-note p{font-size:8px}.rule-chip{font-size:8px;padding:5px;gap:3px}.rule-summary{gap:4px;margin:10px 0}.tempo-row{flex-wrap:wrap;gap:8px;font-size:9px}.tempo-row select{font-size:9px}.tip-card{gap:7px;padding:11px}.tip-symbol{font-size:17px}.tip-card .section-eyebrow{font-size:6px;letter-spacing:.5px}.tip-card p{font-size:8px}.score-link{font-size:10px}.trick-card{width:65px;height:99px;left:calc(50% - 32.5px);top:calc(55% - 49.5px)}.table-message{font-size:9px;padding:5px 8px;top:77%;max-width:85%;white-space:normal;min-width:130px}.mini-card{width:11px;height:17px;margin-right:-6px}.mini-hand{margin-top:3px}.speech-bubble{font-size:9px;left:68%;padding:5px 8px}.seat-right .speech-bubble{right:68%}dialog{padding:21px}.modal-header h2{font-size:25px}.modal-footer{gap:9px}.modal-footer .quiet-button{font-size:10px}.primary-button{font-size:11px;padding:11px 13px;gap:10px}.last-trick-cards{gap:9px}.last-card-wrap .playing-card{width:62px;height:97px}.score-table{font-size:11px}.score-table th{font-size:9px}.result-top h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
