.game-shell{--aspect: 4 / 3;--shell-max: 760px;--chrome-h: 330px}.tyhud{gap:10px}#round-label{font-size:13px;color:var(--muted)}.tyhud .spacer{flex:1}#speed-btn{width:auto;padding:0 8px;font-family:var(--font-mono);font-weight:700}.players{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px}.pcard{display:grid;gap:2px;padding:6px 8px;border-radius:10px;border:1px solid var(--line);border-left:4px solid var(--c);background:var(--panel);font-size:12px;min-width:0}.pcard.active{border-color:var(--accent-2);border-left-color:var(--c);background:var(--panel-2)}.pcard.out{opacity:.4}.pcard .ptop{display:flex;align-items:center;gap:6px}.pcard small{color:var(--muted);font-size:10px}.dot{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--c);color:#fff;font-size:11px;font-weight:700;flex:none}.pcard .pcash{font-family:var(--font-mono);color:var(--accent-2);font-weight:700}.pcard .pmeta{color:var(--muted);font-size:11px}.pcard .pgens{display:flex;flex-wrap:wrap;gap:3px}.gen{font-size:10px;padding:0 5px;border-radius:999px;background:#ffffff14}.gen.tired{opacity:.45;text-decoration:line-through}.actions{min-height:86px;padding:8px 10px;border-radius:12px;border:1px solid var(--line);background:var(--panel)}.actions .prompt{margin:0 0 6px;font-size:14px;font-weight:600}.actions .row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.actions .label{color:var(--muted);font-size:12px;margin-left:6px}.actions .btn.card{display:grid;text-align:left;gap:1px}.actions .btn.card small{font-weight:400;font-size:10px;color:var(--muted)}.seats{display:grid;gap:6px}.seat-row{display:flex;align-items:center;gap:8px;justify-content:center}.seat-row strong{min-width:4em;text-align:left}.seat-row .seg button{padding:4px 10px}.ranking{list-style:none;margin:0;padding:0;display:grid;gap:6px;width:min(100%,320px)}.ranking li{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;background:var(--panel)}.ranking li b{margin-left:auto;font-family:var(--font-mono);color:var(--accent-2)}.game-shell{--serif: "Noto Serif TC", "Songti TC", "PMingLiU", serif}.overlay .logo,.overlay .title{font-family:var(--serif);font-weight:900;letter-spacing:.08em;color:#f3d58a;text-shadow:2px 2px 0 #7a1f17}.overlay .logo{font-size:clamp(28px,7vw,40px)}.pcard{background:linear-gradient(135deg,color-mix(in srgb,var(--c) 22%,var(--panel)),var(--panel) 60%)}.pcard strong,.seat-row strong,.actions .prompt{font-family:var(--serif)}.pcard .dot,.seat-row .dot,.ranking .dot{font-family:var(--serif);font-weight:900;box-shadow:inset 0 0 0 2px #ffffff59}.actions{border-color:#c9a24a59;background:linear-gradient(180deg,#2a2038,var(--panel))}.roster{position:absolute;top:6%;right:8%;bottom:6%;left:8%;display:grid;grid-template-rows:auto 1fr auto;gap:10px;padding:14px 16px;border-radius:10px;background:linear-gradient(180deg,#f6e8c8,#e6d0a0);color:#2e2016;box-shadow:0 0 0 3px #7a3e1c,0 0 0 5px #c9a24a,0 18px 40px #00000080;overflow:hidden;z-index:2}.roster[hidden]{display:none}.roster .rhead{display:flex;align-items:center;gap:10px}.roster .rhead img{width:44px;height:44px;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px #fff6dc,0 0 0 4px var(--c)}.roster .rhead h3{margin:0;font-family:var(--serif);font-weight:900;font-size:20px}.roster .rhead .meta{font-size:12px;color:#6b5a44}.roster .rclose{margin-left:auto;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(90,50,25,.4);background:#ffffff80;color:#2e2016;border-radius:8px;width:32px;height:32px;font-size:16px;cursor:pointer}.roster .gens{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;align-content:start;overflow-y:auto}.roster .gcard{position:relative;display:grid;grid-template-columns:48px 1fr;column-gap:8px;align-items:center;padding:6px 8px;border-radius:8px;background:#fffcf0bf;border:1px solid rgba(90,50,25,.3)}.roster .gcard.tired{filter:grayscale(.8);opacity:.7}.roster .gcard img{grid-row:1 / 4;width:48px;height:48px;border-radius:8px;background:#e9d6a8}.roster .gname{font-family:var(--serif);font-weight:900;font-size:15px}.roster .gbar{height:6px;border-radius:999px;background:#5a321933;overflow:hidden}.roster .gbar i{display:block;height:100%;background:linear-gradient(90deg,#c9a24a,#b3261e)}.roster .gstate{font-size:11px;color:#1f7a33}.roster .gcard.tired .gstate{color:#6b5a44}.roster .badge-def{position:absolute;top:4px;right:6px;padding:0 6px;border-radius:4px;background:#b3261e;color:#fff6dc;font-size:11px;font-weight:700}.roster .empty{color:#6b5a44;font-size:13px}.roster .rfoot{display:grid;gap:4px;font-size:12px}.roster .rfoot b{font-family:var(--serif);margin-right:6px}.roster .chip{display:inline-block;margin:2px 4px 2px 0;padding:0 6px;border-radius:4px;background:#fffcf0cc;border-left:3px solid var(--rc, #c9a24a)}.roster .rhint{color:#6b5a44;font-size:11px}.pcard{cursor:pointer}.pcard:hover{filter:brightness(1.12)}.gen img,.actions .btn img{width:18px;height:18px;vertical-align:-4px;margin-right:3px;border-radius:4px;background:#ffffff26}.actions .btn img{width:24px;height:24px;vertical-align:-7px}@media (max-width: 560px){.roster{top:2%;right:2%;bottom:2%;left:2%;padding:10px}#roster-btn span{display:none}}.actions .prompt .defense{display:block;margin-top:2px;font-family:var(--font-sans);font-weight:400;font-size:12px;color:var(--muted)}
