.login-shell{display:grid;grid-template-columns:1.15fr 1fr;min-height:100svh;background:var(--rail);color:var(--ink)}.login-panel{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:2.5rem;overflow:hidden;padding:clamp(1.75rem,4vw,3.5rem);background:var(--rail);color:var(--rail-ink)}.login-panel-texture{position:absolute;inset:-1px;background-image:linear-gradient(color-mix(in srgb,var(--rail-ink) 7%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--rail-ink) 7%,transparent) 1px,transparent 1px);background-size:3.2rem 3.2rem;mask-image:linear-gradient(180deg,transparent,#000 18%,#000 78%,transparent)}.login-panel-glow{position:absolute;top:-18rem;right:-14rem;width:38rem;height:38rem;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 55%,transparent),transparent 70%);opacity:.5}.login-panel:after{content:"";position:absolute;left:-6rem;bottom:-10rem;width:24rem;height:24rem;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--green) 50%,transparent),transparent 72%);opacity:.4}.login-panel>.client-brand{position:relative;z-index:1;display:flex;align-items:center;gap:.75rem;color:var(--rail-ink);text-decoration:none;animation:login-rise .7s cubic-bezier(.16,1,.3,1) both}.login-panel>.client-brand>span{display:grid;place-items:center;width:2.5rem;height:2.5rem;border:1px solid color-mix(in srgb,var(--rail-ink) 30%,transparent);border-radius:8px;font:500 1.25rem/1 Baskerville,Georgia,serif}.login-panel>.client-brand strong{display:block;font-size:.95rem;font-weight:600}.login-panel>.client-brand em{display:block;margin-top:.12rem;color:color-mix(in srgb,var(--rail-ink) 65%,transparent);font-size:.58rem;font-style:normal;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.login-panel-copy{position:relative;z-index:1;max-width:32rem;animation:login-rise .7s cubic-bezier(.16,1,.3,1) .1s both}.login-panel-copy h1{margin:0;font-family:Baskerville,Iowan Old Style,Georgia,serif;font-size:clamp(2.7rem,4.6vw,4.4rem);font-weight:500;line-height:.96;letter-spacing:-.01em}.login-panel-copy p{max-width:27rem;margin:1.15rem 0 0;color:color-mix(in srgb,var(--rail-ink) 78%,transparent);font-size:.86rem;line-height:1.6}.login-panel-features{position:relative;z-index:1;display:grid;gap:0;margin:0;padding:0;border-top:1px solid color-mix(in srgb,var(--rail-ink) 16%,transparent);list-style:none;animation:login-rise .7s cubic-bezier(.16,1,.3,1) .2s both}.login-panel-features li{display:flex;align-items:start;gap:.85rem;padding:1rem 0;border-bottom:1px solid color-mix(in srgb,var(--rail-ink) 12%,transparent)}.login-panel-features li svg{flex:none;width:1.05rem;margin-top:.15rem;color:color-mix(in srgb,var(--green) 75%,var(--rail-ink) 25%)}.login-panel-features strong{display:block;font-size:.78rem;font-weight:700}.login-panel-features span{display:block;margin-top:.2rem;color:color-mix(in srgb,var(--rail-ink) 62%,transparent);font-size:.72rem;line-height:1.5}.login-form-panel{display:grid;place-items:center;padding:1.5rem;background:var(--bg)}.login-card{width:min(100%,24rem);padding:0;background:transparent;animation:login-rise .7s cubic-bezier(.16,1,.3,1) .15s both}.login-card>.eyebrow{margin:0;color:var(--accent);font-size:.64rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.login-card h2{margin:.6rem 0 0;font-family:Baskerville,Iowan Old Style,Georgia,serif;font-size:clamp(2rem,3vw,2.5rem);font-weight:500;line-height:1;color:var(--ink)}.login-form-lead{display:block;margin:.55rem 0 1.75rem;color:var(--muted);font-size:.78rem}.login-form{display:grid;gap:.9rem;margin-top:0}.login-form label{display:grid;gap:.4rem;color:var(--ink);font-size:.66rem;font-weight:800;letter-spacing:.02em}.login-form input{width:100%;padding:.8rem .85rem;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--surface);box-shadow:inset 0 1px 2px color-mix(in srgb,var(--ink) 7%,transparent);font:500 .84rem/1.3 Avenir Next,sans-serif;transition:border-color .15s ease,box-shadow .15s ease}.login-form input:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent),inset 0 1px 2px color-mix(in srgb,var(--ink) 7%,transparent)}.login-form button[type=submit]{min-height:2.85rem;margin-top:.3rem;border:0;border-radius:6px;color:#fff;background:var(--green);font-size:.74rem;font-weight:800;letter-spacing:.01em;cursor:pointer;transition:transform .15s ease;box-shadow:0 .5rem 1.1rem color-mix(in srgb,var(--green) 25%,transparent)}.login-form button[type=submit]:hover{transform:translateY(-1px)}.login-form button[type=submit]:disabled{opacity:.65;cursor:wait;transform:none}.login-error{color:var(--accent)}.login-error,.login-notice{margin:0;font-size:.7rem;font-weight:700}.login-notice{color:var(--green)}.login-form .reset-link{padding:0;margin-top:-.2rem;border:0;color:var(--muted);background:transparent;font-size:.68rem;font-weight:700;text-align:left;text-decoration:underline;text-underline-offset:.2rem;cursor:pointer}.login-form .reset-link:hover{color:var(--accent)}@keyframes login-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.login-card,.login-panel-copy,.login-panel-features,.login-panel>.client-brand{animation:none}}@media (max-width:860px){.login-shell{grid-template-columns:1fr}.login-panel{gap:1.75rem;padding:1.5rem 1.25rem 2rem}.login-panel-copy h1{font-size:clamp(2.2rem,8vw,3rem)}.login-panel-features li:last-child{display:none}.login-form-panel{padding:1.75rem 1.25rem 2.5rem}}@media (max-width:480px){.login-panel-features{display:none}}@media (max-width:640px){.login-shell{min-height:100dvh}.login-panel{gap:1.1rem;min-height:16rem;padding:1.15rem 1rem 1.35rem}.login-panel>.client-brand>span{width:2.25rem;height:2.25rem}.login-panel-copy h1{font-size:2.25rem;line-height:1}.login-panel-copy p{margin-top:.7rem;font-size:.78rem;line-height:1.5}.login-form-panel{align-items:start;padding:1.75rem 1rem max(2rem,env(safe-area-inset-bottom))}.login-card{width:100%;max-width:30rem}.login-form button[type=submit],.login-form input{min-height:3rem}}