:root  {
  --footer-bg:#211e4c;
  color-scheme:light;
  --button-text:#ffffff;
  --art-bg:#e9e7f5;
  --art-text:#312e81;
  --surface:#ebe9f4;
  --community:#fff3df;
  --card-muted:#5f5b70;
  --card-border:#beb8d2;
  --community-border:#e4c58b;
  --form-bg:#f1eff8;
  --form-text:#252044;
  --form-muted:#68657a;
  --form-input:#ffffff;
  --form-border:#bfb8d6;
  --form-accent:#312e81;
  --error:#a53320;
  --success:#312e81;
  --paper:#faf9fd;
  --ink:#252044;
  --muted:#68657a;
  --brand:#312e81;
  --brand-deep:#211e4c;
  --amber:#f59e0b;
  --line:#dedbe3;
  --serif:Georgia,'Times New Roman',serif;
  --sans:Inter,'Helvetica Neue',Arial,sans-serif
}
.form-page  {
  min-height:calc(100vh - 220px);
  background:var(--form-bg)
}
.standalone-contact .contact-inner  {
  padding-block:88px;
  min-height:580px;
  align-items:start
}
.standalone-contact h1  {
  font-size:clamp(40px,4.8vw,66px);
  margin:21px 0
}
.light-link  {
  color:var(--form-accent);
  width:max-content;
  max-width:100%;
  margin-top:28px
}
.light-link:hover,.consent a:hover  {
  color:var(--form-accent)
}
.consent a  {
  text-decoration:underline
}
*  {
  box-sizing:border-box
}
html  {
  scroll-behavior:smooth;
  scroll-padding-top:32px
}
body  {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65
}
a  {
  color:inherit;
  text-decoration:none
}
button,input,select,textarea  {
  font:inherit
}
svg  {
  display:block
}
h1,h2,h3,p  {
  margin:0
}
h1,h2,h3  {
  font-weight:400
}
h1,h2  {
  font-family:var(--serif);
  letter-spacing:-.055em;
  line-height:1.08
}
h2  {
  font-size:clamp(38px,4.2vw,58px)
}
em  {
  font-family:var(--serif);
  font-weight:400;
  color:var(--brand)
}
a,button  {
  -webkit-tap-highlight-color:transparent
}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible  {
  outline:3px solid #8b7ed6;
  outline-offset:4px
}
a:hover  {
  color:var(--brand)
}
.wrap  {
  width:min(1200px,calc(100% - 96px));
  margin-inline:auto
}
.skip-link  {
  position:absolute;
  left:20px;
  top:-100px;
  z-index:10;
  background:var(--brand);
  color:var(--button-text);
  padding:12px 20px
}
.skip-link:focus  {
  top:10px
}
.site-header  {
  min-height:116px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  border-bottom:1px solid var(--line)
}
.brand  {
  display:inline-flex;
  align-items:center
}
nav  {
  display:flex;
  align-items:center;
  gap:32px;
  font-size:13px
}
nav a  {
  padding:8px 0
}
.nav-contact  {
  border:1px solid var(--line);
  padding:10px 17px;
  display:flex;
  gap:20px
}
.menu-toggle  {
  display:none;
  border:1px solid var(--line);
  background:transparent;
  padding:7px 12px
}
.menu-toggle[hidden]  {
  display:none
}
.hero  {
  padding-top:64px;
  display:grid;
  grid-template-columns:1.06fr 1fr;
  gap:36px 64px
}
.hero-copy  {
  padding:18px 0
}
.eyebrow  {
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:10px;
  font-weight:600;
  display:flex;
  align-items:center;
  gap:10px
}
.small-dot  {
  height:6px;
  width:6px;
  background:var(--amber);
  border-radius:50%
}
h1  {
  font-size:clamp(60px,6.8vw,94px);
  margin:24px 0
}
h1 em  {
  white-space:nowrap
}
.hero-description  {
  max-width:390px;
  font-size:15px;
  color:var(--muted);
  line-height:1.8;
  margin-bottom:28px
}
.button  {
  display:inline-flex;
  justify-content:space-between;
  align-items:center;
  gap:38px;
  padding:15px 23px;
  font-size:12px;
  font-weight:600;
  border:1px solid transparent;
  transition:background .2s,transform .2s;
  cursor:pointer
}
.button:hover  {
  transform:translateY(-2px)
}
.button-dark  {
  color:var(--button-text);
  background:var(--brand)
}
.button-dark:hover  {
  color:white;
  background:var(--brand-deep)
}
.hero-art  {
  background:var(--art-bg);
  color:var(--art-text);
  min-width:0;
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:28px;
  overflow:hidden
}
.art-top,.art-bottom  {
  display:flex;
  justify-content:space-between;
  gap:12px;
  z-index:1;
  position:relative;
  font-size:8px;
  letter-spacing:.12em
}
.art-top>span:first-child  {
  font-size:12px;
  letter-spacing:.18em
}
.connection-art  {
  width:100%;
  max-height:430px;
  flex:1;
  min-height:0;
  margin-block:8px
}
.hero-foot  {
  grid-column:1/-1;
  display:flex;
  justify-content:space-between;
  padding:0 0 28px;
  border-bottom:1px solid var(--line);
  color:var(--muted);
  font-size:11px;
  letter-spacing:.025em
}
.hero-foot a  {
  display:flex;
  gap:24px
}
.section-space  {
  padding-block:86px
}
.purpose  {
  display:grid;
  grid-template-columns:1.06fr 1fr;
  gap:64px;
  border-bottom:1px solid var(--line)
}
.section-label  {
  margin-bottom:26px
}
.purpose-copy  {
  padding-top:38px;
  color:var(--muted);
  font-size:14px
}
.purpose-copy .lead  {
  color:var(--ink);
  font-size:21px;
  line-height:1.5;
  margin-bottom:18px;
  max-width:390px
}
.purpose-copy p:not(.lead)  {
  max-width:445px
}
.text-link  {
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid currentColor;
  padding-bottom:10px;
  font-size:12px;
  font-weight:600;
  gap:40px
}
.purpose-copy .text-link  {
  width:max-content;
  margin-top:25px
}
.section-heading  {
  margin-bottom:36px
}
.section-heading .eyebrow  {
  margin-bottom:18px
}
.section-heading>p:last-child:not(.eyebrow)  {
  margin-top:16px;
  font-size:14px;
  color:var(--muted)
}
.paths  {
  padding-bottom:0
}
.path-grid  {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px
}
.path-card  {
  padding:34px 38px 28px;
  background:var(--surface);
  scroll-margin-top:32px
}
.community  {
  background:var(--community)
}
.card-top  {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:32px;
  color:var(--brand)
}
.path-card h3  {
  font-family:var(--serif);
  font-size:43px;
  letter-spacing:-.035em;
  line-height:1.12;
  margin-bottom:21px
}
.path-card>p  {
  font-size:14px;
  line-height:1.85;
  color:var(--card-muted);
  max-width:395px;
  min-height:78px
}
.topics  {
  padding:0;
  margin:22px 0 38px;
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:7px
}
.topics li  {
  border:1px solid var(--card-border);
  border-radius:30px;
  padding:5px 10px;
  font-size:9px
}
.community .topics li  {
  border-color:var(--community-border)
}
.values  {
  padding-block:86px 96px
}
.values-grid  {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:48px
}
.values-grid article  {
  border-top:1px solid var(--line);
  padding-top:22px
}
.value-number  {
  font-size:10px;
  color:var(--muted)
}
.values h3  {
  font-family:var(--serif);
  font-size:28px;
  margin:14px 0 9px
}
.values p  {
  font-size:13px;
  color:var(--muted);
  max-width:300px
}
.contact  {
  background:var(--form-bg);
  color:var(--form-text)
}
.contact-inner  {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  padding-block:74px
}
.contact h2  {
  font-size:clamp(42px,4.8vw,66px);
  margin:21px 0
}
.contact em  {
  color:var(--form-accent)
}
.contact-copy>p:not(.eyebrow)  {
  font-size:13px;
  color:var(--form-muted);
  line-height:1.8;
  max-width:350px
}
.button-light  {
  background:var(--brand);
  color:var(--button-text);
  min-width:190px
}
.button-light:hover  {
  background:var(--brand-deep);
  color:white
}
.button:disabled  {
  opacity:.65;
  cursor:wait;
  transform:none
}
.footer-inner  {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding-block:36px
}
.site-footer .brand  {
  font-size:25px
}
.site-footer p,.copyright,.back-top  {
  font-size:10px;
  color:var(--muted)
}
.back-top  {
  display:flex;
  gap:18px
}
.form-row  {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px
}
.field  {
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-bottom:18px
}
.field label  {
  font-size:12px
}
.field input,.field select,.field textarea  {
  width:100%;
  min-width:0;
  border:1px solid var(--form-border);
  background:var(--form-input);
  color:var(--form-text);
  padding:12px;
  font-size:13px;
  border-radius:0
}
.field input::placeholder,.field textarea::placeholder  {
  color:var(--form-muted)
}
.field textarea  {
  resize:vertical;
  min-height:110px
}
.consent  {
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-size:11px;
  color:var(--form-muted);
  line-height:1.6
}
.consent input  {
  margin-top:4px;
  accent-color:var(--form-accent);
  width:16px;
  height:16px;
  flex-shrink:0
}
.privacy-note  {
  font-size:10px;
  color:var(--form-muted);
  line-height:1.7;
  margin:12px 0 21px
}
.form-trap  {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden
}
#form-status  {
  font-size:12px;
  margin-top:14px;
  line-height:1.7;
  min-height:20px
}
#form-status[data-state=error]  {
  color:var(--error)
}
#form-status[data-state=success]  {
  color:var(--success)
}
@media(min-width:1500px)  {
  .hero  {
    padding-top:80px
  }
  .hero-art  {
    min-height:570px
  }
}
@media(max-width:1000px)  {
  .wrap  {
    width:calc(100% - 64px)
  }
  nav  {
    gap:20px
  }
  .hero  {
    gap:30px
  }
  .hero h1  {
    font-size:clamp(60px,7.5vw,80px)
  }
  .hero-art  {
    padding:20px
  }
  .art-top,.art-bottom  {
    font-size:7px;
    letter-spacing:.07em
  }
  .purpose  {
    gap:35px
  }
  .path-card  {
    padding:28px
  }
  .path-card h3  {
    font-size:38px
  }
  .topics  {
    min-height:62px
  }
  .values-grid  {
    gap:28px
  }
  .footer-inner  {
    flex-wrap:wrap
  }
  .site-footer p  {
    flex:1
  }
  .contact-inner  {
    gap:35px
  }
}
@media(max-width:720px)  {
  .wrap  {
    width:calc(100% - 40px)
  }
  .site-header  {
    min-height:86px;
    flex-wrap:wrap;
    gap:0;
    position:relative
  }
  .brand  {
    font-size:27px
  }
  .menu-toggle:not([hidden])  {
    display:flex;
    gap:15px;
    align-items:center
  }
  nav  {
    width:100%;
    gap:15px;
    flex-wrap:wrap;
    padding:0 0 20px;
    font-size:12px
  }
  nav .nav-contact  {
    padding:5px 10px
  }
  html.menu-ready nav  {
    display:none
  }
  html.menu-ready nav.is-open  {
    display:flex
  }
  .hero  {
    padding-top:36px;
    grid-template-columns:1fr;
    gap:28px
  }
  .hero-copy  {
    padding:0
  }
  .hero h1  {
    font-size:clamp(53px,12.5vw,82px);
    margin:22px 0
  }
  .hero-description  {
    max-width:450px;
    font-size:14px
  }
  .hero-art  {
    max-height:450px;
    min-height:350px;
    padding:24px
  }
  .connection-art  {
    max-height:335px
  }
  .art-top,.art-bottom  {
    font-size:8px
  }
  .hero-foot  {
    font-size:10px;
    padding-bottom:22px;
    gap:20px
  }
  .hero-foot a  {
    gap:10px;
    max-width:155px;
    text-align:right
  }
  .section-space  {
    padding-block:56px
  }
  .purpose  {
    grid-template-columns:1fr;
    gap:0
  }
  .purpose-copy  {
    padding-top:25px
  }
  .purpose-copy .lead  {
    font-size:20px
  }
  .section-label  {
    margin-bottom:20px
  }
  .section-heading  {
    margin-bottom:28px
  }
  .path-grid  {
    grid-template-columns:1fr;
    gap:18px
  }
  .paths  {
    padding-bottom:0
  }
  .path-card  {
    padding:28px
  }
  .path-card h3  {
    font-size:40px
  }
  .path-card>p  {
    min-height:0
  }
  .topics  {
    min-height:0;
    margin-bottom:28px
  }
  .values-grid  {
    grid-template-columns:1fr;
    gap:25px
  }
  .values p  {
    max-width:100%
  }
  .values h3  {
    margin:8px 0
  }
  .contact-inner  {
    grid-template-columns:1fr;
    padding-block:54px;
    gap:32px
  }
  .footer-inner  {
    gap:16px;
    padding-block:28px
  }
  .site-footer p  {
    flex-basis:calc(100% - 150px)
  }
  .copyright  {
    margin-right:auto
  }
  .back-top  {
    margin-left:auto
  }
}
@media(max-width:420px)  {
  .form-row  {
    grid-template-columns:1fr;
    gap:0
  }
}
@media(prefers-reduced-motion:reduce)  {
  html  {
    scroll-behavior:auto
  }
  *,*:before,*:after  {
    transition:none!important;
    animation:none!important
  }
}
.brand img  {
  display:block;
  width:220px;
  height:auto
}
.connection-art  {
  object-fit:contain
}
.site-footer .brand img  {
  width:170px
}
@media(max-width:720px)  {
  .site-header .brand img  {
    width:180px
  }
  .site-footer .brand img  {
    width:130px
  }
}
:root[data-theme="dark"]  {
  color-scheme:dark;
  --footer-bg:#0e0d17;
  --paper:#141321;
  --ink:#f3efff;
  --muted:#bbb5cc;
  --brand:#c9baff;
  --line:#39354d;
  --button-text:#1d1633;
  --art-bg:#211e4c;
  --art-text:#ddd8fb;
  --surface:#242037;
  --community:#2e271e;
  --card-muted:#c8c0d8;
  --card-border:#5c536f;
  --community-border:#755a2d;
  --form-bg:#1b182b;
  --form-text:#f3efff;
  --form-muted:#c7bfd9;
  --form-input:#29243f;
  --form-border:#5d5378;
  --form-accent:#ffd895;
  --error:#ffbca5;
  --success:#ddd8fb;
}
@media(prefers-color-scheme:dark) {
  :root:not([data-theme]) {
    color-scheme:dark;
    --footer-bg:#0e0d17;
    --paper:#141321;
    --ink:#f3efff;
    --muted:#bbb5cc;
    --brand:#c9baff;
    --line:#39354d;
    --button-text:#1d1633;
    --art-bg:#211e4c;
    --art-text:#ddd8fb;
    --surface:#242037;
    --community:#2e271e;
    --card-muted:#c8c0d8;
    --card-border:#5c536f;
    --community-border:#755a2d;
    --form-bg:#1b182b;
    --form-text:#f3efff;
    --form-muted:#c7bfd9;
    --form-input:#29243f;
    --form-border:#5d5378;
    --form-accent:#ffd895;
    --error:#ffbca5;
    --success:#ddd8fb;
  }
  :root:not([data-theme]) .theme-light {
    display:none
  }
  :root:not([data-theme]) .theme-dark {
    display:block
  }
}
.brand img.theme-dark,.connection-art.theme-dark {
  display:none
}
:root[data-theme="dark"] .theme-light {
  display:none
}
:root[data-theme="dark"] .theme-dark {
  display:block
}
.header-actions {
  display:flex;
  align-items:center;
  gap:8px;
  order:3
}
.site-header nav {
  order:2
}
.theme-toggle {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:transparent;
  color:var(--ink);
  border:1px solid var(--line);
  padding:10px 12px;
  font-size:12px;
  cursor:pointer
}
.theme-toggle[hidden] {
  display:none
}
@media(max-width:1000px) {
  .site-header {
    flex-wrap:wrap;
    padding-block:16px;
    gap:14px
  }
  .header-actions {
    order:2;
    margin-left:auto
  }
  .site-header nav {
    order:3;
    width:100%;
    justify-content:flex-end
  }
}
@media(max-width:720px) {
  .site-header nav {
    justify-content:flex-start
  }
  .theme-toggle {
    padding:9px 10px
  }
}
@media(max-width:420px) {
  .site-header .brand img {
    width:140px
  }
  .theme-label {
    display:none
  }
  .theme-toggle {
    width:38px;
    height:38px;
    padding:0
  }
}
.site-footer {
  --muted:#bdb5d3;
  --brand:#ddd8fb;
  background:var(--footer-bg);
  border-top:1px solid var(--line)
}
.site-footer img.theme-light {
  display:none
}
.site-footer img.theme-dark {
  display:block
}
.footer-inner {
  min-height:150px;
  padding-block:42px
}
.site-footer p,.copyright,.back-top {
  font-size:11px
}
@media(max-width:720px) {
  .footer-inner {
    padding-block:32px;
    min-height:160px
  }
}
