.auth-layout{min-height:100vh;min-height:100svh;display:flex;flex-direction:column}.auth-layout .auth-shell{flex:1 0 auto}.auth-shell{display:flex;align-items:center;justify-content:center;padding:var(--space-2xl) var(--space-md);background:var(--color-surface)}.auth-stage{position:relative;display:flex;justify-content:center;width:100%}.auth-decor{position:absolute;top:50%;left:calc(50% + 5rem);width:26rem;transform:translateY(-50%);pointer-events:none;z-index:0}.auth-decor svg{display:block;width:100%;height:auto}@media (max-width: 63.9375rem){.auth-decor{display:none}}.ad-fly{transform-box:fill-box;transform-origin:center;animation-duration:1.1s;animation-timing-function:cubic-bezier(.34,1.56,.64,1);animation-fill-mode:backwards}.ad-fly--a{animation-name:ad-fly-a;animation-delay:80ms}.ad-fly--b{animation-name:ad-fly-b;animation-delay:.22s}.ad-fly--c{animation-name:ad-fly-c;animation-delay:.33s}.ad-fly--d{animation-name:ad-fly-d;animation-delay:.45s}@keyframes ad-fly-a{0%{opacity:0;transform:translate(90px,-140px) rotate(-160deg) scale(.2)}45%{opacity:1;transform:translate(-34px,30px) rotate(38deg) scale(1.3)}70%{transform:translate(20px,-16px) rotate(-16deg) scale(.9)}88%{transform:translate(-7px,6px) rotate(6deg) scale(1.06)}to{opacity:1;transform:none}}@keyframes ad-fly-b{0%{opacity:0;transform:translate(-120px,120px) rotate(200deg) scale(.15)}45%{opacity:1;transform:translate(40px,-34px) rotate(-52deg) scale(1.35)}70%{transform:translate(-22px,18px) rotate(20deg) scale(.88)}88%{transform:translate(9px,-7px) rotate(-8deg) scale(1.07)}to{opacity:1;transform:none}}@keyframes ad-fly-c{0%{opacity:0;transform:translate(150px,90px) rotate(-240deg) scale(.2)}45%{opacity:1;transform:translate(-44px,-26px) rotate(60deg) scale(1.28)}70%{transform:translate(24px,14px) rotate(-22deg) scale(.9)}88%{transform:translate(-9px,-5px) rotate(9deg) scale(1.05)}to{opacity:1;transform:none}}@keyframes ad-fly-d{0%{opacity:0;transform:translate(-70px,170px) rotate(180deg) scale(.1)}45%{opacity:1;transform:translate(26px,-46px) rotate(-40deg) scale(1.32)}70%{transform:translate(-16px,26px) rotate(18deg) scale(.89)}88%{transform:translate(6px,-10px) rotate(-7deg) scale(1.06)}to{opacity:1;transform:none}}.ad-disc{transform-box:fill-box;transform-origin:center;animation:ad-disc-in .9s var(--ease-out) backwards}@keyframes ad-disc-in{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:none}}.auth-card{position:relative;z-index:1;width:100%;max-width:30rem;background:var(--color-paper);border:1px solid var(--color-rule);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);padding:var(--space-xl) var(--space-lg)}@media (min-width: 40rem){.auth-card{padding:var(--space-2xl) var(--space-xl)}}.auth-card__title{font-family:var(--font-display);font-weight:700;font-size:clamp(1.5rem,3.5vw,2rem);line-height:1.15;letter-spacing:-.025em;color:var(--color-ink);text-align:center;text-wrap:balance;overflow-wrap:anywhere;min-width:0}.auth-card__sub{text-align:center;font-size:var(--text-sm);color:var(--color-ink-2);line-height:1.6;margin-top:var(--space-2xs)}.auth-card__logo{display:block;width:4.5rem;height:auto;margin:0 auto var(--space-md)}.auth-form{display:flex;flex-direction:column;gap:var(--space-sm)}.auth-form--spaced{margin-top:var(--space-xl)}.auth-field{position:relative;display:flex;align-items:center}.auth-field__icon{position:absolute;left:var(--space-sm);display:flex;color:var(--color-ink-3);pointer-events:none}.auth-field__input{width:100%;font-family:var(--font-body);font-size:var(--text-md);color:var(--color-ink);background:var(--color-paper);border:1px solid var(--color-rule);border-radius:var(--radius-lg);padding:var(--space-sm) var(--space-sm) var(--space-sm) 2.875rem;transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.auth-field__input::-moz-placeholder{color:var(--color-ink-3)}.auth-field__input::placeholder{color:var(--color-ink-3)}.auth-field__input:focus{outline:none;border-color:var(--g);box-shadow:0 0 0 3px color-mix(in oklch,var(--g) 22%,transparent)}.auth-field__trail{position:absolute;right:var(--space-sm);display:flex;align-items:center;justify-content:center;color:var(--color-ink-3);background:none;border:none;padding:0;cursor:pointer;min-height:unset;min-width:unset;transition:color var(--dur-base) var(--ease-out)}.auth-field__trail:hover{color:var(--color-ink-2)}.auth-field--trail .auth-field__input{padding-right:2.875rem}.auth-forgot{align-self:flex-end;font-size:var(--text-sm);font-weight:500;color:var(--g-t);min-height:unset;min-width:unset}.auth-forgot:hover{text-decoration:underline}.auth-submit{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2xs);position:relative;overflow:hidden;font-family:var(--font-body);font-size:var(--text-md);font-weight:700;line-height:1;white-space:nowrap;color:var(--g-ink);background:var(--g);border:none;border-radius:var(--radius-lg);padding:var(--space-sm) var(--space-lg);cursor:pointer;transition:background var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.auth-submit:before{content:"";position:absolute;inset:0;background:url(/assets/shape.png) center / cover no-repeat;opacity:.18;mix-blend-mode:overlay;pointer-events:none}.auth-submit>*{position:relative;z-index:1}.auth-submit:hover:not(:disabled){background:var(--g-d);transform:scale(1.02);box-shadow:0 0 0 4px color-mix(in oklch,var(--g) 20%,transparent)}.auth-submit:disabled{opacity:.55;cursor:not-allowed}.auth-divider{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-sm);color:var(--color-ink-2);margin:var(--space-2xs) 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--color-rule)}.auth-social{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2xs);font-family:var(--font-body);font-size:var(--text-md);font-weight:600;color:var(--color-ink);background:var(--color-surface-raised);border:1px solid var(--color-rule);border-radius:var(--radius-lg);padding:var(--space-sm) var(--space-lg);cursor:pointer;transition:background var(--dur-base) var(--ease-out)}.auth-social:disabled{opacity:.6;cursor:not-allowed}.auth-swap{text-align:center;font-size:var(--text-sm);color:var(--color-ink-2);margin-top:var(--space-lg)}.auth-swap a{color:var(--g-t);font-weight:700;min-height:unset;min-width:unset}.auth-swap a:hover{text-decoration:underline}.auth-alert{display:flex;align-items:flex-start;gap:var(--space-2xs);font-size:var(--text-sm);line-height:1.5;border-radius:var(--radius-lg);padding:var(--space-xs) var(--space-sm)}.auth-alert svg{flex-shrink:0;margin-top:2px}.auth-alert--error{color:#a2080c;background:var(--color-error-tint);border:1px solid oklch(85% .07 28)}.auth-alert--success{color:var(--g-t);background:var(--g-tint);border:1px solid oklch(85% .07 157)}.auth-terms{display:flex;align-items:flex-start;gap:var(--space-2xs);font-size:var(--text-sm);color:var(--color-ink-2);line-height:1.5;cursor:pointer}.auth-terms input{margin-top:3px;width:1rem;height:1rem;accent-color:var(--g);flex-shrink:0;min-height:unset;min-width:unset}.auth-terms a{color:var(--g-t);font-weight:600}.auth-terms a:hover{text-decoration:underline}.auth-code{display:flex;justify-content:center;gap:var(--space-2xs)}.auth-code input{width:2.75rem;height:3.25rem;text-align:center;font-size:var(--text-xl);font-weight:700;font-family:var(--font-body);color:var(--color-ink);background:var(--color-paper);border:1px solid var(--color-rule);border-radius:var(--radius-lg);transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.auth-code input:focus{outline:none;border-color:var(--g);box-shadow:0 0 0 3px color-mix(in oklch,var(--g) 22%,transparent)}.auth-ghost{background:none;border:none;cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;color:var(--g-t);min-height:unset;min-width:unset}.auth-ghost:hover{text-decoration:underline}.auth-ghost:disabled{opacity:.5;cursor:not-allowed}.auth-ghost--muted{color:var(--color-ink-3);font-weight:500}.auth-spin{animation:auth-spin .8s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
