/* v2.1.0: visual hierarchy shared across title, play and result. */
.gr-title-panel .gr-image-title{height:clamp(120px,18vh,190px)}
.gr-title-logo{width:min(610px,72vw)}
.gr-bg{background-image:radial-gradient(ellipse at center,#09051a88,transparent 65%),linear-gradient(#04041666,#08042333 60%,#06051c99),var(--gr-bg-image);filter:saturate(.95) brightness(.8)}
.gr-game.gr-chorus .gr-bg{filter:saturate(1.2) brightness(1);transform:scale(1.035)}
.gr-bg span{opacity:.35}.gr-bg:after{opacity:.3}.gr-energy-ring{width:min(58vw,620px);opacity:.18}.gr-game.gr-chorus .gr-energy-ring{opacity:.65;animation-duration:4s;box-shadow:0 0 32px #f3b8}
.gr-target-ring{box-shadow:0 0 16px #58edff99!important}.gr-game.gr-chorus .gr-target-ring{box-shadow:0 0 26px #ed63ffcc!important}
.gr-title-panel .gr-song-card.is-selected{box-shadow:0 0 3px #fff,0 0 20px #58e5ff88,0 12px 36px #050416bb!important}
.gr-hud{background:linear-gradient(#05081ddd,#05081d88,transparent);padding-bottom:24px}
.gr-stats{gap:6px}.gr-stats>div{padding:7px 14px;min-width:175px;border:1px solid #58e5ff66;border-radius:4px 15px 4px 15px;background:linear-gradient(100deg,#070c25e8,#171037d9);box-shadow:inset 3px 0 #54dbef}
.gr-stats>div+div{border-color:#ef79cb66;box-shadow:inset 3px 0 #f377d4}.gr-stats small{font-style:italic;font-size:10px;letter-spacing:.16em}
.gr-stats strong{font-family:"Arial Black",Arial,sans-serif;font-variant-numeric:tabular-nums;font-size:clamp(25px,2.5vw,40px);text-shadow:2px 3px #2f176d,0 0 8px #76d4ff55}
.gr-stats div+div strong{font-size:28px;color:#fff}.gr-combo-milestone{animation:grComboUp .3s ease-out}
@keyframes grComboUp{40%{transform:scale(1.16);color:#ffe37b}100%{transform:scale(1)}}
.gr-judgement{position:fixed!important;left:50%;z-index:32;font-family:"Arial Black",Impact,sans-serif;font-style:italic;font-weight:1000;letter-spacing:-.055em;font-size:clamp(42px,5vw,70px)!important;line-height:1;white-space:nowrap;-webkit-text-stroke:1px #ffffff55;filter:drop-shadow(0 3px #19112c)}
.gr-judgement:after{content:"";display:block;height:3px;width:90%;margin:6px auto 0;transform:skewX(-35deg);background:linear-gradient(90deg,transparent,currentColor,transparent)}
.gr-judgement.perfect{color:#f1ffff;text-shadow:3px 3px #df289b,-2px -1px #28ddff,0 0 15px #58eeff99}
.gr-judgement.great{color:#75edff;text-shadow:2px 3px #285290,0 0 10px #24c0dd66}.gr-judgement.good{color:#ffe390;text-shadow:2px 3px #7b4226}.gr-judgement.miss{color:#df799e;text-shadow:2px 3px #411b48;-webkit-text-stroke:0}
.gr-judgement.show{animation:grJudgeNew .55s ease-out!important}
@keyframes grJudgeNew{0%{opacity:1;transform:translate(-50%,-50%) scale(1.16)}25%{opacity:1;transform:translate(-50%,-50%) scale(1)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-60%) scale(.98)}}
.gr-fever{top:auto;bottom:28%;font-size:14px;letter-spacing:.15em;text-shadow:0 2px 5px #000}
#gr-result-screen{background:linear-gradient(110deg,#050820a8,#0e0624ce);backdrop-filter:blur(3px);overflow:auto}
.gr-result-panel{position:relative;isolation:isolate;width:min(740px,92vw);max-width:740px;overflow:hidden;padding:28px 35px;border:1px solid #81efffaa;border-radius:12px 42px 12px 42px;background:linear-gradient(125deg,#09132bf5,#241040ed);box-shadow:0 0 35px #301b6b88,inset 0 1px #ffffff44;text-align:center}
.gr-result-character{position:absolute;z-index:-1;right:-14%;bottom:8%;width:75%;opacity:.16;pointer-events:none;filter:saturate(.65)}
.gr-result-panel .gr-mini{color:#6ae9fa;letter-spacing:.35em}.gr-result-panel h2{font-size:clamp(17px,2.3vw,25px);margin:10px 0 5px}.gr-result-panel #gr-result-difficulty{font-size:11px;letter-spacing:.25em;color:#cbabff}
#gr-result-badges{display:inline-block;margin-top:10px;border:1px solid #ffe395;border-radius:4px;padding:5px 12px;font-size:12px;font-style:italic;letter-spacing:.12em;color:#ffe395;background:#48303a66}#gr-result-badges[hidden]{display:none}
.gr-result-panel .gr-rank{font:italic 1000 clamp(90px,12vw,135px)/1 "Arial Black",Arial,sans-serif;margin:10px 0 0;color:#f9e3ff;text-shadow:4px 5px #812fad,-2px -2px #53d4ff,0 0 20px #be55ed88;animation:grResultIn .35s both}
#gr-result-screen[data-rank="S"] .gr-rank{color:#fff1a6;text-shadow:4px 5px #9c5817,-2px -2px #fff,0 0 24px #ffcd5388}
.gr-result-score{animation:grResultIn .4s .08s both}.gr-result-score small{font-size:10px;letter-spacing:.3em;color:#b9ecff}.gr-result-score strong{font:italic 900 clamp(35px,5vw,55px)/1.3 "Arial Black",Arial,sans-serif;font-variant-numeric:tabular-nums;text-shadow:2px 3px #6e288b}
.gr-result-panel dl{max-width:none;gap:9px 22px;margin:18px 0}.gr-result-panel dl div{padding:8px 10px;border-bottom:1px solid #71bded44;background:#050d2580;border-radius:3px}.gr-result-panel dt{font-size:11px;letter-spacing:.05em;color:#b3dff4}.gr-result-panel dd{font-size:18px;font-variant-numeric:tabular-nums}
.gr-result-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gr-result-actions button{margin:0;font-size:15px;border-radius:5px 16px 5px 16px;min-height:45px;padding:10px}.gr-result-actions .gr-result-return{grid-column:1/-1;font-size:12px;min-height:34px;box-shadow:none}
@keyframes grResultIn{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:700px){.gr-title-panel .gr-image-title{height:clamp(105px,15dvh,140px)}.gr-title-logo{width:min(350px,92vw)}.gr-stats>div{min-width:140px;padding:5px 8px}.gr-stats strong{font-size:22px}.gr-stats div+div strong{font-size:22px}.gr-stats small{font-size:8px}.gr-hud{padding-bottom:40px}.gr-progress-wrap{top:94px}.gr-judgement{font-size:clamp(37px,11vw,49px)!important}.gr-energy-ring{width:85vw}.gr-result-panel{padding:20px 16px;border-radius:8px 28px 8px 28px}.gr-result-panel dl{gap:6px 10px;margin:12px 0}.gr-result-panel dl div{padding:7px}.gr-result-panel .gr-rank{font-size:96px}.gr-result-panel dt{font-size:10px}.gr-result-panel dd{font-size:16px}}
@media(prefers-reduced-motion:reduce){.gr-result-panel *,.gr-combo-milestone,.gr-judgement.show{animation:none!important}.gr-judgement.show{opacity:1}}
.gr-approach-ring{border-width:3px;box-shadow:0 0 8px #fff8,0 0 19px #ffe16988}.gr-game.gr-chorus .gr-approach-ring{box-shadow:0 0 12px #fff9,0 0 25px #ffdd68aa}
#gr-result-screen{overflow-x:hidden;overflow-y:auto}.gr-result-panel{flex-shrink:0}
