/* Streak heat in both solo modes is presentation only: wins still have independent 50/50 odds. */
.coin-wrap:has(#coin)>.mint-render{inset:-45%;width:190%;height:190%}
.streak-mode .coin-wrap[data-coin-heat]:not([data-coin-heat="none"])>.mint-render{display:block}
[data-heat="spark"]{--heat:#ffca7a;--heat-bright:#ffe5ab;--heat-rgb:255,180,83;--heat-base:#553922}
[data-heat="fire"]{--heat:#ffab68;--heat-bright:#ffdb8f;--heat-rgb:255,133,64;--heat-base:#62321e}
[data-heat="blaze"]{--heat:#ffd469;--heat-bright:#fff3bd;--heat-rgb:255,193,71;--heat-base:#655024}
[data-heat="legend"]{--heat:#ffe49b;--heat-bright:#fffbe2;--heat-rgb:255,220,129;--heat-base:#766136}
.heat-score{display:inline-flex!important;align-items:center;justify-content:center;gap:.18em;position:relative;line-height:1;font:inherit;color:var(--heat);vertical-align:middle;isolation:isolate}
.heat-number{font:inherit;line-height:inherit;color:var(--heat-bright);text-shadow:0 0 22px rgba(var(--heat-rgb),.3)}
.streak-flame{display:inline-block;flex:none;width:.7em;height:.9em;overflow:visible;filter:drop-shadow(0 0 7px rgba(var(--heat-rgb),.28));transform-origin:50% 85%}
.flame-outer{fill:var(--heat)}.flame-inner{fill:#fff2c2}
.heat-score:before{content:'';position:absolute;inset:-12px -20px;background:radial-gradient(ellipse,rgba(var(--heat-rgb),.12),transparent 68%);z-index:-1;pointer-events:none}
.streak-mode #game-title .heat-score{font-weight:500}.streak-mode #game-title .heat-number{font-size:1.15em}.heat-title-label{font:inherit;color:var(--heat-bright);margin-left:.15em}
#ranked-heat-label{display:none}.streak-mode[data-streak-heat]:not([data-streak-heat="none"]) #ranked-heat-label{display:inline-flex;align-items:center;gap:6px;font-size:9px;letter-spacing:.7px;color:var(--heat-bright);padding:5px 9px;border:1px solid rgba(var(--heat-rgb),.3);border-radius:20px;background:rgba(var(--heat-rgb),.06)}
#ranked-heat-label .streak-flame{width:11px;height:14px}.run-header{gap:10px}
.streak-mode .flip-history{gap:6px;isolation:isolate}.flip-slot{position:relative;isolation:isolate}.flip-mark{position:relative;z-index:2}.flip-slot.streak-link{border-color:rgba(var(--heat-rgb),.48);color:var(--heat-bright);background:linear-gradient(125deg,var(--heat-base),rgba(var(--heat-rgb),.12) 55%,var(--heat-base));box-shadow:inset 0 1px rgba(var(--heat-rgb),.14);overflow:visible}
.flip-slot.streak-link:not(.chain-start):before{content:'';position:absolute;left:-8px;top:calc(50% - 2px);width:9px;height:4px;background:var(--heat);box-shadow:0 0 9px rgba(var(--heat-rgb),.5);z-index:-1}
.flip-slot.streak-live{box-shadow:inset 0 1px rgba(var(--heat-rgb),.2),0 0 14px rgba(var(--heat-rgb),.12)}
.flip-slot.streak-ember{filter:saturate(.55);opacity:.72}
.slot-ember{position:absolute;width:3px;height:6px;border-radius:70% 30% 60% 40%;background:var(--heat-bright);right:20%;top:-3px;transform:rotate(18deg);opacity:.8;box-shadow:0 0 7px var(--heat)}
.streak-ember .slot-ember{display:none}.chain-end.streak-live:after{content:'';position:absolute;inset:-4px;border:1px solid rgba(var(--heat-rgb),.22);border-radius:8px;pointer-events:none}
.streak-landing{animation:streak-arrival 640ms cubic-bezier(.2,.9,.35,1) both}
.streak-landing .streak-flame{animation:streak-ignite 800ms ease-out both}
.streak-landing:after{content:'';position:absolute;width:3px;height:3px;border-radius:50%;background:var(--heat-bright);left:50%;top:30%;box-shadow:-15px -8px var(--heat),16px -4px var(--heat),-7px -20px var(--heat-bright),8px -25px var(--heat);pointer-events:none;animation:streak-sparks 800ms ease-out both}
.stats-strip #current-streak .heat-score{font-size:inherit;margin:0}.stats-strip #current-streak .heat-number{font:inherit;color:var(--heat-bright)}
.mobile-detail-stats .heat-score{font-size:inherit}.mobile-history-grid .streak-link:before{display:none}.streak-preview-button{margin:14px 0;min-height:44px}
@keyframes streak-arrival{0%{transform:scale(.82)}42%{transform:scale(1.13)}100%{transform:scale(1)}}
@keyframes streak-ignite{0%{transform:scale(.65) rotate(-10deg)}40%{transform:scale(1.18) rotate(5deg)}100%{transform:scale(1) rotate(0)}}
@keyframes streak-sparks{0%{opacity:0;transform:translateY(3px) scale(.6)}25%{opacity:1}100%{opacity:0;transform:translateY(-30px) scale(1.3)}}
@media(max-width:700px),(max-width:950px) and (max-height:500px){
  #mobile-streak .heat-score{font-size:inherit;gap:.16em}#mobile-streak .heat-number{font:inherit}#mobile-streak .streak-flame{width:.65em;height:.85em}
  .streak-mode #mobile-streak-label{color:var(--heat-bright,#a9b798)}
  body.play-page.streak-mode .flip-history{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:5px;margin:0 0 9px}
  body.play-page.streak-mode .flip-slot{height:27px;font-size:13px;border-radius:6px;min-width:0}
  body.play-page.streak-mode .flip-slot.streak-link:not(.chain-start):before{left:-7px;width:8px}
  body.play-page.streak-mode .run-section{overflow:visible}
  body.play-page.streak-mode .run-header{display:none}
}
@media(prefers-reduced-motion:reduce){.streak-landing,.streak-landing .streak-flame,.streak-landing:after{animation:none!important}.streak-landing:after{display:none}}
@media(min-width:701px) and (max-width:950px) and (max-height:500px){
  body.play-page.streak-mode .game-card{grid-template-rows:52px minmax(0,1fr) 72px}
  body.play-page.streak-mode .game-controls .choice{min-height:44px;padding:8px 12px}
  body.play-page.streak-mode .game-controls>.flip-button{height:48px;min-height:48px;margin-top:8px}
  body.play-page.streak-mode .game-controls .result-message{min-height:26px;font-size:10px;padding:3px}
  body.play-page.streak-mode .flip-history{margin-bottom:6px}
  body.play-page.streak-mode .flip-slot{height:22px;font-size:11px}
}
@media(max-width:700px) and (max-height:700px){
  body.play-page.streak-mode .workspace{min-height:0}
  body.play-page.streak-mode .coin-stage{min-height:88px}
  body.play-page.streak-mode .coin-wrap{width:min(128px,90cqh);height:min(128px,90cqh)}
  body.play-page.streak-mode .game-controls .choice{min-height:46px;padding:8px 12px}
  body.play-page.streak-mode .game-controls>.flip-button{height:52px;min-height:52px;margin-top:8px}
  body.play-page.streak-mode .game-controls .result-message{font-size:10px;min-height:30px;padding:4px 3px}
  body.play-page.streak-mode .mobile-game-summary{padding-top:2px}
  body.play-page.streak-mode #mobile-streak{font-size:30px}
}
/* The active chain breathes gently; completed chains remain subdued. */
@media(prefers-reduced-motion:no-preference){
  .streak-live .slot-ember{animation:streak-ember-flicker 1.6s ease-in-out infinite alternate}
}
@keyframes streak-ember-flicker{from{opacity:.45;transform:translateY(1px) rotate(12deg)}to{opacity:1;transform:translateY(-3px) rotate(24deg)}}
#flip-history .streak-live{box-shadow:inset 0 1px rgba(var(--heat-rgb),.25),0 0 16px rgba(var(--heat-rgb),.22)}
#flips-counter .heat-score{font-size:inherit;vertical-align:baseline}
.run-header #ranked-heat-label{margin-left:auto;margin-right:12px}
