/* Finished photographs retain their original palette; only the image swap crossfades. */
.editor-photo>.hero-demo-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 65%;opacity:0;transition:opacity 450ms ease;filter:none}
.editor-photo>.hero-demo-image.is-active{opacity:1}
.hero-demo-stage .photo-badge{font-size:8px;letter-spacing:.8px;padding:7px 10px;z-index:2}
.hero-demo-stage .photo-badge b{font-weight:500}
.hero-demo-stage .photo-info{font-size:8px;z-index:2;pointer-events:none}
.hero-demo-stage .photo-info>span:last-child{font-size:7px;color:#c8d8e0;letter-spacing:.5px}
.hero-demo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-top:1px solid #30393f;background:#172027}
.hero-demo-thumbs{display:flex;gap:6px;align-items:center;min-width:0;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#41505a transparent;padding-block:2px}
.hero-demo-thumb{flex-shrink:0;display:block;position:relative;width:43px;height:34px;padding:2px;border:1px solid #41505a;background:#0c151c;border-radius:2px;opacity:.6;transition:opacity .2s,border-color .2s;cursor:pointer}
.hero-demo-thumb img{width:100%;height:100%;object-fit:cover;border-radius:1px}
.hero-demo-thumb:hover{opacity:1}
.hero-demo-thumb[aria-pressed=true]{border-color:var(--cyan);opacity:1}
.hero-demo-actions{flex-shrink:0;display:flex;align-items:center;gap:7px}
.hero-demo-pause{height:34px;width:34px;padding:8px;border:1px solid #3b4a55;border-radius:3px;background:#202d36;color:#d6e5ed;display:flex;align-items:center;justify-content:center;cursor:pointer}
.hero-demo-pause svg{width:14px;height:14px}
.hero-demo-pause:hover{background:#293e4b;border-color:#769bad}
.hero-demo-note{font-size:8px;color:#7c8f9d;letter-spacing:.3px;line-height:1.6;margin-top:10px;padding-left:8px}
.hero-demo-note+.art-caption{margin-top:10px}
@media(max-width:600px){.hero-demo-stage .photo-badge{font-size:6px;letter-spacing:.4px;padding:5px 7px;left:8px;top:10px}.hero-demo-stage .photo-info{font-size:6px;padding:45px 9px 10px}.hero-demo-stage .photo-info>span:last-child{font-size:5px;letter-spacing:.2px}.hero-demo-toolbar{gap:7px;padding:7px 8px}.hero-demo-thumb{width:34px;height:32px}.hero-demo-thumbs{gap:4px}.hero-demo-actions{gap:5px}.hero-demo-pause{height:32px;width:32px}.hero-demo-note{font-size:7px;padding-left:0;margin-top:8px}}
@media(prefers-reduced-motion:reduce){.editor-photo>.hero-demo-image,.hero-demo-thumb{transition:none}}

.experience .section-top{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(240px,1fr);gap:70px;align-items:end}.experience h2{font-size:clamp(36px,3.8vw,54px);line-height:1.12;letter-spacing:-2px}.experience .section-intro{max-width:360px}
@media(max-width:800px){.experience .section-top{grid-template-columns:1fr;gap:24px}.experience h2{font-size:clamp(32px,6vw,44px);letter-spacing:-1.5px}.experience .section-intro{max-width:460px}}

.hero-course-title .hero-secret{font-style:italic;font-weight:500}



.experience h2{color:#93a0a9;font-weight:450}.experience-key{color:#f0f4f6;font-weight:600}.experience-destination{color:#d9e2e7}.experience-map{display:inline-block;color:var(--cyan);font-size:1.17em;font-style:italic;font-weight:650;text-decoration:underline;text-decoration-color:#71d8fa55;text-underline-offset:.13em;text-decoration-thickness:1px}

.hero-copy,.hero-art{min-width:0}.hero-demo-toolbar{min-width:0}.hero-demo-thumbs{flex:1 1 0;max-width:100%}



/* Three independent comparisons; originals remain preserved in the photo library. */
.comparison-triptych{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.comparison-triptych .comparison{height:auto;aspect-ratio:2/3;min-width:0}
.comparison-triptych .comparison-after img{filter:none}
.comparison-triptych .comparison>img,.comparison-triptych .comparison-after img{object-position:center}
.comparison-triptych .compare-label{top:14px;font-size:7px;letter-spacing:1px;padding:5px 7px}
.comparison-triptych .before-label{left:12px}.comparison-triptych .after-label{right:12px}
.comparison-triptych .compare-divider>span{width:46px;height:34px;font-size:13px;gap:3px}
@media(max-width:600px){.comparison-triptych{grid-template-columns:repeat(3,minmax(230px,1fr));gap:12px;overflow-x:auto;padding:5px 3px 16px;scroll-snap-type:x mandatory;scrollbar-color:#41505a transparent}.comparison-triptych .comparison{scroll-snap-align:center}}

/* Deliberate visual simulations of capture issues, preserving the source photos. */
.comparison-triptych .before-portrait{filter:brightness(.9) contrast(.94) saturate(.8) sepia(.18) hue-rotate(18deg) url(#sensor-noise)}
.comparison-triptych .before-glass{filter:brightness(1.17) contrast(1.09) saturate(.82) sepia(.16) hue-rotate(-12deg)}
.comparison-triptych .before-fashion{filter:blur(.55px) contrast(.88) saturate(.68) brightness(1.04)}
.gallery-tall img{transform:scale(1.24);transform-origin:50% 43%}
.gallery-tall:hover img{transform:scale(1.28)}
@media(max-width:600px){.gallery-tall img{transform:scale(1.32)}.gallery-tall:hover img{transform:scale(1.35)}}



.comparison-triptych .compare-label{top:50%;transform:translateY(-50%);pointer-events:none}

@media(max-width:600px){.hero-demo-stage .hero-demo-image[data-photo="5"]{object-fit:contain;background:#121b22}}
/* Gentle photographic motion, independent of existing crop/hover transforms. */
@keyframes photographic-drift{from{scale:1.015;translate:-.25% .2%}to{scale:1.045;translate:.25% -.2%}}
.hero-demo-image,.comparison img,.gallery-photo img,.teacher-art>img,.offer-mini-gallery img,#lightbox-image{animation:photographic-drift 14s ease-in-out infinite alternate;animation-play-state:paused;transform-origin:center}
.photo-motion-visible .hero-demo-image.is-active,.comparison.photo-motion-visible img,.gallery-photo.photo-motion-visible img,.teacher-art.photo-motion-visible>img,.offer-mini-gallery.photo-motion-visible img,#lightbox.photo-motion-visible #lightbox-image{animation-play-state:running}
.comparison img{animation-duration:16s}
.gallery-wide img{animation-direction:alternate-reverse}
.gallery-detail img{animation-duration:18s}
.offer-mini-gallery{overflow:hidden}
@media(prefers-reduced-motion:reduce){.hero-demo-image,.comparison img,.gallery-photo img,.teacher-art>img,.offer-mini-gallery img,#lightbox-image{animation:none}}

/* Larger portrait gallery beside the final offer; three photographs at a time. */
.offer-mini-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));height:auto;max-width:560px;width:100%;gap:12px;margin-top:34px;overflow:visible}
.offer-photo-slot{position:relative;aspect-ratio:2/3;min-width:0;overflow:hidden;border-radius:4px;border:1px solid #b4d9ee26;background:#0c151c;isolation:isolate}
.offer-mini-gallery .offer-photo-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;opacity:0;transition:opacity .8s ease;filter:none}
.offer-mini-gallery .offer-photo-slot img.is-active{opacity:1}
@media(max-width:600px){.offer-mini-gallery{max-width:none;gap:8px;margin-top:28px}.offer-photo-slot{border-radius:3px}}
@media(prefers-reduced-motion:reduce){.offer-mini-gallery .offer-photo-slot img{transition:none}}

.teacher-art>img{filter:none;object-position:55% 75%}
.teacher-art-overlay{background:linear-gradient(0deg,#07141ccc 0%,#07141c33 35%,transparent 68%)}

/* Color returns with scroll visibility, independent of pointer hover. */
.gallery-photo img,.gallery-photo:hover img,.teacher-art>img{filter:saturate(.86) brightness(.98);transition:filter 1.1s ease,transform .6s ease}
.gallery-photo.photo-color-ready img,.gallery-photo.photo-color-ready:hover img,.teacher-art.photo-color-ready>img{filter:none}
.offer-mini-gallery .offer-photo-slot img{filter:saturate(.76) contrast(.91) brightness(1.06);transition:filter 1.15s ease}
.offer-mini-gallery .offer-photo-slot:nth-child(2) img{filter:contrast(.84) brightness(1.08) blur(.2px)}
.offer-mini-gallery .offer-photo-slot:nth-child(3) img{filter:saturate(.72) contrast(.9) brightness(.94)}
.offer-mini-gallery .offer-photo-slot.photo-color-ready img{filter:none}
.offer-edit-status{position:absolute;z-index:2;top:10px;left:8px;max-width:calc(100% - 16px);padding:5px 7px;border:1px solid #c9e4ee30;border-radius:2px;background:#09151bc9;color:#dce7ed;font-size:8px;font-weight:500;line-height:1.35;letter-spacing:.03em;pointer-events:none;transition:color .7s ease,border-color .7s ease}
.photo-color-ready .offer-edit-status{color:#9ce8ff;border-color:#77d9f747}
@media(max-width:600px){.offer-edit-status{top:7px;left:5px;max-width:calc(100% - 10px);padding:4px;font-size:6px;letter-spacing:0}}
@media(prefers-reduced-motion:reduce){.gallery-photo img,.gallery-photo:hover img,.teacher-art>img,.offer-mini-gallery .offer-photo-slot img,.offer-edit-status{transition:none}}

/* Editorial captions sit below the photographs, without covering the image. */
.offer-photo-slot{aspect-ratio:auto;overflow:visible;border:0;border-radius:0;background:none;isolation:auto}
.offer-photo-frame{position:relative;aspect-ratio:2/3;overflow:hidden;border-radius:3px;background:#0c151c;border:1px solid #b4d9ee20;isolation:isolate}
.offer-edit-status{position:static;display:flex;align-items:center;gap:6px;margin-top:10px;max-width:none;padding:0;border:0;border-radius:0;background:none;color:#7c8f9b;font-size:9px;font-weight:400;line-height:1.5;letter-spacing:.015em}
.offer-edit-status:before{content:'';width:3px;height:3px;flex:none;border-radius:50%;background:#65737b;transition:background 1s ease}
.photo-color-ready .offer-edit-status{color:#a5b7c2;border:0}
.photo-color-ready .offer-edit-status:before{background:#7bd6ed}
@media(max-width:600px){.offer-edit-status{font-size:7px;gap:4px;margin-top:8px;letter-spacing:0}.offer-edit-status:before{width:2px;height:2px}}

.comparison-mobile-only{display:none}
.comparison-triptych .before-maternity{filter:saturate(.68) contrast(.9) brightness(1.04)}
@media(max-width:600px){
  .comparison-triptych{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;overflow:visible;padding:0;scroll-snap-type:none}
  .comparison-triptych .comparison-mobile-only{display:block}
  .comparison-triptych .comparison{scroll-snap-align:none}
  .comparison-triptych .compare-label{font-size:5.5px;letter-spacing:.4px;padding:4px 5px}
  .comparison-triptych .before-label{left:6px}.comparison-triptych .after-label{right:6px}
  .comparison-triptych .compare-divider>span{width:32px;height:28px;font-size:10px;gap:1px}
  .comparison-triptych .compare-divider .icon{width:12px;height:12px}
  .editor-photo>.hero-demo-image{transition:opacity 350ms ease}
}
@media(prefers-reduced-motion:reduce){.editor-photo>.hero-demo-image{transition:none}}

@media(max-width:600px){.comparison-triptych{grid-template-columns:minmax(0,1fr);gap:18px}.comparison-triptych .compare-label{font-size:7px;letter-spacing:.8px;padding:5px 8px}.comparison-triptych .before-label{left:12px}.comparison-triptych .after-label{right:12px}.comparison-triptych .compare-divider>span{width:46px;height:34px;font-size:13px;gap:3px}.comparison-triptych .compare-divider .icon{width:14px;height:14px}}

.offer-comparison{height:auto;aspect-ratio:3/2;width:100%;max-width:560px;margin-top:34px}
.offer-comparison>img,.offer-comparison .comparison-after img{object-position:50% 48%}
.offer-comparison .comparison-before{filter:saturate(.7) contrast(.88) brightness(1.06)}
.offer-comparison .comparison-after img{filter:none}
.offer-comparison .compare-label{top:50%;transform:translateY(-50%);font-size:8px;pointer-events:none}
@media(max-width:600px){.offer-comparison{margin-top:28px;max-width:none}.offer-comparison .compare-label{font-size:7px}}

.site-header .brand-symbol img{display:block;width:42px;height:42px;object-fit:contain}
@media(max-width:600px){
  .hero-actions>.text-link,.hero-signature{display:none}
  .hero>.hero-copy>.eyebrow{visibility:hidden;pointer-events:none}
  .site-header{border-bottom-color:transparent}
  .site-header .brand-symbol img{width:33px;height:33px}
}

.hero-map-icon{color:#fff;stroke:#fff}
.hero-description>span:nth-child(3){margin-top:10px}

.offer-comparison{aspect-ratio:2/3;max-width:360px}
.offer-comparison>img,.offer-comparison .comparison-after img{object-position:50% 50%}
@media(max-width:600px){.offer-comparison{max-width:100%}}

/* Each slide keeps both sides of the comparison together during its crossfade. */
.offer-comparison-slide{position:absolute;inset:0;opacity:0;transition:opacity 650ms ease;pointer-events:none}
.offer-comparison-slide.is-active{opacity:1}
.offer-comparison-slide>.comparison-before{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.offer-comparison .compare-label,.offer-comparison .compare-divider{z-index:2}
.offer-comparison input{z-index:3}
@media(prefers-reduced-motion:reduce){.offer-comparison-slide{transition:none}}

/* Visible photographic movement, independent of the color reveal and crop. */
@keyframes editorial-photo-drift{from{scale:1.025;translate:-.8% .55%}to{scale:1.13;translate:.8% -.55%}}
.gallery-photo img,.teacher-art>img{animation-name:editorial-photo-drift;animation-duration:9s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;will-change:scale,translate}
.gallery-wide img{animation-direction:alternate-reverse;animation-duration:11s}.gallery-detail img{animation-duration:10s}.teacher-art>img{animation-duration:11s}
@media(prefers-reduced-motion:reduce){.gallery-photo img,.teacher-art>img{animation:none;will-change:auto}}

/* Keep each layer’s crop stable throughout the swap, including the outgoing photo. */
.hero-demo-stage{isolation:isolate;overflow:hidden}
.editor-photo>.hero-demo-image{backface-visibility:hidden;will-change:opacity}
@media(max-width:600px){.hero-demo-image{animation:none}}
