:root{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#0b110f;background:#f4f6f1;font-synthesis:none;-webkit-font-smoothing:antialiased;--bg:#f4f6f1;--ink:#0b110f;--muted:#90978c;--border:#a9b09e;--surface:#fff;--accent:#ccfa3b;--olive:#3e542a;--error:#b23830;--ring:rgba(153,195,38,.2);color-scheme:light}:root[data-theme=dark]{--bg:#0b110f;--ink:#f1f5ed;--muted:#8c978e;--border:#64705f;--surface:#121b16;--olive:#c0cea9;--error:#ff9a8f;--ring:rgba(204,250,59,.18);color-scheme:dark;background:var(--bg);color:var(--ink)}*{box-sizing:border-box}body{margin:0;min-width:280px;background:var(--bg)}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}button:disabled{cursor:wait}svg{display:block;width:24px;height:24px}button:focus-visible,a:focus-visible{outline:2px solid var(--olive);outline-offset:5px}h1:focus,p:focus{outline:none}.login-shell{position:relative;min-height:100svh;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 78% 47%,rgba(207,220,178,.08),transparent 51%),var(--bg)}.site-header{position:absolute;z-index:3;inset:30px 3.45vw auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:inline-flex;align-items:center;gap:16px;flex-shrink:0}.brand img{display:block;width:64px;height:64px;border-radius:15px}.brand-type{display:flex;flex-direction:column;gap:2px;white-space:nowrap}.brand-type strong{font-size:29px;line-height:1.2;font-weight:650;letter-spacing:-.04em}.brand-type>span{font-size:19px;line-height:1.5;font-weight:450;letter-spacing:.02em}.icon-button{border:0;background:transparent;display:grid;place-items:center;padding:10px;min-width:44px;min-height:44px;border-radius:50%;color:var(--olive);transition:background-color .16s}.icon-button:hover{background:#7a925117}.theme-button{align-self:flex-start;margin-top:7px}.theme-button svg{width:27px;height:27px}.login-main{position:relative;min-height:100svh;display:grid;grid-template-columns:50% 50%;align-items:center;padding:160px 0 80px}.auth-panel{position:relative;z-index:2;width:min(31vw,460px);margin-left:12vw;margin-top:36px}.auth-panel h1{font-size:clamp(34px,3.25vw,48px);font-weight:650;line-height:1.25;letter-spacing:.02em;margin:0 0 34px}.field-group{margin:0 0 26px}.field-group label{display:block;font-size:clamp(17px,1.55vw,23px);font-weight:500;line-height:1.4;margin-bottom:12px}.field-group input{display:block;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:clamp(54px,4.3vw,64px);padding:0 18px;background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:12px;font-size:clamp(17px,1.52vw,22px);line-height:1.4;box-shadow:0 0 0 0 transparent;transition:border-color .16s,box-shadow .16s}.field-group input::placeholder{color:#9b9f98;opacity:1}.field-group input:focus{outline:0;border-color:#6d8b3a;box-shadow:0 0 0 3px var(--ring)}.password-field{position:relative}.password-field input{padding-right:60px}.password-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--muted)}.password-toggle svg{width:26px;height:26px}.form-meta{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;min-height:27px;margin-top:-6px}.text-button{border:0;background:none;padding:0;color:var(--olive);font-size:clamp(15px,1.4vw,20px);line-height:1.4;white-space:nowrap;border-radius:2px}.text-button:hover{text-decoration:underline;text-underline-offset:4px}.caps-hint{font-size:13px;line-height:1.6;color:var(--olive)}.form-message{color:var(--error);font-size:14px;line-height:1.5;min-height:21px;margin:6px 0 10px;overflow-wrap:anywhere}.login-button{border:1px solid transparent;border-radius:999px;background:var(--accent);color:#0b110f;display:flex;justify-content:center;align-items:center;gap:10px;width:100%;height:clamp(56px,4.3vw,64px);font-size:clamp(20px,1.8vw,26px);line-height:1.2;font-weight:600;letter-spacing:.02em;transition:background-color .16s,transform .16s,box-shadow .16s}.login-button:hover:not(:disabled){background:#c3f32b;box-shadow:0 5px 20px #779b1817}.login-button:active:not(:disabled){transform:translateY(1px)}.login-button:disabled{background:#d6ed86}.spinner{width:18px;height:18px;border:2px solid rgba(11,17,15,.2);border-top-color:#0b110f;border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hero{position:absolute;z-index:0;right:3.5vw;top:3.5vh;width:48vw;height:92vh;pointer-events:none;contain:layout}.hero-fallback{display:block;width:100%;height:100%;object-fit:contain;object-position:center;transition:opacity .22s;filter:brightness(.88) saturate(.62);-webkit-user-select:none;user-select:none}.hero canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;transition:opacity .22s;pointer-events:auto;touch-action:pan-y}.hero[data-scene=ready] canvas{opacity:1}.hero[data-scene=ready] .hero-fallback{opacity:0}.ground-glow{position:absolute;bottom:2.5%;left:25%;width:43%;height:2%;background:radial-gradient(ellipse,rgba(108,133,54,.14),transparent 66%);filter:blur(7px);opacity:.5}.hero.is-success{animation:success-fade .35s ease-out both}@keyframes success-fade{to{opacity:.45;transform:translateY(-4px)}}[data-theme=dark] .hero-fallback{filter:brightness(1.6) saturate(.75)}[data-theme=dark] .ground-glow{background:radial-gradient(ellipse,rgba(204,250,59,.19),transparent 70%)}.reset-dialog{color:var(--ink);background:var(--surface);width:min(400px,calc(100vw - 40px));padding:32px;border:1px solid rgba(131,150,101,.16);border-radius:22px;box-shadow:0 20px 80px #0000001f}.reset-dialog::backdrop{background:#0c140d3d;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.reset-dialog h2{font-size:24px;margin:0 0 18px;font-weight:600}.reset-dialog p{font-size:16px;line-height:1.75;color:var(--olive);margin:0 0 28px}.reset-dialog .login-button{height:48px;font-size:17px}.dialog-close{position:absolute;right:16px;top:16px}.password-note{font-size:15px;line-height:1.6;color:var(--olive);margin:-16px 0 28px}.verified-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;color:#344a17;background:var(--accent);margin-bottom:24px}.verified-icon svg{width:25px;height:25px}.session-panel h1{margin-bottom:24px}.identity{font-size:21px;margin:0 0 14px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;overflow-wrap:anywhere}.identity span{font-size:13px;padding:4px 9px;border:1px solid var(--border);border-radius:6px;color:var(--olive)}.session-note{font-size:15px;line-height:1.6;color:var(--olive);margin:0 0 36px}.secondary-button{border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--ink);height:50px;font-size:17px;width:100%}.secondary-button:hover{background:var(--ring)}@media(min-width:1800px){.auth-panel{margin-left:max(12vw,calc((100vw - 1440px)/2));width:460px}.hero{right:max(3.5vw,calc((100vw - 1720px)/2));width:min(48vw,900px)}.login-main{padding-top:180px}.site-header{inset:40px 4vw auto}}@media(max-height:760px)and (min-width:761px){.site-header{top:22px}.brand img{width:54px;height:54px}.brand-type strong{font-size:25px}.brand-type>span{font-size:16px}.login-main{padding:125px 0 45px;min-height:680px}.auth-panel{margin-top:0}.auth-panel h1{margin-bottom:25px;font-size:38px}.field-group{margin-bottom:22px}.field-group label{margin-bottom:10px;font-size:18px}.field-group input{height:54px;font-size:18px}.hero{height:630px;top:16px}.login-button{height:56px;font-size:22px}}@media(min-width:761px)and (max-width:1100px){.auth-panel{width:36vw;margin-left:8vw}.hero{right:0;width:51vw}.site-header{left:30px;right:24px}.brand{gap:12px}.brand img{width:58px;height:58px}.brand-type strong{font-size:26px}.brand-type>span{font-size:17px}}@media(max-width:760px){.site-header{inset:24px 24px auto}.brand{gap:12px}.brand img{width:50px;height:50px;border-radius:12px}.brand-type strong{font-size:25px}.brand-type>span{font-size:15px}.theme-button{margin-top:0}.theme-button svg{width:24px;height:24px}.login-main{display:flex;align-items:center;padding:145px 24px 64px;min-height:100svh}.auth-panel{width:min(100%,420px);margin:0 auto}.auth-panel h1{font-size:36px;margin-bottom:34px}.field-group{margin-bottom:26px}.field-group label{font-size:17px;margin-bottom:11px}.field-group input{font-size:17px;height:56px}.hero{display:none}.login-button{height:56px;font-size:21px}.form-meta{margin-top:-4px}.text-button{font-size:15px}.form-message{margin:6px 0 12px}.password-note{margin-top:-18px}.login-shell{overflow-x:hidden;overflow-y:visible}}@media(max-width:360px){.site-header{left:20px;right:16px}.login-main{padding:138px 20px 40px}.brand-type>span{font-size:14px}.auth-panel h1{font-size:32px}.field-group input{padding-left:14px}.reset-dialog{padding:26px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.native-help{position:relative;color:var(--olive)}.native-help summary{list-style:none;cursor:pointer}.native-help summary::-webkit-details-marker{display:none}.native-help p{position:absolute;z-index:5;right:0;top:24px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px;width:230px;font-size:14px;line-height:1.6;box-shadow:0 10px 35px #00000014}.hero[data-scene=ready] .hero-fallback{opacity:.06}.hero.is-success[data-scene=ready] .hero-fallback{-webkit-mask-image:radial-gradient(circle var(--ball-mask-radius) at var(--ball-mask-x) var(--ball-mask-y),transparent 99%,#000 100%);mask-image:radial-gradient(circle var(--ball-mask-radius) at var(--ball-mask-x) var(--ball-mask-y),transparent 99%,#000 100%)}[data-theme=dark] .hero-fallback{filter:grayscale(1) invert(.78) sepia(.25)}.hero.is-success[data-scene=ready] .hero-fallback{opacity:0}.hero.is-success{animation-duration:.65s}.hero-fallback{transform:none}.hero canvas{z-index:2}.hero-fallback{position:relative;z-index:1}.hero[data-success-motion=awaiting-reference].is-success{animation:none}.login-athlete-layer{position:fixed}.login-athlete-layer[hidden]{display:none}.login-athlete-layer canvas{pointer-events:none}.login-athlete-layer.is-success{animation:none;pointer-events:none}.login-athlete-layer.is-success canvas{pointer-events:none}.login-athlete-layer[data-after-login=true].is-success{z-index:40;animation:athlete-handoff .78s linear forwards}@keyframes athlete-handoff{0%,65%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.login-athlete-layer[data-after-login=true].is-success{display:none;animation:none}}.hero[data-scene=photo] .hero-fallback{opacity:1;transform:perspective(1100px) rotateY(var(--photo-yaw,0deg)) rotateX(var(--photo-pitch,0deg));transform-origin:50% 50%;will-change:transform}.hero[data-scene=photo].is-success .hero-fallback{opacity:1;-webkit-mask-image:none;mask-image:none}.hero[data-scene=relief] canvas{opacity:1;filter:brightness(.88) saturate(.62);pointer-events:none}.hero[data-scene=relief] .hero-fallback{opacity:0;transform:none;-webkit-mask-image:none;mask-image:none}[data-theme=dark] .hero[data-scene=relief] canvas{filter:grayscale(1) invert(.78) sepia(.25)}.hero[data-scene=athlete-ready] canvas{opacity:1;filter:none;pointer-events:none}.hero[data-scene=athlete-ready] .hero-fallback{opacity:0;transform:none;-webkit-mask-image:none;mask-image:none}.hero-fallback{object-fit:cover;filter:none}[data-theme=dark] .hero-fallback{filter:brightness(1.12)}.hero-fallback{position:absolute;left:50%;translate:-50% 0;width:auto;max-width:none;height:100%;object-fit:contain}
