@keyframes grain{0%,to{transform:translate(0)}10%{transform:translate(-2%,-3%)}20%{transform:translate(3%,1%)}30%{transform:translate(-1%,4%)}40%{transform:translate(4%,-2%)}50%{transform:translate(-3%,3%)}60%{transform:translate(1%,-4%)}70%{transform:translate(-4%,2%)}80%{transform:translate(2%,-1%)}90%{transform:translate(-1%,-3%)}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes pulse-border{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent)30%,transparent)}50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent)10%,transparent)}}.login-page{background:var(--paper);grid-template-columns:1fr;min-height:100svh;display:grid;position:relative;overflow:hidden}@media (min-width:1024px){.login-page{grid-template-columns:1fr 1fr}}.login-left{background:var(--ink);flex-direction:column;justify-content:space-between;padding:48px;display:none;position:relative;overflow:hidden}@media (min-width:1024px){.login-left{display:flex}}.login-left:before{content:"";pointer-events:none;background-image:linear-gradient(#f5f0e80a 1px,#0000 1px),linear-gradient(90deg,#f5f0e80a 1px,#0000 1px);background-size:60px 60px;position:absolute;inset:0}.login-left:after{content:"";opacity:.04;pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");width:200%;height:200%;animation:8s step-end infinite grain;position:absolute;inset:-50%}.login-left>*{z-index:1;position:relative}.left-bg-num{font-family:var(--font-display);color:var(--paper);opacity:.03;-webkit-user-select:none;user-select:none;pointer-events:none;z-index:0;letter-spacing:-.02em;font-size:clamp(200px,22vw,320px);line-height:1;position:absolute;bottom:-40px;right:-20px}.login-right{background:var(--paper);flex-direction:column;justify-content:center;align-items:center;padding:clamp(32px,6vw,80px) clamp(24px,5vw,64px);display:flex;position:relative}.login-right:before{content:"";background-image:linear-gradient(color-mix(in srgb,var(--ink)3%,transparent)1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--ink)3%,transparent)1px,transparent 1px);pointer-events:none;background-size:60px 60px;position:absolute;inset:0}.login-card{z-index:1;width:100%;max-width:420px;animation:.5s cubic-bezier(.77,0,.18,1) both scaleIn;position:relative}.field-wrap{flex-direction:column;gap:8px;display:flex}.field-label{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:700;transition:color .2s}.field-label.active{color:var(--ink)}.field-input{background:var(--cream);border:1px solid color-mix(in srgb,var(--ink)12%,transparent);width:100%;height:52px;font-family:var(--font-body);color:var(--ink);appearance:none;border-radius:0;outline:none;padding:0 16px;font-size:14px;transition:border-color .2s,background .2s,box-shadow .2s}.field-input::placeholder{color:color-mix(in srgb,var(--muted)60%,transparent)}.field-input:focus{border-color:var(--ink);background:var(--paper);box-shadow:4px 4px 0 var(--ink)}.field-input.error{border-color:var(--accent);box-shadow:4px 4px 0 var(--accent)}.pw-wrap{position:relative}.pw-toggle{width:52px;color:var(--muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:color .2s;display:flex;position:absolute;top:0;bottom:0;right:0}.pw-toggle:hover{color:var(--ink)}.submit-btn{background:var(--ink);width:100%;height:52px;color:var(--paper);font-family:var(--font-body);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;border:none;justify-content:center;align-items:center;gap:10px;font-size:12px;font-weight:700;transition:background .25s,transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.submit-btn:before{content:"";background:var(--accent);transition:transform .4s cubic-bezier(.77,0,.18,1);position:absolute;inset:0;transform:translate(-101%)}.submit-btn:hover:before{transform:translate(0)}.submit-btn:hover{box-shadow:6px 6px 0 color-mix(in srgb,var(--ink)20%,transparent)}.submit-btn>*{z-index:1;position:relative}.submit-btn:active{box-shadow:none;transform:translate(2px,2px)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.submit-btn:disabled:before{display:none}.google-btn{border:1px solid color-mix(in srgb,var(--ink)14%,transparent);width:100%;height:48px;font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:10px;font-size:12px;font-weight:600;transition:border-color .2s,background .2s,transform .2s;display:flex}.google-btn:hover{border-color:var(--ink);background:color-mix(in srgb,var(--ink)4%,transparent);transform:translateY(-1px)}.google-btn:disabled{opacity:.5;cursor:not-allowed}.or-row{align-items:center;gap:16px;display:flex}.or-line{background:color-mix(in srgb,var(--ink)10%,transparent);flex:1;height:1px}.or-text{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-size:9px;font-weight:700}.error-banner{border:1px solid var(--accent);border-left:4px solid var(--accent);background:color-mix(in srgb,var(--accent)5%,transparent);align-items:flex-start;gap:10px;padding:14px 16px;animation:.3s both slideUp;display:flex}.error-text{color:var(--accent);font-size:13px;line-height:1.5}.left-wordmark{font-family:var(--font-display);letter-spacing:.1em;color:var(--paper);font-size:clamp(24px,3vw,32px)}.left-headline{font-family:var(--font-display);letter-spacing:.02em;font-size:clamp(52px,5vw,80px);line-height:.88}.left-serif{font-family:var(--font-serif);font-size:clamp(52px,5vw,80px);font-style:italic;line-height:.88}.left-stat{border-top:1px solid #f5f0e814;flex-direction:column;gap:4px;padding:24px 0;display:flex}.left-stat-num{font-family:var(--font-display);color:var(--paper);font-size:clamp(32px,3.5vw,48px);line-height:1}.left-stat-label{letter-spacing:.08em;color:#f5f0e866;font-size:11px;font-weight:500}.left-tag{letter-spacing:.16em;text-transform:uppercase;color:#f5f0e880;border:1px solid #f5f0e81f;align-items:center;gap:8px;padding:6px 12px;font-size:10px;font-weight:700;display:inline-flex}.left-feature{border-top:1px solid #f5f0e80f;align-items:flex-start;gap:14px;padding:16px 0;display:flex}.left-feature-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:6px}.left-feature-text{color:#f5f0e88c;font-size:13px;font-weight:300;line-height:1.6}.anim-1{animation:.6s cubic-bezier(.77,0,.18,1) .1s both slideIn}.anim-2{animation:.6s cubic-bezier(.77,0,.18,1) .2s both slideIn}.anim-3{animation:.6s cubic-bezier(.77,0,.18,1) .3s both slideIn}.anim-4{animation:.6s cubic-bezier(.77,0,.18,1) .4s both slideIn}.anim-5{animation:.6s cubic-bezier(.77,0,.18,1) .5s both slideIn}.anim-up-1{animation:.6s cubic-bezier(.77,0,.18,1) .15s both slideUp}.anim-up-2{animation:.6s cubic-bezier(.77,0,.18,1) .25s both slideUp}.anim-up-3{animation:.6s cubic-bezier(.77,0,.18,1) .35s both slideUp}.anim-up-4{animation:.6s cubic-bezier(.77,0,.18,1) .45s both slideUp}.anim-up-5{animation:.6s cubic-bezier(.77,0,.18,1) .55s both slideUp}.anim-up-6{animation:.6s cubic-bezier(.77,0,.18,1) .65s both slideUp}.mobile-bar{justify-content:space-between;align-items:center;margin-bottom:40px;display:flex}@media (min-width:1024px){.mobile-bar{display:none}}.forgot-link{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600;text-decoration:none;transition:color .2s}.forgot-link:hover{color:var(--accent)}.register-row{border-top:1px solid color-mix(in srgb,var(--ink)8%,transparent);justify-content:center;align-items:center;gap:8px;padding-top:28px;display:flex}.register-text{color:var(--muted);letter-spacing:.02em;font-size:12px}.register-link{letter-spacing:.08em;text-transform:uppercase;color:var(--ink);align-items:center;gap:4px;font-size:12px;font-weight:700;text-decoration:none;transition:color .2s;display:inline-flex}.register-link:hover{color:var(--accent)}.card-accent-bar{background:linear-gradient(90deg,var(--accent),var(--gold));width:100%;height:3px;margin-bottom:40px}
