:root{--felt-1: #0f3d2e;--felt-2: #0a2a20;--anthracite: #1c1f26;--card-bg: #f7f5ef;--card-ink: #1a1a1a;--card-red: #b3261e;--gold: #e7c86a;--accent: #3fb27f;--accent-dark: #2c8a61;--danger: #c0433b;--text: #f2f4f1;--text-dim: #a9b4ac;--shadow: rgba(0, 0, 0, .45);--radius: 12px;--card-w: clamp(48px, 15vw, 78px);--card-h: calc(var(--card-w) * 1.4);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%;background:radial-gradient(circle at 50% 30%,var(--felt-1),var(--felt-2) 70%,#061a13);color:var(--text);overscroll-behavior:none}#app{min-height:100%;display:flex;flex-direction:column;max-width:560px;margin:0 auto;position:relative}button{font:inherit;cursor:pointer;border:none;border-radius:999px;padding:.8rem 1.4rem;background:var(--accent);color:#06231a;font-weight:700;transition:transform .12s ease,background .12s ease,opacity .12s;min-height:48px}button:active{transform:scale(.96)}button:disabled{opacity:.4;cursor:not-allowed}button.secondary{background:transparent;color:var(--text);border:1.5px solid var(--text-dim)}button.danger{background:var(--danger);color:#fff}button.ghost{background:#ffffff14;color:var(--text)}h1,h2,h3{margin:0 0 .4rem;font-weight:800;letter-spacing:-.02em}.screen{flex:1;display:flex;flex-direction:column;padding:1.4rem;gap:1.2rem}.screen.center{justify-content:center;align-items:center;text-align:center}.brand{font-size:2.6rem;color:var(--gold);text-shadow:0 2px 10px var(--shadow)}.subtitle{color:var(--text-dim);margin-top:-.6rem}.field{width:100%;max-width:340px;text-align:left}.field>label{display:block;margin-bottom:.5rem;color:var(--text-dim);font-size:.9rem}.chips{display:flex;gap:.5rem;flex-wrap:wrap}.chip{flex:1;min-width:64px;padding:.7rem .4rem;border-radius:var(--radius);background:#ffffff0f;border:1.5px solid transparent;color:var(--text);text-align:center;font-weight:600}.chip.active{border-color:var(--accent);background:#3fb27f2e;color:#fff}.board{flex:1;display:grid;grid-template-rows:auto 1fr auto;gap:.6rem;padding:.8rem;min-height:0}.opponents{display:flex;justify-content:space-around;gap:.5rem;flex-wrap:wrap}.opponent{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.4rem;border-radius:var(--radius);transition:background .35s ease,box-shadow .35s ease}.opponent.active{background:#e7c86a24;box-shadow:0 0 0 1.5px var(--gold) inset;animation:activeGlow 2s ease-in-out infinite}@keyframes activeGlow{0%,to{box-shadow:0 0 0 1.5px var(--gold) inset,0 0 6px #e7c86a26}50%{box-shadow:0 0 0 1.5px var(--gold) inset,0 0 16px #e7c86a73}}.opponent .name{font-size:.82rem;font-weight:700;color:var(--text)}.opponent .meta{font-size:.7rem;color:var(--text-dim)}.mini-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:3px}.center-area{display:flex;align-items:center;justify-content:center;gap:1.4rem;min-height:0}.pile{display:flex;flex-direction:column;align-items:center;gap:.35rem}.pile-label{font-size:.72rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.pile.snappable .card-slot{outline:3px solid var(--gold);outline-offset:2px;border-radius:9px;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{outline-color:var(--gold);box-shadow:0 0 14px #e7c86a66}50%{outline-color:#e7c86a59;box-shadow:0 0 4px #e7c86a1a}}.self{display:flex;flex-direction:column;align-items:center;gap:.6rem}.self .name-row{display:flex;align-items:center;gap:.6rem;font-weight:700}.self.active .name-row{color:var(--gold)}.self-grid{display:grid;grid-template-columns:repeat(2,var(--card-w));gap:.5rem}.card-slot{width:var(--card-w);height:var(--card-h);border-radius:9px;position:relative;user-select:none}.card{width:100%;height:100%;border-radius:9px;box-shadow:0 2px 6px var(--shadow);display:flex;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .3s ease;will-change:transform}.card.mini{width:var(--mini, 26px);height:calc(var(--mini, 26px) * 1.4);border-radius:5px}.card.face-down{background:repeating-linear-gradient(45deg,#143d5c,#143d5c 6px,#1b4f74 6px 12px);border:1.5px solid #0d2c43}.card.face-up{background:var(--card-bg);color:var(--card-ink);flex-direction:column;justify-content:space-between;padding:4px 5px;border:1px solid #d8d2c2}.card.face-up.red{color:var(--card-red)}.card .idx{font-weight:800;line-height:1;font-size:calc(var(--card-w) * .28)}.card .idx.bottom{align-self:flex-end;transform:rotate(180deg)}.card .suit-center{font-size:calc(var(--card-w) * .4);align-self:center}.card.mini .idx{font-size:calc(var(--mini, 26px) * .42)}.card.mini .suit-center{display:none}.card-slot.selectable .card{cursor:pointer;box-shadow:0 0 0 2px var(--accent),0 2px 6px var(--shadow)}.card-slot.selectable .card:hover{transform:translateY(-4px)}.card-slot.selected .card{box-shadow:0 0 0 3px var(--gold),0 2px 8px var(--shadow);transform:translateY(-6px)}.card-slot .peek-badge{position:absolute;top:-6px;right:-6px;background:var(--gold);color:#2a2200;font-size:.6rem;font-weight:800;border-radius:999px;padding:1px 5px}.card.dealt{animation:dealIn .55s cubic-bezier(.22,1,.36,1) both}@keyframes dealIn{0%{transform:translateY(-56px) rotate(-6deg) scale(.7);opacity:0}60%{opacity:1}to{transform:none;opacity:1}}.card.snap-good{animation:snapGood .4s ease}@keyframes snapGood{0%{transform:scale(1);box-shadow:0 0 0 3px var(--accent)}50%{transform:scale(1.15);box-shadow:0 0 0 6px var(--accent)}to{transform:scale(1)}}.card.flip-in{animation:flipIn .5s cubic-bezier(.22,1,.36,1) both;transform-style:preserve-3d;backface-visibility:hidden}@keyframes flipIn{0%{transform:perspective(600px) rotateY(-90deg) scale(.94);box-shadow:none}55%{transform:perspective(600px) rotateY(12deg) scale(1.03)}to{transform:perspective(600px) rotateY(0) scale(1)}}.card.slap-in{animation:slapIn .45s cubic-bezier(.22,1,.36,1) both}@keyframes slapIn{0%{transform:translateY(-26px) rotate(8deg) scale(1.22);opacity:0;box-shadow:0 14px 22px var(--shadow)}to{transform:none;opacity:1;box-shadow:0 2px 6px var(--shadow)}}.card.drawn-in{animation:drawnIn .5s cubic-bezier(.22,1,.36,1) both}@keyframes drawnIn{0%{transform:translate(-42px) rotateY(-70deg) scale(.9);opacity:0}to{transform:none;opacity:1}}.actions{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;padding-top:.4rem}.hint{text-align:center;color:var(--text-dim);font-size:.9rem;min-height:1.2em;padding:0 .5rem}.hint.turn{color:var(--gold);font-weight:600}.overlay{position:absolute;inset:0;animation:overlayIn .4s ease both;background:#04100cdb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1.4rem;text-align:center;z-index:20;backdrop-filter:blur(3px)}.scoretable{width:100%;max-width:340px;border-collapse:collapse}.scoretable th,.scoretable td{padding:.5rem .6rem;text-align:left;border-bottom:1px solid rgba(255,255,255,.1)}.scoretable td.num{text-align:right;font-variant-numeric:tabular-nums}.scoretable tr.winner td{color:var(--gold);font-weight:700}.toast{position:absolute;top:12px;left:50%;transform:translate(-50%);background:#000000d1;color:var(--text);padding:.5rem 1rem;border-radius:999px;font-size:.85rem;z-index:30;pointer-events:none;animation:toastIn .35s cubic-bezier(.22,1,.36,1);max-width:90%;text-align:center;box-shadow:0 6px 18px var(--shadow);backdrop-filter:blur(4px)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-16px) scale(.92)}to{opacity:1;transform:translate(-50%) scale(1)}}.revealed{font-size:.85rem;color:var(--gold)}.log{font-size:.72rem;color:var(--text-dim);text-align:center;min-height:1em;opacity:.8}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
