*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif;background:#f4f8fd;color:#0a2a56}a{text-decoration:none;color:inherit}img{display:block;max-width:100%}.container{max-width:1280px;margin:auto;padding:0 28px}.section{padding:76px 0}.hero{position:relative;min-height:100vh;color:white;overflow:hidden;background:linear-gradient(90deg,rgba(4,22,50,.92),rgba(7,46,90,.5),rgba(7,46,90,.05)),url('assets/hero-sotours-race.png') center/cover no-repeat}.hero:after{content:"";position:absolute;inset:auto 0 0;height:210px;background:linear-gradient(0deg,#f4f8fd,rgba(244,248,253,0))}.nav{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;padding-top:28px}.brand img{height:66px;width:auto}.nav-links{display:flex;gap:34px;font-weight:800;font-size:15px;color:rgba(255,255,255,.9)}.nav-links a{padding:9px 0;border-bottom:2px solid transparent}.nav-links a:hover,.nav-links .active{border-color:#e31b23;color:white}.nav-btn{background:#e31b23;color:white;border-radius:6px;padding:17px 32px;font-weight:900;box-shadow:0 14px 30px rgba(227,27,35,.25)}.hero-content{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 120px);padding-bottom:48px}.hero-copy{max-width:640px}.hero h1{font-size:70px;line-height:1.12;margin:0 0 24px;font-weight:1000;letter-spacing:-.03em}.hero p{font-size:22px;font-weight:800;letter-spacing:.06em;color:#eaf3ff}.hero-actions{display:flex;gap:22px;margin-top:42px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-width:175px;height:58px;border-radius:7px;font-weight:900}.btn-red{background:#e31b23;color:white}.btn-outline{border:1.5px solid rgba(255,255,255,.65);background:rgba(255,255,255,.1);color:white;backdrop-filter:blur(8px)}.hero-points{display:flex;gap:36px;margin-top:86px}.hero-points div{display:flex;align-items:center;gap:12px}.hero-points span{font-size:31px}.hero-points strong{display:block}.hero-points em{display:block;font-size:12px;color:rgba(255,255,255,.65);font-style:normal}.section-title h2{margin:0;font-size:44px;line-height:1.1;font-weight:1000;color:#0a2a56}.section-title p{margin:10px 0 0;color:#9ca8bc;font-weight:800;letter-spacing:.05em}.section-title i{display:block;width:42px;height:4px;border-radius:4px;background:#e31b23;margin:14px auto 0}.center{text-align:center}.left{text-align:left}.culture-section{background:#f4f8fd}.video-card{position:relative;margin-top:32px;border-radius:16px;overflow:hidden;box-shadow:0 16px 45px rgba(21,45,82,.13);background:#ddd}.video-card img{width:100%;height:330px;object-fit:cover}.play-button{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:82px;height:82px;border-radius:50%;border:3px solid rgba(255,255,255,.82);background:rgba(255,255,255,.14);backdrop-filter:blur(8px);cursor:pointer}.play-button:after{content:"";position:absolute;left:34px;top:24px;border-left:25px solid white;border-top:16px solid transparent;border-bottom:16px solid transparent}.video-caption{position:absolute;left:24px;bottom:18px;color:white;font-weight:900;text-shadow:0 2px 12px rgba(0,0,0,.4)}.culture-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}.culture-gallery article{border-radius:14px;overflow:hidden;box-shadow:0 8px 28px rgba(21,45,82,.1)}.culture-gallery img{width:100%;height:145px;object-fit:cover}.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:28px}.values-grid article{background:white;border:1px solid #e5edf7;border-radius:18px;padding:32px;box-shadow:0 10px 32px rgba(21,45,82,.08)}.values-grid b{font-size:72px;line-height:.8;color:#d4dbe8}.values-grid h3{font-size:24px;margin:20px 0 12px}.values-grid p{color:#52627e;line-height:1.8}.services-section{background:white}.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:34px}.services-grid a{background:white;border:1px solid #e5edf7;border-radius:22px;padding:28px;box-shadow:0 8px 24px rgba(21,45,82,.06);transition:.25s}.services-grid a:hover{transform:translateY(-5px);box-shadow:0 22px 45px rgba(21,45,82,.12)}.services-grid span{font-size:34px}.services-grid h3{font-size:22px}.services-grid p{color:#52627e;line-height:1.7}.services-grid em{font-style:normal;color:#e31b23;font-weight:900}.courses-section{background:#f4f8fd}.course-tabs{display:flex;justify-content:center;gap:100px;margin:28px 0 36px;font-size:27px;font-weight:900;color:#64748b}.course-tabs a{position:relative}.course-tabs .selected{color:#e31b23}.course-tabs .selected:after{content:"";position:absolute;left:0;right:0;bottom:-14px;height:5px;background:#22d39d;border-radius:99px}.course-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.course-grid article{position:relative;overflow:hidden;border-radius:26px;background:white;box-shadow:0 12px 34px rgba(21,45,82,.1)}.course-grid img{width:100%;height:320px;object-fit:cover}.course-grid .tag{position:absolute;left:0;top:0;background:#e31b23;color:white;font-weight:900;padding:13px 20px;border-radius:0 0 16px 0}.course-grid .recommend{background:#2563eb}.course-grid div:last-child{padding:26px}.course-grid h3{font-size:26px;margin:0 0 12px}.course-grid p{color:#52627e;line-height:1.8}.coaches-section{position:relative;background:linear-gradient(180deg,#f4f8fd 0%,#fff 55%,#e8f1fb 100%)}.coach-heading{margin:0 0 24px}.coach-heading.chinese{margin-top:50px}.coach-heading h2{font-size:40px;margin:0;color:#0a2a56}.coach-heading span{font-size:16px;color:#99a6bb}.coach-heading i{display:block;width:38px;height:4px;background:#e31b23;margin-top:12px}.coach-grid.two{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}.coach-card{display:grid;grid-template-columns:300px 1fr;overflow:hidden;background:white;border:1px solid #e5edf7;border-radius:20px;box-shadow:0 12px 36px rgba(21,45,82,.1);transition:.25s}.coach-card:hover{transform:translateY(-5px);box-shadow:0 24px 55px rgba(21,45,82,.16)}.coach-card figure{position:relative;margin:0;background:radial-gradient(circle at 50% 14%,rgba(255,255,255,.95),rgba(255,255,255,0) 34%),linear-gradient(180deg,#f4f9ff 0%,#e6f0fb 52%,#eef4fb 100%);min-height:340px;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;isolation:isolate}.coach-card figure img{position:relative;z-index:2;max-height:340px;width:auto;max-width:none;filter:drop-shadow(0 18px 26px rgba(10,42,86,.18))}.coach-card figure:before{content:"";position:absolute;left:-10%;right:-10%;bottom:-16%;height:42%;z-index:1;background:radial-gradient(ellipse at center,rgba(255,255,255,.98) 0%,rgba(255,255,255,.88) 36%,rgba(255,255,255,0) 75%)}.coach-card figure:after{content:"";position:absolute;inset:auto 0 0;height:28%;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.82));z-index:1}.coach-card figure b{position:absolute;left:18px;top:18px;background:#e31b23;color:#fff;border-radius:999px;padding:8px 15px;font-size:13px;z-index:2}.coach-card>div{padding:34px 30px;display:flex;flex-direction:column;justify-content:center}.coach-card h3{font-size:34px;margin:0 0 8px;color:#0a2a56}.coach-card h4{font-size:18px;margin:0 0 18px;color:#184b96}.coach-card ul{margin:0;padding-left:18px;color:#52627e;line-height:1.9}.coach-card span{display:inline-flex;width:max-content;margin-top:22px;border:1px solid #ef9da1;color:#174688;border-radius:9px;padding:11px 20px;font-weight:900}.coach-card small{color:#e31b23;font-weight:900;letter-spacing:.18em}.coach-card.founder{max-width:900px;margin:0 auto 28px}.coach-card.founder figure{min-height:430px}.coach-card.founder figure img{max-height:430px}.race-team-section{background:linear-gradient(120deg,rgba(2,8,23,.88),rgba(8,38,76,.72)),url('assets/race-bg.png') center/cover;color:white}.race-content{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:center}.eyebrow{font-weight:900;letter-spacing:.22em;color:#bfdbfe}.race-content h2,.signup-box h2,.shop-grid h2{font-size:44px;margin:10px 0 18px}.race-content p,.signup-box p,.shop-grid p{line-height:1.85;color:#e0f2fe}.race-points{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.race-points span{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.1);border-radius:24px;padding:28px;text-align:center;font-weight:900;backdrop-filter:blur(8px)}.signup-section{background:white}.signup-box{display:grid;grid-template-columns:1fr .85fr;gap:32px;background:#0a2a56;color:white;border-radius:32px;padding:46px}.signup-tags{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:28px}.signup-tags span{background:rgba(255,255,255,.1);border-radius:16px;padding:16px}.signup-box form{background:white;color:#0a2a56;border-radius:24px;padding:28px}.signup-box input{width:100%;border:none;background:#f1f5f9;border-radius:16px;margin-bottom:13px;padding:17px;font-size:15px}.signup-box button{width:100%;border:none;background:#e31b23;color:white;border-radius:16px;padding:17px;font-size:16px;font-weight:900;cursor:pointer}.shop-section{background:#f4f8fd}.shop-grid{display:grid;grid-template-columns:2fr 1fr;gap:26px}.shop-grid article{background:#0a2a56;color:white;border-radius:28px;padding:42px}.shop-grid article div{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.shop-grid article span{background:rgba(255,255,255,.13);padding:10px 17px;border-radius:999px}.shop-grid aside{background:white;border-radius:28px;box-shadow:0 10px 32px rgba(21,45,82,.08);padding:34px;text-align:center}.qr{width:150px;height:150px;border-radius:18px;background:#f1f5f9;margin:22px auto;display:flex;align-items:center;justify-content:center;color:#64748b}.news-section{background:white}.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.news-grid article{background:#f8fafc;border:1px solid #e5edf7;border-radius:18px;padding:30px;font-weight:900;color:#0a2a56}.maintenance-section{background:#f4f8fd}footer{background:#061b36;color:#dbeafe;padding:42px 0}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:26px}.footer-inner img{height:56px;width:auto;margin-bottom:12px}@media(max-width:900px){.container{padding:0 18px}.hero{min-height:760px;background-position:center}.nav-links{display:none}.brand img{height:50px}.hero h1{font-size:46px}.hero p{font-size:18px}.hero-points{display:none}.hero-content{min-height:580px}.hero-actions{flex-direction:column;max-width:260px}.services-grid,.values-grid,.course-grid,.coach-grid.two,.race-content,.signup-box,.shop-grid,.news-grid{grid-template-columns:1fr}.culture-gallery{display:flex;overflow-x:auto}.culture-gallery article{min-width:260px}.coach-card{grid-template-columns:1fr}.coach-card figure{min-height:300px}.coach-card figure img{max-height:300px}.coach-card.founder figure{min-height:340px}.coach-card.founder figure img{max-height:340px}.course-tabs{gap:34px;font-size:21px}.footer-inner{display:block}.video-card img{height:260px}}


/* ===== Version B: dynamic hero ===== */
body.version-mix .nav{position:sticky;top:0;z-index:10;padding-top:16px;padding-bottom:16px;background:linear-gradient(180deg,rgba(4,22,50,.78),rgba(4,22,50,.25),rgba(4,22,50,0));backdrop-filter:blur(6px)}
body.version-mix .hero{min-height:110vh;background-image:linear-gradient(90deg,rgba(4,22,50,.92),rgba(7,46,90,.46),rgba(7,46,90,.02)),url('assets/hero-sotours-race.png');background-position:center center;animation:heroZoom 18s ease-in-out infinite alternate}
body.version-mix .hero-content{min-height:calc(110vh - 120px)}
body.version-mix .hero-glow{position:absolute;right:8%;top:18%;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.18),rgba(255,255,255,0) 68%);filter:blur(8px);pointer-events:none;animation:pulseGlow 6s ease-in-out infinite}
body.version-mix .hero-snow{position:absolute;inset:0;pointer-events:none;opacity:.55}
body.version-mix .hero-snow-1{background-image:radial-gradient(circle,rgba(255,255,255,.95) 0 1px,transparent 1.6px);background-size:120px 120px;animation:snowDrift 18s linear infinite}
body.version-mix .hero-snow-2{background-image:radial-gradient(circle,rgba(255,255,255,.85) 0 1.3px,transparent 1.8px);background-size:180px 180px;animation:snowDrift2 26s linear infinite}
body.version-mix .hero-copy{animation:floatUp .9s ease both}
body.version-mix .hero-points{animation:fadeInUp 1.2s ease .25s both}
body.version-mix .btn,.version-mix .nav-btn,.version-mix .nav-links a{transition:all .24s ease}
body.version-mix .btn-red:hover,.version-mix .nav-btn:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(227,27,35,.28);background:#f01f28}
body.version-mix .btn-outline:hover{transform:translateY(-2px);background:rgba(255,255,255,.18);box-shadow:0 14px 28px rgba(255,255,255,.08)}
body.version-mix .nav-links a:hover{transform:translateY(-1px)}
body.version-mix .services-grid a,.version-mix .course-grid article,.version-mix .coach-card,.version-mix .values-grid article{transition:transform .28s ease,box-shadow .28s ease}
body.version-mix .services-grid a:hover,.version-mix .course-grid article:hover,.version-mix .coach-card:hover,.version-mix .values-grid article:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(10,42,86,.14)}
@keyframes heroZoom{0%{background-size:cover}100%{background-size:108%}}
@keyframes pulseGlow{0%,100%{transform:scale(1);opacity:.6}50%{transform:scale(1.06);opacity:.9}}
@keyframes snowDrift{0%{transform:translate3d(0,-8%,0)}100%{transform:translate3d(-3%,10%,0)}}
@keyframes snowDrift2{0%{transform:translate3d(0,-10%,0)}100%{transform:translate3d(4%,8%,0)}}
@keyframes floatUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){body.version-mix .hero{min-height:900px;animation:none}body.version-mix .hero-content{min-height:700px}body.version-mix .hero-glow{width:260px;height:260px;right:0;top:25%}body.version-mix .nav{position:relative;padding-top:22px;padding-bottom:0;background:none;backdrop-filter:none}}


/* ===== Mixed Version: A premium coach cards + B dynamic hero ===== */
body.version-mix .coaches-section{background:linear-gradient(180deg,#f7fbff 0%,#eef5fd 42%,#f8fbff 100%)}
body.version-mix .coach-heading h2{font-size:42px;letter-spacing:.01em}
body.version-mix .coach-grid.two{gap:30px}
body.version-mix .coach-card{position:relative;border:none;border-radius:26px;overflow:hidden;background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(247,250,255,.98));box-shadow:0 24px 60px rgba(10,42,86,.10)}
body.version-mix .coach-card:before{content:"";position:absolute;inset:0 auto 0 0;width:8px;background:linear-gradient(180deg,#e31b23,#ff7b7b)}
body.version-mix .coach-card:hover{transform:translateY(-8px);box-shadow:0 32px 76px rgba(10,42,86,.16)}
body.version-mix .coach-card figure{background:radial-gradient(circle at 50% 8%,rgba(255,255,255,.95),rgba(255,255,255,0) 32%),linear-gradient(180deg,#edf6ff 0%,#dcecff 58%,#eef5fd 100%)}
body.version-mix .coach-card figure:after{content:"";position:absolute;left:7%;right:7%;bottom:7%;height:14px;border-radius:999px;background:radial-gradient(ellipse at center,rgba(10,42,86,.18) 0%,rgba(10,42,86,0) 72%)}
body.version-mix .coach-card figure img{filter:drop-shadow(0 24px 28px rgba(10,42,86,.18))}
body.version-mix .coach-card>div{padding:38px 34px}
body.version-mix .coach-card h3{font-size:38px;margin-bottom:10px}
body.version-mix .coach-card h4{display:inline-flex;align-self:flex-start;background:#eaf1fb;color:#184b96;border-radius:999px;padding:8px 14px;font-size:15px;margin-bottom:20px}
body.version-mix .coach-card ul{margin-top:4px}
body.version-mix .coach-card span{border:none;background:#fff;color:#184b96;box-shadow:inset 0 0 0 1px rgba(227,27,35,.32),0 8px 18px rgba(10,42,86,.06)}
body.version-mix .coach-card.founder{max-width:1000px;background:linear-gradient(135deg,#fff 0%,#f7fbff 40%,#eef4ff 100%)}
body.version-mix .coach-card.founder:before{width:10px;background:linear-gradient(180deg,#e31b23,#184b96)}
body.version-mix .coach-card.founder figure b{background:linear-gradient(135deg,#e31b23,#ff6a6a);box-shadow:0 10px 24px rgba(227,27,35,.22)}
body.version-mix .coach-card.founder small{display:inline-block;margin-bottom:10px;background:#fff1f1;padding:6px 10px;border-radius:999px;letter-spacing:.14em}
body.version-mix .coach-card.founder h3{font-size:44px}
body.version-mix .coach-card.founder figure{background:radial-gradient(circle at 50% 8%,rgba(255,255,255,.96),rgba(255,255,255,0) 28%),linear-gradient(180deg,#f4f8ff 0%,#e7efff 50%,#f5f9ff 100%)}
body.version-mix .coach-card.founder figure img{max-height:450px}
@media(max-width:900px){body.version-mix .coach-card h3{font-size:30px}body.version-mix .coach-card.founder h3{font-size:34px}}



/* ===== Coach independent detail pages ===== */
body.version-mix .coach-grid.three{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}body.version-mix .coach-grid.three .coach-card{grid-template-columns:1fr}body.version-mix .coach-grid.three .coach-card figure{min-height:320px}body.version-mix .coach-grid.three .coach-card figure img{max-height:320px}.coach-initial{position:relative;z-index:3;width:170px;height:170px;border-radius:42px;background:linear-gradient(135deg,#ffffff,#dbeafe);box-shadow:0 26px 48px rgba(10,42,86,.18);display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:42px;font-weight:1000;color:#0a2a56}.coach-initial small{margin-top:8px;font-size:13px;letter-spacing:.22em;color:#64748b}.coach-detail-body{background:#f4f8fd;color:#0a2a56}.detail-topbar{position:sticky;top:0;z-index:20;background:linear-gradient(180deg,rgba(6,27,54,.96),rgba(6,27,54,.88));backdrop-filter:blur(12px);box-shadow:0 10px 30px rgba(4,22,50,.12)}.detail-nav{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px}.detail-brand img{height:54px;width:auto}.detail-links{display:flex;gap:28px;color:rgba(255,255,255,.82);font-weight:900;font-size:14px}.detail-links a:hover{color:white}.detail-nav-btn{background:#e31b23;color:#fff;border-radius:7px;padding:14px 26px;font-weight:900;box-shadow:0 14px 28px rgba(227,27,35,.22)}.detail-hero{position:relative;padding:34px 0 0;background:radial-gradient(circle at 18% 0%,rgba(37,99,235,.18),transparent 32%),linear-gradient(180deg,#eaf3ff 0%,#f4f8fd 100%)}.detail-back{display:inline-flex;margin:0 0 18px;color:#184b96;font-weight:900}.detail-hero-card{position:relative;overflow:hidden;display:grid;grid-template-columns:1.1fr .9fr;gap:28px;min-height:640px;border-radius:38px;padding:54px;background:radial-gradient(circle at 22% 18%,rgba(255,255,255,.16),transparent 28%),linear-gradient(130deg,#061b36 0%,#0a2a56 46%,#0f5ea8 100%);color:white;box-shadow:0 28px 80px rgba(10,42,86,.26)}.detail-hero-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 74% 18%,rgba(255,255,255,.22),transparent 26%),linear-gradient(180deg,rgba(255,255,255,0),rgba(0,0,0,.28));pointer-events:none}.detail-theme-founder .detail-hero-card{background:radial-gradient(circle at 22% 18%,rgba(255,255,255,.16),transparent 28%),linear-gradient(130deg,#071426 0%,#0a2a56 45%,#b91c1c 118%)}.detail-theme-ice .detail-hero-card{background:radial-gradient(circle at 22% 18%,rgba(255,255,255,.18),transparent 28%),linear-gradient(130deg,#061b36 0%,#14406e 52%,#7dd3fc 130%)}.detail-theme-academic .detail-hero-card{background:radial-gradient(circle at 22% 18%,rgba(255,255,255,.18),transparent 28%),linear-gradient(130deg,#061b36 0%,#123b77 50%,#2563eb 126%)}.detail-theme-youth .detail-hero-card{background:radial-gradient(circle at 22% 18%,rgba(255,255,255,.18),transparent 28%),linear-gradient(130deg,#061b36 0%,#075985 52%,#0ea5e9 124%)}.detail-theme-steady .detail-hero-card{background:radial-gradient(circle at 22% 18%,rgba(255,255,255,.18),transparent 28%),linear-gradient(130deg,#061b36 0%,#312e81 52%,#818cf8 130%)}.detail-hero-copy,.detail-portrait{position:relative;z-index:2}.detail-eyebrow{margin:0 0 14px;font-weight:1000;letter-spacing:.26em;font-size:13px;color:#bfdbfe}.detail-eyebrow.dark{color:#2563eb}.detail-tags{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}.detail-tags span{display:inline-flex;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.1);border-radius:999px;padding:9px 14px;font-weight:900;font-size:13px;backdrop-filter:blur(8px)}.detail-hero h1{margin:0;font-size:76px;line-height:1;font-weight:1000;letter-spacing:-.04em}.detail-hero h2{margin:12px 0 0;font-size:18px;letter-spacing:.42em;color:rgba(255,255,255,.52)}.detail-hero h3{display:inline-flex;margin:26px 0 0;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:12px 18px;font-size:17px;color:#fff}.detail-slogan{margin:30px 0 0;max-width:680px;font-size:26px;line-height:1.55;font-weight:900;color:#fff}.detail-intro{max-width:720px;margin:22px 0 0;font-size:17px;line-height:2;color:rgba(255,255,255,.76)}.detail-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:36px}.detail-outline{border:1px solid rgba(255,255,255,.55);color:#fff;background:rgba(255,255,255,.1);backdrop-filter:blur(8px)}.detail-portrait{align-self:end;display:flex;align-items:flex-end;justify-content:center;min-height:560px;border-radius:32px;overflow:hidden;background:radial-gradient(circle at 50% 12%,rgba(255,255,255,.95),rgba(255,255,255,0) 30%),linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.05));border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}.detail-portrait:after{content:"";position:absolute;left:8%;right:8%;bottom:8%;height:24px;border-radius:999px;background:radial-gradient(ellipse at center,rgba(0,0,0,.24),rgba(0,0,0,0) 72%)}.detail-portrait img{position:relative;z-index:2;max-height:560px;width:auto;max-width:none;filter:drop-shadow(0 28px 32px rgba(0,0,0,.26))}.detail-avatar-text{position:relative;z-index:3;width:240px;height:240px;border-radius:58px;background:linear-gradient(135deg,#fff,#dbeafe);display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:58px;font-weight:1000;color:#0a2a56;box-shadow:0 30px 60px rgba(0,0,0,.24)}.detail-avatar-text small{margin-top:12px;font-size:14px;letter-spacing:.28em;color:#64748b}.detail-section{padding:64px 0}.detail-section.compact{padding:34px 0 20px}.detail-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.detail-stat{background:white;border:1px solid #e5edf7;border-radius:26px;padding:30px;box-shadow:0 18px 45px rgba(10,42,86,.08)}.detail-stat strong{display:block;font-size:42px;line-height:1;color:#0a2a56}.detail-stat span{display:block;margin-top:12px;font-weight:900;letter-spacing:.12em;color:#64748b}.detail-about-grid,.detail-training-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.detail-panel{background:white;border:1px solid #e5edf7;border-radius:30px;padding:38px;box-shadow:0 18px 46px rgba(10,42,86,.08)}.detail-panel h2{margin:0 0 16px;font-size:34px;color:#0a2a56}.detail-panel p{font-size:16px;line-height:1.95;color:#52627e}.detail-chipline{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.detail-chipline span,.media-cards span{background:#eef5fd;color:#184b96;border-radius:999px;padding:10px 15px;font-weight:900;font-size:14px}.system-list{display:grid;gap:13px;margin-top:10px}.system-list div{display:flex;align-items:center;gap:14px;background:#f6f9fd;border:1px solid #e5edf7;border-radius:18px;padding:16px}.system-list b{width:42px;height:42px;border-radius:14px;background:#0a2a56;color:white;display:flex;align-items:center;justify-content:center}.system-list span{font-weight:900;color:#184b96}.detail-credential-section{background:linear-gradient(180deg,#f4f8fd,#edf5ff)}.credential-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}.credential-tile{position:relative;overflow:hidden;background:white;border:1px solid #e5edf7;border-radius:24px;padding:28px;box-shadow:0 16px 38px rgba(10,42,86,.08)}.credential-tile:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,#e31b23,#2563eb)}.credential-tile b{display:flex;width:48px;height:48px;border-radius:16px;background:#f0f7ff;align-items:center;justify-content:center;font-size:22px}.credential-tile p{margin:18px 0 0;color:#0a2a56;font-weight:900;line-height:1.7}.ability-list{display:grid;gap:16px;margin-top:24px}.ability-row{display:block;background:#f6f9fd;border:1px solid #e5edf7;border-radius:18px;padding:18px}.ability-row div{display:flex;justify-content:space-between;gap:16px;color:#0a2a56}.ability-row em{font-style:normal;color:#94a3b8;font-weight:900}.ability-row>i{display:block;height:8px;border-radius:99px;background:linear-gradient(90deg,#e31b23,#2563eb);margin-top:14px}.media-feature{position:relative;overflow:hidden;border-radius:24px;margin-top:22px}.media-feature img{height:280px;width:100%;object-fit:cover}.media-feature:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.28))}.media-cards{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.booking-detail-section{background:#061b36;color:white}.detail-booking{display:grid;grid-template-columns:1fr .8fr;gap:32px;align-items:center}.detail-booking h2{font-size:42px;margin:0 0 16px}.detail-booking p{line-height:1.9;color:#dbeafe}.detail-booking form{background:white;border-radius:26px;padding:28px}.detail-booking input{width:100%;border:none;background:#f1f5f9;border-radius:16px;margin-bottom:13px;padding:17px;font-size:15px}.detail-booking button{width:100%;border:none;background:#e31b23;color:white;border-radius:16px;padding:17px;font-size:16px;font-weight:900;cursor:pointer}@media(max-width:1050px){body.version-mix .coach-grid.three{grid-template-columns:1fr}.detail-hero-card,.detail-about-grid,.detail-training-grid,.detail-booking{grid-template-columns:1fr}.detail-hero h1{font-size:56px}.detail-portrait{min-height:420px}.detail-portrait img{max-height:420px}.credential-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.detail-links{display:none}.detail-brand img{height:46px}.detail-nav-btn{padding:12px 18px}.detail-hero-card{padding:26px;border-radius:28px;min-height:auto}.detail-hero h1{font-size:44px}.detail-slogan{font-size:21px}.detail-intro{font-size:15px}.detail-actions{flex-direction:column;max-width:280px}.detail-stats-grid,.credential-grid{grid-template-columns:1fr}.detail-panel{padding:26px}.detail-panel h2{font-size:28px}.detail-portrait{min-height:360px}.detail-portrait img{max-height:360px}.detail-section{padding:46px 0}}

.course-grid img.course-poster-fit{object-fit:cover;object-position:center 58%;background:#e9f1fb}.shop-grid aside .qr-image{width:170px;height:170px;object-fit:cover;border-radius:18px;background:#fff;margin:22px auto;display:block;box-shadow:0 12px 28px rgba(21,45,82,.08)}


.course-card-basiccamp .camp-course-hero{height:320px;position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(8,28,58,.08),rgba(8,28,58,.24)),url('assets/camp-basic/basic-camp-scene.jpg') center/cover no-repeat}
.course-card-basiccamp .camp-course-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,27,54,.82) 0%,rgba(6,27,54,.42) 42%,rgba(6,27,54,.12) 100%)}
.course-card-basiccamp .camp-course-copy{position:relative;z-index:2;padding:28px 28px 22px;color:#fff;max-width:88%}
.course-card-basiccamp .camp-course-brand{display:inline-flex;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.18);font-size:12px;font-weight:900;letter-spacing:.08em;margin-bottom:14px}
.course-card-basiccamp .camp-course-copy h3{font-size:40px;line-height:1.02;margin:0 0 10px;color:#fff;font-weight:1000;letter-spacing:-.03em}
.course-card-basiccamp .camp-course-copy h4{font-size:20px;line-height:1.3;margin:0 0 12px;color:#dcecff;font-weight:900}
.course-card-basiccamp .camp-course-copy p{margin:0;line-height:1.8;color:rgba(255,255,255,.9);font-size:15px;max-width:530px}
.course-card-basiccamp .camp-course-points{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.course-card-basiccamp .camp-course-points span{display:inline-flex;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18);font-size:13px;font-weight:900;color:#fff}


/* 一步教练卡片：按李屯、冯宏民同一展示逻辑，避免裁头/发花/背景叠层 */
.coach-card figure img[src*="coach-yibu-card"]{
  position:relative;
  z-index:2;
  max-height:340px;
  width:auto;
  max-width:none;
  object-fit:contain;
  transform:translateY(8px);
  filter:drop-shadow(0 18px 26px rgba(10,42,86,.14));
}

/* 首页雪具商城 & 雪具保养升级 */
.shop-upgraded{background:linear-gradient(180deg,#f4f8fd 0%,#ffffff 54%,#edf5ff 100%)}
.shop-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:38px}
.shop-feature-card{overflow:hidden;background:#fff;border:1px solid #e5edf7;border-radius:28px;box-shadow:0 18px 48px rgba(21,45,82,.10)}
.shop-feature-image{height:320px;background:#0a2a56;overflow:hidden}
.shop-feature-image img{width:100%;height:100%;object-fit:cover;display:block}
.shop-feature-body{padding:32px}
.shop-feature-body .shop-label{display:inline-flex;background:#e31b23;color:#fff;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:900;margin-bottom:16px}
.shop-feature-body .shop-label.blue{background:#2563eb}
.shop-feature-body h3{font-size:32px;line-height:1.15;margin:0 0 12px;color:#0a2a56}
.shop-feature-body p{font-size:17px;line-height:1.85;color:#52627e;margin:0 0 20px}
.shop-mini-tags{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 24px}
.shop-mini-tags span{background:#eef5fd;color:#184b96;border-radius:999px;padding:9px 13px;font-size:14px;font-weight:900}
.shop-dark-btn{color:#0a2a56;border-color:#d7e5f5;background:#fff}
.shop-bottom-qr{margin-top:28px;border:1px solid #dbe7f7;background:#fff;border-radius:28px;box-shadow:0 14px 38px rgba(21,45,82,.08);padding:28px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.shop-bottom-qr h3{font-size:28px;margin:0 0 8px;color:#0a2a56}
.shop-bottom-qr p{margin:0;color:#52627e;line-height:1.8}
.shop-bottom-qr img{width:136px;height:136px;object-fit:cover;border-radius:18px;box-shadow:0 12px 28px rgba(21,45,82,.10)}
@media(max-width:900px){.shop-feature-grid{grid-template-columns:1fr}.shop-bottom-qr{flex-direction:column;text-align:center}}

/* 报名咨询区：小程序二维码替代表单 */
.signup-miniapp-card{
  background:#ffffff;
  border:1px solid #e5edf7;
  border-radius:28px;
  padding:34px 30px;
  box-shadow:0 18px 48px rgba(21,45,82,.10);
  text-align:center;
}
.signup-miniapp-card h3{
  margin:0 0 18px;
  font-size:28px;
  color:#0a2a56;
}
.signup-miniapp-card img{
  width:190px;
  height:190px;
  object-fit:cover;
  border-radius:24px;
  background:#fff;
  box-shadow:0 14px 32px rgba(21,45,82,.12);
  margin:0 auto 20px;
  display:block;
}
.signup-miniapp-card p{
  color:#52627e;
  line-height:1.8;
  margin:0 auto 20px;
  max-width:380px;
}
.signup-miniapp-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
}
.signup-miniapp-actions span{
  background:#eef5fd;
  color:#184b96;
  border-radius:999px;
  padding:9px 13px;
  font-size:14px;
  font-weight:900;
}

/* 首页竞技队课程跳转 */
.course-card-link{cursor:pointer}
.course-card-btn{
  display:inline-flex;
  margin-top:16px;
  color:#0a2a56;
  font-weight:900;
}
/* 首页课程区双卡统一升级 */
.course-grid-upgraded{
  align-items:stretch;
}
.course-showcase-card{
  position:relative;
  overflow:hidden;
  cursor:pointer;
  background:#fff;
  border:2px solid rgba(227,27,35,.20);
  border-radius:28px;
  box-shadow:0 18px 48px rgba(21,45,82,.10);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.course-showcase-card:hover{
  transform:translateY(-4px);
  border-color:rgba(227,27,35,.42);
  box-shadow:0 22px 58px rgba(21,45,82,.14);
}
.course-showcase-image{
  width:100%;
  height:320px;
  object-fit:cover;
  display:block;
  background:#dfeaf7;
}
.course-showcase-body{
  padding:28px 28px 30px;
}
.course-showcase-body h3{
  margin:0 0 12px;
}
.course-showcase-body p{
  margin:0;
  line-height:1.8;
  color:#52627e;
}
.course-mini-points{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.course-mini-points span{
  background:#eef5fd;
  color:#184b96;
  border-radius:999px;
  padding:8px 12px;
  font-size:13px;
  font-weight:900;
}
.course-showcase-btn{
  margin-top:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 22px;
  border-radius:12px;
  background:#e31b23;
  color:#fff;
  font-weight:900;
  box-shadow:0 12px 28px rgba(227,27,35,.18);
}
.course-showcase-btn:hover{
  color:#fff;
}

/* ===== Shared mobile navigation and accessibility ===== */
.mobile-menu-toggle{
  display:none;
  width:46px;
  height:46px;
  flex:0 0 46px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  border:1px solid rgba(10,42,86,.14);
  border-radius:12px;
  background:rgba(255,255,255,.92);
  box-shadow:0 10px 24px rgba(10,42,86,.10);
  cursor:pointer;
}
.mobile-menu-toggle span{
  width:20px;
  height:2px;
  border-radius:99px;
  background:#0a2a56;
  transition:transform .2s ease,opacity .2s ease;
}
.mobile-menu-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.mobile-menu-toggle.is-open span:nth-child(2){opacity:0}
.mobile-menu-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-nav-panel{
  display:none;
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 10px);
  z-index:60;
  padding:10px;
  border:1px solid rgba(10,42,86,.12);
  border-radius:16px;
  background:rgba(255,255,255,.98);
  box-shadow:0 18px 48px rgba(10,42,86,.18);
}
.mobile-nav-panel.is-open{
  display:grid;
  grid-template-columns:1fr;
  gap:4px;
}
.mobile-nav-panel a{
  display:flex;
  align-items:center;
  min-height:46px;
  padding:12px 14px;
  border-radius:12px;
  color:#0a2a56;
  font-weight:900;
}
.mobile-nav-panel a:hover,
.mobile-nav-panel a.active{
  background:#eef5fd;
  color:#e31b23;
}
.mobile-nav-panel a:last-child{
  justify-content:center;
  margin-top:6px;
  background:#e31b23;
  color:#fff;
  box-shadow:0 12px 26px rgba(227,27,35,.18);
}
.nav,
.camp-nav,
.gear-nav,
.race-nav,
.coach-dark-nav{
  position:relative;
}
[data-form-status]{
  min-height:22px;
  margin-top:10px;
  font-weight:900;
  color:#184b96;
}
button[disabled]{
  cursor:not-allowed;
  opacity:.72;
}
@media(max-width:1000px){
  .mobile-menu-toggle{display:inline-flex}
  .nav,
  .camp-nav,
  .gear-nav,
  .race-nav,
  .coach-dark-nav{
    gap:12px;
  }
}
@media(max-width:520px){
  .hero h1{
    font-size:40px;
    line-height:1.12;
  }
  .hero p{
    font-size:17px;
    line-height:1.55;
  }
  .nav > .nav-btn,
  .camp-nav > .camp-contact-btn,
  .gear-nav > .gear-contact,
  .race-nav > .race-contact,
  .coach-dark-nav > .coach-dark-contact{
    display:none;
  }
  .brand img,
  .camp-nav img,
  .gear-nav img,
  .race-nav img,
  .coach-dark-brand img{
    max-width:116px;
    object-fit:contain;
  }
}
@media(prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.01ms !important;
  }
}

/* ===== Premium polish pass ===== */
:root{
  --sotours-ink:#061b36;
  --sotours-blue:#0a2a56;
  --sotours-red:#e31b23;
  --sotours-soft:#f6f9fd;
  --sotours-line:#dbe7f7;
}
body{
  background:linear-gradient(180deg,#f6f9fd 0%,#fff 48%,#f3f7fc 100%);
}
.section-title h2,
.coach-heading h2{
  letter-spacing:0;
}
.nav-btn,
.camp-contact-btn,
.gear-contact,
.race-contact,
.coach-dark-contact,
.camp-btn-primary,
.training-btn.red,
.race-btn.red,
.gear-btn.red,
.coach-btn-red,
.course-showcase-btn{
  border-radius:8px;
  background:linear-gradient(180deg,#f02a31 0%,#d9161f 100%);
  box-shadow:0 12px 26px rgba(227,27,35,.18);
}
.btn{
  border-radius:8px;
}
.btn-outline,
.camp-btn-secondary,
.training-btn.white,
.race-btn.white,
.gear-btn.white,
.coach-btn-dark{
  border-radius:8px;
}
.values-grid article,
.services-grid a,
.course-grid article,
.coach-card,
.signup-box,
.shop-grid article,
.shop-grid aside,
.news-grid article,
.video-card,
.culture-gallery article{
  border-radius:12px;
  box-shadow:0 12px 34px rgba(10,42,86,.08);
}
.services-grid a,
.values-grid article,
.course-grid article,
.news-grid article{
  border-color:rgba(10,42,86,.08);
}
.services-grid span{
  font-size:28px;
}
.services-grid h3{
  margin:18px 0 10px;
}
.services-grid p,
.values-grid p,
.course-grid p{
  color:#52657f;
}
body.version-mix .coach-card figure{
  background:#f5f9fe;
}
body.version-mix .coach-card figure:before,
body.version-mix .coach-card figure:after{
  opacity:.45;
}
body.version-mix .coach-card figure img{
  max-width:100%;
  border-radius:0;
  filter:drop-shadow(0 18px 24px rgba(10,42,86,.14));
}
.hero p{
  max-width:720px;
  line-height:1.7;
}
.hero-actions .btn{
  min-width:190px;
}


/* ===== 首屏动态飘雪分层效果 ===== */
.hero{
  isolation:isolate;
}
.hero:after{
  z-index:2;
}
.nav{z-index:6}
.hero-content{z-index:5}
.hero-snow{
  position:absolute;
  inset:0;
  pointer-events:none;
  overflow:hidden;
}
.hero-snow-1{z-index:1}
.hero-snow-2{z-index:4}
.hero-snow::before,
.hero-snow::after{
  content:"";
  position:absolute;
  inset:-35% -20%;
  background-repeat:repeat;
  will-change:transform;
}
/* 背景：小雪花，细密，慢速 */
.hero-snow-1::before{
  opacity:.42;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.92) 0 1px, transparent 1.5px),
    radial-gradient(circle, rgba(255,255,255,.82) 0 1.4px, transparent 1.9px),
    radial-gradient(circle, rgba(255,255,255,.72) 0 0.9px, transparent 1.4px);
  background-size:120px 120px, 180px 180px, 240px 240px;
  background-position:10px 16px, 70px 100px, 30px 60px;
  animation:sotoursSnowBackA 18s linear infinite;
}
.hero-snow-1::after{
  opacity:.22;
  filter:blur(.7px);
  background-image:
    radial-gradient(circle, rgba(255,255,255,.85) 0 1.1px, transparent 1.7px),
    radial-gradient(circle, rgba(255,255,255,.74) 0 1.6px, transparent 2.2px);
  background-size:200px 200px, 280px 280px;
  background-position:40px 40px, 130px 150px;
  animation:sotoursSnowBackB 26s linear infinite;
}
/* 前景：大雪花，更明显，左右轻漂移 */
.hero-snow-2::before{
  opacity:.30;
  filter:blur(.2px);
  background-image:
    radial-gradient(circle, rgba(255,255,255,.96) 0 2.8px, transparent 3.6px),
    radial-gradient(circle, rgba(255,255,255,.88) 0 2.1px, transparent 3px);
  background-size:260px 260px, 340px 340px;
  background-position:100px 20px, 10px 130px;
  animation:sotoursSnowFrontA 12s linear infinite;
}
.hero-snow-2::after{
  opacity:.17;
  filter:blur(1.2px);
  background-image:
    radial-gradient(circle, rgba(255,255,255,.92) 0 3.4px, transparent 4.3px),
    radial-gradient(circle, rgba(255,255,255,.75) 0 2.4px, transparent 3.2px);
  background-size:360px 360px, 460px 460px;
  background-position:150px 60px, 45px 210px;
  animation:sotoursSnowFrontB 15s linear infinite;
}
.hero-glow{
  position:absolute;
  inset:auto 0 0;
  height:40%;
  z-index:3;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(197,222,255,.05) 42%, rgba(255,255,255,.12) 100%);
}
@keyframes sotoursSnowBackA{
  0%{transform:translate3d(-8px,-16%,0)}
  100%{transform:translate3d(12px,18%,0)}
}
@keyframes sotoursSnowBackB{
  0%{transform:translate3d(8px,-22%,0)}
  100%{transform:translate3d(-14px,20%,0)}
}
@keyframes sotoursSnowFrontA{
  0%{transform:translate3d(18px,-24%,0)}
  25%{transform:translate3d(2px,-8%,0)}
  50%{transform:translate3d(-16px,8%,0)}
  75%{transform:translate3d(10px,22%,0)}
  100%{transform:translate3d(22px,34%,0)}
}
@keyframes sotoursSnowFrontB{
  0%{transform:translate3d(-14px,-26%,0)}
  25%{transform:translate3d(12px,-8%,0)}
  50%{transform:translate3d(-6px,10%,0)}
  75%{transform:translate3d(18px,24%,0)}
  100%{transform:translate3d(-10px,38%,0)}
}
@media (max-width:900px){
  .hero-snow-1::before{opacity:.34}
  .hero-snow-1::after{opacity:.16}
  .hero-snow-2::before{opacity:.22}
  .hero-snow-2::after{display:none}
}
@media (prefers-reduced-motion: reduce){
  .hero-snow::before,
  .hero-snow::after{animation:none}
}



/* ===== 首屏动态飘雪效果 ===== */
.hero{
  isolation:isolate;
}
.hero-snow{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  overflow:hidden;
}
.hero-snow-1,
.hero-snow-2{
  contain:layout style paint;
}
.hero-snow .snowflake{
  position:absolute;
  top:-12%;
  left:var(--left, 50%);
  width:var(--size, 6px);
  height:var(--size, 6px);
  border-radius:50%;
  opacity:var(--opacity, .7);
  background:radial-gradient(circle at 35% 35%, rgba(255,255,255,1) 0%, rgba(255,255,255,.95) 38%, rgba(255,255,255,.52) 68%, rgba(255,255,255,0) 100%);
  filter:drop-shadow(0 0 5px rgba(255,255,255,.35));
  transform:translate3d(0,0,0);
  animation:sotoursSnowFloat var(--duration, 16s) linear var(--delay, 0s) infinite;
  will-change:transform, opacity;
}
.hero-snow-1 .snowflake{
  filter:drop-shadow(0 0 3px rgba(255,255,255,.18));
}
.hero-snow-2 .snowflake{
  background:radial-gradient(circle at 35% 35%, rgba(255,255,255,1) 0%, rgba(255,255,255,.98) 40%, rgba(255,255,255,.6) 70%, rgba(255,255,255,0) 100%);
  filter:drop-shadow(0 0 8px rgba(255,255,255,.34));
}
.hero-snow .snowflake::after{
  content:"";
  position:absolute;
  inset:18% 18% auto auto;
  width:32%;
  height:32%;
  border-radius:50%;
  background:rgba(255,255,255,.9);
  opacity:.7;
  filter:blur(.2px);
}
.hero-glow{
  position:absolute;
  inset:auto 0 0;
  height:38%;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(197,222,255,.05) 50%, rgba(255,255,255,.10) 100%);
}
@keyframes sotoursSnowFloat{
  0%{
    transform:translate3d(0,-10%,0) scale(1);
    opacity:0;
  }
  8%{
    opacity:var(--opacity, .7);
  }
  50%{
    transform:translate3d(var(--drift-mid, 12px), 55vh, 0) scale(var(--scale-mid, 1));
  }
  100%{
    transform:translate3d(var(--drift-end, -18px), 112vh, 0) scale(var(--scale-end, 1.06));
    opacity:0;
  }
}
@media (max-width:900px){
  .hero-snow .snowflake{filter:none}
  .hero-snow-2 .snowflake:nth-child(n+9),
  .hero-snow-1 .snowflake:nth-child(n+19){display:none}
}
@media (prefers-reduced-motion: reduce){
  .hero-snow .snowflake{animation:none;opacity:.28}
}

/* ===== FINAL: 首页真实可见动态飘雪，不依赖旧缓存/旧雪层 ===== */
body.version-mix .hero{
  isolation:isolate;
}
body.version-mix .hero:after{
  z-index:2;
}
body.version-mix .hero-glow{
  z-index:3;
  pointer-events:none;
}
body.version-mix .nav{
  z-index:8;
}
body.version-mix .hero-content{
  z-index:7;
}
body.version-mix .hero-snow{
  position:absolute !important;
  inset:0 !important;
  pointer-events:none !important;
  overflow:hidden !important;
  opacity:1 !important;
  background:none !important;
  transform:none !important;
  contain:layout style paint;
}
body.version-mix .hero-snow-1{
  z-index:3 !important;
  animation:none !important;
}
body.version-mix .hero-snow-2{
  z-index:6 !important;
  animation:none !important;
}
body.version-mix .hero-snow::before,
body.version-mix .hero-snow::after{
  content:"";
  position:absolute;
  inset:-120vh -12% -20vh -12%;
  background-repeat:repeat;
  pointer-events:none;
  will-change:transform;
}
/* 背景小雪：密一点、慢一点 */
body.version-mix .hero-snow-1::before{
  opacity:.58;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.96) 0 1.2px, transparent 1.8px),
    radial-gradient(circle, rgba(255,255,255,.78) 0 1px, transparent 1.6px),
    radial-gradient(circle, rgba(255,255,255,.68) 0 1.5px, transparent 2.1px);
  background-size:86px 86px, 132px 132px, 190px 190px;
  background-position:12px 10px, 70px 46px, 32px 90px;
  animation:sotoursRealSnowSmall 10s linear infinite;
}
body.version-mix .hero-snow-1::after{
  opacity:.34;
  filter:blur(.7px);
  background-image:
    radial-gradient(circle, rgba(255,255,255,.82) 0 1.4px, transparent 2px),
    radial-gradient(circle, rgba(255,255,255,.66) 0 1px, transparent 1.6px);
  background-size:160px 160px, 230px 230px;
  background-position:60px 35px, 14px 120px;
  animation:sotoursRealSnowSmallWide 15s linear infinite;
}
/* 前景大雪：少一点、大一点、能明显看到下落 */
body.version-mix .hero-snow-2::before{
  opacity:.82;
  background-image:
    radial-gradient(circle, rgba(255,255,255,1) 0 3.4px, transparent 4.5px),
    radial-gradient(circle, rgba(255,255,255,.9) 0 2.4px, transparent 3.4px),
    radial-gradient(circle, rgba(255,255,255,.78) 0 4.2px, transparent 5.4px);
  background-size:220px 220px, 310px 310px, 430px 430px;
  background-position:105px 15px, 24px 140px, 220px 80px;
  animation:sotoursRealSnowFront 7.5s linear infinite;
}
body.version-mix .hero-snow-2::after{
  opacity:.45;
  filter:blur(1.1px);
  background-image:
    radial-gradient(circle, rgba(255,255,255,.98) 0 5px, transparent 6.2px),
    radial-gradient(circle, rgba(255,255,255,.76) 0 3px, transparent 4.1px);
  background-size:360px 360px, 520px 520px;
  background-position:170px 70px, 45px 230px;
  animation:sotoursRealSnowBig 9s linear infinite;
}
@keyframes sotoursRealSnowSmall{
  0%{transform:translate3d(-18px,-42vh,0)}
  100%{transform:translate3d(18px,42vh,0)}
}
@keyframes sotoursRealSnowSmallWide{
  0%{transform:translate3d(20px,-46vh,0)}
  100%{transform:translate3d(-24px,46vh,0)}
}
@keyframes sotoursRealSnowFront{
  0%{transform:translate3d(28px,-48vh,0)}
  25%{transform:translate3d(0,-24vh,0)}
  50%{transform:translate3d(-28px,0,0)}
  75%{transform:translate3d(12px,24vh,0)}
  100%{transform:translate3d(34px,48vh,0)}
}
@keyframes sotoursRealSnowBig{
  0%{transform:translate3d(-18px,-50vh,0)}
  50%{transform:translate3d(26px,0,0)}
  100%{transform:translate3d(-8px,50vh,0)}
}
body.version-mix .hero-snow .snowflake{
  position:absolute;
  top:-10vh;
  left:var(--left, 50%);
  width:var(--size, 8px);
  height:var(--size, 8px);
  border-radius:999px;
  opacity:var(--opacity, .7);
  background:radial-gradient(circle at 36% 34%, #fff 0%, rgba(255,255,255,.98) 42%, rgba(255,255,255,.55) 72%, rgba(255,255,255,0) 100%);
  box-shadow:0 0 9px rgba(255,255,255,.28);
  animation:sotoursRealSnowParticle var(--duration, 8s) linear var(--delay, 0s) infinite;
  will-change:transform, opacity;
}
body.version-mix .hero-snow-1 .snowflake{
  filter:blur(.1px);
}
body.version-mix .hero-snow-2 .snowflake{
  box-shadow:0 0 12px rgba(255,255,255,.38);
}
@keyframes sotoursRealSnowParticle{
  0%{transform:translate3d(0,-10vh,0) scale(.9);opacity:0}
  8%{opacity:var(--opacity, .7)}
  50%{transform:translate3d(var(--drift-mid, 26px), 55vh, 0) scale(var(--scale-mid, 1.03))}
  100%{transform:translate3d(var(--drift-end, -24px), 118vh, 0) scale(var(--scale-end, 1.12));opacity:0}
}
@media(max-width:900px){
  body.version-mix .hero-snow-1::before{opacity:.42;background-size:110px 110px, 160px 160px, 230px 230px;animation-duration:12s}
  body.version-mix .hero-snow-1::after{opacity:.22}
  body.version-mix .hero-snow-2::before{opacity:.52;background-size:300px 300px, 400px 400px, 520px 520px;animation-duration:9s}
  body.version-mix .hero-snow-2::after{display:none}
  body.version-mix .hero-snow-2 .snowflake:nth-child(n+11),
  body.version-mix .hero-snow-1 .snowflake:nth-child(n+23){display:none}
}
@media(prefers-reduced-motion:reduce){
  body.version-mix .hero-snow::before,
  body.version-mix .hero-snow::after,
  body.version-mix .hero-snow .snowflake{animation:none;opacity:.35}
}



/* ===== FINAL FIX: Canvas 真动态飘雪层，打开首页必定显示 ===== */
body.version-mix .hero-snow-canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:6;
  pointer-events:none;
  display:block;
  opacity:.88;
}
body.version-mix .hero-snow{
  display:none !important;
}
body.version-mix .nav{
  z-index:9 !important;
}
body.version-mix .hero-content{
  z-index:8 !important;
}
body.version-mix .hero-glow{
  z-index:5 !important;
}
@media(max-width:900px){
  body.version-mix .hero-snow-canvas{opacity:.76}
}
