*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #1a252f;--bg-soft: #22303c;--felt: #1f5c3d;--felt-dark: #174630;--card-bg: #fdf8ec;--gold: #c9a227;--text: #eef2f5;--text-dim: #9fb0bd;--red: #c0392b;--black: #2c3e50;--accent: #e67e22;--ok: #27ae60;--danger: #c0392b;--radius: 12px}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button{font:inherit;border:none;border-radius:var(--radius);padding:.65rem 1.1rem;background:var(--bg-soft);color:var(--text);cursor:pointer;transition:transform .08s,filter .15s}button:active{transform:scale(.97)}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);color:#fff;font-weight:600}button.ok{background:var(--ok);color:#fff;font-weight:600}button.danger{background:var(--danger);color:#fff}button.ghost{background:transparent;border:1px solid var(--text-dim)}input[type=text]{font:inherit;padding:.65rem .9rem;border-radius:var(--radius);border:1px solid #3c4c5a;background:var(--bg-soft);color:var(--text);width:100%}input[type=text]:focus{outline:2px solid var(--accent)}.page{max-width:560px;margin:0 auto;padding:1.2rem;min-height:100%;display:flex;flex-direction:column;gap:1.1rem}.brand{text-align:center;padding-top:1.5rem}.brand h1{font-size:2.4rem;letter-spacing:.04em}.brand h1 .accent{color:var(--gold)}.brand p{color:var(--text-dim);margin-top:.3rem}.panel{background:var(--bg-soft);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.8rem}.panel h2{font-size:1.05rem;color:var(--text-dim);font-weight:600}.game-card{display:flex;align-items:center;gap:.9rem;background:var(--felt);border-radius:var(--radius);padding:.9rem}.game-card .emoji{font-size:2rem}.game-card h3{font-size:1.15rem}.game-card p{font-size:.85rem;color:#cfe3d8}.filter-chip{padding:.3rem .7rem;font-size:.85rem}.games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:.5rem}.game-tile{background:var(--felt);border-radius:var(--radius);padding:.6rem;display:flex;flex-direction:column;align-items:center;gap:.25rem;text-align:center}.game-tile-emoji{font-size:1.8rem}.game-tile-name{font-weight:700;font-size:.9rem;line-height:1.15}.game-tile-players{font-size:.72rem;color:#cfe3d8}.game-tile .row{width:100%;margin-top:.25rem}.row{display:flex;gap:.6rem;align-items:center}.row.wrap{flex-wrap:wrap}.grow{flex:1}.center{text-align:center}.dim{color:var(--text-dim);font-size:.9rem}.error-toast{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);background:var(--danger);color:#fff;padding:.7rem 1.2rem;border-radius:var(--radius);z-index:100;max-width:90vw;text-align:center;box-shadow:0 4px 16px #0006}.seat-list{display:flex;flex-direction:column;gap:.5rem}.seat{display:flex;align-items:center;gap:.7rem;background:var(--bg);border-radius:var(--radius);padding:.6rem .8rem}.seat .avatar{width:2.2rem;height:2.2rem;border-radius:50%;background:var(--felt);display:grid;place-items:center;font-size:1.1rem}.seat .who{flex:1}.seat .who .name{font-weight:600}.seat .who .sub{font-size:.78rem;color:var(--text-dim)}.seat .off{color:var(--danger);font-size:.78rem}.qr-box{display:flex;flex-direction:column;align-items:center;gap:.6rem}.qr-box img{width:min(220px,60vw);border-radius:8px;background:#fff;padding:8px}.code-pill{font-size:1.6rem;letter-spacing:.35em;font-weight:700;color:var(--gold);background:var(--bg);padding:.4rem .4rem .4rem .75rem;border-radius:var(--radius)}.table-page{height:100dvh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 35%,var(--felt) 0%,var(--felt-dark) 75%);overflow:hidden}.table-top{display:flex;align-items:center;gap:.6rem;padding:.5rem .8rem;background:#00000040;font-size:.85rem}.table-top .contract{color:var(--gold);font-weight:600}.opponents{display:flex;justify-content:space-evenly;gap:.4rem;padding:.5rem .4rem 0}.opp{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.35rem .6rem;border-radius:var(--radius);background:#00000038;min-width:4.2rem;font-size:.8rem;border:2px solid transparent}.opp.turn{border-color:var(--accent);box-shadow:0 0 12px #e67e2280}.opp .name{font-weight:600;max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opp .badge{font-size:.7rem;color:var(--gold)}.opp .cards-left{color:var(--text-dim);font-size:.72rem}.trick-area{flex:1;display:grid;place-items:center;position:relative;min-height:0}.trick-cards{position:relative;width:min(70vw,340px);height:min(38vh,300px)}.trick-slot{position:absolute;transform:translate(-50%,-50%);text-align:center}.trick-slot .who{font-size:.7rem;color:#ffffffd9;text-shadow:0 1px 2px #000;margin-top:2px}.trick-slot.winner .card{outline:3px solid var(--gold);box-shadow:0 0 16px #c9a227d9}.trick-winner-banner{position:absolute;bottom:6%;left:50%;transform:translate(-50%);background:#0009;color:var(--gold);padding:.45rem 1rem;border-radius:var(--radius);font-size:.9rem;white-space:nowrap;animation:banner-in .25s ease-out}@keyframes banner-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.center-msg{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;padding:1rem;pointer-events:none}.center-msg>div{background:#0000008c;padding:.8rem 1.2rem;border-radius:var(--radius);pointer-events:auto}.card{--w: clamp(52px, 13.5vw, 78px);width:var(--w);height:calc(var(--w) * 1.5);background:var(--card-bg);border-radius:calc(var(--w) * .1);border:1px solid #b9ad91;box-shadow:0 2px 5px #00000059;position:relative;color:var(--black);-webkit-user-select:none;user-select:none;flex-shrink:0;display:grid;place-items:center}.card.red{color:var(--red)}.card.trump{color:#7d5a12;background:linear-gradient(160deg,#fdf6dd,#f6e7b2)}.card.excuse{color:#6c3483;background:linear-gradient(160deg,#f8effc,#e8d5f5)}.card.bout{border:2px solid var(--gold);box-shadow:0 2px 5px #00000059,0 0 10px #c9a2278c}.card.bout:not(.excuse){background:radial-gradient(ellipse at 50% 30%,rgba(255,255,255,.5),transparent 60%),linear-gradient(160deg,#fff3c8,#eccf72)}.trump-ring{width:62%;aspect-ratio:1;border:calc(var(--w) * .03) double #c9a227;border-radius:50%;display:grid;place-items:center;background:#fff6;font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:calc(var(--w) * .36);color:#8a6410}.bout-icon{font-size:calc(var(--w) * .42);line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}.card-label{position:absolute;bottom:5%;left:0;width:100%;text-align:center;font-variant:small-caps;letter-spacing:.03em;font-weight:700;font-size:calc(var(--w) * .15);color:#8a6410}.card.excuse .card-label{color:#6c3483}.card.mini .card-label{display:none}.card .corner{position:absolute;top:4px;left:5px;font-size:calc(var(--w) * .24);font-weight:700;line-height:1;text-align:center}.card .corner small{display:block;font-size:calc(var(--w) * .2)}.card .big{font-size:calc(var(--w) * .5);font-weight:700}.card .star{font-size:calc(var(--w) * .22);display:block;text-align:center}.card.small{--w: clamp(40px, 9.5vw, 60px)}.card.mini{--w: 34px}.card.disabled{filter:brightness(.55) saturate(.6)}.card.selected{outline:3px solid var(--accent);transform:translateY(-10px)}.card.playable-hint{outline:2px solid rgba(230,126,34,.6)}.card-btn{background:none;border:none;padding:0;border-radius:8px}.my-area{background:#0000004d;padding:.5rem .4rem calc(.6rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:.5rem}.my-status{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;padding:0 .4rem}.hand{display:flex;justify-content:flex-start;overflow-x:auto;padding:12px .4rem 4px;scrollbar-width:thin}.hand .card-btn{margin-left:calc(clamp(52px,13.5vw,78px)*-.45);transition:transform .1s}.hand .card-btn:first-child{margin-left:0}.action-bar{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;padding:0 .4rem}.action-bar button{flex:1 1 auto;min-width:5.5rem}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:grid;place-items:center;z-index:50;padding:1rem}.overlay .box{background:var(--bg-soft);border-radius:var(--radius);padding:1.2rem;width:min(480px,94vw);max-height:88dvh;overflow-y:auto;display:flex;flex-direction:column;gap:.9rem}.overlay .box h2{color:var(--gold)}.score-table{width:100%;border-collapse:collapse;font-size:.92rem}.score-table th,.score-table td{padding:.45rem .5rem;text-align:right;border-bottom:1px solid #33424f}.score-table th:first-child,.score-table td:first-child{text-align:left}.score-table .pos{color:var(--ok)}.score-table .neg{color:#e74c3c}.result-lines{display:flex;flex-direction:column;gap:.3rem;font-size:.92rem}.result-lines .line{display:flex;justify-content:space-between}.result-lines .line span:last-child{font-weight:600}.dog-cards{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:center}.chat-box{display:flex;flex-direction:column;gap:.5rem;min-height:0;flex:1}.chat-msgs{overflow-y:auto;display:flex;flex-direction:column;gap:.35rem;min-height:4rem;max-height:220px;padding-right:.2rem;scrollbar-width:thin}.chat-msg{font-size:.9rem;line-height:1.35;overflow-wrap:anywhere}.chat-from{color:var(--gold);font-weight:600;margin-right:.25rem}.chat-drawer{position:fixed;top:0;right:0;bottom:0;width:min(360px,94vw);background:var(--bg-soft);z-index:60;padding:1rem calc(.8rem + env(safe-area-inset-right)) calc(.8rem + env(safe-area-inset-bottom)) .8rem;display:flex;flex-direction:column;gap:.7rem;box-shadow:-8px 0 24px #00000073;animation:drawer-in .2s ease-out}.chat-drawer .chat-msgs{max-height:none;flex:1}.chat-drawer h2{color:var(--gold);font-size:1.05rem}@keyframes drawer-in{0%{transform:translate(30px);opacity:0}to{transform:translate(0);opacity:1}}.chat-badge{background:var(--accent);color:#fff;border-radius:999px;font-size:.7rem;font-weight:700;padding:.05rem .4rem;margin-left:.2rem}.p4-page{background:radial-gradient(ellipse at 50% 30%,#24344d,#16202e 75%)}.p4-players{display:flex;justify-content:space-evenly;gap:.4rem;padding:.5rem .4rem 0}.p4-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;padding:.6rem;min-height:0}.p4-board{display:grid;grid-template-columns:repeat(7,1fr);gap:min(1.4vw,8px);background:linear-gradient(170deg,#2563ae,#1b4a86);padding:min(2vw,12px);border-radius:14px;box-shadow:0 6px 20px #00000073}.p4-col{display:flex;flex-direction:column;gap:min(1.4vw,8px);background:none;border:none;padding:0;border-radius:8px}.p4-col:not(:disabled):hover{background:#ffffff1f}.p4-col:disabled{opacity:1;cursor:default}.p4-cell{width:clamp(34px,11vw,58px);aspect-ratio:1;border-radius:50%;background:#10233a;box-shadow:inset 0 2px 5px #0000008c;transition:background .15s}.p4-cell.p0{background:radial-gradient(circle at 35% 30%,#f47368,#c0392b);box-shadow:inset 0 -2px 4px #0000004d}.p4-cell.p1{background:radial-gradient(circle at 35% 30%,#f9e079,#d4ac0d);box-shadow:inset 0 -2px 4px #0000004d}.p4-cell.last{outline:2px solid rgba(255,255,255,.7)}.p4-cell.win{outline:3px solid #fff;box-shadow:0 0 14px #fffc}.p4-status{font-size:1rem;text-align:center;min-height:1.4rem}.p4-dot{display:inline-block;width:.85em;height:.85em;border-radius:50%;vertical-align:baseline}.p4-dot.p0{background:#e74c3c}.p4-dot.p1{background:#f1c40f}.six-page{background:radial-gradient(ellipse at 50% 30%,#3c5a34,#24391f 75%)}.six-rows{flex:1;display:flex;flex-direction:column;justify-content:center;gap:min(1.6vh,10px);padding:.5rem;min-height:0;overflow-y:auto}.six-row{display:flex;align-items:center;gap:.6rem;justify-content:center}.six-row-cards{display:flex;gap:min(1vw,6px)}.six-row-info{display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:3.6rem}.six-card{--sw: clamp(44px, 11vw, 64px);width:var(--sw);height:calc(var(--sw) * 1.35);background:#fdf8ec;border:1px solid #b9ad91;border-radius:calc(var(--sw) * .12);box-shadow:0 2px 4px #00000059;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#2c3e50;-webkit-user-select:none;user-select:none;flex-shrink:0}.six-card.small{--sw: clamp(36px, 8.5vw, 54px)}.six-card .six-num{font-size:calc(var(--sw) * .42);font-weight:800;line-height:1}.six-card .six-heads{font-size:calc(var(--sw) * .2);line-height:1;letter-spacing:-.1em}.six-card.h2{background:linear-gradient(160deg,#fdf8ec,#f4e9c8)}.six-card.h3{background:linear-gradient(160deg,#fdf3e0,#f6ddb0);border-color:#d19f4c}.six-card.h5{background:linear-gradient(160deg,#fdeaea,#f5c1c1);border-color:#c0392b;color:#922b21}.six-card.h7{background:linear-gradient(160deg,#f3e6fb,#ddb8f2);border-color:#6c3483;color:#5b2c6f;box-shadow:0 0 10px #9b59b699}.six-card.dimmed{filter:brightness(.75)}.six-card.selected{outline:3px solid var(--accent);transform:translateY(-8px)}.six-slot{--sw: clamp(36px, 8.5vw, 54px);width:var(--sw);height:calc(var(--sw) * 1.35);border:1px dashed rgba(255,255,255,.25);border-radius:calc(var(--sw) * .12)}.six-queue{display:flex;align-items:center;gap:.5rem;padding:.4rem .8rem;background:#00000059;overflow-x:auto}.six-queue-item{display:flex;flex-direction:column;align-items:center;gap:2px}.six-queue-item .who{font-size:.7rem;color:var(--text-dim)}.six-hand{gap:min(1vw,6px)}.six-hand .card-btn{margin-left:0}.skyjo-page{background:radial-gradient(ellipse at 50% 30%,#1e4a5f,#122c3a 75%)}.sk-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;min-height:0;padding:.4rem}.sk-piles{display:flex;gap:1.2rem;align-items:flex-end}.sk-pile{display:flex;flex-direction:column;align-items:center;gap:.3rem;background:none;border:none;padding:.3rem;border-radius:10px}.sk-pile:not(:disabled):hover{background:#ffffff1a}.sk-pile:disabled{opacity:.85;cursor:default}.sk-cell{--sc: clamp(44px, 12vw, 64px);width:var(--sc);height:calc(var(--sc) * 1.3);border-radius:calc(var(--sc) * .14);display:grid;place-items:center;font-size:calc(var(--sc) * .42);font-weight:800;color:#1b2631;border:none;padding:0;box-shadow:0 2px 4px #00000059;-webkit-user-select:none;user-select:none}.sk-cell.hidden{background:linear-gradient(150deg,#34495e,#22303c);color:#7f96a8;font-size:calc(var(--sc) * .5)}.sk-cell.gone{background:transparent;box-shadow:inset 0 0 0 1px #ffffff26}.sk-cell.vneg{background:linear-gradient(160deg,#7ec8f5,#2e86c1);color:#0b2740}.sk-cell.v0{background:linear-gradient(160deg,#cfe8f7,#85c1e9);color:#1a3a52}.sk-cell.vlow{background:linear-gradient(160deg,#a9dfbf,#52be80);color:#145a32}.sk-cell.vmid{background:linear-gradient(160deg,#f9e79f,#f4d03f);color:#6e5c07}.sk-cell.vhigh{background:linear-gradient(160deg,#f1948a,#e74c3c);color:#641e16}.sk-cell.hl{outline:2px solid rgba(255,255,255,.8)}.sk-cell.mini{--sc: clamp(13px, 2.6vw, 20px);border-radius:3px;font-size:calc(var(--sc) * .62);font-weight:700;box-shadow:none}.sk-grid{display:grid;grid-template-columns:repeat(4,auto);gap:min(1.5vw,8px);justify-content:center;padding:.3rem 0 .5rem}.sk-mini-grid{display:grid;grid-template-columns:repeat(4,auto);gap:2px;padding:2px 0}button.sk-cell{cursor:pointer}button.sk-cell:active{transform:scale(.95)}.pres-page{background:radial-gradient(ellipse at 50% 30%,#4a2c4f,#2a1a2e 75%)}.pres-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;min-height:0;padding:.5rem}.pres-card{--pw: clamp(46px, 11.5vw, 66px);width:var(--pw);height:calc(var(--pw) * 1.4);background:#fdf8ec;border:1px solid #b9ad91;border-radius:calc(var(--pw) * .12);display:grid;place-items:center;font-size:calc(var(--pw) * .44);font-weight:800;color:#2c3e50;box-shadow:0 2px 4px #00000059;-webkit-user-select:none;user-select:none}.pres-card.small{--pw: clamp(38px, 9vw, 54px)}.pres-card.high{color:#8e44ad}.pres-card.strong{background:linear-gradient(160deg,#fbeee6,#f5cba7);color:#ba4a00;border-color:#ba4a00}.pres-card.selected{outline:3px solid var(--accent);transform:translateY(-8px)}.pres-hand{gap:min(1.2vw,8px);align-items:flex-end}.pres-hand .card-btn{margin-left:0}.pres-group{position:relative;display:flex;flex-direction:column;align-items:center}.pres-group.dimmed{filter:brightness(.6)}.pres-count{position:absolute;top:-8px;right:-4px;background:var(--accent);color:#fff;font-size:.72rem;font-weight:700;border-radius:999px;padding:.05rem .35rem}.pres-trick{display:flex;flex-direction:column;gap:.4rem}.bn-page{background:radial-gradient(ellipse at 50% 30%,#1c3d5c,#102438 75%)}.bn-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7rem;min-height:0;padding:.5rem;overflow-y:auto}.bn-boards{display:flex;gap:1.2rem;align-items:flex-start;flex-wrap:wrap;justify-content:center}.bn-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:2px;background:#0006;padding:5px;border-radius:10px;width:min(92vw,380px)}.bn-grid.mini{width:min(60vw,220px)}.bn-grid.active{box-shadow:0 0 14px #e67e2273}.bn-cell{aspect-ratio:1;background:#1f4e79;border-radius:3px;border:none;padding:0;display:grid;place-items:center;font-size:.8em;color:#cfe3f5}button.bn-cell{cursor:crosshair}button.bn-cell:hover{background:#2e6da4}.bn-cell.ship{background:#5d6d7e}.bn-cell.miss{background:#17364f;color:#7fb3d5}.bn-cell.hit{background:#c0392b;color:#fff}.bn-cell.sunk{background:#641e16;color:#f5b7b1}.bn-cell.last{outline:2px solid #fff;z-index:1}.bn-last{font-weight:600}.pe-page{background:radial-gradient(ellipse at 50% 30%,#5c3a1c,#33200f 75%)}.pe-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;min-height:0;padding:.6rem;overflow-y:auto}.pe-die{font-size:2.2rem;line-height:1;color:#fdf8ec}.pe-die.paco{color:#f1c40f}.pe-die.small{font-size:1.5rem}.pe-my-dice{display:flex;justify-content:center;gap:.5rem;padding:.3rem 0 .5rem}.pe-my-dice .pe-die{font-size:clamp(2.4rem,10vw,3.4rem)}.pe-bid-display{text-align:center;display:flex;flex-direction:column;gap:.3rem;align-items:center}.pe-bid-big{font-size:clamp(2rem,8vw,3rem);font-weight:800;display:flex;align-items:center;gap:.5rem;background:#00000059;padding:.5rem 1.4rem;border-radius:16px}.pe-face{font-size:1.7rem;padding:.25rem .5rem;background:var(--bg-soft);line-height:1}.pe-face.sel{outline:3px solid var(--accent);background:#3a2a18}.pe-qty{font-size:1.5rem;font-weight:800;min-width:2.2rem;text-align:center;align-self:center}.pe-builder{flex-direction:column}.pe-reveal{display:flex;flex-direction:column;gap:.7rem;align-items:center;max-width:480px}.pe-reveal-dice{background:#00000059;border-radius:12px;padding:.6rem 1rem;display:flex;flex-direction:column;gap:.3rem;width:100%}.pe-reveal-row{display:flex;justify-content:space-between;align-items:center;gap:.8rem}.pe-reveal-row .who{color:var(--text-dim);font-size:.85rem}.opp.pe-out{opacity:.45}.my-page{background:radial-gradient(ellipse at 50% 30%,#3d2b3f,#221726 75%)}.my-board-wrap{flex:1;display:grid;place-items:center;min-height:0;padding:.4rem;overflow:auto}.my-board{display:grid;grid-template-columns:repeat(13,1fr);gap:1px;background:#14101a;padding:4px;border-radius:10px;width:min(94vw,60vh,480px)}.my-cell{aspect-ratio:1;position:relative;border-radius:2px}.my-cell.corridor{background:#3a3142}.my-cell.void{background:transparent}.my-cell.room{background:#55414f}.my-cell.room-0{background:#5d4037}.my-cell.room-1{background:#6d4c41}.my-cell.room-2{background:#4e342e}.my-cell.room-3{background:#5d4a66}.my-cell.room-4{background:#37474f}.my-cell.room-5{background:#6a4f4b}.my-cell.room-6{background:#4a5d43}.my-cell.room-7{background:#3f5d5a}.my-cell.room-8{background:#5d5433}.my-cell.door:after{content:"";position:absolute;top:30%;right:30%;bottom:30%;left:30%;border-radius:50%;background:#c9a22780}.my-cell.target{outline:2px solid var(--accent);cursor:pointer;z-index:1}.my-cell.target:hover{filter:brightness(1.4)}.my-room-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:clamp(.45rem,1.6vw,.62rem);white-space:nowrap;color:#fffc;pointer-events:none;z-index:2;text-shadow:0 1px 2px #000}.my-pawn{position:absolute;top:15%;right:15%;bottom:15%;left:15%;border-radius:50%;border:2px solid rgba(0,0,0,.5);box-shadow:0 1px 3px #0009;z-index:3}.my-pawn.mine{border-color:#fff}.my-dot{display:inline-block;width:.7em;height:.7em;border-radius:50%;margin-right:.25em}.my-picker{display:flex;flex-direction:column;gap:.4rem}.my-struck{text-decoration:line-through;opacity:.55}.my-hand-cards{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center;padding:.2rem 0 .4rem}.my-card-chip{background:#fdf8ec;color:#2c3e50;border-radius:8px;padding:.25rem .55rem;font-size:.8rem;font-weight:600}.my-sheet{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.my-sheet-line{font-size:.85rem;padding:.1rem 0}.my-sheet-line.off{text-decoration:line-through;color:var(--text-dim)}.my-history{max-height:180px;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem}.ci-page{background:radial-gradient(ellipse at 50% 30%,#6b4a1f,#3a2810 75%)}.ci-track-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;min-height:0;padding:.4rem;overflow:auto}.ci-track{display:flex;flex-direction:column;gap:6px;background:#241a0d;padding:6px;border-radius:10px}.ci-row{display:flex;gap:2px}.ci-col{display:flex;flex-direction:column;gap:2px}.ci-cell{width:clamp(16px,4.6vw,26px);height:clamp(16px,4.6vw,26px);background:#8a6a3b;border-radius:3px;position:relative}.ci-cell.void{background:transparent}.ci-cell.narrow{background:#a1622c}.ci-cell.tribune{background:#b3902f;box-shadow:inset 0 0 0 1px #ffd54f}.ci-cell.finish{background:repeating-linear-gradient(45deg,#ddd 0,#ddd 4px,#333 4px,#333 8px)}.ci-cell.target{outline:2px solid var(--accent);cursor:pointer;z-index:1}.ci-cell.target:hover{filter:brightness(1.35)}.ci-char{position:absolute;top:12%;right:12%;bottom:12%;left:12%;border-radius:50%;border:2px solid rgba(0,0,0,.55);box-shadow:0 1px 3px #0009}.ci-char.mine{border-color:#fff}.ci-hand{display:flex;gap:.5rem;justify-content:center;padding:.2rem 0 .5rem;align-items:center}.ci-card{width:clamp(46px,11vw,60px);height:calc(clamp(46px,11vw,60px)*1.35);background:#fdf8ec;color:#7b3f00;font-size:1.7rem;font-weight:800;border:1px solid #b9ad91;border-radius:10px}.ci-card.sel{outline:3px solid var(--accent);transform:translateY(-6px)}.ci-card.dimmed{filter:brightness(.6)}@keyframes pop-in{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.08);opacity:1}to{transform:scale(1);opacity:1}}@keyframes drop-in{0%{transform:translateY(-260%);opacity:.6}70%{transform:translateY(6%);opacity:1}to{transform:translateY(0)}}@keyframes box-in{0%{transform:scale(.92) translateY(12px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}@keyframes turn-pulse{0%,to{box-shadow:0 0 8px #e67e2259}50%{box-shadow:0 0 16px #e67e22bf}}.trick-slot .card,.six-card,.pres-card,.jo-clue,.my-pawn,.ci-char,.pe-my-dice .pe-die{animation:pop-in .25s ease-out}.p4-cell.p0,.p4-cell.p1{animation:drop-in .35s cubic-bezier(.3,.7,.4,1.2)}.mo-cell:not(:empty){animation:pop-in .25s ease-out}.sk-cell.vneg,.sk-cell.v0,.sk-cell.vlow,.sk-cell.vmid,.sk-cell.vhigh{animation:pop-in .22s ease-out}.bn-cell.hit,.bn-cell.miss,.pe-bid-big{animation:pop-in .25s ease-out}.overlay .box{animation:box-in .22s ease-out}.opp.turn{animation:turn-pulse 1.6s ease-in-out infinite}.emote-bar{display:flex;gap:.25rem;flex-wrap:wrap}.emote-btn{font-size:1.25rem;padding:.25rem .45rem;background:transparent;line-height:1}.emote-btn:hover{background:var(--bg)}@keyframes emote-float{0%{transform:translate(-50%,20px) scale(.5);opacity:0}15%{transform:translate(-50%) scale(1.15);opacity:1}25%{transform:translate(-50%,-6px) scale(1)}80%{transform:translate(-50%,-40px) scale(1);opacity:1}to{transform:translate(-50%,-70px) scale(.95);opacity:0}}.emote-splash{position:fixed;left:50%;top:34%;z-index:45;display:flex;flex-direction:column;align-items:center;pointer-events:none;animation:emote-float 2.6s ease-out forwards}.emote-splash-emoji{font-size:clamp(3rem,12vw,4.5rem);filter:drop-shadow(0 3px 8px rgba(0,0,0,.5))}.emote-splash-who{font-size:.85rem;color:#fff;background:#0000008c;padding:.15rem .6rem;border-radius:999px;margin-top:.2rem}.vo-page{background:radial-gradient(ellipse at 50% 30%,#1f2440,#101324 75%)}.vo-chars{display:flex;gap:.3rem;padding:.4rem;justify-content:center;flex-wrap:wrap}.vo-char-chip{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.3rem .45rem;background:#00000059;border:2px solid transparent;border-radius:10px;font-size:.65rem;color:var(--text-dim)}.vo-char-chip .vo-char-emoji{font-size:1.25rem}.vo-char-chip.innocent{opacity:.35;text-decoration:line-through}.vo-char-chip.lit{border-color:#f1c40f99}.vo-char-chip.active{border-color:var(--accent)}.vo-char-chip.avail{background:#e67e2240}.vo-char-chip.alibi{box-shadow:inset 0 0 0 2px #2ecc7180}.vo-char-chip.jack{box-shadow:inset 0 0 0 2px #e74c3ccc}.vo-board-wrap{flex:1;display:grid;place-items:center;min-height:0;padding:.3rem;overflow:auto}.vo-board{display:flex;gap:1px}.vo-col{display:flex;flex-direction:column;gap:1px}.vo-col.odd{margin-top:calc(clamp(24px,7vw,40px)/2)}.vo-cell{width:clamp(24px,7vw,40px);height:clamp(24px,7vw,40px);background:#2c3352;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);display:grid;place-items:center;font-size:clamp(.6rem,2.2vw,.95rem);position:relative}.vo-cell.wall{background:#15182b}.vo-cell.lamp{background:#3a3320}.vo-cell.lamp.lit{background:#6b5a1e;box-shadow:inset 0 0 12px #f1c40f8c}.vo-cell.exit{background:#2e4a35}.vo-cell.exit.blocked{background:#4a2e2e}.vo-cell.hole{background:#262c48}.vo-cell.beamed{background:#4a4630}.vo-cell.target{background:#3f5d8a;cursor:pointer}.vo-cell.target:hover{filter:brightness(1.3)}.vo-cell.escape{background:#2ecc71;cursor:pointer}.vo-cell.seldest{outline:2px solid var(--accent);background:#4a6da8}.vo-cell.stepsel{box-shadow:inset 0 0 0 3px var(--accent)}.vo-token{font-size:clamp(.8rem,2.8vw,1.2rem);cursor:pointer;filter:drop-shadow(0 1px 2px rgba(0,0,0,.8));animation:pop-in .25s ease-out}.vo-token.innocent{opacity:.45}.vo-token.jack{filter:drop-shadow(0 0 4px rgba(231,76,60,.9))}.vo-log{font-size:.75rem;color:var(--text-dim);text-align:center;min-height:1rem}.de-page{background:radial-gradient(ellipse at 50% 30%,#3d4a3a,#232b22 75%)}.de-wrap{flex:1;display:grid;place-items:center;min-height:0;padding:.4rem;overflow:auto}.de-grid{display:grid;gap:2px;background:#16201a;padding:4px;border-radius:8px;width:min(94vw,62vh,460px)}.de-cell{aspect-ratio:1;border:none;border-radius:3px;padding:0;font-size:clamp(.7rem,2.6vw,1rem);font-weight:800;display:grid;place-items:center}.de-cell.hidden{background:#4a5d43;box-shadow:inset 0 -2px #0000004d,inset 0 2px #ffffff1f;cursor:pointer}.de-cell.hidden:not(:disabled):hover{background:#5b7052}.de-cell.hidden:disabled{cursor:default}.de-cell.open{background:#2c352b;animation:pop-in .15s ease-out}.de-cell.mine{background:#8e2f2f;animation:pop-in .2s ease-out}.de-cell.last{outline:2px solid var(--accent);z-index:1}.f7-page{background:radial-gradient(ellipse at 50% 30%,#4a1f4e,#2a1230 75%)}.f7-players{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.4rem;padding:.4rem;overflow-y:auto}.f7-player{background:#0000004d;border-radius:10px;padding:.45rem .6rem;border:2px solid transparent;display:flex;flex-direction:column;gap:.3rem}.f7-player.turn{border-color:var(--accent);animation:turn-pulse 1.6s ease-in-out infinite}.f7-player.busted{opacity:.55}.f7-player.frozen{border-color:#85c1e980}.f7-head{display:flex;justify-content:space-between;font-size:.85rem;font-weight:600}.f7-cards{display:flex;flex-wrap:wrap;gap:.25rem;min-height:1.6rem}.f7-card{background:#fdf8ec;color:#4a1f4e;border-radius:6px;padding:.12rem .45rem;font-weight:800;font-size:.9rem;animation:pop-in .2s ease-out}.f7-card.mod{background:#f5cba7;color:#7e5109;font-size:.75rem}.f7-card.big{font-size:2.2rem;padding:.4rem 1.1rem}.f7-card.bust{background:#c0392b;color:#fff}.f7-scoreline{display:flex;justify-content:space-between;font-size:.78rem}.f7-center{flex:1;display:grid;place-items:center;min-height:0;padding:.3rem}.f7-last{display:flex;flex-direction:column;align-items:center;gap:.3rem}.cv-page{background:radial-gradient(ellipse at 50% 30%,#2e5941,#1a3325 75%)}.cv-wrap{flex:1;display:grid;place-items:center;min-height:0;padding:.4rem;overflow:auto}.cv-board{position:relative;width:min(92vw,58vh,440px);aspect-ratio:1;background:radial-gradient(circle,#24462f,#1a3325 80%);border-radius:50%;border:3px solid #0f1f16}.cv-cell{position:absolute;width:6.4%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:#35543f;border:2px solid rgba(0,0,0,.35);display:grid;place-items:center}.cv-cell.start{border-width:2.5px;background:#3f6a4d}.cv-cell.ladder{background:#2c4a38;border-style:dashed}.cv-cell.clickable{cursor:pointer;box-shadow:0 0 10px #e67e22cc}.cv-pawn{display:block;width:72%;aspect-ratio:1;border-radius:50%;border:2px solid rgba(0,0,0,.5);box-shadow:0 1px 3px #0009;animation:pop-in .25s ease-out}.cv-pawn.stable{position:relative;width:1.1rem;display:inline-block;margin:2px}.cv-pawn.stable.clickable{cursor:pointer;box-shadow:0 0 10px #e67e22e6}.cv-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:1.6rem}.cv-stable{position:absolute;width:20%;aspect-ratio:1.4;border:2px dashed;border-radius:10px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;background:#00000040}.da-page{background:radial-gradient(ellipse at 50% 30%,#4a3524,#2a1e14 75%)}.da-wrap{flex:1;display:grid;place-items:center;min-height:0;padding:.4rem;overflow:auto}.da-board{display:grid;grid-template-columns:repeat(10,1fr);width:min(94vw,60vh,460px);aspect-ratio:1;border:4px solid #1c130b;border-radius:6px;overflow:hidden}.da-cell{display:grid;place-items:center;position:relative}.da-cell.light{background:#d9c9a3}.da-cell.dark{background:#7a5636}.da-cell.canplay{box-shadow:inset 0 0 0 2px #e67e228c;cursor:pointer}.da-cell.sel{box-shadow:inset 0 0 0 3px var(--accent);cursor:pointer}.da-cell.target{box-shadow:inset 0 0 0 3px #2ecc71cc;cursor:pointer}.da-cell.lastmove:after{content:"";position:absolute;top:40%;right:40%;bottom:40%;left:40%;border-radius:50%;background:#f1c40f59;pointer-events:none}.da-piece{width:78%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;font-size:1rem;animation:pop-in .2s ease-out;box-shadow:0 2px 4px #00000080,inset 0 -3px #00000040}.da-piece.white{background:#f2ecdd;color:#8a6410}.da-piece.black{background:#2b2b33;color:#f1c40f}.rules-fab{position:fixed;right:.5rem;bottom:40%;z-index:40;width:2.3rem;height:2.3rem;border-radius:50%;padding:0;background:#00000073;border:1px solid rgba(255,255,255,.25);font-size:1rem;display:grid;place-items:center}.rules-fab:hover{background:#000000b3}.morpion-page{background:radial-gradient(ellipse at 50% 30%,#33434f,#1d2a33 75%)}.mo-board{display:grid;grid-template-columns:repeat(3,1fr);gap:min(2vw,12px);background:#0000004d;padding:min(2.5vw,14px);border-radius:16px}.mo-cell{width:clamp(70px,22vw,110px);aspect-ratio:1;border-radius:12px;background:var(--bg-soft);font-size:clamp(2rem,9vw,3.2rem);display:grid;place-items:center;padding:0}.mo-cell:disabled{opacity:1;cursor:default}.mo-cell:not(:disabled):hover{background:#2f4254}.mo-cell.win{background:#2e5b3e;box-shadow:0 0 14px #2ecc7199}.jo-page{background:radial-gradient(ellipse at 50% 30%,#4f4526,#2b2615 75%)}.jo-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;min-height:0;padding:.6rem;overflow-y:auto}.jo-word-card{background:#fdf8ec;color:#2c3e50;border-radius:14px;padding:1rem 2rem;text-align:center;box-shadow:0 4px 14px #0006;border:2px solid var(--gold)}.jo-word-card.mystery{background:#22303c;color:var(--text);border-style:dashed}.jo-word{font-size:clamp(1.6rem,6vw,2.4rem);font-weight:800;text-transform:capitalize}.jo-clues{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;max-width:600px}.jo-clue{background:#fffbe8;color:#2c3e50;border-radius:10px;padding:.5rem .9rem;display:flex;flex-direction:column;align-items:center;box-shadow:0 2px 6px #00000059}.jo-clue-text{font-weight:700;font-size:1.05rem}.jo-clue .who{font-size:.7rem;color:#7f8c8d}.jo-clue.canceled{opacity:.55}.jo-clue.canceled .jo-clue-text{text-decoration:line-through;color:#c0392b}.jo-result{padding:.7rem 1.2rem;border-radius:12px;font-weight:600;background:#0006}.jo-result.success{color:#2ecc71}.jo-result.fail{color:#e74c3c}.jo-result.pass{color:var(--text-dim)}.jo-page .action-bar input{flex:3 1 12rem}@media(min-width:700px){.opp{min-width:6rem;font-size:.9rem}.trick-cards{width:420px;height:330px}}
