/* Jackpot-specific layout. Controls, cards and hero use the shared UI. */
#ha-lobby.is-jackpot .ha-hero { display:none; }
#ha-rugpot { --body:var(--font); margin:0; }
#ha-rugpot [hidden] { display:none!important; }
.jp-toolbar { justify-content:space-between; }
#ha-rugpot .jp-currencies { margin:0; }
#ha-rugpot .ha-pot-stage { display:grid; grid-template-columns:minmax(0,1fr) 304px; gap:var(--s5); align-items:stretch; }
#ha-rugpot .jp-game { min-width:0; animation:none; transform:none; }
.jp-hud { display:flex; flex:1 1 auto; align-items:center; gap:var(--s5); min-width:0; }
.jp-hud > div { min-width:0; display:flex; flex-direction:column; gap:5px; }
.jp-hud > div > span { color:var(--txt-mute); font-size:var(--fs-2); line-height:1.4; }
.jp-round { font:500 var(--fs-2) var(--num); color:var(--txt-dim); margin-left:5px; }
.jp-pot-amount { display:flex; align-items:center; flex-wrap:wrap; gap:8px; min-width:0; }
.jp-pot-amount img { width:22px; height:22px; flex:none; }
#ha-rugpot #ha-pot-total { color:var(--gold); font:700 24px/1.15 var(--num); letter-spacing:-.04em; overflow-wrap:anywhere; }
.jp-pot-amount em { color:var(--gold); font:normal var(--fs-2) var(--num); }
#jp-capacity,#ha-rugpot #ha-pot-clock { margin:0; padding:0; border:0; background:none; box-shadow:none; color:var(--txt); font:600 18px/1.55 var(--num); font-variant-numeric:tabular-nums; letter-spacing:-.045em; }
.jp-capacity { border-left:1px solid var(--line); padding-left:var(--s5); }
.jp-timer { text-align:left; }
#ha-rugpot[data-phase="urgent"] #ha-pot-clock { color:var(--red-hot); }
#ha-rugpot[data-phase="waiting"] #ha-pot-clock { color:var(--txt-dim); }
#ha-rugpot .ha-pot-card { min-width:0; margin:0; border:0; border-radius:0; background:none; box-shadow:none; transform:none; animation:none; overflow:hidden; }
.jp-arena-top { display:flex; flex-wrap:wrap; align-items:center; gap:var(--s4) var(--s6); padding:var(--s4) var(--s5); border-bottom:1px solid var(--line); }
.jp-arena-controls { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:var(--s2); margin-left:auto; }
.jp-arena-controls:has(.jp-camera[hidden]):not(:has(.arena-expand,.jp-result-close)) { display:none; }
.arena-fullscreen .jp-entry-link { display:none; }
#ha-rugpot .ha-pot-body { display:block; padding:0; }
#ha-rugpot .ha-pot-wheelwrap { position:relative; width:100%; max-width:none; height:540px; min-height:0; aspect-ratio:auto; margin:0; padding:0; border-radius:0; }
#ha-rugpot #ha-pot-3d,#ha-rugpot #ha-pot-wheel { width:100%; height:100%; aspect-ratio:auto; }
#ha-rugpot #ha-pot-3d { position:relative; }
.jp-arena-footer { padding:var(--s4) var(--s5); }
.jp-arena-footer:has(#jp-ownership:empty) { display:none; }
#jp-ownership { display:flex; height:6px; gap:2px; border-radius:3px; overflow:hidden; }
#jp-ownership .jp-ownership-player { flex-basis:0; min-width:0; border:0; padding:0; cursor:pointer; }
#jp-ownership .jp-ownership-player:focus-visible { outline:2px solid #fff; outline-offset:-2px; }
#ha-rugpot .ha-pot-panel { padding:var(--s5); }
.jp-sidebar { display:grid; grid-template-rows:auto minmax(220px,1fr); gap:var(--s5); min-width:0; }
.jp-activity { display:flex; flex-direction:column; min-width:0; min-height:0; }
.jp-activity-heading { padding:var(--s5); border-bottom:1px solid var(--line); }
.jp-activity-heading h2 { margin:0; font:700 var(--fs-7) var(--display); }
.jp-activity-feed { position:relative; flex:1 1 0px; height:0; min-height:0; contain:size; overflow:auto; overscroll-behavior:contain; overflow-anchor:none; scrollbar-width:thin; padding:0 var(--s5); }
.jp-activity-feed:focus-visible { outline:2px solid var(--green); outline-offset:-2px; }
.jp-activity-row { display:flex; align-items:center; gap:var(--s3); min-height:66px; padding:var(--s3) 0; border-bottom:1px solid var(--line); }
.jp-activity-row:last-child { border-bottom:0; }
.jp-activity-row .ha-ava { flex:none; }
.jp-activity-row .ha-ava img { width:32px; height:32px; }
.jp-activity-identity { display:flex; flex-direction:column; align-items:flex-start; gap:5px; min-width:0; flex:1; }
.jp-activity-identity .ha-player-name { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:var(--fs-3); }
.jp-activity-identity > span,.jp-activity-amount > span { color:var(--txt-mute); font-size:var(--fs-2); }
.jp-activity-amount { display:flex; flex-direction:column; align-items:flex-end; gap:5px; max-width:45%; min-width:0; }
.jp-activity-amount b { font:600 var(--fs-3) var(--num); overflow-wrap:anywhere; }
.jp-activity-row.is-win .jp-activity-amount b,.jp-activity-row.is-win .jp-activity-identity > span { color:var(--green); }
.jp-activity-empty { margin:0; padding:var(--s6) 0; color:var(--txt-mute); font-size:var(--fs-3); text-align:center; }
.jp-entry-heading { display:flex; align-items:center; justify-content:space-between; gap:var(--s3); margin-bottom:var(--s5); }
.jp-entry-heading h2 { margin:0; font:700 var(--fs-7) var(--display); }
.jp-watch-link,.jp-entry-link { display:none; align-items:center; min-height:44px; font-size:var(--fs-3); white-space:nowrap; }
.jp-amount-field label { display:flex; justify-content:space-between; gap:var(--s2); }
.jp-amount-field label small { font-weight:500; font-size:var(--fs-2); letter-spacing:0; text-transform:none; }
.jp-amount-field .ha-input > span { color:var(--txt-mute); font-size:var(--fs-3); }
#ha-rugpot .ha-pot-quick { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--s2); margin-top:var(--s3); }
#ha-pot-quick .ha-quick { min-width:0; padding:0 4px; }
#ha-rugpot #ha-pot-go { width:100%; white-space:normal; }
#ha-rugpot .ha-pot-odds { min-height:0; margin:var(--s4) 0 0; font-size:var(--fs-3); line-height:1.6; }
.jp-your-stats { display:grid; grid-template-columns:1fr 1fr; gap:var(--s4); padding-bottom:var(--s4); margin-bottom:var(--s5); border-bottom:1px solid var(--line); }
.jp-your-stats > div { display:flex; flex-direction:column; gap:var(--s2); min-width:0; }
.jp-your-stats span { color:var(--txt-mute); font-size:var(--fs-3); }
.jp-your-stats b { color:var(--txt); font:600 var(--fs-4) var(--num); overflow-wrap:anywhere; }
#ha-rugpot[data-has-entry="false"] .jp-your-stats { display:none; }
.jp-roster { margin-top:var(--s6); }
.jp-roster:has(.ha-pot-empty) { display:none; }
#ha-rugpot #ha-pot-lineup { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:var(--s3); padding:0; max-height:420px; overflow:auto; scrollbar-width:thin; }
#ha-rugpot .ha-pot-seat { min-width:0; padding:var(--s3); content-visibility:auto; contain-intrinsic-size:auto 68px; }
#ha-rugpot .ha-pot-seat .ha-ava img { width:36px; height:36px; }
#ha-rugpot .ha-pot-seat .ha-name { font-size:var(--fs-3); letter-spacing:0; }
#ha-rugpot .ha-pot-seat-share b { font-size:var(--fs-4); }
#ha-rugpot .ha-pot-seat-share small { font-size:var(--fs-2); }
#ha-rugpot .ha-pot-empty { grid-column:1/-1; padding:var(--s5); font-size:var(--fs-4); }
.jp-history-heading { margin-top:var(--s6); }
.jp-replay-notice { display:flex; align-items:center; justify-content:space-between; gap:var(--s4); padding:var(--s4); margin-bottom:var(--s5); border-radius:var(--r-sm); background:var(--face); box-shadow:var(--slab); }
.jp-replay-notice b { font-size:var(--fs-3); color:var(--gold); }
#ha-rugpot .ha-pot-history { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:var(--s4); overflow:visible; }
#ha-rugpot .jp-result { padding:var(--s5); display:flex; flex-direction:column; gap:var(--s4); min-width:0; }
.jp-result-stats,.jp-result-actions { display:flex; align-items:center; justify-content:space-between; gap:var(--s3); }
.jp-result-winner { display:flex; align-items:center; gap:var(--s3); min-width:0; }
.jp-result-winner img { border-radius:var(--r-xs); background:var(--bg); object-fit:contain; }
.jp-result-identity { min-width:0; display:flex; flex-direction:column; gap:var(--s2); }
.jp-result-winner b { font-size:var(--fs-5); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.jp-result-winner small,.jp-result-stats { font-size:var(--fs-2); color:var(--txt-mute); }
.jp-result-prize { display:flex; flex-wrap:wrap; align-items:center; gap:var(--s2); padding:var(--s4) 0; border-block:1px solid var(--line); color:var(--gold); overflow-wrap:anywhere; }
.jp-result-prize b { font:700 var(--fs-8) var(--num); }
.jp-result-prize span { font-size:var(--fs-3); }
.jp-result-stats b { color:var(--txt-dim); }
.jp-result-actions .ha-btn { min-height:44px; padding:10px; font-size:var(--fs-2); }
.jp-result-actions [data-watch] { flex:1; }
.jp-result time { font:var(--fs-2) var(--num); color:var(--txt-mute); }
#ha-rugpot button,#ha-rugpot a { touch-action:manipulation; }
#jp-entry-panel,#jp-arena { scroll-margin-top:90px; }
#jp-arena:focus-visible { outline:2px solid var(--green); outline-offset:-2px; }
@media(min-width:1600px) { #ha-rugpot .ha-pot-stage { grid-template-columns:minmax(0,1fr) 320px; } #ha-rugpot .ha-pot-wheelwrap { height:580px; } }
@media(min-width:821px) and (max-width:1190px) {
  #ha-rugpot .ha-pot-stage { grid-template-columns:minmax(0,1fr) 280px; gap:var(--s4); }
  .jp-hud { gap:var(--s3); }
  .jp-capacity { padding-left:var(--s3); }
}
@media(max-width:820px) {
  #ha-rugpot .jp-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); width:auto; flex:1; }
  #ha-rugpot .jp-tabs button { min-height:44px; }
  #ha-rugpot .jp-currencies { width:auto; }
  #ha-rugpot .ha-pot-stage { display:flex; flex-direction:column; gap:var(--s4); }
  #ha-rugpot .jp-game { width:100%; }
  .jp-sidebar { display:contents; }
  .jp-activity { width:100%; }
  .jp-activity-feed { flex:auto; height:264px; }
  #ha-rugpot .ha-pot-card { width:100%; background:var(--face); border-radius:var(--r-sm); box-shadow:var(--slab); }
  #ha-rugpot .ha-pot-panel { width:100%; }
  #ha-rugpot .ha-pot-panel { order:-1; }
  .jp-entry-heading { margin-bottom:var(--s4); }
  .jp-watch-link,.jp-entry-link { display:inline-flex; }
  #ha-rugpot .ha-pot-wheelwrap { height:480px; }
  .jp-arena-controls { flex:1 1 100%; flex-wrap:nowrap; }
  .jp-arena-controls .arena-expand { margin-left:0; }
  .jp-arena-controls .arena-expand span { display:none; }
  .jp-arena-controls .arena-expand { width:44px; flex:none; justify-content:center; padding:0; }
  #ha-rugpot .ha-pot-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 var(--s3); }
  .jp-entry-heading,.jp-your-stats,.jp-amount-field,.ha-pot-odds { grid-column:1/-1; }
  .jp-amount-field { display:contents; }
  .jp-amount-field label { grid-column:1/-1; }
  .jp-amount-field .ha-input { grid-column:1; }
  #ha-rugpot #ha-pot-go { grid-column:2; grid-row:3; min-height:50px; padding-inline:var(--s3); font-size:var(--fs-2); }
  #ha-rugpot[data-has-entry="true"] #ha-pot-go { grid-row:4; }
  #ha-rugpot .ha-pot-quick { grid-column:1/-1; }
}
@media(max-width:540px) {
  #ha-rugpot .jp-toolbar { flex-wrap:wrap; }
  #ha-rugpot .jp-tabs { flex-basis:100%; }
  #ha-rugpot .jp-currencies { width:100%; }
  .jp-hud { gap:var(--s3); flex-basis:100%; }
  .jp-pot { flex:1; }
  .jp-capacity { padding-left:var(--s3); }
  .jp-timer { max-width:100px; }
  #jp-capacity,#ha-rugpot #ha-pot-clock { font-size:16px; white-space:nowrap; }
  #ha-rugpot #ha-pot-total { font-size:20px; }
  .jp-pot-amount { gap:5px; }
  .jp-pot-amount img { width:18px; height:18px; }
  #ha-rugpot .ha-pot-panel { padding:var(--s4); }
  .jp-amount-field .ha-input { grid-column:1/-1; }
  #ha-rugpot #ha-pot-go,#ha-rugpot[data-has-entry="true"] #ha-pot-go { grid-column:1/-1; grid-row:auto; margin-top:var(--s3); }
  #ha-rugpot .ha-pot-wheelwrap { height:420px; }
  .jp-arena-top { padding:var(--s3); gap:var(--s3); }
  .jp-entry-link { display:none; }
  .jp-replay-notice { flex-wrap:wrap; }
  #ha-rugpot #ha-pot-lineup,#ha-rugpot .ha-pot-history { grid-template-columns:minmax(0,1fr); }
}
@media(prefers-reduced-motion:reduce) { #ha-rugpot *,#ha-rugpot *::before,#ha-rugpot *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

.jp-camera.ha-status-filters { position:absolute; z-index:3; top:12px; right:12px; display:flex; width:auto; max-width:calc(100% - 24px); }
.jp-camera.ha-status-filters button { flex-direction:row; min-height:36px; padding:0 10px; }
.jp-arena-top .jp-camera.ha-status-filters { position:static; margin-left:auto; max-width:100%; flex:none; }
.jp-arena-controls .jp-camera { order:-1; }
.jp-camera button[hidden] { display:none!important; }
.jp-camera-status { position:absolute; z-index:2; bottom:14px; left:50%; transform:translateX(-50%); width:max-content; max-width:calc(100% - 28px); padding:8px 12px; border:1px solid #d8ff4024; border-radius:5px; background:#080e17e8; color:#d5ddce; font:500 10px var(--body,system-ui); text-align:center; line-height:1.5; pointer-events:none; }
.jp-camera[hidden],.jp-camera-status[hidden] { display:none; }
@media(max-width:820px) { .jp-camera.ha-status-filters button { min-height:44px; } }
@media(max-width:540px) { .jp-arena-top .jp-camera.ha-status-filters { flex:1; min-width:0; margin-left:0; } .jp-camera.ha-status-filters button { flex:1; min-width:0; padding:0 6px; } .jp-camera-status { bottom:10px; font-size:10px; } }
@media(max-width:380px) { .jp-camera.ha-status-filters button { padding:0 4px; } }
.jp-intro { position:absolute; inset:0; z-index:4; pointer-events:none; overflow:hidden; color:#f5f9e8; background:linear-gradient(180deg,rgba(5,10,16,calc(var(--intro-veil,0)*.94)),transparent 25%,transparent 70%,rgba(5,10,16,calc(var(--intro-veil,0)*.94))); }
.jp-intro[hidden] { display:none; }
.jp-intro::before { content:''; position:absolute; inset:0; border-block:22px solid #050a10; opacity:var(--intro-veil,0); box-shadow:inset 0 0 90px #050a1099; }
.jp-intro-kicker,.jp-intro-caption { position:absolute; left:12px; right:12px; text-align:center; opacity:var(--intro-veil,0); font:500 10px var(--num); letter-spacing:.25em; }
.jp-intro-kicker { top:43px; color:#e8c07a; }
.jp-intro-caption { bottom:43px; color:#c9d5b5; font-size:9px; }
.jp-intro-dial { position:absolute; left:50%; top:50%; width:190px; height:190px; transform:translate(-50%,-50%); display:grid; place-items:center; border:1px solid #d8ff7045; border-radius:50%; box-shadow:0 0 35px #a5ed2210,inset 0 0 30px #a5ed2208; }
.jp-intro-dial::before,.jp-intro-dial::after { content:''; position:absolute; left:50%; width:1px; height:10px; background:#d8ff7099; }
.jp-intro-dial::before { top:-5px; } .jp-intro-dial::after { bottom:-5px; }
.jp-intro-dial b { font:800 94px/1 var(--display); color:#fffdea; text-shadow:0 3px 0 #304207,0 0 24px #071008aa; }
.jp-intro[data-phase="burst"] .jp-intro-dial { border-color:transparent; box-shadow:none; }
.jp-intro[data-phase="burst"] .jp-intro-dial::before,.jp-intro[data-phase="burst"] .jp-intro-dial::after { display:none; }
.jp-intro[data-phase="burst"] .jp-intro-dial b { font-size:clamp(38px,6vw,68px); letter-spacing:.07em; }
.jp-intro-announcement { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; white-space:nowrap; }
.jp-intro-active canvas { cursor:default !important; }
@media(max-width:540px) { .jp-intro-dial { width:158px; height:158px; } .jp-intro-dial b { font-size:78px; } .jp-intro::before { border-block-width:16px; } .jp-intro-kicker { top:32px; } .jp-intro-caption { bottom:32px; font-size:8px; letter-spacing:.17em; } }


/* Result controls occupy their own rows; the champion has a clear stage. */
.jp-victory { height:100%; display:grid; grid-template-rows:minmax(0,1fr) auto; background:#091217; color:var(--txt); }
.jp-victory-scene { min-height:0; position:relative; overflow:hidden; }
.jp-victory-gl,.jp-victory-gl canvas { position:absolute; inset:0; width:100%; height:100%; }
.jp-victory-heading { position:absolute; z-index:1; inset:0 0 auto; padding:14px 16px 35px; text-align:center; pointer-events:none; background:linear-gradient(#071116ed,transparent); }
.jp-victory-heading > span { font:700 8px var(--body); letter-spacing:.24em; color:var(--gold); }
.jp-victory-heading h2 { font:800 clamp(24px,3vw,40px)/1.15 var(--display); letter-spacing:.10em; margin:6px 0; color:#f5dcaa; }
.jp-victory-heading p { margin:0; font:700 10px var(--body); letter-spacing:.12em; overflow-wrap:anywhere; }
.jp-victory-fallback { position:absolute; width:150px; height:150px; object-fit:contain; bottom:8px; left:50%; transform:translateX(-50%); }
.jp-victory-details { position:relative; padding:14px 20px; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:12px 20px; border-top:1px solid #e8c07a30; background:linear-gradient(135deg,#152020,#0b141b); }
.jp-victory-payout > span,.jp-victory-stats dt { display:block; color:var(--txt-mute); font:600 10px var(--body); }
.jp-victory-payout strong { display:flex; align-items:center; justify-content:center; gap:8px; margin-top:5px; font:700 clamp(20px,2.2vw,30px) var(--num); color:#e1efad; flex-wrap:wrap; }
.jp-victory-payout { text-align:center; min-width:0; }
.jp-victory-payout small { font:600 10px var(--body); color:var(--txt-dim); }
.jp-victory-payout .ha-coin { width:22px; height:22px; }
.jp-victory-stats { display:flex; justify-content:space-around; gap:12px; margin:0; text-align:center; }
.jp-victory-stats dd { margin:5px 0 0; font:700 12px var(--num); color:#e5e9de; }
.jp-victory-actions { grid-column:1/-1; display:flex; flex-wrap:nowrap; align-items:center; justify-content:center; gap:8px; }
.jp-victory-actions .ha-btn { height:44px; min-height:44px; margin:0; padding:0 16px; font-size:10px; }
.jp-victory-actions svg,.jp-result-close svg { width:15px; height:15px; fill:currentColor; flex:none; }
.jp-result-close.ha-btn { width:44px; min-height:44px; padding:0; flex:none; }
@media(max-width:640px) {
  #ha-rugpot .ha-pot-wheelwrap:has(.jp-victory) { height:580px; }
  .jp-victory-details { grid-template-columns:1fr; padding:14px; gap:14px; }
  .jp-victory-heading h2 { font-size:26px; }
  .jp-victory-actions { flex-wrap:nowrap; }
  .jp-victory-actions .ha-btn { padding:0 10px; font-size:9px; }
  .jp-victory-stats dt { font-size:9px; }
  .jp-arena-top:has(.jp-result-close) .jp-entry-link { display:none; }
}
@media(max-height:500px) and (orientation:landscape) {
  .arena-fullscreen .jp-victory { grid-template-columns:minmax(0,1fr) minmax(220px,32%); grid-template-rows:1fr; }
  .arena-fullscreen .jp-victory-details { display:flex; flex-direction:column; justify-content:center; padding:10px; border-top:0; border-left:1px solid #e8c07a30; }
  .arena-fullscreen .jp-victory-stats { width:100%; }
  .arena-fullscreen .jp-victory-actions { flex-wrap:nowrap; }
  .arena-fullscreen .jp-victory-heading h2 { font-size:24px; }
}

@media(max-width:380px) {
  .jp-arena-top:has(.jp-result-close) .arena-expand { width:44px; padding:0; justify-content:center; }
  .jp-arena-top:has(.jp-result-close) .arena-expand span { display:none; }
}
