/* Site-wide photo-card contract. Full photos, logos, players and ND pairs excluded. */
.memory-image img,.our-story-album img,.resort-album img,.mv-photo img,.memory-postcard-photo img{object-fit:cover;object-position:var(--photo-focus,50% 38%)}
.creator-photo.personal{position:relative;overflow:hidden;padding:0;aspect-ratio:4/3}
.creator-photo.personal img{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:cover;object-position:var(--photo-focus,50% 35%)}
.couple-frame{overflow:hidden}.couple-frame img{width:100%;height:100%;max-height:none;aspect-ratio:4/5;object-fit:cover;object-position:50% 36%}
.park-window>img,.minnie-photo img{object-fit:cover;object-position:var(--photo-focus,50% 40%)}
.hello-photo img{object-fit:cover;object-position:50% 45%}
.resort-home-card{position:relative}.resort-home-card img{position:absolute;inset:0 auto 0 0;width:135px;height:100%;max-height:none;object-fit:cover;object-position:50% 45%}.resort-home-copy{grid-column:2}
.editorial-highlight-photo{position:relative;overflow:hidden}.editorial-highlight-photo img{position:absolute;inset:0;height:100%;max-height:none;object-fit:cover}
@media(max-width:700px){.memory-image img,.our-story-album img,.resort-album img,.mv-photo img{object-position:var(--photo-focus-mobile,var(--photo-focus,50% 35%))}.creator-photo.personal img{object-position:var(--photo-focus-mobile,var(--photo-focus,50% 35%))}.couple-frame img{height:100%;max-height:none;aspect-ratio:3/4;object-fit:cover;object-position:50% 35%}.resort-home-card img{width:105px}.editorial-highlight-photo{height:220px}}
/* Curated group photographs: retain all faces rather than centering on one person. */
.creator-photo.personal img[src*="DA0r_6IuY3c"]{--photo-focus:50% 35%;--photo-focus-mobile:50% 35%}
.creator-photo.personal img[src*="Dd3UNvllng2"]{--photo-focus:50% 37%;--photo-focus-mobile:50% 37%}
.creator-photo.personal img[src*="DEPl_EFxHAa"]{--photo-focus:50% 36%;--photo-focus-mobile:50% 36%}
.creator-photo.personal img[src*="ruuben-with-dj-beam"]{--photo-focus:50% 40%;--photo-focus-mobile:50% 40%}
.creator-photo.personal img[src*="DYPQLHfORuW"]{--photo-focus:50% 38%;--photo-focus-mobile:50% 38%}
/* Portrait groups need portrait frames to keep every face, not a forced landscape slice. */
.creator-photo.personal:has(img[src*="DA0r_6IuY3c"]),.creator-photo.personal:has(img[src*="DEPl_EFxHAa"]){aspect-ratio:4/5}
.creator-photo.personal:has(img[src*="ruuben-with-dj-beam"]),.creator-photo.personal:has(img[src*="DYPQLHfORuW"]){aspect-ratio:3/4}
/* Edge-to-edge photo frames, V57. Captions are content, not blank matting. */
body .memory-image{padding:0!important;border:0!important;overflow:hidden;border-radius:8px;transform:none;box-shadow:none}
body .memory-image img{width:100%;border:0;display:block}
body .memory-image small{left:0;right:0;bottom:0;padding:18px 10px 7px;color:#fff;background:linear-gradient(transparent,#081524d9);font-size:9px;line-height:1.3}
body .our-story-album,body .resort-album{padding:0 0 20px;overflow:hidden;border-radius:10px}
body .our-story-album>h3,body .our-story-album>span{margin-left:16px;margin-right:16px}
body .our-story-album img,body .resort-album img{width:100%;border:0;object-fit:cover}
body .mv-photo{padding:0;overflow:hidden;border-radius:9px;background-image:none}
body .mv-photo figcaption{padding:10px 12px}
body .park-window{border:0;border-radius:100px 100px 8px 8px;overflow:hidden}
body.home-page .hello-photo{padding:0!important;overflow:hidden;border:0!important;border-radius:8px;transform:none}
body .hello-photo img{width:100%;border:0;object-fit:cover}
body .hello-photo span{padding:12px}
body .memory-postcard-photo img{border:0;display:block}
/* ND archival pair remains uncropped; fit each image INSIDE its actual track cell. */
body .pixie-recent-media .editorial-intact-pair{height:100%;min-height:0;overflow:hidden;align-items:stretch}
body .pixie-recent-media .editorial-intact-pair img{position:static;width:100%;height:100%;min-height:0;max-height:100%;object-fit:contain}
body .couple-frame{padding:0;overflow:hidden;border:0;border-radius:12px}
body .couple-frame figcaption{padding:14px 16px}

/* Shared preview policy: photographs fill; artwork defines its own frame.
   This intentionally excludes gallery-slide, lightbox, editorial-news-photo,
   original logos and official video players. Identity comes from card-media.json. */
body :is(.news-card-image,.editorial-highlight-photo,.app-card-photo,.app-update-image,.pixie-recent-media,.video-thumbnail,.video-home-photo){overflow:hidden;padding:0;border:0;position:relative;min-width:0}
body :is(.news-card-image,.editorial-highlight-photo,.app-card-photo,.app-update-image,.pixie-recent-media,.video-thumbnail,.video-home-photo)>img[data-card-kind="photo"]{display:block;width:100%;height:100%;max-height:none;object-fit:cover!important;object-position:var(--card-focus,50% 42%)}
body :is(.news-card-image,.editorial-highlight-photo,.app-card-photo,.app-update-image,.pixie-recent-media,.video-thumbnail,.video-home-photo):has(>img[data-card-kind="artwork"]){height:auto!important;min-height:0!important;max-height:none!important;aspect-ratio:auto!important;padding:0!important;align-self:start;background:transparent}
body :is(.news-card-image,.editorial-highlight-photo,.app-card-photo,.app-update-image,.pixie-recent-media,.video-thumbnail,.video-home-photo)>img[data-card-kind="artwork"]{display:block!important;position:static!important;inset:auto!important;width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:var(--media-ratio)!important;object-fit:contain!important;transform:none!important;border:0}
/* Artwork in Today deserves the full card width so its words remain readable. */
body .app-update-card:has(>.app-update-image>img[data-card-kind="artwork"]){grid-template-columns:minmax(0,1fr);padding:0;gap:0}
body .app-update-card:has(>.app-update-image>img[data-card-kind="artwork"])>.app-update-image{border-radius:0;width:100%}
body .app-update-card:has(>.app-update-image>img[data-card-kind="artwork"])>.app-update-copy{padding:16px}
body .app-update-card:has(>.app-update-image>img[data-card-kind="artwork"])>.app-update-note{padding:0 16px 16px}
body .pixie-recent-card:has(.editorial-card-photo[data-card-kind="artwork"]){align-items:center}
/* Full-width preview images reserve a stable ratio; no inherited pixel heights. */
body .memory-image:has(img){display:block;position:relative;aspect-ratio:4/3}
body .memory .memory-image img{display:block;position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:cover;object-position:var(--photo-focus,50% 38%)}
@media(max-width:700px){body.home-page .memory-image:has(img){aspect-ratio:1/1}body :is(.news-card-image,.editorial-highlight-photo,.app-card-photo,.app-update-image,.pixie-recent-media)>img[data-card-kind="photo"]{object-position:var(--card-focus-mobile,var(--card-focus,50% 38%))}}
/* Replace the legacy padding-height technique wherever padding is removed. */
body .app-card-photo:not(:has(>img[data-card-kind="artwork"])){height:auto;aspect-ratio:16/9}
@media(max-width:700px){body .pixie-recent-media:not(:has(>img[data-card-kind="artwork"])){height:auto;min-height:0;aspect-ratio:16/9;flex:0 0 auto;padding:0}}

/* Shared provider geometry, independent of theme, article age and source post.
   Outer frame is fixed; provider-owned internal content stays scrollable. */
:root{--pixie-embed-width:350px;--pixie-media-height:420px}
body .pixie-social-frame,body [data-instagram-mount],body [data-facebook-mount]{width:min(100%,var(--pixie-embed-width));height:var(--pixie-media-height);overflow:auto;margin:0 auto;background:#fff;box-sizing:border-box;overscroll-behavior:contain}
body .pixie-social-frame:focus-visible,body [data-instagram-mount]:focus-visible,body [data-facebook-mount]:focus-visible{outline:3px solid #e8b443;outline-offset:3px}
body .pixie-social-frame iframe,body [data-facebook-mount] iframe{display:block;width:100%!important;max-width:100%!important;height:var(--pixie-media-height)!important;border:0}
body [data-instagram-mount] iframe{min-width:0!important;max-width:100%!important}

/* Every ordinary News photo preview shares the embed media space.
   Original article/gallery images, artwork and intact provider frames excluded. */
body .news-card-image>img[data-card-kind="photo"],body .pixie-recent-media>img[data-card-kind="photo"]{position:static!important;inset:auto!important;width:100%!important;height:var(--pixie-media-height)!important;max-height:none!important;object-fit:cover!important;object-position:var(--card-focus,50% 42%)}
body .news-card-image:has(>img[data-card-kind="photo"]){height:auto!important;min-height:0!important;aspect-ratio:auto!important}
body .app-update-card[data-feed-source="news"]:has(.app-update-image>img[data-card-kind="photo"]){grid-template-columns:minmax(0,1fr);padding:0;gap:0}
body .app-update-card[data-feed-source="news"] .app-update-image:has(>img[data-card-kind="photo"]){height:var(--pixie-media-height);aspect-ratio:auto;width:100%;border-radius:0}
body .app-update-card[data-feed-source="news"] .app-update-image>img[data-card-kind="photo"]{width:100%;height:100%;object-fit:cover!important;object-position:var(--card-focus-mobile,var(--card-focus,50% 42%))}
body .app-update-card[data-feed-source="news"]:has(.app-update-image>img[data-card-kind="photo"])>.app-update-copy{padding:20px}

/* Compact card standard v2: 420 media +48 credits +144 copy +44 action +2 border.
   Copy is an explicit keyboard-scrollable region; no text is line-clipped. */
body .card-standard{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:420px 48px 144px 44px!important;height:658px!important;min-height:658px!important;max-height:658px!important;border-width:1px!important;border-style:solid!important;padding:0!important;gap:0!important;box-sizing:border-box!important;align-self:start!important;overflow:hidden}
.card-standard-media{min-width:0;min-height:0;height:420px;overflow:auto;background:#102136}
body .card-standard-media>:is(.pixie-recent-media,.news-card-image,.app-update-image){display:block!important;width:100%!important;height:420px!important;min-height:0!important;max-height:none!important;aspect-ratio:auto!important;padding:0!important;margin:0!important}
body .card-standard-media img[data-card-kind="photo"]{position:static!important;width:100%!important;height:420px!important;max-height:none!important;object-fit:cover!important;object-position:var(--card-focus-mobile,var(--card-focus,50% 42%))}
body .card-standard-media img[data-card-kind="artwork"]{position:static!important;width:100%!important;height:420px!important;object-fit:contain!important}
.card-standard-credits{height:48px;box-sizing:border-box;overflow:auto;padding:6px 16px;font-size:.75rem;line-height:1.4;background:#123b2b}
body .card-standard-credits :is(p,figcaption){padding:0!important;margin:0!important;font-size:inherit!important;line-height:inherit!important}
.card-standard-body{display:block;height:144px;padding:8px 16px;box-sizing:border-box;min-width:0;min-height:0;overflow:auto;overflow-wrap:anywhere}
.card-standard-meta{font-size:.6875rem;line-height:1.45;white-space:normal}
body .card-standard-meta p{font-size:inherit!important;line-height:inherit!important;margin:0 0 4px!important}
body .card-standard-body :is(h2,h3){font-size:1.375rem!important;line-height:1.1!important;margin:0 0 4px!important;display:block;-webkit-line-clamp:unset;overflow:visible}
.card-standard-excerpt{font-size:.8125rem;line-height:1.4;display:block;-webkit-line-clamp:unset;overflow:visible}
body .card-standard-excerpt p{font-size:inherit!important;line-height:inherit!important;margin:0!important;display:block!important;-webkit-line-clamp:unset!important;overflow:visible!important;max-height:none!important}
.card-standard-footer{padding:0 16px;box-sizing:border-box;display:block;overflow:auto}
body .card-standard-footer a{display:flex;align-items:center;min-height:44px;margin:0!important;font-size:.8125rem;line-height:1.4;overflow-wrap:anywhere}
.card-standard :focus-visible{outline:3px solid #e8b443;outline-offset:-3px}

/* News uses the homepage's exact two-card content width and 16px gutter.
   The compact media/copy/credit/footer contract above remains shared. */
@media(min-width:768px){
 body main.news-page{max-width:none;margin:0 6%;padding:55px 0 80px;width:auto}
 body main.news-page>section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;row-gap:24px;align-items:start;scrollbar-width:thin;scrollbar-gutter:stable;overflow-y:auto}
 body main.news-page>section>:not(.news-card){grid-column:1/-1}
 body main.news-page .news-card{width:100%;min-width:0;margin:0!important}
}
/* Keep the existing pagination row inside the phone viewport. */
body main.news-page nav[aria-label="News pages"]{min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
