*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f7f4ef;color:#24334e;font-family:Bahnschrift,"Avenir Next","Segoe UI",Arial,sans-serif;font-weight:300;line-height:1.65;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%;height:auto}figure{margin:0}a{color:inherit}.wrap{width:min(1180px,calc(100% - 48px));margin:auto}.skip{position:fixed;left:12px;top:-60px;z-index:100;background:#24334e;color:white;padding:8px 12px}.skip:focus{top:12px}.top{height:76px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dfe0df;padding:0 max(24px,calc((100vw - 1180px)/2));background:rgba(247,244,239,.96);position:sticky;top:0;z-index:30;backdrop-filter:blur(12px)}.brand{font:400 26px Georgia,serif;text-decoration:none}.nav{display:flex;gap:28px}.nav a{text-decoration:none;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.nav a:hover,.nav a[aria-current=page]{color:#b38b4d}.mobile-menu{display:none;position:relative}.mobile-menu summary{list-style:none;width:44px;height:44px;border:1px solid #cfd3d7;border-radius:50%;display:grid;place-content:center;gap:4px}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu i{width:16px;height:1px;background:#24334e;display:block}.mobile-nav{position:absolute;right:0;top:52px;width:250px;background:#f7f4ef;border:1px solid #dfe0df;box-shadow:0 18px 50px #24334e22;padding:10px;display:flex;flex-direction:column}.mobile-nav a{text-decoration:none;padding:11px 8px;border-bottom:1px solid #e3e0da;font-size:12px;text-transform:uppercase;letter-spacing:.1em}.ey{color:#b38b4d;font-size:10px;letter-spacing:.25em;text-transform:uppercase;margin:0 0 16px}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1;letter-spacing:-.04em;margin:0}h1{font-size:clamp(58px,7vw,102px)}h2{font-size:clamp(46px,5.5vw,78px)}h3{font-size:clamp(30px,3vw,46px)}em{font-weight:400;color:#6c87b6}p{color:#68717e}.lead{font-size:18px;max-width:560px}.link,.button{display:inline-flex;align-items:center;gap:10px;text-decoration:none;border-bottom:1px solid #b38b4d;padding-bottom:4px}.button{border:1px solid #b38b4d;padding:10px 16px;border-radius:999px}.actions{display:flex;gap:18px;flex-wrap:wrap;margin-top:24px}.divider{display:flex;align-items:center;gap:18px;width:min(760px,calc(100% - 48px));margin:0 auto}.divider:before,.divider:after{content:"";height:1px;background:#cfd3d7;flex:1}.divider img{width:38px}.hero{display:grid;grid-template-columns:.84fr 1.16fr;gap:7vw;align-items:center;min-height:690px;padding:74px 0}.hero-copy{max-width:560px}.hero-art{height:555px;overflow:hidden;border-radius:0 0 0 110px}.hero-art img{width:100%;height:100%;object-fit:cover}.home-hero .hero-art img{object-position:50% 50%}.feature{display:grid;grid-template-columns:1.1fr .9fr;gap:8vw;align-items:center;padding:110px 0}.feature-copy{max-width:620px}.meta{font-size:14px;color:#68717e;margin:20px 0}.book-stage{min-height:560px;background:#eee8df;display:grid;place-items:center;padding:48px;position:relative;overflow:hidden}.book-stage:after{content:"";position:absolute;left:14%;right:14%;bottom:8%;height:18%;background:radial-gradient(ellipse,#24334e2a,transparent 70%);filter:blur(15px)}.book-stage img{width:min(72%,330px);box-shadow:0 22px 55px #263d6330;position:relative;z-index:1}.project-strip{background:#2b456f;color:white;padding:92px 0}.project-strip h2,.project-strip h3{color:white}.project-strip p{color:#c8d0dd}.project-strip .ey{color:#d7b77d}.emo-feature{display:grid;grid-template-columns:.78fr 1.22fr;gap:7vw;align-items:center}.emo-photo{aspect-ratio:4/3;overflow:hidden;background:#eee8df}.emo-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 47%}.other{padding:100px 0}.section-head{display:grid;grid-template-columns:1fr .7fr;gap:7vw;align-items:end;margin-bottom:45px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{min-height:300px;border:1px solid #ddd9d2;padding:32px;display:flex;flex-direction:column;justify-content:flex-end;text-decoration:none;background:#faf8f4;transition:transform .2s ease}.card:hover{transform:translateY(-3px)}.card .num{font:400 56px Georgia,serif;color:#d7c7aa;margin:auto 0}.card p{margin-bottom:0}.about-tease{display:grid;grid-template-columns:.72fr 1.28fr;gap:8vw;align-items:center;padding:105px 0;border-top:1px solid #ddd9d2}.portrait{aspect-ratio:4/5;overflow:hidden;border-radius:0 86px 0 0}.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}.cta{background:#2b456f;color:white;padding:78px max(24px,calc((100vw - 1180px)/2));display:grid;grid-template-columns:1fr .8fr;gap:8vw;align-items:end}.cta h2{color:white}.cta p{color:#c8d0dd}.cta .button{color:white;border-color:#91a4c0}.foot{background:#1d3151;color:#d7dce5;padding:34px max(24px,calc((100vw - 1180px)/2));display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px}.foot img{width:52px}.foot small{opacity:.72}.foot .right{text-align:right}.page-hero{padding:100px 0 70px;max-width:900px}.page-hero p{font-size:19px;max-width:690px}.project-list{padding:20px 0 100px}.project-row{display:grid;grid-template-columns:.9fr 1.1fr;gap:7vw;align-items:center;padding:55px 0;border-top:1px solid #ddd9d2}.project-row.reverse{grid-template-columns:1.1fr .9fr}.project-row.reverse .visual{order:2}.visual{aspect-ratio:4/3;overflow:hidden;background:#eee8df}.visual img{width:100%;height:100%;object-fit:cover}.visual.cover{display:grid;place-items:center}.visual.cover img{width:auto;height:82%;object-fit:contain;box-shadow:0 16px 35px #24334e25}.visual.emo img{object-position:50% 45%}.project-copy{max-width:520px}.tag{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#b38b4d}.placeholder{background:#e9e2d7;min-height:100%;display:grid;place-items:center;color:#927e60;text-align:center;padding:30px}.detail-hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:7vw;align-items:center;padding:90px 0}.detail-hero .visual{aspect-ratio:5/4}.detail-copy{max-width:580px}.detail-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:220px 220px;gap:10px;margin:45px 0 100px}.detail-grid figure{overflow:hidden}.detail-grid img{width:100%;height:100%;object-fit:cover}.detail-grid .big{grid-row:1/3}.detail-grid .wide{grid-column:2/4}.text-section{padding:90px 0;display:grid;grid-template-columns:.7fr 1.3fr;gap:8vw;border-top:1px solid #ddd9d2}.text-section .body{max-width:700px}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:40px}.service{border:1px solid #ddd9d2;padding:28px;min-height:210px;background:#faf8f4}.service h3{font-size:30px}.about-page{display:grid;grid-template-columns:.7fr 1.3fr;gap:8vw;align-items:start;padding:95px 0}.about-page .portrait{position:sticky;top:110px}.about-body h1{margin-bottom:28px}.quote{font:italic 30px/1.3 Georgia,serif;color:#6c87b6;margin:40px 0}.contact-page{padding:100px 0;display:grid;grid-template-columns:1fr .9fr;gap:8vw}.contact-box{background:#2b456f;color:white;padding:42px}.contact-box p{color:#c8d0dd}.contact-box a{color:white}.seo-note{font-size:13px;color:#8b8f96}.art-note{font-style:italic;color:#8b8f96}.crumbs{font-size:12px;margin-top:30px;color:#8b8f96}.crumbs a{text-decoration:none}.small-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:28px}.small-gallery figure{aspect-ratio:1;overflow:hidden}.small-gallery img{width:100%;height:100%;object-fit:cover}
@media(max-width:820px){.nav{display:none}.mobile-menu{display:block}.wrap{width:min(100% - 40px,700px)}.top{height:68px;padding:0 20px}.brand{font-size:23px}.hero,.feature,.emo-feature,.about-tease,.project-row,.project-row.reverse,.detail-hero,.text-section,.about-page,.contact-page{grid-template-columns:1fr}.hero{min-height:auto;padding:50px 0 66px;gap:34px}.hero-art{width:100vw;margin-left:calc(50% - 50vw);height:auto;aspect-ratio:16/10;border-radius:0}.feature{padding:76px 0;gap:34px}.book-stage{width:100vw;margin-left:calc(50% - 50vw);min-height:auto;padding:40px 20px}.book-stage img{width:min(62vw,300px)}.project-strip{padding:68px 0}.emo-feature{gap:30px}.emo-photo{width:100vw;margin-left:calc(50% - 50vw);aspect-ratio:4/3}.section-head{grid-template-columns:1fr;gap:12px}.cards{grid-template-columns:1fr}.card{min-height:220px}.about-tease{padding:75px 0;gap:30px}.about-tease .portrait{width:72%;justify-self:end;aspect-ratio:4/5}.cta{grid-template-columns:1fr;padding-top:62px;padding-bottom:62px}.foot{grid-template-columns:1fr auto}.foot .right{grid-column:1/-1;text-align:left}.page-hero{padding:72px 0 45px}.project-row,.project-row.reverse{padding:42px 0;gap:28px}.project-row.reverse .visual{order:0}.detail-hero{padding:65px 0 45px;gap:28px}.detail-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;margin-bottom:70px}.detail-grid .big{grid-column:1/3;grid-row:auto;aspect-ratio:16/10}.detail-grid .wide{grid-column:auto;aspect-ratio:1}.detail-grid figure:not(.big):not(.wide){aspect-ratio:1}.text-section{padding:65px 0;gap:20px}.service-grid{grid-template-columns:1fr}.about-page{padding:70px 0}.about-page .portrait{position:static;width:75%;justify-self:end}.contact-page{padding:70px 0}.small-gallery{grid-template-columns:1fr 1fr}h1{font-size:clamp(52px,14vw,76px)}h2{font-size:clamp(44px,12vw,64px)}}
@media(max-width:430px){.wrap{width:calc(100% - 40px)}.lead{font-size:16px}.about-tease .portrait,.about-page .portrait{width:82%}.actions{gap:14px}.foot{padding-left:20px;padding-right:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card{transition:none}}

/* FINAL CLEAN — portfolio visuals and mobile reliability */
.visual-cards .visual-card{padding:0;display:block;overflow:hidden}
.visual-card figure{height:220px;overflow:hidden;background:#eee8df}
.visual-card figure img,.workshop-gallery img,.poster-trio img{display:block;width:100%;height:100%;object-fit:cover}
.visual-card .card-copy{padding:26px 28px 30px}
.visual-card .num{display:block;margin:14px 0 2px;font-size:42px}
.poster-trio{display:grid!important;grid-template-columns:repeat(3,1fr);gap:7px;padding:10px;background:#eee8df;min-height:420px}
.poster-trio img{object-position:top center}
.workshops-row{align-items:start}
.workshop-gallery{display:grid;grid-template-columns:1.15fr .85fr;gap:10px;min-height:430px}
.workshop-gallery figure{margin:0;overflow:hidden;background:#eee8df}
.workshop-gallery img{object-position:center}
.project-copy h4{font-family:Georgia,serif;font-size:1.12rem;margin:25px 0 7px;color:#31496d}
.emo-photo img,.portrait img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:820px){
  .visual-card figure{height:190px}
  .poster-trio{min-height:360px}
  .workshop-gallery{grid-template-columns:1fr;min-height:0}
  .workshop-gallery figure:first-child{aspect-ratio:4/5}
  .workshop-gallery figure:last-child{aspect-ratio:1/1}
  .other{padding-top:68px;padding-bottom:58px}
  .about-tease{padding-top:58px;padding-bottom:70px}
}

/* FINAL NO-CROP FIX — book cover and posters must remain fully visible */
.book-stage{
  display:flex;
  align-items:center;
  justify-content:center;
}
.book-stage img{
  width:min(78%,360px);
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center !important;
}

.poster-trio{
  display:grid !important;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  padding:12px;
  background:transparent;
  min-height:0 !important;
  align-items:start;
}
.poster-trio img{
  width:100% !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center !important;
  background:#f7f4ef;
}

.visual-card figure.poster-preview{
  height:auto !important;
  background:transparent;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:5px;
  align-items:start;
  overflow:visible;
}
.visual-card figure.poster-preview img{
  width:100%;
  height:auto !important;
  object-fit:contain !important;
  display:block;
}

@media(max-width:820px){
  .book-stage img{width:min(72vw,320px)}
  .poster-trio{grid-template-columns:1fr;gap:16px}
  .poster-trio img{width:min(86vw,520px)!important;margin:0 auto}
  .visual-card figure.poster-preview{
    grid-template-columns:repeat(3,1fr);
    gap:4px;
  }
}

/* Homepage Move in Dance: ONE poster only, fully visible */
.visual-card figure.poster-single{
  height:auto !important;
  background:#f7f4ef;
  overflow:visible;
  display:flex;
  justify-content:center;
  align-items:center;
  padding:12px;
}
.visual-card figure.poster-single img{
  display:block;
  width:auto !important;
  max-width:100% !important;
  height:auto !important;
  max-height:340px;
  object-fit:contain !important;
  object-position:center !important;
}
@media(max-width:820px){
  .visual-card figure.poster-single img{
    max-height:360px;
  }
}

/* MOVE IN DANCE — definitive no-crop rules */
.project-row .visual.poster-trio{
  aspect-ratio:auto !important;
  height:auto !important;
  min-height:0 !important;
  overflow:visible !important;
  background:transparent !important;
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:14px !important;
  padding:0 !important;
  align-items:start !important;
}
.project-row .visual.poster-trio img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center !important;
  margin:0 !important;
}
@media(max-width:820px){
  .project-row .visual.poster-trio{
    grid-template-columns:1fr !important;
    gap:24px !important;
  }
  .project-row .visual.poster-trio img{
    width:100% !important;
    height:auto !important;
  }
}

/* Homepage: exactly ONE full, uncropped Move in Dance poster */
.visual-card figure.poster-single{
  aspect-ratio:auto !important;
  height:auto !important;
  overflow:visible !important;
  padding:12px !important;
}
.visual-card figure.poster-single img{
  width:auto !important;
  max-width:100% !important;
  height:auto !important;
  max-height:360px !important;
  object-fit:contain !important;
  margin:0 auto !important;
}
