/* Christmas is the visual world; current festival overlap remains real content. */
.christmas-decor,.christmas-welcome{display:none}
html.christmas-world{background:#10392a}
html.christmas-world body{--navy:#143d2e;--deep:#09291f;--blue:#d2e4c9;--gold:#f2cf83;--paper:#fff6df;background:radial-gradient(ellipse at 0 20%,#4b181f66,transparent 55%),#10392a;color:#fff6df}
.christmas-world .christmas-decor{display:block;pointer-events:none;position:fixed;inset:0;z-index:85;overflow:hidden;contain:strict}
.christmas-garland{position:absolute;top:0;left:0;right:0;height:46px;background:url('assets/christmas-garland.svg') repeat-x top center;background-size:420px 72px;filter:drop-shadow(0 3px 5px #0006)}
.christmas-corner{position:absolute;bottom:0;width:clamp(65px,10vw,145px);height:190px;background:url('assets/christmas-tree.svg') no-repeat bottom center;background-size:contain;opacity:.9}
.christmas-corner-left{left:-25px}.christmas-corner-right{right:-25px;transform:scaleX(-1)}
.christmas-world .site-header{background:linear-gradient(110deg,#113f2e,#09291f);border-bottom:1px solid #d6ae62;padding-top:42px}
.christmas-world .site-season-status,.christmas-world .season-status{background:#761f2d;color:#ffe4a8}
.christmas-world .hero.shared-hero{background:linear-gradient(90deg,#092d24 15%,#092d24ed 45%,#092d2477),url('assets/instagram/DDE69EDMNBS-01.webp') center right/cover;position:relative;border-bottom:3px solid #d6ae62}
.christmas-world .hero-copy{position:relative;z-index:2}.christmas-world .hero-copy>h1,.christmas-world .hero-copy>.overline,.christmas-world .hero-copy>.intro-copy{display:none}
.christmas-world .christmas-welcome{display:block}.christmas-welcome h1{color:#fff4dc;font-size:clamp(48px,5.7vw,88px);line-height:.97;margin:18px 0;text-shadow:0 3px 28px #0006}.christmas-welcome h1 span{color:#f5d182}.christmas-welcome p{max-width:490px}.christmas-welcome a{display:inline-block;color:#ffe6ad;border-bottom:1px solid #e1b96a;padding:12px 0;margin:12px 0}.christmas-welcome small{display:block;font-size:10px;color:#e3dbc4;max-width:400px}
.christmas-world .couple-frame{border:5px solid #e8c57d;box-shadow:0 0 0 10px #8f2535,0 0 0 12px #d3ae67,0 22px 60px #0006}
.christmas-world .hero-logo{filter:drop-shadow(0 0 20px #d6a65340)}
.christmas-world .active-celebrations,.christmas-world .christmas-feast{background:radial-gradient(ellipse at top,#36745155,transparent 65%),#103b2a;border-top:4px solid #a52c3b;border-bottom:1px solid #d4ac62}
.christmas-world .active-celebrations>h2{color:#f6d79c}.christmas-world .ticker{background:#8b2333;color:#ffe7b1;border-block:1px solid #dfbb72}
.christmas-world .journal,.christmas-world .park-heart,.christmas-world .hello,.christmas-world .magic-section,.christmas-world .news-main,.christmas-world .editorial-article{background-color:#10392a}
.christmas-world :is(.post-card,.news-card,.pixie-recent-card,.magic-ticket,.filter-panel,.app-panel,.app-card,.app-settings-card){background-color:#123b2d;border-color:#cba65e88}
.christmas-world :is(.news-article,.editorial-article){border-top:4px solid #b73343}
.christmas-world :is(.button.yellow,.button.dark){background:#f2cf83;color:#163528;border-color:#f2cf83}.christmas-world a{ text-decoration-color:#cbaa65}
.christmas-world :is(.site-footer,footer){background:#09291f url('assets/christmas-wreath.svg') no-repeat 94% 40px;background-size:115px;border-top:4px solid #942738}
.christmas-world .app-tabbar{background:#092e23f5!important;border-color:#ddb86d!important}.christmas-world .app-tabbar a[aria-current=page]{background:#f2cf83!important;color:#133b2b!important}
.christmas-world :is(.archive-header,.page-heading,.news-heading,.app-heading){background:linear-gradient(110deg,#6b1c2a,#143f2e)}
.christmas-world h2,.christmas-world h3{color:#fff1d4}.christmas-world .eyebrow{color:#edcb86}
.christmas-world .christmas-snow i{position:absolute;left:var(--x);top:-10px;width:var(--size);height:var(--size);background:#fff8e5;border-radius:50%;opacity:.55;animation:christmas-fall var(--duration) var(--delay) linear infinite;will-change:transform}
@keyframes christmas-fall{from{transform:translate3d(-12px,-20px,0)}to{transform:translate3d(24px,105vh,0)}}
.christmas-paused .christmas-snow i{animation-play-state:paused}
@media(max-width:700px){.christmas-world .site-header{padding-top:40px}.christmas-garland{height:32px;background-size:300px 52px}.christmas-corner{width:65px;height:105px;opacity:.65}.christmas-corner-left{left:-30px}.christmas-corner-right{right:-30px}.christmas-world .hero.shared-hero{background:linear-gradient(90deg,#092d24f5,#092d24bb),url('assets/instagram/DDE69EDMNBS-01.webp') center/cover}.christmas-world .couple-frame{margin:28px 12px}.christmas-snow i:nth-child(n+15){display:none}.christmas-world footer{background-size:75px;background-position:94% 30px}.is-app-shell .christmas-corner{bottom:84px}}
@media(prefers-reduced-motion:reduce){.christmas-snow{display:none}.christmas-garland{filter:none}}
.christmas-world .christmas-decor:after{content:'';position:absolute;top:2px;left:calc(50% - 31px);width:62px;height:64px;background:url('assets/christmas-wreath.svg') center/contain no-repeat}
.christmas-world .christmas-garland{animation:christmas-glow 4s ease-in-out infinite alternate}@keyframes christmas-glow{to{filter:brightness(1.18) drop-shadow(0 0 5px #f5cb6655)}}.christmas-paused .christmas-garland{animation-play-state:paused}
@media(max-width:700px){.christmas-world .christmas-decor:after{width:42px;height:44px;left:calc(50% - 21px)}}
@media(prefers-reduced-motion:reduce){.christmas-world .christmas-garland{animation:none}}
.christmas-world .site-season-strip{background:#761f2d;color:#ffe4a8;border-color:#d4ad67}
html.christmas-world.is-app-shell body{padding-top:34px}
.christmas-world .app-settings-card{background:#123b2d!important;border-color:#cba65e88!important}
.christmas-app-brand{display:none}.christmas-world.is-app-shell .christmas-app-brand{display:flex;align-items:center;gap:20px;padding:20px 6%;background:radial-gradient(ellipse at right,#47693b55,transparent),#10392a;border-bottom:1px solid #d5b16b66}.christmas-app-brand img{width:100px;height:78px;object-fit:contain}.christmas-app-brand p{font-family:'Barlow Condensed',Impact,sans-serif;font-size:29px;line-height:1;text-transform:uppercase;color:#f4d38c}.christmas-app-brand small{display:block;font:11px/1.5 'DM Sans',Arial,sans-serif;color:#f7ead0;margin-top:7px}
.christmas-world :is(.app-news-card,.app-update-card,.app-connection,.app-install-dialog){background:#123b2d;border-color:#d0ac6688}.christmas-world :is(.app-card-photo,.app-update-image){background:#09291f}.christmas-world :is(.app-update-date,.app-update-summary,.app-mixed-note,.app-feed-intro,.app-settings-card p){color:#e7e4ce}.christmas-world .app-source-badge{background:#f2cf83;color:#123b2d}.christmas-world .app-source-instagram{background:#e9c8bb;color:#52202b}.christmas-world .app-source-youtube{background:#b9394c;color:#fff7e5}
/* Compact festive phone chrome: full logo, overlap season and useful content. */
@media(max-width:700px){html.christmas-world.is-app-shell body{padding-top:22px}.is-app-shell .christmas-garland{height:23px;background-size:240px 40px}.christmas-world.is-app-shell .christmas-app-brand{gap:12px;padding:6px 5%}.christmas-world.is-app-shell .christmas-app-brand img{width:76px;height:52px}.christmas-world.is-app-shell .christmas-app-brand p{font-size:20px;margin:0}.christmas-world.is-app-shell .christmas-app-brand small{font-size:10px;margin-top:3px}.christmas-world.is-app-shell .site-season-strip{padding:6px 5%!important;font-size:10px;line-height:1.35}.christmas-world.is-app-shell .christmas-decor:after{width:30px;height:30px;left:auto;right:12px}.is-app-shell .app-tabbar a{min-width:0;min-height:52px;font-size:11px}.is-app-shell .app-tabbar{gap:3px}.is-app-shell .app-tabbar svg{width:21px;height:21px}}

/* The full artwork owns its space, outside the clipped fixed snow layer. */
.christmas-header-garland{display:none}
html.christmas-world{--garland-height:84px;--garland-width:420px;--christmas-safe-top:env(safe-area-inset-top,0px)}
html.christmas-world body,html.christmas-world.is-app-shell body{position:relative;padding-top:calc(var(--garland-height) + var(--christmas-safe-top))}
.christmas-world .christmas-header-garland{display:block;position:fixed;top:var(--christmas-safe-top);left:0;right:0;height:var(--garland-height);background:url('assets/christmas-garland-color.svg') repeat-x top center;background-size:var(--garland-width) var(--garland-height);pointer-events:none;z-index:85;overflow:visible;filter:drop-shadow(0 3px 3px #0005)}
.christmas-world .site-header{padding-top:14px}
.christmas-world .christmas-decor:after{display:none}
@media(max-width:700px){html.christmas-world{--garland-height:66px;--garland-width:330px}.christmas-world .site-header{padding-top:10px}}

/* Reserve the decorated top edge for anchor navigation and focused controls.
   Pointer events remain disabled, and native modal dialogs stay in the top layer. */
html.christmas-world{scroll-padding-top:calc(var(--garland-height) + var(--christmas-safe-top) + 12px)}

/* Content introductions are not navigation headers. Preserve their page layout. */
body.festive main :is(.creator-intro,.video-intro){background:transparent;border:0}

/* Responsive source-independent cards: phones fit their own content. */
body .pixie-recent-track{grid-auto-columns:100%;gap:16px;align-items:start}
body .pixie-recent-track > .pixie-recent-card{display:flex;flex-direction:column;align-self:start!important;min-width:0;box-sizing:border-box}
body .pixie-recent-card > .pixie-recent-media{width:100%;height:auto!important;min-height:0!important;aspect-ratio:auto!important;padding:0!important;align-self:start!important;overflow:visible}
body .pixie-recent-card .pixie-recent-media img[data-card-kind="photo"]{position:static!important;inset:auto!important;display:block;width:100%!important;height:420px!important;max-height:none!important;object-fit:cover!important;object-position:var(--card-focus,50% 42%);background:#102136}
body .pixie-recent-card .pixie-recent-copy{width:100%;box-sizing:border-box;padding:22px;align-self:start}
body .pixie-recent-card .pixie-recent-excerpt{display:block;-webkit-line-clamp:unset;overflow:visible}
body .pixie-recent-card .pixie-recent-copy h3{font-size:clamp(25px,3vw,34px);line-height:1.12}
@media(min-width:768px){body .pixie-recent-track{grid-auto-columns:calc((100% - 16px)/2);align-items:stretch}body .pixie-recent-track > .pixie-recent-card{align-self:stretch!important}}
/* The garland stays at the viewport edge in both the website and app shell. */
body .food-wine-guide .menu-venues{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px;justify-content:normal}
body .food-wine-guide .menu-venues h2{grid-column:1/-1;width:auto;color:#172c44;margin:0 0 8px}
body .food-wine-guide .menu-venues a{display:flex;align-items:center;min-height:44px;box-sizing:border-box;margin:0;overflow-wrap:anywhere;color:#172c44}

/* Dynamic photo previews follow the same focal-fill contract as static cards. Full article media and provider frames are excluded. */
body .durable-news-card .news-card-image figure>img[data-card-kind="photo"]{display:block;width:100%;height:var(--pixie-media-height,420px);aspect-ratio:auto;max-height:none;object-fit:cover!important;object-position:var(--card-focus-mobile,var(--card-focus,50% 42%));background:#102136}
body .durable-news-card .news-card-image figure>img[data-card-kind="artwork"]{display:block;width:100%;height:auto;object-fit:contain}
.christmas-home-music{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:28px;align-items:center;margin:28px 0 0;padding:26px 0 0;border:0;border-top:1px solid #d5ac6388;color:#fff3d1}
.christmas-home-music[hidden]{display:none!important}.christmas-home-music h3{font-size:clamp(28px,4vw,42px);margin:14px 0}.christmas-home-music-copy>p:not(.eyebrow){font-size:14px;margin-top:16px;max-width:440px}.christmas-home-music [data-christmas-music-player]{min-width:0}.christmas-home-music iframe{display:block;width:100%;max-width:660px;height:450px;border:0;margin:0;background:transparent}
@media(max-width:700px){.christmas-home-music{grid-template-columns:minmax(0,1fr);gap:20px;margin-top:24px;padding-top:24px}}
