:root{color:#f5f6ff;font-synthesis:none;text-rendering:optimizelegibility;--cream:#f5f6ff;--ink:#080a20;--indigo:#3039b9;--indigo-light:#5964e4;--orange:#ff7267;--periwinkle:#a9b0ff;--turn:#ffd36e;--muted:#a7acd2;--card-display:"Cooper Black", "Arial Rounded MT Bold", "Arial Black", Georgia, serif;--table-card-width:clamp(58px, min(7.4vw, 8.7vh), 80px);background:#080a20;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(circle at 10% 20%,#3039b952,#0000 32%),radial-gradient(circle at 85% 15%,#8468ff24,#0000 26%),linear-gradient(165deg,#0d1033 0%,#080a20 54%,#100c2d 100%);min-width:320px;min-height:100vh}button{font:inherit}button:focus-visible{outline-offset:3px;outline:3px solid #c8ccff}.app-shell{min-height:100vh;padding:max(14px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));flex-direction:column;display:flex;overflow:clip}.topbar{justify-content:space-between;align-items:center;gap:16px;min-height:52px;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:10px;font-family:Georgia,serif;font-size:20px;display:flex}.brand-mark{color:#fff;background:linear-gradient(145deg,#3e48ca,#20267f);border:1px solid #f5f6ff59;border-radius:18px;place-items:center;width:64px;height:64px;font-family:Georgia,serif;font-size:32px;display:grid;box-shadow:inset 0 0 0 4px #171b62,0 20px 55px #0000004d}.brand-mark.small{border-radius:10px;width:34px;height:34px;font-size:17px;box-shadow:inset 0 0 0 2px #171b62}.bear-logo{background-color:#3039b9;background-image:url(/card-back.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover;border-color:#ffffffd1;box-shadow:0 20px 55px #0000004d,0 0 30px #5964e447}.room-chip{color:var(--muted);letter-spacing:.04em;border:1px solid #f5f6ff1f;border-radius:999px;padding:7px 12px;font-size:12px}.room-chip b{color:var(--cream)}.ghost-button{color:var(--cream);cursor:pointer;background:0 0;border:1px solid #f5f6ff2e;border-radius:999px;padding:9px 15px}.ghost-button:hover{background:#f5f6ff14}.game-surface{flex:1;grid-template-rows:minmax(145px,auto) 1fr minmax(170px,auto);align-items:center;gap:10px;min-height:0;padding:8px 0;display:grid}.game-surface.table-layout{position:relative;overflow:visible}.opponents-u{z-index:2;pointer-events:none;position:absolute;inset:44px 0 168px}.opponents-u .player-area{left:var(--u-x);top:var(--u-y);transform:translate(-50%, -50%) scale(var(--u-scale));transform-origin:50%;pointer-events:auto;position:absolute}.table-layout .table-center{z-index:1;grid-row:2}.table-layout .my-area{z-index:2;grid-row:3}.my-area{justify-content:center;align-items:center;gap:20px;display:flex}.player-area{isolation:isolate;border:0;border-radius:18px;padding:9px 12px 12px;transition:all .25s;position:relative}.player-area:before{content:"";z-index:0;pointer-events:none;opacity:0;filter:blur(34px);background:radial-gradient(#ffd36e8a 0%,#ffbe4845 28%,#ffd36e1f 50%,#ffd36e0a 66%,#0000 82%);border-radius:44%;transition:opacity .35s,transform .5s cubic-bezier(.2,.75,.25,1);position:absolute;inset:-52px -82px;transform:scale(.7)}.player-area>*{z-index:1;position:relative}.player-area.active:before{opacity:1;animation:2.8s ease-in-out infinite turn-aura;transform:scale(1)}.player-area.active .card-grid{filter:drop-shadow(0 0 16px #ffd36e66);transform:scale(1.07)}.player-area.active .avatar{box-shadow:0 0 24px #ffd36ec7}@keyframes turn-aura{50%{opacity:.72;transform:scale(1.15)}}.player-area.winner:before{opacity:.72;background:radial-gradient(#ffd36e70,#ffd36e1f 50%,#0000 80%);transform:scale(1.04)}.player-heading{justify-content:center;align-items:center;gap:8px;margin-bottom:8px;display:flex}.player-heading>div{flex-direction:column;min-width:0;display:flex}.player-heading b{font-size:13px}.player-heading small{color:var(--muted);font-size:10px}.looking-indicator{background:#a9b0ff33;border-radius:65% 35%;flex:none;width:25px;height:15px;position:relative;transform:rotate(45deg);box-shadow:0 0 16px #a9b0ff47}.looking-indicator i{background:#d7dafe;border-radius:50%;width:7px;height:7px;animation:1.8s ease-in-out infinite looking-around;position:absolute;top:50%;left:50%;box-shadow:0 0 0 2px #5964e4}@keyframes looking-around{0%,to{transform:translate(-80%,-50%)}50%{transform:translate(-20%,-50%)}}.drawing-indicator{flex:none;width:27px;height:19px;position:relative}.drawing-indicator:before,.drawing-indicator:after{content:"";background:#3039b9;border:1px solid #fffc;border-radius:2px;width:11px;height:15px;position:absolute;top:4px;left:2px;transform:rotate(-8deg)}.drawing-indicator:after{top:2px;left:5px}.drawing-indicator i{z-index:1;background:#fff;border-radius:2px;width:12px;height:17px;animation:1.15s cubic-bezier(.2,.8,.2,1) infinite drawing-card;position:absolute;top:0;left:7px;box-shadow:0 0 13px #ffd36ea6}@keyframes drawing-card{0%{opacity:.2;transform:translate(-10px,4px)rotate(-14deg)}45%,75%{opacity:1;transform:translate(8px,-3px)rotate(7deg)}to{opacity:0;transform:translate(10px,-3px)rotate(7deg)}}.avatar{color:#0a0c2c;border-radius:50%;place-items:center;width:28px;height:28px;font-size:12px;font-weight:800;display:grid}.avatar-0{background:#a9b0ff}.avatar-1{background:#ff9f9a}.avatar-2{background:#8fdaee}.avatar-3{background:#c9b8ff}.avatar-4{background:#f0a9e4}.card-grid{transform-origin:50%;grid-template-columns:repeat(2,max-content);justify-content:center;gap:6px;transition:transform .3s,filter .3s;display:grid}.slot-wrap{border-radius:10px;transition:transform .15s;position:relative}.slot-wrap.selected{box-shadow:0 0 0 3px var(--periwinkle);transform:translateY(-6px)}.slot-wrap.peek-observed{z-index:5}.slot-wrap.peek-observed .card-back{animation:1.15s ease-in-out infinite peeked-card-pulse}.peek-indicator{z-index:6;pointer-events:none;background:#ffd36ee6;border-radius:70% 30%;place-items:center;width:34px;height:22px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg);box-shadow:0 0 0 5px #ffd36e21,0 0 25px #ffd36eb8}.peek-indicator i{background:#252b86;border-radius:50%;width:9px;height:9px;animation:1.3s ease-in-out infinite peek-eye;box-shadow:0 0 0 3px #fff}@keyframes peeked-card-pulse{50%{filter:brightness(1.28)saturate(.75);transform:scale(1.035)}}@keyframes peek-eye{0%,to{transform:translate(-3px)}50%{transform:translate(3px)}}.card-button{cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:9px;padding:0;display:block}.card-button:disabled{cursor:default}.playing-card,.card-back,.empty-slot,.empty-discard{border-radius:9px;width:70px;height:98px;position:relative;overflow:hidden}.playing-card{color:#151833;background:#fff;border:0;padding:0;display:block;box-shadow:0 7px 20px #0000004d}.asset-card svg{border-radius:8px;width:100%;height:100%;display:block;overflow:hidden}.card-face-loading{background:linear-gradient(110deg,#f6f6fb 25%,#fff 42%,#f6f6fb 60%) 0 0/220% 100%;width:100%;height:100%;animation:.8s linear infinite card-loading;display:block}@keyframes card-loading{to{background-position-x:-220%}}.score-badge{color:#fff;background:#3039b9;border-radius:50%;place-items:center;width:19px;height:19px;font-size:9px;font-style:normal;font-weight:900;display:grid;position:absolute;bottom:4px;right:4px;box-shadow:0 2px 6px #00000040}.flip-in{transform-origin:50%;animation:.42s cubic-bezier(.2,.75,.25,1) card-flip-in}@keyframes card-flip-in{0%{filter:brightness(.6);transform:rotateY(90deg)scale(.94)}to{filter:brightness();transform:rotateY(0)scale(1)}}.card-back{background-color:#3039b9;background-image:url(/card-back.jpg);background-position:50%;background-repeat:no-repeat;background-size:100%;border:2px solid #ffffffe0;place-items:center;display:grid;box-shadow:inset 0 0 0 2px #3039b9b3,0 7px 20px #00000052}.empty-slot{visibility:hidden;border:0}.empty-discard{color:#f5f6ff59;letter-spacing:.12em;border:1px dashed #f5f6ff33;place-items:center;font-size:8px;display:grid}.compact.playing-card,.compact.card-back,.card-grid .empty-slot{width:var(--table-card-width);aspect-ratio:5/7;border-radius:8px;height:auto}.replace-mode .slot-wrap:not(.is-revealed) .card-back{box-shadow:0 0 0 2px #a9b0ff80,0 7px 20px #00000052}.slap-button,.gift-button{z-index:3;color:#fff;background:var(--orange);cursor:pointer;opacity:0;border:0;border-radius:999px;place-items:center;width:21px;height:21px;padding:0;font-size:12px;font-weight:900;transition:all .12s;display:grid;position:absolute;bottom:-5px;right:-7px;transform:scale(.8);box-shadow:0 4px 10px #00000059}.slot-wrap:hover .slap-button,.slap-button:focus-visible{opacity:1;transform:scale(1)}.gift-button{opacity:1;background:var(--periwinkle);color:#111431;width:auto;padding:0 6px;font-size:7px;transform:scale(1)}.peek-timer{z-index:4;background:var(--turn);transform-origin:0;border-radius:3px;height:3px;animation:3s linear forwards peek-countdown;position:absolute;bottom:-5px;left:4px;right:4px}@keyframes peek-countdown{to{transform:scaleX(0)}}.reveal-done{color:#171632;background:var(--turn);cursor:pointer;border:1px solid #ffd36e8c;border-radius:999px;margin:9px auto 0;padding:7px 15px;font-size:10px;font-weight:900;display:block}.table-center{flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:195px;display:flex}.pile-zone{grid-template-columns:repeat(3,max-content);align-items:start;gap:14px;min-height:105px;display:grid}.deck{color:#fff;text-shadow:0 1px 6px #000000a6;cursor:pointer;background-color:#3039b9;background-image:linear-gradient(#181e742e,#181e7494),url(/card-back.jpg);background-position:50%;background-repeat:no-repeat;background-size:100%;border:2px solid #ffffffe0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;width:60px;height:82px;display:flex;box-shadow:inset 0 0 0 2px #3039b9b3,0 10px 24px #00000057}.deck:not(:disabled):hover{transform:translateY(-4px)rotate(-1deg)}.deck:disabled{cursor:default;filter:saturate(.65);opacity:.7}.deck span{font-family:Georgia,serif;font-size:22px}.deck small,.discard-wrap>small{letter-spacing:.12em;font-size:7px}.discard-wrap{color:var(--muted);flex-direction:column;align-items:center;gap:5px;display:flex}.discard-wrap .empty-discard{width:60px;height:82px}.drawn-card-position{justify-content:center;align-items:flex-start;min-width:60px;min-height:82px;display:flex}.drawn-card-zone{flex-direction:column;align-items:center;gap:5px;animation:.34s cubic-bezier(.2,.8,.2,1) draw-to-table;display:flex}.action-card-ghost{filter:drop-shadow(0 14px 22px #0000006b);transition:none!important;animation:none!important}.discard-action{min-height:20px;color:var(--orange);font-family:var(--card-display);letter-spacing:.06em;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;border-radius:0;padding:2px 4px;font-size:10px;font-weight:900;text-decoration:underline;text-decoration-thickness:2px}.discard-action:hover{color:#ff9b93;transform:rotate(-1deg)scale(1.04)}@keyframes draw-to-table{0%{opacity:0;transform:translate(-72px)rotate(-7deg)}}.turn-prompt{color:#e3e5ff;background:#a8b0ff17;border-radius:999px;align-items:center;gap:8px;min-height:28px;padding:6px 13px;font-size:12px;display:flex}.turn-prompt>span{background:#656caa;border-radius:50%;width:7px;height:7px}.turn-prompt .pulse{background:var(--periwinkle);animation:1.8s infinite pulse;box-shadow:0 0 #a9b0ff80}@keyframes pulse{70%{box-shadow:0 0 0 8px #a9b0ff00}to{box-shadow:0 0 #a9b0ff00}}.primary-button{color:#111431;background:var(--periwinkle);cursor:pointer;border:0;border-radius:999px;padding:10px 16px;font-size:12px;font-weight:800;box-shadow:0 8px 22px #5662e747}.primary-button:hover:not(:disabled){filter:brightness(1.07);transform:translateY(-1px)}.primary-button:disabled{opacity:.38;cursor:default}.primary-button.wide{width:100%;padding:13px 18px}.kabo-button{color:var(--turn);font-family:var(--card-display);letter-spacing:.04em;text-underline-offset:4px;text-shadow:0 0 18px #ffd36e80;cursor:pointer;background:0 0;border:0;padding:8px 6px;font-size:clamp(16px,2vw,21px);font-weight:900;text-decoration:underline;text-decoration-thickness:2px;transform:rotate(-2deg)}.kabo-button:hover{text-shadow:0 0 26px #ffd36ebf;transform:rotate(1deg)scale(1.08)}.round-ended .pile-zone{opacity:.76}.round-summary{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:center;background:#0d1038d1;border-radius:18px;flex-direction:column;align-items:center;gap:5px;min-width:min(280px,88vw);padding:11px 18px;display:flex;box-shadow:0 16px 45px #00000057}.round-summary strong{max-width:280px;font-family:Georgia,serif;font-size:clamp(21px,3vw,30px);line-height:1}.round-summary small{color:var(--muted);margin-bottom:3px;font-size:10px}.round-summary .primary-button{padding:7px 14px;font-size:10px}.cards-revealed .player-heading small{color:var(--turn);font-weight:800}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#040518c7;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.reveal-modal{text-align:center;background:linear-gradient(155deg,#252b86,#10143f);border:1px solid #d6daff33;border-radius:26px;width:min(390px,100%);padding:28px;box-shadow:0 35px 100px #0000008c}.eyebrow{color:var(--periwinkle);letter-spacing:.16em;font-size:10px;font-weight:800}.reveal-modal h2{margin:8px 0 18px;font-family:Georgia,serif;font-size:30px}.revealed-cards{justify-content:center;gap:12px;display:flex}.reveal-modal p{color:var(--muted);font-size:11px;line-height:1.5}.lobby-card,.results-card{background:radial-gradient(circle at 100% 0,#7e61ff33,#0000 40%),linear-gradient(150deg,#262d89f0,#0d1038f7);border:1px solid #d6daff29;border-radius:30px;grid-row:1/-1;place-self:center;width:min(560px,100%);padding:clamp(26px,5vw,50px);box-shadow:0 35px 90px #0006}.results-card{width:min(940px,100%)}.lobby-card h1,.results-card h1{letter-spacing:-.045em;margin:10px 0 12px;font-family:Georgia,serif;font-size:clamp(36px,7vw,58px);line-height:.98}.lobby-card .lobby-title{font-family:var(--card-display);letter-spacing:.045em;text-align:center;margin:0 0 26px;font-size:clamp(50px,10vw,78px);transform:rotate(-1deg)}.lobby-card>p,.results-card>p{color:var(--muted);font-size:13px;line-height:1.55}.lobby-players{flex-direction:column;gap:7px;margin:24px 0;display:flex}.lobby-player{background:#f5f6ff0e;border-radius:12px;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.lobby-player span{width:24px;height:24px;color:var(--periwinkle);background:#a9b0ff1f;border-radius:50%;place-items:center;font-size:10px;display:grid}.lobby-player b{font-size:13px}.lobby-player em{color:var(--muted);font-size:10px;font-style:normal}.waiting-seat{color:var(--muted);text-align:center;border:1px dashed #f5f6ff26;border-radius:12px;padding:13px;font-size:11px}.lobby-card>small{color:#858cbd;text-align:center;margin-top:12px;font-size:10px;display:block}.final-hands{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:22px 0;display:grid}.final-hands>section{background:#f5f6ff0b;border:1px solid #a9b0ff29;border-radius:16px;min-width:0;padding:12px}.final-hands>section.winner{background:#ffd36e17;border-color:#ffd36ea6;box-shadow:0 0 22px #ffd36e24}.final-hand-heading{grid-template-columns:24px 1fr auto;align-items:center;gap:7px;margin-bottom:10px;display:grid}.final-hand-heading span{width:22px;height:22px;color:var(--periwinkle);background:#a9b0ff1f;border-radius:50%;place-items:center;font-size:9px;display:grid}.final-hand-heading b{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.final-hand-heading em{color:var(--turn);font-size:10px;font-style:normal;font-weight:800}.final-card-row{flex-wrap:wrap;gap:5px;display:flex}.result-note{text-align:center;margin-top:20px;font-size:10px!important}.toast{z-index:30;left:50%;bottom:max(38px, calc(env(safe-area-inset-bottom) + 22px));max-width:min(90vw,460px);color:var(--cream);text-align:center;background:#252b86;border:1px solid #d6daff38;border-radius:999px;padding:10px 16px;font-size:12px;position:fixed;transform:translate(-50%);box-shadow:0 10px 40px #00000073}.toast.error{background:#622d25}.connection-dot{background:#656b9d;border-radius:50%;width:7px;height:7px;display:inline-block}.connection-dot.open{background:#7ed8ed}.connection-dot.connecting{background:var(--periwinkle)}.connection-dot.closed{background:var(--orange)}.table-connection{right:max(12px, env(safe-area-inset-right));bottom:max(10px, env(safe-area-inset-bottom));opacity:.7;position:fixed}.loading-screen{flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:100vh;display:flex}.loading-screen h1{margin:8px 0 0;font-family:Georgia,serif;font-size:38px}.loading-screen p{color:var(--muted);margin:0;font-size:12px}@media (width<=720px){:root{--table-card-width:clamp(56px, min(18vw, 9vh), 68px)}.app-shell{padding-left:10px;padding-right:10px}.game-surface{grid-template-rows:minmax(135px,auto) 1fr minmax(158px,auto)}.brand strong{display:none}.room-chip{font-size:10px}.opponents-u{inset:36px 0 154px}.player-area{padding:7px}.playing-card,.card-back,.empty-slot{width:60px;height:84px}.slap-button{opacity:1;transform:scale(.9)}.my-area{gap:8px}.kabo-button{padding:7px 3px;font-size:15px}.round-summary{min-width:220px;padding:9px 13px}.final-hands{grid-template-columns:1fr}}@media (height<=650px) and (width>=600px){:root{--table-card-width:clamp(52px, 8.2vh, 58px)}.game-surface{grid-template-rows:115px 1fr 130px}.playing-card,.card-back,.empty-slot{width:54px;height:76px}.player-heading{margin-bottom:4px}.table-center{min-height:130px}.opponents-u{inset:25px 0 122px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
