@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;700;800&family=Playfair+Display:wght@700&display=swap";.card-back{position:relative;overflow:hidden;background:radial-gradient(circle at 50% 45%,#397657 0 24%,#214d38 25% 62%,#153728)!important;border-color:#e6c66f!important;box-shadow:inset 0 0 0 2px #f8df922e,0 2px 5px #0008!important}.card-back:before,.card-back:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(45deg);pointer-events:none}.card-back:before{width:57%;aspect-ratio:1;border:2px solid #f3d47c;box-shadow:0 0 0 2px #77551b99}.card-back:after{width:25%;aspect-ratio:1;background:linear-gradient(135deg,#fff0ae,#c38c2d);box-shadow:0 0 0 1px #7b5518,0 0 8px #f5cc6866}:root{font-family:Manrope,sans-serif;color:#f7f1dc;background:#0b1915}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 50% -10%,#315e48,#10241d 42%,#091512)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,5vw,72px);border-bottom:1px solid #ffffff12}.brand{display:flex;align-items:center;gap:12px;color:#fff4d3;text-decoration:none;font-family:Playfair Display;font-size:22px}.mark,.wizard-seal{display:grid;place-items:center;color:#e9bd69;border:1px solid #d9a85066;background:#162e25;border-radius:50%}.mark{width:36px;height:36px}.language,.ghost{color:#e9dec1;background:transparent;border:1px solid #ffffff24;border-radius:99px;padding:9px 14px}.join-shell{min-height:calc(100vh - 72px);display:grid;place-items:center;padding:35px 20px;overflow:hidden;position:relative}.join-card{width:min(460px,100%);padding:48px;border:1px solid #d9b96a38;border-radius:28px;text-align:center;background:#122a22e8;box-shadow:0 30px 80px #0008;position:relative}.wizard-seal{width:74px;height:74px;margin:0 auto 25px;font-size:34px}.eyebrow{font-size:11px;letter-spacing:.24em;color:#d4ad60;font-weight:800}.join-card h1,.table-top h1,.final h1{font-family:Playfair Display;font-size:clamp(34px,6vw,50px);margin:8px 0}.muted{color:#aebdb5;margin-bottom:35px}.join-card form{text-align:left}.join-card label{display:block;font-size:12px;color:#b8c7be;margin:0 0 9px 4px}.join-card input{width:100%;background:#06110d;border:1px solid #ffffff22;border-radius:13px;padding:16px;color:#fff}.primary,.secondary{width:100%;border:0;border-radius:13px;padding:15px;margin-top:14px;font-weight:800}.primary{background:linear-gradient(135deg,#e7c271,#c99743);color:#1d241b}.secondary{background:#ffffff0d;color:#f5e9ca;border:1px solid #ffffff24}.error{color:#ff9a91}.cards-fan{margin-top:30px}.cards-fan i{display:inline-grid;place-items:center;width:42px;height:56px;margin:0 -5px;background:#efe7ce;color:#173328;border:2px solid #a9823e;border-radius:6px}.orb{position:absolute;border-radius:50%;border:1px solid #d6aa4d22}.orb-one{width:340px;height:340px;left:-150px;top:8%}.orb-two{width:420px;height:420px;right:-200px;bottom:-100px}.table-shell{padding:22px clamp(16px,4vw,54px) 42px;max-width:1500px;margin:auto}.table-top{display:flex;justify-content:space-between;align-items:center}.table-top h1{font-size:34px}.lobby-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:24px}.panel{background:#122a22cc;border:1px solid #ffffff15;border-radius:22px;padding:26px}.seat{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 11px;border-radius:14px;background:#07130ecf;border:1px solid #ffffff14;transition:border-color .2s,box-shadow .2s,transform .2s}.panel>.seat{margin-top:8px}.seat.mine{border-color:#dcb65b99}.seat.active{border-color:#f4cf72;box-shadow:0 0 0 3px #e5bd5b2b,0 0 28px #f0bd4d52}.avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#285541;color:#f3d78f;font-weight:800}.seat-name{min-width:0}.seat b,.seat small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seat small{color:#8fa59a;font-size:11px}.seat em.ready{color:#70d69c}.game-area{position:relative}.table-meta{display:flex;align-items:center;justify-content:center;gap:24px;margin:-8px 0 10px;color:#adc2b7;font-size:14px}.table-meta b{color:#f2d181}.trump-label{display:flex;align-items:center;gap:8px}.table-stage{position:relative;height:650px;max-width:1180px;margin:auto}.felt{position:absolute;inset:16% 15%;border:9px solid #372417;border-radius:48%/42%;background:radial-gradient(circle,#347357 0,#20513d 48%,#113526);box-shadow:inset 0 0 75px #0009,0 24px 50px #0005}.felt:after{content:"";position:absolute;inset:12px;border:1px solid #e3c27333;border-radius:inherit;pointer-events:none}.turn-message{position:absolute;top:18%;left:50%;transform:translate(-50%);z-index:2;padding:8px 15px;border-radius:999px;background:#081810ba;color:#b9c9c0;font-size:13px;white-space:nowrap}.turn-message.mine{background:#d7aa4a;color:#172016;font-weight:800;box-shadow:0 0 24px #e5b84c80}.trick{position:absolute;inset:25% 12% 12%;display:flex;align-items:center;justify-content:center;gap:12px}.played-card-wrap{display:flex;flex-direction:column;align-items:center;gap:4px}.played-card-wrap small{max-width:76px;overflow:hidden;text-overflow:ellipsis;color:#d8e3dc;font-size:10px}.table-player{position:absolute;z-index:3;left:var(--player-x);top:var(--player-y);transform:translate(-50%,-50%);width:clamp(150px,17vw,210px);padding:7px;border-radius:19px;background:#10251de6;border:1px solid #ffffff18;box-shadow:0 10px 28px #0007;transition:box-shadow .2s,transform .2s,border-color .2s}.table-player.active{border-color:#f2ca69;box-shadow:0 0 0 4px #e8c05d28,0 0 36px #eebd5059;transform:translate(-50%,-50%) scale(1.035)}.table-player.active .avatar{background:#c99a3f;color:#142019}.player-stats{display:flex;gap:6px;justify-content:center;margin:6px 0;color:#9fb2a8;font-size:11px}.player-stats span{padding:2px 6px;background:#ffffff08;border-radius:99px}.player-stats b{color:#f0d38e}.player-piles{display:flex;align-items:end;justify-content:center;gap:26px;height:39px}.card-pile{position:relative;width:44px;height:34px}.mini-card,.card-pile>.card-face{position:absolute;left:50%;top:0;width:27px;height:35px;border-radius:4px;border:1px solid}.mini-card:nth-child(1),.card-pile>.card-face:nth-child(1){transform:translate(-50%) rotate(-7deg)}.mini-card:nth-child(2),.card-pile>.card-face:nth-child(2){transform:translate(-43%) rotate(-2deg)}.mini-card:nth-child(3),.card-pile>.card-face:nth-child(3){transform:translate(-36%) rotate(3deg)}.mini-card:nth-child(4),.card-pile>.card-face:nth-child(4){transform:translate(-29%) rotate(8deg)}.card-back{background:repeating-linear-gradient(45deg,#1c4a76 0 3px,#d7c274 3px 5px);border-color:#e4cd83;box-shadow:0 2px 5px #0008}.won-card{display:grid;place-items:center;background:#793f38;color:#f2cf79;border-color:#d6ac61;font-size:12px}.card-pile em{position:absolute;z-index:5;right:-10px;bottom:-2px;padding:1px 5px;border-radius:99px;background:#06110d;color:#f3dc9a;font-size:10px;font-style:normal;border:1px solid #ffffff21}.won-pile.empty{opacity:.36}.card-face{width:72px;height:104px;display:grid;place-items:center;border:2px solid #dccb9e;border-radius:10px;color:#132219;box-shadow:0 7px 15px #0005;background:#f3ecd7}.card-face strong{font-size:32px;line-height:1}.card-face.small{width:34px;height:44px;border-width:1px;border-radius:5px}.card-face.small strong{font-size:15px}.card-face.suit-b{background:#c9ddf0;border-color:#81a8cc}.card-face.suit-r{background:#efc7c2;border-color:#c98278}.card-face.suit-g{background:#c9e4cc;border-color:#81ae87}.card-face.suit-y{background:#f2e3a6;border-color:#c8a954}.card-face.suit-none{background:#f4eedc}.card-face.blank.suit-none{background:transparent;border-color:#fff2;box-shadow:none}.card-face.special{background:#f4eedc}.bid-box,.hand-area{position:relative;z-index:5;text-align:center;margin:10px auto 0}.bid-box{max-width:680px;padding:14px 18px;border-radius:18px;background:#10251de6;border:1px solid #d2af6240}.bid-box p,.hand-area p{margin:0 0 10px;color:#dbc98f;font-size:13px;font-weight:700}.bid-options{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.bid-button{width:44px;height:44px;border-radius:12px;border:1px solid #eccd77;background:linear-gradient(145deg,#efd385,#b98835);color:#182119;font-weight:800;font-size:16px;box-shadow:0 5px 12px #0004}.bid-button:not(:disabled):hover{transform:translateY(-2px);filter:brightness(1.08)}.bid-button:disabled{background:#ffffff0a;color:#728078;border-color:#ffffff13}.hand{display:flex;align-items:center;justify-content:center;padding:0 24px;overflow-x:auto;min-height:136px}.playing-card{flex:0 0 82px;width:82px;height:120px;margin-left:-18px;padding:0;border:0;background:transparent;transition:transform .18s}.playing-card:first-child{margin-left:0}.playing-card .card-face{width:100%;height:100%}.playing-card:not(:disabled):hover{transform:translateY(-10px)}.final{max-width:540px;margin:auto;text-align:center}.final li{display:flex;justify-content:space-between;padding:13px}.rotate-hint{display:none}.loading{min-height:70vh;display:grid;place-items:center}@media(max-width:760px){header{height:60px}.join-card{padding:34px 24px}.lobby-grid{grid-template-columns:1fr}.table-shell{padding:14px 10px 28px}.table-top h1{font-size:27px}.table-meta{font-size:12px}.table-stage{height:500px}.felt{inset:19% 8%;border-width:6px}.table-player{width:132px;padding:5px}.table-player .seat{padding:6px;gap:6px}.table-player .avatar{width:30px;height:30px}.table-player .seat small,.table-player .seat>em{display:none}.player-stats{margin:4px 0}.player-piles{height:31px;gap:16px}.mini-card{width:23px;height:30px}.trick{gap:6px}.trick .card-face{width:54px;height:78px}.trick .card-face strong{font-size:24px}.bid-box{margin-left:8px;margin-right:8px}.hand{justify-content:flex-start}.playing-card{flex-basis:72px;width:72px;height:108px}.turn-message{top:21%}}.card-face{position:relative}.card-corner{position:absolute;top:7px;left:7px;display:flex;align-items:baseline;gap:4px;font-size:12px;font-weight:800;line-height:1;letter-spacing:-.04em}.suit-code{font-size:10px;letter-spacing:.04em}.card-face.small .card-corner{top:4px;left:4px;gap:2px;font-size:7px}.card-face.small .suit-code{font-size:6px}.card-corner{flex-direction:column;align-items:flex-start;gap:2px}.card-face.small .card-corner{gap:1px}.suit-code{display:block}.card-pile{width:48px;height:50px}.mini-card,.card-pile>.card-face{width:34px;height:44px;left:50%;transform:translate(-50%);border-radius:5px}.mini-card:nth-child(1),.card-pile>.card-face:nth-child(1){top:6px;transform:translate(-50%)}.mini-card:nth-child(2),.card-pile>.card-face:nth-child(2){top:3px;transform:translate(-50%)}.mini-card:nth-child(3),.card-pile>.card-face:nth-child(3){top:0;transform:translate(-50%)}.mini-card:nth-child(4),.card-pile>.card-face:nth-child(4){top:0;transform:translate(-50%)}.card-pile>span:not(:last-of-type){border-radius:5px 0 0 5px}.player-piles{height:50px}.playing-card.group-start:not(:first-child){margin-left:13px}@media(max-width:760px){.playing-card.group-start:not(:first-child){margin-left:9px}}.playing-card:not(.group-end){width:24px;overflow:hidden}.playing-card.group-end{flex-basis:82px;width:82px}.playing-card:not(.group-end) .card-face{width:82px;border-radius:10px 0 0 10px}.card-pile>.under-card{border-radius:5px 0 0 5px}@media(max-width:760px){.playing-card:not(.group-end){width:20px}.playing-card.group-end{flex-basis:72px;width:72px}.playing-card:not(.group-end) .card-face{width:72px}}.trump-label .trump-card{width:48px;height:68px;border-width:1px;border-radius:7px;box-shadow:0 4px 10px #0006}.trump-label .trump-card strong{font-size:23px}.trump-label .trump-card .card-corner{top:5px;left:5px;font-size:9px}.trump-label .trump-card .suit-code{font-size:8px}.trick{display:block}.played-card-wrap{position:absolute;left:var(--trick-x);top:var(--trick-y);transform:translate(-50%,-50%);animation:card-arrive .24s ease-out both}.played-card-wrap small{white-space:nowrap}@keyframes card-arrive{0%{opacity:0;transform:translate(-50%,-50%) translate(var(--entry-x),var(--entry-y)) scale(.86)}to{opacity:1;transform:translate(-50%,-50%) translate(0) scale(1)}}.played-card-wrap.winning .card-face{border-color:#ffd86b;box-shadow:0 0 0 3px #f4c64c66,0 0 24px #ffd44b9c}.played-card-wrap.winning:after{content:"✦";position:absolute;right:-11px;top:14px;display:grid;place-items:center;width:22px;height:22px;border:1px solid #ffe6a0;border-radius:50%;background:#8e6321;color:#fff3c3;font-size:12px;box-shadow:0 2px 8px #0008}.trick-resolution{position:absolute;z-index:4;left:50%;bottom:7%;transform:translate(-50%);display:grid;justify-items:center;gap:5px;min-width:210px;padding:10px 14px;border:1px solid #f0c96988;border-radius:14px;background:#10251df2;box-shadow:0 12px 32px #000a;color:#f8e4a5;text-align:center}.trick-resolution b{font-size:13px}.trick-resolution span{font-size:11px;color:#c4d1ca}.trick-resolution .secondary{width:auto;margin:3px 0 0;padding:6px 13px;font-size:12px}.hand{overflow-x:auto}.playing-card{position:relative;flex:0 0 24px;margin-left:0}.playing-card:last-child{flex-basis:82px}.playing-card:not(:disabled):hover{z-index:2}@media(max-width:760px){.playing-card{flex-basis:20px}.playing-card:last-child{flex-basis:72px}}.bid-box-on-table{position:absolute;z-index:4;left:50%;bottom:7%;transform:translate(-50%);width:min(680px,92%);margin:0}.bid-box-on-table small{display:block;margin:-3px 0 10px;color:#c6d3cc;font-size:11px}.resolution-modal{position:fixed;z-index:30;inset:0;display:grid;place-items:center;padding:20px;background:#06110dc9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.resolution-card{width:min(620px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:28px;border:1px solid #eac76d88;border-radius:24px;background:linear-gradient(145deg,#18382c,#0d2119);box-shadow:0 28px 80px #000c;color:#f5ecd4;text-align:center}.resolution-card .wizard-seal{width:50px;height:50px;margin:0 auto 10px;font-size:24px}.resolution-card h2{margin:6px 0 4px;font-family:Playfair Display;font-size:28px}.resolution-card>p{margin:0 0 18px;color:#b9cac1}.resolution-card .primary{width:auto;min-width:150px;margin:20px 0 0}.resolution-table{overflow:hidden;border:1px solid #ffffff1c;border-radius:14px;text-align:left}.resolution-head,.resolution-row{display:grid;grid-template-columns:minmax(100px,1.6fr) repeat(4,minmax(48px,.65fr));gap:7px;align-items:center;padding:10px 12px}.resolution-head{background:#ffffff0b;color:#d3b466;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.resolution-row{border-top:1px solid #ffffff12;font-size:13px}.resolution-row span,.resolution-row strong{text-align:center}.resolution-row strong{color:#f4ce72}@media(max-width:560px){.resolution-card{padding:20px 12px}.resolution-head,.resolution-row{grid-template-columns:minmax(82px,1.4fr) repeat(4,minmax(38px,.6fr));gap:3px;padding:9px 6px;font-size:11px}.resolution-head{font-size:8px}.bid-box-on-table{bottom:4%;padding:11px 8px}.bid-options{gap:5px}.bid-button{width:38px;height:38px}}.table-player.won-trick{overflow:hidden;border-color:#ffe183;box-shadow:0 0 0 4px #f3c84b55,0 0 42px #f6cf5499}.table-player.won-trick:after{content:"+1";position:absolute;inset:0;display:grid;place-items:center;color:#ffe597;font-size:82px;font-weight:900;line-height:1;opacity:.22;pointer-events:none}.table-player.won-trick>*{position:relative;z-index:1}.trick-pause{position:fixed;z-index:30;inset:0;background:#06110d66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:auto}.trick-continue{position:absolute;left:50%;bottom:32px;transform:translate(-50%);padding:10px 22px;border:1px solid #f0cd73;background:#183126;color:#f9e9b8;border-radius:999px;font-weight:800;box-shadow:0 8px 28px #0009}.round-countdown{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:16px;color:#d8e4db;font-size:12px}.round-countdown .ghost{padding:6px 10px;font-size:11px}.resolution-modal{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;justify-content:flex-end;pointer-events:none}.resolution-card{width:min(480px,42vw);pointer-events:auto;background:linear-gradient(145deg,#18382cf5,#0d2119f5)}.trick-pause{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none}.trick-resolution,.presentation-controls{pointer-events:auto}.presentation-controls{position:fixed;z-index:31;left:50%;bottom:24px;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid #f0cd7355;border-radius:999px;background:#10251df2;color:#dce9df;font-size:12px;box-shadow:0 8px 28px #0009;white-space:nowrap}.presentation-controls .ghost{padding:6px 10px;font-size:11px}.presentation-controls .trick-continue{position:static;transform:none;padding:7px 14px;box-shadow:none}.deal-score-ring{position:absolute;z-index:4;inset:0;pointer-events:none}.deal-score-spoke{position:absolute;left:var(--ring-x);top:var(--ring-y);transform:translate(-50%,-50%);display:grid;gap:2px;min-width:108px;padding:7px 9px;border:1px solid #efd27d77;border-radius:11px;background:#10251ded;color:#eaf0e8;text-align:center;font-size:10px;box-shadow:0 6px 18px #0008}.deal-score-spoke b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f5d987;font-size:11px}.deal-score-spoke span{color:#c7d7ce}.deal-score-spoke em{margin-left:3px;font-style:normal;font-weight:800}.deal-score-spoke em.positive{color:#79d99c}.deal-score-spoke em.negative{color:#fa9b91}.deal-score-spoke strong{color:#fff0b4;font-size:11px}@media(max-width:760px)and (orientation:portrait){.rotate-hint{display:block;text-align:center;color:#d9bd79;font-size:12px}}.seat small.first-hand{color:#f0c967;font-weight:800}.messages-panel{max-width:760px;margin:22px auto 0;padding:18px;border:1px solid #ffffff15;border-radius:18px;background:#10251de6}.messages-panel h2{margin:0 0 12px;font-family:Playfair Display;font-size:21px}.message-list{max-height:230px;overflow:auto;display:grid;gap:8px}.message-empty{color:#8fa59a;text-align:center}.game-message{padding:9px 12px;border-radius:12px;background:#07130ecf;border:1px solid #ffffff10}.game-message b{color:#f0d38e}.game-message>span{margin-left:7px;color:#8fa59a;font-size:12px}.game-message p{margin:4px 0 0;color:#dce6df}.game-message.assessment{border-color:#d2af625c;background:#372f1c99}.message-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px}.message-form input{min-width:0;padding:11px 13px;color:#fff;background:#06110d;border:1px solid #ffffff22;border-radius:11px}.message-form .secondary{width:auto;margin:0;padding:10px 16px}@media(max-width:760px){.resolution-modal{align-items:flex-end;padding:10px}.resolution-card{width:min(100%,500px);max-height:52vh;padding:16px}.deal-score-spoke{min-width:82px;padding:4px 5px;font-size:8px}.deal-score-spoke b,.deal-score-spoke strong{font-size:9px}.presentation-controls{bottom:12px;max-width:calc(100vw - 20px);gap:5px;font-size:10px}.presentation-controls .ghost{padding:5px 7px;font-size:9px}.presentation-controls .trick-continue{padding:6px 9px;font-size:10px}}
