:root{font-family:Inter,system-ui,-apple-system,Arial,sans-serif;color:#fff1d4;background:#130811}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#581a34,#200a18 60%,#0e070d)}#app{max-width:1200px;margin:auto;padding:16px 16px 50px}.top,.nav,.brand,.roomtop,.player,.room-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.top{border-bottom:1px solid #855970;padding:7px 0 18px}.brand{justify-content:start}.brand>span{font-size:42px;color:#f4ca71}.brand h1{font:900 30px Georgia,serif;margin:0;color:#ffdb8b;letter-spacing:3px}.brand small{font-size:10px;letter-spacing:2px;color:#cdaec0}.nav{font-size:12px;color:#ddc0b7}.panel{padding:19px;background:linear-gradient(145deg,rgba(47,15,30,.98),rgba(22,10,19,.98));border:1px solid #805468;border-radius:16px;box-shadow:0 10px 22px #0003}.hero{display:flex;align-items:center;gap:18px;padding:30px 12px}.hero img{height:110px;width:110px;object-fit:contain}.hero h2{color:#ffd784;font:800 32px Georgia;margin:0 0 10px}.hero p{max-width:620px;line-height:1.6;color:#dbbdc4}.form-grid,.gamegrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}form{display:grid;gap:12px}label{display:grid;gap:6px;font-size:12px;color:#e4ccd3}input,select{width:100%;border:1px solid #7d5365;background:#170a16;border-radius:9px;padding:13px;color:#fff3d9;font-size:16px}button{border:1px solid #e6ba6e;color:#fce4b0;background:#3b1a2b;border-radius:10px;padding:11px 13px;font-size:13px;font-weight:800;cursor:pointer;touch-action:manipulation}button.gold{background:linear-gradient(130deg,#ffe2a0,#bd8245);color:#2d111b}button:disabled{opacity:.42;cursor:not-allowed}.tabs form{margin-bottom:18px}.tabs h2:not(:first-child){border-top:1px solid #754252;padding-top:18px}.rules{margin-top:16px}.muted,small{color:#ceb5c4}.roomtop{text-align:center;margin:15px 0;justify-content:space-around}.roomtop h2{margin:4px 0;color:#ffe1a0}.pot{border:1px solid #dcb96f;padding:12px 22px;border-radius:12px;background:#48182a;display:grid;gap:5px}.pot strong{font-size:26px;color:#ffe29d}.gamegrid{grid-template-columns:minmax(270px,340px) 1fr;margin-bottom:16px}.player{padding:10px;border:1px solid #704457;border-radius:10px;margin:6px 0;flex-wrap:wrap}.player strong{font-size:13px}.player span{font-size:12px;color:#f1d39b}.player .pin{width:100%;font-size:11px;background:#341725;border-radius:7px;padding:6px;display:flex;justify-content:space-between;align-items:center}.room-actions{margin-top:12px}.hand-panel h3{color:#ffdb9a}#handArea{min-height:140px}.cards{display:flex;flex-wrap:wrap;gap:5px;justify-content:center}.card{width:52px;height:77px;display:flex;flex-direction:column;justify-content:space-between;align-items:start;padding:6px;background:linear-gradient(135deg,#fffdf2,#e5dfd4);color:#121212;border:2px solid #f9df9b;border-radius:7px;font-weight:900;box-shadow:0 2px 5px #0005}.card.red{color:#c52b3b}.card small{font-size:25px;color:inherit;align-self:center}.card.selected{outline:3px solid #56ddb7;transform:translateY(-3px)}.card.locked{opacity:.65}.card.back{background:#17507a;color:#eec776}.sets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:15px 0}.set{border:1px dashed #b98a5c;border-radius:12px;min-width:0;padding:10px 4px;text-align:center;background:#310e20}.set .cards{min-height:83px;align-items:center}.set .card{width:42px;height:64px;padding:4px}.set .card small{font-size:18px}h3{margin:8px 0 13px;color:#ffe2a4}.controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.muted-result{font-size:12px;color:#ead3d0}.result-set{border:1px solid #76525e;border-radius:10px;padding:12px;margin:10px 0}.result-set h4{color:#ffe09e;margin:0 0 8px}.result-players{display:flex;gap:12px;flex-wrap:wrap}.result-player{flex:1;min-width:130px}.result-player .cards{justify-content:start}.result-player .card{width:35px;height:52px;font-size:12px}.result-player .card small{font-size:17px}.winner{border:1px solid #e4bb66;padding:13px;border-radius:11px;color:#ffe3a7;margin:10px 0}#history{display:grid;gap:7px;font-size:12px;color:#e9d1c8}.historyline{padding:9px;background:#341a28;border-radius:8px}#notice{position:sticky;top:4px;z-index:20;border-radius:10px;margin:8px 0;color:#fff6dc}#notice:not(:empty){padding:11px;background:#7b3043}footer{text-align:center;color:#a98692;padding:25px;font-size:10px;letter-spacing:1.8px}[hidden]{display:none!important}@media(max-width:700px){#app{padding:8px 9px 30px}.brand h1{font-size:23px}.brand small{font-size:8px}.form-grid,.gamegrid{grid-template-columns:minmax(0,1fr)}.panel{padding:13px}.hero{padding:18px 4px}.hero img{width:75px;height:75px}.hero h2{font-size:25px}.roomtop{gap:5px;padding:12px 5px}.roomtop h2{font-size:16px}.pot{padding:7px}.pot strong{font-size:20px}.card{width:36px;height:57px;padding:4px;font-size:11px}.card small{font-size:17px}.sets{gap:4px}.set{padding:8px 2px}.set .card{width:28px;height:44px;padding:2px;font-size:10px}.set .card small{font-size:12px}.controls button{flex:1}.result-set .card{width:30px;height:46px}.result-set .card small{font-size:12px}}

.bot-controls{display:flex;flex-wrap:wrap;align-items:end;gap:8px;margin:10px 0;padding:10px;border:1px solid #a87c55;border-radius:10px;background:#30101e}.bot-controls label{flex:1;min-width:125px;font-size:12px;color:#f0d5a4}.bot-controls select{display:block;margin-top:6px;min-width:100px;width:100%;padding:9px;background:#190b14;color:#fff;border:1px solid #a87c55;border-radius:7px}.bot-controls button{min-height:40px}

/* Staged five-player Kitti showdown */
.showdown-stage{text-align:center;padding:17px 8px;margin:9px 0;border:1px solid #d8ae6f;border-radius:13px;background:radial-gradient(ellipse at center,#63253d,#290e1f);animation:stagePulse 1.2s ease-in-out infinite alternate}
.stage-title{font:900 clamp(20px,5vw,29px) Georgia,serif;letter-spacing:2px;color:#ffe2a0;text-shadow:0 0 17px #ffd18b8c}
.stage-sparkles{font-size:24px;color:#ffe39d;animation:sparkle 1s ease-in-out infinite alternate}
.showdown-stage p{margin:5px 0;color:#e5bdbf;font-size:12px}
.show-reveal{animation:showEnter .5s ease-out both}
.show-reveal.show-active{border-color:#d6a75d;box-shadow:0 0 13px #f2c77b30}
.reveal-visible .card{animation:cardFlip .62s cubic-bezier(.15,.65,.2,1) both;transform-origin:center}
.reveal-hidden{opacity:.65}.reveal-hidden .back{border-color:#bc8758}
.rank-name{font-size:11px;color:#efd399}
.winner.finale{text-align:center;font:900 clamp(18px,4vw,27px) Georgia,serif;animation:finaleIn .65s ease-out both;box-shadow:0 0 18px #f8bd6b44}
.salami{display:block;margin-top:7px;color:#ffdf70;letter-spacing:2px;animation:stagePulse .7s ease-in-out infinite alternate}
@keyframes cardFlip{0%{transform:rotateY(90deg) scale(.85);opacity:0}75%{transform:rotateY(-7deg) scale(1.04)}100%{transform:rotateY(0) scale(1);opacity:1}}
@keyframes stagePulse{to{box-shadow:0 0 20px #e8b85a45}}
@keyframes sparkle{to{opacity:.5;transform:scale(1.11)}}
@keyframes showEnter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes finaleIn{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.showdown-stage,.stage-sparkles,.show-reveal,.reveal-visible .card,.winner.finale,.salami{animation:none!important}}


/* =============================================================
   MIDNIGHT NEON — Cyan + Violet / Modern gaming redesign
   Visual-only theme. No game rules or bot logic affected.
   ============================================================= */
:root{color-scheme:dark;--night:#070b1b;--surface:#12172c;--surface2:#1a1b3d;--cyan:#3cecff;--violet:#9563ff;--pink:#f66bd4;--text:#f4f6ff;--muted:#acb5d8;--stroke:#384167;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text);background:var(--night)}
html{min-height:100%;background:#070b1b}body{min-height:100vh;background:radial-gradient(ellipse at 85% 0%,#29205e 0%,transparent 43%),radial-gradient(ellipse at 5% 40%,#093a50 0%,transparent 45%),linear-gradient(155deg,#080c20 0%,#100c27 55%,#070b1b 100%);background-attachment:fixed}
#app{position:relative;isolation:isolate}#app:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:linear-gradient(#4de3ff06 1px,transparent 1px),linear-gradient(90deg,#4de3ff06 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(to bottom,#0008,transparent 85%)}
.top{border-bottom:1px solid #5265a35c;padding:12px 0 20px}.brand>span{color:var(--cyan);text-shadow:0 0 25px #3cecff99;font-size:38px}.brand h1{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:950;color:#f8fcff;letter-spacing:4px;text-shadow:0 0 25px #5b81ff66}.brand small{color:#73e6ff;letter-spacing:2px;font-weight:700}.nav{color:#bec9f4}
.panel{background:linear-gradient(145deg,#151a34ec,#0d1228f2);border:1px solid #445281a8;border-radius:17px;box-shadow:0 18px 44px #0006,inset 0 1px #ffffff0d;backdrop-filter:blur(8px)}.hero h2{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:900;color:#f9fdff;letter-spacing:-1px;text-shadow:0 0 24px #57dbff42}.hero p{color:#c2cbea}.hero img{filter:drop-shadow(0 0 22px #7552c680)}
h2,h3,.hand-panel h3{color:#9aefff;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:850}label{color:#d0d8f2}input,select{background:#0a1028;border:1px solid #485387;color:#fff;border-radius:10px;outline:none}input:focus,select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #3cecff24}input::placeholder{color:#7885ad}
button{border:1px solid #6c6cbd;color:#f4f6ff;background:linear-gradient(145deg,#292753,#1b2044);border-radius:11px;box-shadow:inset 0 1px #ffffff18;transition:box-shadow .18s,border-color .18s,transform .18s}button:hover:not(:disabled){border-color:#4fe6ff;box-shadow:0 0 17px #3cecff46,0 7px 20px #0004;transform:translateY(-1px)}button:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}button.gold{border-color:#6ce6fb;background:linear-gradient(120deg,#59ecff,#8382ff 60%,#a67aff);color:#0b1232;box-shadow:0 3px 20px #55dafa38}button.gold:hover:not(:disabled){box-shadow:0 3px 28px #55dafa85}
.muted,small{color:var(--muted)}.roomtop{border-color:#52508a}.roomtop h2{color:#cdf6ff}.pot{border-color:#4bdff7;background:linear-gradient(140deg,#0a3047,#1a2151);box-shadow:0 0 20px #16c6ee28}.pot strong{color:#83f5ff;text-shadow:0 0 16px #52ecff77}.player{border-color:#454e7e;background:linear-gradient(110deg,#181b37,#17142d);border-radius:12px}.player span{color:#9beeff}.player .pin{background:#0d1430;border:1px solid #334475}.hand-panel{border-color:#5b529d}#handArea{color:#f3f7ff}
.card{background:linear-gradient(140deg,#fff,#e9effb);border:2px solid #b8ddff;color:#152038;border-radius:9px;box-shadow:0 4px 12px #0007;transition:transform .16s,box-shadow .16s}.card.red{color:#c82f5c}.card.selected{outline:3px solid #46f7fa;box-shadow:0 0 16px #46f7fa7a;transform:translateY(-5px)}.card.back{background:linear-gradient(140deg,#161952,#173e72 60%,#1a2254);border-color:#7c8efe;color:#8af4ff;box-shadow:inset 0 0 0 2px #101735,0 0 13px #5d57d54a}
.set{border:1px dashed #6473bf;background:#131936;border-radius:12px}.set:focus-within{border-color:#6aeeff}.result-set{border-color:#495488;background:#121830}.result-set h4{color:#9ceeff}.winner{border-color:#55e9fa;background:linear-gradient(130deg,#0f3954,#281c54);color:#b2f8ff;box-shadow:0 0 22px #46ecff22}.historyline{background:#171e3c;border:1px solid #303d6e}#history{color:#d2d8f4}#notice{color:#fafaff}#notice:not(:empty){background:linear-gradient(120deg,#273a77,#593278);border:1px solid #8a83ef}footer{color:#8297c3}
.bot-controls{background:#111a37;border-color:#4c5b94}.bot-controls label{color:#b2f0ff}.bot-controls select{background:#0b1531;border-color:#4c5b94}
.showdown-stage{border-color:#6eeeff;background:radial-gradient(ellipse at center,#25356e,#15102e 80%);box-shadow:0 0 27px #2fbdff30, inset 0 0 30px #7562ff1b}.stage-title{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:950;color:#b5ffff;text-shadow:0 0 20px #45e7ffb0;letter-spacing:2.5px}.stage-sparkles{color:#aa8cff;text-shadow:0 0 18px #8d77ff}.showdown-stage p{color:#c2c8f5}.show-reveal.show-active{border-color:#6becff;box-shadow:0 0 19px #59ddff48}.reveal-hidden .back{border-color:#6a72dd}.rank-name{color:#a7ebff}.winner.finale{font-family:Inter,ui-sans-serif,system-ui,sans-serif;box-shadow:0 0 26px #55f2ff65}.salami{color:#f38dff;text-shadow:0 0 17px #e96aff}
@keyframes stagePulse{to{box-shadow:0 0 30px #58dfff55,inset 0 0 18px #705dff25}}@media(max-width:700px){.top{gap:7px}.brand h1{font-size:24px;letter-spacing:2px}.panel{padding:13px;border-radius:13px}.roomtop{padding:10px 6px}.pot{padding:8px}}

/* Reveal animation only on newly shown cards; no repeated whole-stage redraw. */
.reveal-turn-button{min-height:48px;padding:12px 26px;margin:12px auto;display:block;cursor:pointer;box-shadow:0 0 18px rgba(32,225,255,.3)}
.result-player.just-flipped .card{animation:kittiCardEnter .4s ease-out both}
@keyframes kittiCardEnter{from{opacity:.65;transform:perspective(500px) rotateY(75deg) scale(.9)}to{opacity:1;transform:perspective(500px) rotateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.result-player.just-flipped .card{animation:none!important}}


/* Winning reveal highlight */
.result-player.show-winner{border-color:#ffd76a;background:linear-gradient(180deg,rgba(255,215,106,.16),rgba(84,52,5,.14));box-shadow:0 0 0 1px rgba(255,215,106,.25),0 0 22px rgba(255,215,106,.18)}
.result-player.show-winner b,.result-player.show-winner .rank-name{color:#ffe39a}
.cards.winner-cards{position:relative}
.card.gold-hand-card{border-color:#ffd76a;background:linear-gradient(180deg,#fff7df,#f5d57c);box-shadow:0 0 0 1px rgba(255,215,106,.45),0 0 18px rgba(255,204,72,.35);transform:translateY(-1px)}
.card.gold-hand-card span,.card.gold-hand-card small{color:#392300;text-shadow:none}
.card.gold-hand-card.red span,.card.gold-hand-card.red small{color:#8e1820}
