:root { font-family:Manrope,sans-serif; color-scheme:light; font-size:16px; line-height:1.65; color:#284334; background:#f5f7f4; }
* { box-sizing:border-box; }body { margin:0; min-height:100dvh; display:grid; grid-template-columns:1.08fr 1fr; }
a { color:inherit; text-decoration:none; }button,input { font:inherit; }a,button { touch-action:manipulation; }
a:focus-visible,button:focus-visible,input:focus-visible { outline:2px solid #819d68; outline-offset:5px; }
h1,h2,p { margin-top:0; }h1,h2 { text-wrap:balance; }.eyebrow { display:block; font-size:.625rem; font-weight:600; letter-spacing:.17em; color:#a8bf9e; }
.welcome { background:#153e32; color:#e4eeda; padding:40px clamp(30px,5vw,80px) 28px; display:flex; flex-direction:column; position:relative; overflow:hidden; min-height:100dvh; }
.brand { align-self:flex-start; }.brand>span { font:400 2.65rem/1 Newsreader,Georgia,serif; letter-spacing:-.06em; }.brand-point { color:#b4ca95; }
.welcome-content { position:relative; z-index:1; padding-top:75px; }.welcome-content h1 { font:400 clamp(2.8rem,4.5vw,4.6rem)/1.04 Newsreader,Georgia,serif; letter-spacing:-.045em; margin:23px 0; }.welcome-content h1>span { color:#bcd4a7; }
.welcome-content p { color:#aec6a9; font-size:.8125rem; line-height:1.9; max-width:345px; }
.login-sculpture { position:relative; height:320px; flex:1; min-height:250px; margin:0; }.login-sculpture canvas { position:absolute; inset:0; width:100%; height:100%; display:block; }
.login-initial { position:absolute; inset:0; display:flex; justify-content:center; align-items:center; font:400 5.2rem/1 Newsreader,Georgia,serif; letter-spacing:-.09em; padding-bottom:8px; color:#c9dbb4; }.login-initial>span { color:#94b07b; }
.welcome-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:1px solid #3f5f48; padding-top:18px; color:#b0c4a6; font-size:.625rem; }.welcome-footer button { background:transparent; color:#b0c4a6; border:0; cursor:pointer; font-size:.5625rem; min-height:38px; padding:0; }.welcome-footer button:disabled { opacity:.45; }
main { display:flex; align-items:center; justify-content:center; position:relative; padding:65px clamp(30px,7vw,110px); }.login-content { width:100%; max-width:360px; }
.login-content .eyebrow { color:#657354; }.login-content h2 { font:400 3.5rem/1.04 Newsreader,Georgia,serif; letter-spacing:-.035em; margin:24px 0 20px; }.login-content>p { font-size:.8125rem; color:#657354; line-height:1.85; max-width:310px; }
form { margin-top:30px; }label { display:block; font-size:.75rem; color:#596f4c; margin:20px 0 8px; }input { width:100%; min-width:0; background:#fff; color:#2a4331; border:1px solid #cfdac5; border-radius:7px; padding:13px 14px; min-height:49px; font-size:1rem; }
button[type=submit] { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:49px; padding:12px 18px; margin-top:26px; border:1px solid #2b5139; border-radius:7px; background:#2b5139; color:#edf4e4; font-size:.8125rem; font-weight:600; cursor:pointer; transition:background .15s; }button[type=submit]:hover { background:#3c6748; }button[type=submit]:disabled { opacity:.5; cursor:wait; }
#message { font-size:.8125rem; color:#984d4d; margin-top:15px; min-height:1.6em; }.login-content .small { font-size:.6875rem; color:#657354; }.login-footer { position:absolute; bottom:32px; font-size:.5625rem; letter-spacing:.14em; color:#657354; }
@media(max-width:980px) { .welcome { padding:32px; }.welcome-content { padding-top:60px; }.welcome-content h1 { font-size:3.2rem; }.login-content h2 { font-size:3rem; }main { padding-inline:40px; }.welcome-footer { flex-wrap:wrap; }.login-sculpture { min-height:230px; } }
@media(max-width:650px) { body { display:block; }.welcome { min-height:0; padding:24px 27px 0; }.brand>span { font-size:2rem; }.welcome-content { padding-top:32px; padding-bottom:28px; }.welcome-content .eyebrow { font-size:.5rem; }.welcome-content h1 { font-size:2.6rem; margin:17px 0 0; }.welcome-content p,.welcome-footer,.login-sculpture { display:none; }main { padding:35px 27px 70px; min-height:605px; align-items:flex-start; }.login-content { max-width:420px; }.login-content .eyebrow { font-size:.5625rem; }.login-content h2 { font-size:2.6rem; margin:17px 0 15px; }.login-content h2 br { display:none; }.login-content>p { font-size:.75rem; }.login-content .small { font-size:.625rem; }form { margin-top:24px; }label { font-size:.75rem; margin-top:17px; }.login-footer { bottom:25px; font-size:.5rem; } }
@media(prefers-reduced-motion:reduce) { * { transition:none!important; animation:none!important; scroll-behavior:auto!important; } }
[hidden] { display:none!important; }

#passkey-login{width:100%;margin:0 0 24px;padding:14px;border-radius:10px;background:#143e32;color:white;border:0;font:inherit;cursor:pointer}

/* Keep login copy readable at small widths and browser zoom. */
body { grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); }
main,.welcome,.login-content { min-width:0; }
.welcome-content h1,.login-content h2 { overflow-wrap:break-word; }
.welcome-content p,.login-content>p { font-size:1rem; line-height:1.7; }
.eyebrow,.login-content .eyebrow { font-size:.75rem; line-height:1.5; }
label,.login-content .small,#message,.welcome-footer,.welcome-footer button { font-size:.875rem; line-height:1.6; }
button[type=submit],#passkey-login { font-size:1rem; line-height:1.5; }
.login-footer { position:static; margin-top:28px; font-size:.75rem; line-height:1.6; letter-spacing:.06em; overflow-wrap:anywhere; }
main { flex-direction:column; }
@media(max-width:650px) {
  main { min-height:0; padding:32px 24px 40px; }
  .welcome { padding-inline:24px; }
  .welcome-content .eyebrow { font-size:.75rem; }
  .login-content>p { font-size:1rem; }
  .login-content .small { font-size:.875rem; }
  .login-content h2 { font-size:2.4rem; }
  .login-footer { font-size:.75rem; margin-top:20px; }
}

/* Visible focus on both panels and clear feedback while a passkey is pending. */
a:focus-visible,button:focus-visible,input:focus-visible { outline:3px solid #3d654a; outline-offset:3px; }
.welcome a:focus-visible,.welcome button:focus-visible { outline-color:#d2e7b6; }
.login-content form,.login-content button { min-width:0; max-width:100%; }
.login-content p,.login-content button,.welcome-footer { overflow-wrap:anywhere; }
.welcome-footer button { min-height:44px; }
#passkey-login { min-height:49px; white-space:normal; }
#passkey-login:hover:not(:disabled) { background:#245344; }
#passkey-login:disabled { background:#51685f; color:#fff; opacity:1; cursor:wait; }
