:root{--color-felt: #2d6a2d;--color-felt-dark: #1e4d1e;--color-gold: #d4a843;--color-gold-light: #e8c36a;--color-gold-glow: rgba(212, 168, 67, .3);--color-card-bg: #fff;--color-text: #f0f0f0;--color-text-dark: #222;--color-accent: #e74c3c;--color-success: #27ae60;--color-overlay: rgba(0, 0, 0, .6);--card-width: 80px;--card-height: 120px;--card-radius: 6px;--transition-speed: .25s;--font-main: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;font-family:var(--font-main);background:var(--color-felt-dark);color:var(--color-text)}body:after{content:"";position:fixed;inset:0;background:radial-gradient(ellipse at center,transparent 50%,rgba(0,0,0,.4) 100%);pointer-events:none;z-index:50}#app{width:100%;height:100%}h1{font-size:2.4rem;color:var(--color-gold);text-shadow:2px 2px 4px rgba(0,0,0,.5)}p{margin-top:.5rem;font-size:1.1rem;opacity:.8}.sound-toggle{position:fixed;top:10px;width:36px;height:36px;border-radius:50%;border:2px solid var(--color-gold);background:#0009;color:var(--color-gold);font-size:1.1rem;font-weight:700;cursor:pointer;z-index:100;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.sound-toggle.sfx{right:92px}.sound-toggle.music{right:52px}.sound-toggle:hover{background:#000c;transform:scale(1.1)}.sound-toggle.muted{opacity:.4;border-color:#d4a84366}.report-toggle{position:fixed;top:10px;left:10px;width:36px;height:36px;border-radius:50%;border:2px solid var(--color-gold);background:#0009;color:var(--color-gold);font-size:1.1rem;font-weight:700;cursor:pointer;z-index:100;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.report-toggle:hover{background:#000c;transform:scale(1.1)}.report-toggle:disabled{opacity:.5;cursor:default;transform:none}.last-trick-toggle{position:fixed;top:10px;left:52px;width:36px;height:36px;border-radius:50%;border:2px solid var(--color-gold);background:#0009;color:var(--color-gold);font-size:1rem;font-weight:700;cursor:pointer;z-index:100;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.last-trick-toggle:hover:not(:disabled){background:#000c;transform:scale(1.1)}.last-trick-toggle:disabled{opacity:.5;cursor:default;transform:none}.cheat-toggle{position:fixed;top:10px;right:10px;width:36px;height:36px;border-radius:50%;border:2px solid var(--color-gold);background:#0009;color:var(--color-gold);font-size:1.2rem;font-weight:700;cursor:pointer;z-index:100;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.cheat-toggle:hover{background:#000c;transform:scale(1.1)}.cheat-sheet{position:fixed;top:0;right:-340px;width:320px;height:100%;background:#0f0f0ff2;border-left:2px solid var(--color-gold);padding:16px;z-index:99;overflow-y:auto;transition:right .3s ease;font-size:.85rem}.cheat-sheet.open{right:0}.cheat-sheet h2{color:var(--color-gold);font-size:1.1rem;margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.1)}.cheat-sheet h3{color:var(--color-text);font-size:.9rem;margin-top:12px;margin-bottom:6px}.cheat-sheet .trump-list,.cheat-sheet .fail-list{display:flex;flex-direction:column;gap:2px}.cheat-sheet .card-row{display:flex;justify-content:space-between;align-items:center;padding:3px 6px;border-radius:4px;background:#ffffff0d}.cheat-sheet .card-row .rank{font-weight:600;min-width:24px}.cheat-sheet .card-row .pts{color:var(--color-gold);font-size:.75rem}.cheat-sheet .game-tip{margin-top:12px;padding:8px;background:#d4a84326;border-radius:6px;color:var(--color-gold);font-weight:600;text-align:center}.profile-setup-overlay{position:fixed;inset:0;background:#00000094;z-index:140;display:flex;align-items:center;justify-content:center;padding:16px}.profile-setup-panel{width:min(520px,100%);background:#141414f0;border:2px solid var(--color-gold);border-radius:14px;padding:18px;box-shadow:0 18px 50px #0000006b}.profile-setup-panel h2{color:var(--color-gold);font-size:1.15rem;margin-bottom:12px}.profile-setup-field{margin-bottom:12px}.profile-setup-field label{display:block;font-size:.82rem;opacity:.85;margin-bottom:6px}.profile-setup-name{width:100%;height:38px;border-radius:8px;border:1px solid rgba(255,255,255,.25);background:#0000006b;color:var(--color-text);padding:0 10px;font-size:16px}.profile-setup-name:focus{outline:2px solid rgba(212,168,67,.5);border-color:var(--color-gold)}.profile-setup-avatars{display:flex;flex-wrap:wrap;gap:8px}.profile-setup-avatar{width:64px;height:64px;border-radius:50%;border:2px solid rgba(255,255,255,.24);background:transparent;padding:0;cursor:pointer;transition:transform .12s ease,border-color .12s ease}.profile-setup-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center 20%;transform:scale(.82);image-rendering:pixelated}.profile-setup-avatar:hover{transform:scale(1.04)}.profile-setup-avatar.selected{border-color:var(--color-gold);box-shadow:0 0 0 2px #d4a84340}.profile-setup-actions{display:flex;justify-content:flex-end;margin-top:14px}.profile-setup-start{min-width:126px;height:38px;border:0;border-radius:8px;background:linear-gradient(180deg,#d6ad54,#b7882f);color:#1e1a12;font-weight:700;cursor:pointer}.notice-overlay{position:fixed;inset:0;z-index:180;background:#00000073;display:flex;align-items:flex-start;justify-content:center;padding:calc(env(safe-area-inset-top) + 14px) 14px 14px}.notice-banner{width:min(520px,100%);background:#101010f2;border:2px solid var(--color-gold);border-radius:12px;padding:12px;box-shadow:0 12px 36px #00000073}.notice-title{color:var(--color-gold);font-size:1rem;margin-bottom:6px}.notice-message{color:var(--color-text);opacity:.95;font-size:.9rem;line-height:1.35;margin-bottom:10px;white-space:pre-line}.notice-actions{display:flex;justify-content:flex-end;gap:8px}@media(max-width:900px){:root{--card-width: 68px;--card-height: 102px}}@media(max-width:600px){:root{--card-width: 56px;--card-height: 84px}.player-info{font-size:.7rem;padding:3px 6px}.player-avatar{width:32px;height:32px}.phase-indicator{font-size:.65rem}.notice-banner{border-radius:10px;padding:10px}.notice-title{font-size:.94rem}.notice-message{font-size:.84rem}}@media(max-width:480px){:root{--card-width: 52px;--card-height: 78px}.sound-toggle{width:30px;height:30px;font-size:.9rem}.sound-toggle.sfx{right:78px}.sound-toggle.music{right:44px}.report-toggle,.last-trick-toggle{width:30px;height:30px;font-size:.9rem}.cheat-toggle{width:30px;height:30px;font-size:1rem}.cheat-sheet{width:100%;right:-105%}.notice-overlay{padding:calc(env(safe-area-inset-top) + 10px) 10px 10px}}body.app-backgrounded .card.playable,body.app-backgrounded .player-info.active,body.app-backgrounded .announcement:before{animation:none!important}@media(prefers-reduced-motion:reduce){.card.playable,.player-info.active,.announcement:before{animation:none!important}.card,.btn,.tutorial2-choice,.trick-owner-tag{transition:none!important}}.game-table{position:relative;width:100%;height:100%;background:repeating-conic-gradient(rgba(255,255,255,.015) 0% 25%,transparent 0% 50%) 0 0 / 4px 4px,radial-gradient(ellipse at center,#387a38 0%,var(--color-felt) 40%,var(--color-felt-dark) 100%);overflow:hidden;box-shadow:inset 0 0 80px #0000004d,inset 0 0 200px #00000026}.game-table:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,rgba(255,240,200,.06) 0%,transparent 60%);pointer-events:none}.player-zone{position:absolute;display:flex;flex-direction:column;align-items:center;gap:4px}.player-zone[data-position="0"]{bottom:8px;left:50%;transform:translate(-50%)}.player-zone[data-position="1"]{left:20px;top:50%;transform:translateY(-50%)}.player-zone[data-position="2"]{left:20%;top:12px}.player-zone[data-position="3"]{right:20%;top:12px}.player-zone[data-position="4"]{right:20px;top:50%;transform:translateY(-50%)}.player-info{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#00000073;border-radius:16px;font-size:.8rem;color:var(--color-text);white-space:nowrap}.player-info.active{outline:none;background:#000000a6;animation:activePulse 1.5s ease-in-out infinite}@keyframes activePulse{0%,to{box-shadow:0 0 6px var(--color-gold-glow)}50%{box-shadow:0 0 14px var(--color-gold-glow),0 0 24px #d4a84326}}@media(hover:none){.player-info.active{animation:none;box-shadow:0 0 8px var(--color-gold-glow)}}.player-info.active .player-avatar{box-shadow:0 0 0 2px var(--color-gold),0 0 10px var(--color-gold-glow)}.player-avatar-wrap{position:relative;width:42px;height:42px;flex-shrink:0}.player-avatar{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center 20%;transform:scale(.82);image-rendering:pixelated;background:transparent;box-shadow:0 0 0 2px #ffffff40}.player-name{font-weight:600;max-width:12ch;overflow:hidden;text-overflow:ellipsis}.player-role{font-size:.65rem;color:#fff;text-transform:uppercase;letter-spacing:.5px;background:#d4a84359;padding:1px 6px;border-radius:8px}.player-score{font-size:.7rem;opacity:.7}.player-chip{position:absolute;right:-2px;min-width:16px;height:14px;border-radius:8px;border:1px solid rgba(0,0,0,.35);color:#fff;font-size:.5rem;font-weight:800;line-height:12px;text-align:center;padding:0 3px;letter-spacing:.2px;text-shadow:0 1px 2px rgba(0,0,0,.45)}.player-chip-role{top:-2px}.player-chip-role.picker{background:#c2962df2}.player-chip-role.partner{background:#1e7778f2}.player-chip-dealer{bottom:-2px;background:#565656f2}.player-info.role-picker{box-shadow:inset 0 0 0 1px #d4a84373}.player-info.role-partner{box-shadow:inset 0 0 0 1px #4eb5b759}.trick-area{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:300px;height:200px}.trick-slot{position:absolute}.trick-owner-tag{position:absolute;left:50%;top:calc(100% + 6px);transform:translate(-50%,-4px);padding:2px 7px;border-radius:8px;background:#000000d1;border:1px solid rgba(212,168,67,.6);color:var(--color-text);font-size:.62rem;font-weight:700;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .14s ease,transform .14s ease;z-index:25}.trick-owner-tag.visible{opacity:1;transform:translate(-50%)}.trick-slot[data-position="2"] .trick-owner-tag,.trick-slot[data-position="3"] .trick-owner-tag{top:auto;bottom:calc(100% + 6px);transform:translate(-50%,4px)}.trick-slot[data-position="2"] .trick-owner-tag.visible,.trick-slot[data-position="3"] .trick-owner-tag.visible{transform:translate(-50%)}.trick-slot[data-position="0"]{bottom:0;left:50%;transform:translate(-50%)}.trick-slot[data-position="1"]{left:0;top:50%;transform:translateY(-50%)}.trick-slot[data-position="2"]{left:25%;top:0}.trick-slot[data-position="3"]{right:25%;top:0}.trick-slot[data-position="4"]{right:0;top:50%;transform:translateY(-50%)}.blind-area{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;gap:8px}.phase-indicator{position:absolute;top:8px;left:50%;transform:translate(-50%);padding:4px 16px;background:#00000080;border-radius:12px;font-size:.75rem;color:var(--color-gold);text-transform:uppercase;letter-spacing:1px;z-index:10}.game-info{position:absolute;top:36px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:3px 12px;background:#00000073;border-radius:10px;font-size:.75rem;color:var(--color-text);z-index:10;opacity:0;transition:opacity .3s ease;pointer-events:none}.game-info.visible{opacity:1}.game-info-label{opacity:.7}.game-info-card{font-weight:700;font-size:.85rem}.game-info-card.red{color:#e74c3c}.game-info-card.black{color:#f0f0f0}.game-info-badge{padding:1px 8px;border-radius:8px;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.game-info-badge.leasters{background:#daa52066;color:var(--color-gold-light)}.game-info-badge.alone{background:#e74c3c59;color:#f39c91}@media(max-width:900px){.phase-indicator{top:calc(env(safe-area-inset-top) + 6px)}.game-info{top:calc(env(safe-area-inset-top) + 34px);max-width:82%;justify-content:center}.player-zone[data-position="0"]{width:100%;max-width:100%;bottom:calc(env(safe-area-inset-bottom) + 4px);left:50%;transform:translate(-50%);gap:2px}.player-zone[data-position="1"]{left:8px;top:41%}.player-zone[data-position="4"]{right:8px;top:41%}.player-zone[data-position="2"]{left:9%;top:76px}.player-zone[data-position="3"]{right:9%;top:76px}.player-zone[data-position="0"] .player-info{max-width:94vw}.trick-area{width:220px;height:158px;top:52%}.trick-slot[data-position="0"]{inset:67% auto auto 50%;transform:translate(-50%,-50%)}.trick-slot[data-position="1"]{inset:54% auto auto 23%;transform:translate(-50%,-50%)}.trick-slot[data-position="2"]{inset:29% auto auto 37%;transform:translate(-50%,-50%)}.trick-slot[data-position="3"]{inset:29% auto auto 63%;transform:translate(-50%,-50%)}.trick-slot[data-position="4"]{inset:54% auto auto 77%;transform:translate(-50%,-50%)}.blind-area{top:52%}}@media(max-width:480px){.phase-indicator{top:calc(env(safe-area-inset-top) + 4px);font-size:.6rem;padding:3px 10px}.game-info{top:calc(env(safe-area-inset-top) + 30px);font-size:.65rem;padding:2px 8px;max-width:88vw}.player-zone[data-position="1"]{left:4px;top:39%}.player-zone[data-position="4"]{right:4px;top:39%}.player-zone[data-position="2"]{left:5%;top:84px}.player-zone[data-position="3"]{right:5%;top:84px}.trick-area{width:186px;height:130px;top:54%}.blind-area{top:54%}.trick-slot[data-position="0"]{left:50%;top:66%}.trick-slot[data-position="1"]{left:26%;top:54%}.trick-slot[data-position="2"]{left:39%;top:31%}.trick-slot[data-position="3"]{left:61%;top:31%}.trick-slot[data-position="4"]{left:74%;top:54%}.player-avatar,.player-avatar-wrap{width:28px;height:28px}.player-info{font-size:.65rem;padding:2px 6px;gap:4px}.player-zone[data-position="1"] .player-info,.player-zone[data-position="4"] .player-info{padding:2px 5px;gap:3px}.player-chip{min-width:13px;height:12px;font-size:.44rem;line-height:10px;padding:0 2px}}.card{width:var(--card-width);height:var(--card-height);border-radius:var(--card-radius);cursor:default;-webkit-user-select:none;user-select:none;position:relative;flex-shrink:0;transition:transform var(--transition-speed) ease,box-shadow var(--transition-speed) ease,opacity var(--transition-speed) ease;box-shadow:1px 2px 6px #0000004d}.card img{width:100%;height:100%;border-radius:var(--card-radius);display:block;pointer-events:none}.card.face-down{cursor:default}.card.playable{cursor:pointer;animation:playableGlow 2s ease-in-out infinite}@keyframes playableGlow{0%,to{box-shadow:1px 2px 6px #0000004d,0 0 4px var(--color-gold-glow)}50%{box-shadow:1px 2px 6px #0000004d,0 0 12px var(--color-gold-glow)}}.card.playable:hover{transform:translateY(-14px) scale(1.05) rotateX(-4deg);box-shadow:0 12px 24px #00000080,0 0 16px var(--color-gold-glow);z-index:10;animation:none}.card.selected{transform:translateY(-18px) scale(1.05);box-shadow:0 10px 28px #d4a84399,0 0 20px var(--color-gold-glow);outline:2px solid var(--color-gold);outline-offset:2px;animation:none;z-index:12}.card.dimmed{opacity:.35;cursor:not-allowed;filter:grayscale(.3)}.card.dimmed:hover{transform:none;box-shadow:1px 2px 6px #0000004d}.card.dealing{animation:dealIn .4s ease-out forwards}@keyframes dealIn{0%{opacity:0;transform:scale(.5) translateY(-80px)}70%{opacity:1;transform:scale(1) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}.card.playing{animation:playCard .3s ease-out}@keyframes playCard{0%{transform:scale(1.15) rotate(-2deg);opacity:.7}60%{transform:scale(.97) rotate(.5deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.hand{display:flex;align-items:flex-end;position:relative;height:calc(var(--card-height) + 20px);perspective:800px}.hand .card{margin-left:-30px}.hand .card:first-child{margin-left:0}.hand.ai-hand .card{margin-left:-50px}.hand.ai-hand .card:first-child{margin-left:0}.trick-card{position:absolute}.trick-card .card{box-shadow:2px 4px 12px #00000080}.card.trick-identifiable{cursor:pointer}.card.trick-identifiable:active{transform:translateY(-2px) scale(1.01)}.card.trick-winning{box-shadow:0 0 0 2px #d4a843e6,2px 4px 14px #0000008c}.card.collecting{animation:collectSweep .5s ease-in forwards}@keyframes collectSweep{to{opacity:0;transform:scale(.5)}}.card.playable:active{transform:translateY(-14px) scale(1.05) rotateX(-4deg);box-shadow:0 12px 24px #00000080,0 0 16px var(--color-gold-glow);z-index:10;animation:none}@media(hover:none){.card.playable{animation:none;box-shadow:1px 2px 6px #0000004d,0 0 6px var(--color-gold-glow)}.card.playable:hover{transform:none;box-shadow:1px 2px 6px #0000004d,0 0 6px var(--color-gold-glow)}}@media(max-width:900px){.hand.ai-hand{height:calc(var(--card-height) * .5 + 6px)}.hand.ai-hand .card{width:calc(var(--card-width) * .5);height:calc(var(--card-height) * .5);margin-left:-22px}.player-zone[data-position="0"] .hand{width:calc(100% - 12px);max-width:620px;height:calc(var(--card-height) + 12px);padding:3px 8px 7px;gap:0;overflow-x:hidden;overflow-y:visible;justify-content:center}.player-zone[data-position="0"] .hand .card{width:calc(var(--card-width) * 1.12);height:calc(var(--card-height) * 1.12);margin-left:-18px;touch-action:manipulation}.player-zone[data-position="0"] .hand .card:first-child{margin-left:0}.player-zone[data-position="0"] .hand .card.playable:active{transform:translateY(-5px) scale(1.02)}.player-zone[data-position="0"] .hand .card.selected{transform:translateY(-7px) scale(1.02)}.player-zone[data-position="0"] .hand.burying .card{width:calc(var(--card-width) * 1.02);height:calc(var(--card-height) * 1.02);margin-left:-14px}.player-zone[data-position="0"] .hand.burying .card.selected{transform:translateY(-10px) scale(1.01)}}@media(max-width:480px){.hand{height:calc(var(--card-height) + 14px)}.hand .card{margin-left:-24px}.hand.ai-hand .card{margin-left:-18px}.player-zone[data-position="0"] .hand{width:calc(100% - 8px);height:118px;padding:2px 6px 10px;justify-content:center}.player-zone[data-position="0"] .hand .card{width:66px;height:99px;margin-left:-20px}.player-zone[data-position="0"] .hand .card:first-child{margin-left:0}.player-zone[data-position="0"] .hand.burying .card{width:58px;height:87px;margin-left:-12px}.player-zone[data-position="0"] .hand.burying .card:first-child{margin-left:0}.player-zone[data-position="0"] .hand.burying .card.selected{transform:translateY(-8px) scale(1.01)}}.controls{position:absolute;bottom:140px;left:50%;transform:translate(-50%);display:flex;gap:12px;z-index:20}.controls.controls-spacious,.announcement.announce-controls{width:min(520px,calc(100% - 28px));border-radius:12px;background:#00000057;border:1px solid rgba(212,168,67,.28);box-shadow:0 10px 28px #00000029;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.controls.controls-spacious{bottom:210px;justify-content:center;flex-wrap:wrap;gap:8px;padding:8px 10px}.controls-message{width:100%;text-align:center;padding:10px 14px;border-radius:10px;background:#122c16b8;border:1px solid rgba(212,168,67,.22);color:#f8f0d7f0;font-size:.92rem;line-height:1.3;letter-spacing:.01em}.btn{padding:10px 28px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:var(--font-main)}.btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.btn:active{transform:translateY(0) scale(.97);box-shadow:0 1px 4px #0003;transition:all .05s ease}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.btn-primary{background:linear-gradient(135deg,var(--color-gold) 0%,var(--color-gold-light) 100%);color:var(--color-text-dark);position:relative;overflow:hidden}.btn-primary:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 30%,rgba(255,255,255,.2) 50%,transparent 70%);background-size:200% 200%;opacity:0;transition:opacity .2s ease}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#e0b84f 0%,var(--color-gold-light) 100%)}.btn-primary:hover:not(:disabled):after{opacity:1}.btn-secondary{background:#ffffff26;color:var(--color-text);border:1px solid rgba(255,255,255,.25)}.btn-secondary:hover:not(:disabled){background:#ffffff40;border-color:var(--color-gold-glow);box-shadow:0 0 8px var(--color-gold-glow)}.btn-danger{background:var(--color-accent);color:#fff}.announcement{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:16px 40px;background:#000000d9;border:2px solid var(--color-gold);border-radius:12px;color:var(--color-gold);font-size:1.7rem;font-weight:800;text-align:center;text-shadow:0 2px 8px rgba(0,0,0,.5);letter-spacing:.5px;z-index:30;animation:announceIn .4s cubic-bezier(.34,1.56,.64,1);pointer-events:none;overflow:hidden}.announcement.announce-controls{top:auto;bottom:210px;transform:translate(-50%);padding:10px 14px;font-size:1.05rem;line-height:1.25;color:#f8f0d7f5;text-shadow:none;letter-spacing:.02em;animation:announceRailIn .22s ease-out}.announcement-title,.announcement-subtitle{display:block}.announcement-subtitle{margin-top:6px;font-size:.72em;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#f8f0d7d1}.announcement.announce-controls .announcement-title{font-size:1.02em;font-weight:700;color:var(--color-gold)}.announcement:before{content:"";position:absolute;inset:-2px;border-radius:12px;background:linear-gradient(90deg,transparent 0%,var(--color-gold-glow) 50%,transparent 100%);background-size:200% 100%;animation:shimmerBorder 2s linear infinite;z-index:-1}.announcement.announce-controls:before{display:none}@keyframes shimmerBorder{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes announceIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}70%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes announceRailIn{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.announcement.announce-exit{animation:announceOut .3s ease-in forwards}.announcement.announce-controls.announce-exit{animation:announceRailOut .2s ease-in forwards}@keyframes announceOut{to{opacity:0;transform:translate(-50%,-50%) scale(.85)}}@keyframes announceRailOut{to{opacity:0;transform:translate(-50%) translateY(6px)}}.score-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000e6;border:2px solid var(--color-gold);border-radius:16px;padding:24px 40px;z-index:40;text-align:center;min-width:320px;animation:scoreSlideIn .4s cubic-bezier(.34,1.56,.64,1)}@keyframes scoreSlideIn{0%{opacity:0;transform:translate(-50%,-45%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.score-overlay h2{color:var(--color-gold);margin-bottom:16px;font-size:1.5rem}.score-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.1);animation:scoreRowFadeIn .3s ease both}.score-row:nth-child(1){animation-delay:.1s}.score-row:nth-child(2){animation-delay:.2s}.score-row:nth-child(3){animation-delay:.3s}.score-row:nth-child(4){animation-delay:.4s}.score-row:nth-child(5){animation-delay:.5s}@keyframes scoreRowFadeIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.score-row:last-child{border-bottom:none}.score-label{color:var(--color-text)}.score-value{font-weight:700;color:var(--color-gold)}.score-value.positive{color:var(--color-success);text-shadow:0 0 8px rgba(39,174,96,.4)}.score-value.negative{color:var(--color-accent);text-shadow:0 0 8px rgba(231,76,60,.4)}@media(max-width:900px){.controls{bottom:calc(var(--card-height) + 18px);width:calc(100% - 16px);justify-content:center;flex-wrap:wrap;gap:8px}.controls.controls-spacious,.announcement.announce-controls{bottom:calc(var(--card-height) + 72px);width:min(520px,calc(100% - 24px))}.btn{min-height:42px;min-width:104px;padding:9px 16px;font-size:.92rem}}@media(max-width:480px){.controls{bottom:calc(var(--card-height) + 12px)}.controls.controls-spacious,.announcement.announce-controls{bottom:calc(var(--card-height) + 116px);width:min(420px,calc(100% - 20px))}.controls.controls-spacious{padding:7px 8px;gap:7px}.btn{padding:8px 18px;font-size:.85rem}.announcement{top:11%;left:50%;width:calc(100% - 24px);max-width:340px;padding:8px 12px;font-size:.95rem;line-height:1.25;border-radius:10px;transform:translate(-50%);animation:announceInMobile .3s ease-out}.announcement.announce-controls{top:auto;max-width:none;padding:9px 10px;font-size:.9rem;line-height:1.22;transform:translate(-50%);animation:announceRailInMobile .18s ease-out}.announcement.announce-center{top:44%;width:calc(100% - 36px);max-width:320px;transform:translate(-50%,-50%)}.announcement.announce-top{top:11%;transform:translate(-50%)}.announcement.announce-exit{animation:announceOutMobile .24s ease-in forwards}.announcement.announce-controls.announce-exit{animation:announceRailOutMobile .18s ease-in forwards}@keyframes announceInMobile{0%{opacity:0;transform:translate(-50%) translateY(-8px) scale(.95)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes announceOutMobile{to{opacity:0;transform:translate(-50%) translateY(-8px) scale(.96)}}@keyframes announceRailInMobile{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes announceRailOutMobile{to{opacity:0;transform:translate(-50%) translateY(6px)}}.score-overlay{min-width:unset;width:90%;max-width:320px;padding:16px 20px}.score-overlay h2{font-size:1.2rem;margin-bottom:10px}}.score-btn-row{display:flex;gap:12px;justify-content:center;margin-top:16px}.trick-review-overlay{min-width:420px;max-height:80vh;display:flex;flex-direction:column;text-align:left;animation:scoreSlideIn .35s cubic-bezier(.34,1.56,.64,1)}.trick-review-overlay h2{text-align:center}.trick-review-scroll{overflow-y:auto;max-height:58vh;padding-right:6px;-webkit-overflow-scrolling:touch}.trick-review-scroll::-webkit-scrollbar{width:4px}.trick-review-scroll::-webkit-scrollbar-thumb{background:#d4a8434d;border-radius:4px}.trick-review-legend{display:flex;gap:10px;justify-content:center;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.08)}.trick-legend-item{font-size:.75rem;color:var(--color-text);opacity:.8;padding:2px 8px;border-radius:4px;background:#ffffff0d}.trick-legend-item.trick-team-picker{border-left:3px solid var(--color-gold)}.trick-legend-item.trick-team-partner{border-left:3px solid #5dade2}.trick-legend-item.trick-team-defender{border-left:3px solid var(--color-accent)}.trick-section{margin-bottom:12px}.trick-section:last-child{margin-bottom:4px}.trick-section-header{display:flex;justify-content:space-between;align-items:baseline;padding:4px 8px;margin-bottom:2px;background:#ffffff0a;border-radius:6px 6px 0 0}.trick-section-title{color:var(--color-gold);font-weight:700;font-size:.9rem}.trick-section-meta{display:flex;gap:10px;align-items:baseline}.trick-section-winner{font-size:.8rem;font-weight:600}.trick-section-pts{color:var(--color-text);font-size:.78rem;opacity:.7}.trick-row{display:flex;align-items:center;padding:3px 8px;border-left:3px solid transparent;border-bottom:1px solid rgba(255,255,255,.04);font-size:.85rem;color:var(--color-text);opacity:.8}.trick-row:last-child{border-bottom:none}.trick-row-winner{opacity:1;background:#d4a84314;font-weight:600}.trick-row-winner .trick-row-card{color:var(--color-gold)}.trick-row.trick-team-picker{border-left-color:var(--color-gold)}.trick-row.trick-team-partner{border-left-color:#5dade2}.trick-row.trick-team-defender{border-left-color:var(--color-accent)}.trick-row-name{width:72px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trick-row-card{flex:1;text-align:center;font-weight:600;letter-spacing:.5px}.trick-row-pts{width:28px;text-align:right;flex-shrink:0;font-size:.78rem;opacity:.5}@media(max-width:900px){.trick-review-overlay{min-width:unset;width:min(420px,92%);max-height:85vh}.trick-review-scroll{max-height:62vh}.score-btn-row{gap:10px}}@media(max-width:480px){.trick-review-overlay{min-width:unset;width:94%;max-width:none;max-height:calc(90vh - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:14px 12px calc(14px + env(safe-area-inset-bottom));border-radius:12px}.trick-review-overlay h2{font-size:1.1rem;margin-bottom:8px}.trick-review-scroll{max-height:calc(68vh - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.trick-review-legend{gap:6px;margin-bottom:8px;padding-bottom:6px}.trick-legend-item{font-size:.68rem;padding:2px 6px}.trick-section-header{padding:3px 6px}.trick-section-title{font-size:.82rem}.trick-section-winner{font-size:.74rem}.trick-section-pts{font-size:.72rem}.trick-row{padding:2px 6px;font-size:.8rem}.trick-row-name{width:58px;font-size:.75rem}.trick-row-pts{width:24px;font-size:.72rem}.score-btn-row{gap:8px;margin-top:12px}.score-btn-row .btn{flex:1;min-width:0;padding:10px 12px;font-size:.85rem}}.tap-to-continue-overlay{position:absolute;inset:0;z-index:35;cursor:pointer;background:transparent}@media(max-width:900px){.controls-message{font-size:.86rem;padding:9px 12px}}@media(max-width:480px){.controls-message{font-size:.82rem;line-height:1.25;padding:8px 10px}}.tutorial2-overlay{position:fixed;inset:0;z-index:260;display:grid;place-items:center;padding:18px;animation:tutorial2FadeIn .24s ease}.tutorial2-fade-out{animation:tutorial2FadeOut .28s ease forwards}@keyframes tutorial2FadeIn{0%{opacity:0}to{opacity:1}}@keyframes tutorial2FadeOut{0%{opacity:1}to{opacity:0}}.tutorial2-backdrop{position:absolute;inset:0;background:radial-gradient(circle at 20% 12%,rgba(212,168,67,.2),transparent 45%),#030803c7;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.tutorial2-dialog{position:relative;width:min(960px,100%);max-height:min(92vh,860px);overflow:auto;border-radius:18px;border:2px solid rgba(212,168,67,.86);background:linear-gradient(180deg,#132618fa,#0a150cfa),radial-gradient(circle at top,rgba(212,168,67,.08),transparent 52%);box-shadow:0 18px 46px #00000094,inset 0 0 0 1px #ffffff0a;padding:16px}.tutorial2-top{display:flex;align-items:center;gap:12px}.tutorial2-pill{font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#f3d27f;padding:6px 10px;border-radius:999px;border:1px solid rgba(212,168,67,.55);background:#00000047}.tutorial2-progress{margin-left:auto;font-size:.86rem;color:#fffc}.tutorial2-skip{font-size:.88rem;padding:8px 12px}.tutorial2-header{margin-top:12px}.tutorial2-mascot-wrap{display:flex;align-items:center;gap:12px}.tutorial2-mascot{width:58px;height:58px;object-fit:cover;border-radius:50%;border:2px solid rgba(212,168,67,.85);background:#0000006b}.tutorial2-coach-meta{display:flex;flex-direction:column;gap:2px}.tutorial2-coach-name{color:#f1d07b;font-size:1rem;font-weight:800}.tutorial2-coach-sub{color:#ffffffb3;font-size:.82rem}.tutorial2-body{margin-top:12px;display:grid;grid-template-columns:1.05fr .95fr;gap:12px}.tutorial2-title{grid-column:1 / -1;color:#f1d07b;font-size:1.28rem;font-weight:800}.tutorial2-line{grid-column:1 / -1;color:#dbe8db;font-size:1rem}.tutorial2-situation,.tutorial2-prompt{color:#ffffffeb;font-size:.94rem;line-height:1.45}.tutorial2-board{display:grid;gap:8px;padding:10px;border-radius:12px;border:1px solid rgba(212,168,67,.3);background:radial-gradient(circle at center,#49964940,#14321852),#051006b3;min-height:210px}.tutorial2-table{min-height:108px;display:flex;align-items:flex-start;justify-content:center;gap:8px;flex-wrap:wrap}.tutorial2-table-empty{font-size:.84rem;color:#ffffffbd;padding-top:30px}.tutorial2-table-card{display:grid;justify-items:center;gap:4px}.tutorial2-seat{font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:#fffc}.tutorial2-hand-label{color:#ffffffd6;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}.tutorial2-hand{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:6px}.tutorial2-card{width:52px;height:auto;image-rendering:pixelated;border-radius:4px;box-shadow:0 2px 8px #00000059}.tutorial2-choices{display:grid;gap:8px}.tutorial2-choice{width:100%;text-align:left;border:1px solid rgba(212,168,67,.36);border-radius:10px;background:#00000042;color:#f2f2f2;font-family:var(--font-main);font-size:.93rem;font-weight:600;padding:10px 12px;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.tutorial2-choice:hover:not(:disabled){transform:translateY(-1px);border-color:#d4a843eb;background:#d4a84329}.tutorial2-choice:disabled{opacity:.9;cursor:default}.tutorial2-choice.choice-wrong{border-color:#dc5050e6;background:#7318186e}.tutorial2-choice.choice-correct,.tutorial2-choice.choice-solution{border-color:#54cf7de6;background:#14683170}.tutorial2-feedback{min-height:52px;border-radius:10px;padding:10px;line-height:1.45;font-size:.9rem;color:#ffffffeb;background:#ffffff0a;border:1px solid rgba(255,255,255,.09)}.tutorial2-feedback.good{border-color:#54cf7d94;background:#125f2f59}.tutorial2-feedback.bad{border-color:#dc505094;background:#60171757}.tutorial2-remember{color:#f6dc8bf5;font-size:.84rem;line-height:1.35;border-left:2px solid rgba(212,168,67,.75);padding-left:8px}.tutorial2-nav{grid-column:1 / -1;display:flex;justify-content:space-between;gap:10px;padding-top:4px}.tutorial2-nav .btn{min-width:130px}@media(max-width:900px){.tutorial2-body{grid-template-columns:1fr}}@media(max-width:620px){.tutorial2-overlay{padding:10px}.tutorial2-dialog{max-height:95vh;border-radius:14px;padding:12px}.tutorial2-top{flex-wrap:wrap;gap:8px}.tutorial2-progress{order:3;margin-left:0;width:100%}.tutorial2-coach-name{font-size:.95rem}.tutorial2-title{font-size:1.12rem}.tutorial2-card{width:46px}.tutorial2-nav{flex-direction:column}.tutorial2-nav .btn{width:100%;min-width:0}}
