/* Gameplay-state polish for Bud or Bluff. Keeps room and scoring logic unchanged. */
.vote-button:disabled{cursor:wait;opacity:.62;filter:saturate(.65);transform:none!important}.vote-button:active:not(:disabled){transform:translateY(1px) scale(.992)}
.locked-vote{transition:border-color .16s ease,background .16s ease}.locked-vote[data-vote="BUD"]{border-color:rgba(134,239,118,.38);background:rgba(60,151,75,.12)}.locked-vote[data-vote="BUD"] strong{color:var(--green)}.locked-vote[data-vote="BLUFF"]{border-color:rgba(255,119,111,.42);background:rgba(171,55,49,.12)}.locked-vote[data-vote="BLUFF"] strong{color:#ff9d96}
.round-meta[data-urgency="low"] #timerText{color:var(--gold)}.round-meta[data-urgency="critical"] #timerText{color:var(--red);font-weight:1000}.round-meta[data-urgency="critical"] .timer-track i{background:linear-gradient(90deg,#f4a56f,var(--red))}.round-meta[data-urgency="critical"]{filter:drop-shadow(0 0 8px rgba(255,119,111,.12))}
#strainCard[data-answer="BUD"] .reveal-panel{border-color:rgba(134,239,118,.32);box-shadow:inset 0 0 0 1px rgba(134,239,118,.05)}#strainCard[data-answer="BLUFF"] .reveal-panel{border-color:rgba(255,119,111,.34);box-shadow:inset 0 0 0 1px rgba(255,119,111,.05)}
.vote-keyboard-hint{color:#758a79;text-align:center;font-size:.7rem;margin:.55rem 0 0}.vote-controls:focus-within .vote-button{border-color:rgba(255,255,255,.22)}

/* Responsive containment belongs to the game surfaces, not the page root. The
   base stylesheet historically hid horizontal overflow on body, which could
   conceal a real width regression. This late-loaded layer explicitly releases
   that mask and constrains the components that can actually grow. */
body{min-width:0;overflow-x:visible}
.topbar,.shell,.home-view,.room-grid,.stage,.game-stage,.sidebar,.panel,.strain-card,.vote-controls,.chat-form,.scoreboard{min-width:0}
.topbar,.shell{max-width:100%}
.hero-copy,.lobby-launcher,.stage-head>*,.strain-main,.reveal-panel,.player-copy{min-width:0}
.icon-button,.secondary-action,.primary-action,.seg,.launch-form input,.launch-form select,.chat-form input,.chat-form button{min-height:44px}
.strain-main h2,.reveal-panel,.chat-line,.player-name{overflow-wrap:anywhere}

@media(max-width:900px){
  .topbar,.shell{width:min(100% - 28px,1320px)}
  .home-view,.room-grid{grid-template-columns:minmax(0,1fr)}
  .home-view{gap:28px;align-items:start}
  .sidebar{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media(max-width:720px){.stage{min-height:0}.game-stage{padding-top:18px}.strain-card{margin-top:14px;min-height:315px}.strain-main{padding:22px 0 12px}.strain-main h2{font-size:clamp(2.35rem,13vw,4.4rem)}.vote-controls{position:sticky;bottom:max(8px,env(safe-area-inset-bottom));z-index:8;padding:7px;margin-inline:-7px;border:1px solid rgba(137,183,147,.16);border-radius:18px;background:rgba(5,17,10,.92);backdrop-filter:blur(14px);box-shadow:0 -12px 36px rgba(0,0,0,.28)}.vote-button{min-height:88px}.double-hit{margin-top:9px}.sidebar{grid-template-columns:minmax(0,1fr);margin-top:2px}.chat-panel{min-height:300px}.chat-messages{max-height:220px}}
@media(max-width:430px){.topbar,.shell{width:min(100% - 20px,1320px)}.topbar{gap:10px}.top-actions{min-width:0;flex-wrap:wrap;justify-content:flex-end}.strain-card{min-height:300px;padding:17px}.strain-main h2{font-size:clamp(2.15rem,14vw,3.35rem)}.vote-controls{gap:7px}.vote-button{min-height:82px;padding:10px 7px}.vote-button>span{font-size:1.35rem}.vote-button small{font-size:.68rem}.locked-vote{padding:14px 15px}.round-meta{gap:8px}.round-meta strong{min-width:2ch;text-align:right}}
@media(prefers-reduced-motion:reduce){.locked-vote{transition:none}.round-meta[data-urgency="critical"]{filter:none}}

@media(forced-colors:active){
  .vote-button,.primary-action,.secondary-action,.icon-button,.seg,.room-code,.chat-form button{
    border:2px solid ButtonText;
  }
  .vote-button:focus-visible,.primary-action:focus-visible,.secondary-action:focus-visible,.icon-button:focus-visible,.seg:focus-visible,.room-code:focus-visible{
    outline:3px solid Highlight;
    outline-offset:2px;
  }
}


/* Bud or Bluff mobile player rail v1.
   Presentation-only mirror of the public scoreboard; room/scoring state remains authoritative. */
.mobile-player-rail{
  display:none;
}
@media(max-width:720px){
  .mobile-player-rail{
    position:relative;
    z-index:3;
    display:flex;
    gap:7px;
    overflow-x:auto;
    margin:10px -2px 0;
    padding:2px 2px 8px;
    scrollbar-width:none;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
  }
  .mobile-player-rail::-webkit-scrollbar{display:none}
  .mobile-player-chip{
    flex:0 0 auto;
    min-width:88px;
    max-width:126px;
    min-height:48px;
    display:grid;
    grid-template-columns:28px minmax(0,1fr);
    gap:7px;
    align-items:center;
    padding:7px 8px;
    border:1px solid var(--line);
    border-radius:13px;
    background:rgba(255,255,255,.035);
    scroll-snap-align:start;
  }
  .mobile-player-chip.me{
    border-color:rgba(134,239,118,.32);
    background:rgba(134,239,118,.07);
    box-shadow:0 0 20px rgba(134,239,118,.06);
  }
  .mobile-player-avatar{
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:rgba(134,239,118,.13);
    color:var(--green);
    font-size:.64rem;
    letter-spacing:.01em;
  }
  .mobile-player-chip>span{
    min-width:0;
    display:grid;
    line-height:1.08;
  }
  .mobile-player-chip i{
    overflow:hidden;
    color:#d9e2da;
    font-size:.67rem;
    font-style:normal;
    font-weight:800;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .mobile-player-chip strong{
    color:#fff;
    font-size:.92rem;
    font-weight:950;
  }
  .score-panel{
    display:none;
  }
}
@media(forced-colors:active){
  .mobile-player-chip{
    border:2px solid CanvasText;
    background:Canvas;
    color:CanvasText;
  }
  .mobile-player-chip.me{
    outline:2px solid Highlight;
    outline-offset:1px;
  }
}
