:root {
  --purple:#693a98;
  --plum:#382648;
  --lavender:#eee7f4;
  --paper:#f8f6f2;
  --white:#fff;
  --ink:#242128;
  --muted:#625b64;
  --line:#ddd4df;
  --max:1180px;
  --body:'DM Sans',Arial,sans-serif;
  --display:'Libre Baskerville',Georgia,serif
}

* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  line-height:1.65
}
img {
  max-width:100%;
  display:block
}
a {
  color:inherit
}
button {
  font:inherit
}
.container {
  width:min(var(--max),calc(100% - 48px));
  margin-inline:auto
}
.skip-link {
  position:absolute;
  z-index:100;
  top:-80px;
  left:12px;
  padding:10px;
  background:var(--white)
}
.skip-link:focus {
  top:8px
}
:focus-visible {
  outline:3px solid var(--purple);
  outline-offset:4px
}

.site-header {
  position:relative;
  z-index:30;
  background:var(--white);
  box-shadow:0 1px 0 rgba(36,33,40,.08)
}
.header-inner {
  width:min(1360px,calc(100% - 48px));
  min-height:86px;
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px
}
.brand {
  display:block;
  flex:none;
  width:185px
}
.brand img {
  width:100%;
  height:auto
}
.primary-nav {
  display:flex;
  align-items:center;
  gap:clamp(14px,2vw,29px)
}
.primary-nav>a,.nav-group>a {
  font-size:.86rem;
  font-weight:700;
  letter-spacing:.055em;
  text-decoration:none;
  text-transform:uppercase;
  white-space:nowrap;
  transition:color .2s
}
.primary-nav>a:hover,.nav-group>a:hover,.primary-nav [aria-current] {
  color:var(--purple)
}
.nav-group {
  position:relative
}
.nav-sub {
  position:absolute;
  top:100%;
  left:-18px;
  min-width:185px;
  padding:12px 0;
  background:var(--white);
  box-shadow:0 14px 28px rgba(36,33,40,.12);
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .2s,transform .2s,visibility .2s
}
.nav-group:hover .nav-sub,.nav-group:focus-within .nav-sub {
  opacity:1;
  visibility:visible;
  transform:translateY(0)
}
.nav-sub a {
  display:block;
  padding:8px 18px;
  font-size:.86rem;
  text-decoration:none
}
.nav-sub a:hover {
  color:var(--purple);
  background:var(--lavender)
}
.nav-toggle {
  display:none
}

.hero {
  position:relative;
  min-height:clamp(490px,68vw,720px);
  overflow:hidden;
  background:var(--plum);
  display:grid;
  place-items:center
}
.hero-media,.hero-frame,.hero-shade {
  position:absolute;
  inset:0
}
.hero-frame {
  background-position:center;
  background-size:cover;
  opacity:0;
  transform:scale(1.02);
  transition:opacity 2.4s ease-in-out,transform 9s linear;
  will-change:opacity,transform
}
.hero-frame.is-active {
  opacity:1;
  transform:scale(1.085)
}
.hero-shade {
  background:linear-gradient(180deg,rgba(23,16,32,.15),rgba(29,19,40,.25) 48%,rgba(25,17,33,.56)),linear-gradient(110deg,rgba(53,35,69,.16),transparent 56%)
}
.hero-content {
  position:relative;
  z-index:2;
  width:min(680px,84vw);
  padding:45px;
  text-align:center
}
.hero-logo {
  width:100%;
  height:auto;
  filter:brightness(0) invert(1) drop-shadow(0 8px 24px rgba(0,0,0,.3))
}
.hero-edge {
  position:absolute;
  z-index:2;
  bottom:0;
  left:0;
  width:100%;
  height:22px;
  background:var(--paper);
  clip-path:polygon(0 100%,100% 100%,100% 0,0 100%)
}

.section-pad {
  padding:clamp(70px,8vw,116px) 0
}
.section-rule {
  display:block;
  width:44px;
  height:3px;
  background:var(--purple);
  margin:0 0 25px
}
.welcome {
  background:var(--paper)
}
.welcome-inner {
  padding:clamp(50px,7vw,86px) 0;
  text-align:center
}
.welcome p {
  max-width:900px;
  margin:0 auto;
  color:var(--plum);
  font:400 clamp(1.28rem,2.35vw,2.1rem)/1.65 var(--display)
}
.actions {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px;
  margin-top:31px
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:154px;
  min-height:48px;
  padding:11px 25px;
  border:1px solid var(--purple);
  border-radius:2px;
  font-weight:700;
  font-size:.82rem;
  letter-spacing:.075em;
  text-align:center;
  text-decoration:none;
  text-transform:uppercase;
  transition:background .2s,color .2s,transform .2s
}
.button:hover {
  transform:translateY(-2px)
}
.button-primary {
  background:var(--purple);
  color:var(--white)
}
.button-primary:hover {
  background:var(--plum)
}
.button-outline {
  color:var(--purple);
  background:transparent
}
.button-outline:hover {
  background:var(--lavender)
}

h2,h3,h4,p {
  margin-top:0
}
.intro {
  background:var(--white)
}
.intro-grid {
  display:grid;
  grid-template-columns:minmax(220px,.8fr) minmax(0,1.6fr);
  gap:clamp(36px,7vw,100px)
}
.section-heading h2,.center-heading h2,.explorers h2 {
  font:400 clamp(1.75rem,3vw,2.8rem)/1.32 var(--display);
  letter-spacing:-.035em;
  color:var(--plum)
}
.intro-body>p {
  max-width:720px;
  font-size:1.02rem;
  color:var(--muted);
  line-height:1.9
}
.video-wrap {
  position:relative;
  aspect-ratio:16/9;
  margin-top:30px;
  overflow:hidden;
  background:var(--plum)
}
.video-wrap iframe {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0
}

.features {
  background:var(--lavender)
}
.feature-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px
}
.feature-card {
  min-width:0;
  background:var(--white);
  box-shadow:0 14px 34px rgba(56,38,72,.06);
  transition:transform .25s,box-shadow .25s
}
.feature-card:hover {
  transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(56,38,72,.11)
}
.feature-card>img {
  width:100%;
  height:220px;
  object-fit:cover
}
.feature-copy {
  min-height:210px;
  padding:24px 25px 26px;
  display:flex;
  flex-direction:column
}
.feature-copy h2 {
  margin:0 0 10px;
  color:var(--plum);
  font:400 1.28rem/1.4 var(--display)
}
.feature-copy p {
  color:var(--muted);
  font-size:.9rem;
  line-height:1.6
}
.feature-copy a {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-top:auto;
  border-top:1px solid var(--line);
  padding-top:14px;
  color:var(--purple);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.08em;
  text-decoration:none;
  text-transform:uppercase
}
.feature-copy a span {
  font-size:1.2rem;
  font-weight:400
}
.feature-copy a:hover {
  text-decoration:underline
}

.activities {
  background:var(--paper)
}
.center-heading {
  text-align:center;
  max-width:790px;
  margin:0 auto 42px
}
.center-heading .section-rule {
  margin-inline:auto
}
.center-heading h2 {
  margin-bottom:15px
}
.center-heading>p {
  margin:0;
  color:var(--muted)
}
.activity-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px
}
.activity-grid figure {
  position:relative;
  min-height:220px;
  margin:0;
  overflow:hidden;
  background:var(--plum)
}
.activity-grid img {
  width:100%;
  height:100%;
  min-height:220px;
  object-fit:cover;
  transition:transform .55s
}
.activity-grid figure:hover img {
  transform:scale(1.04)
}
.activity-grid figcaption {
  position:absolute;
  inset:auto 0 0;
  padding:30px 18px 18px;
  background:linear-gradient(transparent,rgba(22,16,31,.8));
  color:var(--white);
  font:400 1.11rem/1.4 var(--display)
}
.activity-note {
  max-width:850px;
  margin:36px auto 0;
  text-align:center;
  color:var(--muted)
}
.activity-note strong {
  color:var(--plum)
}

.explorers {
  background:var(--white)
}
.explorers-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(35px,6vw,90px);
  align-items:center
}
.explorers-copy>p {
  color:var(--muted);
  line-height:1.9;
  margin:22px 0 28px
}
.explorers-image {
  position:relative;
  display:block;
  padding:18px;
  background:var(--lavender)
}
.explorers-image>img:first-child {
  width:100%;
  aspect-ratio:1.25;
  object-fit:cover
}
.explorers-mark {
  position:absolute;
  bottom:0;
  left:0;
  width:84px;
  height:84px;
  object-fit:contain;
  background:var(--white);
  padding:10px
}

.reviews {
  background:var(--paper)
}
.reviews .center-heading a {
  color:var(--purple);
  text-underline-offset:3px
}
.review-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px
}
.review-grid blockquote {
  margin:0;
  min-height:265px;
  padding:27px 22px;
  background:var(--white);
  border-top:3px solid var(--purple);
  display:flex;
  flex-direction:column
}
.review-grid blockquote p {
  font:400 .97rem/1.72 var(--display);
  color:var(--plum)
}
.review-grid blockquote footer {
  margin-top:auto;
  padding-top:16px;
  display:flex;
  flex-direction:column;
  gap:3px;
  font-size:.77rem
}
.review-grid blockquote footer span {
  color:var(--muted)
}
.direct-note {
  background:var(--purple);
  color:var(--white);
  text-align:center;
  padding:32px 0
}
.direct-note p:first-child {
  font:400 1.24rem/1.4 var(--display);
  margin:0 0 5px
}
.direct-note p:last-child {
  font-size:.88rem;
  margin:0
}
.site-footer {
  background:var(--plum);
  color:var(--white);
  padding:40px 0
}
.footer-inner {
  text-align:center
}
.social-links {
  display:flex;
  justify-content:center;
  gap:12px;
  margin-bottom:20px
}
.social-links a {
  width:36px;
  height:36px;
  border:1px solid rgba(255,255,255,.5);
  display:grid;
  place-items:center;
  border-radius:50%;
  font-weight:700;
  font-size:.9rem;
  text-decoration:none
}
.social-links a:hover {
  background:var(--purple)
}
.site-footer p {
  margin:0;
  font-size:.78rem;
  color:#ddd5e3
}
.site-footer p a {
  color:var(--white)
}

@media(max-width:1000px) {
  .header-inner {
    min-height:72px
  }
  .brand {
    width:155px
  }
  .nav-toggle {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    width:44px;
    height:44px;
    border:1px solid var(--line);
    background:var(--white);
    padding:10px;
    cursor:pointer
  }
  .nav-toggle span {
    display:block;
    height:2px;
    background:var(--plum)
  }
  .primary-nav {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    padding:14px 24px 24px;
    background:var(--white);
    box-shadow:0 16px 26px rgba(36,33,40,.13)
  }
  .primary-nav.is-open {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0
  }
  .primary-nav>a,.nav-group>a {
    display:block;
    padding:12px 0;
    border-bottom:1px solid var(--line)
  }
  .nav-sub {
    position:static;
    opacity:1;
    visibility:visible;
    transform:none;
    box-shadow:none;
    padding:0 0 0 14px
  }
  .nav-sub a {
    padding:9px 0
  }
  .intro-grid {
    grid-template-columns:1fr;
    gap:20px
  }
  .feature-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .review-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  
}

@media(max-width:650px) {
  .container,.header-inner {
    width:min(calc(100% - 32px),var(--max))
  }
  .hero {
    min-height:430px
  }
  .hero-content {
    width:88vw;
    padding:15px
  }
  .welcome p {
    font-size:1.15rem;
    line-height:1.75
  }
  .actions {
    display:grid;
    grid-template-columns:1fr;
    max-width:340px;
    margin:26px auto 0
  }
  .section-pad {
    padding:64px 0
  }
  .feature-grid,.activity-grid,.explorers-grid,.review-grid {
    grid-template-columns:1fr
  }
  .feature-card>img {
    height:220px
  }
  .feature-copy {
    min-height:0
  }
  .activity-grid {
    gap:12px
  }
  .activity-grid figure,.activity-grid img {
    min-height:190px
  }
  .explorers-image {
    order:-1
  }
  .review-grid blockquote {
    min-height:0
  }
  .intro-body>p br {
    display:none
  }
  
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  .hero-frame,.feature-card,.activity-grid img,.button {
    transition:none!important;
    animation:none!important
  }
  .feature-card:hover,.activity-grid figure:hover img,.button:hover {
    transform:none
  }
  
}
