:root{--auth-ease:cubic-bezier(0.2,0.7,0.2,1);--auth-panel:46%}.auth-split{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr);background:var(--cream)}@media (min-width:960px){.auth-split{grid-template-columns:minmax(0,1fr) var(--auth-panel)}}.guap-auth{font-family:var(--ff);background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;position:relative;isolation:isolate;overflow-x:hidden}.guap-auth:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(60% 45% at 50% 40%,rgb(var(--white-rgb)/.85),transparent 70%),radial-gradient(40% 35% at 12% 8%,rgb(var(--lime-rgb)/.14),transparent 70%)}.guap-auth a{color:inherit;text-decoration:none}.guap-auth .topbar{padding:var(--sp-8) var(--sp-6) 0;text-align:center}@media (min-width:960px){.guap-auth .topbar{padding:var(--sp-8) var(--sp-10) 0;text-align:left}}.guap-auth .logo{font-weight:800;font-size:var(--fs-subtitle);letter-spacing:-.04em;color:var(--espresso);display:inline-flex;align-items:center;gap:var(--sp-2)}.guap-auth .logo .bean{width:13px;height:13px;border-radius:50% 50% 50% 0;background:var(--lime);transform:rotate(45deg);box-shadow:inset -2px -2px 0 rgb(var(--olive-rgb)/.25);transition:transform .4s var(--auth-ease)}.guap-auth .logo:hover .bean{transform:rotate(405deg)}.guap-auth .stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-10) var(--sp-6) calc(var(--sp-10) + env(safe-area-inset-bottom))}.guap-auth .panel{width:100%;max-width:440px;text-align:center}@media (min-width:960px){.guap-auth .panel{text-align:left}}.guap-auth .eyebrow{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-caption);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--olive-text);margin-bottom:var(--sp-4)}.guap-auth .eyebrow .dot{position:relative;width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px var(--lime-tint)}.guap-auth h1{font-weight:800;letter-spacing:-.035em;line-height:1.02;color:var(--espresso);font-size:clamp(36px,4.4vw,52px);text-wrap:balance}.guap-auth .sub{margin-top:var(--sp-3);font-size:var(--fs-lead);line-height:1.45;color:var(--body)}.guap-auth .sub a{font-weight:700;color:var(--espresso);border-bottom:1.5px solid var(--lime)}.guap-auth form{margin-top:var(--sp-8);display:flex;flex-direction:column;gap:var(--sp-3);text-align:left}.guap-auth .roles{display:flex;gap:var(--sp-1);padding:var(--sp-1);background:var(--field);border-radius:999px;margin-bottom:var(--sp-2)}.guap-auth .role-btn{position:relative;flex:1;font-family:var(--ff);font-size:var(--fs-label);font-weight:700;color:var(--muted);background:transparent;border:none;border-radius:999px;padding:var(--sp-3) var(--sp-2);cursor:pointer;transition:color .18s}.guap-auth .role-btn:hover,.guap-auth .role-btn[aria-checked=true]{color:var(--espresso)}.guap-auth .role-btn:focus-visible{outline:2px solid var(--olive);outline-offset:2px}.guap-auth .role-glider{position:absolute;inset:0;border-radius:999px;background:var(--white);box-shadow:0 4px 14px -6px rgb(var(--espresso-rgb)/.35)}.guap-auth .field,.guap-auth .role-label{position:relative}.guap-auth .field input{width:100%;font-family:var(--ff);font-size:16px;font-weight:500;color:var(--espresso);background:var(--white);border:1.5px solid var(--line-strong);border-radius:999px;padding:var(--sp-4) var(--sp-12) var(--sp-4) var(--sp-6);outline:none;transition:border-color .2s,box-shadow .28s var(--auth-ease)}.guap-auth .field input::-moz-placeholder{color:var(--muted-2);font-weight:500;-moz-transition:opacity .2s;transition:opacity .2s}.guap-auth .field input::placeholder{color:var(--muted-2);font-weight:500;transition:opacity .2s}.guap-auth .field input:hover{border-color:rgb(var(--espresso-rgb)/.28)}.guap-auth .field input:focus{border-color:var(--olive);box-shadow:0 0 0 4px var(--lime-tint)}.guap-auth .field input[aria-invalid=true]{border-color:var(--error-line)}.guap-auth .field .ic{position:absolute;right:var(--sp-6);top:50%;transform:translateY(-50%);color:var(--muted-2);pointer-events:none;transition:color .2s}.guap-auth .field:focus-within .ic,.guap-auth .field:focus-within .toggle{color:var(--olive)}.guap-auth .field .ic svg,.guap-auth .field .toggle svg{width:20px;height:20px;display:block}.guap-auth .field .toggle{position:absolute;right:var(--sp-4);top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--muted-2);padding:var(--sp-2);border-radius:50%;display:grid;place-items:center;transition:color .15s,background .15s}.guap-auth .field .toggle:hover{color:var(--espresso);background:rgb(var(--espresso-rgb)/.05)}.guap-auth .strength{display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-4)}.guap-auth .strength-bar{flex:1;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-1)}.guap-auth .strength-seg{height:4px;border-radius:999px;background:var(--mist);overflow:hidden}.guap-auth .strength-seg:after{content:"";display:block;height:100%;border-radius:inherit;background:var(--strength,var(--lime));transform:scaleX(0);transform-origin:left;transition:transform .36s var(--auth-ease)}.guap-auth .strength-seg.is-on:after{transform:scaleX(1)}.guap-auth .strength[data-level="1"]{--strength:var(--red-deep)}.guap-auth .strength[data-level="2"]{--strength:var(--red-soft)}.guap-auth .strength[data-level="3"]{--strength:var(--lime)}.guap-auth .strength[data-level="4"]{--strength:var(--olive)}.guap-auth .strength-label{min-width:9ch;text-align:right;font-size:var(--fs-caption);font-weight:700;color:var(--muted)}.guap-auth .error{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-sm);background:var(--error-tint);border:1px solid var(--error-line);color:var(--error-text);font-size:var(--fs-body);font-weight:600;text-align:center}.guap-auth .error a{text-decoration:underline}.guap-auth .notice{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-sm);background:var(--lime-tint);color:var(--on-lime);font-size:var(--fs-body);font-weight:600}.guap-auth .forgot-link{align-self:flex-end;font-size:var(--fs-label);font-weight:700;color:var(--body);border-bottom:1.5px solid var(--line-strong);transition:color .15s,border-color .15s}.guap-auth .forgot-link:hover{color:var(--espresso);border-color:var(--lime)}.guap-auth .submit{width:100%;position:relative;overflow:hidden;font-family:var(--ff);font-weight:700;font-size:var(--fs-lead);color:var(--white);background:var(--espresso);border:none;border-radius:999px;padding:var(--sp-4) var(--sp-6);margin-top:var(--sp-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-3);box-shadow:var(--btn-shadow);transition:transform .18s,box-shadow .18s,background .18s}.guap-auth .submit:before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgb(var(--lime-rgb)/.28) 50%,transparent 70%);transform:translateX(-120%);pointer-events:none}.guap-auth .submit:hover:not(:disabled):before{transition:transform .7s var(--auth-ease);transform:translateX(120%)}.guap-auth .submit:hover:not(:disabled){transform:translateY(-2px);background:var(--ink);box-shadow:0 26px 52px -20px rgb(var(--espresso-rgb)/.62)}.guap-auth .submit:active:not(:disabled){transform:translateY(0)}.guap-auth .submit:disabled{opacity:.75;cursor:progress}.guap-auth .submit:focus-visible{outline:2px solid var(--olive);outline-offset:3px}.guap-auth .submit svg{width:20px;height:20px;transition:transform .2s var(--auth-ease)}.guap-auth .submit:hover:not(:disabled) svg{transform:translateX(4px)}.guap-auth .submit-spin{width:18px;height:18px;border-radius:50%;border:2.5px solid rgb(var(--lime-rgb)/.3);border-top-color:var(--lime);animation:auth-spin .8s linear infinite}.guap-auth .terms{margin-top:var(--sp-2);text-align:center;line-height:1.5}.guap-auth .divider,.guap-auth .terms{font-size:var(--fs-label);color:var(--muted)}.guap-auth .divider{display:flex;align-items:center;gap:var(--sp-4);margin:var(--sp-4) 0 var(--sp-1);font-weight:600;letter-spacing:.04em}.guap-auth .divider:after,.guap-auth .divider:before{content:"";height:1px;flex:1;background:var(--line)}.guap-auth .oauth{display:flex;flex-direction:column;gap:var(--sp-3)}.guap-auth .oauth-btn{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);width:100%;font-family:var(--ff);font-weight:700;font-size:var(--fs-body);color:var(--espresso);background:var(--white);border:1.5px solid var(--line);border-radius:999px;padding:var(--sp-4);cursor:pointer;transition:transform .16s,box-shadow .16s,border-color .16s}.guap-auth .oauth-btn:hover{transform:translateY(-2px);box-shadow:var(--soft-shadow);border-color:var(--line-strong)}.guap-auth .oauth-btn svg{width:20px;height:20px;transition:transform .3s var(--auth-ease)}.guap-auth .oauth-btn:hover svg{transform:rotate(-12deg) scale(1.08)}.guap-auth .switch{font-size:var(--fs-body);color:var(--body);text-align:center}.guap-auth .switch a{font-weight:700;color:var(--espresso);border-bottom:1.5px solid var(--lime);padding-bottom:1px;transition:border-color .15s}.guap-auth .switch a:hover{border-color:var(--olive)}.guap-auth form .switch{margin-top:var(--sp-4)}.brew-panel{position:relative;overflow:hidden;isolation:isolate;background:var(--espresso);color:var(--on-dark);font-family:var(--ff);order:-1;height:164px}@media (min-width:960px){.brew-panel{order:0;position:sticky;top:0;height:100vh;height:100dvh;border-radius:var(--r-lg) 0 0 var(--r-lg)}}.brew-grid{position:absolute;inset:0;z-index:-2}.brew-grid canvas{width:100%;height:100%;display:block}.brew-glow{position:absolute;z-index:-1;width:70%;aspect-ratio:1;right:-18%;top:-24%;border-radius:50%;background:radial-gradient(circle,rgb(var(--lime-rgb)/.28),transparent 62%);pointer-events:none}.brew-content{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-8);padding:var(--sp-8);pointer-events:none}.brew-eyebrow{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-caption);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--lime)}.brew-eyebrow-dot{position:relative;width:7px;height:7px;border-radius:50%;background:var(--lime)}.brew-stack{position:relative;width:min(360px,100%)}.brew-card{border-radius:var(--r-md);background:var(--white);color:var(--ink);box-shadow:0 30px 70px -30px rgba(0,0,0,.6)}.brew-card-front{position:relative;padding:var(--pad-card);display:flex;flex-direction:column;gap:var(--sp-5)}.brew-card-back{position:absolute;inset:0;transform:translate3d(0,16px,0) scale(.94);opacity:.5}.brew-card-back-2{transform:translate3d(0,32px,0) scale(.88);opacity:.25}.brew-card-head{display:flex;align-items:center;gap:var(--sp-3)}.brew-logo{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-control);background:var(--lime);color:var(--on-lime);font-weight:800;font-size:var(--fs-heading)}.brew-card-title{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-label);color:var(--muted)}.brew-card-title strong{font-size:var(--fs-body);font-weight:800;color:var(--ink)}.brew-pill-slot{height:32px;display:flex;align-items:center}.brew-pill{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:999px;font-size:var(--fs-label);font-weight:700;white-space:nowrap}.brew-pill-sent{background:var(--brew-sent-tint);color:var(--ink)}.brew-pill-steeping{background:var(--brew-steeping-tint);color:var(--ink)}.brew-pill-brewed{background:var(--brew-brewed-tint);color:var(--blue-deep)}.brew-pill-served{background:var(--brew-served-tint);color:var(--on-lime)}.brew-road{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2);list-style:none}.brew-road li{position:relative;height:6px;border-radius:999px;background:var(--mist);overflow:hidden}.brew-road li:after{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--espresso);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--auth-ease)}.brew-road li.is-done:after{transform:scaleX(1)}.brew-road li.is-now:after{background:var(--lime);transform:scaleX(1)}.brew-line-slot{min-height:3em;max-width:30ch;text-align:center}.brew-line{font-size:var(--fs-subtitle);font-weight:800;letter-spacing:-.02em;line-height:1.2;color:var(--cream);text-wrap:balance}@media (max-width:959px){.guap-auth{min-height:calc(100dvh - 164px)}.brew-card-back,.brew-eyebrow,.brew-line-slot,.brew-road{display:none}.brew-content{padding:var(--sp-6)}.brew-stack{width:min(320px,100%)}.brew-card-front{flex-direction:row;align-items:center;justify-content:space-between;padding:var(--sp-4);gap:var(--sp-3)}.brew-card-title span{display:none}.brew-logo{width:32px;height:32px;font-size:var(--fs-body)}}@keyframes auth-rise{0%{opacity:0;transform:translate3d(0,12px,0)}to{opacity:1;transform:none}}@keyframes auth-shake{0%,to{transform:none}20%{transform:translateX(-6px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}@keyframes auth-spin{to{transform:rotate(1turn)}}@keyframes auth-breathe{0%{transform:scale(1);opacity:.6}70%,to{transform:scale(3.2);opacity:0}}@keyframes brew-float{0%,to{transform:translateZ(0) rotate(-1.2deg)}50%{transform:translate3d(0,-10px,0) rotate(.6deg)}}@keyframes brew-glow-drift{0%,to{transform:translateZ(0) scale(1)}50%{transform:translate3d(-8%,10%,0) scale(1.12)}}@media (prefers-reduced-motion:no-preference){.guap-auth .panel>:not(form),.guap-auth form>*{animation:auth-rise .48s var(--auth-ease) both}.guap-auth .panel>:nth-child(2){animation-delay:40ms}.guap-auth .panel>:nth-child(3){animation-delay:80ms}.guap-auth form>:first-child{animation-delay:.1s}.guap-auth form>:nth-child(2){animation-delay:.12s}.guap-auth form>:nth-child(3){animation-delay:.14s}.guap-auth form>:nth-child(4){animation-delay:.16s}.guap-auth form>:nth-child(n+5){animation-delay:.18s}.guap-auth form>.error{animation:auth-rise .24s var(--auth-ease) both,auth-shake .42s ease 60ms}.brew-eyebrow-dot:after,.guap-auth .eyebrow .dot:after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--lime);animation:auth-breathe 2.4s ease-out infinite}.brew-card-front{animation:brew-float 7s ease-in-out infinite}.brew-card-back{animation:auth-rise .6s var(--auth-ease) .12s both}.brew-glow{animation:brew-glow-drift 16s ease-in-out infinite}}@media (prefers-reduced-motion:reduce){.guap-auth .submit-spin{animation:none}.brew-grid{opacity:.6}}@media (max-width:520px){.guap-auth .stage{padding:var(--sp-8) var(--sp-5) calc(var(--sp-8) + env(safe-area-inset-bottom))}.guap-auth form{margin-top:var(--sp-6)}.guap-auth .field input{padding:var(--sp-4) var(--sp-12) var(--sp-4) var(--sp-5)}}