:root{color-scheme:light;--ink:#183e34;--muted:#63736c;--paper:#fbfcf8;--accent:#18634e;--line:#c3cec5}
*{box-sizing:border-box}body{margin:0;background:#e9ede6;color:var(--ink);font-family:"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased;min-height:100dvh;padding:28px;display:grid;place-items:center}
.login-shell{width:min(1440px,100%);min-height:min(820px,calc(100dvh - 56px));display:grid;grid-template-columns:1.04fr 1fr;background:var(--paper);border-radius:24px;overflow:hidden;box-shadow:0 24px 80px #183e3410;border:1px solid #fff}
.brand-panel{position:relative;isolation:isolate;overflow:hidden;background:#183e34;min-height:710px;color:#fff}.brand-photo{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2;animation:photo-in 1.6s cubic-bezier(.2,.7,.2,1) both}.photo-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#102f3480 0%,transparent 52%,#102f347a 100%)}
.brand{position:relative;display:flex;align-items:center;gap:14px;padding:42px 44px;font-weight:650;font-size:20px;letter-spacing:.7px}.monogram{display:grid;place-items:center;flex-shrink:0;width:52px;height:52px;border:1px solid #ffffff80;border-radius:50%;font-size:17px;letter-spacing:-1px}.brand small{display:block;font-size:10px;letter-spacing:2.1px;font-weight:500;margin-top:7px;color:#e1e9dd}.brand-copy{padding:18px 44px 0;animation:rise-in .9s .12s both}.eyebrow{font-size:11px;font-weight:650;letter-spacing:2.4px;color:#deebd7;margin:0 0 20px}h1{font-size:clamp(32px,3.1vw,47px);line-height:1.23;letter-spacing:-1.5px;font-weight:550;margin:0;max-width:550px}.photo-caption{position:absolute;bottom:25px;left:44px;line-height:1.6;font-size:15px;color:#fff;animation:rise-in 1s .3s both}
.form-panel{display:flex;flex-direction:column;justify-content:center;padding:48px clamp(32px,5vw,80px) 26px}.form-content{width:100%;max-width:420px;margin:auto;animation:rise-in .8s .15s both}.section-label{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--accent);margin:0 0 21px}h2{font-size:clamp(28px,2.8vw,38px);font-weight:600;letter-spacing:-1.3px;line-height:1.25;margin:0 0 14px}.intro{color:var(--muted);line-height:1.6;font-size:16px;margin:0 0 38px}.field{margin:0 0 24px}label{display:block;font-size:16px;font-weight:600;margin-bottom:10px}input{font:inherit;font-size:18px;width:100%;height:58px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:0 17px;outline:none;transition:border-color .18s,box-shadow .18s}input:hover{border-color:#829b8d}input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #18634e16}.password-wrap{position:relative}.password-wrap input{padding-right:78px}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #5b967d;outline-offset:4px}.reveal{position:absolute;right:8px;top:8px;height:42px;min-width:56px;border:0;border-radius:6px;background:transparent;color:var(--accent);font-size:14px;font-weight:600}.reveal:hover{background:#edf3ec}.submit{position:relative;width:100%;height:59px;display:flex;align-items:center;justify-content:center;gap:16px;background:var(--accent);border:1px solid var(--accent);border-radius:10px;color:#fff;font-size:18px;font-weight:600;box-shadow:0 6px 18px #18634e15;transition:background .2s,transform .2s,box-shadow .2s;margin-top:30px}.submit:hover{background:#104d3d;box-shadow:0 9px 24px #18634e25;transform:translateY(-2px)}.submit:active{transform:translateY(0)}.arrow{font-size:23px;transition:transform .2s}.submit:hover .arrow{transform:translateX(4px)}.submit:disabled{cursor:wait;transform:none;opacity:.8}.spinner{display:none;width:18px;height:18px;border:2px solid #ffffff50;border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.is-loading .spinner{display:block}.is-loading .arrow{display:none}.login-status{font-size:14px;line-height:1.5;min-height:21px;margin:8px 0;color:var(--muted)}.form-note{display:flex;align-items:center;gap:16px;margin-top:12px}.note-line{width:32px;height:2px;background:#9bb19d}.form-note p{font-size:14px;line-height:1.7;color:var(--muted);margin:0}footer{display:flex;justify-content:space-between;gap:16px;font-size:11px;color:#68776c;margin-top:48px}footer span{color:#68776c}.error{background:#fff0eb;border:1px solid #e5b7a9;border-radius:10px;padding:14px 16px;color:#8d3022;font-size:15px;line-height:1.6;margin-bottom:24px}.error a{color:inherit;text-underline-offset:3px}.caps-warning{font-size:13px;line-height:1.5;color:#8d4b13;margin:9px 0}.mobile-brand{display:none}[hidden]{display:none!important}
@keyframes rise-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes photo-in{from{transform:scale(1.045)}to{transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1600px){body{padding:44px}.login-shell{min-height:820px}}
@media(max-width:1050px){body{padding:20px}.brand{padding:32px 28px;font-size:16px}.brand-copy{padding:28px 28px 0}.photo-caption{left:28px}.form-panel{padding:40px 30px 24px}.brand-panel{min-height:680px}h1{font-size:35px}}
@media(max-width:720px){body{padding:0;background:var(--paper);display:block}.login-shell{display:block;border:0;border-radius:0;box-shadow:none;min-height:100dvh}.brand-panel{min-height:200px;height:27vh;max-height:250px}.brand-photo{object-position:center 55%}.photo-shade{background:linear-gradient(90deg,#102f34b0,transparent)}.brand{padding:23px 26px;font-size:16px}.brand small{font-size:9px}.monogram{width:44px;height:44px;font-size:15px}.brand-copy{padding:0 26px 24px}h1{font-size:26px;letter-spacing:-.6px;line-height:1.2}.eyebrow,.photo-caption{display:none}.form-panel{padding:34px 26px 22px}.form-content{max-width:430px}.section-label{margin-bottom:14px;font-size:10px}h2{font-size:30px}.intro{font-size:15px;margin-bottom:27px}.field{margin-bottom:20px}.submit{margin-top:26px}.form-note{margin-top:10px}footer{margin-top:34px;font-size:10px;max-width:430px;width:100%;align-self:center}}
/* The photo carries the motion; the working form remains stationary. */
.brand-panel{--photo-x:0px;--photo-y:0px}
.brand-photo{inset:-2%;width:104%;height:104%;transform:translate3d(var(--photo-x),var(--photo-y),0);animation:living-photo 18s ease-in-out infinite alternate;transition:translate .7s cubic-bezier(.2,.7,.2,1);translate:var(--photo-x) var(--photo-y)}
.photo-shade{background:linear-gradient(180deg,#102f3499 0%,#102f3433 45%,transparent 65%,#102f3480 100%)}
.brand-panel::after{content:"";position:absolute;inset:-25%;pointer-events:none;background:linear-gradient(115deg,transparent 25%,#fff5c21a 46%,transparent 62%);transform:translateX(-28%);animation:sunlight 16s ease-in-out infinite alternate;z-index:-1}
.brand-copy{animation:rise-in 1s .2s both}.brand-copy h1{animation:rise-in 1.1s .35s both}.form-content{animation:none}.section-label{animation:rise-in .75s .15s both}h2{animation:rise-in .85s .25s both}.intro{animation:rise-in .85s .35s both}#login-form{animation:rise-in .85s .45s both}.form-note{animation:rise-in .85s .6s both}
.field{transition:color .2s}.field:focus-within label{color:#18634e}.field:focus-within input{box-shadow:0 0 0 5px #18634e12,0 5px 20px #183e3408}
.submit{overflow:hidden}.submit::before{content:"";position:absolute;inset:-100% -30%;background:linear-gradient(110deg,transparent 42%,#ffffff29 50%,transparent 58%);transform:translateX(-100%);transition:transform .65s}.submit:hover::before{transform:translateX(100%)}
@keyframes living-photo{from{transform:scale(1)}to{transform:scale(1.06)}}
@keyframes sunlight{from{transform:translateX(-28%);opacity:.35}to{transform:translateX(15%);opacity:.85}}
@media(max-width:720px){.brand-photo{animation-duration:24s}.brand-panel::after{display:none}}
.form-panel{position:relative}.motion-toggle{position:absolute;top:16px;right:24px;border:1px solid #c3cec5;border-radius:7px;background:#fbfcf8;color:#365a4b;font-size:12px;padding:8px 12px;z-index:2}.motion-toggle:hover{background:#edf3ec}
html[data-motion="off"] *,html[data-motion="off"] *::before,html[data-motion="off"] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html[data-motion="off"] .brand-photo{transform:none!important;translate:none!important}html[data-motion="off"] .brand-panel::after{display:none}
@media(max-width:720px){.motion-toggle{top:14px;right:26px;font-size:11px;padding:6px 9px}}
