body.jump-template{min-height:100vh;padding:20px;display:flex;align-items:center;justify-content:center;overflow-x:hidden}
body.jump-template [hidden]{display:none!important}
body.jump-template .jump-panel{width:100%;margin:auto;text-align:center;box-sizing:border-box}
body.jump-template button{font:inherit;cursor:pointer}
body.jump-template button:disabled{cursor:default;opacity:.55}
body.jump-slide{background:linear-gradient(145deg,#101b36 0%,#070b19 100%);color:#e8efff}
.jump-slide .jump-panel{max-width:620px;padding:32px 42px;border:1px solid #2b3c68;border-radius:34px;background:#17213a;box-shadow:0 24px 70px rgba(0,0,0,.22)}
.slide-title{display:flex;align-items:center;gap:18px;text-align:left;margin:0 0 25px;font-size:34px;line-height:1.2;color:#fff}
.slide-badge{display:inline-block;padding:4px 16px;border-radius:30px;background:#324470;border:1px solid #566a9c;color:#eff4ff;font-size:23px;letter-spacing:.02em}
.slide-track{--progress:0%;position:relative;height:110px;border:2px solid #314269;border-radius:28px;background:linear-gradient(90deg,#1d4487 var(--progress),#0e172b var(--progress));overflow:hidden;touch-action:none}
.slide-track.done{background:linear-gradient(90deg,#20458f,#0d5f63)}
.slide-knob{position:absolute;z-index:2;left:8px;top:6px;width:91px;height:94px;border:2px solid #3e5c99;border-radius:24px;background:#18264c;color:#75a7ff;font-size:34px;font-weight:bold;box-shadow:0 3px 15px rgba(0,0,0,.25);touch-action:none;user-select:none}
.slide-track-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding-left:78px;color:#85affb;font-size:28px;pointer-events:none;white-space:nowrap}
.slide-hint{display:flex;align-items:center;gap:12px;text-align:left;margin:22px 0 24px;color:#91abe3;font-size:23px}
.slide-dot{display:inline-block;flex:none;width:16px;height:16px;border-radius:50%;background:#7489c2;box-shadow:0 0 0 6px rgba(116,137,194,.18)}
.slide-hint.success{color:#19d1b8}.slide-hint.success .slide-dot{background:#19d1b8;box-shadow:0 0 0 6px rgba(25,209,184,.17)}
.slide-footer{text-align:right}.slide-refresh{border:1px solid #344d86;border-radius:18px;padding:9px 21px;background:#1c294d;color:#dce8ff;font-size:22px}
body.jump-spinner{background:#292929;color:#f3f3f3}
.jump-spinner .jump-panel{max-width:500px;background:none;box-shadow:none;padding:20px}
.spinner-ring{width:250px;height:250px;margin:0 auto 60px;border:8px solid #1b2d38;border-top-color:#02a9fb;border-radius:50%;box-shadow:0 0 30px rgba(0,169,251,.25);animation:jump-spin var(--jump-animation-duration,1500ms) linear infinite}
.spinner-text{font-size:31px;margin:0 0 10px;color:#f3f3f3}.spinner-sub{font-size:25px;margin:0;color:#a6a6a6}
@keyframes jump-spin{to{transform:rotate(360deg)}}
body.jump-football{background:#fff;color:#101010;align-items:stretch;padding:0}
.jump-football .jump-panel{max-width:720px;min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:55px 24px 36px;background:#fff;box-shadow:none}
.football-graphic{display:block;width:min(100%,680px);height:auto;object-fit:contain;margin:0 auto 24px}
.football-title{font-size:34px;line-height:1.3;margin:0}.football-sub{font-size:21px;color:#6a7180;margin:15px 0 0}
.football-spacer{flex:1;min-height:130px}.football-enter{width:100%;border:0;border-radius:25px;padding:30px 20px;background:#489bec;color:#fff;font-size:37px;font-weight:600}
.football-footnote{margin:25px 0 0;color:#b5bac4;font-size:17px}
body.jump-shield{background:linear-gradient(180deg,#fff 0%,#e9f2ff 45%,#fff 85%);color:#111;align-items:stretch;padding:0}
.jump-shield .jump-panel{max-width:690px;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:45px 24px 110px;background:none;box-shadow:none}
.shield-circle{width:235px;height:235px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;margin-bottom:54px}
.shield-image{display:block;width:145px;height:145px;object-fit:contain}
.shield-title{font-size:35px;line-height:1.3;margin:0}.shield-sub{font-size:27px;color:#697280;margin:14px 0 50px}
.shield-enter{width:min(100%,400px);border:0;border-radius:12px;padding:22px 20px;background:#2278f2;color:#fff;font-size:30px;font-weight:600}
body.jump-countdown{background:#e7ebec;color:#000;padding:80px 20px 20px}
.jump-countdown .jump-panel{display:flow-root;width:50vw;min-width:540px;max-width:1024px;padding:0 0 34px;border-radius:15px 15px 0 0;background:#fff;box-shadow:0 0 22px rgba(0,0,0,.25)}
.countdown-ring{position:relative;width:33.333%;aspect-ratio:1;margin:-6.667% auto 0}
.countdown-dial{display:block;width:100%;height:100%;overflow:visible}.countdown-track{fill:#fff;stroke:#ddd;stroke-width:10}
.countdown-progress{fill:none;stroke:#49aff4;stroke-width:10;stroke-dasharray:282.743;stroke-dashoffset:282.743;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .1s linear}
.countdown-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.countdown-number{font-size:clamp(64px,5vw,104px);font-weight:400;line-height:1}
.countdown-check{display:block;width:66px;height:66px;margin:0 auto 12px}.countdown-complete-label{display:block;color:#888;font-size:30px;line-height:1.3}
.countdown-copy{margin:52px 0 34px}.countdown-copy h1{font-size:clamp(26px,2vw,40px);font-weight:400;line-height:1.4;margin:0 0 20px}.countdown-copy p{font-size:clamp(18px,1.3vw,26px);line-height:1.4;margin:0;color:#888}
.countdown-enter{display:block;width:60%;margin:72px auto 34px;padding:18px 16px;border:0;border-radius:16px;background:#49aff4;color:#fff;font-size:clamp(25px,1.9vw,38px);line-height:1.25;font-weight:400}
.countdown-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin:0;font-size:24px;line-height:1.4;color:#858990}.countdown-brand svg{width:36px;height:36px;color:#242424}.countdown-brand span{border-left:1px solid #e5e5e5;padding-left:10px}
.jump-countdown [hidden]{display:none!important}
@media(max-width:900px){.jump-countdown .jump-panel{width:100%;min-width:0;max-width:620px}.countdown-ring{width:44%;margin-top:-8.8%}.countdown-copy{margin:36px 0 26px}.countdown-enter{width:72%;margin:42px auto 26px}.countdown-brand{font-size:19px}.countdown-brand svg{width:29px;height:29px}.countdown-check{width:48px;height:48px;margin-bottom:8px}.countdown-complete-label{font-size:23px}}
@media(max-width:640px){
  body.jump-template{padding:14px}
  .jump-slide .jump-panel{padding:28px 23px;border-radius:26px}.slide-title{font-size:27px;gap:10px}.slide-badge{font-size:18px;padding:3px 10px}
  .slide-track{height:86px;border-radius:22px}.slide-knob{width:73px;height:72px;border-radius:18px;font-size:27px}.slide-track-label{font-size:19px;padding-left:54px}
  .slide-hint{font-size:17px}.slide-refresh{font-size:18px}
  .spinner-ring{width:185px;height:185px;margin-bottom:50px}.spinner-text{font-size:25px}.spinner-sub{font-size:19px}
  body.jump-football,body.jump-shield{padding:0}.jump-football .jump-panel{padding:40px 20px 30px}.football-graphic{margin-bottom:30px}.football-title{font-size:28px}.football-enter{font-size:29px;padding:22px}.football-footnote{font-size:13px}
  .jump-shield .jump-panel{padding:40px 20px 90px}.shield-circle{width:205px;height:205px;margin-bottom:45px}.shield-image{width:135px;height:135px}.shield-title{font-size:30px}.shield-sub{font-size:23px}.shield-enter{font-size:27px}
  body.jump-countdown{padding:65px 20px 20px}.jump-countdown .jump-panel{padding-bottom:26px;border-radius:12px 12px 0 0}.countdown-number{font-size:58px}.countdown-copy h1{font-size:26px;margin-bottom:16px}.countdown-enter{padding:15px;border-radius:12px}
}

/* 新模板独立样式，原模板继续使用原有布局。 */
body.jump-slide_light{background:#edf0f3 url('../../img/redirect/silver-background.svg') center/cover;color:#333}
.jump-slide_light .jump-panel{max-width:740px;padding:62px 58px 56px;background:rgba(255,255,255,.8);border:1px solid #ecd7a0;border-radius:28px;box-shadow:0 15px 50px #9ba3b44d}
.jump-slide_light .slide-title{display:block;text-align:center;font-size:27px;line-height:1.7;color:#333;margin-bottom:44px}
.jump-slide_light .slide-track{height:82px;border:0;border-radius:45px;background:linear-gradient(90deg,#fff2bd var(--progress),#eceef0 var(--progress));box-shadow:inset 0 1px 7px #0002}
.jump-slide_light .slide-knob{left:6px;top:6px;width:70px;height:70px;border-radius:50%;border:3px solid #ffd05d;color:#793ede;background:#ffbf39;font-size:27px;box-shadow:0 2px 15px #efb5416b}
.jump-slide_light .slide-track-label{font-size:23px;color:#9ba1aa;padding-left:56px}
.jump-slide_light .slide-hint,.jump-slide_light .slide-footer{display:none}
.jump-slide_light .slide-track.done{background:linear-gradient(90deg,#ffe8a0,#dcf5df)}
body.jump-countdown_auto .countdown-enter{display:none!important}
body.jump-sports{background:#fff;color:#30363e;padding:36px}
.jump-sports .jump-panel{max-width:1700px;display:flex;align-items:center;justify-content:center;gap:60px;padding:30px;background:none}
.sports-enter{display:flex;align-items:center;gap:20px;width:44%;padding:22px 28px;border:0;border-radius:28px;background:#f3f4f6;color:#30363e;text-align:left}
.sports-enter strong{display:block;font-size:28px}.sports-enter small{display:block;font-size:20px;color:#989fa7}
.sports-globe{width:48px;height:48px;flex:none;fill:none;stroke:#00b7bd;stroke-width:2.5}.sports-arrow{margin-left:auto;width:56px;height:56px;border:1px solid #00b7bd;border-radius:50%;color:#00b7bd;text-align:center;line-height:50px;font-size:38px;flex:none}
.sports-banner{width:51%;max-height:80vh;object-fit:contain}
body.jump-verify{background:#f0f0f0;color:#222}
.jump-verify .jump-panel{max-width:1100px;padding:30px 10px}.jump-verify .spinner-ring{width:110px;height:110px;border:11px solid #f5f5f5;border-bottom-color:#339fd8;box-shadow:none;margin-bottom:32px}
.jump-verify .spinner-text{color:#252525;font-size:30px;font-weight:700}
body.jump-progress_red,body.jump-progress_green{background:#e7ebec;padding:90px 20px 24px;color:#222}
.jump-progress_red .jump-panel,.jump-progress_green .jump-panel{width:100%;max-width:730px;padding:0 40px 90px;background:#fff;border-radius:16px 16px 0 0;box-shadow:0 12px 28px #0005}
.allocation-ring{position:relative;width:360px;max-width:65%;aspect-ratio:1;margin:-80px auto 40px}.allocation-ring svg{width:100%;height:100%}.allocation-track{fill:#fff;stroke:#f4f1f1;stroke-width:8}
.allocation-progress{fill:none;stroke:#ff5359;stroke-width:8;stroke-dasharray:282.743;stroke-dashoffset:282.743;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .1s linear}
.allocation-ring span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:clamp(52px,6vw,110px);line-height:1;color:#000}
.allocation-hint{color:#079607;font-size:27px;line-height:1.6;margin:32px 0 24px}.allocation-enter{width:80%;padding:20px;border:0;border-radius:16px;background:#ff5359;color:#fff;font-size:34px}
body.jump-template .allocation-enter{font-size:34px}
.jump-progress_red h1,.jump-progress_green h1{font-size:40px;font-weight:400;line-height:1.4;margin:0}
.jump-progress_green .allocation-progress,.allocation-complete .allocation-progress{stroke:#13ad13}.jump-progress_green .allocation-enter,.allocation-complete .allocation-enter{background:#13ad13}
@media(max-width:640px){
 .jump-slide_light .jump-panel{padding:38px 22px}.jump-slide_light .slide-title{font-size:20px;margin-bottom:30px}.jump-slide_light .slide-track{height:66px}.jump-slide_light .slide-knob{width:54px;height:54px;font-size:22px}.jump-slide_light .slide-track-label{font-size:15px;padding-left:42px}
 body.jump-sports{padding:24px 16px}.jump-sports .jump-panel{flex-direction:column-reverse;gap:30px;padding:0}.sports-banner{width:100%;max-height:55vh}.sports-enter{width:100%;padding:16px;gap:12px}.sports-enter strong{font-size:24px}.sports-enter small{font-size:16px}.sports-globe{width:43px;height:43px}.sports-arrow{width:43px;height:43px;line-height:38px}
 .jump-verify .spinner-text{font-size:21px}.jump-verify .spinner-ring{width:90px;height:90px}
 body.jump-progress_red,body.jump-progress_green{padding:80px 16px 24px}.jump-progress_red .jump-panel,.jump-progress_green .jump-panel{padding:0 20px 64px}.allocation-ring{margin-top:-55px;margin-bottom:30px;max-width:70%}.jump-progress_red h1,.jump-progress_green h1{font-size:29px}.allocation-hint{font-size:21px}.allocation-enter{font-size:26px;width:90%}
 body.jump-template .allocation-enter{font-size:26px}
}

/* Rainbow automatic template; the waiting page uses its own independent loader. */
body.jump-rainbow{background:#000;background:radial-gradient(#222,#000);padding:0;color:#fff;min-height:100vh}
.jump-rainbow .jump-panel{position:fixed;inset:0;width:100%;max-width:none;margin:0;padding:0;background:transparent;box-shadow:none;border-radius:0;display:flex;align-items:center;justify-content:center;flex-direction:column}
.rainbow-loader{height:60px;width:100px;position:relative}.rainbow-loader[hidden]{display:none}
.rainbow-wrap{animation:rainbow-spin var(--jump-animation-duration,1500ms) cubic-bezier(.175,.885,.32,1.275) infinite;box-sizing:border-box;height:50px;left:0;overflow:hidden;position:absolute;top:0;transform-origin:50% 100%;width:100px}
.rainbow-line{border:4px solid transparent;border-radius:100%;box-sizing:border-box;left:0;margin:0 auto;position:absolute;right:0;top:0}
.rainbow-wrap:nth-child(1){animation-delay:-50ms}.rainbow-wrap:nth-child(2){animation-delay:-100ms}.rainbow-wrap:nth-child(3){animation-delay:-150ms}.rainbow-wrap:nth-child(4){animation-delay:-200ms}.rainbow-wrap:nth-child(5){animation-delay:-250ms}
.rainbow-wrap:nth-child(1) .rainbow-line{border-color:hsl(0,80%,60%);height:90px;width:90px;top:7px}.rainbow-wrap:nth-child(2) .rainbow-line{border-color:hsl(60,80%,60%);height:76px;width:76px;top:14px}.rainbow-wrap:nth-child(3) .rainbow-line{border-color:hsl(120,80%,60%);height:62px;width:62px;top:21px}.rainbow-wrap:nth-child(4) .rainbow-line{border-color:hsl(180,80%,60%);height:48px;width:48px;top:28px}.rainbow-wrap:nth-child(5) .rainbow-line{border-color:hsl(240,80%,60%);height:34px;width:34px;top:35px}
@keyframes rainbow-spin{0%,15%{transform:rotate(0)}100%{transform:rotate(360deg)}}
