@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@1,700&display=swap";:root{font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f4f1e8;background:#101613;font-synthesis:none;--bg: #101613;--panel: #19211d;--panel-light: #222c26;--line: #334139;--muted: #96a39b;--gold: #d9b86c;--gold-light: #f0d797;--green: #1f5a42;--red: #d75959}*{box-sizing:border-box}html,body,#root{min-height:100%;overscroll-behavior:none}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}button:disabled{opacity:.35;cursor:default}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.04em}h2{margin-bottom:8px;font-size:20px}h3{margin:22px 0 10px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.page{width:min(100%,620px);min-height:100vh;margin:0 auto;padding:calc(24px + env(safe-area-inset-top)) 18px calc(28px + env(safe-area-inset-bottom))}.eyebrow,.section-label{display:block;color:var(--gold);font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.muted{color:var(--muted)}.panel{padding:18px;margin-bottom:14px;background:linear-gradient(145deg,#232e27f5,#171f1bf5);border:1px solid var(--line);border-radius:20px;box-shadow:0 14px 35px #00000024}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.section-heading h2,.section-heading p{margin-bottom:0}.section-heading>span{color:var(--gold);font-weight:800}.primary,.secondary{min-height:50px;padding:0 20px;border:0;border-radius:14px;font-weight:800;cursor:pointer}.primary{color:#1d211b;background:linear-gradient(135deg,var(--gold-light),var(--gold));box-shadow:0 8px 25px #d9b86c29}.secondary{color:var(--gold-light);background:#d9b86c14;border:1px solid rgba(217,184,108,.3)}.wide{width:100%}.text-button{color:var(--muted);background:none;border:0;padding:15px;width:100%}.waiting{padding:18px;text-align:center;color:var(--muted);font-size:13px}.home-page{display:flex;flex-direction:column;justify-content:center}.hero{text-align:center;padding:20px 0 28px}.hero h1{margin:12px 0 14px;font-size:clamp(44px,12vw,66px);line-height:.92;font-weight:800}.hero h1 em{color:var(--gold);font-family:Playfair Display,Georgia,serif;font-weight:700}.hero p{color:var(--muted);font-size:14px;line-height:1.7}.logo-card{position:relative;display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;width:64px;height:84px;padding-left:13px;margin-bottom:22px;color:#171c18;background:#f4f0e5;border-radius:9px;box-shadow:8px 8px #b89a57,0 12px 35px #0008;transform:rotate(-7deg);font-family:Georgia,serif}.logo-card span{font-size:31px;font-weight:700;line-height:1}.logo-card b{font-size:28px;line-height:1}.join-form h2{margin-top:7px}.join-form label{display:block;margin:17px 0}.join-form label>span{display:block;margin-bottom:7px;font-size:12px;font-weight:700}.join-form label small{color:var(--muted);font-weight:400}.join-form input{width:100%;height:52px;padding:0 15px;color:#fff;background:#111813;border:1px solid var(--line);border-radius:12px;font-size:16px}.join-form input::placeholder{color:#647168}.form-hint{display:block;margin-top:12px;text-align:center;color:var(--muted)}.round-chips{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;margin-top:12px}.round-chips span{padding:6px 10px;color:var(--muted);border:1px solid var(--line);border-radius:20px;font-size:10px}.brand{padding:10px 2px 22px}.brand h1{margin:8px 0;font-size:35px}.brand p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.invite-panel{display:flex;align-items:center;gap:12px}.invite-panel>div{flex:1;min-width:0}.invite-panel code{display:block;margin-top:7px;overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.invite-panel .secondary{min-height:40px;padding:0 12px;font-size:11px}.player-slots{display:grid;grid-template-columns:1fr 1fr;gap:9px}.player-slot{display:grid;grid-template-columns:30px 1fr;align-items:center;min-height:66px;padding:10px;color:var(--muted);background:#131b16;border:1px dashed #3a473f;border-radius:13px}.player-slot.filled{color:#fff;border-style:solid}.player-slot .seat{grid-row:span 2;display:grid;place-items:center;width:25px;height:25px;color:var(--gold);background:#29342d;border-radius:50%;font-size:11px}.player-slot strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.player-slot small{color:var(--muted);font-size:9px}.player-slot i{display:inline-block;width:5px;height:5px;margin-right:5px;background:#69746d;border-radius:50%}.player-slot i.online{background:#65c78d}.player-slot .muted{font-size:10px}.round-list{display:flex;flex-direction:column;gap:8px}.round-row{display:flex;align-items:center;justify-content:space-between;min-height:54px;padding:8px 10px;background:#141c17;border:1px solid transparent;border-radius:12px}.round-row.selected{background:#d9b86c0d;border-color:#d9b86c38}.round-row label{display:flex;align-items:center;gap:9px;cursor:pointer}.round-row input{position:absolute;opacity:0}.custom-check{display:grid;place-items:center;width:22px;height:22px;color:#19211c;background:#111712;border:1px solid #4b5a50;border-radius:6px;font-size:13px}.selected .custom-check{background:var(--gold);border-color:var(--gold)}.round-row label strong{font-size:13px}.round-row label small{color:var(--muted);font-size:9px}.order-controls{display:flex;align-items:center;gap:4px}.order-controls span{margin-right:4px;color:var(--gold);font-size:11px}.order-controls button{width:29px;height:29px;color:var(--gold);background:#2b362f;border:0;border-radius:7px}.host-note{margin:14px 0 0;font-size:11px}.bot-controls{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.bot-controls .secondary{min-height:38px;font-size:11px}.bot-controls .text-button{width:auto;padding:10px;font-size:10px}.bot-controls small{flex-basis:100%;font-size:9px}.game-page{width:min(100%,760px);min-height:100vh;margin:0 auto;padding:calc(15px + env(safe-area-inset-top)) 12px calc(22px + env(safe-area-inset-bottom))}.game-header{display:flex;align-items:center;justify-content:space-between;padding:0 5px 12px}.game-header h1{margin:3px 0 0;font-size:26px}.trump-info{display:flex;align-items:center;gap:9px;padding:6px 11px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.trump-info span{color:var(--muted);font-size:10px}.trump-info strong{font-size:27px}.scoreboard{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:10px}.score-player{position:relative;min-width:0;padding:8px 5px;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;transition:.2s}.score-player.active{border-color:var(--gold);background:#2b3024;box-shadow:0 0 15px #d9b86c1a}.score-player strong{display:block;overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.score-player b{display:block;margin:3px 0;color:var(--gold-light);font-size:14px}.score-player small{display:block;color:var(--muted);font-size:7px;white-space:nowrap}.player-number{position:absolute;top:3px;left:5px;color:#66746b;font-size:7px}.open-trump{display:flex;align-items:center;justify-content:center;gap:8px;height:48px;margin-bottom:8px;color:var(--muted);text-align:center;font-size:9px}.open-trump .card{width:33px;height:46px;border-radius:4px}.open-trump .card-corner{top:2px;left:2px}.open-trump .card-corner b{font-size:9px}.open-trump .card-corner i{margin-top:0;font-size:8px}.open-trump .card-corner.bottom{top:auto;right:2px;bottom:2px;left:auto}.open-trump .card-pips{top:12px;right:8px;bottom:12px;left:8px}.open-trump .card-pips i{font-size:5px}.open-trump .card-court{top:12px;right:8px;bottom:12px;left:8px}.open-trump .card-court b{font-size:12px}.open-trump .card-court i{font-size:10px}.open-trump .poker-label{display:none}.table{padding:6px;background:#171e19;border:1px solid #344239;border-radius:25px;box-shadow:inset 0 0 0 1px #0b0e0c;transition:border-color .2s,box-shadow .2s}.table.drop-target-active{border-color:var(--gold);box-shadow:0 0 28px #d9b86c47,inset 0 0 0 1px #0b0e0c}.table-felt{position:relative;display:grid;place-items:center;min-height:210px;padding:25px 10px 30px;overflow:hidden;background:radial-gradient(ellipse at center,#286449,#153b2c 75%);border:1px solid #3b745a;border-radius:19px;box-shadow:inset 0 0 45px #081c13aa}.table-felt:before{position:absolute;top:10px;right:10px;bottom:10px;left:10px;content:"";border:1px solid rgba(217,184,108,.12);border-radius:13px;pointer-events:none}.drop-hint{position:absolute;z-index:5;top:12px;padding:6px 12px;color:#1d211b;background:var(--gold-light);border-radius:20px;font-size:10px;font-weight:800;animation:drop-pulse .8s infinite}.table-message{color:#fff6;text-align:center}.table-message span{font-size:40px}.table-message p{margin:4px 0 0;font-size:11px}.trick-cards{z-index:1;display:flex;align-items:flex-start;justify-content:center;flex-wrap:wrap;gap:8px}.played-card{display:flex;flex-direction:column;align-items:center;gap:3px;animation:card-to-table .28s cubic-bezier(.2,.8,.2,1)}.played-card>span{max-width:66px;overflow:hidden;color:#e2e7df;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.played-card small{color:var(--gold-light);font-size:7px}.trick-result{position:absolute;bottom:9px;color:var(--gold-light);font-size:9px;animation:panel-in .3s ease}.score-player.active{animation:turn-glow 2s infinite}.card{position:relative;display:block;flex:0 0 auto;width:64px;height:90px;padding:0;color:#151a17;background:linear-gradient(145deg,#fffef9,#e9e4d8);border:1px solid #fff;border-radius:7px;box-shadow:0 4px 8px #0005;font-family:Georgia,serif;-webkit-user-select:none;user-select:none}.card.red,.trump-suit-card.red{color:#bd3434}.card-corner{position:absolute;z-index:2;top:5px;left:5px;display:flex;flex-direction:column;align-items:center;line-height:.95}.card-corner b{font-size:18px}.card-corner i{margin-top:3px;font-size:15px;font-style:normal}.card-corner.bottom{top:auto;right:5px;bottom:5px;left:auto;transform:rotate(180deg)}.card-pips{position:absolute;top:22px;right:15px;bottom:20px;left:15px;display:grid;grid-template-columns:repeat(2,1fr);align-items:center;justify-items:center;line-height:.85}.card-pips i{font-size:12px;font-style:normal}.card-pips.pips-9 i,.card-pips.pips-10 i{font-size:10px}.card-court{position:absolute;top:23px;right:15px;bottom:21px;left:15px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:4px;opacity:.9}.card-court b{font-size:26px;line-height:1}.card-court i{font-size:20px;font-style:normal}.card.small{width:52px;height:73px}.card.small .card-corner{top:4px;left:4px}.card.small .card-corner b{font-size:14px}.card.small .card-corner i{margin-top:2px;font-size:11px}.card.small .card-corner.bottom{top:auto;right:4px;bottom:4px;left:auto}.card.small .card-pips{top:18px;right:12px;bottom:17px;left:12px}.card.small .card-pips i{font-size:9px}.card.small .card-court{top:19px;right:12px;bottom:17px;left:12px}.card.small .card-court b{font-size:20px}.card.small .card-court i{font-size:16px}.poker-card{box-shadow:0 0 0 2px var(--gold),0 4px 10px #0006}.poker-label{position:absolute;z-index:3;right:3px;bottom:3px;padding:1px 2px;color:#806322;background:#fff9e7;border-radius:2px;font-family:Manrope,sans-serif;font-size:5px;font-weight:800;letter-spacing:.06em}.card-back{display:flex;align-items:center;justify-content:center;padding:0;color:var(--gold);background:repeating-linear-gradient(45deg,#203a2d,#203a2d 4px,#182c22 4px,#182c22 8px);border:3px solid #d4c9a8}.card-back span{font-size:24px}.trump-suit-card{position:relative;display:grid;place-items:center;width:39px;height:53px;color:#151a17;background:linear-gradient(145deg,#fffef9,#e9e4d8);border:1px solid #fff;border-radius:6px;box-shadow:0 3px 8px #0005;font-family:Georgia,serif}.trump-info .trump-suit-card span{color:inherit;font-size:27px;line-height:1}.trump-suit-card i{position:absolute;top:3px;left:4px;font-size:11px;font-style:normal}.trump-suit-card i:last-child{top:auto;right:4px;bottom:3px;left:auto;transform:rotate(180deg)}.turn-banner{margin:10px 0 3px;color:var(--muted);text-align:center;font-size:11px}.turn-banner.your-turn{color:var(--gold-light);font-weight:800}.hand-section{margin-top:8px}.hand-label{display:flex;justify-content:space-between;padding:0 4px 6px;color:var(--muted);font-size:9px}.hand{display:flex;align-items:flex-end;justify-content:center;min-height:108px;padding:10px 26px 12px;overflow:visible;touch-action:none}.hand-card{flex:0 1 64px;min-width:0;max-width:64px;padding:0;margin:0;background:none;border:0;border-radius:7px;cursor:grab;transform-origin:bottom center;transition:transform .16s cubic-bezier(.2,.8,.2,1),opacity .15s,filter .15s;touch-action:none}.hand-card .card{pointer-events:none}.hand-card.fanned{filter:brightness(1.04)}.hand-card.dragging{cursor:grabbing;transition:none;opacity:1;filter:drop-shadow(0 15px 12px #0008)}.hand-card:disabled{opacity:.46;cursor:default}.hand-card:disabled .poker-card{opacity:1}.hand-hint{margin-top:-3px;color:var(--muted);text-align:center;font-size:8px;animation:hint-in .4s ease}.hidden-hand{display:flex;justify-content:center;min-height:87px;padding-top:4px;overflow:hidden}.hidden-hand .card{margin-right:-40px}.action-panel{margin:10px 0;padding:15px;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:15px;text-align:center;font-size:12px;animation:panel-in .25s ease}.waiting-bid{display:flex;align-items:center;justify-content:center;gap:7px}.pulse{display:inline-block;width:7px;height:7px;margin-right:2px;background:var(--gold);border-radius:50%;animation:pulse 1.4s infinite}.bid-status{display:flex;align-items:flex-end;flex-direction:column;gap:5px}.bid-timer{min-width:43px;color:var(--gold-light);font-family:Manrope,sans-serif;font-size:17px;font-variant-numeric:tabular-nums;text-align:center}.bid-timer.urgent{color:#ef7777;animation:pulse .7s infinite}.bidding-panel{color:#fff;text-align:left}.bidding-panel h2{margin:4px 0 0;font-size:17px}.dark-badge{padding:4px 7px;color:var(--gold)!important;border:1px solid var(--gold);border-radius:6px;font-size:8px}.trump-choice{margin:12px 0}.trump-choice>span{color:var(--muted);font-size:10px}.trump-choice>div{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:7px}.trump-choice button{padding:7px 2px;color:#fff;background:#101712;border:1px solid var(--line);border-radius:9px;font-size:21px;transition:transform .15s,border-color .15s}.trump-choice button.active{color:var(--gold-light);border-color:var(--gold);background:#302e22;transform:translateY(-2px)}.trump-choice button small{display:block;margin-top:2px;color:var(--muted);font-size:7px}.bid-buttons{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:12px 0 7px}.bid-buttons button{height:39px;color:var(--gold-light);background:#28332c;border:1px solid #445348;border-radius:9px;font-size:13px;font-weight:800;transition:transform .12s,background .12s}.bid-buttons button:not(:disabled):active{transform:scale(.92);background:#3b483e}.modal-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#050a07d1;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.modal{width:min(100%,420px);max-height:90vh;padding:23px;overflow-y:auto;background:linear-gradient(145deg,#263129,#151d18);border:1px solid #536158;border-radius:22px;box-shadow:0 25px 80px #0009}.modal h2{margin:6px 0 8px;font-size:24px}.modal>p{color:var(--muted);font-size:11px;line-height:1.6}.suit-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.suit-actions button{min-height:43px;color:#f4f1e8;background:#111813;border:1px solid var(--line);border-radius:10px;font-size:12px}.suit-actions .trump-request{grid-column:span 2;color:var(--gold-light);border-color:var(--gold)}.suit-actions.compact button{font-size:11px}.result-list{margin:20px 0}.result-list>div{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.result-list span{font-size:13px}.result-list small{display:block;margin-top:3px;color:var(--muted);font-size:9px}.result-list strong{font-size:19px}.positive{color:#79d59c}.negative{color:#eb7878}.final-page{text-align:center}.trophy{display:block;margin:30px auto 20px;color:var(--gold);font-size:65px}.final-page h1{margin:10px 0;font-size:32px}.final-page>p{color:var(--gold-light)}.final-scores>div{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);text-align:left}.final-scores>div:last-child{border:0}.final-scores .place{display:grid;place-items:center;width:28px;height:28px;color:var(--gold);background:#121914;border-radius:50%}.final-scores strong{flex:1}.final-scores b{color:var(--gold-light)}.history h2{text-align:left}.history-row{padding:9px 0;border-top:1px solid var(--line);font-size:10px;text-align:left}.history-row>div{display:grid;grid-template-columns:repeat(4,1fr);margin-top:5px}.history-row small{color:var(--muted);text-align:center}.connection-banner{position:fixed;z-index:50;top:0;right:0;left:0;padding:7px;color:#1d211b;background:var(--gold);text-align:center;font-size:10px;font-weight:800}.toast{position:fixed;z-index:100;right:18px;bottom:calc(20px + env(safe-area-inset-bottom));left:18px;max-width:480px;padding:14px 18px;margin:auto;color:#fff;background:#813e3e;border:1px solid #b76868;border-radius:13px;box-shadow:0 10px 30px #0007;text-align:center;font-size:12px}.loading-screen{display:grid;place-content:center;min-height:100vh;color:var(--muted);text-align:center}.small-logo{transform:scale(.7) rotate(-7deg)}.loading-screen p{margin-top:25px;font-size:12px}@keyframes pulse{50%{opacity:.25;transform:scale(.75)}}@keyframes card-to-table{0%{opacity:0;transform:translateY(30px) scale(1.15) rotate(-4deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes panel-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-in{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes hint-in{0%{opacity:0}to{opacity:1}}@keyframes drop-pulse{50%{transform:scale(1.05);box-shadow:0 0 18px #f0d79759}}@keyframes turn-glow{50%{box-shadow:0 0 20px #d9b86c33}}.modal{animation:modal-in .25s cubic-bezier(.2,.8,.2,1)}.round-row{transition:transform .2s ease,background .2s,border-color .2s}.game-header{animation:panel-in .3s ease}@media(min-width:600px){.card{width:64px;height:90px}.hand{justify-content:center}.score-player strong{font-size:11px}.score-player small{font-size:9px}.table-felt{min-height:250px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-height:720px){.table-felt{min-height:170px}.game-header{padding-bottom:8px}.game-header h1{font-size:22px}.score-player{padding:6px 4px}}
