*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--sans);
  font-size:19px;
  line-height:1.6;
  letter-spacing:-.003em;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
p{margin:0}
figure{margin:0}
h1,h2,h3,blockquote{margin:0}
.skip{
  position:absolute;
  left:1rem;
  top:-4rem;
  z-index:1200;
  padding:.7rem 1rem;
  background:var(--wine);
  color:var(--ivory);
  text-decoration:none;
  font-size:1rem;
}
.skip:focus{top:1rem}
.wrap{
  width:100%;
  max-width:1440px;
  margin:0 auto;
  padding:0 clamp(1.25rem,4vw,3rem);
  position:relative;
  z-index:2;
}

html body nav#nav{
  background:rgba(246,245,251,.72);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  backdrop-filter:blur(18px) saturate(140%);
  border-bottom:0;
  transition:transform .45s cubic-bezier(.2,.7,.2,1);
}
html body nav#nav.is-away{transform:translateY(-100%)}
html body nav#nav .nav-inner{
  max-width:1440px;
  padding:.9rem clamp(1.25rem,4vw,3rem);
}
html body nav#nav .nav-links > a:not(.nav-cta),
html body nav#nav .nav-group-btn{
  border-radius:999px;
  padding:.4rem .8rem;
}
html body nav#nav .nav-links > a:not(.nav-cta):hover,
html body nav#nav .nav-links > a:not(.nav-cta):focus-visible,
html body nav#nav .nav-group-btn:hover,
html body nav#nav .nav-group-btn:focus-visible{
  background:rgba(154,74,108,.08);
  color:var(--ink);
}
html body nav#nav .nav-links > a:not(.nav-cta)[aria-current="page"]{
  background:rgba(154,74,108,.08);
  color:var(--ink);
  font-weight:600;
}
html body nav#nav a.nav-cta,
html body nav#nav a.nav-cta:hover,
html body nav#nav a.nav-cta:focus-visible{
  border-radius:999px;
  padding:.4rem 1.2rem;
}
html body nav#nav a.nav-cta:hover,
html body nav#nav a.nav-cta:focus-visible{
  background:var(--ink);
}

.breadcrumb{
  display:flex;
  gap:.6rem;
  align-items:center;
  flex-wrap:wrap;
  padding:clamp(1.5rem,4vw,3rem) 0 0;
  font-family:var(--sans);
  font-size:1rem;
  letter-spacing:0;
  text-transform:none;
  color:var(--ink-soft);
}
.breadcrumb a{color:var(--ink-soft);text-decoration:none}
.breadcrumb a:hover{color:var(--wine)}
.breadcrumb [aria-current="page"],
.breadcrumb span{color:var(--ink)}

html body .eyebrow,
html body .hero-eyebrow,
html body .spokes-label,
html body .sc-label,
html body .score-label{
  display:block;
  font-family:var(--sans);
  font-size:1rem;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--wine);
  margin:0 0 1.2rem;
}

.hub-hero{padding:1.2rem 0 0}
.hub-hero figure{
  margin:0;
  aspect-ratio:21/9;
  overflow:hidden;
  border-radius:clamp(20px,3vw,32px);
  background:var(--powder);
  animation:hubHero 1.6s cubic-bezier(.2,.7,.2,1) both;
}
.hub-hero img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  animation:zoom 2.2s cubic-bezier(.2,.7,.2,1) both;
}
.hub-header,
.hero,
.page > .wrap{
  animation:heroIn 1s cubic-bezier(.2,.7,.2,1) both;
}
.hub-hero figcaption,
.img-credit{
  font-family:var(--sans);
  font-size:.95rem;
  letter-spacing:0;
  text-transform:none;
  color:var(--ink-soft);
  margin-top:.7rem;
  opacity:.8;
}
.hub-hero figcaption + figcaption{display:none}
.section-img{
  width:100%;
  height:auto;
  border-radius:clamp(18px,2.5vw,24px);
  margin:2.5rem 0 .5rem;
  display:block;
}
.section-img.is-portrait{
  max-height:min(42rem,78svh);
  object-fit:cover;
  object-position:50% 28%;
}
.section-img + .img-credit{margin-bottom:2rem;display:block}

.hub-header{
  padding:clamp(2.5rem,5vw,4.5rem) 0 2rem;
  max-width:780px;
}
.hub-header h1{
  font-family:var(--serif);
  font-size:clamp(2.4rem,5vw,4.4rem);
  font-weight:400;
  line-height:1.02;
  letter-spacing:-.03em;
  margin:0 0 1.4rem;
  color:var(--ink);
  text-wrap:balance;
}
.hub-header h1 em,
h1 em,h2 em,h3 em{font-style:normal;color:inherit;font-weight:inherit}
.hub-header .lead{
  font-size:clamp(1.1rem,1.4vw,1.25rem);
  color:var(--ink-soft);
  max-width:640px;
  line-height:1.65;
  margin:0;
}

.hub-body{
  max-width:none;
  padding:clamp(1rem,3vw,2rem) 0;
  display:grid;
  gap:1.4rem;
  font-size:1.15rem;
  line-height:1.7;
  color:var(--ink-soft);
}
.hub-body > :not(.section-img):not(.img-credit){
  max-width:780px;
}
.hub-body h2{
  font-family:var(--serif);
  font-size:clamp(1.7rem,3vw,2.4rem);
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.02em;
  color:var(--ink);
  margin:.8rem 0 0;
}
.hub-body h3{
  font-family:var(--serif);
  font-size:1.3rem;
  font-weight:400;
  color:var(--ink);
  margin:1rem 0 0;
}
.hub-body strong{color:var(--ink);font-weight:600}
.hub-body a{color:var(--wine);text-decoration:underline;text-underline-offset:3px}
.hub-body a:hover{color:var(--ink)}
.hub-body ul{
  padding-left:1.4rem;
  color:var(--ink-soft);
  margin:0;
}
.hub-body ul li{margin-bottom:.5rem;line-height:1.6}
.hub-body blockquote{
  margin:.4rem 0;
  padding:1.4rem 1.8rem;
  border-left:2px solid var(--wine);
  background:#fff;
  border-radius:0 22px 22px 0;
  font-family:var(--serif);
  font-size:1.2rem;
  font-style:italic;
  color:var(--ink);
  line-height:1.45;
}

.spokes{padding:clamp(2rem,4vw,4rem) 0}
.spoke-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
}
@media(min-width:720px){
  .spoke-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:1100px){
  .spoke-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
html body .spoke-card{
  display:block;
  text-decoration:none;
  padding:1.6rem 1.8rem;
  background:#fff;
  border:0;
  box-shadow:none;
  border-radius:22px;
}
html body .spoke-card.upcoming{
  cursor:default;
  pointer-events:none;
  background:#fff;
}
.spoke-card.upcoming h3{color:var(--ink-soft)}
.spoke-card h3{
  font-family:var(--serif);
  font-size:1.25rem;
  font-weight:400;
  line-height:1.25;
  color:var(--ink);
  margin:0 0 .5rem;
}
.spoke-card p{
  font-size:1rem;
  color:var(--ink-soft);
  margin:0;
  line-height:1.5;
}

.faq-section{
  padding:clamp(2.5rem,5vw,5rem) 0 clamp(3.5rem,7vw,6.5rem);
  max-width:none;
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
}
.faq-section h2{
  font-family:var(--serif);
  font-size:clamp(1.8rem,3.2vw,2.6rem);
  font-weight:400;
  margin:0 0 .4rem;
  color:var(--ink);
  grid-column:1 / -1;
}
@media(min-width:900px){
  .faq-section{grid-template-columns:repeat(2,minmax(0,1fr))}
  .faq-section .faq-item:last-child:nth-child(even){
    grid-column:1 / -1;
    max-width:calc((100% - 1rem) / 2);
    justify-self:center;
    width:100%;
  }
}
.faq-item{
  margin:0;
  padding:1.4rem 0;
  border-bottom:1px solid var(--line-soft);
  background:transparent;
  border-left:0;
  border-right:0;
  border-top:0;
  box-shadow:none;
}
html body .faq-section .faq-item{
  padding:1.55rem 1.7rem;
  background:#fff;
  border:0;
  border-radius:22px;
}
.faq-item h3{
  font-family:var(--serif);
  font-size:clamp(1.22rem,2.1vw,1.45rem);
  font-weight:400;
  line-height:1.2;
  color:var(--ink);
  margin:0 0 .7rem;
}
.faq-item p{
  font-size:1.08rem;
  margin:0;
  color:var(--ink-soft);
  line-height:1.7;
  max-width:60ch;
}

.page-meet{
  background:var(--powder);
  border-radius:clamp(24px,4vw,48px) clamp(24px,4vw,48px) 0 0;
  margin:0 clamp(.5rem,1.5vw,1.25rem);
  padding:clamp(3.2rem,6.5vw,5.5rem) clamp(1.25rem,4vw,3rem) 0;
}
.page-meet-grid{
  max-width:1340px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));
  gap:clamp(1.8rem,4vw,3.5rem);
  align-items:baseline;
  padding-bottom:clamp(2.6rem,4.5vw,3.5rem);
}
.page-meet h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(2.4rem,4.6vw,4.6rem);
  line-height:.98;
  letter-spacing:-.03em;
  color:var(--ink);
  margin:0;
  text-wrap:balance;
}
.page-meet p{
  color:var(--ink-soft);
  font-size:1.15rem;
  line-height:1.6;
  max-width:40ch;
  margin:0 0 1.6rem;
}
.page-meet .eyebrow{margin-bottom:1rem}

html body a.meet-btn,
html body a.meet-btn:hover,
html body a.meet-btn:focus-visible,
html body a.cta-btn,
html body a.cta-btn:hover,
html body a.cta-btn:focus-visible,
html body a.btn,
html body a.btn:hover,
html body button.btn,
html body button.btn-primary,
html body button.contact-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:1.1rem 1.8rem;
  border:0;
  border-radius:999px;
  background:var(--wine);
  color:var(--ivory);
  text-decoration:none;
  font-family:var(--sans);
  font-weight:600;
  font-size:1.05rem;
  letter-spacing:0;
  text-transform:none;
  min-height:52px;
  line-height:1.3;
  cursor:pointer;
  transition:background .3s cubic-bezier(.2,.7,.2,1);
}
html body a.meet-btn:hover,
html body a.meet-btn:focus-visible,
html body a.cta-btn:hover,
html body a.cta-btn:focus-visible,
html body a.btn:hover,
html body button.btn:hover,
html body button.btn-primary:hover,
html body button.contact-submit:hover{
  background:var(--ink);
  color:var(--ivory);
}
html body button.btn:disabled{
  opacity:.45;
  cursor:not-allowed;
}

.page{
  padding:clamp(1.5rem,4vw,3rem) 0 clamp(4rem,8vw,7rem);
}
.page .wrap{max-width:780px}
.page h1{
  font-family:var(--serif);
  font-size:clamp(2.4rem,5vw,4.4rem);
  font-weight:400;
  line-height:1.02;
  letter-spacing:-.03em;
  margin:0 0 1.6rem;
  color:var(--ink);
}
.page h2{
  font-family:var(--serif);
  font-size:clamp(1.5rem,3vw,2rem);
  font-weight:400;
  line-height:1.15;
  margin:2.4rem 0 1rem;
  color:var(--ink);
}
.page p{
  margin:0 0 1.4rem;
  color:var(--ink-soft);
  font-size:1.1rem;
  line-height:1.7;
}
.page p:last-child{margin-bottom:0}
.page a{color:var(--wine);text-underline-offset:3px}
.page a:hover{color:var(--ink)}
html body .page .panel{
  margin-top:2.5rem;
  padding:1.6rem 1.8rem;
  background:#fff;
  border:0;
  box-shadow:none;
  border-radius:22px;
}

html body .hero{
  max-width:1440px;
  margin:0 auto;
  padding:clamp(1.5rem,4vw,3rem) clamp(1.25rem,4vw,3rem) clamp(3rem,6vw,5rem);
}
html body .hero:has(.wrap){
  padding-left:0;
  padding-right:0;
  max-width:none;
}
html body .hero h1{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(2.5rem,5.2vw,4.6rem);
  line-height:1.02;
  letter-spacing:-.03em;
  color:var(--ink);
  text-wrap:balance;
}
.lead,
.hero-lead{
  font-size:clamp(1.1rem,1.4vw,1.25rem);
  max-width:56ch;
  color:var(--ink-soft);
  line-height:1.65;
  margin:1.4rem 0 0;
}
.hero-note{
  border-left:2px solid var(--wine);
  padding:.2rem 0 .2rem 1.4rem;
  color:var(--ink-soft);
  font-size:1.05rem;
}
.hero-note strong{display:block;color:var(--ink);margin-bottom:.45rem}
html body .hero-grid{align-items:start}
html body .below-grid{
  gap:1.25rem;
  align-items:stretch;
}
html body .below .text-card{height:100%}

html body .contact-grid{
  max-width:1440px;
  padding-left:clamp(1.25rem,4vw,3rem);
  padding-right:clamp(1.25rem,4vw,3rem);
}
html body .kennismaking-card{
  background:#fff;
  border:0;
  border-radius:28px;
  padding:clamp(2rem,4vw,3rem);
}
html body .photo-strip{border-radius:22px}
html body .detail-group h3{
  font-family:var(--sans);
  font-size:1rem;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--wine);
}
html body .field label{
  font-family:var(--sans);
  letter-spacing:0;
  text-transform:none;
  color:var(--ink-soft);
}

html body .panel,
html body .form-card,
html body .preview-card,
html body .text-card,
html body .quiz,
html body .side,
html body .lead-panel{
  background:#fff;
  border:0;
  box-shadow:none;
  border-radius:22px;
}
html body .text-card,
html body .preview-card{
  padding:1.6rem 1.8rem;
}
html body .seo-copy{
  max-width:66ch;
}
html body .email-box label,
html body .form-card label{
  font-family:var(--sans);
  font-size:1rem;
  font-weight:600;
  letter-spacing:0;
  text-transform:none;
  color:var(--wine);
}
html body .email-box input,
html body .form-card input,
html body .email-box select{
  border-radius:12px;
}
html body .progress{
  border-radius:999px;
  overflow:hidden;
}
html body .option span{
  border-radius:14px;
  border-color:var(--line-soft);
  background:var(--ivory);
  font-family:var(--sans);
  letter-spacing:0;
  text-transform:none;
}
html body .audience-list li,
html body .tag,
html body .meta span,
html body .section li{
  background:#fff;
  border:0;
  border-radius:14px;
  font-family:var(--sans);
  letter-spacing:0;
  text-transform:none;
}
.seo-section,
.section,
.below{
  padding:clamp(3rem,6vw,5rem) 0;
}
.seo-copy h2,
.section h2,
.form-card h2,
.text-card h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(1.8rem,3.4vw,2.8rem);
  line-height:1.08;
  letter-spacing:-.02em;
  color:var(--ink);
}
html body .faq-list .faq-item{
  padding:1.4rem 1.6rem;
  background:#fff;
  border:0;
  border-radius:22px;
}
.faq-list{display:grid;gap:1rem}

html body .disclosure-band{
  background:var(--powder);
  border-top:0;
  border-radius:clamp(24px,4vw,48px) clamp(24px,4vw,48px) 0 0;
  margin:0 clamp(.5rem,1.5vw,1.25rem);
  padding:clamp(2rem,4vw,3rem) clamp(1.25rem,4vw,3rem) 0;
}
html body .disclosure-inner{
  max-width:1340px;
  margin:0 auto;
}
html body .disclosure-inner h2{
  font-family:var(--sans);
  font-size:1rem;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--wine);
}

footer.about-foot{
  background:var(--powder);
  color:var(--ink-soft);
  margin:0 clamp(.5rem,1.5vw,1.25rem);
  padding:0 clamp(1.25rem,4vw,3rem) clamp(2rem,4vw,3rem);
  border-top:0;
  text-align:left;
  border-radius:clamp(24px,4vw,48px) clamp(24px,4vw,48px) 0 0;
}
.page-meet + footer.about-foot,
main:has(.page-meet) + footer.about-foot,
.disclosure-band + footer.about-foot{
  border-radius:0;
}
.about-foot-inner{
  max-width:1340px;
  margin:0 auto;
  padding-top:1.6rem;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1rem 2rem;
  font-size:1rem;
}
html body footer.about-foot .foot-brand{
  font-family:var(--serif);
  color:var(--ink);
  font-size:1.1rem;
  text-decoration:none;
  min-height:0;
  padding:0;
}
html body footer.about-foot .foot-brand em{font-style:italic;color:var(--wine)}
.foot-links{display:flex;gap:1.6rem;flex-wrap:wrap}
html body footer.about-foot .foot-links a,
html body footer.about-foot .foot-copy{
  color:inherit;
  text-decoration:none;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  padding:0;
}
html body footer.about-foot .foot-links a:hover{color:var(--wine)}

@media(max-width:880px){
  .hub-hero figure{aspect-ratio:4/3}
  html body a.meet-btn,
  html body a.cta-btn,
  html body a.btn,
  html body button.btn,
  html body button.contact-submit{
    width:100%;
    text-align:center;
    white-space:normal;
  }
}

@keyframes zoom{from{transform:scale(1.12)}to{transform:scale(1)}}
@keyframes heroIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes hubHero{from{transform:scale(.96);border-radius:80px}to{transform:scale(1);border-radius:32px}}
@keyframes grow{from{transform:scale(.86) rotate(-1.2deg);border-radius:80px}to{transform:scale(1) rotate(0deg);border-radius:24px}}
@keyframes pop{from{transform:scale(.95) translateY(18px)}to{transform:none}}

@supports (animation-timeline:view()){
  .spoke-card,
  .text-card,
  .kennismaking-card,
  .preview-card{
    animation:pop linear both;
    animation-timeline:view();
    animation-range:entry 8% entry 55%;
  }
  .section-img,
  .photo-strip{
    animation:grow linear both;
    animation-timeline:view();
    animation-range:entry 0% entry 70%;
  }
  .faq-section .faq-item,
  .page-meet-grid > div,
  .faq-list .faq-item,
  .disclosure-inner,
  .below .text-card{
    animation:pop linear both;
    animation-timeline:view();
    animation-range:contain 0% contain 40%;
  }
}
@supports not (animation-timeline:view()){
  .grow,
  .section-img,
  .photo-strip{
    transform:scale(.92);
    border-radius:80px;
  }
  .grow.in,
  .section-img.in,
  .photo-strip.in{
    animation:grow .9s cubic-bezier(.2,.7,.2,1) both;
  }
  .spoke-card,
  .text-card,
  .kennismaking-card,
  .preview-card{
    transform:scale(.95) translateY(18px);
  }
  .spoke-card.in,
  .text-card.in,
  .kennismaking-card.in,
  .preview-card.in{
    animation:pop .75s cubic-bezier(.2,.7,.2,1) both;
  }
}

html.js-motion .faq-section .faq-item,
html.js-motion .page-meet-grid > div,
html.js-motion .faq-list .faq-item,
html.js-motion .disclosure-inner,
html.js-motion .below .text-card{
  animation:none;
  transform:scale(.96) translateY(16px);
}
html.js-motion .faq-section .faq-item.in,
html.js-motion .page-meet-grid > div.in,
html.js-motion .faq-list .faq-item.in,
html.js-motion .disclosure-inner.in,
html.js-motion .below .text-card.in{
  animation:pop .7s cubic-bezier(.2,.7,.2,1) both;
}
html.js-motion .faq-section .faq-item.in:nth-child(3){animation-delay:.08s}
html.js-motion .faq-section .faq-item.in:nth-child(4){animation-delay:.16s}
html.js-motion .page-meet-grid > div.in{animation-delay:.12s}
html.js-motion .faq-list .faq-item.in:nth-child(2){animation-delay:.06s}
html.js-motion .faq-list .faq-item.in:nth-child(3){animation-delay:.12s}
html.js-motion .faq-list .faq-item.in:nth-child(4){animation-delay:.18s}
html.js-motion .faq-list .faq-item.in:nth-child(5){animation-delay:.24s}
html.js-motion .faq-list .faq-item.in:nth-child(6){animation-delay:.3s}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hub-hero figure,
  .hub-hero img,
  .hub-header,
  .hero,
  .page > .wrap,
  .hub-body h2,
  .spoke-card,
  .faq-section h2,
  .faq-section .faq-item,
  .page-meet h2,
  .page-meet-grid > div,
  .seo-copy h2,
  .text-card,
  .faq-list .faq-item,
  .kennismaking-card,
  .preview-card,
  .section h2,
  .copy h2,
  .disclosure-inner,
  .section-img,
  .photo-strip,
  .rise,
  .grow,
  html.js-motion .faq-section h2,
  html.js-motion .faq-section .faq-item,
  html.js-motion .page-meet h2,
  html.js-motion .page-meet-grid > div,
  html.js-motion .faq-list .faq-item,
  html.js-motion .disclosure-inner,
  html.js-motion .below .text-card,
  html.js-motion .seo-copy:has(.faq-list) > h2,
  html.js-motion .copy:has(.faq-list) > h2{
    animation:none !important;
    opacity:1;
    transform:none;
  }
  html body nav#nav{transition:none !important}
  html body nav#nav.is-away{transform:none}
}
