:root{--bg: #0f1226;--bg-2: #161a36;--panel: #1d2244;--panel-2: #252b54;--ink: #eef0ff;--muted: #9aa0c6;--accent: #6c8cff;--accent-2: #ffd166;--good: #38d39f;--bad: #ff5d73;--warn: #4dd0ff;--line: #2c3260;--radius: 14px;--shadow: 0 10px 30px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:radial-gradient(1200px 800px at 70% -10%,#20264f 0%,var(--bg) 55%);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.app{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;border-bottom:1px solid var(--line);background:#0f1226b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.brand{font-weight:800;letter-spacing:.5px;font-size:20px}.brand-sub{color:var(--muted);font-weight:600;font-size:13px}.topbar-right{display:flex;align-items:center;gap:12px}.you{color:var(--muted);font-weight:600}.content{flex:1;padding:24px;max-width:1200px;width:100%;margin:0 auto}.footer{display:flex;align-items:center;justify-content:center;gap:10px;padding:18px 22px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.footer a{color:var(--muted);text-decoration:none}.footer a:hover{color:var(--ink);text-decoration:underline}.footer-sep{opacity:.5}.legal{max-width:720px;margin:0 auto;line-height:1.6;color:var(--ink)}.legal-back{margin-bottom:18px}.legal h1{font-size:26px;margin:0 0 18px}.legal h2{font-size:18px;margin:28px 0 8px;color:var(--ink)}.legal p{margin:0 0 12px;color:var(--muted)}.legal ul{margin:0 0 12px;padding-left:20px;color:var(--muted)}.legal li{margin:4px 0}.legal a{color:var(--accent)}.btn{border:1px solid var(--line);background:var(--panel-2);color:var(--ink);padding:9px 16px;border-radius:10px;font-weight:700;cursor:pointer;transition:transform .05s ease,background .15s ease,opacity .15s}.btn:hover:not(:disabled){background:#2d3568}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:linear-gradient(180deg,#7a96ff,#5b78f0);border-color:#5b78f0}.btn.primary:hover:not(:disabled){background:linear-gradient(180deg,#8aa3ff,#6884f5)}.btn.ghost{background:transparent}.btn.small{padding:6px 11px;font-size:13px}.btn.big{padding:14px 26px;font-size:17px}.btn.hit{background:linear-gradient(180deg,#ff7a8c,#ff5d73);border-color:#ff5d73}.btn.stay{background:linear-gradient(180deg,#46e0ad,#2bc28d);border-color:#2bc28d;color:#07241a}.btn.target{background:var(--panel-2)}.btn.secondary{background:var(--panel-2);border-color:var(--accent-2);color:var(--accent-2)}.btn.secondary:hover:not(:disabled){background:#ffd16624}.text-input{background:var(--bg-2);border:1px solid var(--line);color:var(--ink);padding:12px 14px;border-radius:10px;font-size:16px;min-width:220px}.text-input:focus{outline:none;border-color:var(--accent)}.home{display:grid;grid-template-columns:1.1fr .9fr;gap:28px}@media (max-width: 820px){.home{grid-template-columns:1fr}}.hero h1{font-size:54px;margin:6px 0;background:linear-gradient(90deg,#fff,#b9c4ff);-webkit-background-clip:text;background-clip:text;color:transparent}.tagline{color:var(--muted);font-size:16px;max-width:520px;line-height:1.5}.name-row{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.hint{color:var(--muted);margin-top:10px;font-size:14px}.error-banner{background:#ff5d7324;border:1px solid var(--bad);color:#ffd2d8;padding:9px 12px;border-radius:10px;margin-top:12px;font-size:14px}.lobby-list{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.lobby-list h2{margin:4px 0 14px}.lobby-list ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.lobby-row{display:flex;align-items:center;justify-content:space-between;background:var(--bg-2);border:1px solid var(--line);padding:12px 14px;border-radius:10px}.lobby-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.lobby-name{font-weight:700}.muted{color:var(--muted);font-size:14px}.pill{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;padding:3px 8px;border-radius:999px;background:var(--panel-2);color:var(--muted)}.pill.open{background:#38d39f2e;color:var(--good)}.pill.in_game{background:#4dd0ff29;color:var(--warn)}.pill.host{background:#ffd1662e;color:var(--accent-2)}.pill.you{background:#6c8cff33;color:var(--accent)}.pill.bot{background:#6c8cff29;color:var(--accent)}.pill.bot.easy{background:#38d39f2e;color:var(--good)}.pill.bot.medium{background:#ffd1662e;color:var(--accent-2)}.pill.bot.hard{background:#ff5d732e;color:var(--bad)}.bot-icon{font-size:14px;line-height:1;flex:0 0 auto}.add-bot-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.add-bot-row .text-input{min-width:0;padding:9px 12px;font-size:14px}.add-bot-row .hint{margin-top:0}.waiting{display:flex;justify-content:center}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:26px;width:100%;max-width:560px;box-shadow:var(--shadow)}.member-list{list-style:none;padding:0;margin:18px 0;display:flex;flex-direction:column;gap:8px}.member-list li{display:flex;align-items:center;gap:10px;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.member-list li.me{border-color:var(--accent)}.member-name{font-weight:700;flex:1}.share{margin-top:16px;display:flex;flex-direction:column;gap:6px}.code-pill{background:var(--bg-2);border:1px solid var(--line);padding:8px 12px;border-radius:8px;font-family:ui-monospace,monospace}.conn-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:0 0 auto}.conn-dot.online{background:var(--good);box-shadow:0 0 8px var(--good)}.conn-dot.offline{background:#5a608c}.game{display:grid;grid-template-columns:1fr 300px;gap:20px;align-items:start}@media (max-width: 900px){.game{grid-template-columns:1fr}}.game-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.hdr-item{background:var(--panel);border:1px solid var(--line);padding:8px 14px;border-radius:10px;font-weight:700;font-size:14px;color:var(--muted)}.deck-badge{display:flex;align-items:center;gap:14px;margin-left:auto;padding:8px 18px 8px 12px;background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.deck-pile{position:relative;width:40px;height:54px;flex:none}.deck-pile-card{position:absolute;top:0;left:0;width:34px;height:48px;border-radius:6px;border:1px solid rgba(255,255,255,.22);background:repeating-linear-gradient(45deg,rgba(255,255,255,.08) 0 4px,transparent 4px 8px),linear-gradient(160deg,var(--accent) 0%,#4257c4 100%);box-shadow:0 2px 5px #00000059}.deck-pile-card:nth-child(2){transform:translate(3px,3px)}.deck-pile-card:nth-child(3){transform:translate(6px,6px)}.deck-badge-info{display:flex;flex-direction:column;align-items:flex-start;line-height:1}.deck-badge-count{font-size:28px;font-weight:900;color:var(--ink)}.deck-badge-label{margin-top:3px;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}.deck-badge.low .deck-badge-count{color:var(--accent-2)}.deck-badge.low .deck-pile-card{border-color:#ffd16680;background:repeating-linear-gradient(45deg,rgba(255,255,255,.08) 0 4px,transparent 4px 8px),linear-gradient(160deg,var(--accent-2) 0%,#e0a93b 100%)}.turn-banner{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:16px;font-size:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.turn-timer{flex:none;font-weight:800;font-variant-numeric:tabular-nums;padding:3px 10px;border-radius:999px;background:#6c8cff2e;color:var(--accent)}.turn-timer.urgent,.prompt-timer.urgent{background:#ff5d7338;color:var(--bad);animation:timer-pulse 1s ease-in-out infinite}@keyframes timer-pulse{0%,to{opacity:1}50%{opacity:.55}}.players-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.player-area{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px;transition:border-color .2s,box-shadow .2s}.player-area.current-turn{border-color:var(--accent);box-shadow:0 0 0 2px #6c8cff66}.player-area.is-me{background:linear-gradient(180deg,var(--panel),#20264f)}.player-area.status-busted{opacity:.72}.player-head{display:flex;justify-content:space-between;align-items:center}.player-id{display:flex;align-items:center;gap:8px}.player-name{font-weight:800}.chip{font-size:10px;font-weight:800;padding:2px 7px;border-radius:999px}.chip.dealer{background:var(--accent-2);color:#2a1d00}.chip.you{background:#6c8cff40;color:var(--accent)}.player-scores{display:flex;gap:10px;align-items:baseline}.round-score{color:var(--good);font-weight:700;font-size:14px}.total-score{font-weight:900;font-size:22px}.status-badge{display:inline-flex;align-items:center;gap:8px;margin:10px 0;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:4px 10px;border-radius:999px;background:var(--panel-2);color:var(--muted)}.status-badge.status-active{background:#38d39f29;color:var(--good)}.status-badge.status-busted{background:#ff5d732e;color:var(--bad)}.status-badge.status-frozen{background:#4dd0ff29;color:var(--warn)}.status-badge.status-stayed{background:#ffd16629;color:var(--accent-2)}.flip7-tag{background:var(--accent-2);color:#2a1d00;padding:1px 7px;border-radius:6px}.modifier-row,.number-row{display:flex;flex-wrap:wrap;gap:8px;min-height:40px}.modifier-row{margin-bottom:8px}.empty-slot{color:var(--muted);font-size:13px;font-style:italic;align-self:center}.card{width:46px;height:64px;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:900;border:1px solid rgba(255,255,255,.12);box-shadow:0 3px 8px #0000004d;position:relative;-webkit-user-select:none;user-select:none}.card-small{width:38px;height:52px}.card-number{background:linear-gradient(180deg,#fdfdff,#e8ecff);color:#1a1f44}.card-value{font-size:24px}.card-small .card-value{font-size:19px}.card.card-bust{background:linear-gradient(180deg,#ff8497,var(--bad));color:#fff;border-color:#ff97a6;box-shadow:0 0 0 2px #ff5d7380,0 3px 8px #00000059}.card-modifier{background:linear-gradient(180deg,#ffe39a,#ffd166);color:#3a2a00}.card-mod{font-size:18px}.card-action{color:#fff;font-size:10px;text-align:center;line-height:1.1;padding:4px}.card-action-icon{font-size:18px}.card-action-freeze{background:linear-gradient(180deg,#57c9ff,#2e9bdd)}.card-action-flip_three{background:linear-gradient(180deg,#b07bff,#8a4bf0)}.card-action-second_chance{background:linear-gradient(180deg,#46e0ad,#2bc28d)}.held-sc{opacity:.95}.action-prompt{margin-top:18px;background:var(--panel-2);border:1px solid var(--accent);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.prompt-title{font-weight:800;margin-bottom:12px;font-size:18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.prompt-timer{font-variant-numeric:tabular-nums;font-size:20px;padding:2px 12px;border-radius:999px;background:#6c8cff33;color:var(--accent)}.prompt-sub{color:var(--muted);margin-bottom:10px}.prompt-buttons{display:flex;gap:12px}.prompt-buttons.wrap{flex-wrap:wrap}.event-log{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px;max-height:70vh;overflow-y:auto;position:sticky;top:80px}.event-log h3{margin:2px 0 10px}.event-log ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px}.event-log li{color:var(--muted);border-left:3px solid var(--line);padding:3px 0 3px 9px}.log-bust{color:#ffb3bd;border-left-color:var(--bad)}.log-flip_seven{color:var(--accent-2);border-left-color:var(--accent-2);font-weight:700}.log-freeze{color:#b6ecff;border-left-color:var(--warn)}.log-second_chance{color:#aef0d6;border-left-color:var(--good)}.log-flip_three{color:#d8c2ff;border-left-color:#8a4bf0}.log-round,.log-game_over{color:var(--ink);border-left-color:var(--accent);font-weight:700}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#080a18b8;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.overlay-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px;width:100%;max-width:480px;box-shadow:var(--shadow);text-align:center}.winner-line{font-size:22px;margin:8px 0 16px}.scoreboard{width:100%;border-collapse:collapse;margin:8px 0 16px}.scoreboard th,.scoreboard td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line)}.scoreboard th{color:var(--muted);font-size:13px}.scoreboard tr.winner td{color:var(--accent-2);font-weight:800}.overlay-actions{display:flex;gap:12px;justify-content:center}.center-card{display:flex;flex-direction:column;align-items:center;gap:14px;padding:60px 0;color:var(--muted)}.spinner{width:36px;height:36px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 720px){.content{padding:14px}.game-mobile{display:block}.game-mobile .game-main{padding-bottom:84px}.game-mobile .game-main.has-action-bar{padding-bottom:168px}.game-header{gap:8px;margin-bottom:12px}.hdr-item{padding:6px 10px;font-size:13px}.deck-badge{gap:10px;padding:6px 12px 6px 8px}.deck-pile{width:32px;height:44px}.deck-pile-card{width:28px;height:40px}.deck-badge-count{font-size:22px}.deck-badge-label{font-size:10px}.turn-banner{position:sticky;top:64px;z-index:5}.players-grid{grid-template-columns:1fr;gap:12px}.card{width:40px;height:56px}.card-small{width:33px;height:46px}.card-value{font-size:21px}.mobile-action-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:#0f1226eb;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 -8px 24px #0006}.mobile-action-bar .action-prompt{margin-top:0;border:none;background:transparent;box-shadow:none;padding:0}.mobile-action-bar .prompt-buttons .btn.big{flex:1}.log-fab{position:fixed;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:41;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);font-weight:700;padding:10px 14px;border-radius:999px;box-shadow:var(--shadow);cursor:pointer}.game-main.has-action-bar~.log-fab{bottom:calc(96px + env(safe-area-inset-bottom))}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#080a188c;z-index:44}.log-drawer{position:fixed;left:0;right:0;bottom:0;z-index:45;max-height:75vh;display:flex;flex-direction:column;background:var(--bg-2);border-top:1px solid var(--line);border-radius:18px 18px 0 0;box-shadow:0 -12px 32px #00000080;transform:translateY(100%);transition:transform .25s ease;padding-bottom:env(safe-area-inset-bottom)}.log-drawer.open{transform:translateY(0)}.log-drawer-grip{display:flex;justify-content:flex-end;padding:8px 12px 0}.log-drawer .event-log{position:static;top:auto;max-height:none;flex:1;border:none;background:transparent;border-radius:0}}.kick-btn{margin-left:auto;color:var(--danger, #ff6b6b);border-color:var(--line)}.chip.left{background:#ff6b6b33;color:var(--danger, #ff6b6b)}.player-area.has-left{opacity:.5;filter:grayscale(.6)}.lang-toggle{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.lang-toggle button{background:transparent;border:none;color:var(--muted);font-weight:800;font-size:12px;letter-spacing:.4px;padding:6px 10px;cursor:pointer;transition:background .15s ease,color .15s ease}.lang-toggle button:hover:not(.active){background:var(--panel-2);color:var(--ink)}.lang-toggle button.active{background:var(--accent);color:#0b0f24}.card.clickable{cursor:pointer;transition:transform .08s ease,box-shadow .15s ease}.card.clickable:hover,.card.clickable:focus-visible{transform:translateY(-3px);box-shadow:0 7px 16px #00000073;outline:none}.card-info-dot{position:absolute;top:2px;right:3px;font-size:9px;line-height:1;opacity:.65;pointer-events:none}.modal-card{position:relative;text-align:left;max-width:560px;max-height:85vh;display:flex;flex-direction:column}.modal-card h2{margin:0 28px 6px 0}.modal-body{overflow-y:auto;margin-top:4px}.modal-close{position:absolute;top:8px;right:10px;background:transparent;border:none;color:var(--muted);font-size:26px;line-height:1;padding:2px 9px;border-radius:9px;cursor:pointer}.modal-close:hover{color:var(--ink);background:var(--panel-2)}.tutorial section{margin:14px 0}.tutorial h3{margin:0 0 4px;font-size:15px;color:var(--accent-2)}.tutorial p{margin:0;line-height:1.5}.tutorial-cards{margin:6px 0 0;padding-left:18px}.tutorial-cards li{margin:7px 0;line-height:1.45}.tutorial-hint{margin-top:16px;color:var(--muted);font-style:italic}.card-info{display:flex;gap:16px;align-items:flex-start}.card-info-preview{flex:0 0 auto}.card-info p{margin:0;line-height:1.5}
