:root{--life-navy:#071322;--life-gold:#e0c68b;--life-font:system-ui,-apple-system,"Hiragino Sans","Yu Gothic",sans-serif}body{font-family:var(--life-font);background-color:var(--life-navy)}.lifeHud{position:sticky;top:env(safe-area-inset-top,0);z-index:18;background:#091728f5;border:1px solid #ddbd6b55;border-radius:12px;padding:10px 12px;margin:12px 0;color:#f3dfac;font-size:12px;line-height:1.65;backdrop-filter:blur(10px)}.lifeHud summary{cursor:pointer;list-style:none}.lifeHud p{font-size:12px;margin:8px 0;color:#c6d6e9}.lifeTrack{height:4px;background:#52607666;border-radius:4px;overflow:hidden;margin-top:8px}.lifeTrack i{height:100%;display:block;background:linear-gradient(90deg,#d8f0ff,#e0c68b)}.omsAutoMenu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;background:#0b1a2d;border:1px solid #d3b97966;border-radius:12px;position:relative;z-index:22}.omsAutoMenu button{margin:0;font-size:12px;padding:12px}.omsAutoMenu button[aria-pressed=true]{outline:2px solid #e0c68b}button[data-auto=full]{color:#eecfff!important;border-color:#c594f0!important}button[data-auto=semi]{color:#91d3ff!important;border-color:#91d3ff!important}button[data-auto=skip]{color:#ffe09a!important;border-color:#ffe09a!important}.comboHud{display:flex;justify-content:space-between;align-items:center;margin:10px 0;font-size:12px;letter-spacing:.05em;color:#e6efff}.comboHud[data-tier=blue]{color:#8ed2ff}.comboHud[data-tier=red]{color:#ff9a9a}.comboHud[data-tier=gold]{color:#ffe392}.comboHud[data-tier=rainbow]{background:linear-gradient(90deg,#ff9dac,#ffe194,#9df2c8,#87cdff,#d9a9ff);background-clip:text;-webkit-background-clip:text;color:transparent}.lifeFeedback{border-radius:14px;border:1px solid #a7d2f766;background:linear-gradient(100deg,#071c3e,#0b142c);color:#a7c8f6;padding:14px;margin:12px 0}.lifeFeedback.success{background:linear-gradient(100deg,#fff4bc22,#ffffff12);border-color:#ffdf94;color:#fff3c5;box-shadow:0 0 18px #ffdd7333}.lifeFeedback.great{border-color:#efd47c;color:#ffe29e;box-shadow:0 0 24px #e5bb4844}.lifeFeedback strong{font-size:22px}.majorMistake{position:fixed;inset:0;z-index:110;background:radial-gradient(ellipse,#13243bee,#010611fa);display:grid;place-items:center;pointer-events:none;color:#c9d9ed}.majorMistake::before{content:"";position:absolute;inset:0;background:repeating-conic-gradient(from 23deg at 48% 40%,transparent 0deg 39deg,#e1edff66 40deg 40.3deg,transparent 41deg 77deg);opacity:.65}.majorMistake strong{padding:20px;border-block:1px solid #a9c5e777;transform:rotate(-4deg);font-size:clamp(25px,8vw,46px);letter-spacing:.08em;z-index:1}.omsComboCutin{position:fixed;inset:35% 0 auto;z-index:112;text-align:center;background:linear-gradient(100deg,#142040f2,#101726f9);color:#ffeabd;padding:24px 10px;border-block:2px solid #ffdf91;pointer-events:none;font-size:clamp(22px,6vw,40px);font-weight:900;letter-spacing:.10em}.omsComboCutin small{display:block;font-size:12px;color:#b9d8ff;margin-top:9px}@media(prefers-reduced-motion:no-preference){.majorMistake{animation:lifeBreak .65s ease-out}.omsComboCutin{animation:lifeSlide .65s ease-out}@keyframes lifeBreak{0%{opacity:0;transform:translateX(-4px)}20%{opacity:1;transform:translateX(4px)}45%{transform:translateX(-3px)}100%{transform:none}}@keyframes lifeSlide{from{transform:translateX(-100%)}to{transform:none}}}.careerGrowth{color:#ffe5a4;padding:12px;border:1px solid #e0c68b55;border-radius:12px;margin:12px 0}.careerGrowth span{display:inline-block;margin:4px 10px 4px 0}.hero,.panel{background:linear-gradient(130deg,#14263dec,#091729ed)}body[data-page=game] .heroTitle{font-size:clamp(28px,7.6vw,57px)}.goalCutin.teamHighlight .superRays,.goalCutin.teamHighlight .goalAura{opacity:.18!important}.goalCutin.teamHighlight .goalWord{font-size:clamp(28px,7vw,50px)!important}.goalCutin.teamHighlight .goalCutinInner{box-shadow:none!important}.goalCutin[data-owner=self][data-kind=goal] .goalCutinInner{border-color:#ffe4a8}.goalCutin[data-owner=self].superGoal .goalWord{filter:drop-shadow(0 0 15px #e4c477)}.careerStamp{display:none!important}.rookieStamp{width:19%!important;left:auto!important;right:6%!important;top:27%!important;opacity:.86!important;transform:rotate(-8deg)!important}.rookieStamp[hidden]{display:none!important}.cardLegacy{color:#cbd8e8;border-left:2px solid #e0c68b;padding:8px 12px;font-size:13px;line-height:1.8}@media(max-width:430px){main{padding:16px 12px 45px}.hero,.panel{padding:17px;border-radius:16px}.stats{gap:6px}.stat{padding:10px 5px}.stat small{font-size:11px}.grid{gap:8px}.lifeHud{font-size:11px}}body[data-stage="晩年"] .hero{border-color:#9cb1d2}body[data-stage="全盛期"] .hero{border-color:#f3d180}
#lifeControls{position:sticky;top:env(safe-area-inset-top,0);z-index:24;background:#071322ef;border-radius:12px;margin-bottom:12px;padding:4px 8px}#lifeControls[hidden]{display:none}#lifeControls .lifeHud{position:static;margin:4px 0}#lifeControls #autoToggle{width:auto;min-width:100px;margin:6px 0;font-size:12px;padding:8px 14px}body[data-page=game] section.card{background:linear-gradient(135deg,#14263dec,#091729ed)}
.cardLifeLine{font-size:clamp(6px,1.9cqw,11px);line-height:1.5;color:#d6d6c7;border-top:1px solid #ceb36e50;padding-top:.8cqw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cardLifeLine[hidden]{display:none}
/* RC64: quiet ordinary play, rising possession and visible inherited skills. */
[data-rarity=white]{color:#f3f2ed}[data-rarity=blue]{color:#89c6ff}[data-rarity=red]{color:#ff9292}[data-rarity=gold]{color:#f1cf7e}[data-rarity=rainbow]{color:#e8b9ff;text-shadow:1px 0 #64deff,-1px 0 #ffd87f}[data-rarity=empty]{color:#8492a1}
.skillSlot{display:block;line-height:1.4;padding:2px 0}.dnaLine{white-space:normal;display:grid;gap:.2cqw;font-size:clamp(6px,1.8cqw,11px)}.dnaSlots .skillSlot{padding:10px;border:1px solid #657382;border-radius:9px}.skillTeaching{position:fixed;z-index:220;left:50%;top:50%;transform:translate(-50%,-50%);width:min(90vw,440px);max-height:85dvh;overflow:auto;box-shadow:0 0 0 100vmax #030b16d9,0 12px 70px #000;background:#0b1c2d}.skillTeaching button{width:100%;margin-top:10px;min-height:48px}.skillTeaching p{font-weight:700}
.skillActive{position:fixed;z-index:205;top:25%;left:50%;transform:translateX(-50%);min-width:260px;text-align:center;background:#06101ded;border:1px solid currentColor;border-radius:12px;padding:16px;pointer-events:none;animation:skillRise .85s both}.skillActive small,.skillActive strong{display:block}.skillActive small{font-size:10px;letter-spacing:.18em}.skillActive strong{font-size:20px;margin-top:6px}@keyframes skillRise{0%{opacity:0;transform:translate(-70%)}20%,75%{opacity:1;transform:translate(-50%)}100%{opacity:0;transform:translate(-30%)}}
body[data-combo=blue] .comboHud{background:#0c3150}body[data-combo=red] .comboHud{background:#492026;box-shadow:0 0 12px #ba434333}body[data-combo=gold] .comboHud{background:#352b17;box-shadow:0 0 16px #ffcd5944}body[data-combo=rainbow] .comboHud{background:linear-gradient(105deg,#44235b,#1c4452,#514322);box-shadow:0 0 20px #dabeff55}.lifeHud summary{font-variant-numeric:tabular-nums}.growthArrow{filter:drop-shadow(0 0 3px #bade88)}
body[data-retired=true]{background:linear-gradient(#061427c9,#061427ec),url('assets/stadium-sunset.webp') center/cover fixed}.retirementMemory{padding:36px 22px;color:#e9cc91;text-align:center;animation:memoryFade 2.2s both}.retirementMemory small{letter-spacing:.24em;font-size:10px}.retirementMemory h2{font-size:clamp(18px,5vw,26px);line-height:1.8}.retirementMemory p{font-size:13px;line-height:2;color:#c5b897}@keyframes memoryFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.skillActive,.retirementMemory{animation:none}}
body button,body input,body select{font-family:var(--life-font)}#choices button,#matchChoices button,#actions button{border-radius:12px;min-height:48px}#eventTitle,#matchTitle,#actions h3{font-size:clamp(20px,5vw,26px);line-height:1.45}#choices,#matchChoices{display:grid;gap:10px}.comboHud{padding:9px;border:1px solid currentColor;border-radius:10px;font-weight:650;line-height:1.7;letter-spacing:0}#careerSkills{display:flex;flex-wrap:wrap;gap:8px}#careerSkills .skillSlot{font-size:11px}
body[data-combo=rainbow] .comboHud{color:#f3d8ff;background-clip:border-box;-webkit-background-clip:border-box}
/* RC65: possession stays visible, combo heat belongs to the stage. */
.possessionMap{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;margin:10px 0 5px;font-size:10px;text-align:center}.possessionMap>span{padding:7px 1px;color:#899dad;background:#112337;border-radius:5px}.possessionMap>[data-active=true]{color:#f6deaa;background:#534524;border:1px solid #d5b873}.possessionMap small{grid-column:1/-1;color:#b0bdcb;font-size:11px;padding:4px}.skillActive{animation:none;max-width:90vw}.skillActive span{display:block;margin-top:6px;font-size:12px}.skillActive[data-rarity=gold],.skillActive[data-rarity=rainbow]{box-shadow:0 0 34px #ffe09555;border-width:2px}
body[data-combo=blue] #match{border-color:#65b6ee}body[data-combo=red] #match{border-color:#ec7979;box-shadow:0 0 14px #e36b7430}body[data-combo=gold] #match{border-color:#f1ce72;box-shadow:0 0 24px #f1ce7240}body[data-combo=rainbow] #match{border-color:#dcbbff;box-shadow:0 0 34px #c4a1ff55;background:linear-gradient(135deg,#26183aef,#0e2a3aef,#292513ef)}.chanceChoice,.rainbowChoice{background:#152337!important;border-width:2px!important}.chanceChoice{border-color:#e1c26f!important}.rainbowChoice{border-color:#ceb3ee!important;box-shadow:inset 0 0 10px #c7a1ff22!important}.rainbowPromise{opacity:.75}
body[data-combo=gold] .possessionMap>[data-active=true],body[data-combo=rainbow] .possessionMap>[data-active=true]{filter:drop-shadow(0 0 6px #e9c67f66)}
#match{position:relative}body[data-combo=gold] #match::after,body[data-combo=rainbow] #match::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background-image:radial-gradient(circle,#ffe8b3 1px,transparent 2px),radial-gradient(circle,#bbdfff 1px,transparent 2px);background-size:73px 91px,107px 67px;background-position:11px 21px,43px 9px;opacity:.12;animation:comboDust 4s linear infinite}body[data-combo=rainbow] #match::after{opacity:.19;background-image:radial-gradient(circle,#e7c4ff 1px,transparent 3px),radial-gradient(circle,#b8efff 1px,transparent 2px)}@keyframes comboDust{from{background-position:11px 21px,43px 9px}to{background-position:11px -70px,43px -58px}}@media(prefers-reduced-motion:reduce){body #match::after{animation:none}}
/* RC66: the deadline stays at the viewport's top centre during choices and play. */
#decisionClock{position:fixed;top:calc(env(safe-area-inset-top,0px) + 8px);left:50%;transform:translateX(-50%);z-index:310;width:68px;min-height:58px;margin:0;padding:4px 8px;text-align:center;border-radius:18px;background:#061323df;backdrop-filter:blur(8px);border:1px solid #e0edff88;font-size:32px;font-weight:850;line-height:1.2;font-variant-numeric:tabular-nums;color:#fff;box-shadow:0 4px 16px #0007;pointer-events:none}#decisionClock::after{content:'残り秒';display:block;font-size:9px;font-weight:600;letter-spacing:.08em}#decisionClock[data-urgency=yellow]{color:#ffdf73;border-color:#ffdf73}#decisionClock[data-urgency=red],#decisionClock[data-urgency=last]{color:#ff8289;border-color:#ff8289}#decisionClock[data-urgency=last]{animation:deadlinePulse .32s ease-in-out infinite alternate}#decisionClock[data-boost=gold]{box-shadow:0 0 18px #e5be6966}#decisionClock[data-boost=rainbow]{box-shadow:0 0 22px #d8a7ff88}body[data-career=active] #lifeControls{padding-top:62px}.shotRelease{position:fixed;z-index:190;inset:34% 10% auto;background:#0c2538ee;border:1px solid #bcd3df;border-radius:12px;min-height:130px;text-align:center;padding:10px;pointer-events:none}.shotRelease span{font-size:13px;color:#dce8ec}.shotRelease i{display:block;width:14px;height:14px;border-radius:50%;background:#f5f7f9;box-shadow:0 0 14px #fff8;position:absolute;left:48%;bottom:12%;animation:shotReleaseFlight .5s ease-in both}@keyframes shotReleaseFlight{to{transform:translate(25px,-85px) scale(.65)}}@keyframes deadlinePulse{to{opacity:.38;box-shadow:0 0 25px #ff6477aa}}@media(prefers-reduced-motion:reduce){#decisionClock[data-urgency=last],.shotRelease i{animation:none}#decisionClock[data-urgency=last]{border-width:3px}}

/* RC67 safe-area timer and concise career identity */
body[data-page=game] #decisionClock{top:calc(env(safe-area-inset-top,0px) + 32px);z-index:600;pointer-events:none;isolation:isolate}body[data-page=game] #decisionClock.hidden{display:none!important}.identityMoment{min-height:18px;font-size:13px;color:#cad7e5;margin:4px 0 8px}.identityMoment:empty{display:none}.identityMoment[data-intensity="2"],.identityMoment[data-intensity="3"]{color:#ffe5a6;border-left:2px solid #e0c68b;padding-left:10px}.identityReview{white-space:pre-line;color:#d5e2ee;font-size:13px;line-height:1.8;margin-top:12px}.comboHud[data-style]::after{content:attr(data-style);font-size:11px;color:#c5d2df}.skillActive[data-mastery="5"]{box-shadow:0 0 18px #e0c68b44}@media(max-width:430px){body[data-page=game] #match{padding-top:70px}.comboHud{flex-wrap:wrap;gap:6px}}

/* RC68 canonical result pitch. Motion is generated from the persisted endpoint. */
.omsMotionPitch{display:block;width:min(100%,330px);max-height:38svh;aspect-ratio:1;margin:8px auto;overflow:visible}.omsMotionLabel{font-size:3.4px;fill:#e3eee6}.omsMotionRoute{fill:none;stroke:#bee4f766;stroke-width:.7;stroke-dasharray:2 2}.omsMotionBall,.omsMotionActor{animation:omsMotionFlight var(--motion-duration,650ms) linear both}.omsMotionCaption{font-size:12px;line-height:1.6;text-align:center;color:#dbe8e3}.footballCinema.omsMotion{height:auto!important;max-height:44svh}.footballCinema.omsMotion svg{height:auto!important}.omsMotion.footballCinema:before,.omsMotion.footballCinema:after{display:none}
@keyframes omsMotionFlight{0%{transform:translate(var(--mx0),var(--my0))}5%{transform:translate(var(--mx1),var(--my1))}10%{transform:translate(var(--mx2),var(--my2))}15%{transform:translate(var(--mx3),var(--my3))}20%{transform:translate(var(--mx4),var(--my4))}25%{transform:translate(var(--mx5),var(--my5))}30%{transform:translate(var(--mx6),var(--my6))}35%{transform:translate(var(--mx7),var(--my7))}40%{transform:translate(var(--mx8),var(--my8))}45%{transform:translate(var(--mx9),var(--my9))}50%{transform:translate(var(--mx10),var(--my10))}55%{transform:translate(var(--mx11),var(--my11))}60%{transform:translate(var(--mx12),var(--my12))}65%{transform:translate(var(--mx13),var(--my13))}70%{transform:translate(var(--mx14),var(--my14))}75%{transform:translate(var(--mx15),var(--my15))}80%{transform:translate(var(--mx16),var(--my16))}85%{transform:translate(var(--mx17),var(--my17))}90%{transform:translate(var(--mx18),var(--my18))}95%{transform:translate(var(--mx19),var(--my19))}100%{transform:translate(var(--mx20),var(--my20))}}
@media(prefers-reduced-motion:reduce){.omsMotionBall,.omsMotionActor{animation:none;transform:translate(var(--mx20),var(--my20))}}

.goalCutin[data-flight="canonical"] .impactStage{display:none}
/* RC69: result spectacle with one ball, physical endpoint and an unobstructed skill rail. */
.omsSkillRail{min-height:0;pointer-events:none}.hasSkill .omsSkillRail{min-height:64px;margin:0 0 6px}.omsSkillRail .skillActive{position:relative;z-index:auto;inset:auto;transform:none;width:100%;max-width:100%;min-width:0;margin:0;padding:7px 10px;box-sizing:border-box;background:#081729e8;border-radius:8px}.omsSkillRail .skillActive strong{font-size:16px;line-height:1.2;margin:3px 0}.omsSkillRail .skillActive small{font-size:9px}.omsSkillRail .skillActive span{font-size:11px;margin-top:3px;line-height:1.3}.skillActive{top:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);padding:10px}.omsMotionForecast{font-size:13px;font-weight:900;letter-spacing:.18em;color:#ffe29b;text-shadow:0 0 12px #ffd357;margin:3px 0}.omsMotionPitch{max-height:31svh;width:min(100%,300px)}.omsMotionRoute{stroke:#b9efff;stroke-width:.9;stroke-dasharray:2 2;opacity:.5}.omsMotionBall{filter:drop-shadow(0 0 1.5px #b7e8ff)}.omsBallSpin{animation:omsBallSpin var(--motion-duration) linear both;transform-origin:0 0}.omsActorBody{transform-origin:0 0;animation:omsActorLean var(--motion-duration) ease-out both}.omsMotionActor[data-pose="body-block"] .omsActorBody{animation-name:omsBodyBlock}.omsMotionActor[data-pose="kick"] .omsActorBody{animation-name:omsKick}.omsMotionNet{transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 0 1px #fff4)}.omsNetHit{animation:omsNetPunch .75s var(--motion-duration) both}.omsMotionImpact{transform-box:fill-box;transform-origin:center;opacity:0;animation:omsContactFlash .55s var(--contact-time) ease-out both}.omsMotion[data-tier="rainbow"] .omsMotionBall{filter:drop-shadow(0 0 3px #baf5ff) drop-shadow(0 0 5px #dca7ff)}.omsMotion[data-tier="rainbow"] .omsMotionRoute{stroke:#e5bfff;stroke-width:1.6}.omsMotion[data-owner="team"] .omsMotionForecast{display:none}.omsMotion[data-owner="team"] .omsMotionBall{filter:none}.omsMotion[data-owner="team"] .omsMotionImpact{stroke:#c0deeb}
@keyframes omsActorLean{0%{transform:rotate(0)}45%,100%{transform:rotate(var(--actor-lean,0deg))}}@keyframes omsBodyBlock{0%{transform:rotate(0) scale(1)}40%{transform:rotate(-24deg) scale(1.1)}100%{transform:rotate(-16deg)}}@keyframes omsKick{0%{transform:rotate(-10deg)}20%{transform:rotate(18deg)}100%{transform:rotate(0)}}@keyframes omsBallSpin{to{transform:rotate(320deg)}}@keyframes omsNetPunch{0%{transform:scale(1)}22%{transform:scale(1.12,1.3) skewX(-3deg)}70%{transform:scale(1.03) skewX(-1deg)}100%{transform:scale(1)}}@keyframes omsContactFlash{0%{opacity:0;transform:scale(.5)}15%{opacity:1}100%{opacity:0;transform:scale(3)}}
.goalCutin[data-flight="canonical"] .goalCutinInner{padding:14px 12px;max-height:calc(100svh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px)}.goalCutin[data-flight="canonical"] .footballCinema{overflow:visible;max-height:none}.goalCutin[data-flight="canonical"] .goalWord{font-size:clamp(36px,10vw,65px)}.goalCutin[data-flight="canonical"].superGoal:not(.teamHighlight) .goalWord{font-size:clamp(46px,13vw,88px)}.goalCutin[data-flight="canonical"] .goalScorer{font-size:20px;margin-top:7px}.goalCutin[data-flight="canonical"] .goalScore{font-size:28px;margin-top:5px}.goalCutin[data-flight="canonical"] .playLead{font-size:11px;margin:0 0 4px}.goalCutin[data-flight="canonical"] #highlightCaption{font-size:12px;line-height:1.5;margin:4px 0}.goalCutin[data-flight="canonical"] .superShutter{display:none}.goalCutin[data-flight="canonical"] .superSeal{font-size:clamp(28px,8vw,54px);pointer-events:none}.goalCutin[data-flight="canonical"] .superRays{opacity:.24;pointer-events:none}.goalCutin[data-flight="canonical"] .tapHint{margin:8px 0 0}.goalCutin[data-flight="canonical"] #highlightGrowth{padding:8px;margin-top:6px}
@media(max-height:520px){.goalCutin[data-flight="canonical"] .goalCutinInner{display:grid;grid-template-columns:1fr 1fr;gap:4px}.goalCutin[data-flight="canonical"] .footballCinema{grid-column:1;grid-row:1/span 8}.goalCutin[data-flight="canonical"] .playLead,.goalCutin[data-flight="canonical"] .goalWord,.goalCutin[data-flight="canonical"] .goalScorer,.goalCutin[data-flight="canonical"] .goalScore,.goalCutin[data-flight="canonical"] #highlightCaption,.goalCutin[data-flight="canonical"] #highlightNext{grid-column:2}.goalCutin[data-flight="canonical"] .omsMotionPitch{max-height:55svh}.goalCutin[data-flight="canonical"] .goalWord{font-size:32px!important}}
@media(prefers-reduced-motion:reduce){.omsActorBody,.omsBallSpin,.omsMotionImpact,.omsNetHit{animation:none!important}.omsMotionImpact{opacity:.6;transform:none}.omsActorBody{transform:rotate(var(--actor-lean,0deg))}}
.omsVoiceWave{transform-box:fill-box;transform-origin:center;animation:omsVoiceCue .85s ease-out both}.omsMotion[data-outcome="voice"] .omsMotionImpact{display:none}.omsMotionActor[data-pose="trap"] .omsActorBody{animation:omsTrap .6s ease-out both}@keyframes omsVoiceCue{from{opacity:.9;transform:scale(.5)}to{opacity:0;transform:scale(3)}}@keyframes omsTrap{0%{transform:rotate(-8deg)}55%{transform:rotate(8deg)}100%{transform:rotate(0)}}@media(prefers-reduced-motion:reduce){.omsVoiceWave,.omsMotionActor[data-pose="trap"] .omsActorBody{animation:none!important}.omsVoiceWave{opacity:.5}}

/* RC70 recovered cinema: original close-up language, authoritative paths. */
.omsRecovered .omsMotionPitch{width:100%;max-width:520px;aspect-ratio:1.8;max-height:34svh;margin:6px auto;overflow:hidden;border:1px solid #9bc5bb66;border-radius:12px;box-shadow:0 14px 35px #0006}.footballCinema.omsRecovered{height:auto!important;max-height:none}.omsRecovered .cinemaTravel{animation:omsCinemaTravel var(--motion-duration) linear both;transform-box:view-box}.omsRecovered .omsMotionBall{filter:drop-shadow(0 0 5px #a9d8ff)}.omsRecovered[data-tier="rainbow"] .omsMotionBall{filter:drop-shadow(0 0 8px #aae9ff) drop-shadow(0 0 14px #b784ff)}.omsRecovered .recoveredTrail{stroke-dasharray:600;stroke-dashoffset:600;animation:recoveredTrace var(--motion-duration) linear both;filter:drop-shadow(0 0 3px #9cdfff)}.omsRecovered .cinemaGearAction{transform-origin:0 0}.omsRecovered .kickAction{animation:recoveredKick var(--motion-duration) ease-out both}.omsRecovered .trapAction{animation:recoveredTrap var(--motion-duration) ease-out both}.omsRecovered .runAction .secondBoot{animation:recoveredStep .24s linear 3 alternate}.omsRecovered .keeperAction{animation:recoveredReach var(--motion-duration) ease-out both}.omsRecovered .defenceAction{animation:recoveredBlock var(--motion-duration) ease-out both}.omsRecovered .recoveredSpeedLines{animation:recoveredLight .6s ease-out both}.omsRecovered[data-owner="team"] .recoveredSpeedLines{opacity:.2}.goalCutin[data-flight="canonical"] .footballCinema.omsRecovered{overflow:hidden}.goalCutin[data-flight="canonical"] .superRays{opacity:.42}.omsRecovered .omsMotionCaption{padding:4px 8px;font-size:13px;min-height:22px;color:#f3f6ef}
@keyframes omsCinemaTravel{0%{transform:translate(var(--mx0),var(--my0)) scale(var(--ms0,1))}5%{transform:translate(var(--mx1),var(--my1)) scale(var(--ms1,1))}10%{transform:translate(var(--mx2),var(--my2)) scale(var(--ms2,1))}15%{transform:translate(var(--mx3),var(--my3)) scale(var(--ms3,1))}20%{transform:translate(var(--mx4),var(--my4)) scale(var(--ms4,1))}25%{transform:translate(var(--mx5),var(--my5)) scale(var(--ms5,1))}30%{transform:translate(var(--mx6),var(--my6)) scale(var(--ms6,1))}35%{transform:translate(var(--mx7),var(--my7)) scale(var(--ms7,1))}40%{transform:translate(var(--mx8),var(--my8)) scale(var(--ms8,1))}45%{transform:translate(var(--mx9),var(--my9)) scale(var(--ms9,1))}50%{transform:translate(var(--mx10),var(--my10)) scale(var(--ms10,1))}55%{transform:translate(var(--mx11),var(--my11)) scale(var(--ms11,1))}60%{transform:translate(var(--mx12),var(--my12)) scale(var(--ms12,1))}65%{transform:translate(var(--mx13),var(--my13)) scale(var(--ms13,1))}70%{transform:translate(var(--mx14),var(--my14)) scale(var(--ms14,1))}75%{transform:translate(var(--mx15),var(--my15)) scale(var(--ms15,1))}80%{transform:translate(var(--mx16),var(--my16)) scale(var(--ms16,1))}85%{transform:translate(var(--mx17),var(--my17)) scale(var(--ms17,1))}90%{transform:translate(var(--mx18),var(--my18)) scale(var(--ms18,1))}95%{transform:translate(var(--mx19),var(--my19)) scale(var(--ms19,1))}100%{transform:translate(var(--mx20),var(--my20)) scale(var(--ms20,1))}}
@keyframes recoveredTrace{0%{stroke-dashoffset:600;opacity:0}18%{opacity:.9}100%{stroke-dashoffset:0;opacity:.3}}
@keyframes recoveredKick{0%{transform:translate(-12px,4px) rotate(-30deg)}12%{transform:translate(0,0) rotate(16deg)}35%,100%{transform:translate(2px,-2px) rotate(7deg)}}
@keyframes recoveredReach{0%{transform:translate(-15px,12px) rotate(-20deg)}55%,100%{transform:translate(0,0) rotate(0)}}
@keyframes recoveredBlock{0%{transform:translate(-13px,5px) rotate(-12deg)}48%,100%{transform:translate(0,0) rotate(10deg)}}
@keyframes recoveredTrap{0%{transform:translate(-6px,4px) rotate(-10deg)}80%{transform:translate(2px,-2px) rotate(8deg)}100%{transform:translate(0,0)}}
@keyframes recoveredStep{from{opacity:.75;transform:translate(-24px,8px) rotate(-12deg) scale(.75)}to{opacity:1;transform:translate(-16px,-4px) rotate(15deg) scale(.75)}}
@keyframes recoveredLight{0%{opacity:0}20%{opacity:.9}100%{opacity:.25}}
@media(max-height:520px){.omsRecovered .omsMotionPitch{max-height:58svh}.goalCutin[data-flight="canonical"] .footballCinema.omsRecovered{align-self:center}}
@media(prefers-reduced-motion:reduce){.omsRecovered .cinemaTravel{animation:none;transform:translate(var(--mx20),var(--my20)) scale(var(--ms20,1))}.omsRecovered .cinemaGearAction,.omsRecovered .secondBoot,.omsRecovered .recoveredSpeedLines{animation:none!important}.omsRecovered .recoveredTrail{animation:none;stroke-dashoffset:0}.omsRecovered .omsMotionBall .cinemaSpin{animation:none!important}}

/* Existing full-detail athlete artwork, never a placeholder body. */
.omsRecovered .recoveredPlayerSprite{transform-origin:0 0}.omsRecovered .spriteKick{animation:recoveredPlayerKick var(--motion-duration) ease-out both}.omsRecovered .spriteRun{animation:recoveredPlayerRun .3s ease-in-out 3 alternate}.omsRecovered .spriteBlock{animation:recoveredPlayerBlock var(--motion-duration) ease-out both}.omsRecovered .spriteDive{animation:recoveredPlayerDive var(--motion-duration) ease-out both}.omsRecovered .omsMotionImpact.noContact{display:none}.omsRecovered .recoveredActor text{paint-order:stroke;stroke:#071825;stroke-width:2px}.omsRecovered .spriteHeader{animation:recoveredHeader .5s ease-out both}
@keyframes recoveredPlayerKick{0%{transform:rotate(-10deg)}13%{transform:rotate(9deg)}40%,100%{transform:rotate(0)}}
@keyframes recoveredPlayerRun{from{transform:translate(0,2px) rotate(-3deg)}to{transform:translate(0,-1px) rotate(3deg)}}
@keyframes recoveredPlayerBlock{0%{transform:scale(.94)}48%,100%{transform:scale(1.05)}}
@keyframes recoveredPlayerDive{0%{opacity:.7;transform:translate(-25px,30px) rotate(0)}55%,100%{opacity:1;transform:translate(var(--dive-x),var(--dive-y)) rotate(var(--dive-angle))}}
@keyframes recoveredHeader{0%{transform:translate(-5px,5px) rotate(-8deg)}25%{transform:translate(0,0) rotate(8deg)}100%{transform:rotate(0)}}
@media(prefers-reduced-motion:reduce){.omsRecovered .recoveredPlayerSprite{animation:none!important}}

.omsRecovered .cinemaSpin{animation:ballSpin var(--motion-duration) linear both;transform-origin:0 0}


/* Match feel lock: stillness -> burst -> impact -> aftermath -> tap-ready. */
.omsRecovered .cinemaTravel{animation-timing-function:linear!important}
.omsRecovered .recoveredTrail{animation-timing-function:cubic-bezier(.18,.78,.16,1)!important}
.renewalResult[data-tempo="impact"][data-result-phase="motion"] .goalCutinInner{
  animation:omsSceneBreath 900ms ease-in-out infinite alternate;
}
.renewalResult[data-result-phase="result"] .goalWord{
  animation:omsResultSnap 320ms cubic-bezier(.16,.9,.25,1.18) both!important;
}
.renewalResult.highlightReady #highlightNext{
  animation:omsTapInvite 760ms ease-in-out infinite alternate!important;
  letter-spacing:.08em;
}
.renewalResult.highlightReady .goalCutinInner{cursor:pointer}
@keyframes omsSceneBreath{
  from{transform:scale(.996)}
  to{transform:scale(1)}
}
@keyframes omsResultSnap{
  0%{opacity:0;transform:scale(.88)}
  58%{opacity:1;transform:scale(1.035)}
  100%{opacity:1;transform:scale(1)}
}
@keyframes omsTapInvite{
  from{opacity:.58;transform:translateY(0)}
  to{opacity:1;transform:translateY(-2px)}
}
@media(prefers-reduced-motion:reduce){
  .renewalResult[data-tempo="impact"][data-result-phase="motion"] .goalCutinInner,
  .renewalResult[data-result-phase="result"] .goalWord,
  .renewalResult.highlightReady #highlightNext{animation:none!important}
}
