.studio-christmas-toggle:focus-visible,.studio-natal-tile:focus-visible{outline:2px solid #884b5a;outline-offset:4px}
.studio .s-media.has-natal{background:#f5ede0;isolation:isolate}
.studio .studio-natal-mosaic{position:absolute;inset:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:6px;padding:8px;background:#f5ede0}
.studio .studio-natal-mosaic[hidden],.studio .m-img[hidden],.studio .studio-natal-signature[hidden]{display:none}
.studio-natal-tile{border:0;padding:0;border-radius:6px;overflow:hidden;min-width:0;min-height:0;background:#ecdddf;cursor:zoom-in}
.studio .studio-natal-tile img{width:100%;height:100%;object-fit:contain;transform:none!important}
.studio-natal-signature{display:flex;gap:16px;align-items:center;margin-top:14px;color:#713b49;font-size:.8rem;line-height:1.5;max-width:350px}
.studio-natal-signature img{width:92px;height:92px;object-fit:contain;flex:none}
.studio-photo-dialog{border:1px solid #a16470;border-radius:18px;padding:16px;background:#fffbf4;color:#713b49;width:min(920px,94vw);max-height:94dvh;margin:auto;box-shadow:0 24px 80px #221c154d}
.studio-photo-dialog::backdrop{background:#221c15b3}
.studio-photo-dialog img{display:block;width:100%;height:70dvh;object-fit:contain}
.studio-photo-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:12px;background:transparent;color:inherit;padding:12px 0 0;text-align:left;font-size:.8rem}
.studio-photo-dialog button{border:1px solid #a16470;background:#f5ede0;border-radius:999px;padding:10px 16px;color:#713b49;font:inherit;cursor:pointer}
@media(max-width:560px){.studio .studio-natal-mosaic{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:4px;padding:6px}.studio-natal-tile:first-child,.studio-natal-tile:nth-child(2){grid-column:span 2}.studio-photo-dialog img{height:65dvh}}
@media(prefers-reduced-motion:reduce){.studio-christmas-toggle::before,.studio-christmas-toggle::after{transition:none}}

.studio-christmas-toggle{position:relative}
.studio-christmas-toggle::after{left:14px;top:calc(50% - 7px);margin-left:2px}
.studio .studio-natal-mosaic{display:flex;flex-direction:column}
.studio-natal-row{display:flex;gap:6px;min-height:0}
.studio-natal-tile{flex:1 1 0;background:transparent}
.studio-natal-tile{position:relative}.studio .studio-natal-tile img{position:absolute;inset:0}.studio-natal-row{width:100%}

/* Photo sticker: outside the image clipping, inside the studio footprint. */
.studio-media-switch{position:relative;min-width:0;isolation:isolate}
.studio.alt .studio-media-switch{order:2}
.studio-media-switch .s-media{width:100%}
.studio-christmas-toggle{position:absolute;z-index:4;top:-17px;right:-10px;display:inline-flex;align-items:center;gap:9px;min-height:50px;padding:10px 17px 10px 12px;max-width:calc(100% - 12px);border:2px solid #fffbf4;border-radius:18px 23px 17px 22px;background:#f5ede0;color:#713b49;box-shadow:0 0 0 1px #884b5a,0 8px 18px #221c1533;transform:rotate(3deg);font:600 .8rem 'Poppins',sans-serif;cursor:pointer;transition:background .4s,color .4s,transform .4s,box-shadow .4s}
.studio-christmas-toggle::before,.studio-christmas-toggle::after{content:none}
.studio-christmas-toggle:hover{transform:rotate(0deg) translateY(-2px);box-shadow:0 0 0 1px #884b5a,0 10px 24px #713b4940}
.studio-christmas-toggle[aria-pressed=true]{background:#713b49;color:#fffbf4}
.studio-natal-star{font-size:28px;line-height:1;color:#a16470}
.studio .studio-natal-tree{display:none;width:35px;height:43px;object-fit:contain;margin:-12px 0 -9px;transform:none!important;filter:drop-shadow(0 0 5px #ffe1a1)}
.studio-christmas-toggle[aria-pressed=true] .studio-natal-star{display:none}
.studio-christmas-toggle[aria-pressed=true] .studio-natal-tree{display:block;animation:studio-tree-light 2.5s ease-in-out infinite alternate}
.studio-media-switch::after{content:'';position:absolute;inset:-8px;pointer-events:none;z-index:3;border-radius:28px;opacity:0;background:radial-gradient(ellipse at 80% 10%,#ffe1a18c,transparent 65%);box-shadow:0 0 28px #e5bb7c66}
.studio-media-switch.is-transforming::after{animation:studio-natal-warmth .8s ease-out}
.studio-media-switch.is-transforming .studio-natal-mosaic:not([hidden]){animation:studio-natal-reveal .55s ease-out}
@keyframes studio-tree-light{from{filter:drop-shadow(0 0 2px #ffe1a180)}to{filter:drop-shadow(0 0 7px #ffe1a1)}}
@keyframes studio-natal-warmth{0%{opacity:0}25%{opacity:1}100%{opacity:0}}
@keyframes studio-natal-reveal{from{opacity:.25}to{opacity:1}}
@media(max-width:880px){.studio.alt .studio-media-switch{order:0}}
@media(max-width:560px){.studio-christmas-toggle{top:-14px;right:-4px;font-size:.73rem;min-height:46px;padding:9px 13px 9px 10px;gap:7px}.studio-natal-star{font-size:25px}}
@media(prefers-reduced-motion:reduce){.studio-christmas-toggle{transition:none}.studio-christmas-toggle[aria-pressed=true] .studio-natal-tree,.studio-media-switch.is-transforming::after,.studio-media-switch.is-transforming .studio-natal-mosaic:not([hidden]){animation:none}}

.studio-media-switch .studio-natal-signature{position:absolute;z-index:4;right:-12px;bottom:-17px;display:block;width:clamp(88px,9vw,125px);max-width:28%;margin:0;pointer-events:none;filter:drop-shadow(0 5px 7px #221c1533)}
.studio-media-switch .studio-natal-signature[hidden]{display:none}
.studio-media-switch .studio-natal-signature img{display:block;width:100%;height:auto;object-fit:contain}
.studio-christmas-toggle[aria-pressed=false]{animation:studio-natal-invite 4.8s ease-in-out infinite;transform-origin:75% 65%}
.studio-christmas-toggle:hover,.studio-christmas-toggle:focus-visible{animation:none}
@keyframes studio-natal-invite{0%,62%,100%{transform:rotate(3deg) translateY(0)}70%{transform:rotate(-3deg) translateY(-4px)}78%{transform:rotate(5deg) translateY(-2px)}86%{transform:rotate(0deg) translateY(-3px)}94%{transform:rotate(3deg) translateY(0)}}
@media(max-width:560px){.studio-media-switch .studio-natal-signature{right:-5px;bottom:-12px;width:92px}}
@media(prefers-reduced-motion:reduce){.studio-christmas-toggle[aria-pressed=false]{animation:none}}

.studio .studio-natal-carousel{display:block;padding:0;touch-action:pan-y}
.studio .studio-natal-carousel[hidden],.studio .studio-natal-carousel .studio-natal-tile[hidden]{display:none}
.studio-natal-carousel .studio-natal-tile{position:absolute;inset:0 0 36px;width:100%;height:calc(100% - 36px);border-radius:0;background:#f5ede0;animation:studio-natal-reveal .35s ease-out}
.studio .studio-natal-carousel .studio-natal-tile img{object-fit:contain;width:100%;height:100%}
.studio-carousel-prev,.studio-carousel-next{position:absolute;z-index:2;top:calc(50% - 40px);width:44px;height:44px;display:grid;place-items:center;border:1px solid #884b5a4d;border-radius:50%;background:#fffbf4e8;color:#713b49;font:32px/1 sans-serif;cursor:pointer;box-shadow:0 3px 10px #221c1526}
.studio-carousel-prev{left:10px}.studio-carousel-next{right:10px}
.studio-carousel-dots{position:absolute;bottom:0;left:20%;right:30%;height:36px;display:flex;align-items:center;justify-content:center;gap:0}
.studio-carousel-dots button{position:relative;width:28px;height:36px;padding:0;border:0;background:transparent;cursor:pointer}
.studio-carousel-dots button::after{content:'';position:absolute;left:10px;top:14px;width:8px;height:8px;border-radius:50%;background:#a1647055;transition:background .2s,transform .2s}
.studio-carousel-dots button[aria-pressed=true]::after{background:#713b49;transform:scale(1.25)}
.studio-carousel-prev:focus-visible,.studio-carousel-next:focus-visible,.studio-carousel-dots button:focus-visible{outline:2px solid #713b49;outline-offset:2px}
@media(prefers-reduced-motion:reduce){.studio-natal-carousel .studio-natal-tile{animation:none}.studio-carousel-dots button::after{transition:none}}

/* Full-frame carousel; navigation stays centered regardless of font metrics. */
.studio-natal-carousel .studio-natal-tile{inset:0;width:100%;height:100%}
.studio .studio-natal-carousel .studio-natal-tile img{object-fit:cover;object-position:center}
.studio-carousel-prev,.studio-carousel-next{top:50%;transform:translateY(-50%);padding:0;font-size:0;line-height:0}
.studio-carousel-prev::before,.studio-carousel-next::before{content:'';position:absolute;left:50%;top:50%;width:9px;height:9px;border-top:2px solid currentColor;border-right:2px solid currentColor}
.studio-carousel-prev::before{transform:translate(-35%,-50%) rotate(-135deg)}
.studio-carousel-next::before{transform:translate(-65%,-50%) rotate(45deg)}
.studio-carousel-dots{bottom:10px;left:50%;right:auto;transform:translateX(-50%);height:30px;padding:0 7px;border:1px solid #fffbf466;border-radius:999px;background:#fffbf4dc;box-shadow:0 2px 8px #221c151a}
.studio-carousel-dots button{height:28px;width:25px}
.studio-carousel-dots button::after{left:9px;top:10px}

/* A continuous ribbon: neighboring frames remain visible on both sides. */
.studio .studio-natal-carousel{overflow:hidden;background:#f5ede0}
.studio-natal-carousel .studio-natal-tile{inset:0 auto 0 0;width:84%;height:100%;border-radius:12px;transform:translateX(calc(9.52381% + var(--slide-offset,0)*102%));transition:transform .55s cubic-bezier(.22,.75,.2,1);animation:none}
.studio .studio-natal-carousel .studio-natal-tile img{border-radius:12px}
.studio-carousel-prev,.studio-carousel-next{z-index:3}
.studio-carousel-dots{z-index:3}
@media(prefers-reduced-motion:reduce){.studio-natal-carousel .studio-natal-tile{transition:none}}

/* Reversible web treatment, inspired by the warm studio photographs.
   Original pixels/assets remain unchanged; shared with the expanded viewer. */
.studio .studio-natal-carousel .studio-natal-tile img,.studio-photo-dialog>img{filter:sepia(.30) saturate(.88) contrast(.90) brightness(1.07)}

/* Match the supplied kitchen reference: cream whites, amber light and soft shadows. */
.studio-natal-carousel .studio-natal-tile::after{content:'';position:absolute;inset:0;border-radius:inherit;background:rgba(228,176,102,.10);pointer-events:none;mix-blend-mode:soft-light}

.studio .studio-natal-carousel img.studio-approved-photo,.studio-photo-dialog>img.studio-approved-photo{filter:none}
.studio-natal-tile:has(.studio-approved-photo)::after{display:none}
#eastman .studio-natal-carousel img.studio-approved-photo{object-fit:contain}
@media(max-width:880px){#eastman .s-media.has-natal{aspect-ratio:3/4}}
.studio:has(.studio-media-switch){scroll-margin-top:100px}

/* One approved Christmas photograph, with the same full-frame crop as normal mode. */
.studio .s-media.has-natal{aspect-ratio:4/3}
.studio .studio-natal-single{display:block;inset:0;padding:0;background:transparent}
.studio .studio-natal-single[hidden]{display:none}
.studio-natal-single .studio-natal-tile{position:absolute;inset:0;width:100%;height:100%;border-radius:0;transform:none}
.studio .studio-natal-single img.studio-approved-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:none;border-radius:0}
#eastman .studio-natal-single img.studio-approved-photo{object-position:center 66%}
#eastman .s-media.has-natal{aspect-ratio:4/3}

/* Shared footprint prevents layout shifts when changing scenes. */
.studio-scene-stack{display:grid;min-width:0}
.studio-scene-stack>.studio-scene-normal,.studio-scene-stack>.studio-scene-christmas{grid-area:1/1;align-self:start;transition:opacity .45s ease,visibility .45s}
.studio-scene-christmas{opacity:0;visibility:hidden;pointer-events:none}
.is-natal-scene .studio-scene-christmas{opacity:1;visibility:visible;pointer-events:auto}
.is-natal-scene .studio-scene-normal{opacity:0;visibility:hidden;pointer-events:none}
.studio .s-media>.m-img{transition:opacity .55s ease,transform .8s ease,visibility .55s}
.studio .studio-natal-single{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .55s ease,visibility .55s}
.studio.is-natal-scene .studio-natal-single{opacity:1;visibility:visible;pointer-events:auto}
.studio.is-natal-scene .s-media>.m-img{opacity:0;visibility:hidden}
.studio-media-switch .studio-natal-signature{opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s}
.is-natal-scene .studio-natal-signature{opacity:1;visibility:visible}
.studio-christmas-toggle{min-width:185px;justify-content:center}
@media(max-width:560px){.studio-christmas-toggle{min-width:168px}}
@media(prefers-reduced-motion:reduce){.studio-scene-stack>*,.studio .s-media>.m-img,.studio .studio-natal-single,.studio-media-switch .studio-natal-signature{transition:none}}

/* Keep the longer invitation inside the photograph on narrow screens. */
.studio-christmas-toggle{width:min(340px,calc(100% - 12px))}
.studio-natal-toggle-label{min-width:0;line-height:1.4;text-align:center}
.studio .studio-natal-tree,.studio-natal-star{flex:none}
