.f-auth{min-height:100svh;background:var(--bg);color:var(--ink);font-family:var(--sans);padding:max(var(--space-7),env(safe-area-inset-top)) var(--space-6) max(var(--space-6),env(safe-area-inset-bottom))}.f-auth-inner{max-width:420px;margin:auto}.f-auth-brand{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5)}.f-auth-brand>svg{width:108px;height:auto;flex:none}.f-auth-brand>span{color:var(--ink-soft);font-size:var(--text-xs)}.f-auth-scene{padding-top:clamp(36px,7svh,72px);animation:f-auth-arrive var(--duration-slow) var(--ease-out) both}.f-auth-intro{margin-bottom:var(--space-7)}.f-auth-kicker{font:var(--text-xs)/1.4 var(--label);text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--ink-soft)}.f-auth-intro h1{font-size:clamp(40px,12vw,56px);font-weight:var(--fw-medium);line-height:1.02;letter-spacing:var(--tracking-tightest);margin:var(--space-4) 0 var(--space-5);text-wrap:balance}.f-auth-intro p{max-width:34ch;color:var(--ink-soft);font-size:var(--text-base);line-height:1.5}.f-auth :is(button,input){-webkit-tap-highlight-color:transparent}.f-auth :is(button,input):focus-visible{outline:2px solid var(--celeste-deep);outline-offset:4px}.f-auth :is(.f-auth-primary,.f-auth-google,.f-auth-secondary,.f-auth-back){min-height:52px;display:flex;align-items:center;justify-content:center;gap:var(--space-3);width:100%;border-radius:var(--r-pill);transition:transform var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out);font-size:var(--text-base)}.f-auth button:active:not(:disabled){transform:scale(.98)}.f-auth button:disabled{opacity:.6;cursor:progress}.f-auth-primary{padding:var(--space-4) var(--space-5);background:var(--lima);color:var(--marino);font-weight:var(--fw-medium);margin-top:var(--space-5)}.f-auth-primary svg{width:20px;height:20px}.f-auth-google{border:var(--bw) solid var(--line);background:var(--bg)}.f-auth-google svg{width:20px;height:20px}.f-auth-secondary{color:var(--ink-soft);margin-top:var(--space-3)}.f-auth-divider{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-6) 0;color:var(--ink-soft);font-size:var(--text-xs)}.f-auth-divider:after,.f-auth-divider:before{content:"";height:1px;background:var(--line-soft);flex:1}.f-auth form>label{display:block;font-size:var(--text-sm);margin:var(--space-4) 0 var(--space-2)}.f-auth-footnote,.f-auth-hint{font-size:var(--text-xs);line-height:1.5;color:var(--ink-soft);margin-top:var(--space-3)}.f-auth-footnote{text-align:center;margin-top:var(--space-4)}.f-auth-error{font-size:var(--text-sm);line-height:1.4;color:var(--state-danger);margin-top:var(--space-3)}.f-auth-error:empty{display:none}.f-auth-notice{color:var(--ink-soft);background:var(--paper);border-radius:var(--r-md);font-size:var(--text-sm);margin-bottom:var(--space-5)}.f-auth-input,.f-auth-notice{padding:var(--space-3) var(--space-4)}.f-auth-input{width:100%;min-height:52px;background:var(--bg);border:var(--bw) solid var(--line);border-radius:var(--r-md);font-size:16px;outline:none}.f-auth-password{position:relative}.f-auth-password input{padding-right:56px}.f-auth-password button{position:absolute;top:4px;right:4px;width:44px;height:44px;display:grid;place-items:center;border-radius:var(--r-md)}.f-auth-password svg{width:20px;height:20px}.f-auth .f-auth-back{width:fit-content;min-height:44px;margin-bottom:var(--space-4);color:var(--ink-soft)}.f-auth-back svg{width:20px;height:20px}.f-auth-footer{display:flex;justify-content:center;align-items:center;gap:var(--space-3);margin-top:var(--space-8);padding-bottom:var(--space-4);color:var(--ink-soft);font-size:var(--text-xs)}.f-auth-footer [lang]{font-family:var(--font-chinese),sans-serif}.f-auth-otp,.f-auth-otp-group{width:100%}.f-auth-otp-group{display:flex;gap:var(--space-2)}.f-auth-otp .f-auth-otp-slot{flex:1;min-width:0;height:56px;border:var(--bw) solid var(--line);border-radius:var(--r-md);font-size:var(--text-xl);box-shadow:none}.f-auth-spinner{animation:f-auth-spin 1s linear infinite}.f-welcome-content{display:contents}.f-welcome{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--space-8);background:var(--bg);color:var(--marino);text-align:center;transition:opacity .35s var(--ease-out)}.f-welcome[data-leaving=true]{opacity:0;pointer-events:none}.f-welcome>svg{width:112px;height:auto;animation:f-auth-arrive var(--duration-slow) var(--ease-out) both}.f-welcome [role=status]{animation:f-auth-arrive .6s var(--ease-out) .12s both}.f-welcome h1{font:var(--fw-medium) clamp(40px,12vw,64px)/1.1 var(--sans);letter-spacing:var(--tracking-tightest)}.f-welcome [lang]{font:400 32px/1.8 var(--font-chinese),sans-serif;margin-top:var(--space-2)}.f-welcome [role=status]>span{display:block;color:var(--ink-soft);margin-top:var(--space-5)}.f-welcome>button{min-height:44px;padding:var(--space-2) var(--space-5);color:var(--ink-soft);font-size:var(--text-sm)}@keyframes f-auth-arrive{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes f-auth-spin{to{transform:rotate(1turn)}}@media (min-width:701px){.f-auth{padding-top:max(var(--space-9),6svh)}}@media (prefers-reduced-motion:reduce){.f-auth *,.f-welcome,.f-welcome *{animation:none!important;transition:none!important}.f-auth button:active:not(:disabled){transform:none}}