/* A shared photographic language for the public experience. */
.public-photo-frame{position:relative;isolation:isolate;overflow:hidden;border-radius:18px;background:#dae4e9}
.public-photo-media{width:100%;height:100%;overflow:hidden}
.public-photo-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1);}
.has-public-visual{--visual-ink:#152d40;--visual-accent:#116b64;--visual-wash:#eaf3f8;--visual-detail:#f0c76a}
.visual-theme-events{--visual-ink:#402b46;--visual-accent:#83405b;--visual-wash:#f7edf1;--visual-detail:#f6b49d}
.visual-theme-students{--visual-ink:#362b52;--visual-accent:#6a4b83;--visual-wash:#f0edf8;--visual-detail:#f3b19a}
.visual-theme-campus{--visual-ink:#163d40;--visual-accent:#286561;--visual-wash:#f3f0e2;--visual-detail:#f0c76a}
.has-public-visual .page-hero{position:relative;background:var(--visual-wash);border-bottom:1px solid #152d4012;overflow:hidden}
.has-public-visual .hero-inner{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);width:min(calc(100% - 64px),1200px);max-width:1200px;gap:54px;align-items:center;padding:58px 0 60px}
.has-public-visual .hero-copy{min-width:0;max-width:680px}
.has-public-visual .hero-copy h1{font:500 clamp(38px,4.1vw,59px)/1.08 Georgia,serif;color:var(--visual-ink);letter-spacing:-1.6px;margin:18px 0 22px;max-width:720px;text-wrap:balance}
.has-public-visual .hero-copy>p{display:block;font:400 16px/1.8 Arial,sans-serif;color:#536476;max-width:600px;margin:0;-webkit-line-clamp:unset}
.has-public-visual .hero-copy .eyebrow{font-size:11px;letter-spacing:1.6px;color:var(--visual-accent)}
.has-public-visual .hero-proof{display:none}
.has-public-visual .hero-actions{margin-top:24px}
.has-public-visual .hero-actions .join{background:var(--visual-ink);border-color:var(--visual-ink)}
.public-page-visual{position:relative;margin:0;min-width:0;padding:0 10px 10px 0;isolation:isolate}
.public-page-visual:before{content:"";position:absolute;inset:16px 0 0 16px;border-radius:20px;background:var(--visual-accent);z-index:-1}
.public-page-visual .public-photo-frame{aspect-ratio:3/2;border-radius:18px 18px 0 0}
.public-page-visual figcaption{background:var(--visual-ink);padding:20px 24px 22px;color:white;border-radius:0 0 18px 18px}
.public-page-visual figcaption>span{display:block;color:var(--visual-detail);font:600 10px/1.6 Arial,sans-serif;letter-spacing:1.6px;margin-bottom:7px}
.public-page-visual figcaption strong{font:400 24px/1.3 Georgia,serif;display:block;max-width:340px}
.public-visual-badge{position:absolute;top:16px;left:16px;display:flex;gap:8px;align-items:center;padding:9px 13px;border-radius:30px;background:#fffdf4;color:#18384a;font:600 12px/1.4 Arial,sans-serif;box-shadow:0 4px 14px #152d4012}
.public-visual-badge>span{color:#a56731;font-size:16px}
.public-visual-orbit{position:absolute;right:-8px;top:-23px;z-index:2;color:var(--visual-detail);font:72px/1 Georgia,serif;text-shadow:0 2px 0 #152d4012;pointer-events:none}
.has-public-visual .site-header{background:#fffdf8;border-bottom-color:#d6e1e6}
.has-public-visual .desktop-nav .signup{background:var(--visual-accent);border-color:var(--visual-accent)}
.has-public-visual .site-footer{background:#142e3e}
.has-public-visual .page-main{margin-top:0}

/* Account pages share the imagery without delaying access to the form. */
#accountScreen .account-main{background:#eaf2f5;align-items:center;gap:48px}
#accountScreen .public-join-copy{color:#173348}
#accountScreen .public-join-copy h2{color:#173348;margin-top:24px;font-size:39px}
#accountScreen .public-join-copy h2 em{color:#116b64}
#accountScreen .public-join-copy>p,#accountScreen .public-join-copy ul{color:#4b6071}
#accountScreen .account-visual{margin:0;position:relative;border-radius:18px;background:#152d40;overflow:hidden}
#accountScreen .account-visual .public-photo-frame{aspect-ratio:3/2;border-radius:18px 18px 0 0}
#accountScreen .account-visual figcaption{padding:16px 22px;color:#f0c76a;font:400 22px/1.3 Georgia,serif}
#accountScreen #authForm{border-radius:16px;border:1px solid #d5e1e5;box-shadow:0 14px 40px #1733480d}
#accountScreen .auth-tabs button.active{color:#116b64;border-bottom-color:#116b64}
#accountScreen .auth-submit{background:#116b64;border-color:#116b64}
#accountScreen .auth-public-footer{background:#152d40}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .public-photo-frame img{transition:transform 700ms cubic-bezier(.2,.7,.2,1)}
  .public-photo-frame:hover img{transform:scale(1.045)}
}
@media(max-width:820px){
  .has-public-visual .hero-inner{grid-template-columns:1fr;width:calc(100% - 40px);padding:32px 0 36px;gap:27px}
  .has-public-visual .hero-copy h1{font-size:clamp(34px,6.4vw,46px);line-height:1.12;letter-spacing:-1px;margin:14px 0 16px;max-width:650px}
  .has-public-visual .hero-copy>p{font-size:15px;line-height:1.75}
  .public-page-visual{width:100%;max-width:580px;justify-self:center;padding:0 7px 7px 0}
  .public-page-visual .public-photo-frame{aspect-ratio:16/8}
  .public-page-visual figcaption{padding:16px 20px}
  .public-page-visual figcaption strong{font-size:23px;max-width:none}
  .public-visual-orbit{font-size:57px;right:-5px;top:-16px}
  .public-page-visual .public-visual-badge{display:none}
  :is(.section-jobs,.section-events).has-public-visual .public-page-visual .public-photo-frame{aspect-ratio:2.5/1}
  :is(.section-jobs,.section-events).has-public-visual .public-page-visual img{object-position:center 20%}
  :is(.section-jobs,.section-events).has-public-visual .public-page-visual figcaption{padding:12px 18px}
  :is(.section-jobs,.section-events).has-public-visual .public-page-visual figcaption>span{display:none}
  :is(.section-jobs,.section-events).has-public-visual .public-page-visual figcaption strong{font-size:21px}
  #accountScreen .account-main{padding:20px 16px 30px;display:block}
  #accountScreen .public-join-copy{display:block;width:100%;max-width:440px;margin:0 auto 18px}
  #accountScreen .public-join-copy>:not(.account-visual){display:none}
  #accountScreen .account-visual .public-photo-frame{aspect-ratio:3/1}
  #accountScreen .account-visual img{object-position:center 20%}
  #accountScreen .account-visual figcaption{font-size:18px;padding:12px 18px}
}
@media(max-width:360px){.has-public-visual .hero-inner{width:calc(100% - 32px)}.has-public-visual .hero-copy h1{font-size:33px}.public-page-visual figcaption{padding-inline:16px}}
@media(prefers-reduced-motion:reduce){.public-photo-media,.public-photo-frame img{animation:none!important;transition:none!important;transform:none!important}}
