/* 大厅：游戏货架 */
.hall{flex:1;min-height:0;overflow-y:auto;padding:0 16px 12px;overscroll-behavior:contain}
.hero{padding:10px 0 12px}
.hero__h1{margin:0 -8px;padding:3px 8px 5px;font-size:clamp(33px,9.4vw,42px);line-height:1.02;font-weight:900;letter-spacing:-2px}
.hero__mark{display:inline-block;background:var(--orange);color:var(--ink);padding:4px 10px 7px;transform:rotate(-1deg)}
.hero__sub{margin-top:8px;font-size:13px;color:var(--ink-2)}
.seats{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:4px 0 10px}
.seat{width:44px;height:44px;border:0;background:transparent;position:relative;z-index:0;display:flex;align-items:center;justify-content:center;padding:0}
.seat::before{content:"";position:absolute;z-index:-1;width:34px;height:34px;border-radius:50%;border:2px solid var(--ink);background:var(--white)}
.seat.is-me::before{background:var(--orange)}
.seat > span{position:relative;z-index:1}
.seat{font-size:11px;font-weight:900}
.seat--add::before{border-style:dashed;background:transparent}
.seat--add{font-size:18px;color:var(--ink-2)}
.seat--add{border-style:dashed;background:transparent;font-size:18px;color:var(--ink-2)}
.seats__tip{font-family:var(--mono);font-size:10px;opacity:.8;margin-left:2px}
.again{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;margin-bottom:6px;border:2px solid var(--ink);border-radius:10px;background:var(--white);font-size:11px;font-weight:700}
.again button{font-family:var(--mono);font-size:10px;font-weight:900;text-decoration:underline;min-height:44px;min-width:44px}
.section-h{display:flex;align-items:baseline;gap:8px;margin:12px 0 8px;font-size:13px;font-weight:900}
.section-h i{display:inline-block;width:9px;height:9px;background:var(--ink)}
.section-h small{font-family:var(--mono);font-size:10px;font-weight:700;opacity:.6}
.shelf{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-bottom:12px}
.gcard{position:relative;text-align:left;border:2px solid var(--ink);border-radius:var(--r);padding:12px;min-height:108px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--sh-card);color:var(--ink);transition:transform .1s,box-shadow .1s}
.gcard:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.gcard--full{grid-column:1/-1;flex-direction:row;align-items:center;min-height:78px;gap:12px}
.gcard.is-locked{filter:grayscale(.7) saturate(.65)}
.gcard.is-locked .gcard__desc,.gcard.is-locked .gcard__lockrow,.gcard.is-locked .gcard__name,.gcard.is-locked .gcard__tag{opacity:1}
.gcard.c-yellow{background:var(--yellow)}
.gcard.c-ox{background:var(--ox);color:var(--white)}
.gcard.c-blue{background:var(--blue);color:var(--white)}
/* 摇骰子解锁后不再是 is-locked，desc 失去 opacity:1 兜底；深色底改纯白守住 >=4.5:1 */
.gcard.c-blue .gcard__desc{opacity:1;color:#FFFFFF}
/* 四个 1.1 玩法解锁后，深底卡片 desc 失去 is-locked 的 opacity:1 兜底，统一补纯白守住 >=4.5:1 */
.gcard.c-ox .gcard__desc,.gcard.c-green .gcard__desc,.gcard.c-ink .gcard__desc{opacity:1;color:#FFFFFF}
.gcard.c-green{background:var(--green);color:var(--white)}
.gcard.c-paper{background:var(--white)}
.gcard.c-ink{background:var(--ink);color:var(--white);box-shadow:4px 4px 0 var(--orange)}
.gcard.c-paper2{background:var(--paper-2)}
.gcard.c-orange{background:var(--orange)}
.gcard__top{display:flex;align-items:center;gap:8px}
.gcard__ibox{width:38px;height:38px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.gcard--full .gcard__ibox{width:48px;height:48px}
.gcard__lockrow{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.08em;display:flex;align-items:center;gap:4px;opacity:.95}
.gcard__name{font-size:16px;font-weight:900;letter-spacing:-.5px}
.gcard__desc{font-size:11px;opacity:.78;line-height:1.4}
.gcard__arrow{margin-left:auto;flex-shrink:0}
.gcard__tag{font-family:var(--mono);font-size:10px;font-weight:700;border:2px solid currentColor;border-radius:6px;padding:2px 6px;align-self:flex-start}
.gcard__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.footer{display:flex;align-items:center;gap:8px;padding:10px 0 8px;font-size:10.5px;color:var(--ink-2)}
.age18{font-family:var(--mono);font-size:10px;font-weight:900;border:2px solid var(--ox);color:var(--ox);padding:2px 6px;border-radius:4px}
@media(max-width:360px){
  .hall{padding:0 13px 12px}
  .shelf{gap:8px}
  .gcard{padding:10px;min-height:100px}
  .gcard__name{font-size:15px}
}
