/* The encounter is one focused scene. Results and status never compete for the same space. */
.pk-gacha-empty { display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px 14px;margin:8px 0;border:1px solid #d3c47b88;border-radius:14px;background:#d4b56614; }
.pk-gacha-empty>div { flex:1 1 180px;color:#e7d6a6;font:600 13px/1.4 var(--ui-font); }
.pk-gacha-recover { width:100%;margin-bottom:8px; }
.pk-gacha-summary { display:none;flex-shrink:0;text-align:center;width:100%; }
.pk-gacha-summary h2 { margin:5px 0 10px;font:700 clamp(22px,5vw,34px)/1.1 var(--ui-display);color:#f8e7b1; }
.pk-gacha-eyebrow { display:block;color:#a9d6bf;letter-spacing:.12em;font:700 10px/1.4 var(--ui-font); }
.pk-gacha-summary-chips { display:flex;justify-content:center;flex-wrap:wrap;gap:6px; }
.pk-gacha-summary-chips>span { display:inline-block;padding:5px 10px;border:1px solid #accbb433;border-radius:20px;background:#153b41;font:600 11px/1.2 var(--ui-font);color:#d9e8d2; }
.pk-gacha-storage { margin:8px 0 0;color:#9dbfb6;font:400 10px/1.4 var(--ui-font); }
.pk-gacha-wait { display:none;width:min(480px,100%);text-align:center;margin:auto;padding:24px;color:#c8ddd6; }
.pk-gacha-wait h2 { font:700 clamp(25px,6vw,34px)/1.2 var(--ui-display);color:#f4e5ae; }
.pk-gacha-wait p { font:400 14px/1.65 var(--ui-font);max-width:38ch;margin:14px auto 22px; }
.pk-confirm-spinner { width:54px;height:54px;margin:0 auto 25px;border:3px solid #91c3ad44;border-top-color:#f2d886;border-radius:50%;animation:gacha-confirm 1.8s linear infinite; }
#pull-fx[data-state=confirming] .pk-gacha-wait,#pull-fx[data-state=error] .pk-gacha-wait { display:block; }
#pull-fx[data-state=confirming] #pull-results,#pull-fx[data-state=error] #pull-results,#pull-fx[data-state=revealing] #pull-results { display:none!important; }
#pull-fx:not([data-state=results]) .pk-collection-pager { display:none!important; }
#pull-fx[data-state=results] .pk-gacha-summary { display:block; }
#pull-fx[data-state=results] .ui-pull-scroll { justify-content:safe center;gap:12px; }
#pull-fx[data-state=results] { gap:10px;padding-block:16px max(12px,var(--ui-safe-bottom)); }
#pull-results.pk-single-result { width:min(380px,100%);grid-template-columns:minmax(0,1fr)!important;align-self:center; }
#pull-results .pcard { text-align:center; }
#pull-results .pk-result-quality { font:600 10px/1.4 var(--ui-font);color:var(--rc); }
#pull-results .pk-result-species { margin-top:5px;font:400 10px/1.4 var(--ui-font);color:#b9d0c8; }
.pk-result-actions { display:grid;grid-template-columns:minmax(0,1fr);gap:7px;margin-top:12px; }
.pk-result-actions .btn { white-space:normal;font:700 11px/1.3 var(--ui-font);min-height:36px;padding:8px; }
.pk-single-result .pcard { padding:20px 24px; }
.pk-single-result .pcard canvas { max-width:220px; }
.pk-single-result .pk-result-actions { grid-template-columns:1fr 1fr; }
.machine-encounter .encounter-heading>div:first-child { min-width:0; }
.machine-encounter .encounter-counter { margin-bottom:0; }
body[data-flashes=off] .machine-sparks,body[data-flashes=off] .encounter-flare,body[data-flashes=off] .encounter-wave,body[data-flashes=off] .encounter-wave-second { display:none!important; }
body[data-flashes=off] .gacha-machine .machine-marquee i { animation:none!important; }
body[data-motion=reduced] .gacha-machine *,body[data-motion=reduced] .encounter-scene * { animation:none!important;transition:none!important; }
body[data-motion=reduced] .pk-confirm-spinner { animation:none; }
@keyframes gacha-confirm { to { transform:rotate(360deg); } }
@media(max-width:500px) {
 #pull-results .pcard { padding:12px 8px; }#pull-results .pcard b { font-size:21px; }
 .pk-single-result .pcard { padding:16px; }.pk-single-result .pcard canvas { max-width:190px; }
}
@media(max-height:700px) {
 #pull-fx[data-state=results] { padding-block:10px max(8px,var(--ui-safe-bottom));gap:7px; }
 .pk-gacha-summary h2 { font-size:25px;margin-block:4px 7px; }.pk-gacha-summary-chips>span { padding:4px 8px;font-size:10px; }
 #pull-results .pcard canvas { max-width:138px; }.pk-result-actions { gap:5px;margin-top:8px; }.pk-result-actions .btn { min-height:32px;font-size:10px;padding:6px; }
 #pull-results .pcard b { font-size:21px; }#pull-results .pcard .tag { margin-top:5px;padding-top:5px; }
}
@media(max-height:520px) and (min-width:560px) {
 #pull-fx { padding:8px 16px!important;gap:6px!important; }
 #pull-fx[data-state=results] { display:grid;grid-template-columns:minmax(160px,.8fr) minmax(0,2.2fr);grid-template-rows:minmax(0,1fr) auto;align-items:center;column-gap:16px!important; }
 #pull-fx[data-state=results] .pk-gacha-summary { grid-row:1;grid-column:1;align-self:center; }
 #pull-fx[data-state=results] .ui-pull-scroll { grid-row:1;grid-column:2;width:100%;height:100%;padding:0 4px; }
 #pull-fx[data-state=results] #pull-close { grid-row:2;grid-column:1/-1;min-height:38px;font-size:17px;justify-self:center; }
 .pk-gacha-summary h2 { font-size:23px; }.pk-gacha-summary-chips { gap:5px; }.pk-gacha-storage { font-size:9px; }
 #pull-results .pcard { padding:8px; }#pull-results .pcard canvas { max-width:104px;margin:0 auto; }#pull-results .pcard b { font-size:18px; }
 #pull-results .pk-result-quality { font-size:9px; }.pk-result-actions { margin-top:5px;gap:4px; }.pk-result-actions .btn { min-height:29px;font-size:9px;padding:5px; }
 #pull-results .pk-result-species { display:none; }#pull-results .pcard .tag { padding-top:4px;margin-top:4px;font-size:9px; }
 #pull-results.pk-single-result { width:min(470px,100%); }#pull-results.pk-single-result .pcard { display:grid;grid-template-columns:minmax(100px,.85fr) minmax(0,1.15fr);gap:5px 12px;align-items:center;padding:14px; }
 #pull-results.pk-single-result .pcard canvas { grid-column:1;grid-row:1/5;max-width:180px;width:100%; }
 #pull-results.pk-single-result .pk-result-quality,#pull-results.pk-single-result .pcard b,#pull-results.pk-single-result .pcard .tag,#pull-results.pk-single-result .pk-result-actions { grid-column:2; }
 #pull-results.pk-single-result .pk-result-actions { grid-template-columns:1fr; }
 .machine-encounter .encounter-heading { gap:8px; }
 .machine-encounter .encounter-eyebrow { font-size:8px; }.machine-encounter .encounter-counter { font-size:10px; }
 .pk-gacha-wait { padding:8px 20px; }.pk-confirm-spinner { width:34px;height:34px;margin-bottom:12px; }.pk-gacha-wait h2 { font-size:26px; }.pk-gacha-wait p { margin:10px auto 15px;font-size:12px; }
}
@media(prefers-reduced-motion:reduce) { .pk-confirm-spinner { animation:none; } }
/* Default closed-rate menu stays inside compact portrait viewports. */
#scr-gacha .pk-featured-mon figcaption { white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%; }
@media(max-width:700px) and (min-height:701px) {
 #scr-gacha .ui-scroll { gap:7px; }
 #scr-gacha .pk-pull-choice { padding:10px 12px;gap:6px; }
 #scr-gacha .pk-pull-choice p { font-size:11px;line-height:1.3; }
 #scr-gacha .pk-pull-choice h3 { font-size:21px; }
 #scr-gacha .pk-guarantee { padding-top:5px; }
 #scr-gacha #gacha-pity { margin:4px 0;font-size:9px;line-height:1.35; }
 #scr-gacha .pk-rates>summary { min-height:34px;padding:8px 12px; }
 #scr-gacha .pk-gacha-wallet { min-height:34px;padding:6px 12px; }
 #scr-gacha .banner { min-height:140px;padding:12px; }
}
/* Keep ticket balances readable in the laboratory ribbon. */
#scr-gacha .pk-gacha-wallet { display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap; }
#scr-gacha .pk-gacha-wallet #gacha-tickets { flex:0 0 auto;margin:0; }
#scr-gacha .pk-gacha-recover { flex:1 0 100%;order:3;margin:4px 0 0; }
#scr-gacha .pk-gacha-layout:has(.pk-gacha-empty:not([hidden])) .pk-pull-options { display:none; }
@media(max-width:700px),(max-height:520px) {
 #scr-gacha .pk-gacha-wallet { gap:6px;flex-wrap:wrap; }
}
@media(max-height:520px) and (min-width:560px) {
 #scr-gacha .pk-gacha-empty { grid-column:2;grid-row:2;align-self:center;margin:0;padding:8px;gap:6px; }
 #scr-gacha .pk-gacha-empty>div { font-size:11px;flex-basis:100%; }
 #scr-gacha .pk-gacha-empty .btn { min-height:34px;padding:7px;font-size:11px;flex:1; }
}
/* A shared ribbon still gives the pace selector a full touch target. */
@media(max-width:700px) { #scr-gacha .pk-gacha-wallet { padding-block:2px; } }
@media(max-height:520px) and (min-width:560px) {
 #scr-gacha .pk-gacha-layout { grid-template-rows:44px minmax(0,1fr) 28px; }
 #scr-gacha .pk-gacha-wallet { min-height:44px;padding:0 6px; }
}
body[data-flashes=off] .machine-pokemon { filter:none!important; }
body[data-flashes=off] .machine-halo { opacity:.2!important; }
/* Short phones keep three ticket choices in one clear row, with full touch targets. */
@media(max-height:700px) and (orientation:portrait) {
 #scr-gacha .ui-scroll { padding-block:8px;gap:6px; }
 #scr-gacha .pk-gacha-layout,#scr-gacha .pk-gacha-layout>div:first-child { gap:6px; }
 #scr-gacha .banner { height:64px;min-height:64px;max-height:64px;padding:6px 10px;gap:8px; }
 #scr-gacha .pk-encounter-art { height:46px;max-height:46px; }
 #scr-gacha .pk-featured-mon { padding:2px 0; }
 #scr-gacha .pk-featured-mon canvas { max-height:40px; }
 #scr-gacha .pk-featured-mon figcaption,#scr-gacha .pk-region-kicker { display:none; }
 #scr-gacha #banner-title { font-size:20px;margin:0 0 3px; }
 #scr-gacha #gacha-owned { font-size:10px;margin:0!important;padding:0; }
 #scr-gacha .pk-gacha-wallet { padding:2px 7px;min-height:48px; }
 #scr-gacha .pk-pull-options { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px; }
 #scr-gacha .pk-pull-options .pk-pull-choice,#scr-gacha .pk-ten-currencies { display:contents; }
 #scr-gacha .pk-pull-choice>div:not(.pk-ten-currencies) { display:none; }
 #scr-gacha .pk-pull-choice .btn { min-height:44px;padding:7px 4px;font-size:12px;gap:4px;white-space:nowrap; }
 #scr-gacha .pk-guarantee { padding:4px 8px; }
 #scr-gacha .pk-guarantee-title { font-size:11px; }
 #scr-gacha .pk-progress { height:4px;margin:5px 0 0; }
 #scr-gacha .pk-rates>summary { min-height:44px;padding:10px 12px;font-size:11px; }
 #scr-gacha .pk-rates>summary span { display:none; }
 #scr-gacha .pk-gacha-empty { margin:0;padding:10px; }
 #scr-gacha .pk-gacha-empty .btn { min-height:44px; }
}
/* Low landscape spends height on touch targets, without extra vertical gutters. */
@media(max-height:520px) and (min-width:560px) {
 #scr-gacha .ui-scroll { padding-block:0; }
 #scr-gacha .pk-gacha-layout { row-gap:0; }
 #scr-gacha .pk-pull-options { gap:2px; }
 #scr-gacha .pk-pull-choice { padding-block:0; }
 #scr-gacha .pk-pull-choice .btn { min-height:44px; }
 #scr-gacha .banner { padding-block:6px; }
}
