:root{color-scheme:light;--paper:#f4f3ee;--surface:#fdfdfa;--ink:#29352e;--muted:#687168;--line:#d6dcd3;--accent:#3c5846;--accent-hover:#2d4636;--error:#a2372e;--ease:cubic-bezier(.2,.8,.2,1);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font-size:14px;line-height:1.5}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit;color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex="-1"]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}[hidden]{display:none!important}.skip-link{position:fixed;z-index:100;top:-70px;left:20px;padding:12px 20px;background:var(--surface);border:1px solid var(--accent);border-radius:8px}.skip-link:focus{top:12px}
.auth-header{display:flex;align-items:center;justify-content:space-between;padding:30px clamp(24px,5vw,100px);gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:17px;font-weight:650;letter-spacing:.02em}.brand img{object-fit:contain}.brand small{display:block;font-size:10px;font-weight:400;letter-spacing:.12em;color:var(--muted);margin-top:1px}.home-link{display:flex;align-items:center;gap:8px;min-height:44px;font-size:12px;color:var(--muted)}.home-link svg{width:16px;height:16px}
.auth-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:clamp(48px,8vw,180px);max-width:1600px;margin:12px auto 0;padding:30px clamp(32px,6.7vw,128px) 58px;min-height:calc(100dvh - 175px)}.welcome{align-self:center;min-width:0}.eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 22px;font-size:12px;letter-spacing:.12em;color:var(--accent)}.eyebrow>span{width:6px;height:6px;border-radius:50%;background:var(--accent)}h1{font-size:clamp(32px,3.5vw,56px);line-height:1.43;letter-spacing:-.045em;font-weight:580;margin:0}.welcome-copy{font-size:14px;color:var(--muted);line-height:1.95;margin:20px 0 0}.access-art{position:relative;max-width:490px;margin-top:34px;padding:14px 12px 0}.art-grid{position:absolute;inset:0 0 38px;background-image:radial-gradient(#9aa6965c .7px,transparent .7px);background-size:14px 14px;mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}.access-ticket{position:relative;transform:rotate(-4deg);border:1px solid #cdd6c8;border-radius:14px;background:#e7ebdf;box-shadow:0 18px 35px -22px #52634c5c;overflow:hidden;animation:ticket-enter .9s var(--ease) both}.ticket-heading{display:flex;justify-content:space-between;align-items:center;padding:19px 24px 0;font-size:11px;letter-spacing:.09em;color:#59674f}.ticket-mark{font-family:ui-monospace,SFMono-Regular,monospace;font-size:10px}.egg-study{height:210px;position:relative;display:grid;place-items:center}.study-lines{position:absolute;inset:0;width:100%;height:100%;stroke:#7b8d6c55;stroke-width:.65}.study-egg{position:relative;width:105px;height:138px;border-radius:53% 47% 49% 51% / 65% 66% 34% 35%;transform:rotate(12deg);background:radial-gradient(ellipse at 30% 27%,#fcfff4,#e8eedb 44%,#b8c5a7 86%);box-shadow:inset -6px -7px 14px #71866738,inset 3px 3px 7px #ffffffb0,9px 18px 18px -15px #455b3e9c;transition:transform .7s var(--ease)}.study-egg:after{content:"";position:absolute;inset:5px;border:1px solid #fff8;border-radius:inherit}.egg-seam{position:absolute;width:100%;top:73px;height:12px;border-top:1px solid #77906466;border-radius:50%;transform:rotate(-15deg)}.egg-eyes{position:absolute;left:39px;top:51px;display:flex;gap:14px;transform:rotate(-12deg)}.egg-eyes i{width:3px;height:4px;background:#6a7b5c;border-radius:50%;transition:transform .18s}.is-revealed .egg-eyes i{transform:scaleY(.25)}.is-register .study-egg{transform:rotate(-7deg) translateY(-4px)}.study-label{position:absolute;font-size:9px;color:#58684c;letter-spacing:.06em}.label-one{left:20px;bottom:39px;writing-mode:vertical-rl}.label-two{right:24px;top:35px;font-family:ui-monospace,monospace;font-size:8px;letter-spacing:.08em}.ticket-bottom{display:flex;align-items:center;justify-content:space-between;padding:0 24px 13px;font-size:11px;letter-spacing:.12em;color:#53634a}.ticket-arrow{font-size:22px;line-height:1}.ticket-perforation{border-top:1px dashed #9eac915e;margin:0 10px;position:relative}.ticket-perforation:before,.ticket-perforation:after{content:"";position:absolute;width:18px;height:18px;background:var(--paper);border:1px solid #cdd6c8;border-radius:50%;top:-9px;left:-20px}.ticket-perforation:after{left:auto;right:-20px}.ticket-stub{display:flex;align-items:center;justify-content:space-between;padding:15px 24px 18px;gap:16px;font-size:10px;color:#59684f}.ticket-bars{height:18px;width:58px;background:repeating-linear-gradient(90deg,#5a6b4d 0 1px,transparent 1px 3px,#5a6b4d 3px 5px,transparent 5px 7px);opacity:.55}.art-caption{display:flex;justify-content:space-between;gap:8px;position:relative;margin:30px -4px 0;font-size:10px;color:var(--muted)}.art-caption span:last-child{font-size:8px;font-family:ui-monospace,monospace;letter-spacing:.05em}
.auth-pane{width:100%;max-width:440px;min-width:0;justify-self:center;position:relative}.form-topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;color:var(--muted)}.form-index{font-size:10px;letter-spacing:.08em}.form-flower{font-size:24px;line-height:1;color:#7c8a71}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;position:relative;padding:4px;border:1px solid #dce0d6;border-radius:12px;background:#eaece4;height:48px;isolation:isolate}.auth-tabs button{position:relative;background:transparent;border:0;border-radius:8px;z-index:1;font-size:13px;color:var(--muted);transition:color .2s}.auth-tabs button[aria-selected=true]{color:var(--ink);font-weight:600}.tab-track{position:absolute;left:4px;top:4px;bottom:4px;width:calc(50% - 4px);background:var(--surface);border-radius:8px;box-shadow:0 1px 3px #23321f0d;transition:transform .48s cubic-bezier(.2,.9,.2,1.1)}.is-register .tab-track{transform:translateX(100%)}.form-intro{margin:28px 0 26px}.form-intro h2{font-weight:590;line-height:1.45;letter-spacing:-.03em;font-size:27px;margin:0 0 8px}.form-intro p{color:var(--muted);font-size:12px;margin:0}.field{min-width:0;margin-bottom:17px}.field label{display:block;font-size:12px;font-weight:550;margin-bottom:7px}.field input{width:100%;min-width:0;height:47px;padding:0 14px;border:1px solid var(--line);border-radius:9px;background:var(--surface);font-size:16px;line-height:1.5;transition:border-color .18s,background-color .18s}.field input::placeholder{color:var(--muted);font-size:13px}.field input:focus{border-color:var(--accent);outline:2px solid #829d732b;outline-offset:1px}.field input[aria-invalid=true]{border-color:var(--error)}.field-hint{margin:6px 0 0;color:var(--muted);font-size:10px;line-height:1.6}.field-error{margin:6px 0 0;color:var(--error);font-size:11px;line-height:1.6}.email-entry{display:flex;align-items:center;position:relative}.email-entry input{padding-right:116px}.send-code{position:absolute;right:5px;top:5px;bottom:5px;min-width:104px;padding:0 9px;background:#edf0e7;border:0;border-radius:6px;color:var(--accent);font-size:11px;font-weight:550;transition:background-color .16s}.send-code:disabled{color:var(--muted);background:#f0f0eb}.label-line{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.label-line #code-status{font-size:10px;color:var(--accent)}#code{letter-spacing:.22em;font-variant-numeric:tabular-nums}#code::placeholder{letter-spacing:.03em}.password-entry{position:relative}.password-entry input{padding-right:46px}.reveal-password{position:absolute;right:3px;top:3px;bottom:3px;width:40px;display:grid;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--muted)}.reveal-password svg{width:18px;height:18px}.eye-slash{display:none}.reveal-password[aria-pressed=true] .eye-slash{display:block}.password-grid{display:grid;grid-template-columns:1fr;gap:0}.is-register .password-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.caps-lock{margin:-7px 0 12px;color:#805c25}.password-strength{margin:-3px 0 20px;padding:10px 12px 9px;background:#ecefe6;border-radius:8px;--strength-color:#5c6c52}.strength-heading{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted);height:19px}.strength-heading b{margin-left:5px;font-weight:500;color:var(--ink)}.strength-sprout{width:24px;height:24px;stroke:#81936e;stroke-width:1.4}.strength-sprout path{stroke-dasharray:55;stroke-dashoffset:55;transition:stroke-dashoffset .65s var(--ease);fill:none}.password-strength[data-level="1"] .sprout-one,.password-strength[data-level="2"] .sprout-one,.password-strength[data-level="3"] .sprout-one,.password-strength[data-level="2"] .sprout-two,.password-strength[data-level="3"] .sprout-two,.password-strength[data-level="3"] .sprout-three{stroke-dashoffset:0}.strength-meter{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:8px 0}.strength-meter>span{height:3px;border-radius:3px;background:#d4dbcd;overflow:hidden}.strength-meter i{display:block;width:100%;height:100%;background:var(--strength-color);border-radius:inherit;transform:scaleX(0);transform-origin:left;transition:transform .58s cubic-bezier(.16,1,.3,1)}.password-strength[data-level="1"]{--strength-color:#997442}.password-strength[data-level="2"]{--strength-color:#748253}.password-strength[data-level="3"]{--strength-color:#3c684f}.password-strength[data-level="1"] .strength-meter>span:nth-child(1) i,.password-strength[data-level="2"] .strength-meter>span:nth-child(-n+2) i,.password-strength[data-level="3"] .strength-meter i{transform:scaleX(1)}.strength-meter>span:nth-child(2) i{transition-delay:50ms}.strength-meter>span:nth-child(3) i{transition-delay:100ms}.password-strength p{font-size:10px;color:var(--muted);margin:0;line-height:1.5}.login-note{margin:1px 0 20px;font-size:11px;color:var(--muted)}.submit-button{display:flex;align-items:center;justify-content:space-between;position:relative;gap:14px;min-height:48px;width:100%;border:0;border-radius:9px;padding:12px 18px;background:var(--accent);color:#fff;font-size:13px;font-weight:550;transition:background-color .18s,transform .3s var(--ease)}.submit-arrow{width:19px;height:19px;transition:transform .3s var(--ease)}.submit-button:active{transform:scale(.985)}.submit-button:disabled{background:#5a6e5a}.button-spinner{display:none;width:17px;height:17px;border:1.5px solid #ffffff60;border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.submit-button[aria-busy=true] .submit-arrow{display:none}.submit-button[aria-busy=true] .button-spinner{display:block}.mode-switch{display:flex;justify-content:center;align-items:center;gap:7px;margin:20px 0 0;font-size:11px;color:var(--muted)}.mode-switch button{background:transparent;border:0;color:var(--accent);font-size:11px;font-weight:550;padding:6px 2px;min-height:32px}.mode-switch button span{margin-left:4px}.account-note{display:flex;align-items:center;gap:9px;margin:26px 0 0;padding-top:20px;border-top:1px solid #d9ded5;color:var(--muted)}.account-note svg{width:18px;height:18px;stroke:#788570}.account-note p{margin:0;font-size:10px;line-height:1.8}.form-feedback{font-size:12px;color:var(--error);background:#f6e9e3;border:1px solid #ead1c5;border-radius:8px;padding:10px 12px;margin:0 0 18px}.form-feedback:focus{outline:2px solid var(--error);outline-offset:2px}.form-feedback a{text-decoration:underline}.auth-footer{display:flex;justify-content:space-between;gap:20px;padding:0 clamp(24px,5vw,100px) 24px;font-size:10px;color:var(--muted)}.is-register .form-intro{margin:22px 0}.is-register .auth-layout{padding-top:20px;align-items:start}.is-register .welcome{padding-top:30px}.is-register .field{margin-bottom:14px}.is-register .account-note{margin-top:20px;padding-top:16px}#auth-panel.is-entering .form-intro{animation:form-enter .34s var(--ease) both}
@media(hover:hover){.home-link:hover,.mode-switch button:hover{color:var(--ink)}.send-code:not(:disabled):hover{background:#dfe7d6}.reveal-password:hover{background:#edf0e7}.submit-button:not(:disabled):hover{background:var(--accent-hover)}.submit-button:not(:disabled):hover .submit-arrow{transform:translateX(3px)}}
@media(min-width:1600px){.auth-layout{max-width:1800px;gap:180px;padding-inline:140px}.access-art{max-width:520px}.auth-pane{max-width:460px}}
@media(max-width:1023px){.auth-layout{gap:44px;padding-inline:38px;grid-template-columns:minmax(0,.9fr) minmax(0,1fr)}h1{font-size:34px}.access-art{padding-inline:0}.ticket-stub{font-size:9px}.art-caption span:last-child{display:none}.study-label{font-size:8px}.ticket-heading,.ticket-bottom,.ticket-stub{padding-inline:18px}.is-register .password-grid{grid-template-columns:1fr;gap:0}}
@media(max-width:767px){.auth-header{padding:20px 24px}.brand{font-size:15px}.brand img{width:27px;height:31px}.auth-layout,.is-register .auth-layout{display:block;min-height:calc(100dvh - 166px);max-width:500px;margin:0 auto;padding:24px 28px 40px}.welcome{display:none}.auth-pane{max-width:none}.form-topline{margin-bottom:18px}.form-intro{margin:26px 0}.form-intro h2{font-size:26px}.auth-footer{padding:0 24px 22px;display:block;font-size:9px}.auth-footer span+span{display:none}.is-register .password-grid{grid-template-columns:1fr 1fr;gap:12px}.field input{height:49px}.auth-tabs{height:49px}.form-index{font-size:10px}.account-note p br{display:none}.field-hint,.password-strength p,.account-note p{font-size:11px}.send-code{font-size:11px}.mode-switch,.mode-switch button,.login-note{font-size:12px}}
@media(max-width:374px){.auth-header{padding-inline:18px}.auth-layout,.is-register .auth-layout{padding-inline:20px}.is-register .password-grid{grid-template-columns:1fr;gap:0}.form-intro h2{font-size:24px}.field-hint{font-size:10px}.email-entry input{padding-right:104px}.send-code{min-width:94px;padding-inline:6px}.home-link{font-size:11px}}
@media(any-pointer:coarse){.reveal-password{min-width:44px}.send-code{min-height:44px;top:2px;bottom:2px}.mode-switch button{min-height:44px}.home-link{min-height:44px}}
@media(prefers-contrast:more){:root{--muted:#414d42;--line:#75836f}.field-hint,.password-strength p{color:#414d42}.field input{border-width:2px}.study-label{color:#34432c}.auth-tabs{border-color:#75836f}}
@media(prefers-reduced-transparency:reduce){.auth-tabs,.access-ticket{background:#e7ebdf}.auth-pane{background:var(--paper)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.button-spinner{border-style:dotted}}
.captcha-field{margin-top:3px}.captcha-entry{display:grid;grid-template-columns:minmax(0,1fr) 188px;gap:10px;align-items:center}.captcha-entry input{min-width:0;text-transform:uppercase;letter-spacing:.12em;font-variant-numeric:tabular-nums}.captcha-image-wrap{display:flex;align-items:center;gap:6px;min-width:0}.captcha-image-wrap img{display:block;width:176px;height:58px;max-width:calc(100% - 44px);object-fit:cover;border:1px solid var(--line);border-radius:8px;background:#f1f5f3;opacity:.55;transition:opacity .24s,filter .24s}.captcha-image-wrap img.is-ready{opacity:1}.captcha-image-wrap button{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--accent);transition:background-color .18s,transform .3s var(--ease)}.captcha-image-wrap button:hover{background:#edf0e7}.captcha-image-wrap button:active{transform:rotate(-35deg)}.captcha-image-wrap svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}@media(max-width:520px){.captcha-entry{grid-template-columns:1fr;gap:8px}.captcha-image-wrap{justify-content:flex-start}.captcha-image-wrap img{max-width:176px}}@media(prefers-reduced-motion:reduce){.captcha-image-wrap img,.captcha-image-wrap button{transition:none}}
@keyframes ticket-enter{from{opacity:0;transform:translateY(12px) rotate(-1deg)}to{opacity:1;transform:translateY(0) rotate(-4deg)}}@keyframes form-enter{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}
