@font-face{font-family:OverpassLocal;src:url("assets/fonts/overpass-medium.woff") format("woff");font-weight:500}
@font-face{font-family:OverpassLocal;src:url("assets/fonts/overpass-semibold.woff") format("woff");font-weight:600}
@font-face{font-family:OverpassLocal;src:url("assets/fonts/overpass-bold.woff") format("woff");font-weight:700}
@font-face{font-family:EditorialItalic;src:url("assets/fonts/editorialnew-mediumitalic.woff") format("woff");font-style:italic}
@font-face{font-family:DesMontilles;src:url("assets/fonts/desmontilles-regular.woff") format("woff")}
@font-face{font-family:SuisseBook;src:url("assets/fonts/suisseintl-book.woff") format("woff")}

:root{
  --blue:#0052ff;
  --black:#050505;
  --white:#fff;
  --gray:#f4f4f4;
  --olive:#b3c55a;
  --soft-blue:#8fb5ff;
  --font-sans:OverpassLocal,Arial,sans-serif;
  --font-body:SuisseBook,Arial,sans-serif;
  --font-serif:EditorialItalic,Georgia,serif;
  --measure-xl:1020px;
  --container:1180px;
  --form:850px;
  --copy:720px;
  --max:var(--container);
  --wide:1320px;
  --header-h:88px;
}

*{box-sizing:border-box}
html{
  scroll-behavior:auto;
  scrollbar-gutter:stable;
}
body{
  margin:0;
  background:var(--white);
  color:var(--black);
  font-family:var(--font-body);
  font-size:18px;
  line-height:1.35;
  overflow-anchor:none;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}

.site-header{
  position:sticky;
  top:0;
  z-index:100;
  height:var(--header-h);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 36px 0 24px;
  background:var(--white);
}
.brand{display:flex;align-items:flex-start;height:100%;padding:12px 0 8px}
.brand img{height:100%;width:auto;display:block}
.site-nav{display:flex;align-items:center;gap:32px;margin-left:auto}
.site-nav a,.menu-toggle,.lang-btn,.btn{
  font-family:var(--font-sans);
  font-weight:700;
  font-size:14px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.site-nav a{transition:color .6s ease}
.site-nav a:not(.btn),
.site-nav .lang-switch{position:relative;top:1px}
.site-nav a.active{color:var(--blue)}
.site-nav a:not(.btn):hover,
.site-nav a.active:hover{color:var(--olive)}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1;
  min-height:38px;
  padding:11px 24px 9px;
  border:2px solid var(--blue);
  color:var(--blue);
  background:transparent;
  transition:background .2s ease,color .2s ease;
}
.btn:hover{background:var(--blue);color:var(--white)}
.lang-switch{display:flex;align-items:center;gap:4px;margin-left:2px;color:var(--blue)}
.lang-btn{border:0;background:none;color:var(--blue);padding:3px;cursor:pointer;opacity:.55}
.lang-btn.is-active{opacity:1;text-decoration:underline;text-underline-offset:3px}
.menu-toggle{display:none;border:0;background:none;color:var(--blue);padding:8px;cursor:pointer;min-width:52px;text-align:right;flex-shrink:0}
.site-nav .btn{min-width:190px}

.section{padding:115px 24px}
.section-tight{padding:70px 24px}
.wrap{max-width:var(--max);margin:0 auto}
.wide{max-width:var(--wide);margin:0 auto}
.center{text-align:center}
.eyebrow{
  font-family:var(--font-sans);
  font-weight:700;
  color:var(--olive);
  font-size:16px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.small-caps{
  font-family:var(--font-sans);
  font-weight:700;
  font-size:15px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.display{
  font-family:var(--font-serif);
  font-style:italic;
  font-weight:400;
  line-height:.9;
  letter-spacing:-.03em;
}
.display-xl{font-size:90px}
.display-lg{font-size:70px}
.display-md{font-size:52px}
.blue{color:var(--blue)}
.script{font-family:DesMontilles,cursive;color:var(--olive);font-size:52px;line-height:1}
.body-copy{max-width:760px;font-size:18px}
.body-copy p{margin:0 0 18px}
.star{width:54px;height:54px;object-fit:contain}

.marquee{
  overflow:hidden;
  white-space:nowrap;
  position:relative;
  background:var(--blue);
  color:var(--white);
  font-family:var(--font-sans);
  font-weight:700;
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.marquee-track{
  display:inline-flex;
  width:max-content;
  padding:10px 0;
  animation:marquee 70s linear infinite;
  will-change:transform;
}
.marquee-track span{
  display:inline-block;
  flex:0 0 auto;
  white-space:nowrap;
  padding-right:0;
}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.reveal{animation:fadeUp .7s ease both}

.hero-home{padding:145px 24px 110px;text-align:center}
.hero-home .eyebrow{max-width:1080px;margin:12px auto 64px;color:var(--black);font-size:18px;line-height:1}
.hero-home h1{max-width:var(--measure-xl);margin:0 auto}
.hero-home h1.display-lg{font-size:48px;line-height:1.15;letter-spacing:-.025em}
h1.display{line-height:1.15}
.hero-collage{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1.1fr 1.65fr;
  gap:24px;
  align-items:center;
  max-width:980px;
  margin:0 auto 96px;
}
.hero-collage img{width:100%;height:295px;object-fit:cover}
.hero-collage img:nth-child(1){height:347px;transform:rotate(-5deg) scale(1.1)}
.hero-collage img:nth-child(2){height:320px;transform:translateY(30px)}
.hero-collage img:nth-child(3){height:315px;transform:translateY(-30px)}
.hero-collage .hero-star{position:absolute;left:-58px;bottom:18px;width:72px;height:72px;object-fit:contain;transform:none}

.home-connection{padding:110px 0 40px;text-align:center;overflow:hidden}
.connection-stage{
  --connection-scale:1;
  position:relative;
  width:100%;
  max-width:1440px;
  min-height:1220px;
  margin:0 auto;
}
.connection-heading{
  position:relative;
  z-index:2;
  max-width:var(--measure-xl);
  margin:0 auto;
  padding-top:18px;
}
.home-connection h2{
  max-width:var(--measure-xl);
  margin:0 auto;
  font-size:48px;
  line-height:1.06;
  letter-spacing:-.01em;
  text-transform:uppercase;
  white-space:normal;
}
.pen-stroke{
  position:absolute;
  left:50%;
  bottom:-36px;
  width:420px;
  height:48px;
  transform:translateX(-38%) translateX(100px);
  overflow:visible;
}
.pen-stroke path{
  fill:none;
  stroke:var(--black);
  stroke-width:8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.pen-stroke path:nth-child(2){stroke-width:5}
.connection-copy{
  position:relative;
  z-index:2;
  max-width:610px;
  margin:62px auto 0;
  font-family:var(--font-sans);
  font-weight:700;
  font-size:18px;
  line-height:1.25;
}
.connection-photos{
  position:absolute;
  left:50%;
  top:0;
  z-index:1;
  width:1440px;
  height:1120px;
  margin-left:-720px;
  transform:scale(var(--connection-scale));
  transform-origin:top center;
  pointer-events:none;
}
.connection-photo{
  position:absolute;
  display:block;
  object-fit:cover;
}
.photo-left-top{
  left:-140px;
  top:60px;
  width:255px;
  height:320px;
  transform:rotate(-1.5deg);
}
.photo-right-top{
  right:-180px;
  top:-8px;
  width:315px;
  height:292px;
  transform:rotate(2.5deg);
}
.photo-left-mid{
  left:166px;
  top:430px;
  width:225px;
  height:305px;
  transform:rotate(.5deg);
}
.photo-left-dance{
  left:444px;
  top:398px;
  width:245px;
  height:330px;
  transform:rotate(-1.25deg);
}
.photo-center{
  left:760px;
  top:342px;
  width:390px;
  height:280px;
  transform:rotate(.5deg);
}
.photo-right-mid{
  right:-150px;
  top:380px;
  width:330px;
  height:245px;
  transform:rotate(1.25deg);
}
.photo-left-bottom{
  left:30px;
  top:790px;
  width:235px;
  height:305px;
  transform:rotate(1.25deg);
}
.photo-bottom-wide{
  left:330px;
  top:790px;
  width:430px;
  height:230px;
  transform:rotate(-.75deg);
}
.photo-right-bottom{
  right:-55px;
  top:748px;
  width:400px;
  height:300px;
  aspect-ratio:4/3;
  transform:rotate(-1.25deg);
}
.photo-left-edge{
  left:-85px;
  top:430px;
  width:185px;
  height:310px;
  transform:rotate(-1deg);
}
.photo-lower-pop{
  left:790px;
  top:755px;
  width:235px;
  height:320px;
  transform:rotate(2deg);
}

@media (min-width:1201px) and (max-width:1759px){
  .home-connection{padding:90px 32px 96px;overflow:visible}
  .connection-stage{
    display:flex;
    flex-direction:column;
    gap:28px;
    min-height:auto!important;
    max-width:780px;
    margin:0 auto;
    overflow:visible;
  }
  .connection-heading{padding-top:0;position:relative;z-index:1}
  .home-connection h2{font-size:40px;line-height:1.02}
  .pen-stroke{width:280px;height:48px;left:50%;right:auto;bottom:-34px;transform:translateX(-50%)}
  .connection-copy{
    position:relative;
    z-index:1;
    margin:0 auto;
    font-size:16px;
    max-width:580px;
  }
  .connection-photos{
    position:static!important;
    display:grid!important;
    grid-template-columns:repeat(3,1fr)!important;
    gap:12px;
    width:100%;
    max-width:680px;
    height:auto!important;
    margin:4px auto 0;
    padding:0;
    left:auto!important;
    top:auto!important;
    margin-left:auto!important;
    transform:none!important;
    transform-origin:unset!important;
    pointer-events:none;
  }
  .connection-photo{
    position:static!important;
    display:block;
    width:100%!important;
    height:auto!important;
    aspect-ratio:3/4;
    object-fit:cover;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    filter:none;
  }
  .photo-left-top{transform:rotate(-2deg)}
  .photo-right-top{transform:rotate(1.5deg)}
  .photo-left-mid{transform:rotate(.75deg)}
  .photo-left-dance{transform:rotate(-1.25deg)}
  .photo-center{transform:rotate(.5deg)}
  .photo-right-mid{transform:rotate(1deg)}
  .photo-left-bottom{transform:rotate(1.25deg)}
  .photo-bottom-wide{
    grid-column:span 2;
    aspect-ratio:4/3;
    transform:rotate(-.75deg);
  }
  .photo-right-bottom{transform:rotate(-1deg);aspect-ratio:4/3}
  .photo-left-edge{transform:rotate(-1.5deg)}
  .photo-lower-pop{transform:rotate(2deg)}
}

@media (min-width:1441px) and (max-width:1759px){
  .connection-photos{max-width:760px;gap:14px}
  .home-connection h2{font-size:44px}
}

.text-image-band{background:var(--gray);padding:110px 24px 120px}
.about-grid{
  display:grid;
  grid-template-columns:minmax(340px,400px) minmax(0,1fr);
  gap:72px;
  align-items:stretch;
  max-width:var(--measure-xl);
  padding-left:56px;
}
.about-photo-wrap{
  position:relative;
  width:100%;
  max-width:400px;
  justify-self:end;
  align-self:start;
}
.about-photo-wrap .about-portrait{
  display:block;
  width:100%;
  aspect-ratio:2/3;
  object-fit:cover;
  object-position:center top;
  image-rendering:auto;
}
.about-photo-wrap .about-star{
  position:absolute;
  top:-36px;
  left:-36px;
  width:74px;
  height:74px;
  object-fit:contain;
}
.vertical-label{
  position:absolute;
  right:calc(100% + 10px);
  bottom:0;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  font-family:var(--font-sans);
  font-weight:800;
  font-size:38px;
  letter-spacing:.04em;
  line-height:1;
  text-transform:uppercase;
  white-space:nowrap;
}
.about-copy{
  max-width:560px;
  padding-top:6px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  align-self:stretch;
}
.about-copy h2{margin:0 0 28px;font-size:54px;line-height:1.05;letter-spacing:-.01em}
.about-copy>div{flex:1}
.about-copy p{margin:0 0 18px;font-family:var(--font-sans);font-size:16px;line-height:1.6;color:var(--black)}
.about-copy p:last-of-type{margin-bottom:28px}
.about-copy em{font-family:var(--font-serif);font-style:italic;font-weight:400}
.about-copy .btn{align-self:flex-start}

.single-image{padding:120px 24px 135px}
.single-image img{width:410px;aspect-ratio:1;object-fit:cover;margin:0 auto}

.feeling{
  --feeling-stage:1180px;
  --feeling-edge:max(6%, calc(50% - var(--feeling-stage) / 2));
  position:relative;
  min-height:700px;
  overflow:hidden;
  background:#111;
  color:var(--blue);
}
.feeling::before{
  content:"";
  position:absolute;inset:0;
  background:url("assets/images/feeling-background.jpg") center 42%/cover;
  filter:grayscale(1) contrast(1.15) brightness(.48);
}
.feeling::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.08);
}
.feeling-words,
.feeling-copy{
  position:relative;
  z-index:1;
}
.feeling-word{
  position:absolute;
  display:inline-block;
  font-family:var(--font-sans);
  font-size:96px;
  line-height:1;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--blue);
}
.feeling-hooked{top:70px;left:var(--feeling-edge)}
.feeling-on{top:70px;right:var(--feeling-edge)}
.feeling-a{top:520px;left:var(--feeling-edge)}
.feeling-word-bottom{top:520px;right:var(--feeling-edge)}
@media (max-width:1280px) and (min-width:901px){
  .feeling{--feeling-stage:1100px;min-height:600px}
  .feeling-word{font-size:64px;letter-spacing:.05em}
  .feeling-hooked{top:60px}
  .feeling-on{top:60px}
  .feeling-a{top:430px}
  .feeling-word-bottom{top:430px}
  .feeling-copy{width:min(420px,72vw)}
}
.feeling-copy{
  position:absolute;
  left:50%;
  top:50%;
  width:min(420px,80vw);
  transform:translate(-50%,-50%);
  color:var(--white);
  text-align:center;
  font-family:var(--font-sans);
  font-size:14px;
  font-weight:700;
  line-height:1.45;
}
.feeling-copy p{margin:0 0 22px}
.feeling-copy p:last-child{margin-bottom:0}
.feeling-copy em{
  font-family:var(--font-serif);
  font-style:italic;
  font-weight:400;
}

.process-section{padding:105px 24px;text-align:center}
.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:62px;margin-top:44px;text-align:left}
.process-item .process-img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;margin:0 0 28px}
.process-grid h3{color:var(--blue);font-family:var(--font-sans);font-size:28px;text-transform:uppercase;margin:0 0 16px}
.process-grid p{margin:0;font-size:17px}

.testimonials{padding:30px 24px 120px;text-align:center}
.message-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:36px;text-align:left}
.message-card{
  position:relative;
  padding:24px 26px 22px;
  border:2px solid var(--blue);
  border-radius:28px 28px 28px 6px;
  background:var(--white);
  box-shadow:8px 8px 0 var(--blue);
  animation:messageFloat 5.5s ease-in-out infinite;
  box-sizing:border-box;
}
.message-card:nth-child(2){margin-top:42px;animation-delay:.7s}
.message-card:nth-child(3){margin-top:14px;animation-delay:1.4s}
.message-card::after{
  content:"";
  position:absolute;
  left:28px;
  bottom:-12px;
  width:20px;
  height:20px;
  border-left:2px solid var(--blue);
  border-bottom:2px solid var(--blue);
  background:var(--white);
  transform:rotate(-18deg);
}
.message-card .message-body{
  position:relative;
  display:block;
  transition:opacity .45s ease,transform .45s ease;
}
.message-measurer{
  position:absolute;
  visibility:hidden;
  pointer-events:none;
  left:26px;
  right:26px;
  top:24px;
  height:auto;
}
.message-card.is-swapping .message-body{opacity:0;transform:translateY(6px)}
.message-card p{margin:0;color:var(--black);font-family:var(--font-sans);font-size:16px;font-weight:700;line-height:1.28}
.message-card span{display:block;margin-top:18px;color:var(--olive);font-family:var(--font-serif);font-size:24px;font-style:italic;line-height:1}
@keyframes messageFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@media (prefers-reduced-motion:reduce){
  .message-card{animation:none}
  .message-card .message-body{transition:none}
}

.cta{padding:60px 24px 78px;text-align:center}
.cta h2{max-width:820px;margin:0 auto 16px;color:var(--blue);font-family:var(--font-sans);font-size:24px;line-height:1.1;text-transform:uppercase}
.cta p{margin:0 auto;max-width:var(--copy)}
.cta .cta-form{margin:48px auto 0;text-align:left}
.cta .cta-form label{text-align:left}
.cta .cta-form .consent{text-align:left}
.cta .cta-form .submit-row{text-align:right}

.about-hero{padding:44px 24px 105px;text-align:center;position:relative;overflow:hidden}
.about-hero h1{margin:0 0 10px}
.about-hero .eyebrow{margin-bottom:22px}
.about-collage{position:relative;max-width:850px;margin:0 auto;min-height:640px}
.about-collage img{position:absolute;object-fit:cover}
.about-collage .a{width:444px;height:564px;left:50%;top:0;transform:translateX(-50%)}
.about-collage .b{width:322px;height:398px;left:-244px;top:220px}
.about-collage .c{width:298px;height:298px;right:-220px;top:-122px;aspect-ratio:1/1}
.approach{padding:80px 24px 110px}
.approach .wrap{max-width:1080px;margin:0 auto}
.approach-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 80px;align-items:start}
.approach-left{padding-right:40px}
.approach-right{padding-top:85px;padding-left:40px}
.approach h2{font-family:var(--font-sans);font-weight:800;font-size:36px;letter-spacing:.01em;line-height:1;text-transform:uppercase;margin:0 0 22px}
.approach p{font-family:var(--font-sans);font-size:14px;line-height:1.6;margin:0 0 18px;color:var(--black)}
.approach p:last-of-type{margin-bottom:0}
.approach .side-title{margin:36px 0 0;font-family:var(--font-sans);font-weight:800;font-size:36px;line-height:1;letter-spacing:.01em;text-transform:uppercase;text-align:right}
.approach-cta{display:flex;justify-content:center;margin-top:60px}
.approach-cta .btn{padding:12px 22px;font-size:13px}
.quote-strip{position:relative;color:white;text-align:center}
.quote-strip img{width:100%;height:360px;object-fit:cover;filter:grayscale(1) brightness(.75)}
.quote-strip blockquote{position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:0 24px;font-family:var(--font-serif);font-size:31px}
.quote-strip blockquote > span{display:block;max-width:920px}

.experience-intro{padding:74px 24px 70px}
.experience-intro .wrap{max-width:850px}
.experience-intro p{margin:0 0 16px}
.strip-gallery{display:grid;grid-template-columns:repeat(3,1fr)}
.strip-gallery img{width:100%;height:260px;object-fit:cover;filter:grayscale(1)}
.strip-gallery img:first-child{object-position:center bottom}
.pricing{padding:100px 24px}
.pricing-card{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;margin-bottom:80px}
.pricing-card:nth-child(even) .pricing-copy{order:-1}
.pricing-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.pricing-card h2{font-family:var(--font-serif);font-size:54px;line-height:1.10;margin:0 0 16px;text-transform:uppercase}
.price{color:var(--blue);font-family:var(--font-sans);font-weight:700;text-transform:uppercase}
.faq{background:var(--gray);padding:90px 24px;text-align:center}
.faq details{max-width:780px;margin:0 auto;text-align:left}
.faq summary{cursor:pointer;padding:22px 0;color:var(--blue);font-family:var(--font-sans);font-weight:700;line-height:1;text-transform:uppercase;list-style:none;display:flex;align-items:center;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"";width:0;height:0;border-left:6px solid currentColor;border-top:5px solid transparent;border-bottom:5px solid transparent;transition:transform .3s ease;flex:0 0 auto;transform:rotate(0deg);position:relative;top:-2px}
.faq details[open] summary::before{transform:rotate(90deg)}
.faq details[data-faq-state="closing"] summary::before{transform:rotate(0deg)}
.faq details > p{margin:0 0 22px;overflow:hidden;transition:max-height .35s ease,opacity .25s ease,margin-bottom .35s ease,padding-bottom .35s ease}
@media (prefers-reduced-motion:reduce){
  .faq summary::before,.faq details > p{transition:none}
}

.book-hero{position:relative;padding:76px 24px 58px;overflow:hidden}
.book-hero .wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:44px;align-items:center;max-width:920px}
.book-hero h1{grid-column:1/-1;margin:0 0 -18px}
.book-hero img:not(.star){display:block;width:100%;max-width:100%;aspect-ratio:1.32;object-fit:cover;object-position:center 70%}
.book-hero .star{position:absolute;left:18%;bottom:36px;width:70px;height:70px;z-index:2}
.book-hero .copy h2{color:var(--olive);font-family:var(--font-sans);font-size:17px;text-transform:uppercase;margin:0 0 16px}
.form-section{padding:54px 24px 120px}
.form-section h2{margin:0 auto 12px;max-width:720px}
.form-section .inquiry-form{text-align:left}
.form-section .inquiry-form label{text-align:left}
.form-section .inquiry-form .submit-row{text-align:right}
.inquiry-form{max-width:var(--form);margin:66px auto 0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 32px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/-1}
label{
  font-family:var(--font-sans);
  font-size:10px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--black);
}
input,select,textarea{
  width:100%;
  border:none;
  border-bottom:1px solid var(--black);
  border-radius:0;
  min-height:36px;
  padding:6px 0 8px;
  font-family:var(--font-body);
  font-size:14px;
  background:transparent;
  color:var(--black);
  transition:border-color .25s ease;
}
input::placeholder,textarea::placeholder{color:#9b9b9b;font-style:italic}
input:focus,select:focus,textarea:focus{
  outline:none;
  border-bottom-color:var(--blue);
}
textarea{
  min-height:140px;
  resize:vertical;
  border:1px solid var(--black);
  padding:14px;
}
textarea:focus{border-color:var(--blue)}
select{
  -webkit-appearance:none;
  appearance:none;
  padding-right:24px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M1 1.5l5 5 5-5'/></svg>");
  background-repeat:no-repeat;
  background-position:right 2px center;
  background-size:10px 7px;
  cursor:pointer;
}
input[type="date"]{font-family:var(--font-body);color:var(--black)}
input[type="date"]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}
.consent{
  grid-column:1/-1;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  margin-top:4px;
  font-family:var(--font-sans);
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
  line-height:1.5;
  text-transform:uppercase;
  color:var(--black);
}
.consent input[type="checkbox"]{
  width:16px;
  height:16px;
  min-height:0;
  margin:0;
  padding:0;
  border:1px solid var(--black);
  appearance:none;
  -webkit-appearance:none;
  background:transparent center center no-repeat;
  background-size:12px 12px;
  cursor:pointer;
  flex-shrink:0;
}
.consent input[type="checkbox"]:checked{
  background-color:var(--black);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M3 7.4l2.8 2.8 5.4-6'/></svg>");
}
.consent input[type="checkbox"]:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.consent span{flex:1}
.honeypot{position:absolute;left:-9999px}
.submit-row{grid-column:1/-1;text-align:right;margin-top:18px}
.submit-row button{
  border:1px solid var(--blue);
  background:transparent;
  color:var(--blue);
  padding:14px 32px;
  font-family:var(--font-sans);
  font-weight:700;
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .35s ease,color .35s ease;
}
.submit-row button:hover{background:var(--blue);color:var(--white)}
.field-error{
  display:block;
  margin-top:6px;
  font-family:var(--font-serif);
  font-style:italic;
  font-size:13px;
  letter-spacing:.01em;
  color:#a3411f;
}
.field.has-error input,
.field.has-error select,
.field.has-error textarea{border-bottom-color:#a3411f}
.field.has-error textarea{border-color:#a3411f}
.field.has-error label{color:#a3411f}
.consent.has-error{color:#a3411f}
.consent.has-error input{border-color:#a3411f}
.consent .field-error{flex-basis:100%;margin:0 0 0 28px;text-transform:none;letter-spacing:.01em;font-weight:400}

.social-footer{background:var(--gray);padding:76px 24px 70px}
.footer-social-row{
  position:relative;
  min-height:100px;
}
.social-icons{
  position:absolute;
  right:calc(50% + 112px);
  top:50%;
  transform:translateY(-50%);
  display:flex;
  gap:34px;
  color:var(--blue);
}
.social-icons a{display:inline-flex;color:inherit}
.social-icons svg{width:24px;height:24px;display:block;fill:currentColor}
.footer-mark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:84px;height:auto}
.email-link{position:absolute;left:calc(50% + 112px);top:50%;transform:translateY(-50%);max-width:calc(50% - 132px);line-height:1.5}
.email-link .sep{display:inline;margin:0 6px}
.email-link{color:var(--blue);font-family:var(--font-sans);font-weight:700;font-size:18px}
.footer-bar{background:var(--blue);color:white;padding:38px 24px 32px}
.footer-bar-grid{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  column-gap:72px;
  row-gap:44px;
  align-items:start;
}
.footer-links{
  display:grid;
  grid-template-columns:max-content;
  gap:18px;
  font-family:var(--font-sans);
  font-weight:700;
  font-size:20px;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.footer-bar .btn{border-color:white;color:white;min-width:190px}
.footer-bar .btn:hover{background:white;color:var(--blue)}
.footer-note{text-align:right;font-size:13px;line-height:1.45;max-width:430px;justify-self:end;align-self:start;margin:0;font-family:var(--font-sans);font-weight:700}
.footer-location{margin:0;max-width:1120px;font-size:12px;font-family:var(--font-sans);font-weight:700}
.footer-meta{
  grid-column:1/-1;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  margin-top:4px;
  text-align:center;
}
.footer-privacy{
  display:block;
  font-family:var(--font-sans);
  font-weight:700;
  font-size:12px;
  color:rgba(255,255,255,.85);
  text-decoration:underline;
  text-underline-offset:2px;
}
.footer-privacy:hover{color:white}
.consent a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.consent a:hover{color:var(--blue)}
.privacy-page{padding:72px 24px 100px}
.privacy-wrap{max-width:720px;margin:0 auto}
.privacy-page h1{margin:0 0 28px;text-align:left}
.privacy-body h2{margin:32px 0 10px;font-family:var(--font-sans);font-weight:800;font-size:15px;letter-spacing:.08em;text-transform:uppercase}
.privacy-body p{margin:0 0 14px;font-size:17px;line-height:1.45}
.privacy-body a{color:var(--blue);text-decoration:underline;text-underline-offset:2px}

.blog-hero{
  display:grid;
  grid-template-columns:1.55fr .62fr 1fr;
  gap:0;
  width:100%;
  max-width:none;
  height:320px;
  margin:0;
  padding:0;
}
.blog-hero-media{
  overflow:hidden;
  background:var(--gray);
  min-width:0;
  min-height:0;
}
.blog-hero-media img{
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  display:block;
}
.blog-hero-wide img{object-position:center bottom}
.blog-hero-panel{
  background:var(--blue);
  color:var(--white);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-end;
  text-align:left;
  padding:28px 32px;
  min-height:0;
}
.blog-hero-panel .display{
  margin:0;
  color:var(--white);
  font-size:72px;
  line-height:.9;
}
.blog-hero-panel .eyebrow{
  margin:12px 0 0;
  color:var(--white);
  font-size:14px;
  letter-spacing:.1em;
  max-width:18em;
}
.blog-list{padding:64px 24px 100px}
.blog-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:48px 36px;
}
.blog-post{
  display:flex;
  flex-direction:column;
  border:1px solid #e6e6e6;
  background:var(--white);
  color:inherit;
  text-decoration:none;
}
.blog-post:hover{color:inherit}
.blog-post-media{
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--gray);
}
.blog-post-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s ease;
}
.blog-post:hover .blog-post-media img{transform:scale(1.04)}
.blog-post-body{
  display:flex;
  flex-direction:column;
  flex:1;
  padding:28px 24px 30px;
}
.blog-post-body h2{
  margin:0 0 14px;
  font-family:var(--font-sans);
  font-weight:800;
  font-size:22px;
  line-height:1.2;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.blog-post-body p{
  margin:0 0 22px;
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.45;
  color:var(--black);
}
.blog-more{
  margin-top:auto;
  color:var(--blue);
  font-family:var(--font-sans);
  font-weight:700;
  font-size:14px;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.blog-article-top{
  max-width:var(--wide);
  margin:0 auto;
  padding:22px 24px 16px;
}
.blog-back{
  display:inline-block;
  font-family:var(--font-sans);
  font-weight:700;
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--blue);
}
.blog-back:hover{color:var(--olive)}
/* Blog article images: never crop — show full frame, natural aspect ratio */
.blog-article-hero{
  display:grid;
  grid-template-columns:1fr 1fr;
  width:100%;
  align-items:stretch;
}
.blog-article-hero-media{
  background:var(--gray);
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
}
.blog-article-hero-media img{
  width:100%;
  height:auto;
  max-width:100%;
  display:block;
}
.blog-article-hero-panel{
  background:var(--blue);
  color:var(--white);
  display:flex;
  align-items:flex-end;
  justify-content:flex-start;
  padding:36px 40px;
  min-height:280px;
}
.blog-article-hero-panel .display{
  margin:0;
  color:var(--white);
  font-size:34px;
  line-height:1.08;
  max-width:18ch;
}
.blog-article-hero-title-only{
  grid-template-columns:1fr;
  min-height:0;
}
.blog-article-hero-title-only .blog-article-hero-panel{
  min-height:220px;
  padding:40px 48px;
}
.blog-article-hero-title-only .display{max-width:28ch}
.blog-article{
  padding:56px 24px 40px;
}
.blog-article-wrap{
  max-width:920px;
  margin:0 auto;
}
.blog-article-wrap p{
  margin:0 0 18px;
  font-size:18px;
  line-height:1.5;
}
.blog-article-wrap h2{
  margin:42px 0 16px;
  font-family:var(--font-sans);
  font-weight:800;
  font-size:26px;
  line-height:1.15;
  text-transform:uppercase;
  letter-spacing:.01em;
}
.blog-gallery{
  margin:36px 0;
  display:flex;
  gap:18px;
  align-items:flex-start;
}
.blog-gallery-col{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:18px;
}
.blog-gallery img{
  width:100%;
  height:auto;
  max-width:100%;
  display:block;
  margin:0;
  cursor:zoom-in;
}
.blog-gallery-single{
  display:block;
}
.blog-gallery-single .blog-gallery-col{
  display:contents;
}
.blog-gallery-single img{
  width:100%;
  height:auto;
}

.blog-ph{
  margin:28px 0;
  padding:42px 22px;
  min-height:160px;
  display:grid;
  place-items:center;
  text-align:center;
  background:var(--gray);
  border:1px dashed #c8c8c8;
  color:#666;
  font-family:var(--font-sans);
  font-weight:700;
  font-size:13px;
  letter-spacing:.04em;
  line-height:1.4;
  text-wrap:balance;
}
.blog-ph-hero{
  margin:0;
  width:100%;
  height:100%;
  min-height:280px;
  border:0;
}
.blog-ph-card{
  margin:0;
  width:100%;
  height:100%;
  min-height:220px;
  border:0;
  aspect-ratio:4/3;
}
.blog-article-cta-wrap{
  margin:36px 0 48px;
}
.blog-team-shot{
  margin:36px 0 0;
}
.blog-team-shot .blog-gallery{
  margin:0;
}
.blog-team-shot figcaption{
  margin:0;
  padding:0;
}
.blog-team-names{
  list-style:none;
  margin:12px 0 0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:6px 0;
  text-align:center;
  font-family:var(--font-sans);
  font-weight:600;
  font-size:14px;
  letter-spacing:.03em;
  color:#555;
}
.blog-team-names li:not(:last-child)::after{
  content:",\00a0";
}
.blog-team-names a{
  color:inherit;
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
}
.blog-team-names a:hover{
  color:var(--blue);
}

.blog-lightbox{
  position:fixed;
  inset:0;
  z-index:200;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:48px 24px;
  background:rgba(5,5,5,.88);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .25s ease,visibility .25s ease;
}
.blog-lightbox.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.blog-lightbox-close{
  position:absolute;
  top:18px;
  right:18px;
  width:44px;
  height:44px;
  border:0;
  background:none;
  color:var(--white);
  font-size:32px;
  line-height:1;
  cursor:pointer;
  opacity:.85;
  transition:opacity .2s ease;
}
.blog-lightbox-close:hover{opacity:1}
.blog-lightbox-figure{
  margin:0;
  max-width:100%;
  max-height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.blog-lightbox-figure img{
  display:block;
  max-width:100%;
  max-height:calc(100vh - 96px);
  width:auto;
  height:auto;
  object-fit:contain;
  box-shadow:0 12px 48px rgba(0,0,0,.35);
}

@media (max-width:1100px) and (min-width:769px){
  .blog-hero{grid-template-columns:1.3fr .6fr 1fr;height:280px}
  .blog-hero-panel .display{font-size:58px}
  .blog-grid{grid-template-columns:repeat(2,1fr);gap:36px 28px}
  .blog-article-hero-panel .display{font-size:34px}
}

@media (max-width:1200px){
  html,body{overflow-x:clip;width:100%;max-width:100%}
  .site-header{height:52px;padding:0 16px}
  .menu-toggle{min-width:52px;width:52px;padding:8px 0;text-align:center}
  .brand{padding:12px 0 8px}
  .brand img{height:100%;width:auto}
  .menu-toggle{display:block}
  .site-nav{
    position:fixed;inset:52px 0 auto 0;
    display:none;
    flex-direction:column;
    align-items:center;
    gap:18px;
    width:100%;
    max-width:none;
    margin-left:0;
    margin-right:0;
    padding:28px 20px 32px;
    background:var(--white);
    border-bottom:2px solid var(--blue);
    box-sizing:border-box;
  }
  .site-nav.is-open{display:flex}
  .site-nav a:not(.btn){
    top:0;
    width:100%;
    max-width:320px;
    text-align:center;
    line-height:1.25;
    white-space:normal;
    align-self:center;
    margin-left:0;
    margin-right:0;
  }
  .site-nav .btn{
    min-width:220px;
    align-self:center;
    margin-left:0;
    margin-right:0;
  }
  .site-nav .lang-switch{
    top:0;
    align-self:center;
    justify-content:center;
    margin-left:0;
    margin-right:0;
  }
  .lang-switch{margin-left:0}
  .display-xl{font-size:40px}
  .display-lg{font-size:30px}
  .display-md{font-size:26px}
  .hero-home h1.display-lg{font-size:28px;line-height:1.2}
  .section{padding:70px 18px}
  .hero-home{padding:20px 16px 70px}
  .hero-home .eyebrow{font-size:10px;margin-bottom:40px}
  .hero-collage{grid-template-columns:1fr 1fr;column-gap:14px;row-gap:28px;margin-bottom:36px;max-width:640px}
  .hero-collage img{height:158px;transform:none}
  .hero-collage img:nth-child(1){transform:rotate(-4deg) scale(1.04)}
  .hero-collage img:nth-child(3){grid-column:1/-1;height:240px;margin-top:10px;object-position:center 42%}
  .hero-collage .hero-star{left:-8px;bottom:88px;width:46px;height:46px}
  .home-connection{padding:58px 16px 80px;overflow-x:clip}
  .connection-stage{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:24px;
    min-height:auto;
    width:100%;
    max-width:720px;
    margin:0 auto;
    box-sizing:border-box;
  }
  .connection-heading{
    padding-top:0;
    padding-bottom:14px;
    position:relative;
    z-index:1;
    width:100%;
    max-width:100%;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
  }
  .home-connection h2{
    font-size:34px;
    line-height:1;
    margin:0 auto;
    padding:0 10px;
    max-width:100%;
    width:100%;
    text-wrap:balance;
    text-align:center;
    box-sizing:border-box;
  }
  .home-connection .pen-stroke{
    display:block;
    position:absolute;
    left:50%;
    right:auto;
    bottom:-14px;
    width:230px;
    height:44px;
    transform:translateX(calc(-38% + 48px))!important;
  }
  .connection-copy{
    position:relative;
    z-index:1;
    margin:0 auto;
    font-size:15px;
    max-width:560px;
    width:100%;
    padding:0 10px;
    text-align:center;
    text-wrap:balance;
    box-sizing:border-box;
  }
  .connection-photos{
    position:static;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    width:100%;
    max-width:560px;
    height:auto;
    margin:4px auto 0;
    padding:0;
    transform:none;
    pointer-events:none;
  }
  .connection-photo{
    position:static!important;
    display:block;
    width:100%!important;
    height:auto!important;
    aspect-ratio:3/4;
    object-fit:cover;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    filter:none;
  }
  .photo-left-top{transform:rotate(-2deg)}
  .photo-right-top{transform:rotate(1.5deg)}
  .photo-left-mid{transform:rotate(.75deg)}
  .photo-left-dance{transform:rotate(-1.25deg)}
  .photo-center{transform:rotate(.5deg)}
  .photo-right-mid{transform:rotate(1deg)}
  .photo-left-bottom{transform:rotate(1.25deg)}
  .photo-bottom-wide{
    grid-column:span 2;
    aspect-ratio:4/3;
    transform:rotate(-.75deg);
  }
  .photo-right-bottom{transform:rotate(-1deg);aspect-ratio:4/3}
  .photo-left-edge{transform:rotate(-1.5deg)}
  .photo-lower-pop{transform:rotate(2deg)}

  @media (min-width:901px){
    .hero-home{padding:32px 24px 84px}
    .hero-home h1.display-lg{font-size:34px}
    .hero-home .eyebrow{font-size:12px;margin-bottom:48px}
    .hero-collage{column-gap:18px;row-gap:34px;margin-bottom:48px;max-width:760px}
    .hero-collage img{height:230px}
    .hero-collage img:nth-child(3){height:320px;margin-top:12px;object-position:center 40%}
    .hero-collage .hero-star{left:10px;bottom:108px;width:54px;height:54px}
    .home-connection{padding:72px 32px 96px}
    .home-connection h2{font-size:40px;line-height:1.02}
    .home-connection .pen-stroke{width:280px;height:48px;bottom:-18px;transform:translateX(calc(-38% + 58px))!important}
    .connection-copy{font-size:16px;max-width:580px}
    .connection-stage{gap:28px;max-width:780px}
    .connection-photos{gap:12px;max-width:680px}
  }
  .about-grid,.pricing-card,.book-hero .wrap,.social-footer .wrap,.footer-bar .wrap{grid-template-columns:1fr}
  .vertical-label{position:static;display:block;writing-mode:horizontal-tb;transform:none;font-size:20px;margin:0 0 8px}
  .about-grid{gap:28px;padding-left:0;text-align:left;max-width:520px;justify-items:center}
  .about-photo-wrap{width:min(100%,420px);max-width:420px;justify-self:center}
  .about-copy{width:min(100%,520px);justify-self:center}
  .about-photo-wrap .about-star{top:34px;left:-22px;width:42px;height:42px}
  .about-copy h2{font-size:38px}
  .about-copy .btn{align-self:center}
  .feeling{min-height:480px}
  .feeling-word{font-size:34px;line-height:1;letter-spacing:.05em}
  .feeling-hooked{top:42px;left:8%}
  .feeling-on{top:42px;right:8%}
  .feeling-a{top:380px;left:8%}
  .feeling-word-bottom{top:380px;right:8%}
  .feeling-copy{width:78vw;font-size:12px;line-height:1.45;top:50%}
  .message-grid,.process-grid{grid-template-columns:1fr;gap:30px}
  .message-card,.message-card:nth-child(2),.message-card:nth-child(3){margin-top:0}
  .message-card{box-shadow:5px 5px 0 var(--blue)}
  .about-collage{min-height:auto;display:grid;gap:18px}
  .about-collage img{position:static!important;transform:none!important;width:100%!important;height:auto!important;aspect-ratio:4/5}
  .approach{padding:60px 20px 80px}
  .approach-grid{grid-template-columns:1fr;gap:30px}
  .approach-left,.approach-right{padding:0}
  .approach-right{padding-top:0}
  .approach .side-title{margin:18px 0 0;font-size:36px;text-align:left}
  .approach-cta{margin-top:36px}
  @media (max-width:900px){
    .quote-strip{display:grid}
    .quote-strip img{
      grid-area:1/1;
      width:100%;
      height:100%;
      min-height:240px;
      object-fit:cover;
    }
    .quote-strip blockquote{
      position:relative;
      inset:auto;
      grid-area:1/1;
      z-index:1;
      align-self:center;
      margin:0;
      padding:28px 18px;
      font-size:22px;
      line-height:1.2;
    }
    .quote-strip blockquote > span{text-wrap:balance}
  }
  @media (min-width:901px){
    .quote-strip img{
      display:block;
      width:100%;
      height:300px;
      object-fit:cover;
    }
    .quote-strip blockquote{
      position:absolute;
      inset:0;
      display:grid;
      place-items:center;
      margin:0;
      padding:0 32px;
      font-size:26px;
      line-height:1.15;
    }
    .quote-strip blockquote > span{text-wrap:balance;max-width:720px}
  }
  .experience-intro{padding-top:42px}
  @media (max-width:768px){
    .strip-gallery{grid-template-columns:1fr}
    .strip-gallery img{height:190px}
  }
  @media (min-width:769px){
    .strip-gallery{grid-template-columns:repeat(3,1fr)}
    .strip-gallery img{height:260px}
  }
  .pricing{padding:70px 18px}
  .pricing-card{gap:24px;margin-bottom:58px}
  .pricing-card h2{font-size:38px}
  .pricing-card:nth-child(even) .pricing-copy{order:0}
  .book-hero{padding-top:28px}
  .book-hero .star{left:18px;bottom:28px;width:48px;height:48px}
  .book-hero h1{grid-column:auto;margin:0}
  .form-section{padding-top:42px;min-height:1200px}
  .form-section .inquiry-form{display:none}
  .cta .cta-form{margin-top:32px}
  .social-footer{padding:58px 24px}
  .footer-social-row{display:flex;flex-direction:column;align-items:center;gap:28px;min-height:0;text-align:center}
  .social-icons{position:static;transform:none;justify-content:center}
  .footer-mark{position:static;transform:none}
  .email-link{position:static;transform:none;max-width:none}
  .footer-bar-grid{grid-template-columns:1fr;gap:32px;text-align:center}
  .privacy-page{padding:48px 18px 80px}
  .privacy-page h1{font-size:36px}
  .blog-hero{
    grid-template-columns:1fr 1fr;
    grid-template-rows:200px 180px;
    height:auto;
    gap:0;
  }
  .blog-hero-wide{grid-column:1/-1}
  .blog-hero-tall{min-height:0}
  .blog-hero-panel{padding:28px 20px}
  .blog-hero-panel .display{font-size:52px}
  .blog-hero-panel .eyebrow{font-size:12px}
  .blog-list{padding:42px 16px 80px}
  .blog-grid{grid-template-columns:1fr;gap:28px}
  .blog-post-body{padding:22px 18px 24px}
  .blog-post-body h2{font-size:18px}
  .blog-article-top{padding:16px 16px 12px}
  .blog-article-hero{
    grid-template-columns:1fr;
  }
  .blog-article-hero-panel{min-height:200px;padding:28px 22px}
  .blog-article-hero-panel .display{font-size:30px;max-width:none}
  .blog-article{padding:36px 16px 28px}
  .blog-article-wrap h2{font-size:22px;margin-top:32px}
  .blog-article-wrap p{font-size:17px}
  .footer-links{grid-template-columns:1fr;text-align:center;justify-content:center}
  .footer-note{text-align:center;justify-self:center}
  .footer-meta{margin-top:0}
}
