@keyframes sbBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.055)}}@keyframes sbRise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes sbScan{0%,to{transform:translateX(-2.4px)}50%{transform:translateX(2.4px)}}@keyframes sbBlink2{0%,14%{transform:scaleY(1)}20%{transform:scaleY(.1)}27%{transform:scaleY(1)}38%{transform:scaleY(1)}44%{transform:scaleY(.1)}51%{transform:scaleY(1)}to{transform:scaleY(1)}}@keyframes sbNod{0%{transform:rotate(0deg) translateY(0)}30%{transform:rotate(3.5deg) translateY(2px)}62%{transform:rotate(-2deg) translateY(-1px)}to{transform:rotate(0deg) translateY(0)}}@keyframes sbLift{0%{transform:scale(1)}55%{transform:scale(1.16)}to{transform:scale(1.1)}}@keyframes sbDissolve{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}@keyframes sbBlinkIdle{0%,88%,to{transform:scaleY(1)}91%{transform:scaleY(.1)}94%{transform:scaleY(1)}}@keyframes sbGlance{0%,30%,to{transform:translateX(0)}38%,52%{transform:translateX(-2.4px)}60%,74%{transform:translateX(2.4px)}82%{transform:translateX(0)}}@keyframes sbPlate{0%{opacity:0}to{opacity:1}}@keyframes sbCaption{0%,55%{opacity:0}to{opacity:1}}.auth-shell{min-height:100%;height:100%;background:var(--stubie-bg);color:var(--stubie-ink);font-family:var(--stubie-font-body);font-size:15px;line-height:1.6}.auth-shell,.auth-shell__panel{position:relative;display:flex;overflow:hidden}.auth-shell__panel{flex:1 1 50%;background:var(--stubie-navy-950);padding:40px 44px;flex-direction:column;justify-content:space-between}.auth-shell__watermark{position:absolute;left:-18%;bottom:-26%;width:122%;opacity:.085;pointer-events:none}.auth-shell__brand{position:relative;display:flex;align-items:center;gap:9px;font-family:var(--stubie-font-display);font-weight:800;font-size:19px;letter-spacing:-.02em;color:#fff}.auth-shell__brand svg{animation:sbBreathe 4.5s ease-in-out infinite;transform-origin:center}.auth-shell__brand--narrow{display:none;color:var(--stubie-ink);font-size:18px;min-height:44px;padding:0 8px;margin:0 0 26px -8px;border-radius:var(--stubie-r-md)}.auth-shell__copy{position:relative;max-width:27ch}.auth-shell__title{font-family:var(--stubie-font-display);font-weight:800;font-size:clamp(24px,2.3vw,32px);letter-spacing:-.025em;line-height:1.2;color:#fff;margin:0 0 14px;text-wrap:pretty}.auth-shell__body{font-size:14px;color:var(--stubie-navy-200);margin:0;line-height:1.7}.auth-shell__footer{position:relative;font-size:11.5px;color:var(--stubie-navy-400);margin:0}.auth-shell__form-col{flex:1 1 50%;position:relative;display:flex;align-items:center;justify-content:center;padding:52px 40px;overflow-y:auto}.auth-shell__form-inner{width:100%;max-width:380px}.auth-screen{animation:sbRise .35s var(--stubie-ease) both}.auth-screen h1{font-family:var(--stubie-font-display);font-weight:800;font-size:28px;letter-spacing:-.025em;line-height:1.18;margin:0 0 8px}.auth-screen>p:first-of-type{color:var(--stubie-ink-muted);font-size:14.5px;margin:0 0 26px}.auth-back-link{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--stubie-ink-muted);cursor:pointer;min-height:44px;padding:0 8px;margin:0 0 12px -8px;background:none;border:none;border-radius:var(--stubie-r-md);transition:background var(--stubie-dur-1) var(--stubie-ease),color var(--stubie-dur-1) var(--stubie-ease)}.auth-back-link:hover{color:var(--stubie-ink);background:var(--stubie-surface-sunk)}.auth-fields{display:grid;grid-gap:16px;gap:16px}.auth-fields input,.auth-fields select{height:48px;padding:0 15px;border:1px solid var(--stubie-line-strong);border-radius:var(--stubie-r-md);font-family:var(--stubie-font-body);font-size:16px;color:var(--stubie-ink);background:var(--stubie-surface);outline:none;transition:border-color .12s var(--stubie-ease),box-shadow .12s var(--stubie-ease);width:100%}.auth-fields select{padding:0 12px}.auth-fields input:focus,.auth-fields select:focus{border-color:var(--stubie-accent);box-shadow:0 0 0 3px var(--stubie-accent-quiet)}.auth-fields input.auth-code-input{height:52px;padding:0 16px;font-family:var(--stubie-font-mono);font-size:19px;letter-spacing:.22em}.auth-divider{display:flex;align-items:center;gap:14px;margin:8px 0 0}.auth-divider span:not(.auth-divider__label){height:1px;flex:1 1;background:var(--stubie-line)}.auth-divider__label{font-size:11px;color:var(--stubie-ink-faint);text-transform:uppercase;letter-spacing:.1em;font-weight:700}.auth-ghost-btn,.auth-primary-btn,.auth-secondary-btn{width:100%}.auth-primary-btn{height:50px;border:none;border-radius:var(--stubie-r-pill);background:var(--stubie-primary);color:var(--stubie-primary-ink);font-family:var(--stubie-font-display);font-weight:700;font-size:15px;cursor:pointer;margin-top:6px;transition:background .18s var(--stubie-ease)}.auth-primary-btn:hover{background:var(--stubie-primary-hover)}.auth-primary-btn:disabled{opacity:.6;cursor:not-allowed}.auth-primary-btn--accent{background:var(--stubie-accent);color:var(--stubie-accent-ink)}.auth-primary-btn--accent:hover{background:var(--stubie-accent-hover)}.auth-secondary-btn{height:48px;border:1px solid var(--stubie-line-strong);border-radius:var(--stubie-r-pill);background:var(--stubie-surface);color:var(--stubie-ink);font-family:var(--stubie-font-display);font-weight:700;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:background .18s var(--stubie-ease)}.auth-secondary-btn:hover{background:var(--stubie-surface-2)}.auth-ghost-btn{height:44px;border:none;border-radius:var(--stubie-r-pill);background:transparent;color:var(--stubie-ink-muted);font-family:var(--stubie-font-display);font-weight:700;font-size:13.5px;cursor:pointer}.auth-ghost-btn:hover{color:var(--stubie-ink)}@media (max-width:880px){.auth-shell__panel{display:none}.auth-shell__brand--narrow{display:flex}}.auth-busy{display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px 0}.auth-busy__scan{animation:sbScan 1.6s ease-in-out infinite}.auth-busy__dot{animation:sbBreathe 1.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.auth-busy__label{font-family:var(--stubie-font-display);font-weight:700;font-size:16px;margin:22px 0 6px}.auth-busy__sub{font-size:13.5px;color:var(--stubie-ink-muted);margin:0}.auth-takeover{position:absolute;inset:0;background:var(--stubie-bg);display:flex;align-items:center;justify-content:center;overflow:hidden;z-index:5}.auth-takeover__skeleton{position:absolute;inset:0;filter:blur(18px);opacity:.9;animation:sbPlate .7s var(--stubie-ease) both;padding:34px;display:grid;grid-gap:16px;gap:16px;align-content:start}.auth-takeover__bar,.auth-takeover__block,.auth-takeover__tile{border-radius:var(--stubie-r-lg);background:var(--stubie-surface);border:1px solid var(--stubie-line)}.auth-takeover__bar{height:54px}.auth-takeover__row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}.auth-takeover__tile{height:96px}.auth-takeover__tile--accent{background:var(--stubie-accent-quiet);border:none}.auth-takeover__block{height:132px}.auth-takeover__center{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}.auth-takeover__logo{animation:sbLift .9s var(--stubie-ease) var(--stubie-takeover-lift-delay,.9s) both,sbDissolve .7s var(--stubie-ease) var(--stubie-takeover-dissolve-delay,1.7s) both}.auth-takeover__nod{transform-box:view-box;transform-origin:40px 40px;animation:sbNod .8s var(--stubie-ease) .76s both}.auth-takeover__blink{transform-box:fill-box;transform-origin:center;animation:sbBlink2 1.1s var(--stubie-ease) .12s both}.auth-takeover__title{font-family:var(--stubie-font-display);font-weight:800;font-size:20px;letter-spacing:-.02em;margin:26px 0 6px;animation:sbCaption 1.6s var(--stubie-ease) both}.auth-takeover__body{font-size:13.5px;color:var(--stubie-ink-muted);margin:0;animation:sbCaption 2.1s var(--stubie-ease) both}.auth-takeover__hint{font-size:12.5px;color:var(--stubie-ink-faint);margin:22px 0 0;animation:sbRise .4s var(--stubie-ease) both}.stubie-wait{position:fixed;inset:0;z-index:50}.stubie-wait .auth-takeover__body,.stubie-wait .auth-takeover__title{animation-duration:.5s}.auth-takeover--waiting .auth-takeover__logo{animation:sbBreathe 3.6s ease-in-out 1.8s infinite}.auth-takeover--waiting .auth-takeover__eyes{transform-box:view-box;animation:sbGlance 5.2s ease-in-out 2.4s infinite}.auth-takeover--waiting .auth-takeover__blink{animation:sbBlink2 1.1s var(--stubie-ease) .12s both,sbBlinkIdle 4.3s var(--stubie-ease) 1.3s infinite}@media (prefers-reduced-motion:reduce){.auth-takeover--waiting .auth-takeover__blink,.auth-takeover--waiting .auth-takeover__eyes,.auth-takeover--waiting .auth-takeover__logo{animation:none}}.auth-takeover__restart{margin-top:26px;width:auto;height:44px;padding:0 22px;font-size:13.5px;animation:sbRise .4s var(--stubie-ease) both}