.access-shell{min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink)}
.access-shell *, .access-auth *{box-sizing:border-box}
.access-shell [hidden]{display:none!important}
.access-header{width:100%;max-width:1280px;margin:0 auto;padding:24px 40px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.access-header .brand{margin:0}.access-login-link{min-height:44px;padding:10px 20px;border:1px solid var(--border);border-radius:12px;color:var(--accent);font-size:14px;font-weight:700;background:var(--surface)}
.access-main{width:100%;max-width:1120px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,460px);gap:72px;padding:36px 40px 48px;align-items:center}
.access-story{min-width:0}.access-eyebrow{font-size:10px;font-weight:700;letter-spacing:.13em;color:var(--muted);line-height:1.6;margin:0 0 14px}
.access-story h1{font-size:clamp(36px,3.5vw,48px);line-height:1.16;letter-spacing:-.045em;margin:0 0 20px;font-weight:700}
.access-story>p{font-size:16px;line-height:1.8;color:var(--muted);max-width:380px;margin:0}
.access-story-bottom{display:flex;align-items:center;gap:18px;margin-top:36px;max-width:390px}
.access-bars{width:104px;height:116px;flex:0 0 104px}.access-bars svg,.access-mobile-bars svg{width:100%;height:100%}
.access-story-bottom strong{display:block;font-size:14px;font-weight:600;line-height:1.6}.access-story-bottom span{display:block;font-size:11px;color:var(--muted);line-height:1.7;margin-top:8px}
.access-panel{min-width:0;background:var(--surface,#fff);padding:32px;border:1px solid var(--border);border-radius:22px;box-shadow:0 10px 40px #203d2f04}
.access-panel h2{font-size:30px;line-height:1.2;letter-spacing:-.04em;margin:0 0 12px;font-weight:700}
.access-lead{color:var(--muted);font-size:14px;line-height:1.7;margin:0 0 24px}
.access-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:17px 18px;border-radius:13px;border:1px solid var(--border);transition:background .16s,border-color .16s}
.access-entry+ .access-entry{margin-top:12px}.access-entry.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.access-entry strong{display:block;font-size:14px;line-height:1.5;font-weight:700}.access-entry small{display:block;font-size:11px;line-height:1.6;margin-top:4px;color:var(--muted)}
.access-entry.primary small{color:#e0ece2}.access-entry>svg{flex-shrink:0}.access-entry.secondary{background:var(--surface,#fff);color:var(--ink)}
.access-existing{font-size:13px;line-height:1.7;text-align:center;color:var(--muted);margin:17px 0 15px}.access-existing button{font-weight:700;color:var(--accent);min-height:44px;padding:8px 4px}
.access-class-link{display:flex;align-items:center;justify-content:center;min-height:46px;font-size:12px;border-top:1px solid var(--border);padding-top:12px;color:var(--accent)}
.access-footer{max-width:1280px;width:100%;margin:0 auto;padding:20px 40px;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:11px;line-height:1.7;color:var(--muted)}
.access-footer>div{display:flex;gap:20px;flex-wrap:wrap}.access-footer a{padding:8px 0;text-underline-offset:4px}
.access-mobile-bars{display:none}
.access-auth{width:100%;max-width:none;min-height:0;margin:0}.access-auth .auth-title,.access-setup .auth-title{font-size:27px;line-height:1.25;letter-spacing:-.035em;margin:0 0 12px;outline:none}
.access-auth .auth-sub,.access-setup .auth-sub{font-size:13px;line-height:1.7;color:var(--muted);margin:0 0 24px}
.access-auth .onboard-back,.access-setup .onboard-back{display:inline-flex;align-items:center;gap:8px;font-size:12px;min-height:44px;margin:-10px 0 14px;padding:8px 0;color:var(--muted)}
.access-auth .auth-form{display:flex;flex-direction:column;gap:0}.access-auth .auth-field{margin-bottom:18px}.access-auth .auth-field-head{margin-bottom:8px}.access-auth label{font-size:13px;line-height:1.5}
.access-auth .input{height:48px;font-size:16px}.access-auth .input-with-action>.input{padding-right:48px}.access-auth .input-action{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}
.access-auth .auth-field small{font-size:11px;line-height:1.6;display:block;margin-top:6px}
.access-auth .button,.access-setup .button{min-height:48px;font-size:14px;border-radius:12px}
.access-auth .auth-submit,.access-setup .auth-submit{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;margin-top:14px}
.access-auth .form-error{font-size:12px;line-height:1.6;margin:6px 0 10px}.access-auth .auth-forgot{align-self:flex-start;min-height:44px;margin:-9px 0 4px;padding:8px 0;font-size:12px}
.access-auth .auth-consents{margin:2px 0 6px}.access-auth .form-check{gap:10px;padding:7px 0;align-items:flex-start;font-size:12px;line-height:1.7}.access-auth .form-check input{flex-shrink:0;margin-top:3px;width:18px;height:18px}.access-auth .inline-link{font-size:inherit}
.access-auth .auth-switch{font-size:12px;text-align:center;margin:14px 0 0}.access-auth .auth-switch button{min-height:44px;padding:8px 4px}
.access-guest-link{display:block;min-height:44px;width:100%;font-size:12px;color:var(--muted);margin-top:4px}
.access-auth .auth-choices{display:grid;gap:12px}.access-auth .auth-choice{width:100%;min-height:76px;padding:16px;border-radius:12px;margin:0;text-align:left}.access-auth .auth-choice strong{font-size:14px}.access-auth .auth-choice small{font-size:12px;line-height:1.6}
.access-levels{border:0;padding:0;margin:0;display:grid;gap:10px;min-width:0}.access-level{display:flex;align-items:center;gap:13px;min-height:76px;padding:15px;border:1px solid var(--border);border-radius:12px;cursor:pointer}
.access-level.selected{border-color:var(--accent);background:var(--soft)}.access-level input{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0;margin:0}.access-level strong{display:block;font-size:14px;line-height:1.5}.access-level small{display:block;font-size:12px;line-height:1.5;color:var(--muted);margin-top:3px}
.access-local-note{font-size:11px;line-height:1.7;color:var(--muted);margin:18px 0 4px}.access-success{color:var(--accent);font-size:12px;margin:0 0 14px;line-height:1.6}
.access-auth .recovery-codes{gap:8px;margin:0 0 18px}.access-auth .recovery-codes li{padding:10px 6px;font-size:14px}.access-auth .auth-pair{gap:8px}.access-auth .auth-pair .button{padding:10px;font-size:12px}
.access-shell button:focus-visible,.access-shell a:focus-visible,.access-shell input:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.access-shell h1:focus,.access-shell h2:focus{outline:none}
@media(hover:hover){.access-entry.secondary:hover,.access-level:hover{background:var(--soft)}.access-entry.primary:hover{filter:brightness(1.06)}.access-class-link:hover,.access-footer a:hover{text-decoration:underline}}
@media(max-width:900px){.access-main{gap:32px;padding:24px;grid-template-columns:minmax(0,1fr) minmax(0,420px)}.access-header,.access-footer{padding-left:24px;padding-right:24px}.access-story h1{font-size:34px}.access-story-bottom{flex-direction:column;align-items:flex-start;gap:12px}.access-story-bottom strong{max-width:230px}}
@media(max-width:760px){
 .access-header{padding:16px 20px;min-height:76px}.access-header .brand{font-size:25px}.access-login-link{padding:8px 15px;font-size:13px}
 .access-main{display:block;max-width:500px;padding:10px 20px 24px;margin:0 auto;flex:1}
 .access-story{display:none}.access-panel{background:transparent;border:0;border-radius:0;box-shadow:none;padding:0}
 .access-mobile-bars{display:block;width:60px;height:64px;margin:0 0 8px}
 .access-welcome .access-eyebrow{font-size:9px;margin-bottom:7px}.access-panel h2{font-size:29px;margin-bottom:10px}
 .access-lead{font-size:13px;line-height:1.65;margin-bottom:20px;max-width:340px}
 .access-entry{padding:15px;min-height:80px}.access-entry strong{font-size:14px}.access-entry small{font-size:11px}.access-existing{margin:10px 0 6px}
 .access-footer{padding:12px 20px 20px;display:block;text-align:center;font-size:10px}.access-footer>span{display:none}.access-footer>div{justify-content:center;gap:18px}
 .access-auth .auth-title,.access-setup .auth-title{font-size:27px}.access-auth .auth-sub,.access-setup .auth-sub{font-size:13px;margin-bottom:22px}
 .access-main.is-form{padding-top:4px}.access-auth .onboard-back,.access-setup .onboard-back{margin:0 0 14px}
 .access-level{min-height:80px}.access-auth .auth-form .input{font-size:16px}
}
@media(max-width:360px){.access-header{padding:12px 16px}.access-main{padding-left:16px;padding-right:16px}.access-mobile-bars{width:48px;height:52px}.access-entry{padding:13px}.access-entry strong{font-size:13px}.access-entry small{font-size:10px}.access-panel h2{font-size:27px}.access-auth .auth-pair{flex-wrap:wrap}.access-auth .auth-pair .button{flex:1}}
@media(prefers-reduced-motion:reduce){.access-shell *, .access-auth *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.access-auth .auth-field{margin-top:0!important;margin-bottom:18px;gap:0}
.access-auth .auth-field-head{margin-bottom:8px}
.access-auth .auth-consents{gap:6px}
.access-auth .form-check>span{font-size:12px}
.access-mobile-title{display:none}
.access-auth .auth-title:focus{outline:none}
@media(max-width:760px){.access-desktop-title{display:none}.access-mobile-title{display:inline}.access-welcome h2{max-width:330px}}

[data-theme="dark"] .access-entry.primary{background:#a9cfad;color:#19372c;border-color:#a9cfad}
[data-theme="dark"] .access-entry.primary small{color:#294b36}

/* Quiet welcome: one message, two choices, one login. */
.access-main.is-welcome{max-width:1120px;grid-template-columns:minmax(0,1fr) 360px;gap:88px;padding:48px 56px 72px}
.access-main.is-welcome .access-panel{padding:0;border:0;box-shadow:none;background:transparent;border-radius:0}
.access-main.is-welcome .access-story h1{font-size:48px;line-height:1.16;margin:0 0 22px;letter-spacing:-.045em}
.access-main.is-welcome .access-story>p{font-size:16px;line-height:1.75;max-width:345px}
.access-welcome h2,.access-welcome .access-lead{display:none}
.access-entry{min-height:56px;padding:16px 20px;border-radius:12px;gap:16px}
.access-entry strong{font-size:15px;font-weight:600;line-height:1.5}
.access-entry+.access-entry{margin-top:12px}
.access-existing{margin:18px 0 0;font-size:13px;line-height:1.6}
.access-class-link{border:0;padding:8px 0;min-height:44px;font-size:12px;margin-top:4px;color:var(--muted)}
.access-footer{justify-content:center;padding:16px 24px 22px}.access-footer>div{gap:24px}
@media(max-width:1000px) and (min-width:761px){.access-main.is-welcome{grid-template-columns:minmax(0,1fr) 320px;gap:40px;padding:36px 32px 56px}.access-main.is-welcome .access-story h1{font-size:39px}}
@media(max-width:760px){
 .access-header{padding:20px 24px;min-height:80px}
 .access-main.is-welcome{display:block;max-width:460px;padding:32px 24px 36px;margin:0 auto}
 .access-welcome h2{display:block;font-size:34px;line-height:1.18;letter-spacing:-.04em;max-width:340px;margin:0 0 16px}
 .access-welcome .access-lead{display:block;font-size:14px;line-height:1.7;margin:0 0 32px;max-width:330px}
 .access-entry{min-height:54px;padding:15px 18px}.access-entry strong{font-size:14px}
 .access-existing{margin-top:20px;font-size:13px}.access-class-link{margin-top:4px;font-size:12px}
 .access-footer{padding:12px 16px 20px}.access-footer>div{gap:18px}
}
@media(max-width:360px){.access-header{padding:16px 20px}.access-main.is-welcome{padding:24px 20px 28px}.access-welcome h2{font-size:30px}.access-entry{padding:15px}.access-entry strong{font-size:13px}}
