:root{--bg:#0f0d17;--surface:#181522;--surface-2:#211d2d;--line:#302a40;--text:#f7f4ff;--muted:#a59db5;--accent:#d5ff45;--accent-dark:#263000;--purple:#9c77ff;--danger:#ff667d;--shadow:0 20px 60px rgba(0,0,0,.28)}
*{box-sizing:border-box}html{background:var(--bg);color-scheme:dark}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.ambient{position:fixed;border-radius:999px;filter:blur(90px);opacity:.16;pointer-events:none}.ambient-one{width:320px;height:320px;background:var(--purple);top:-120px;right:-90px}.ambient-two{width:280px;height:280px;background:var(--accent);bottom:-150px;left:-130px}
.app-shell{width:min(720px,100%);margin:0 auto;padding:calc(20px + env(safe-area-inset-top)) 18px calc(38px + env(safe-area-inset-bottom));position:relative}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.eyebrow,.section-kicker,.hero-label{font-size:11px;font-weight:900;letter-spacing:.16em;color:var(--accent)}h1{font-size:clamp(34px,8vw,54px);line-height:.95;margin:6px 0 10px;letter-spacing:-.06em}h1 em{font-style:normal;color:var(--accent)}.topbar p,.hero-card p{margin:0;color:var(--muted);font-size:14px}.install-button{background:var(--surface-2);color:var(--text);border:1px solid var(--line);padding:11px 13px;border-radius:14px;font-weight:800;white-space:nowrap}
.hero-card{position:relative;overflow:hidden;min-height:145px;padding:23px;border-radius:26px;background:linear-gradient(135deg,#2b2143,#171421 68%);border:1px solid #3b3151;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;gap:12px}.hero-card h2{font-size:clamp(22px,5vw,31px);line-height:1.05;letter-spacing:-.04em;margin:8px 0;max-width:430px}.deck-art{position:relative;width:100px;height:105px;flex:0 0 100px}.mini-card{position:absolute;width:64px;height:91px;border-radius:12px;border:2px solid rgba(255,255,255,.85);display:grid;place-items:center;font-size:32px;font-weight:950;box-shadow:0 12px 25px rgba(0,0,0,.3)}.card-back{right:6px;top:3px;transform:rotate(13deg);background:repeating-linear-gradient(45deg,#9c77ff,#9c77ff 6px,#5a3fb0 6px,#5a3fb0 12px)}.card-seven{left:2px;bottom:1px;transform:rotate(-9deg);background:#f8f5ff;color:#171421}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:#14111d;border:1px solid var(--line);padding:5px;border-radius:17px;margin:18px 0}.tab{border:0;border-radius:12px;background:transparent;color:var(--muted);padding:11px 8px;font-weight:800}.tab.active{background:var(--surface-2);color:var(--text)}.tab-panel{display:none}.tab-panel.active{display:block}
.panel{background:rgba(24,21,34,.96);border:1px solid var(--line);border-radius:23px;padding:18px;box-shadow:0 12px 35px rgba(0,0,0,.16);margin-bottom:14px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px}.panel h3,.dialog-card h3{margin:4px 0 0;font-size:21px;letter-spacing:-.03em}.count-pill{min-width:35px;height:35px;padding:0 10px;border-radius:999px;background:var(--surface-2);display:grid;place-items:center;color:var(--accent);font-weight:900}
.add-player-form{display:grid;grid-template-columns:1fr auto;gap:9px}input,select{width:100%;border:1px solid var(--line);border-radius:14px;background:#100e17;color:var(--text);padding:14px;outline:none}input:focus,select:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(156,119,255,.13)}.primary-button{border:0;border-radius:14px;background:var(--accent);color:var(--accent-dark);padding:14px 18px;font-weight:950}.full-button{width:100%}
.players-list,.ranking-list,.history-list{display:grid;gap:10px;margin-top:14px}.player-row,.ranking-row,.history-row{background:var(--surface-2);border:1px solid var(--line);border-radius:17px;padding:14px}.player-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px}.player-row.leader{border-color:rgba(213,255,69,.5);box-shadow:inset 4px 0 0 var(--accent)}.player-row.eliminated{opacity:.62}.player-name{font-weight:900;font-size:16px}.player-state{font-size:12px;color:var(--muted);margin-top:3px}.score-badge{text-align:center;min-width:58px}.score-badge strong{font-size:26px;display:block;line-height:1}.score-badge span{font-size:10px;color:var(--muted);font-weight:800}.remove-player{border:0;background:transparent;color:var(--muted);font-size:21px;padding:5px}
.field-label{display:block;color:var(--muted);font-size:12px;font-weight:850;margin:12px 0 7px}.winner-toggle{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,rgba(213,255,69,.10),rgba(156,119,255,.08));border:1px solid rgba(213,255,69,.28);border-radius:17px;padding:13px;margin:14px 0;cursor:pointer}.winner-toggle input{position:absolute;opacity:0}.winner-toggle-box{width:44px;height:54px;border-radius:10px;background:#f7f3ff;color:#171421;display:grid;place-items:center;font-size:23px;font-weight:950;box-shadow:0 7px 14px rgba(0,0,0,.22);border:2px solid transparent}.winner-toggle input:checked + .winner-toggle-box{background:var(--accent);color:var(--accent-dark);border-color:#f7ffba;transform:rotate(-4deg)}.winner-toggle strong,.winner-toggle small{display:block}.winner-toggle small{color:var(--muted);font-size:12px;margin-top:4px;line-height:1.4}
.cards-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin:15px 0}.play-card{aspect-ratio:.72;border:1px solid #4a425d;border-radius:10px;background:#f7f3ff;color:#171421;font-size:16px;font-weight:950;box-shadow:0 5px 12px rgba(0,0,0,.18);padding:3px}.play-card.jack{background:linear-gradient(145deg,var(--accent),#aeea25);color:#1d2600}.play-card:active{transform:translateY(2px)}
.hand-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#100e17;border:1px dashed #41384f;border-radius:16px;padding:13px;margin-bottom:11px}.hand-summary span{display:block;font-size:11px;color:var(--muted);font-weight:850;margin-bottom:5px}.selected-hand{font-weight:850;line-height:1.4}.round-icon-button{width:40px;height:40px;border:0;border-radius:12px;background:var(--surface-2);color:var(--text);font-size:22px}
.calculation-card{display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(135deg,rgba(156,119,255,.18),rgba(213,255,69,.08));border:1px solid rgba(156,119,255,.35);border-radius:17px;padding:15px;margin:12px 0}.calculation-card span{display:block;font-size:13px;font-weight:850}.calculation-card small{color:var(--muted)}.calculation-card strong{font-size:34px;color:var(--accent)}.text-button{border:0;background:transparent;color:var(--accent);font-weight:850;padding:7px}
.ranking-row{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:11px}.position{width:34px;height:34px;border-radius:11px;background:#15121d;display:grid;place-items:center;font-weight:950;color:var(--muted)}.ranking-row:first-child .position{background:var(--accent);color:var(--accent-dark)}.ranking-score{font-size:24px;font-weight:950}.rules-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.rules-grid div{background:var(--surface-2);border:1px solid var(--line);border-radius:15px;padding:13px}.rules-grid strong{display:block;font-size:20px}.rules-grid span{color:var(--muted);font-size:12px}.jack-rule{border-color:rgba(213,255,69,.4)!important}.rule-note{color:var(--muted);font-size:13px;line-height:1.55;margin:13px 2px 0}
.history-row{display:grid;grid-template-columns:1fr auto;gap:10px}.history-row strong{display:block}.history-row p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.history-points{font-size:23px;font-weight:950;color:var(--accent)}.history-event{border-color:rgba(255,102,125,.38);background:linear-gradient(135deg,rgba(255,102,125,.10),var(--surface-2))}.history-event .history-points{color:var(--danger)}.status-chip{display:inline-block;margin-top:7px;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:950;letter-spacing:.08em;background:rgba(255,102,125,.15);color:#ff9cab}.empty-state{text-align:center;color:var(--muted);padding:25px 10px;line-height:1.5}
.danger-zone{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}.secondary-button{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:14px;padding:13px;font-weight:850}.danger-button{border:0;background:var(--danger);color:#210007;border-radius:14px;padding:13px;font-weight:900}
dialog{border:0;padding:0;background:transparent;width:min(92vw,500px)}dialog::backdrop{background:rgba(5,4,8,.76);backdrop-filter:blur(5px)}.dialog-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:20px;color:var(--text);box-shadow:var(--shadow)}.dialog-header{display:flex;align-items:start;justify-content:space-between;margin-bottom:16px}.close-button{width:36px;height:36px;border:0;border-radius:12px;background:var(--surface-2);color:var(--text);font-size:24px}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:17px 0}.switch-row strong,.switch-row small{display:block}.switch-row small{color:var(--muted);font-size:12px;margin-top:4px}.switch-row input{width:22px;height:22px}.compact-dialog p{color:var(--muted);line-height:1.5}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}
.effects-layer{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:50}.bomb-effect{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:min(34vw,180px);animation:bombPop 1.45s ease-out forwards;filter:drop-shadow(0 20px 35px rgba(0,0,0,.5))}.explosion-ring{position:absolute;left:50%;top:50%;width:60px;height:60px;border:12px solid #ffcc38;border-radius:50%;transform:translate(-50%,-50%);animation:ringBlast 1.1s ease-out forwards}.explosion-label{position:absolute;left:50%;top:68%;transform:translateX(-50%);font-size:clamp(28px,8vw,62px);font-weight:1000;color:#fff;text-shadow:0 5px 0 #a20d18,0 10px 30px rgba(0,0,0,.6);animation:labelBlast 1.5s ease-out forwards;white-space:nowrap}@keyframes bombPop{0%{transform:translate(-50%,-50%) scale(.2) rotate(-20deg);opacity:0}25%{opacity:1;transform:translate(-50%,-50%) scale(1.15) rotate(8deg)}100%{transform:translate(-50%,-50%) scale(2);opacity:0}}@keyframes ringBlast{0%{opacity:1;transform:translate(-50%,-50%) scale(.2)}100%{opacity:0;transform:translate(-50%,-50%) scale(8)}}@keyframes labelBlast{0%{opacity:0;transform:translate(-50%,30px) scale(.6)}25%{opacity:1;transform:translate(-50%,0) scale(1.08)}100%{opacity:0;transform:translate(-50%,-30px) scale(1)}}
.confetti{position:absolute;top:-20px;width:12px;height:22px;border-radius:3px;animation:confettiFall var(--duration) linear forwards;transform:rotate(var(--rotation))}@keyframes confettiFall{to{transform:translate(var(--drift),110vh) rotate(920deg)}}.champion-modal{position:fixed;inset:0;background:rgba(8,6,13,.83);backdrop-filter:blur(8px);z-index:60;display:grid;place-items:center;padding:20px}.champion-card{width:min(92vw,460px);text-align:center;background:linear-gradient(145deg,#2a213c,#17131f);border:1px solid rgba(213,255,69,.4);border-radius:28px;padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.6);animation:championIn .5s cubic-bezier(.2,.9,.2,1.2)}.champion-card h2{font-size:clamp(34px,10vw,58px);line-height:1;margin:10px 0;color:var(--accent);letter-spacing:-.05em}.champion-card p{color:var(--muted);margin:0 0 18px}.champion-crown{font-size:76px;animation:crownBounce 1s ease-in-out infinite alternate}.crying-row{font-size:34px;letter-spacing:8px;margin:18px 0}@keyframes championIn{from{opacity:0;transform:scale(.7) rotate(-4deg)}to{opacity:1;transform:scale(1)}}@keyframes crownBounce{to{transform:translateY(-8px) rotate(5deg)}}
.toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:#f7f4ff;color:#171421;padding:12px 16px;border-radius:13px;font-weight:850;opacity:0;pointer-events:none;transition:.22s;z-index:70;white-space:nowrap;max-width:90vw;overflow:hidden;text-overflow:ellipsis}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:520px){.app-shell{padding-left:13px;padding-right:13px}.hero-card{padding:19px;min-height:135px}.deck-art{transform:scale(.84);transform-origin:right center}.cards-grid{grid-template-columns:repeat(5,1fr)}}@media(display-mode:standalone){.install-button{display:none!important}}