@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700;800&display=swap');
:root{--bg:#100d20;--bg-2:#16132b;--panel:#1c1835;--panel-2:#252042;--line:rgba(202,188,246,.15);--text:#f6f3ff;--soft:#c0b7d7;--muted:#958baF;--violet:#ae8bff;--violet-2:#7155d7;--cyan:#76e5ed;--lime:#bdf2c8;--shadow:0 20px 60px rgba(5,4,17,.25)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 6% 0%,#282040 0,transparent 30%),radial-gradient(circle at 95% 38%,#1b2942 0,transparent 30%),var(--bg);color:var(--text);font-family:'Noto Sans SC','Microsoft Yahei',sans-serif;font-size:14px}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}img,video{max-width:100%}.site-shell{min-height:100vh;max-width:1600px;margin:auto}.site-header{height:78px;padding:0 clamp(20px,4vw,70px);display:flex;align-items:center;gap:38px;position:relative;z-index:15;background:#100d20e8;backdrop-filter:blur(20px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;white-space:nowrap}.brand-mark{font-weight:800;font-size:31px;line-height:1;letter-spacing:-6px;color:var(--violet);width:35px}.brand-mark span{color:var(--cyan)}.brand-text strong{display:block;font-size:18px;letter-spacing:2px}.brand-text small{display:block;font-size:8px;letter-spacing:2px;color:var(--muted);margin-top:4px}.top-nav{display:flex;align-items:center;gap:clamp(14px,2.3vw,38px);margin-left:auto}.top-nav a{font-size:12px;color:var(--soft);padding:29px 0;position:relative;white-space:nowrap}.top-nav a:hover,.top-nav a.active{color:white}.top-nav a.active:after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--cyan)}.header-pill{border:1px solid #7462a058;background:#a48be50b;color:#bbb0d7;border-radius:20px;padding:8px 11px;font-size:10px;white-space:nowrap}.menu-toggle,.mobile-nav{display:none}.site-footer{padding:24px clamp(20px,4vw,70px);border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;font-size:10px;color:var(--muted)}.page{padding:46px clamp(20px,4vw,70px) 76px;animation:fade .35s ease both}.page-home{padding:0 0 70px}.page-home .home-content{padding:0 clamp(20px,4vw,70px)}@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--cyan);font-size:10px;font-weight:700;letter-spacing:2.5px}.eyebrow:before{content:'';width:20px;height:1px;background:var(--cyan)}.page-title{font-size:clamp(30px,4.4vw,54px);letter-spacing:-2px;line-height:1.25;margin:14px 0}.page-lead{font-size:13px;line-height:2;color:var(--soft);max-width:780px}.section-label{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:48px 0 20px}.section-label h2{font-size:23px;margin:8px 0 0;letter-spacing:-.6px}.section-label p{font-size:12px;color:var(--muted);margin:7px 0 0}.section-label .count{font-size:11px;color:var(--soft)}.button{border:1px solid transparent;border-radius:10px;padding:11px 18px;display:inline-flex;align-items:center;justify-content:center;gap:12px;font-size:12px;font-weight:700;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-primary{background:linear-gradient(110deg,#b18aff,#7866e8);color:#100d20;box-shadow:0 8px 25px #a58aff30}.button-ghost{background:#a98bff11;border-color:#a98bff4f;color:#e7defb}.button-light{background:#f6f1ff;color:#2b2147}.subtle-link{font-size:12px;color:var(--cyan)}.demo-tag{display:inline-flex;background:#8b71cd20;color:#b9a5e8;border:1px solid #8b71cd44;border-radius:5px;padding:5px 8px;font-size:10px;letter-spacing:1px}
.home-hero{position:relative;min-height:min(690px,73vh);display:flex;align-items:center;overflow:hidden;isolation:isolate;background:#242039}.home-hero:before{content:'';position:absolute;inset:-12px;background:url('venue-cover.jpg') center 54%/cover no-repeat;filter:blur(5px) saturate(.95);transform:scale(1.025);z-index:-2}.home-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,8,25,.91),rgba(16,11,38,.74) 43%,rgba(19,12,46,.34) 100%),linear-gradient(0deg,#100d20 0%,transparent 30%);z-index:-1}.hero-grid{position:absolute;inset:0;opacity:.22;background-image:linear-gradient(#8e7cd138 1px,transparent 1px),linear-gradient(90deg,#8e7cd138 1px,transparent 1px);background-size:56px 56px;mask-image:linear-gradient(90deg,black,transparent 85%);pointer-events:none}.home-hero-content{padding:64px clamp(20px,7vw,116px);max-width:920px}.hero-overline{font-size:12px;color:#c6b8ed;letter-spacing:3px}.hero-overline i{display:inline-block;width:6px;height:6px;background:var(--cyan);box-shadow:0 0 14px var(--cyan);border-radius:50%;margin:0 12px 2px 0}.home-hero h1{font-size:clamp(41px,6vw,80px);line-height:1.23;letter-spacing:-3px;margin:23px 0;color:#fff;text-shadow:0 4px 28px #0005}.home-hero h1 span{color:#d6bfff}.home-hero p{font-size:clamp(13px,1.35vw,16px);line-height:2;color:#eee7fa;max-width:590px}.hero-rule{width:48px;height:2px;background:var(--cyan);box-shadow:0 0 20px var(--cyan);margin:27px 0}.hero-note{font-size:11px;color:#d2c6e9;letter-spacing:1.5px}.hero-corner{position:absolute;right:clamp(20px,5vw,80px);bottom:45px;font-size:10px;letter-spacing:2px;color:#eadfff80}.portal-heading{margin:13px 0 22px}.portal-heading h2{font-size:26px;margin:0 0 7px}.portal-heading p{color:var(--soft);font-size:12px;margin:0}.portal-grid{display:grid;grid-template-columns:1.18fr 1fr 1fr;gap:18px;margin-top:-78px;position:relative;z-index:2}.portal-card{min-height:218px;padding:27px;border:1px solid #c5b6fa32;background:linear-gradient(140deg,#2d2750ee,#19162fee);backdrop-filter:blur(18px);border-radius:18px;display:flex;flex-direction:column;box-shadow:var(--shadow);transition:transform .25s,border-color .25s}.portal-card:hover{transform:translateY(-6px);border-color:#b7a3f5a0}.portal-card.featured{background:linear-gradient(140deg,#4a3979f5,#252041f5);border-color:#b69dff75}.portal-no{font-size:10px;letter-spacing:3px;color:var(--cyan)}.portal-icon{margin-left:auto;font-size:26px;font-weight:300;color:#d0baff;line-height:1}.portal-card h3{font-size:20px;margin:24px 0 9px}.portal-card p{font-size:11px;color:#c3b8d7;line-height:1.8;margin:0}.portal-arrow{margin-top:auto;padding-top:19px;font-size:12px;color:var(--cyan)}.home-content .intro-bar{margin-top:57px;padding:21px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;color:var(--soft);font-size:12px}.intro-bar strong{color:white;font-size:14px}.intro-bar span{max-width:600px;line-height:1.8}
.page-hero{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:40px}.page-hero .status{display:flex;gap:7px;align-items:center;color:var(--cyan);font-size:11px;white-space:nowrap}.status:before{content:'';width:7px;height:7px;background:var(--cyan);box-shadow:0 0 11px var(--cyan);border-radius:50%}.panel{border:1px solid var(--line);background:linear-gradient(155deg,#24203e,#19162e);border-radius:16px;box-shadow:var(--shadow)}.panel-pad{padding:24px}.ranking-grid{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:16px;align-items:stretch}.rank-card{position:relative;padding:21px;border:1px solid #b8a5ef31;border-radius:17px;background:linear-gradient(145deg,#282341,#19162d);min-height:246px;overflow:hidden}.rank-card:first-child{order:2;background:linear-gradient(145deg,#45376a,#292248);border-color:#c2a9ff90;transform:translateY(-10px)}.rank-card:nth-child(2){order:1}.rank-card:nth-child(3){order:3}.rank-card:before{content:'';position:absolute;width:170px;height:170px;border-radius:50%;background:#aa8cfc22;filter:blur(30px);right:-60px;top:-60px}.rank-head{display:flex;justify-content:space-between;align-items:center}.rank-place{font-size:11px;color:var(--cyan);letter-spacing:1.4px}.rank-place strong{font-size:30px;font-weight:600;letter-spacing:-2px;vertical-align:middle;margin-right:5px}.rank-icon{font-size:20px;color:#c9afff}.rank-person{display:flex;align-items:center;gap:12px;margin:19px 0 10px}.avatar{flex:none;width:41px;height:41px;border-radius:13px;background:linear-gradient(135deg,#8d78e7,#5d4aa9);display:grid;place-items:center;font-weight:700;color:white;font-size:15px;border:1px solid #ffffff42}.rank-person b{font-size:16px}.rank-person small{display:block;color:#b3a8cf;font-size:10px;margin-top:4px}.rank-time{font-size:30px;font-weight:700;letter-spacing:-1px;color:white}.rank-time span{font-size:11px;color:var(--soft);font-weight:400;margin-left:5px}.rank-metrics{border-top:1px solid var(--line);margin-top:14px;padding-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.rank-metrics small{display:block;color:#a79cc0;font-size:9px;margin-bottom:4px}.rank-metrics b{font-size:10px;font-weight:600;color:#e5dafa}.rank-points{color:var(--cyan);font-size:11px;margin-top:13px}.data-caption{color:var(--muted);font-size:11px;line-height:1.8;margin:14px 0 0}.roster{position:relative}.roster-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.roster-controls{display:flex;gap:8px}.round-button{border:1px solid #b9abdd4c;background:#ada0d316;color:#e6def9;border-radius:50%;width:32px;height:32px;font-size:16px}.roster-track{display:flex;gap:12px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#8169b8 transparent;scroll-snap-type:x mandatory;padding:10px 2px 18px}.roster-tile{flex:0 0 155px;scroll-snap-align:start;display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:#211c3b;border-radius:12px;padding:13px;text-align:left;transition:.2s}.roster-tile:hover{border-color:var(--violet);transform:translateY(-3px)}.roster-tile .avatar{width:35px;height:35px;font-size:12px;border-radius:11px}.roster-tile b{display:block;color:white;font-size:12px}.roster-tile small{display:block;color:var(--muted);font-size:9px;margin-top:4px}.roster-add{border-style:dashed;color:var(--soft)}
.ladder-intro{display:flex;justify-content:space-between;align-items:end;gap:18px}.ladder-intro p{color:var(--soft);font-size:11px;line-height:1.8;max-width:470px;margin:0}.ladder{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;align-items:end;margin-top:28px}.step{border:1px solid #a590e84f;border-radius:14px;background:linear-gradient(180deg,#382a58,#1e1934);padding:17px;min-height:245px;position:relative;overflow:hidden}.step:nth-child(1){min-height:215px}.step:nth-child(2){min-height:245px}.step:nth-child(3){min-height:275px}.step:nth-child(4){min-height:305px}.step:nth-child(5){min-height:335px;background:linear-gradient(180deg,#48376b,#221d3b)}.step:before{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--violet),var(--cyan))}.step-no{color:var(--cyan);font-size:10px;letter-spacing:2px}.step h3{font-size:17px;margin:11px 0 8px}.step p{color:#b5a9ce;font-size:10px;line-height:1.7;min-height:54px;margin:0}.step-members{border-top:1px solid var(--line);padding-top:12px;margin-top:14px}.step-members a{display:inline-block;border:1px solid #b2a0de50;background:#aa91de20;border-radius:6px;color:#e7defb;padding:6px 8px;font-size:10px;margin:0 5px 6px 0}.step-members a:hover{border-color:var(--cyan)}.step-empty{font-size:10px;color:#786d92}.step-foot{font-size:10px;color:#8f81a8;position:absolute;bottom:13px;right:17px}.ladder-caption{font-size:11px;color:var(--muted);line-height:1.8;margin-top:14px}.growth-bottom{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:44px}.growth-bottom .panel{padding:23px}.growth-bottom h3{margin:0 0 10px;font-size:15px}.growth-bottom p{font-size:11px;line-height:1.9;color:var(--soft);margin:0}.growth-bottom b{color:var(--cyan)}
.back-link{border:0;background:none;color:var(--cyan);font-size:12px;padding:0;margin-bottom:23px}.profile-header{display:flex;align-items:start;justify-content:space-between;gap:20px}.profile-ident{display:flex;gap:15px;align-items:center}.profile-ident .avatar{width:62px;height:62px;border-radius:18px;font-size:23px}.profile-ident h1{font-size:31px;margin:4px 0}.profile-ident p{font-size:12px;color:var(--soft);margin:0}.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:24px}.profile-stat{padding:20px}.profile-stat small{display:block;color:var(--muted);font-size:10px;margin-bottom:10px}.profile-stat strong{font-size:18px}.profile-stat em{display:block;color:var(--soft);font-size:10px;font-style:normal;margin-top:8px}.profile-columns{display:grid;grid-template-columns:1fr 1.5fr;gap:20px;margin-top:22px}.profile-goal{padding:25px}.profile-goal h2,.records-panel h2{font-size:18px;margin:0 0 18px}.profile-goal p{font-size:12px;line-height:1.9;color:var(--soft)}.profile-goal b{display:block;color:var(--cyan);font-size:10px;letter-spacing:1.5px;margin:19px 0 4px}.level-select{width:100%;margin-top:18px;background:#26213f;border:1px solid #b8a5ed55;border-radius:8px;color:white;padding:11px}.records-panel{padding:25px}.records-panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.record{border-left:1px solid #9779e780;margin:18px 0 0 7px;padding:0 0 20px 21px;position:relative}.record:before{content:'';position:absolute;left:-5px;top:3px;width:9px;height:9px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px var(--cyan)}.record time{color:var(--cyan);font-size:10px}.record h3{font-size:14px;margin:7px 0}.record p{font-size:11px;color:var(--soft);line-height:1.9;white-space:pre-wrap}.record video{display:block;width:100%;max-height:320px;background:#0b0b16;border-radius:10px;margin-top:13px}.record small{color:var(--muted);font-size:10px}.delete-record{background:none;border:0;color:#ad9cbf;font-size:10px;margin-top:10px;padding:6px 0}.empty-state{padding:28px;background:#29233f;border-radius:10px;color:var(--muted);font-size:12px;line-height:1.8}.notice{font-size:11px;line-height:1.8;color:var(--muted)}
.venue-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:20px}.venue-photo{min-height:430px;border-radius:17px;background:linear-gradient(0deg,#110e27c9,transparent 50%),url('venue-cover.jpg') center/cover;position:relative;overflow:hidden;border:1px solid #cbb6f638}.venue-photo span{position:absolute;bottom:22px;left:24px;color:white;font-size:11px;letter-spacing:2px}.venue-copy{padding:27px}.venue-copy h2{font-size:26px;line-height:1.4;margin:10px 0}.venue-copy p{font-size:12px;color:var(--soft);line-height:2}.venue-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:21px 0}.venue-facts div{background:#312a4c;border-radius:9px;padding:15px}.venue-facts strong{display:block;font-size:20px;color:var(--cyan)}.venue-facts small{font-size:10px;color:var(--soft)}.venue-contact{padding-top:20px;border-top:1px solid var(--line);font-size:12px;line-height:2;color:var(--soft)}.venue-contact a{color:var(--cyan)}.coach-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.coach-card{padding:25px}.coach-card h3{margin:10px 0;font-size:20px}.coach-card p{color:var(--soft);font-size:11px;line-height:1.9}.coach-badge{color:var(--cyan);font-size:11px;line-height:1.8}.course-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.course-card{padding:20px}.course-card span{color:var(--cyan);font-size:10px;letter-spacing:2px}.course-card h3{font-size:16px}.course-card p{color:var(--soft);font-size:11px;line-height:1.8}
.moments-feature{display:grid;grid-template-columns:1.35fr 1fr;gap:20px}.moments-video{width:100%;min-height:340px;border-radius:15px;background:#0a0b18;display:block}.moments-copy{padding:27px}.moments-copy h2{font-size:25px;margin:12px 0}.moments-copy p{font-size:12px;line-height:2;color:var(--soft)}.moment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.moment-card{padding:23px}.moment-card .tag{font-size:10px;color:var(--cyan)}.moment-card h3{font-size:17px;margin:13px 0}.moment-card p{font-size:11px;color:var(--soft);line-height:1.9}
dialog{border:1px solid #b7a1e760;background:#1d1932;color:white;border-radius:18px;padding:26px;box-shadow:0 25px 100px #03020b9c;width:min(540px,calc(100% - 30px));max-height:90vh;overflow:auto}dialog::backdrop{background:#080612ae;backdrop-filter:blur(7px)}.dialog-head{display:flex;justify-content:space-between;align-items:start}.dialog-head h2{margin:7px 0 18px}.icon-button{border:0;background:#bca9eb20;color:#ddd2f4;border-radius:7px;width:30px;height:30px;font-size:22px;line-height:1}.field{display:block;font-size:11px;color:#dfd5ee;margin:14px 0}.field input,.field textarea,.field select{display:block;width:100%;margin-top:7px;background:#29243f;border:1px solid #c0abed5a;color:white;border-radius:8px;padding:11px;min-height:41px}.field textarea{min-height:100px;resize:vertical}.field small{display:block;margin-top:6px;color:var(--muted);line-height:1.7}.form-error{color:#ffa5bb;font-size:11px;min-height:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
@media(max-width:1050px){.header-pill{display:none}.top-nav{gap:19px}.ranking-grid{gap:10px}.rank-card{padding:16px}.rank-metrics{grid-template-columns:1fr}.ladder{gap:7px}.step{padding:13px}.step h3{font-size:15px}.step p{font-size:9px}.venue-layout{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.site-header{height:66px;padding:0 18px}.top-nav{display:none}.menu-toggle{display:block;margin-left:auto;border:1px solid #bda8e353;background:#a997da16;color:white;border-radius:8px;padding:5px 10px;font-size:20px}.mobile-nav:not([hidden]){display:flex;flex-direction:column;gap:0;background:#1d1931;border-bottom:1px solid var(--line);position:absolute;z-index:20;left:0;right:0;top:66px;padding:10px 19px}.mobile-nav a{padding:13px;color:var(--soft);border-bottom:1px solid var(--line)}.page{padding:33px 18px 60px}.page-home{padding:0 0 60px}.page-home .home-content{padding:0 18px}.home-hero{min-height:600px;align-items:start}.home-hero:before{background-position:58% center}.home-hero:after{background:linear-gradient(180deg,#100d20a0,#100d20b5 50%,#100d20 100%)}.home-hero-content{padding:100px 24px 130px}.home-hero h1{font-size:clamp(40px,10vw,64px);letter-spacing:-2px}.hero-corner{display:none}.portal-grid{grid-template-columns:1fr;margin-top:-105px;gap:10px}.portal-card{min-height:130px;padding:19px}.portal-card h3{font-size:17px;margin:8px 0 5px}.portal-card p{font-size:10px}.portal-arrow{padding-top:8px}.portal-no{font-size:9px}.portal-icon{font-size:18px}.home-content .intro-bar{flex-direction:column;margin-top:35px}.page-hero{align-items:start}.page-hero .status{display:none}.page-title{font-size:36px}.section-label{margin-top:37px}.section-label h2{font-size:20px}.ranking-grid{grid-template-columns:1fr;gap:10px}.rank-card,.rank-card:first-child{order:initial;transform:none;min-height:auto}.rank-card:first-child{order:0}.rank-card:nth-child(2){order:1}.rank-card:nth-child(3){order:2}.rank-metrics{grid-template-columns:1fr 1fr}.rank-card .rank-person{margin:12px 0 6px}.rank-card .rank-time{font-size:26px}.rank-metrics{margin-top:9px}.roster-tile{flex-basis:145px}.ladder-intro{display:block}.ladder{display:flex;flex-direction:column;align-items:stretch;gap:9px}.step,.step:nth-child(n){min-height:auto;padding:16px;margin-left:0}.step:nth-child(2){margin-left:10px}.step:nth-child(3){margin-left:20px}.step:nth-child(4){margin-left:30px}.step:nth-child(5){margin-left:40px}.step p{min-height:0;font-size:10px}.step-members{margin-top:10px;padding-top:9px}.step-foot{display:none}.growth-bottom,.profile-columns,.venue-layout,.coach-grid,.moments-feature{grid-template-columns:1fr}.profile-stats{grid-template-columns:1fr 1fr}.profile-header{display:block}.profile-header .button{margin-top:18px}.venue-photo{min-height:290px}.course-grid,.moment-grid{grid-template-columns:1fr 1fr}.moments-video{min-height:220px}.site-footer{padding:22px 18px;flex-direction:column}}
@media(max-width:470px){.course-grid,.moment-grid{grid-template-columns:1fr}.profile-stats{gap:8px}.profile-stat{padding:15px}.profile-stat strong{font-size:15px}.page-title{font-size:32px}.home-hero h1{font-size:40px}.home-hero-content{padding-top:80px}.venue-facts{gap:6px}.venue-facts div{padding:10px}.venue-facts strong{font-size:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
