:root{color-scheme:dark;--ink:#e8f5ff;--muted:#8ea5bd;--panel:#071324cc;--cyan:#61e6e1;--gold:#ffc65a;--violet:#9f7bff}*{box-sizing:border-box}body{margin:0;background:#020713;color:var(--ink);font-family:Inter,"Noto Sans SC","Microsoft YaHei",sans-serif}.arena{min-height:100svh;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 45%,#123f4d 0,#081a2c 35%,#020713 80%)}.intro{display:grid;place-items:center;padding:28px}.intro-copy{position:relative;z-index:1;width:min(720px,100%);padding:clamp(28px,7vw,70px);border:1px solid #7ff0dc55;border-radius:28px;background:linear-gradient(135deg,#0c234ddd,#171038dd);box-shadow:0 25px 90px #000a;text-align:center}.aurora{position:absolute;width:80vw;height:80vw;max-width:900px;max-height:900px;background:conic-gradient(from 30deg,#61e6e166,#9f7bff66,#ffc65a66,#61e6e166);filter:blur(65px);animation:spin 18s linear infinite}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--cyan);font-size:.78rem;font-weight:800}.intro h1,.arena-top h1{margin:.2em 0;font-size:clamp(2.1rem,6vw,4.8rem);line-height:1.03}.intro-copy>p:not(.eyebrow){color:#c1d5e9;font-size:clamp(1rem,2vw,1.25rem);line-height:1.7}.pills{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin:24px 0}.pills span,.bottom-info{border:1px solid #92b8d044;border-radius:999px;padding:8px 12px;background:#07162a99;color:#c3d9e9;font-size:.87rem}button,a{font:inherit}button{border:0;border-radius:12px;padding:11px 17px;background:#173653;color:var(--ink);cursor:pointer}button:disabled{opacity:.38;cursor:not-allowed}.primary{background:linear-gradient(135deg,#ffe079,#f3a93e);color:#1d1608;font-weight:900;box-shadow:0 8px 25px #e7993d55}.intro a,.arena-top a{display:inline-block;margin:18px;color:var(--cyan)}.game{padding:clamp(10px,2vw,28px) clamp(10px,3vw,54px) 165px}.arena-top{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #83c7d33d}.arena-top h1{font-size:clamp(1.5rem,3vw,2.6rem)}.scoreboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:9px;margin:18px auto;width:min(1060px,100%)}.seat{min-height:78px;padding:12px;border:1px solid #7295ba40;background:var(--panel);border-radius:16px;display:grid;gap:4px}.seat b{font-size:.96rem}.seat span{color:var(--muted);font-size:.82rem}.seat em{color:var(--gold);font-style:normal;font-size:.75rem}.seat.active{border-color:var(--gold);box-shadow:0 0 24px #ffc65a30}.seat.you{background:linear-gradient(135deg,#174d5cdd,#101a3ddd)}.table{width:min(1000px,100%);min-height:280px;margin:auto;padding:30px;display:grid;place-content:center;gap:24px;text-align:center;position:relative;border-radius:48% 48% 38% 38%;border:12px solid #452a12;background:radial-gradient(ellipse,#18885f,#075438 52%,#042819);box-shadow:inset 0 0 0 5px #e6ba4b44,0 22px 60px #0008}.table-glow{position:absolute;inset:10%;border-radius:50%;border:1px solid #a4ffca32;pointer-events:none}.status{position:relative;max-width:650px;font-weight:700}.trick{position:relative;min-height:112px;display:flex;justify-content:center;align-items:center}.trick img{width:76px;margin-left:-18px;filter:drop-shadow(4px 7px 4px #0008)}.trick span{color:#b4e8de}.bottom-info{position:relative;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.control-dock{position:fixed;z-index:2;bottom:0;left:0;right:0;padding:10px max(12px,calc((100vw - 1080px)/2));background:linear-gradient(transparent,#020713 15%,#020713);border-top:1px solid #79b9d54d}.hand{display:flex;align-items:end;min-height:124px;overflow-x:auto;padding:16px 10px 7px}.card{flex:0 0 76px;padding:0;background:none;margin-left:-37px;transition:transform .16s}.card:first-child{margin-left:0}.card:hover,.card.selected{transform:translateY(-20px)}.card.selected img{outline:3px solid var(--gold);outline-offset:2px}.card img{display:block;width:76px;aspect-ratio:5/7;border-radius:6px;box-shadow:4px 7px 7px #0008;background:#fff}.actions{display:flex;justify-content:center;gap:9px}.game-log{position:fixed;right:14px;top:95px;z-index:3;width:min(260px,25vw);max-height:45svh;overflow:auto;padding:10px 14px;border:1px solid #7798c445;border-radius:15px;background:#061225df;backdrop-filter:blur(12px)}.game-log h2{font-size:.9rem;margin:0 0 8px;color:var(--cyan)}.game-log ol{padding-left:18px;margin:0;color:#b5cce0;font-size:.77rem;line-height:1.55}.winner{position:fixed;z-index:6;inset:0;display:grid;place-content:center;text-align:center;background:#020713d9;backdrop-filter:blur(12px)}.winner h2{font-size:clamp(2rem,5vw,4rem);max-width:800px;padding:20px}.winner[hidden]{display:none}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:700px){.game{padding-bottom:150px}.game-log{display:none}.table{min-height:210px;padding:18px;border-width:8px;border-radius:34%}.trick img{width:60px;margin-left:-18px}.card{flex-basis:61px;margin-left:-33px}.card img{width:61px}.hand{min-height:105px}.arena-top .eyebrow{display:none}.bottom-info{max-width:260px}.scoreboard{grid-template-columns:repeat(2,1fr)}.seat{min-height:65px;padding:9px}.control-dock{padding-bottom:max(10px,env(safe-area-inset-bottom))}}
.actions{flex-wrap:wrap;align-items:center}.phase-actions{margin:8px auto 12px;padding:12px;border:1px solid #ffc65a66;border-radius:12px;background:#132638}.hand{padding-top:30px;min-height:145px}.trick{max-width:100%;overflow-x:auto;padding:6px 12px}.trick img:first-child{margin-left:0}.game{padding-bottom:230px}.game-log{position:relative;inset:auto;width:min(1000px,100%);max-height:160px;margin:20px auto}.blackjack-table{width:min(1000px,100%);margin:20px auto;padding:24px;border:1px solid #79b9d54d;border-radius:24px;background:#075438}.mini-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;padding:12px 4px 26px}.mini-row .card{margin:0;flex-basis:76px}.mini-card.back{display:grid;place-items:center;width:76px;aspect-ratio:5/7;border:3px solid white;border-radius:6px;background:#173653;color:#ffc65a}.mini-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:20px auto}.active-hand{outline:2px solid #ffc65a;border-radius:16px}.folded{opacity:.6}.virtual-note{text-align:center}.status{overflow-wrap:anywhere}.game-log{display:block}.mini-game .scoreboard .mini-row .card{flex-basis:40px}.mini-game .scoreboard .mini-row img{width:40px}.intro h1{line-height:1.2;overflow-wrap:anywhere}.phase-actions b{width:100%;text-align:center}
@media(max-width:700px){.hand{padding-top:30px;min-height:127px}.game{padding-bottom:255px}.mini-game{padding-bottom:32px}.blackjack-table{padding:14px}.control-dock{max-height:65svh;overflow-y:auto}.arena-top{flex-wrap:wrap}.trick{max-width:calc(100vw - 65px)}.game-log{max-height:100px}}
.card{position:relative}.card-mark{position:absolute;bottom:4px;left:0;right:0;padding:3px 0;border-radius:4px;background:#173653;color:#ffe079;font-size:10px;pointer-events:none}.mini-game{padding-bottom:36px}.phase-actions button{max-width:100%;overflow-wrap:anywhere}
.result-scores{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;max-width:90vw;margin:0 auto 24px}.result-scores span{padding:8px 14px;border:1px solid #ffc65a55;border-radius:10px}.winner{overflow-y:auto;padding:24px}.rules-card p{overflow-wrap:anywhere}
