@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap");:root{--ink:#203c34;--green:#174d3d;--paper:#f5f2e9;--cream:#fbf8f0;--gold:#e5c58d;--muted:#7b847b;--line:#e3e3d7;--sans:"DM Sans",Arial,sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:var(--sans);font-size:14px;background:var(--paper)}button,input,select{font:inherit}a,button,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;transition:background .18s,transform .18s,opacity .18s}button:disabled{cursor:default;opacity:.5}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #cba862;outline-offset:4px}button{border:0}a{color:inherit;text-decoration:none}button svg{flex-shrink:0}input,select{width:100%;border:1px solid #d8ddcf;background:#fffdf8;border-radius:8px;padding:13px 14px;color:var(--ink);min-height:46px}input::placeholder{color:#9b9f94}h1,h2,h3,p{margin-top:0}h2{font-family:var(--sans);font-weight:500;font-size:31px;letter-spacing:-.8px;margin-bottom:12px}.site-header{height:94px;border-bottom:1px solid var(--line);justify-content:space-between;padding:0 5vw;gap:20px;position:relative;z-index:5}.brand,.site-header{display:flex;align-items:center}.brand{gap:12px;font-family:var(--sans);font-weight:600;font-size:28px;letter-spacing:-.7px;white-space:nowrap}.brand-light{font-weight:500}.brand-mark{width:45px;height:48px;background:var(--green);color:var(--gold);border-radius:13px 13px 17px 17px;display:grid;place-items:center}.header-right{display:flex;align-items:center;gap:28px}.header-note{font-size:12px;color:#768276}.rules-button{display:flex;align-items:center;gap:8px;background:transparent;color:var(--ink);font-weight:500;font-size:12px}.eyebrow{display:block;font-size:10px;letter-spacing:2px;font-weight:700}.landing-shell{min-height:100dvh;background:radial-gradient(ellipse at 15% 90%,#e7ebdc80,transparent 60%),var(--paper)}.landing-main{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:1.25fr 1fr;grid-gap:90px;gap:90px;padding:70px 55px 55px;align-items:center}.hero-copy>.eyebrow{display:flex;gap:9px;align-items:center;color:#6e806b}.eyebrow>span{display:inline-block;width:6px;height:6px;background:#80906a;border-radius:50%}h1{font-family:var(--sans);font-size:clamp(44px,4.7vw,67px);line-height:1.17;letter-spacing:-2.7px;margin:24px 0}h1,h1 em{font-weight:500}h1 em{color:#3a7054}.hero-description{color:#7c8477;line-height:1.9;max-width:435px;font-size:14px}.hero-cards{height:242px;position:relative;max-width:400px;margin:20px 0 22px}.card-art{aspect-ratio:5/7;display:block;-webkit-user-select:none;-moz-user-select:none;user-select:none}.hero-cards img{position:absolute;width:128px;filter:drop-shadow(0 10px 9px #132a2422);border-radius:9px;top:32px;left:80px;transform:rotate(-16deg)}.hero-cards img:nth-child(2){left:177px;top:14px;transform:rotate(0);z-index:2}.hero-cards img:nth-child(3){left:274px;transform:rotate(16deg)}.feature-pills{display:flex;gap:21px;font-size:11px;color:#657361;flex-wrap:wrap}.feature-pills span{display:flex;align-items:center;gap:6px}.welcome-card{background:#fffdf7;border:1px solid #e2e4d8;box-shadow:0 18px 45px #263c2410;border-radius:17px;padding:33px 34px 24px;max-width:470px;width:100%;justify-self:end}.mini-suits{display:block;font-size:20px;letter-spacing:9px;margin-bottom:26px}.mini-suits b{font-weight:400;color:#a5684f}.welcome-top .eyebrow{font-size:9px;color:#8a927f;margin-bottom:12px}.welcome-top h2{font-size:28px}.welcome-top p{font-size:12px;color:#919685;margin-bottom:27px;line-height:1.7}.field-label{font-size:11px;font-weight:700;display:block;margin-bottom:8px}.field-hint{display:block;font-size:10px;color:#94998c;margin-top:8px}.claim-button,.felt-button,.gold-button,.invite-button,.primary,.secondary{display:flex;align-items:center;justify-content:center;gap:10px;border-radius:8px;padding:14px 19px;font-size:12px;font-weight:600;min-height:44px}.primary{background:var(--green);color:#fffef5}.primary:hover:not(:disabled){background:#24634d}.wide{width:100%}.create-button{margin-top:25px}.create-button svg:last-child{margin-left:auto}.divider{display:flex;align-items:center;gap:13px;margin:25px 0;color:#a0a491;font-size:8px;letter-spacing:1.5px}.divider:after,.divider:before{content:"";height:1px;background:#e5e7dc;flex:1 1}.join-row{display:flex;gap:10px}.join-row input{font-size:19px;letter-spacing:7px;min-width:0}.secondary{background:#eeeee3;color:#37513e;padding:0 21px}.secondary:hover{background:#e4e7d9}.welcome-bottom{font-size:9px;display:flex;align-items:center;justify-content:center;gap:6px;color:#a2a691;margin:25px 0 0}.landing-footer{max-width:1210px;margin:0 auto;border-top:1px solid var(--line);padding:25px 0;display:flex;align-items:center;justify-content:space-between;color:#8b927f;font-size:10px}.landing-footer>span:first-child{font-size:8px;letter-spacing:1.5px}.landing-footer button{background:none;color:#62745a;display:flex;align-items:center;gap:7px;font-size:10px}.game-settings{padding:20px 0 0}.settings-heading{display:flex;align-items:center;gap:7px;font-size:12px;margin-bottom:14px}.segmented{display:flex;background:#eeeee4;padding:4px;border-radius:7px;margin-bottom:17px}.segmented button{flex:1 1;background:none;padding:8px;border-radius:5px;font-size:11px;color:#6e7868}.segmented button.active{background:#fffdf7;box-shadow:0 1px 5px #0001;color:var(--green)}.toggle-row{display:flex;align-items:center;justify-content:space-between;margin:18px 0;gap:12px}.toggle-row strong{display:block;font-size:12px}.toggle-row small{display:block;font-size:10px;color:#8b9381;margin-top:4px}.toggle-row input{width:20px;height:20px;min-height:20px;accent-color:var(--green)}.error{background:#f8e9e1;color:#993d2d;padding:13px;border-radius:8px;font-size:12px;line-height:1.5;margin-top:15px}.text-button{background:none;color:#64715f;font-size:11px;display:flex;align-items:center;justify-content:center;gap:6px;margin:20px auto 0}.icon{display:grid;place-items:center;background:transparent;color:inherit;padding:8px;border-radius:8px}.icon:hover{background:#8b9e7c18}.game-shell{height:100dvh;min-height:680px;display:flex;flex-direction:column;overflow:hidden}.game-shell .site-header{height:73px;flex-shrink:0;padding:0 30px;background:var(--cream)}.brand.small{font-size:23px;gap:10px}.brand.small .brand-mark{height:36px;width:34px;border-radius:9px 9px 12px 12px}.game-shell .header-right{gap:18px}.room-chip{display:flex;align-items:center;gap:12px;border:1px solid #dfe3d7;border-radius:7px;background:none;padding:8px 12px;color:var(--green)}.muted-label{font-size:8px;letter-spacing:1.5px;color:#939d86}.room-chip strong{font-size:15px;letter-spacing:3px}.connection{color:#658762;display:flex;align-items:center;gap:5px;font-size:10px}.connection.offline{color:#bd7546}.chat-toggle{display:none}.game-layout{display:flex;flex:1 1;min-height:0}.table-column{display:flex;flex-direction:column;flex:1 1;min-width:0}.table-toolbar{height:64px;flex-shrink:0;padding:0 27px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:#f4f3e9}.table-toolbar .eyebrow{font-size:9px;letter-spacing:1.8px;margin-bottom:5px}.table-rule{color:#8b9380;font-size:10px}.table-rule>span{margin:0 7px}.subtle{display:flex;align-items:center;gap:7px;border:1px solid #dfe2d4;background:none;color:#68765e;padding:8px 12px;border-radius:7px;font-size:11px}.arena{position:relative;flex:1 1;min-height:440px;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 37%,#28604b 0,#194c3b 45%,#123b30 100%);color:#f4f0de}.felt-grain{inset:0;opacity:.15;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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.5' filter='url(%23n)'/%3E%3C/svg%3E")}.felt-grain,.table-oval{position:absolute;pointer-events:none}.table-oval{inset:10% 12% 22%;border:1px solid #dce5b111;border-radius:50%;box-shadow:0 0 0 10px #dce5b104}.table-watermark{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);font-family:var(--sans);font-size:120px;color:#cce0b507;letter-spacing:5px;pointer-events:none}.table-watermark span{font-size:66px}.table-center{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);width:58%;max-width:470px;text-align:center;z-index:3}.lobby-center .eyebrow,.phase-panel .eyebrow{color:#c1cc9a;font-size:9px;margin:10px 0 16px}.lobby-center h2,.phase-panel h2{font-size:30px;color:#f4f0dc;letter-spacing:-.6px}.lobby-center p,.phase-panel p{font-size:12px;color:#b7c6ac;line-height:1.85}.invite-button{background:#f3f0df;color:#284d37;margin:22px auto 16px;padding:11px 17px;gap:9px;box-shadow:0 4px 12px #0001}.invite-button span{border-left:1px solid #c8cebc;margin-left:9px;padding-left:14px;font-size:16px;letter-spacing:3px;font-weight:700}.player-count{display:flex;justify-content:center;gap:7px;color:#9fb597;font-size:10px;margin:15px 0}.gold-button{background:var(--gold);color:#25402f;display:inline-flex;box-shadow:0 3px 9px #0001}.gold-button:hover:not(:disabled){background:#f1d6a6;transform:translateY(-1px)}.gold-button:disabled{opacity:.4}.small-note{display:block;font-size:9px;color:#8fa98c;margin-top:16px}.seat{position:absolute;transform:translate(-50%,-50%);min-width:90px;text-align:center;z-index:4;transition:opacity .3s}.avatar{margin:0 auto 6px;display:grid;place-items:center;border:1px solid #b6c9a24a;box-shadow:0 0 0 4px #bdcba305;background:#40654e;width:42px;height:42px;border-radius:50%;font-family:var(--sans);font-size:20px;color:#dfdfbb;position:relative}.seat.self .avatar{display:none}.seat-name{font-size:12px;font-weight:500;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}.seat-name>span{font-size:9px;color:#a3b594}.seat-detail{font-size:9px;color:#9fb495;margin-top:4px}.seat.turn .avatar{border-color:var(--gold);box-shadow:0 0 0 4px #e5c58d14}.seat.turn .seat-name{color:var(--gold)}.turn-dot{position:absolute;bottom:0;right:0;width:9px;height:9px;border:2px solid #244d39;background:#e5c58d;border-radius:50%}.seat.self.turn .seat-name:before{content:"";display:inline-block;width:6px;height:6px;background:var(--gold);border-radius:50%;margin-right:5px}.seat.winner .avatar{background:var(--gold);color:#284735}.seat.winner .seat-name{color:var(--gold)}.dim-seat{opacity:.4}.dealer-badge{position:absolute;top:0;right:0;border:1px solid #b8bfa28c;width:17px;height:17px;display:grid;place-items:center;font-size:8px;border-radius:50%;color:#cdd4b7}.pass-check{display:inline-flex;align-items:center;gap:3px;font-size:8px;color:var(--gold);margin-top:4px}.empty-seat button{width:75px;height:85px;background:#ffffff03;border:1px dashed #a7bf8740;border-radius:12px;color:#a9bd91;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.empty-seat button:hover{background:#ffffff0c;border-color:#d8d4a2}.empty-seat span{font-size:10px}.lobby-arena .self .avatar{display:grid}.lobby-arena .table-center{top:45%}.lobby-arena .table-oval{bottom:10%}.mini-hand{position:absolute;width:100%;height:30px;top:-37px;pointer-events:none;opacity:.85}.mini-hand img{position:absolute;height:36px;left:calc(50% - 13px);border-radius:2px;box-shadow:0 1px 4px #0003}.phase-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid #c7d1a52b;color:var(--gold);margin:0 auto 14px}.phase-panel select{max-width:260px;background:#f7f2e2;color:#264632;margin:0 auto 12px;font-size:12px}.call-actions{display:flex;gap:10px;justify-content:center}.felt-button{background:#ffffff0d;border:1px solid #d0dbc63a;color:#d3ddbd}.waiting-dots{color:#c0cda0;letter-spacing:5px;animation:pulse 1.8s infinite}.turn-instruction{display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;color:#e6e7c5;margin-bottom:18px;min-height:20px}.pulse-dot{width:6px;height:6px;background:var(--gold);border-radius:50%;animation:pulse 1.5s infinite}.trick-area{position:relative;height:190px;width:100%;max-width:350px;margin:0 auto}.played-card{position:absolute;left:50%;top:50%;width:85px;transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) rotate(var(--rot));animation:deal-in .32s ease-out;filter:drop-shadow(0 4px 4px #0003)}.played-card .card-art{width:100%;border-radius:5px}.played-card>span{font-size:8px;background:#143b2ec9;padding:3px 5px;border-radius:4px;display:inline-block;max-width:95px;overflow:hidden;text-overflow:ellipsis}.winning-card{filter:drop-shadow(0 0 7px #f5d28c);z-index:10}.dim-card{opacity:.5}.trick-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:18px;color:#cfe0b22e;font-size:24px}.trick-placeholder small{position:absolute;bottom:35px;font-size:8px;letter-spacing:2px;color:#b7c79a5e}.sweeping{animation:sweep .7s ease-in forwards}.claim-button{background:#e8c991;color:#204333;margin:12px auto 0;position:relative;z-index:20}.claim-button small{display:block;font-size:9px;max-width:95px;font-weight:400}.table-meta{position:absolute;bottom:12px;left:18px;display:flex;gap:10px;align-items:flex-start;flex-direction:column;z-index:4;max-width:40%;pointer-events:none}.hearts-state,.partner-state{display:flex;align-items:center;gap:5px;font-size:9px;color:#9fb48e;line-height:1.5}.partner-state{flex-wrap:wrap}.hearts-state.broken{color:#e2b09b}.kitty-pile{position:absolute;right:25px;bottom:27%;background:transparent;color:#b5c19c;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:8px;z-index:4}.kitty-pile img{height:46px;border-radius:3px;transform:rotate(8deg);box-shadow:-4px -2px 0 #d6d5ba}.kitty-pile.claimed{opacity:.6}.kitty-pile:disabled{opacity:.4}.hand-dock{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);width:90%;z-index:5;pointer-events:none}.hand-caption{text-align:center;font-size:9px;color:#adbf9a;margin-bottom:13px}.hand-row{position:relative;height:125px;--cw:83px;--step:37px;width:calc(var(--cw) + (var(--count) - 1) * var(--step));max-width:100%;margin:0 auto;pointer-events:none}.hand-card{position:absolute;isolation:isolate;left:calc(var(--i) * (100% - var(--cw)) / max(1, (var(--count) - 1)));width:var(--cw);padding:0;background:none;box-shadow:-2px 0 5px #0003;border-radius:6px;transform:translateY(calc(abs(var(--i) - (var(--count) - 1)/2) * 1.2px)) rotate(calc((var(--i) - (var(--count) - 1) / 2) * 1deg));transform-origin:50% 120%;pointer-events:auto;transition:transform .18s,filter .18s;opacity:1!important}.hand-card .card-art{width:100%;border-radius:6px;background:white}.hand-card:enabled:hover{transform:translateY(-19px)}.hand-card.selected{transform:translateY(-24px);z-index:21;box-shadow:0 0 0 3px var(--gold)}.hand-card.unplayable{filter:brightness(.62) saturate(.7)}.hand-card.received:not(.selected):after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 3px 0 #e8c68d;pointer-events:none}.card-check{position:absolute;right:4px;top:4px;width:18px;height:18px;background:var(--gold);color:#31503c;border-radius:50%;display:grid;place-items:center}.hand-mobile{display:none}.table-footer{height:39px;flex-shrink:0;background:#eeeee3;justify-content:space-between;padding:0 20px;color:#959c88;border-top:1px solid #dfe2d1}.table-footer,.table-footer button{display:flex;align-items:center;font-size:9px}.table-footer button{gap:6px;background:none;color:#7b8a6e;padding:5px 0}.footer-suits{letter-spacing:5px}.chat-panel{width:280px;background:#faf8ef;border-left:1px solid #e2e3d6;display:flex;flex-direction:column;flex-shrink:0}.chat-heading{height:64px;padding:0 19px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.chat-heading>div{display:flex;align-items:center;gap:9px;color:#6b7d60}.chat-heading h3{font-family:var(--sans);font-size:17px;font-weight:500;margin:0;color:#354f3a}.chat-live{font-size:7px;letter-spacing:1px;color:#8a9a78;background:#eef0e3;padding:4px 7px;border-radius:4px}.chat-messages{flex:1 1;overflow-y:auto;padding:20px 17px}.chat-welcome{text-align:center;color:#8d9a7f;padding:27px 0 25px}.chat-welcome>span{display:grid;place-items:center;margin:0 auto 14px;width:34px;height:34px;border-radius:50%;background:#eceee0;color:#839676;font-size:16px}.chat-welcome h4{font-family:var(--sans);font-size:16px;color:#74846a;font-weight:500;margin:0 0 8px}.chat-welcome p{font-size:10px;color:#a0a68f;line-height:1.8}.chat-message{margin:0 25px 18px 0}.chat-message>span{font-size:9px;color:#87927a;display:block;margin:0 0 5px 3px}.chat-message p{white-space:pre-wrap;background:#eeeee2;border-radius:0 10px 10px 10px;padding:10px 12px;font-size:12px;line-height:1.5;color:#506347;margin-bottom:3px;overflow-wrap:anywhere}.chat-message time{font-size:8px;color:#a9ad9d;display:block;text-align:right}.chat-message.mine{margin:0 0 18px 25px}.chat-message.mine>span{text-align:right;margin-right:3px}.chat-message.mine p{border-radius:10px 0 10px 10px;background:#e1e8d7;color:#415c38}.chat-form{display:flex;gap:6px;align-items:center;border:1px solid #e0e4d6;border-radius:9px;margin:10px 13px 0;padding:4px;background:#fffdf8}.chat-form textarea{resize:none;overflow-y:auto;overflow-wrap:anywhere;max-height:160px;font-family:inherit;flex:1 1;line-height:1.5;font-size:11px;border:0;background:transparent;padding:8px;min-width:0;min-height:38px}.chat-form button{width:32px;height:32px;display:grid;place-items:center;border-radius:7px;background:#e2e8d8;color:#46623a;flex-shrink:0}.chat-footnote{text-align:center;font-size:8px;color:#adb39d;margin:12px 0 17px}.mobile-close{display:none}.modal-backdrop{position:fixed;inset:0;background:#0c241dc2;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}.modal{background:var(--cream);border:1px solid #dfe2d4;border-radius:18px;padding:37px;max-width:640px;width:100%;max-height:90dvh;overflow-y:auto;position:relative;box-shadow:0 20px 80px #0003}.modal .eyebrow{color:#8b977b;margin-bottom:12px;font-size:9px}.modal h2{font-size:32px}.modal p{color:#7e8974;font-size:12px;line-height:1.8}.close{position:absolute;right:13px;top:13px;color:#7e8d70}.rule-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px 25px;gap:8px 25px;border-block:1px solid var(--line);padding:20px 0;margin-bottom:22px}.rule-grid strong{font-size:12px}.rule-grid p{margin-top:6px;font-size:11px}.rules-modal h3{font-family:var(--sans);font-size:20px;font-weight:500;margin-top:20px}.rules-modal .fine-print{font-size:10px;margin-top:25px;padding-top:18px;border-top:1px solid var(--line)}.fine-print a{text-decoration:underline}.score-modal{max-width:740px;text-align:center}.score-scroll{overflow-x:auto;margin:24px 0}table{width:100%;border-collapse:collapse;font-size:12px}td,th{padding:14px 12px;border-bottom:1px solid #e0e4d5;white-space:nowrap}thead th{font-size:11px;font-weight:500;color:#738368}thead th small{display:block;font-size:8px;color:#99a18d;margin-top:3px}tbody td{color:#8b927f}td.negative{color:#247448;font-weight:700}tfoot td,tfoot th{color:#385b3b;font-size:16px;background:#eaf0df;border-bottom:0;font-weight:600}tfoot th{font-size:12px}.score-explanation{font-size:11px!important;background:#f0f0e4;padding:10px;border-radius:7px}.ready-count{font-size:10px!important;margin:12px 0 0}.moon-banner{background:#e5ecd9;padding:12px;border-radius:7px;font-size:12px;color:#41643d}.end-trophy{color:var(--gold);margin-bottom:10px}.mini-modal{max-width:600px;text-align:center}.reveal-cards{display:flex;justify-content:center;gap:10px;margin:24px 0 5px}.reveal-cards img{width:100%;max-width:90px}.reveal-cards>img{width:18%;height:auto}.reveal-cards>div{min-width:0;flex:1 1;max-width:90px}.reveal-cards small{display:block;margin-top:7px;font-size:10px}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);max-width:90vw;z-index:150;display:flex;align-items:center;gap:20px;box-shadow:0 3px 20px #0002}.connection-banner{background:#ead8b8;padding:8px 20px;font-size:11px;color:#6e5535}.waiting{margin:18px 0 0}.hand-desktop{display:block}@keyframes pulse{50%{opacity:.4}}@keyframes deal-in{0%{opacity:.3;transform:translate(calc(-50% + var(--from-x)),calc(-50% + var(--from-y))) rotate(var(--rot))}to{opacity:1;transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) rotate(var(--rot))}}@keyframes sweep{to{transform:translate(var(--sweep-x),var(--sweep-y)) scale(.2);opacity:0}}@media (min-width:1500px){.landing-main{padding-top:100px;padding-bottom:80px}.game-shell .arena{--cw:100px}.hand-row{--cw:95px;--step:45px;height:140px}.hand-dock{bottom:20px}.seat.self{margin-top:-8px}.chat-panel{width:310px}.played-card{width:96px}.trick-area{height:220px}}@media (max-width:1100px){.landing-main{gap:45px;padding:55px 35px}.hero-cards img{left:25px;width:118px}.hero-cards img:nth-child(2){left:120px}.hero-cards img:nth-child(3){left:215px}.feature-pills{gap:12px;font-size:10px}.landing-footer{margin:0 35px}.chat-panel{width:235px}.game-shell .header-right{gap:10px}.hand-row{--cw:76px;--step:29px;height:112px}.table-center{width:62%}.lobby-center h2,.phase-panel h2{font-size:26px}.seat-name{font-size:11px}.seat-detail{font-size:8px}.table-meta{max-width:32%}}@media (max-width:850px){.chat-panel{display:none}.chat-panel.chat-open{display:flex;position:fixed;right:0;top:73px;bottom:0;width:310px;z-index:50;box-shadow:-20px 0 50px #0004}.chat-toggle,.mobile-close{display:grid}.chat-open .chat-live{display:none}.landing-main{grid-template-columns:1fr 1fr;gap:25px;padding-inline:25px}.welcome-card{padding:25px}.hero-copy h1{font-size:43px}.hero-description{font-size:12px}.hero-cards img{width:100px;left:0}.hero-cards img:nth-child(2){left:78px}.hero-cards img:nth-child(3){left:156px}.hero-cards{height:210px}.feature-pills{gap:8px}.header-note{display:none}.welcome-top h2{font-size:25px}.connection span{display:none}.game-shell .header-right{gap:8px}.game-shell .site-header{padding-inline:18px}.table-meta{max-width:30%}}@media (max-width:600px){.site-header{height:76px;padding:0 22px}.brand{font-size:24px}.brand-mark{width:35px;height:39px}.rules-button span{display:none}.landing-main{display:flex;flex-direction:column;padding:38px 24px 30px;gap:20px}.hero-copy{width:100%;text-align:center}.hero-copy>.eyebrow{justify-content:center;font-size:8px;letter-spacing:1.5px}.hero-copy h1,h1{font-size:45px;letter-spacing:-2px;margin:19px 0}.hero-description{font-size:12px;max-width:340px;margin:0 auto}.hero-cards{max-width:280px;height:177px;margin:14px auto 12px}.hero-cards img{top:25px;left:26px;width:88px}.hero-cards img:nth-child(2){left:96px;top:8px}.hero-cards img:nth-child(3){left:166px}.feature-pills{justify-content:center;font-size:9px;gap:11px}.feature-pills svg{width:13px}.welcome-card{margin-top:10px;max-width:400px;padding:25px}.welcome-top .mini-suits{display:none}.welcome-top h2{font-size:26px}.welcome-top p{margin-bottom:22px}.landing-footer{margin:0 24px;padding:20px 0;gap:16px;flex-wrap:wrap;justify-content:center;font-size:9px}.landing-footer>span:nth-child(2){display:none}.game-shell{min-height:780px;height:100dvh}.game-shell .site-header{height:61px;padding:0 12px;gap:8px}.brand.small{font-size:18px;gap:6px}.brand.small .brand-mark{width:26px;height:30px}.brand.small .brand-mark svg{width:17px}.game-shell .header-right{gap:2px}.game-shell .header-right>.icon,.game-shell .rules-button{padding:6px}.room-chip{padding:7px;gap:4px;border:0}.room-chip .muted-label,.room-chip svg{display:none}.room-chip strong{font-size:12px;letter-spacing:1.5px}.connection{display:none}.table-toolbar{height:58px;padding:0 13px}.table-rule,.table-toolbar .eyebrow{font-size:8px}.table-rule>span{margin:0 3px}.subtle{font-size:9px;padding:7px 8px;gap:4px}.subtle svg{width:13px}.arena{min-height:600px}.table-oval{inset:9% 7% 31%}.seat{min-width:65px}.avatar{width:32px;height:32px;font-size:16px;margin-bottom:5px}.seat-name{font-size:10px;max-width:85px}.seat-detail,.seat-name>span{font-size:7px}.seat-detail{max-width:80px}.seat.self{top:69%!important}.mini-hand{top:-25px}.mini-hand img{height:25px;left:calc(50% - 9px)}.dealer-badge{width:13px;height:13px;font-size:7px;right:-2px}.empty-seat button{width:54px;height:66px;border-radius:9px;gap:5px}.empty-seat span{font-size:8px}.empty-seat svg{width:17px}.table-center{top:36%;width:65%;max-width:330px}.lobby-arena .table-center{top:43%;width:65%}.lobby-arena .seat.self{top:82%!important}.lobby-center h2,.phase-panel h2{font-size:23px}.lobby-center p,.phase-panel p{font-size:10px}.lobby-center .eyebrow,.phase-panel .eyebrow{font-size:7px;letter-spacing:1.5px}.lobby-center .invite-button{font-size:10px;padding:10px;gap:6px}.invite-button span{font-size:13px;letter-spacing:2px;padding-left:8px;margin-left:0}.player-count{font-size:8px;gap:4px}.felt-button,.gold-button{font-size:10px;padding:11px 12px}.small-note{font-size:8px}.phase-icon{width:35px;height:35px;margin-bottom:10px}.phase-icon svg{width:19px}.phase-panel select{font-size:11px;padding:9px;min-height:39px}.turn-instruction{font-size:10px;margin-bottom:9px;min-height:26px}.played-card{width:65px;transform:translate(calc(-50% + var(--tx) * .7),calc(-50% + var(--ty) * .75)) rotate(var(--rot));animation-name:mobile-deal}.played-card>span{font-size:6px;padding:2px 4px}.trick-area{height:155px}.trick-placeholder{gap:12px;font-size:20px}.trick-placeholder small{font-size:7px;bottom:25px}.table-meta{left:12px;bottom:32%;max-width:68%;gap:5px}.hearts-state,.partner-state{font-size:8px}.kitty-pile{right:11px;bottom:32%;font-size:7px}.kitty-pile img{height:32px}.hand-dock{bottom:14px;width:94%}.hand-caption{font-size:8px;margin-bottom:8px}.hand-desktop{display:none}.hand-mobile{display:block}.hand-row{--cw:60px;--step:30px;height:80px;max-width:100%}.hand-mobile .hand-row+.hand-row{margin-top:-14px}.hand-card{transform:none}.hand-card.selected{transform:translateY(-15px)}.hand-card:enabled:hover{transform:translateY(-12px)}.hand-card .card-art{border-radius:4px}.table-footer{padding:0 12px;height:32px}.table-footer>span:not(.footer-suits){display:none}.table-footer button{font-size:8px}.chat-panel.chat-open{top:61px;width:min(90vw,330px)}.modal-backdrop{padding:14px}.modal{padding:31px 22px;max-height:91dvh;border-radius:13px}.modal h2{font-size:27px}.rule-grid{gap:5px 15px}.rule-grid p{font-size:10px}.modal p{font-size:11px}td,th{padding:11px 9px}.score-modal .eyebrow{font-size:8px}.score-modal h2{font-size:26px}.claim-button{font-size:10px;margin-top:3px;padding:9px;gap:6px;min-height:36px}.claim-button small{font-size:7px}.table-watermark{font-size:85px}.table-watermark span{font-size:45px}.end-trophy{width:34px}.hand-row:has(.hand-card:only-child){width:60px}.hand-row:has(.hand-card:only-child) .hand-card{left:0}}@keyframes mobile-deal{0%{opacity:.3;transform:translate(calc(-50% + var(--from-x) * .5),calc(-50% + var(--from-y) * .5)) rotate(var(--rot))}to{opacity:1;transform:translate(calc(-50% + var(--tx) * .7),calc(-50% + var(--ty) * .75)) rotate(var(--rot))}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.resume-button{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #ccd8bf;background:#edf2e5;color:#4b7041;border-radius:7px;padding:11px;margin-top:18px;font-size:11px}.joker-corner{position:absolute;left:4px;top:3px;font-size:14px;line-height:1;color:#282b2c;background:#fff;border-radius:2px;padding:1px 2px;text-align:center}.joker-corner>span{display:block;font-size:9px;margin-top:2px}@media (max-width:600px) and (max-height:760px){.game-shell{min-height:600px}.arena{min-height:0}.hand-row{--cw:54px;--step:27px;height:73px}.hand-mobile .hand-row+.hand-row{margin-top:-12px}.hand-dock{bottom:12px}.arena:not(.lobby-arena) .seat.self{display:none}.table-center{top:34%}.phase-icon{display:none}.table-meta{max-width:72%;gap:3px}.kitty-pile,.table-meta{bottom:175px}.table-meta .hearts-state,.table-meta .partner-state{font-size:7px}.hand-caption{margin-bottom:7px}.joker-corner{font-size:12px;left:2px;top:2px}.joker-corner>span{font-size:8px}}.resume-row{display:flex;align-items:center;margin-top:18px;gap:5px}.resume-row .resume-button{margin-top:0}.resume-row>.icon{color:#8a977e}@media (max-width:600px) and (max-height:760px){.table-center{top:43%}.arena:has(.trick-area) .table-center{top:46%}.trick-area{height:120px}.played-card{width:56px}}.sincellism-picker{position:relative;margin:10px 13px 0;text-align:right}.sincellism-toggle{display:inline-flex;align-items:center;gap:5px;background:transparent;color:#46623a;font-size:12px;padding:5px 0}.sincellism-toggle .expanded{transform:rotate(180deg)}.sincellism-options{position:absolute;bottom:100%;right:0;width:min(280px,80vw);background:#fffdf8;border:1px solid #d5dccb;border-radius:12px;box-shadow:0 8px 25px #0003;padding:6px;z-index:30;text-align:left}.sincellism-options button{display:block;width:100%;background:transparent;color:#28483a;text-align:left;padding:12px 8px;border-radius:7px;font-size:13px;line-height:1.4}.sincellism-options button:focus-visible,.sincellism-options button:hover{background:#e8eddc}.sincellism-options span{font-size:20px}.sincellism-celebration{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:200;pointer-events:none;width:min(560px,88%);padding:25px;text-align:center;color:#fff9e9;background:#193f36f2;border:2px solid #e8c68d;border-radius:24px;box-shadow:0 12px 45px #0005;animation:saying-appear 4s both}.sincellism-celebration strong{display:block;font-size:clamp(24px,4vw,40px);line-height:1.2;font-weight:700}.sincellism-emoji{display:block;font-size:85px;animation:saying-wiggle .6s ease-in-out infinite alternate}.sincellism-accent{display:block;color:#e8c68d;font-size:36px;animation:saying-notes .8s ease-in-out infinite alternate}@keyframes saying-appear{0%{opacity:0;scale:.9}8%,88%{opacity:1;scale:1}to{opacity:0;scale:1}}@keyframes saying-wiggle{0%{transform:rotate(-9deg)}to{transform:rotate(9deg)}}@keyframes saying-notes{0%{transform:translateY(3px);opacity:.6}to{transform:translateY(-10px);opacity:1}}@media (prefers-reduced-motion:reduce){.sincellism-accent,.sincellism-celebration,.sincellism-emoji{animation:none}}.chat-pickers{display:flex;justify-content:space-between;align-items:center}.emoji-options{position:absolute;bottom:calc(100% + 6px);right:0;width:min(300px,80vw);max-height:min(420px,60dvh);overflow-y:auto;overscroll-behavior:contain;color:#28483a;border:1px solid #d5dccb;border-radius:12px;box-shadow:0 8px 25px #0003;z-index:30;text-align:left}.emoji-heading,.emoji-options{background:#fffdf8;padding:12px}.emoji-heading{position:-webkit-sticky;position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;font-size:13px;margin:-12px -12px 0;border-bottom:1px solid #e8eddc}.emoji-options h4{margin:12px 0 6px;font-size:11px;color:#65775e}.emoji-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:2px;gap:2px}.emoji-grid button{min-width:0;min-height:42px;padding:4px;font-size:25px;background:transparent;border-radius:8px}.emoji-grid button:focus-visible,.emoji-grid button:hover{background:#e8eddc}.sincellism-celebration.turkey .sincellism-accent{animation:turkey-leaves 1.2s ease-in-out infinite}@keyframes turkey-leaves{0%{transform:translate(-8px,-10px) rotate(-6deg);opacity:0}30%{opacity:1}to{transform:translate(8px,10px) rotate(6deg);opacity:0}}@media (prefers-reduced-motion:reduce){.sincellism-celebration.turkey .sincellism-accent{animation:none}}.hand-player{text-align:center;margin-bottom:9px;line-height:1.5;font-size:12px;color:#f4f0de}.hand-player>div:first-child{display:flex;align-items:center;justify-content:center;gap:4px}.hand-player span{font-size:9px}.hand-player-score{margin-top:3px;font-size:9px;color:#bbc9af}.hand-dealer{border:1px solid #bbc9af;border-radius:50%;width:17px;height:17px;line-height:15px;margin-left:3px}.hand-player.your-turn strong:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);margin-right:5px}@media (max-width:600px) and (max-height:760px){.hand-player{display:none}}.partner-banner{background:#173f31;color:#fff4d6;text-align:center;padding:8px 12px;border-bottom:1px solid #d9bb7855;flex-shrink:0;display:flex;flex-direction:column;gap:3px;font-size:13px}.partner-banner>strong{font-size:9px;letter-spacing:2px;color:#e8c68d}.partner-announcement{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(460px,88%);padding:22px;border-radius:20px;border:2px solid #e8c68d;background:#173f31;color:#fff4d6;text-align:center;z-index:201;box-shadow:0 10px 40px #0005}.partner-announcement>span{display:block;font-size:10px;letter-spacing:2px;margin:8px}.partner-announcement h2{font-size:clamp(20px,3vw,30px);margin:10px 0}.called-card-label{color:#e8c68d;font-size:24px;font-weight:700}.partner-announcement p{margin:10px 0 16px;font-size:12px}.message-reactions{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0}.message-reactions button{display:inline-flex;align-items:center;gap:3px;border-radius:12px;padding:4px 7px;background:#eeeee2;color:#48613e;font-size:12px}.message-reactions button.reacted{box-shadow:inset 0 0 0 1px #648354;background:#e1e8d7}.message-reactions button:disabled{opacity:1}.reaction-plus{font-size:10px}.message-reaction-picker{display:flex;flex-wrap:wrap;gap:3px;padding:5px;border:1px solid #d5dccb;border-radius:9px;background:#fffdf8;margin:5px 0}.message-reaction-picker button{display:grid;place-items:center;min-width:32px;min-height:32px;background:transparent;font-size:20px;border-radius:6px}.message-reaction-picker button:hover{background:#e8eddc}.played-card.own-play{animation:none}.pass-tray{display:flex;justify-content:center;gap:14px;margin-bottom:14px;pointer-events:auto}.pass-slot{position:relative;width:64px;aspect-ratio:5/7;border:2px dashed #d9c994aa;border-radius:7px;display:grid;place-items:center;color:#d9c994;background:#173f3144}.pass-slot.filled{border:0;background:none}.pass-slot .card-art{width:100%;border-radius:6px;box-shadow:0 3px 9px #0004}.pass-remove{position:absolute;top:-7px;right:-7px;width:25px;height:25px;display:grid;place-items:center;border-radius:50%;color:#173f31;background:#f8e7ba;border:1px solid #173f31;box-shadow:0 2px 4px #0003}.hand-card.pass-picked .card-art{filter:brightness(.65)}.passing-arena .hand-card:enabled:hover{transform:none;z-index:auto}.arena.passing-arena{min-height:600px}.passing-arena .table-center{top:25%}@media (max-width:600px){.arena.passing-arena{min-height:620px}.pass-slot{width:52px}.pass-tray{gap:14px;margin-bottom:12px}}.hand-player,.seat-name{font-size:16px;font-weight:600}.seat-name{max-width:210px}.hand-player-score,.seat-detail{font-size:13px;line-height:1.4}.hand-caption:empty{display:none}.deal-animation{position:absolute;inset:0;z-index:90;pointer-events:none}.deal-animation img{position:absolute;left:50%;top:50%;width:48px;transform:translate(-50%,-50%);border-radius:4px;box-shadow:0 1px 3px #0005}.dealt-back{animation:table-deal .4s ease-out both}.is-dealing .hand-dock,.is-dealing .mini-hand,.is-dealing .table-center{visibility:hidden}@keyframes table-deal{0%{left:50%;top:50%;opacity:1}85%{opacity:1}to{left:var(--deal-x);top:var(--deal-y);opacity:0}}@media (prefers-reduced-motion:reduce){.dealt-back{animation-duration:1ms}}.chat-toggle{display:grid;position:relative}.chat-unread{position:absolute;top:-5px;right:-7px;min-width:18px;height:18px;padding:0 4px;border-radius:12px;background:#a13232;color:white;font:600 11px/18px var(--sans)}.chat-message a{color:inherit;text-decoration:underline;overflow-wrap:anywhere}.hand-card{transition:transform .45s ease,translate .45s ease,filter .18s}.hand-card.received{translate:0 -26px}.leader-crown{position:absolute;top:-24px;left:50%;transform:translateX(-50%);font-size:23px}.seat.game-winner .avatar{display:grid;border-color:var(--gold);box-shadow:0 0 24px #e8c68d80}.game-winner .seat-name{color:#ffe2a5}.winner-confetti{position:absolute;inset:0;pointer-events:none}.winner-confetti i{position:absolute;left:50%;top:50%;width:6px;height:10px;background:#f4d282;transform:rotate(calc(var(--burst) * 22.5deg));animation:winner-burst 2s ease-out 3;animation-delay:calc(var(--burst) * 35ms);opacity:0}.winner-confetti i:nth-child(3n){background:#ef8ba1}.winner-confetti i:nth-child(3n+1){background:#9ce5db}@keyframes winner-burst{0%{opacity:1;transform:rotate(calc(var(--burst) * 22.5deg)) translateY(0)}to{opacity:0;transform:rotate(calc(var(--burst) * 22.5deg)) translateY(-95px) rotate(160deg)}}.horizontal-seat{display:grid;grid-template-columns:42px auto;grid-column-gap:10px;column-gap:10px;text-align:left;align-items:center}.horizontal-seat .avatar{grid-column:1;grid-row:1/3;margin:0}.horizontal-seat .seat-detail,.horizontal-seat .seat-name{grid-column:2}.horizontal-seat .mini-hand{display:none}.horizontal-seat.self:not(.game-winner){display:block;text-align:center}@media (min-width:601px) and (max-width:1100px){.arena{min-height:660px}.seat-name{max-width:140px;font-size:14px}.seat-detail{font-size:12px}.phase-panel h2{font-size:23px}.table-center{width:48%}.passing-arena .table-center{top:34%}}@media (prefers-reduced-motion:reduce){.winner-confetti i{animation:none}.hand-card{transition:none}}.hand-caption{min-height:26px}.horizontal-seat .dealer-badge{right:auto;left:-15px}.table-center:has(.partner-call){width:94%;max-width:540px}.partner-call h2{margin-bottom:20px}.partner-call .call-actions{align-items:stretch;gap:8px}.partner-call .call-actions select{flex:1 1;min-width:0;width:auto;max-width:210px;margin:0}.partner-call .call-actions button{flex-shrink:0;white-space:nowrap;padding-inline:14px}@media (max-width:600px){.partner-call .call-actions{gap:5px}.partner-call .call-actions button{font-size:10px;padding-inline:8px}.partner-call .call-actions select{font-size:10px;padding-inline:6px}}@media (max-width:850px){.arena:has(.partner-call){min-height:680px}.table-center:has(.partner-call){top:34%}.arena:has(.partner-call) .side-seat{top:58%!important}}