/* ── 반응속도: 체리 그랑프리 ── */
.ga-reaction{--ga-accent:#ffd166;--ga-accent-ink:#2a1c00;--ga-glass:rgb(8 14 34 / .72);--ga-stop:#e5383b;--ga-go:#2fbf71}
.ga-arena .reaction-play,.ga-arena #reaction-play{display:flex;flex-direction:column;gap:14px;width:100%;max-width:none!important}
.ga-arena .reaction-zone{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%;max-width:none;min-height:360px;margin:0;padding:96px 24px 34px;border-radius:28px;border:2px solid #ffffff2e;background:radial-gradient(ellipse at 50% 0%,#1c2a55 0%,#0b1128 70%);color:#fff;font-family:var(--font);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;box-shadow:var(--shadow-art,0 18px 44px #0008),inset 0 1px 0 #ffffff26;transition:background .08s,border-color .08s}
.reaction-burst{position:absolute;inset:0;z-index:-1;background:var(--reaction-burst,none) center/cover no-repeat;opacity:0}
.reaction-lights{position:absolute;top:22px;left:50%;transform:translateX(-50%);display:flex;gap:clamp(8px,2vw,18px);padding:10px 18px;border-radius:999px;background:linear-gradient(180deg,#1c1c22,#050507);box-shadow:var(--shadow-art,0 10px 24px #000a),inset 0 1px 0 #ffffff26}
.reaction-lights i{width:clamp(34px,6vw,52px);height:clamp(34px,6vw,52px);border-radius:50%;background:radial-gradient(circle at 40% 35%,#3a1414,#140707 70%);box-shadow:inset 0 3px 8px #000c,0 0 0 3px #26262e;transition:background .06s,box-shadow .06s}
.reaction-lights i.is-on{background:radial-gradient(circle at 40% 35%,#ffb3a8,var(--ga-stop) 55%,#8e1111);box-shadow:0 0 22px var(--ga-stop),0 0 50px #e5383b88,0 0 0 3px #3b1a1a}
.reaction-lights.is-green i.is-on{background:radial-gradient(circle at 40% 35%,#d8ffe6,var(--ga-go) 55%,#0d6b3a);box-shadow:0 0 24px var(--ga-go),0 0 60px #2fbf7199,0 0 0 3px #16341f}
.reaction-zone-main{font-size:40px;font-weight:900;line-height:1.25;letter-spacing:-1px;text-shadow:var(--text-shadow-art,0 2px 14px #000)}
.reaction-zone-main:empty{display:none}
.reaction-zone-sub{font-size:16px;font-weight:800;opacity:.9;line-height:1.5;text-shadow:0 1px 6px #000a}
.reaction-zone-sub:empty{display:none}
.ga-arena .reaction-zone.waiting{border-color:#e5383b66;background:radial-gradient(ellipse at 50% 10%,#5a1622 0%,#1a0a14 75%);cursor:pointer}
.ga-arena .reaction-zone.waiting .reaction-zone-main{color:#ffd9d4;animation:reaction-hold 1.4s ease-in-out infinite}
@keyframes reaction-hold{50%{opacity:.72}}
.ga-arena .reaction-zone.watching,.ga-arena .reaction-zone.intro{cursor:default}
.ga-arena .reaction-zone.go{border-color:var(--ga-go);background:radial-gradient(circle at 50% 45%,#6ff0a4 0%,#1d9a57 45%,#0b4a2a 100%);cursor:pointer;box-shadow:0 0 0 4px #2fbf7155,0 0 80px #2fbf7199,var(--shadow-art,0 18px 44px #0008)}
.ga-arena .reaction-zone.go .reaction-burst{opacity:.55;mix-blend-mode:screen}
.ga-arena .reaction-zone.go .reaction-zone-main{font-size:58px;color:#fff;animation:reaction-go .28s cubic-bezier(.3,1.6,.5,1) both}
@keyframes reaction-go{from{transform:scale(.6)}}
.ga-arena .reaction-zone.go.is-watch .reaction-zone-main{font-size:44px}
.ga-arena .reaction-zone.result{cursor:default;background:radial-gradient(ellipse at 50% 20%,#23325f 0%,#0b1128 75%)}
.ga-arena .reaction-zone.result .reaction-zone-main{font-size:54px;font-variant-numeric:tabular-nums;color:var(--ga-accent)}
.ga-arena .reaction-zone.result.is-fast .reaction-zone-main{color:#fff;text-shadow:0 0 24px var(--ga-accent),var(--text-shadow-art,0 2px 14px #000)}
.ga-arena .reaction-zone.too-early{cursor:default;border-color:#ffb36b;background:radial-gradient(ellipse at 50% 20%,#6a3a12 0%,#241206 80%)}
.ga-arena .reaction-zone.too-early .reaction-zone-main{color:#ffd29a;animation:reaction-shake .4s both}
.ga-arena .reaction-zone.has-art{background-image:var(--scrim-bottom),radial-gradient(ellipse at 50% 18%,#0b112800 0%,#0b11288c 100%),var(--zone-art);background-size:cover;background-position:center 40%}
.ga-arena .reaction-zone.has-art .reaction-lights{opacity:.35}
@keyframes reaction-shake{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
.reaction-venue{position:absolute;inset:auto 0 auto 0;top:50%;transform:translateY(-38%);display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none}
.reaction-venue small{font-size:14px;font-weight:900;letter-spacing:4px;color:var(--ga-accent);text-shadow:0 1px 6px #000}
.reaction-venue strong{font-size:44px;font-weight:900;letter-spacing:-1px;color:#fff;text-shadow:var(--text-shadow-art,0 2px 14px #000)}
.reaction-venue.is-in small{animation:reaction-slide .6s cubic-bezier(.2,.8,.2,1) both}
.reaction-venue.is-in strong{animation:reaction-slide .7s .08s cubic-bezier(.2,.8,.2,1) both}
@keyframes reaction-slide{from{opacity:0;transform:translateX(-60px)}}
.ga-arena .reaction-zone.intro .reaction-zone-sub{position:absolute;bottom:26px}
.reaction-grid .ga-seat.is-done .ga-seat-badge{background:var(--ga-go)}
.reaction-round-card{display:flex;flex-direction:column;gap:12px;padding:16px}
.reaction-callout{display:grid;grid-template-columns:minmax(0,220px) 1fr;align-items:center;gap:16px;border-radius:18px;overflow:hidden;background:#00000040;box-shadow:var(--shadow-2)}
.reaction-callout img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.reaction-callout-copy{display:flex;flex-direction:column;gap:4px;padding:10px 14px 10px 0;min-width:0}
.reaction-callout-copy strong{font-size:24px;font-weight:900;color:#fff;letter-spacing:-.4px;word-break:keep-all}
.reaction-callout-copy span{font-size:15px;font-weight:700;color:var(--ga-accent);word-break:keep-all}
.reaction-callout.is-false-start .reaction-callout-copy strong{color:#ffc58a}
.reaction-callout.is-record .reaction-callout-copy strong,.reaction-callout.is-photo-finish .reaction-callout-copy strong{color:var(--ga-accent)}
.ga-reaction .ranking-list{display:flex;flex-direction:column;gap:6px;margin:0}
.ga-reaction .ranking-item{display:flex;align-items:center;gap:12px;margin:0;padding:8px 14px;border-radius:14px;background:#ffffff14;border:1px solid #ffffff1a;color:#fff;box-shadow:var(--shadow-1)}
.ga-reaction .ranking-item:nth-child(n){background:#ffffff14}
.ga-reaction .ranking-item.is-top{background:linear-gradient(90deg,#ffd16633,#ffffff0d);border-color:#ffd16666}
.ga-reaction .ranking-item.is-mine{outline:2px solid var(--cherry);outline-offset:-2px}
.ga-reaction .ranking-rank{font-size:20px;min-width:30px;text-align:center}
.ranking-face{width:42px;height:42px;border-radius:50%;object-fit:cover;flex:none;box-shadow:var(--shadow-1);border:2px solid #ffffff40}
.ga-reaction .ranking-name{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;color:#fff}
.ranking-nick{font-size:15px;font-weight:900;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ranking-nick em{font-style:normal;margin-left:4px;font-size:10px;padding:0 6px;border-radius:999px;background:var(--cherry);color:#fff;vertical-align:2px}
.ga-reaction .ranking-time{font-size:19px;font-weight:900;font-variant-numeric:tabular-nums;color:var(--ga-accent)}
.reaction-flag{font-size:11px;font-weight:900;color:#4a2400;background:#ffb36b;border-radius:999px;padding:1px 8px}
.reaction-points{font-size:12px;font-weight:900;color:var(--ga-accent)}
.reaction-extra{font-size:12px;color:#ffffffb0;font-weight:700}
.reaction-podium{position:relative;border-radius:26px;overflow:hidden;min-height:380px;background:#0b1128 center 30%/cover no-repeat;box-shadow:var(--shadow-art,0 18px 44px #0008);display:flex;align-items:flex-end;justify-content:center;padding:24px 16px 20px}
.reaction-podium:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0b112833 0%,#0b112800 40%,#0b1128cc 100%)}
.reaction-steps{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:12px;width:min(640px,100%)}
.reaction-step{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;opacity:0;transform:translateY(40px);transition:opacity .5s,transform .6s cubic-bezier(.3,1.4,.5,1)}
.reaction-step.is-shown{opacity:1;transform:none}
.reaction-step.is-empty{visibility:hidden}
.reaction-step-face{width:92px;height:92px;border-radius:50%;padding:4px;background:linear-gradient(145deg,#fff,#cfd6e6);box-shadow:var(--shadow-art,0 12px 28px #000a)}
.reaction-step-face img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.reaction-step.place-1 .reaction-step-face{width:118px;height:118px;background:linear-gradient(145deg,#fff6c9,#e2a93a);box-shadow:0 0 40px #ffd166aa,var(--shadow-art,0 12px 28px #000a)}
.reaction-step.place-3 .reaction-step-face{background:linear-gradient(145deg,#ffe0c4,#c07a3e)}
.reaction-step strong{max-width:100%;font-size:16px;font-weight:900;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:var(--text-shadow-art,0 2px 10px #000)}
.reaction-step small{font-size:13px;font-weight:800;color:var(--ga-accent);text-shadow:0 1px 6px #000}
.reaction-step-block{width:100%;display:flex;align-items:flex-start;justify-content:center;padding-top:8px;border-radius:12px 12px 4px 4px;font-size:28px;font-weight:900;color:#fff;background:linear-gradient(180deg,#c7cfdf,#7e8aa3);box-shadow:var(--shadow-3),inset 0 2px 0 #fff8;height:70px}
.reaction-step.place-1 .reaction-step-block{height:110px;background:linear-gradient(180deg,#ffd978,#c98f1e)}
.reaction-step.place-3 .reaction-step-block{height:50px;background:linear-gradient(180deg,#f0b787,#a8622a)}
.reaction-step.is-me strong:after{content:' ★';color:var(--ga-accent)}
.reaction-final-list{display:flex;flex-direction:column;gap:12px;padding:16px}
#reaction-final-actions{display:flex;flex-direction:column;gap:8px}
@media(max-width:700px){
.ga-arena .reaction-zone{min-height:300px;padding:84px 16px 26px;border-radius:22px}
.reaction-lights{top:18px;padding:8px 12px}
.reaction-zone-main{font-size:30px}
.ga-arena .reaction-zone.go .reaction-zone-main{font-size:44px}
.ga-arena .reaction-zone.result .reaction-zone-main{font-size:42px}
.reaction-venue strong{font-size:30px}
.reaction-callout{grid-template-columns:120px 1fr;gap:10px}
.reaction-callout-copy strong{font-size:18px}
.reaction-callout-copy span{font-size:13px}
.ranking-face{width:34px;height:34px}
.reaction-podium{min-height:300px;padding:18px 10px 14px}
.reaction-step-face{width:66px;height:66px}
.reaction-step.place-1 .reaction-step-face{width:84px;height:84px}
.reaction-step strong{font-size:13px}
.reaction-step small{font-size:11px}
.reaction-step-block{height:52px;font-size:22px}
.reaction-step.place-1 .reaction-step-block{height:80px}
.reaction-step.place-3 .reaction-step-block{height:38px}
}
@media(prefers-reduced-motion:reduce){
.ga-arena .reaction-zone.waiting .reaction-zone-main,.ga-arena .reaction-zone.go .reaction-zone-main,.ga-arena .reaction-zone.too-early .reaction-zone-main,.reaction-venue.is-in small,.reaction-venue.is-in strong{animation:none}
.reaction-step{transition:none}
}
.stage-ending-art img[src*="/arcade/img/reaction/racer-"]{object-position:50% 16%}
.stage-ending-art img[src*="/arcade/img/reaction/trophy"]{object-position:50% 22%}
