@font-face{font-family:Manrope;src:url('/visual-assets/fonts/Manrope-variable.ttf') format('truetype');font-weight:200 800;font-display:swap}
@font-face{font-family:Inter;src:url('/visual-assets/fonts/Inter-variable.ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:'Noto Sans TC';src:url('/homepage-assets/vendor/NotoSansTC-homepage.woff2') format('woff2');font-weight:400 800;font-display:swap}
:root{--primary:#087F82;--primary-hover:#06696B;--ink:#17334A;--secondary:#526879;--paper:#FFFFFF;--aqua:#DDF1EF;--canvas:#F4F8FA;--border:#D5E1E7;--scroll-thumb:#7898A4;--scroll-track:#F4F8FA;--scroll-hover:#4F7583;--scroll-active:#17334A;color-scheme:light;scroll-behavior:smooth;scrollbar-gutter:stable;font-family:Inter,'Noto Sans TC','Microsoft JhengHei','PingFang TC',sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box;scrollbar-width:auto;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}
*::-webkit-scrollbar{width:12px;height:12px}*::-webkit-scrollbar-track{background:var(--scroll-track)}*::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border:3px solid var(--scroll-track);border-radius:8px}*::-webkit-scrollbar-thumb:hover{background:var(--scroll-hover)}*::-webkit-scrollbar-thumb:active{background:var(--scroll-active)}
body{margin:0;font-size:1rem;line-height:1.6}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:Manrope,'Noto Sans TC','Microsoft JhengHei','PingFang TC',sans-serif;line-height:1.17}a{color:inherit;text-decoration:none}a,summary{cursor:pointer;-webkit-tap-highlight-color:transparent}a:hover{color:var(--primary)}a:active{color:var(--primary-hover)}a:focus-visible,summary:focus-visible{outline:3px solid var(--primary);outline-offset:5px;border-radius:4px}img{display:block;max-width:100%;object-fit:contain}.page-width{width:min(1320px,calc(100% - 96px));margin-inline:auto}section[id],figure[id],main{scroll-margin-top:30px}.skip-link{position:absolute;top:8px;left:16px;z-index:20;transform:translateY(-180%);background:white;padding:12px 20px;border:2px solid var(--primary)}.skip-link:focus{transform:none}
.site-header{border-bottom:1px solid #EAF0F3}.header-inner{min-height:88px;display:flex;align-items:center;gap:36px}.brand{display:flex;align-items:center;margin-left:-9px}.brand img{width:150px;height:76px}.desktop-navigation{display:flex;gap:32px;margin-left:auto;align-items:center}.desktop-navigation a,.locale-switch a{display:flex;min-height:44px;align-items:center;font-size:.875rem}.header-actions{display:flex;align-items:center;gap:26px}.locale-switch{display:flex;align-items:center;gap:10px;font-size:.8125rem}.locale-divider{color:#A1B4BF}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;min-width:150px;padding:13px 24px;border-radius:8px;background:var(--primary);color:white;font-weight:650;font-size:.9375rem;line-height:1.45;text-align:center;transition:background-color .16s ease,box-shadow .16s ease}.button:hover{background:var(--primary-hover);color:white;box-shadow:0 4px 12px #17334A14}.button:active{background:#055557;box-shadow:none}.button:focus-visible{outline-color:var(--ink)}.header-signin{min-width:120px;min-height:46px;padding:11px 23px}.mobile-menu{display:none}
.hero{text-align:center;padding-top:28px;padding-bottom:0}.eyebrow{font-size:.8125rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-bottom:12px}.hero h1{font-size:clamp(3rem,6vw,5.375rem);font-weight:800;letter-spacing:-.047em;line-height:1.02}.hero h1 span{display:block;color:var(--primary)}.hero-copy{font-size:1.375rem;color:#38566D;margin-top:14px;line-height:1.55}.hero-actions{display:flex;align-items:center;justify-content:center;gap:30px;margin-top:16px}.hero-actions .button{min-width:216px;min-height:58px;font-size:1.0625rem}.text-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;color:var(--primary);font-size:.9375rem;font-weight:650}.text-link img{width:18px}.browser-note{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px;font-size:.8125rem;color:#3E5B70}.device-icons{display:inline-flex;align-items:center;justify-content:center;gap:9px;flex-shrink:0}.device-icons img{max-width:none}
.sports-gallery{display:grid;grid-template-columns:1.65fr .9fr 1fr;gap:5px;height:490px;max-width:1440px;width:100%;overflow:hidden}.sport-photo{position:relative;min-width:0;overflow:hidden}.sport-photo>img{width:100%;height:100%;object-fit:cover}.basketball>img{object-position:50% 43%}.golf>img{object-position:48% 47%}.swimming>img{object-position:50% 46%}.sports-gallery{clip-path:polygon(0 0,46% 15%,100% 0,100% 100%,0 100%)}.sport-photo figcaption{position:absolute;left:30px;right:16px;bottom:27px;font-size:1.0625rem;line-height:1.4;font-weight:650;color:white;text-shadow:0 1px 8px #000,0 1px 2px #000}
.story-section{padding-top:44px;padding-bottom:44px;display:grid;grid-template-columns:1.22fr 1fr;grid-template-areas:'heading benefits' 'preview benefits';column-gap:56px;row-gap:24px}.story-heading{grid-area:heading}.story-heading h2{font-size:2.75rem;letter-spacing:-.045em;font-weight:800}.story-heading h2 span{display:block}.story-heading>p{max-width:570px;margin-top:12px;line-height:1.65;color:#3E5B70;font-size:1.1875rem}.benefits{grid-area:benefits;display:flex;flex-direction:column;justify-content:space-between}.benefit{display:flex;gap:24px;align-items:flex-start;padding:20px 0 28px;flex:1}.benefit+.benefit{border-top:1px solid var(--border);padding-top:28px}.benefit:last-child{padding-bottom:18px}.benefit-icon{display:flex;align-items:center;justify-content:center;width:88px;height:88px;flex-shrink:0;background:var(--aqua);border-radius:50%}.benefit-icon img{filter:invert(34%) sepia(57%) saturate(913%) hue-rotate(139deg) brightness(91%) contrast(95%)}.benefit h3{font-size:1.5rem;font-weight:800;letter-spacing:-.025em;margin-top:6px}.benefit p{font-size:1.0625rem;color:#3E5B70;margin-top:7px}
.progress-preview{grid-area:preview;background:#EDF7F8;border-radius:9px;padding:20px 23px 18px;min-width:0}.progress-preview>figcaption{display:flex;gap:12px;align-items:center;padding-right:28%;justify-content:space-between;line-height:1.3}.progress-preview>figcaption strong{font-size:1.0625rem;font-weight:750}.progress-preview>figcaption span{font-size:.75rem;color:var(--secondary)}.progress-body{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:17px;margin-top:14px;align-items:stretch}.chart-frame{position:relative;min-height:190px;min-width:0}.chart-frame.chart-ready{height:190px}.chart-frame canvas{position:absolute;inset:0;visibility:hidden;max-width:100%;max-height:100%}.chart-frame.chart-ready canvas{visibility:visible}.chart-fallback{width:100%;font-size:.75rem;border-collapse:collapse;background:#F8FCFC}.chart-fallback th,.chart-fallback td{text-align:left;border-bottom:1px solid var(--border);padding:2px 5px}.chart-ready .chart-fallback{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.progress-detail{display:flex;flex-direction:column;justify-content:space-between;gap:10px;min-width:0}.achievement{text-align:center;font-size:.6875rem;font-weight:650;line-height:1.3;margin-top:-31px}.achievement>img{height:91px;width:91px;margin-inline:auto}.achievement>span{display:block;margin-top:1px}.coach-note{padding:12px;background:#FFFFFFB3;border-radius:6px;font-size:.8125rem;line-height:1.55}.coach-note strong{font-size:.75rem;font-weight:750}.coach-note p{margin-top:6px}
.access-section{border-top:1px solid var(--primary);border-bottom:1px solid #E6EDF1}.access-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;padding-block:34px}.access-copy{max-width:440px;flex:1}.access-copy h2{font-size:1.6875rem;font-weight:800;letter-spacing:-.035em}.access-copy p{font-size:1rem;color:#3E5B70;margin-top:7px}.web-access{display:flex;align-items:center;gap:25px}.web-access .button{min-width:177px;padding-inline:19px;font-size:.8125rem}.device-support{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.625rem;white-space:nowrap}.app-platforms{display:flex;gap:12px;border-left:1px solid #80BCC0;padding-left:28px}.platform{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid var(--border);border-radius:7px;padding:10px 13px;min-width:105px;font-size:.75rem;line-height:1.4;color:#405F74}.platform>img{opacity:.72}.platform.android>img{filter:invert(34%) sepia(57%) saturate(913%) hue-rotate(139deg) brightness(91%) contrast(95%);opacity:1}.coming-soon{font-size:.625rem;line-height:1.6;background:#E7F1F4;padding:1px 10px;border-radius:999px;white-space:nowrap}
.site-footer{padding-bottom:20px}.footer-main{display:flex;align-items:center;gap:44px;min-height:73px}.footer-brand{margin-left:-6px}.footer-brand img{width:104px;height:54px}.footer-main nav{display:flex;align-items:center;gap:28px;font-size:.75rem;color:#526D82}.footer-main nav a{display:flex;align-items:center;min-height:44px}.footer-tagline{margin-left:auto;color:#526D82;font-size:.6875rem}.footer-legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.65625rem;line-height:1.6;color:var(--secondary)}.footer-legal a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}.footer-legal a:hover{color:var(--ink)}
@media(min-width:1441px){.hero{padding-top:40px;padding-bottom:12px}.sports-gallery{height:510px}.story-section{padding-block:52px}}
@media(max-width:1150px){.page-width{width:calc(100% - 64px)}.header-inner{gap:24px}.header-actions{gap:18px}.desktop-navigation{gap:24px}.sports-gallery{width:100%;height:390px}.story-section{column-gap:34px}.benefit{gap:18px}.benefit-icon{width:60px;height:60px}.benefit h3{font-size:1.125rem}.access-inner{flex-wrap:wrap;gap:24px}.access-copy{flex-basis:100%;max-width:none}.web-access{flex:1}.app-platforms{padding-left:24px}.progress-preview{padding:17px}.progress-body{gap:10px}.chart-frame{min-height:180px}.chart-frame.chart-ready{height:180px}}
@media(max-width:700px){:root{scrollbar-gutter:auto}.page-width{width:calc(100% - 40px)}.header-inner{min-height:64px;gap:10px}.brand{margin-left:-6px}.brand img{width:112px;height:57px}.desktop-navigation{display:none}.header-actions{margin-left:auto;gap:12px}.locale-switch{font-size:.6875rem;gap:6px}.locale-switch>a,.locale-divider{display:none}.header-signin{min-width:77px;padding:9px 13px;min-height:44px;font-size:.75rem}.mobile-menu{display:block;position:relative;order:-1}.mobile-menu summary{display:flex;align-items:center;justify-content:center;list-style:none;min-width:44px;min-height:44px;border-radius:5px}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary:hover{background:var(--canvas)}.mobile-menu nav{position:absolute;right:-88px;top:52px;width:210px;background:white;padding:8px;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #17334A1A;z-index:5}.mobile-menu nav a{display:flex;align-items:center;min-height:46px;padding:9px 12px;border-radius:4px;font-size:.875rem}.mobile-menu nav a:hover{background:var(--canvas)}.hero{padding-top:20px;padding-bottom:18px}.eyebrow{font-size:.625rem;letter-spacing:.1em;margin-bottom:12px}.hero h1{font-size:clamp(1.8125rem,8.7vw,2.625rem);letter-spacing:-.045em;line-height:1.15}.hero-copy{font-size:1rem;line-height:1.5;margin-top:10px;max-width:360px;margin-inline:auto}.hero-copy>span{display:block}.hero-actions{flex-direction:column;gap:1px;margin-top:14px}.hero-actions .button{min-width:205px;min-height:47px;font-size:.875rem}.text-link{min-height:44px;font-size:.8125rem;gap:8px}.text-link img{width:16px}.browser-note{margin-top:3px;gap:10px;font-size:.625rem;line-height:1.45;max-width:260px;margin-inline:auto}.browser-note>span:last-child{max-width:184px}.browser-note .device-icons{gap:5px}.sports-gallery{width:100%;height:auto;grid-template-columns:1fr 1fr;gap:6px;overflow:visible;clip-path:none}.sport-photo{border-radius:5px;height:171px}.sport-photo.basketball{grid-column:1/-1;height:220px}.sport-photo.basketball>img{object-position:50% 43%}.sport-photo figcaption{left:12px;right:9px;bottom:12px;font-size:.8125rem;line-height:1.4}.golf figcaption,.swimming figcaption{font-size:.6875rem}.story-section{padding-top:22px;padding-bottom:22px;grid-template-columns:1fr;grid-template-areas:'heading' 'benefits' 'preview';gap:14px}.story-heading h2{font-size:1.6875rem;letter-spacing:-.04em;line-height:1.2}.story-heading>p{font-size:.8125rem;line-height:1.65;margin-top:10px}.benefit{gap:15px;padding:0 0 14px;align-items:center}.benefit+.benefit{padding-top:14px}.benefit:last-child{padding-bottom:0}.benefit-icon{width:49px;height:49px}.benefit-icon img{width:26px;height:26px}.benefit h3{font-size:.96875rem;line-height:1.35;letter-spacing:-.02em;margin-top:0}.benefit p{font-size:.75rem;margin-top:4px}.progress-preview{padding:15px 12px 12px}.progress-preview>figcaption{padding-right:0;justify-content:flex-start;gap:22px}.progress-preview>figcaption strong{font-size:.78125rem}.progress-preview>figcaption span{font-size:.5625rem}.progress-body{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:9px;margin-top:12px}.chart-frame{min-height:140px}.chart-frame.chart-ready{height:140px}.achievement{margin-top:-15px;font-size:.625rem}.achievement>img{width:69px;height:69px}.coach-note{font-size:.625rem;padding:8px;line-height:1.6}.coach-note strong{font-size:.625rem}.coach-note p{margin-top:4px}.access-inner{padding-block:18px;gap:12px;display:grid;grid-template-columns:1fr;text-align:center}.access-copy{max-width:none}.access-copy h2{font-size:1.125rem;letter-spacing:-.035em;line-height:1.3}.access-copy p{font-size:.6875rem;margin-top:6px}.web-access{justify-content:center;gap:24px}.web-access .button{min-width:178px;font-size:.75rem;min-height:46px}.device-support{font-size:.5625rem;gap:3px}.device-support .device-icons{gap:8px}.device-support img:first-child{width:31px}.device-support img:last-child{width:19px}.app-platforms{padding-left:0;border-left:0;justify-content:center;gap:12px}.platform{flex:1;max-width:164px;padding:11px;min-width:0;display:grid;grid-template-columns:26px auto;grid-template-rows:auto auto;gap:2px 8px;text-align:left;font-size:.6875rem;justify-content:center}.platform>img{grid-row:1/3;width:26px;height:30px}.coming-soon{font-size:.5625rem;padding:1px 7px;text-align:center}.footer-main{flex-wrap:wrap;gap:2px 19px;padding-top:7px;min-height:65px}.footer-brand img{width:91px;height:47px}.footer-main nav{gap:20px;font-size:.625rem;margin-left:auto}.footer-tagline{flex-basis:100%;text-align:center;font-size:.625rem;margin:0 0 12px}.footer-legal{display:block;text-align:center;font-size:.5625rem;line-height:1.8}.footer-legal>span{display:block}.footer-legal>span+span{margin-top:5px}}
@media(max-width:360px){.header-actions{gap:5px}.locale-switch{display:none}.hero h1{font-size:1.8125rem}.sport-photo.basketball{height:220px}.sport-photo{height:150px}.story-heading h2{font-size:1.4375rem}.progress-body{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}.chart-frame{min-height:150px}.chart-frame.chart-ready{height:150px}.web-access{gap:13px}.web-access .button{min-width:165px}.footer-main nav{gap:13px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
@media(forced-colors:active){*{scrollbar-color:auto}a.button{border:1px solid ButtonText}.benefit-icon,.platform{border:1px solid CanvasText}.benefit-icon img,.platform.android>img{filter:none}.sport-photo figcaption{background:Canvas;color:CanvasText;padding:4px;text-shadow:none}}

/* Explicit space and distinct role colors for the two remaining entry areas. */
.role-logins{display:flex;align-items:stretch;gap:20px;min-width:0}
.header-inner{gap:24px}.header-actions{gap:16px}
.button[data-signin="coach"]{background:var(--ink);color:white;border:1px solid var(--ink)}
.button[data-signin="coach"]:hover{background:#244B65;border-color:#244B65}
.button[data-signin="coach"]:active{background:#102737;border-color:#102737}
.button[data-signin="member"]{background:var(--primary);color:white;border:1px solid var(--primary)}
.button[data-signin="member"]:hover{background:var(--primary-hover);border-color:var(--primary-hover)}
.button[data-signin="member"]:active{background:#055557;border-color:#055557}
.hero-actions{flex-direction:column;gap:8px}.hero-actions .role-logins{gap:24px}
.web-access .button{min-width:145px;padding-inline:14px}.web-access{gap:18px}
@media(max-width:700px){
 .header-inner{gap:12px;padding-bottom:0}.header-actions{gap:12px}
 .mobile-menu nav{right:0}.hero-actions{gap:8px}.hero-actions .role-logins{width:100%;max-width:350px;flex-direction:column;gap:18px}
 .hero-actions .button{min-width:0;padding:14px 16px;min-height:52px;font-size:.875rem}
 .web-access{flex-direction:column;gap:16px}.web-access .role-logins{width:100%;gap:16px}
 .web-access .button{flex:1;min-width:0;padding:12px 8px;font-size:.75rem}
 .device-support{flex-direction:row;gap:10px}
}

/* Round27: accessible language links at desktop and landscape widths. */
.locale-switch a{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
