/* HARUNA V5.52 - CINEMATIC UI STANDARD: same impact, metallic gradients, glow & slash as YOU WIN! */
/* Apply .harunaFlashTextV552 (and .lose/.record modifiers) to any NEW important game overlay text. */
.harunaFlashTextV552{display:block;font:1000 italic clamp(32px,8vw,128px)/1.05 Impact,'Arial Black','Yu Gothic UI',sans-serif;letter-spacing:-.035em;transform:skewX(-8deg);background:linear-gradient(180deg,#faffff 5%,#bbf7ff 18%,#25d5fa 36%,#0879ff 54%,#112a9a 72%,#a9f5ff 83%,#1558cc 96%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:2px #081e61;filter:drop-shadow(2px 3px 0 #00071e) drop-shadow(0 0 13px #008cfc) drop-shadow(0 0 24px #00baff)}
.harunaFlashTextV552.lose{background-image:linear-gradient(180deg,#fff7f5 4%,#ffc9c8 17%,#ff6c61 36%,#f71e34 53%,#960017 69%,#ff9296 81%,#d10a20 95%);-webkit-text-stroke-color:#570014;filter:drop-shadow(2px 3px 0 #170007) drop-shadow(0 0 14px #fa1332) drop-shadow(0 0 28px #f3264b)}
@keyframes harunaFlashInV552{from{opacity:0;transform:skewX(-9deg) translateX(-12vw) scale(1.25)}65%{opacity:1}to{opacity:1;transform:skewX(-8deg) translateX(0) scale(1)}}
/* Match original V4.93: vivid moving type on transparent gameplay, not full-screen opaque art. */
.harunaBattleScoreV552{display:none;position:absolute;inset:0;z-index:8;pointer-events:none;overflow:hidden;align-items:center;justify-content:center;flex-direction:column;gap:min(1.8vh,12px);padding:clamp(10px,2vh,26px) clamp(9px,2.5vw,48px);color:white;text-align:center;background:linear-gradient(180deg,rgba(1,8,25,.20),rgba(3,9,26,.55) 40%,rgba(1,8,25,.16));}
.harunaBattleScoreV552.show{display:flex;animation:bsAppearV552 .26s ease-out both}
@keyframes bsAppearV552{from{opacity:0}to{opacity:1}}
.harunaBattleScoreV552 .bsTop{font:1000 italic clamp(12px,2.6vw,35px)/1.1 Impact,'Arial Black',sans-serif;letter-spacing:.08em;text-shadow:0 0 18px #01affc}
.harunaBattleScoreV552 .bsTop span{display:block;font:900 clamp(10px,1.1vw,16px)/1.3 Arial,sans-serif;letter-spacing:.25em;color:#83f0ff;margin-top:4px}
.harunaBattleScoreV552 .bsCourse{font:900 clamp(8px,1.2vw,16px)/1.2 Consolas,monospace;letter-spacing:.1em;color:#b0ddff}
.harunaBattleScoreV552 .bsVs{width:min(98%,1480px);display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:clamp(3px,1.1vw,20px);}
.harunaBattleScoreV552 .bsCenter{font:1000 italic clamp(24px,5vw,72px)/1 Impact,sans-serif;color:#ffe9a1;-webkit-text-stroke:1px #5a2a00;filter:drop-shadow(0 0 13px #ffac14);animation:bsVsPulseV552 1s infinite alternate}
@keyframes bsVsPulseV552{to{transform:scale(1.14);filter:drop-shadow(0 0 24px #ffcd23)}}
.harunaBattleScoreV552 .bsDriver{min-width:0;position:relative;padding:clamp(9px,1.6vw,24px) clamp(5px,.8vw,12px);border-top:2px solid #50d7ff;border-bottom:2px solid #50d7ff;background:rgba(4,19,43,.75);box-shadow:inset 0 0 25px rgba(0,166,255,.12),0 0 20px rgba(0,115,250,.2);transform:skewX(-2deg)}
.harunaBattleScoreV552 .bsName{font:1000 italic clamp(14px,3.3vw,54px)/1.15 Impact,'Arial Black',sans-serif;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-shadow:0 0 10px #00c4ff,2px 2px #000;letter-spacing:.015em;margin-bottom:min(1.4vh,12px)}
.harunaBattleScoreV552 .bsGrid{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:clamp(3px,.5vw,12px);align-items:center;text-align:center}
.harunaBattleScoreV552 .bsGrid small{font:900 clamp(8px,1.15vw,15px)/1.2 Consolas,monospace;color:#a6d5ee;letter-spacing:.03em}
.harunaBattleScoreV552 .bsGrid strong{font:900 clamp(10px,2.2vw,31px)/1.15 Consolas,monospace;white-space:nowrap;letter-spacing:-.08em;color:#fff;text-shadow:0 0 9px rgba(67,235,255,.7)}
.harunaBattleScoreV552 .bsGrid .bsPen{color:#ffe16a;text-shadow:0 0 10px #ffb627}
.harunaBattleScoreV552 .bsGrid .bsTotal{color:#82f7ff;font-size:clamp(11px,2.4vw,34px)}
.harunaBattleScoreV552 .bsSettled .bsTotal{animation:bsTotalPopV552 .55s ease-out both}
@keyframes bsTotalPopV552{40%{transform:scale(1.16);filter:drop-shadow(0 0 14px #00baff)}to{transform:scale(1);filter:none}}
.harunaBattleScoreV552 .bsFly{position:absolute;right:16%;top:52%;font:900 clamp(10px,1.5vw,20px) Consolas,monospace;color:#ffe553;opacity:0}
.harunaBattleScoreV552 .bsFly.on{animation:bsFlyV552 .27s ease-out both}
@keyframes bsFlyV552{0%{opacity:.95;transform:translateX(-4vw) scale(1.3)}100%{opacity:0;transform:translateX(4vw) scale(.6)}}
.harunaBattleScoreV552 .bsSlash{height:4px;width:80%;background:linear-gradient(90deg,transparent,#03aeff 30%,#fff 52%,#0268fe 75%,transparent);box-shadow:0 0 10px #00a4fa,0 0 35px #0468ff;transform:scaleX(.15);opacity:.55;transition:transform .4s ease,opacity .4s ease}
.harunaBattleScoreV552.bsReveal .bsSlash{transform:scaleX(1);opacity:1}
.harunaBattleScoreV552 .bsVerdict{min-height:clamp(55px,10vw,170px);font-size:clamp(48px,11vw,170px);opacity:0;visibility:hidden}
.harunaBattleScoreV552.bsReveal .bsVerdict{opacity:1;visibility:visible;animation:harunaVerdictInV494 .55s cubic-bezier(.14,1.2,.2,1) both}
.harunaBattleScoreV552.bsReveal.lose .bsVerdict{background-image:linear-gradient(180deg,#fff7f5 4%,#ffc9c8 17%,#ff6c61 36%,#f71e34 53%,#960017 69%,#ff9296 81%,#d10a20 95%);-webkit-text-stroke-color:#570014;filter:drop-shadow(2px 3px 0 #170007) drop-shadow(0 0 14px #fa1332) drop-shadow(0 0 28px #f3264b)}
.harunaBattleScoreV552 .bsFooter{font:900 clamp(9px,1.25vw,17px)/1.2 Consolas,monospace;letter-spacing:.13em;color:#b9e5ff;text-shadow:0 0 10px #1287ff}
/* Flamboyant *standard* challenger cards for outgoing and incoming routes. Preserve button IDs and event handlers. */
#challengeOverlay .challengePanel,#challenge25dConfirmOverlay .challenge25dPanel{width:min(90vw,780px);max-width:780px;position:relative;overflow:hidden;padding:clamp(14px,2.8vw,33px);border:2px solid #47d5ff;border-radius:8px;background:linear-gradient(148deg,rgba(1,10,30,.98),rgba(5,34,61,.97) 45%,rgba(2,8,28,.99));box-shadow:0 0 22px rgba(0,159,255,.7),inset 0 0 45px rgba(5,156,255,.18),0 24px 100px #000a;text-align:center;animation:bsCardInV552 .5s cubic-bezier(.12,1.1,.2,1) both}
@keyframes bsCardInV552{from{opacity:0;transform:translateX(-7vw) scale(1.1) skewX(-2deg)}to{opacity:1;transform:none}}
#challengeOverlay .challengePanel:before,#challenge25dConfirmOverlay .challenge25dPanel:before{content:'';display:block;position:absolute;top:0;left:-20%;width:140%;height:3px;background:linear-gradient(90deg,transparent,#fff,#4adfff,transparent);box-shadow:0 0 30px #05bdff;transform:skewX(-15deg)}
.challengeVsCardV552{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:clamp(5px,1vw,15px);margin:clamp(9px,2vh,22px) 0;padding:clamp(7px,2vh,15px) 0;border-top:1px solid #257cab;border-bottom:1px solid #257cab}
.challengeVsCardV552>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:1000 italic clamp(17px,3.8vw,43px)/1.15 Impact,'Arial Black',sans-serif;color:#fff;text-shadow:0 0 13px #00baff,2px 3px #000;transform:skewX(-6deg)}
.challengeVsCardV552>b{font:1000 italic clamp(28px,5.3vw,65px)/1 Impact,sans-serif;color:#ffd53a;-webkit-text-stroke:1px #5c3400;text-shadow:0 0 20px #ffbc36;animation:bsVsPulseV552 .8s infinite alternate}
#challengeOverlay .challengeWarn,#challenge25dConfirmOverlay .challenge25dBadge{font:1000 clamp(12px,1.9vw,22px)/1.3 Impact,Arial,sans-serif;color:#84e5ff;letter-spacing:.14em;text-shadow:0 0 12px #09aaff}
#challengeOverlay .challengeMeta,#challenge25dConfirmOverlay .challenge25dMessage{color:#e8f8ff;font-weight:800;line-height:1.5}
#challengeOverlay .challengeButtons button,#challenge25dConfirmOverlay .challenge25dButtons button{font-weight:1000;letter-spacing:.03em;min-height:44px}
@media(max-width:720px){.harunaBattleScoreV552{gap:2vh;padding:7px}.harunaBattleScoreV552 .bsVs{grid-template-columns:1fr;gap:4px}.harunaBattleScoreV552 .bsCenter{line-height:.55;font-size:28px}.harunaBattleScoreV552 .bsDriver{padding:8px}.harunaBattleScoreV552 .bsName{font-size:clamp(17px,6vw,34px);margin-bottom:4px}.harunaBattleScoreV552 .bsGrid small{font-size:clamp(8px,2vw,12px)}.harunaBattleScoreV552 .bsGrid strong{font-size:clamp(12px,3.8vw,22px)}.harunaBattleScoreV552 .bsGrid .bsTotal{font-size:clamp(13px,4vw,25px)}.harunaBattleScoreV552 .bsVerdict{min-height:70px;font-size:clamp(55px,17vw,130px)}.harunaBattleScoreV552 .bsTop{font-size:20px}.harunaBattleScoreV552 .bsFooter{font-size:11px;letter-spacing:.02em}.challengeVsCardV552>span{font-size:clamp(17px,4.5vw,30px)}}
@media(prefers-reduced-motion:reduce){.harunaBattleScoreV552.show,.harunaBattleScoreV552.bsReveal .bsVerdict,.challengeVsCardV552>b,#challengeOverlay .challengePanel,#challenge25dConfirmOverlay .challenge25dPanel{animation:none}}

/* V5.52 preview QA: avoid collision of moving penalty numerals with time columns. */
.harunaBattleScoreV552 .bsGrid strong{font-size:clamp(11px,1.55vw,24px);letter-spacing:-.06em}
.harunaBattleScoreV552 .bsGrid .bsTotal{font-size:clamp(12px,1.75vw,28px)}
.harunaBattleScoreV552 .bsFly{left:47%;right:auto;top:91%;width:21%;height:3px;font-size:0;color:transparent;background:linear-gradient(90deg,transparent,#ffe249,#fcfcff,transparent);box-shadow:0 0 10px #ffcd25,0 0 14px #02b7fb;border-radius:99px}
.harunaBattleScoreV552 .bsFly.on{animation:bsFlyStripeV552 .27s ease-out both}
@keyframes bsFlyStripeV552{0%{opacity:0;transform:translateX(-55%) scaleX(.4)}30%{opacity:1}100%{opacity:0;transform:translateX(48%) scaleX(1)}}
@media(max-width:720px){.harunaBattleScoreV552 .bsGrid strong{font-size:clamp(11px,3.5vw,19px)}.harunaBattleScoreV552 .bsGrid .bsTotal{font-size:clamp(12px,3.9vw,21px)}}
