:root{--felt: #1a3a2a;--felt-light: #224733;--felt-dark: #0f2218;--gold: #d4a832;--gold-light: #f0c84a;--gold-dim: #8a6a1a;--cream: #f5eed8;--cream-dim: #d4c9a8;--red: #c0392b;--red-bright: #e74c3c;--white: #fefefe;--shadow: rgba(0,0,0,.5);--card-bg: #faf6ec;--radius: 12px;--radius-lg: 20px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{background-color:var(--felt-dark);background-image:radial-gradient(ellipse at 20% 20%,rgba(26,58,42,.9) 0%,transparent 60%),radial-gradient(ellipse at 80% 80%,rgba(15,34,24,.95) 0%,transparent 60%),repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(255,255,255,.012) 10px,rgba(255,255,255,.012) 11px);min-height:100vh;font-family:DM Sans,sans-serif;color:var(--cream);overflow-x:hidden}.app{max-width:780px;margin:0 auto;padding:24px 16px 80px}.site-header{text-align:center;padding:40px 0 32px;position:relative}.site-header:after{content:"";display:block;width:120px;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:20px auto 0}.logo-suit{font-size:2rem;letter-spacing:.3em;opacity:.7;margin-bottom:8px;display:block}h1{font-family:Playfair Display,serif;font-size:clamp(2.8rem,8vw,4.5rem);font-weight:900;color:var(--gold-light);text-shadow:0 2px 20px rgba(212,168,50,.4);line-height:1;letter-spacing:-.01em}.tagline{font-family:DM Mono,monospace;font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;color:var(--cream-dim);margin-top:8px;opacity:.8}.panel{background:linear-gradient(160deg,#224733f2,#0f2218fa);border:1px solid rgba(212,168,50,.2);border-radius:var(--radius-lg);padding:32px;box-shadow:0 8px 40px #00000080,inset 0 1px #ffffff0d;margin-bottom:24px}.panel-title{font-family:Playfair Display,serif;font-size:1.4rem;color:var(--gold);margin-bottom:24px;display:flex;align-items:center;gap:10px}.panel-title .suit{opacity:.7;font-size:1.1rem}label{display:block;font-size:.8rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:6px}input[type=number],input[type=text]{width:100%;background:#0000004d;border:1px solid rgba(212,168,50,.25);border-radius:var(--radius);color:var(--cream);font-family:DM Sans,sans-serif;font-size:1rem;padding:12px 16px;outline:none;transition:border-color .2s,box-shadow .2s;-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button{opacity:.4}input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #d4a83226}input::placeholder{color:#f5eed84d}.field{margin-bottom:20px}.deck-hint{background:#d4a8321a;border:1px solid rgba(212,168,50,.3);border-radius:var(--radius);padding:14px 18px;font-size:.9rem;color:var(--gold-light);display:flex;align-items:flex-start;gap:10px;margin-top:12px;line-height:1.5;animation:fadeSlideIn .3s ease}.deck-hint .icon{font-size:1.2rem;flex-shrink:0;margin-top:1px}.player-names-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin-top:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:DM Sans,sans-serif;font-weight:600;font-size:.95rem;letter-spacing:.03em;padding:14px 28px;border-radius:var(--radius);border:none;cursor:pointer;transition:transform .15s,box-shadow .15s,filter .15s;text-decoration:none}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,var(--gold) 0%,var(--gold-light) 100%);color:var(--felt-dark);box-shadow:0 4px 20px #d4a83259}.btn-primary:hover{filter:brightness(1.08);box-shadow:0 6px 28px #d4a83280}.btn-secondary{background:#d4a8321f;color:var(--gold);border:1px solid rgba(212,168,50,.3)}.btn-secondary:hover{background:#d4a83233}.btn-danger{background:#c0392b26;color:var(--red-bright);border:1px solid rgba(192,57,43,.3);font-size:.85rem;padding:8px 16px}.btn-danger:hover{background:#c0392b40}.btn-full{width:100%}.round-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin-bottom:28px;scrollbar-width:none}.round-tabs::-webkit-scrollbar{display:none}.score-table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th{font-family:DM Mono,monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-dim);padding:10px 12px;text-align:center;border-bottom:1px solid rgba(212,168,50,.15)}th.name-col{text-align:left}td{padding:12px;text-align:center;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle}td.name-col{text-align:left;font-weight:600;color:var(--cream);font-size:.95rem}td.total-col{font-family:DM Mono,monospace;font-size:1.05rem;font-weight:700;color:var(--gold-light)}tr:last-child td{border-bottom:none}tr:hover td{background:#ffffff05}td.round-score{font-family:DM Mono,monospace;color:var(--cream-dim);font-size:.88rem}td.round-score.current-round{color:var(--cream)}.score-inputs{display:grid;gap:14px}.score-input-row{display:flex;align-items:center;gap:14px;background:#0003;border-radius:var(--radius);padding:14px 18px;border:1px solid rgba(255,255,255,.06);transition:border-color .2s}.score-input-row:focus-within{border-color:#d4a8324d}.score-player-name{flex:1;font-weight:600;font-size:.95rem;min-width:100px}.score-input-row input{width:110px;flex-shrink:0;text-align:center;font-family:DM Mono,monospace;font-size:1.1rem}.score-running{font-family:DM Mono,monospace;font-size:.85rem;color:var(--cream-dim);min-width:80px;text-align:right;flex-shrink:0}.round-goal-card{background:#00000040;border:1px solid rgba(212,168,50,.18);border-radius:var(--radius);padding:20px 20px 16px;margin-bottom:20px;animation:fadeSlideIn .35s ease}.round-goal-title{font-family:DM Mono,monospace;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:14px}.round-goal-fans{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-end}.fan-group{display:flex;flex-direction:column;align-items:center;gap:8px}.fan-label{font-family:DM Mono,monospace;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}.fan-label.set-label{color:#f0a882}.fan-label.run-label{color:#7dd4a8}.card-fan{position:relative}.mini-card{position:absolute;width:34px;height:50px;background:#fdf8ef;border-radius:4px;border:1px solid #c8bfa0;box-shadow:1px 2px 5px #00000073;display:flex;flex-direction:column;justify-content:space-between;padding:3px;transform-origin:bottom center;overflow:hidden;-webkit-user-select:none;user-select:none}.mini-card .cv{font-family:DM Mono,monospace;font-size:.58rem;font-weight:700;line-height:1}.mini-card .cs{font-size:.55rem;line-height:1}.mini-card .center-suit{font-size:1.05rem;text-align:center;line-height:1;margin:auto}.mini-card.red .cv,.mini-card.red .cs,.mini-card.red .center-suit{color:#c0392b}.mini-card.black .cv,.mini-card.black .cs,.mini-card.black .center-suit{color:#1a1a2e}.mini-card .corner-top{display:flex;flex-direction:column;align-items:flex-start}.mini-card .corner-bot{display:flex;flex-direction:column;align-items:flex-end;transform:rotate(180deg)}.round-tab{flex-shrink:0;padding:8px 14px;border-radius:8px;border:1px solid rgba(212,168,50,.2);background:#0003;color:var(--cream-dim);font-family:DM Mono,monospace;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s;position:relative}.round-tab:hover{border-color:#d4a83266;color:var(--cream)}.round-tab.active{background:var(--gold);color:var(--felt-dark);border-color:var(--gold);font-weight:700}.round-tab.done:after{content:"✓";position:absolute;top:-5px;right:-5px;background:#2ecc71;color:#fff;width:16px;height:16px;border-radius:50%;font-size:9px;font-weight:700;display:grid;place-items:center}.round-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px}.round-badge{background:#d4a83226;border:1px solid rgba(212,168,50,.3);border-radius:100px;padding:6px 18px;font-family:DM Mono,monospace;font-size:.78rem;letter-spacing:.1em;color:var(--gold);text-transform:uppercase}.screen{display:none}.screen.active{display:block;animation:fadeIn .35s ease}#screen-finale{text-align:center}.finale-title{font-family:Playfair Display,serif;font-size:clamp(2rem,6vw,3rem);color:var(--gold-light);margin-bottom:8px;text-shadow:0 2px 20px rgba(212,168,50,.5)}.finale-subtitle{font-family:DM Mono,monospace;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cream-dim);margin-bottom:48px;opacity:.7}.finale-podium{display:flex;flex-direction:column;gap:0;max-width:520px;margin:0 auto 40px}.finale-player{display:flex;align-items:center;gap:16px;padding:18px 24px;border-radius:var(--radius);margin-bottom:8px;opacity:0;transform:translate(80px) scale(.97);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1),background .3s;border:1px solid transparent;position:relative;overflow:hidden}.finale-player.revealed{opacity:1;transform:translate(0)}.finale-player.winner{background:linear-gradient(135deg,#d4a83240,#d4a83214);border-color:#d4a83266;box-shadow:0 4px 30px #d4a83233}.finale-player.second{background:#ffffff0d;border-color:#ffffff1a}.finale-player.third{background:#c0785014;border-color:#c0785026}.finale-player.other{background:#0003;border-color:#ffffff0d}.finale-rank{font-family:Playfair Display,serif;font-size:1.5rem;font-weight:700;min-width:36px;text-align:center;flex-shrink:0}.winner .finale-rank{color:var(--gold-light)}.second .finale-rank{color:#c0c8d0}.third .finale-rank{color:#cd7f32}.other .finale-rank{color:var(--cream-dim)}.finale-name{flex:1;font-size:1.15rem;font-weight:600;text-align:left;color:var(--cream)}.winner .finale-name{font-size:1.3rem;color:var(--gold-light)}.finale-score{font-family:DM Mono,monospace;font-size:1.2rem;font-weight:500;color:var(--cream);flex-shrink:0}.winner .finale-score{font-size:1.5rem;color:var(--gold-light)}.finale-bar-bg{position:absolute;left:0;top:0;bottom:0;background:#d4a8320f;border-radius:var(--radius);transition:width .8s cubic-bezier(.22,1,.36,1);pointer-events:none}.winner-confetti{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:999;overflow:hidden}.confetti-piece{position:absolute;top:-20px;width:10px;height:10px;border-radius:2px;animation:confettiFall linear forwards}@keyframes confettiFall{to{transform:translateY(110vh) rotate(720deg);opacity:0}}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.flex-row{display:flex;gap:12px;flex-wrap:wrap}.text-center{text-align:center}.text-dim{color:var(--cream-dim);opacity:.7;font-size:.9rem;line-height:1.6}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.divider{height:1px;background:linear-gradient(90deg,transparent,rgba(212,168,50,.2),transparent);margin:28px 0}.nav-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:24px;flex-wrap:wrap}@media (max-width: 540px){.panel{padding:20px 16px}.score-input-row{flex-wrap:wrap}.score-running{width:100%;text-align:left}.finale-player{padding:14px 16px}}.game-header-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:10px}.game-name-display{font-family:Playfair Display,serif;font-size:1.3rem;color:var(--gold)}.saved-game-item{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#0003;border-radius:var(--radius);border:1px solid rgba(255,255,255,.06);cursor:pointer;transition:border-color .2s,background .2s;margin-bottom:10px;gap:12px}.saved-game-item:hover{border-color:#d4a8324d;background:#d4a8320f}.saved-game-meta{font-family:DM Mono,monospace;font-size:.78rem;color:var(--cream-dim);margin-top:3px}.empty-state{text-align:center;padding:40px 20px;opacity:.6}.empty-state .big-suit{font-size:3rem;margin-bottom:12px;display:block}@keyframes pulse-gold{0%,to{box-shadow:0 4px 30px #d4a83233}50%{box-shadow:0 4px 50px #d4a83280,0 0 0 6px #d4a8321a}}.winner.revealed{animation:pulse-gold 2s ease-in-out .6s infinite}
