/* Public seasonal experience. Every immersive rule is scoped to Día de Muertos. */
body.hf-theme-customized { background-color: var(--bg); color: var(--text); }
body.hf-theme-muertos {
  --bg: var(--hf-theme-bg, #100b10);
  --surface: var(--hf-theme-surface, #241620);
  --surface-2: #30202a;
  --text: var(--hf-theme-text, #fff2d9);
  --muted: #d6bca3;
  --line: #70462c;
  --brand: var(--hf-theme-orange, #ff9b2f);
  --brand-dark: #ffd373;
  --brand-2: #ffbd54;
  --warn: #f6b54e;
  --blue: #c9b0ff;
  --shadow: 0 14px 38px #0006;
  background: radial-gradient(ellipse at 12% 8%, #7f351c35, transparent 45%), radial-gradient(ellipse at 94% 26%, #6c245329, transparent 40%), var(--bg) !important;
  color: var(--text);
  color-scheme: dark;
  padding-bottom: 70px;
}
body.hf-theme-muertos::before {
  background: radial-gradient(ellipse at 50% 100%, #ff86140d, transparent 65%);
  content: ""; inset: 0; pointer-events: none; position: fixed; z-index: -1;
}
.hf-theme-muertos .public-topbar,
.hf-theme-muertos .home-topbar {
  background: #171017f5 !important;
  border-bottom: 1px solid #e98c3d9c !important;
  box-shadow: 0 6px 30px #0005, 0 1px 22px #ff9a2420;
  color: var(--text);
}
.hf-theme-muertos :is(h1,h2,h3,h4,h5,strong,label,legend) { color: var(--text); }
.hf-theme-muertos :is(p,small,.muted,.small,.brand-subtitle,.eyebrow,.home-v2-footer-links,.home-v2-card-copy) { color: var(--muted); }
.hf-theme-muertos :is(.nav-pill,.ghost-btn,.secondary-btn,.icon-btn,.home-main-nav a,.home-strip-card,.home-menu-modal-date-link,.menu-calendar-actions button) {
  background: #2e1b23 !important; border-color: #a35e33 !important; color: #ffdf9e !important;
}
.hf-theme-muertos .public-menu-toggle { background: #3b231c !important; border: 1px solid #b5753a !important; color: #ffe3af !important; }
.hf-theme-muertos :is(.nav-pill.active,.primary-btn,.home-main-nav a.active,.home-menu-product-actions .primary-btn) {
  background: linear-gradient(120deg, #f27b16, #ffb342) !important; border-color: #ffc767 !important; color: #251405 !important;
  box-shadow: 0 4px 18px #ff821326;
}
.hf-theme-muertos :is(.primary-btn,.nav-pill,.secondary-btn,.ghost-btn):hover { filter: brightness(1.12); }
.hf-theme-muertos :is(.primary-btn,.nav-pill,.secondary-btn,.ghost-btn):focus-visible { outline: 3px solid #ffe09d; outline-offset: 3px; }
.hf-theme-muertos :is(.panel,.mini-banner,.birthday-banner,.home-v2-panel,.menu-section,.menu-item,.catalog-result-card,.notice-public-card,.notice-hero,.home-v2-footer,.home-language-challenge,.home-main-nav,.home-benefit-row > span,.community-card,.registration-card,.asset-card,.feedback-invitation,.home-menu-product-card,.home-menu-cart-panel,.selected-menu-date,.catalog-search-panel,.menu-calendar-modal,.product-modal,.home-menu-order-modal,.portal-card) {
  background: linear-gradient(145deg, #30202a, var(--surface)) !important;
  border-color: #8c552f !important; color: var(--text); box-shadow: 0 8px 30px #0004;
}
.hf-theme-muertos :is(.home-v2-panel,.menu-item,.catalog-result-card,.notice-public-card,.panel,.home-menu-product-card,.home-benefit-row > span) {
  border-width: 1px !important; border-style: solid !important;
}
.hf-theme-muertos :is(.menu-band,.menu-head,.menu-date-tools,.menu-calendar-hero,.menu-calendar-grid,.cart-line,.cart-total,.transfer-box,.transfer-grid,.transfer-clabe,.order-receipt,.product-modal-media,.product-modal-body,.product-sale-popover,.product-sale-popover.is-unavailable,.home-menu-products-panel,.home-menu-modal-body,.home-menu-modal-head,.home-menu-modal-meta) {
  background: linear-gradient(145deg,#30202a,var(--surface)) !important; border-color: #8c552f !important; color: var(--text) !important;
}
.hf-theme-muertos .menu-head { flex-wrap: wrap; }
.hf-theme-muertos .menu-date-card { aspect-ratio: auto; background: radial-gradient(ellipse at 50% 0,#f7941924,transparent 65%),#2b1b23 !important; min-height: 104px; padding: 18px 14px 46px; }
.hf-theme-muertos .menu-date-card.active { border-color: #ffc468 !important; box-shadow: 0 0 0 2px #f0a24155; }
.hf-theme-muertos .menu-date-card-image { display: none !important; }
.hf-theme-muertos .hf-menu-date-label { color: #ffe0a7 !important; display: block; font-family: Georgia,serif; font-size: 24px; line-height: 1.2; position: relative; }
.hf-theme-muertos .menu-date-card-date { background: #4b2a1a !important; border-color: #a96834 !important; color: #ffdfac !important; }
.hf-theme-muertos :is(.menu-date-loading,.product-sale-popover strong,.product-sale-popover p,.catalog-result-main em,.transfer-box-head strong,.transfer-grid strong,.transfer-note,.order-receipt strong) { color: #ffda9d !important; }
.hf-theme-muertos .menu-explainer-banner img[hidden] { display: none !important; }
.hf-theme-muertos :is(.home-hero,.menu-explainer-banner,.home-v2-registration,.home-community-module,.home-community-access-card,.home-v2-support,.home-upcoming-card,.registered-directory-note,.home-menu-modal-head,.home-menu-modal-meta,.menu-calendar-hero,.menu-calendar-monthbar,.menu-calendar-footer,.menu-calendar-day,.empty-state,.announcement-mini,.community-mini,.birthday-slide,.home-v2-birthday,.home-v2-stationery,.home-v2-community) {
  background-color: #261821 !important; border-color: #70462c !important; color: var(--text);
}
.hf-theme-muertos :is(.announcement-mini.static,.home-menu-cart-empty,.photo-placeholder) { background: #20151d !important; }
.hf-theme-muertos :is(input,select,textarea) { background: #1b1119 !important; border-color: #8e5a37 !important; color: #fff0d4 !important; }
.hf-theme-muertos :is(input,textarea)::placeholder { color: #bda691; opacity: 1; }
.hf-theme-muertos :is(.chip,.chip.blue,.chip.green,.chip.gold,.menu-price,.home-menu-product-price,.home-language-challenge .challenge-goal) { background: #4b2b1c !important; border-color: #ab703d !important; color: #ffdb91 !important; }
.hf-theme-muertos :is(.product-price,.menu-price,.home-menu-product-price,.money,.price) { color: #ffb64c !important; }
.hf-theme-muertos .home-benefit-row > span { padding: 18px 12px; }
.hf-theme-muertos .home-language-challenge { border-left: 4px solid #ff9b2f !important; }
.hf-theme-muertos :is(.home-v2-footer,.notice-public-card,.panel,.home-v2-panel) { border-radius: 16px; }
.hf-theme-muertos :is(.menu-photo,.product-photo,.home-hero-image,.menu-date-card-image) { border-color: #89552e; }
.hf-theme-muertos :is(.home-menu-modal-backdrop,.product-modal-backdrop,.menu-calendar-backdrop) { background: #08060cd6; }
.hf-theme-muertos .home-v2-footer-links a { color: #ffd38a; }
.hf-theme-muertos .brand-copy .eyebrow { color: #ffb24c; }
.hf-theme-muertos .brand-copy h1 { color: #fff0d1; }
.hf-theme-muertos .brand-subtitle { color: #ffd38a; }
.hf-theme-muertos main { isolation: isolate; position: relative; z-index: 2; }
.hf-theme-muertos [data-hf-flower-frame] { position: relative; }
.hf-marigold-frame { border: 1px solid #ffb64a30; border-radius: inherit; inset: 4px; pointer-events: none; position: absolute; z-index: 4; }
.hf-marigold-frame i {
  background: var(--hf-marigold-art) center/contain no-repeat;
  filter: drop-shadow(0 2px 3px #3b120b66);
  height: 43px; width: 43px; position: absolute;
}
/* Legacy cards style every descendant span/i. Ornament nodes must never inherit
   their white surfaces, padding, minimum height or icon tile backgrounds. */
body.hf-theme-muertos .hf-marigold-frame {
  align-items: normal !important; background: none !important; box-shadow: none !important; color: transparent !important;
  display: block !important; font-size: 0 !important; gap: 0 !important; height: auto !important; inset: 4px !important;
  border: 1px solid #ffb64a30 !important; border-radius: inherit !important;
  justify-content: normal !important; line-height: 0 !important; margin: 0 !important; max-width: none !important;
  min-height: 0 !important; min-width: 0 !important; padding: 0 !important; pointer-events: none !important;
  position: absolute !important; width: auto !important;
}
body.hf-theme-muertos .hf-marigold-frame > i {
  background-color: transparent !important; background-image: var(--hf-marigold-art) !important;
  background-position: center !important; background-repeat: no-repeat !important; background-size: contain !important;
  border: 0 !important; border-radius: 0 !important; box-shadow: none !important; color: transparent !important;
  display: block !important; flex: none !important; font-size: 0 !important; height: 34px !important;
  margin: 0 !important; min-height: 0 !important; min-width: 0 !important; padding: 0 !important;
  pointer-events: none !important; position: absolute !important; width: 34px !important;
}
body.hf-theme-muertos .home-v2-panel > .hf-marigold-frame > i { height: 43px !important; width: 43px !important; }
body.hf-theme-muertos :is(.menu-item,.home-menu-product-card,.catalog-result-card,.home-benefit-row > span) > .hf-marigold-frame > i { height: 28px !important; width: 28px !important; }
.hf-marigold-frame i:nth-child(1) { left: -14px; top: -13px; transform: rotate(-12deg); }
.hf-marigold-frame i:nth-child(2) { right: -14px; top: -13px; transform: rotate(21deg) scale(.82); }
.hf-marigold-frame i:nth-child(3) { right: -11px; bottom: -12px; transform: rotate(-28deg) scale(.69); }
.hf-marigold-frame i:nth-child(4) { left: -12px; bottom: -12px; transform: rotate(14deg) scale(.72); }
.hf-theme-animated .hf-marigold-frame i:nth-child(-n+2) { animation: hfFlowerBreath 6s ease-in-out infinite alternate; }
.hf-theme-animated .hf-marigold-frame i:nth-child(2) { animation-delay: -3s; }
.hf-theme-muertos :is(.menu-item,.home-menu-product-card,.catalog-result-card) .hf-marigold-frame i { height: 29px; width: 29px; }
.hf-theme-muertos .home-hero { background: #170e15 !important; border: 1px solid #9b5d2c; border-radius: 18px; box-shadow: 0 14px 65px #0008, 0 0 45px #f5841314; overflow: hidden; }
.hf-theme-video { aspect-ratio: 81/20; background: #160e13; display: block; height: auto; object-fit: contain; width: 100%; }
.hf-menu-hero-video { aspect-ratio: 8/3; }
.hf-theme-video[hidden],.hf-theme-muertos .home-hero-image[hidden] { display: none !important; }
/* The fallback image and the video's poster occupy the same banner slot.
   preload=metadata can leave both visible before loadeddata, especially paused. */
body.hf-theme-muertos .home-hero > #homeHeroImage[hidden],
body.hf-theme-muertos .home-hero > video.hf-theme-video[hidden],
body.hf-theme-muertos .menu-explainer-banner > video.hf-theme-video[hidden] {
  display: none !important;
}
@supports selector(:has(*)) {
  body.hf-theme-muertos .home-hero:has(> video.hf-theme-video:not([hidden])) > #homeHeroImage,
  body.hf-theme-muertos .menu-explainer-banner:has(> video.hf-menu-hero-video:not([hidden])) > img {
    display: none !important;
  }
}
.hf-theme-hero-copy { background: radial-gradient(ellipse at 50% 0, #e58a2721, transparent 70%), #21121c; padding: 22px 24px 26px; text-align: center; }
.hf-theme-kicker { color: #ffc879 !important; display: block; font-size: 10px; font-weight: 800; letter-spacing: .19em; line-height: 1.5; }
.hf-theme-hero-copy h2 { color: #ffe3b1; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(24px, 3.4vw, 42px); font-weight: 500; line-height: 1.15; margin: 8px 0 10px; }
.hf-theme-hero-copy p { font-size: 13px; line-height: 1.6; margin: 0 auto; max-width: 580px; }
.hf-menu-tradition { border-bottom: 1px solid #c5843f5c; border-top: 1px solid #c5843f5c; display: grid; flex: 1 0 100%; gap: 6px; margin: 0 0 22px; padding: 24px 14px; position: relative; text-align: center; width: 100%; }
.hf-menu-tradition::before,.hf-menu-tradition::after { background: var(--hf-marigold-art) center/contain no-repeat; content: ''; height: 50px; position: absolute; top: 26px; width: 50px; }
.hf-menu-tradition::before { left: -10px; }.hf-menu-tradition::after { right: -10px; transform: rotate(40deg); }
.hf-menu-tradition strong { color: #ffe0a4; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(22px, 3vw, 32px); font-weight: 500; }
.hf-menu-tradition > span:last-child { color: #d5bba0; font-size: 12px; }
.hf-theme-atmosphere { inset: 0; overflow: hidden; pointer-events: none; position: fixed; z-index: 3; }
.hf-petal,.hf-ember { left: var(--petal-x); opacity: .45; position: absolute; top: -5vh; will-change: transform; }
.hf-petal { background: linear-gradient(40deg,#d35704,#ffa422 60%,#ffd66c); border-radius: 12% 85% 18% 80%; height: calc(var(--petal-size) * 1.5); transform: rotate(22deg); width: var(--petal-size); }
.hf-ember { background: #ffc36a; border-radius: 50%; box-shadow: 0 0 8px #ffae358a; height: 3px; width: 3px; }
.hf-theme-animated .hf-petal,.hf-theme-animated .hf-ember { animation: hfPetalFall var(--petal-duration) linear infinite; animation-delay: var(--petal-delay); }
.hf-theme-candles { align-items: flex-end; bottom: -7px; display: flex; gap: clamp(24px, 10vw, 180px); height: 60px; justify-content: space-around; left: 0; opacity: .36; padding: 0 6%; position: absolute; right: 0; }
.hf-theme-candles i { background: linear-gradient(90deg, #8c4327, #d7a56c, #7b3f28); border-radius: 4px 4px 0 0; box-shadow: 0 -8px 40px #ff951c22; height: 30px; position: relative; width: 13px; }
.hf-theme-candles i:nth-child(2n) { height: 46px; width: 17px; }
.hf-theme-candles i::before { background: radial-gradient(ellipse at 50% 75%, #fff7c8 10%, #ffc04c 40%, #ff791800 73%); border-radius: 60% 40% 48% 52%; bottom: 100%; box-shadow: 0 0 20px #ff9b193a; content: ''; height: 26px; left: -3px; transform-origin: 50% 100%; width: 20px; }
.hf-theme-animated .hf-theme-candles i::before { animation: hfCandleGlow 2.7s ease-in-out infinite alternate; }
.hf-theme-animated .hf-theme-candles i:nth-child(2n)::before { animation-delay: -1.4s; }
.hf-theme-controls { align-items: center; background: #1e131df2; border: 1px solid #ba783e; border-radius: 40px; bottom: 14px; box-shadow: 0 7px 35px #0008; display: flex; flex-wrap: wrap; gap: 5px; left: 50%; max-width: calc(100% - 24px); padding: 7px 9px 7px 16px; position: fixed; transform: translateX(-50%); width: max-content; z-index: 9500; }
.hf-theme-controls-label { color: #f0bb78; font-size: 8px; font-weight: 850; letter-spacing: .11em; padding-right: 8px; }
.hf-theme-controls button { background: #39241e; border: 1px solid #8c5a35; border-radius: 30px; color: #ffe1af; cursor: pointer; font: 700 11px/1.2 system-ui,sans-serif; min-height: 34px; padding: 8px 12px; white-space: nowrap; }
.hf-theme-controls button[aria-pressed="true"] { background: #fb9b35; border-color: #ffcc75; color: #261706; }
.hf-theme-controls button:focus-visible { outline: 3px solid #ffd47a; outline-offset: 2px; }
.hf-theme-arrival { align-items: center; animation: hfArrivalFade 2.5s ease-in-out both; background: radial-gradient(ellipse, #20121ceb, #100a0d20 74%); display: flex; inset: 0; justify-content: center; overflow: hidden; pointer-events: none; position: fixed; z-index: 9000; }
.hf-arrival-ring { animation: hfArrivalRing 2.4s cubic-bezier(.16,.8,.3,1) both; background: var(--hf-marigold-art) center/contain no-repeat; border: 1px solid #ffba4e40; border-radius: 50%; filter: drop-shadow(0 0 18px #ff83194d); height: min(65vw, 360px); position: absolute; width: min(65vw, 360px); }
.hf-arrival-spark { animation: hfArrivalSpark 2.4s ease-out both; border: 1px solid #ffb64969; border-radius: 50%; height: min(86vw, 480px); position: absolute; width: min(86vw, 480px); }
.hf-arrival-copy { color: #ffdda9; font-size: clamp(12px,2.5vw,18px); letter-spacing: .08em; line-height: 1.6; position: relative; text-align: center; text-shadow: 0 2px 16px #160806; }
.hf-arrival-copy strong { color: #fff2d8; font-family: Georgia,serif; font-size: clamp(34px,7vw,66px); font-weight: 500; letter-spacing: -.03em; }
.hf-theme-reveal { opacity: 1; transform: none; }
.hf-theme-animated .hf-theme-reveal:not(.hf-theme-in-view) { opacity: .1; transform: translateY(26px) scale(.98); }
.hf-theme-animated .hf-theme-reveal { transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.hf-effects-paused :is(.hf-petal,.hf-ember,.hf-marigold-frame i,.hf-theme-candles i::before,.hf-theme-arrival) { animation-play-state: paused !important; }
.hf-effects-paused .hf-theme-atmosphere { opacity: .3; }
.hf-effects-paused .hf-theme-arrival { display: none; }
.hf-effects-paused .hf-notice-new::before,.hf-effects-paused .hf-notice-new::after { animation-play-state: paused !important; }
.hf-voting-disabled #homeWeeklyVoting { display: none !important; }
.hf-voting-disabled #cvVotingKiosk { display: none !important; }
[data-hf-voting-disabled] > :not(.hf-voting-unavailable) { display: none !important; }
.hf-voting-unavailable { background: #f8fbf2; border: 1px solid #d1dfce; border-radius: 20px; color: #233c2b; margin: 5vh auto; max-width: 580px; padding: 38px 24px; text-align: center; }
.hf-voting-unavailable > span { color: #b9782c; font-size: 44px; }
.hf-voting-unavailable h1 { font-size: 28px; line-height: 1.2; }
.hf-voting-unavailable p { font-size: 14px; line-height: 1.7; }
.hf-voting-unavailable a { border: 1px solid #b6cdb5; border-radius: 30px; color: #1c6341; display: inline-block; font-size: 13px; font-weight: 750; margin: 8px 3px 0; padding: 10px 16px; }
.hf-theme-muertos .hf-voting-unavailable { background: var(--surface); border-color: #b9782c; color: var(--text); }
.hf-theme-muertos .hf-voting-unavailable a { border-color: #aa703a; color: #ffd38a; }
.hf-notice-new { isolation: isolate; overflow: hidden; position: relative; }
.hf-notice-new::after { animation: hfNoticeSweep 6s ease-in-out infinite; background: linear-gradient(110deg,transparent 20%,#ffffff00 39%,#ffffff85 50%,#ffffff00 62%,transparent 80%); content: ''; inset: -50%; pointer-events: none; position: absolute; transform: translateX(-100%); z-index: 2; }
.hf-notice-new::before { animation: hfNoticeBorder 3s ease-in-out infinite; border: 2px solid #ff885e; border-radius: inherit; box-shadow: inset 0 0 20px #ff8b4a18,0 0 22px #ff8b4a21; content: ''; inset: 0; pointer-events: none; position: absolute; z-index: 3; }
.hf-notice-badge { align-items: center; background: #c13917; border: 1px solid #fff3; border-radius: 0 0 12px 12px; box-shadow: 0 4px 16px #9d251a30; color: #fff; display: inline-flex; font-size: 9px; font-weight: 900; letter-spacing: .09em; padding: 7px 12px; position: absolute; right: 20px; top: 0; z-index: 6; }
.hf-notice-new .home-v2-card-link { background: #c74020 !important; border-color: #c74020 !important; color: #fff !important; }
.hf-announcement-unread { border-left: 3px solid #ef7440 !important; }
.hf-announcement-unread strong::before { color: #df5b27; content: '● '; font-size: 9px; }
.hf-theme-muertos .hf-notice-new::after { background: linear-gradient(110deg,transparent 25%,#ffb43800 39%,#ffba3c40 50%,#ffb43800 62%,transparent 80%); }
.hf-theme-muertos .hf-notice-new::before { border-color: #ffb239; box-shadow: inset 0 0 25px #ff98141a,0 0 24px #ff8a152e; }
.hf-theme-muertos .hf-notice-badge { background: #ffb342; color: #271304; }
.hf-theme-muertos .hf-notice-new .home-v2-card-link { background: #ffab38 !important; border-color: #ffba5a !important; color: #271304 !important; }
[data-theme-preview="true"] .hf-theme-controls { bottom: 8px; }
@keyframes hfPetalFall { 0% { opacity: 0; transform: translate3d(0,-8vh,0) rotate(0); } 8% { opacity: .54; } 88% { opacity: .48; } 100% { opacity: 0; transform: translate3d(var(--petal-drift),112vh,0) rotate(var(--petal-turn)); } }
@keyframes hfFlowerBreath { from { filter: drop-shadow(0 2px 3px #3b120b66); } to { filter: drop-shadow(0 1px 7px #ff9b2a66); } }
@keyframes hfCandleGlow { from { transform: rotate(-5deg) scale(.9,1); opacity: .8; } to { transform: rotate(6deg) scale(1.04,1.1); opacity: 1; } }
@keyframes hfArrivalFade { 0%,50% { opacity: 1; } 100% { opacity: 0; } }
@keyframes hfArrivalRing { from { opacity: 0; transform: scale(.55) rotate(-15deg); } 28% { opacity: .6; } to { opacity: .05; transform: scale(2.1) rotate(34deg); } }
@keyframes hfArrivalSpark { from { opacity: .1; transform: scale(.4); } 35% { opacity: .75; } to { opacity: 0; transform: scale(1.75); } }
@keyframes hfNoticeSweep { 0%,45% { transform: translateX(-100%); } 77%,100% { transform: translateX(100%); } }
@keyframes hfNoticeBorder { 0%,100% { opacity: .45; } 50% { opacity: 1; } }
@media(max-width:640px) {
  .hf-theme-controls { border-radius: 18px; gap: 5px; justify-content: center; max-width: calc(100% - 16px); padding: 6px 8px; }
  .hf-theme-controls-label { display: none; }
  .hf-theme-controls button { font-size: 10px; min-height: 34px; padding: 8px 10px; }
  .hf-theme-hero-copy { padding: 18px 18px 22px; }
  .hf-theme-hero-copy p { font-size: 11px; }
  .hf-marigold-frame i { height: 33px; width: 33px; }
  .hf-menu-tradition { padding: 22px 22px; }
  .hf-menu-tradition::before,.hf-menu-tradition::after { height: 32px; top: 28px; width: 32px; }
  .hf-menu-tradition > span:last-child { font-size: 11px; }
  .hf-notice-badge { font-size: 8px; right: 12px; }
  .hf-theme-muertos .public-topbar { padding-bottom: 10px; }
}
@media(prefers-reduced-motion:reduce) {
  .hf-theme-atmosphere,.hf-theme-arrival { display: none !important; }
  .hf-marigold-frame i,.hf-notice-new::before,.hf-notice-new::after { animation: none !important; }
  .hf-theme-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}
@media print {
  .hf-theme-atmosphere,.hf-theme-arrival,.hf-theme-controls,.hf-marigold-frame { display: none !important; }
  body.hf-theme-muertos { background: white !important; color: black !important; color-scheme: light; padding-bottom: 0; }
}

/* Día de Muertos: candlelit surfaces and polished controls.
   Append after school-theme-experience.css. No image pixels or layout change. */
@property --hf-magic-light {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 0%;
}
@property --hf-magic-glint {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 170%;
}
body.hf-theme-muertos {
  --hf-magic-gold: #ffd889;
  --hf-magic-cream: #fff0d8;
  --hf-magic-copy: #e5cbb0;
  --hf-magic-line: #ac743e;
}

/* Registration otherwise shrink-wraps its contents despite the shared maximum.
   Give both sections the same explicit width as the Home hero/product grid. */
body.hf-theme-muertos :is(.home-language-challenge,.home-registration-roles) {
  box-sizing: border-box;
  max-width: 1220px;
  min-width: 0;
  width: calc(100% - 28px);
}
body.hf-theme-muertos .home-language-challenge {
  margin: 16px auto !important;
}

/* Quiet pinpoints and two pools of candlelight, underneath the content. */
body.hf-theme-muertos :is(
  .home-registration-roles,
  .home-v2-panel,
  .home-language-challenge,
  .home-v2-footer,
  .feedback-invitation,
  .home-menu-products-panel,
  .home-menu-cart-panel,
  .panel
) {
  background:
    radial-gradient(ellipse at 8% 0%, #e184242b, transparent 58%),
    radial-gradient(ellipse at 95% 100%, #a74d1729, transparent 62%),
    radial-gradient(circle at 1px 1px, #f2c07210 1px, transparent 1.5px),
    linear-gradient(145deg, #33212a, #1e141d 80%) !important;
  background-size: 135% 150%, 145% 155%, 28px 28px, 100% 100% !important;
  background-position:
    var(--hf-magic-light) var(--hf-magic-light),
    calc(100% - var(--hf-magic-light)) calc(100% - var(--hf-magic-light)),
    0 0, 0 0 !important;
  border-color: var(--hf-magic-line) !important;
  box-shadow:
    inset 0 1px 0 #ffe0a71c,
    inset 0 -1px 0 #f39a2f0d,
    0 12px 32px #08050973,
    0 0 24px #db71150a !important;
  color: var(--hf-magic-cream) !important;
}

/* These real Home selectors previously kept their white/green defaults. */
body.hf-theme-muertos .home-registration-grid > a,
body.hf-theme-muertos .home-community-access-card,
body.hf-theme-muertos .home-menu-product-card,
body.hf-theme-muertos .home-order-panel,
body.hf-theme-muertos .home-metrics > div {
  background:
    radial-gradient(ellipse at 50% 0%, #cd74251c, transparent 75%),
    linear-gradient(160deg, #34231f, #21151d) !important;
  border-color: #96653c !important;
  color: var(--hf-magic-cream) !important;
  box-shadow: inset 0 1px 0 #ffdc9b19, 0 6px 18px #0805094d !important;
}
body.hf-theme-muertos .home-registration-heading :is(h2,.eyebrow),
body.hf-theme-muertos .home-registration-grid > a > strong,
body.hf-theme-muertos .home-community-access-card .community-access-label,
body.hf-theme-muertos .home-menu-category > h3,
body.hf-theme-muertos .home-metrics > div > strong {
  color: var(--hf-magic-gold) !important;
}
body.hf-theme-muertos .home-registration-heading > p:last-child,
body.hf-theme-muertos .home-registration-grid > a > span,
body.hf-theme-muertos .home-metrics > div > span,
body.hf-theme-muertos .mini-banner-head > div > span,
body.hf-theme-muertos .home-v2-signature {
  color: var(--hf-magic-copy) !important;
}
body.hf-theme-muertos .home-menu-category + .home-menu-category,
body.hf-theme-muertos .stationery-carousel-head {
  border-color: #bb833e80 !important;
}
body.hf-theme-muertos .home-community-access-card .community-popover,
body.hf-theme-muertos .home-community-access-card .community-popover::after {
  background: #302018 !important;
  border-color: #a7753f !important;
  color: #ffebc9 !important;
}

/* The image assets remain intact; only the surfaces around them become dark. */
body.hf-theme-muertos .home-v2-menu-card :is(
  .menu-banner-head,
  .menu-card-header-link,
  .menu-image-strip,
  .menu-image-slide,
  .menu-image-empty
) {
  background:
    radial-gradient(ellipse at 50% 0%, #de86201f, transparent 75%),
    #1d141b !important;
  border-color: #9a683a !important;
  color: var(--hf-magic-copy) !important;
}
body.hf-theme-muertos .home-v2-menu-card .menu-banner-heading :is(strong,small) {
  color: #ffe1a5 !important;
}
body.hf-theme-muertos .home-v2-menu-card .menu-banner-heading > i {
  background: #57331c !important;
  color: #ffd176 !important;
  box-shadow: inset 0 1px 0 #ffe6b326, 0 0 14px #eb84221c;
}
body.hf-theme-muertos .home-v2-menu-card .menu-carousel-dot {
  background: #684829 !important;
  border-color: #d6a869 !important;
}
body.hf-theme-muertos .home-v2-menu-card .menu-carousel-dot.active {
  background: #ffd375 !important;
}

/* Brass controls: the glint is a background layer, never an overlay on text. */
body.hf-theme-muertos :is(
  .primary-btn,
  .nav-pill.active,
  .home-main-nav a.active,
  .birthday-range-btn.active
) {
  background:
    linear-gradient(110deg, transparent 37%, #fff5c766 46%, #fff8da99 49%, transparent 58%),
    linear-gradient(115deg, #ed8a22, #ffca68 53%, #f3a132) !important;
  background-size: 240% 100%, 100% 100% !important;
  background-position: var(--hf-magic-glint) 0, 0 0 !important;
  border-color: #ffda8d !important;
  color: #301a08 !important;
  box-shadow: inset 0 1px 0 #fff4d078, inset 0 -1px 0 #9c4f233d, 0 4px 15px #e1842526 !important;
  text-shadow: none;
}
body.hf-theme-muertos :is(
  .ghost-btn,
  .secondary-btn,
  .icon-btn,
  .nav-pill:not(.active),
  .home-main-nav a:not(.active),
  .public-menu-toggle,
  .birthday-range-btn:not(.active),
  .stationery-carousel-actions button
) {
  background:
    linear-gradient(110deg, transparent 36%, #ffd78814 49%, transparent 62%),
    linear-gradient(145deg, #50311e, #2b1b20) !important;
  background-size: 240% 100%, 100% 100% !important;
  background-position: var(--hf-magic-glint) 0, 0 0 !important;
  border-color: #bb8449 !important;
  color: #ffe2ab !important;
  box-shadow: inset 0 1px 0 #ffe0a71a, 0 3px 12px #06030733 !important;
}
body.hf-theme-muertos :is(
  .primary-btn,.secondary-btn,.ghost-btn,.icon-btn,.nav-pill,
  .home-main-nav a,.public-menu-toggle,.birthday-range-btn,
  .stationery-carousel-actions button
) {
  filter: none !important;
  transform: none !important;
  transition: border-color .2s ease, box-shadow .2s ease, background-position .7s ease !important;
}
body.hf-theme-muertos :is(
  .primary-btn,.secondary-btn,.ghost-btn,.icon-btn,.nav-pill,
  .home-main-nav a,.public-menu-toggle,.birthday-range-btn,
  .stationery-carousel-actions button
) > :is(strong,span,i) {
  color: inherit !important;
}
body.hf-theme-muertos :is(
  .primary-btn,.secondary-btn,.ghost-btn,.icon-btn,.nav-pill,
  .home-main-nav a,.public-menu-toggle,.birthday-range-btn,
  .stationery-carousel-actions button,.home-registration-grid > a,
  .home-community-access-card
):focus-visible {
  outline: 3px solid #ffe6af !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 6px #8c481f70, 0 0 24px #ffa52b38 !important;
}
body.hf-theme-muertos :is(
  .primary-btn,.secondary-btn,.ghost-btn,.icon-btn,.nav-pill,
  .home-main-nav a,.public-menu-toggle,.birthday-range-btn,
  .stationery-carousel-actions button
):active:not(:disabled) {
  box-shadow: inset 0 2px 6px #30140780, 0 0 14px #f4a03f24 !important;
}
body.hf-theme-muertos .home-registration-grid > a:hover,
body.hf-theme-muertos .home-community-access-card:hover,
body.hf-theme-muertos .home-community-access-card:focus-visible {
  transform: none !important;
}
@media (hover: hover) and (pointer: fine) {
  body.hf-theme-muertos :is(
    .primary-btn,.secondary-btn,.ghost-btn,.icon-btn,.nav-pill,
    .home-main-nav a,.public-menu-toggle,.birthday-range-btn,
    .stationery-carousel-actions button,.home-registration-grid > a,
    .home-community-access-card
  ):hover:not(:disabled) {
    border-color: #ffe1a1 !important;
    box-shadow: inset 0 1px 0 #ffedc04d, 0 0 21px #ef9b2929, 0 6px 18px #09050b4d !important;
  }
}

/* Slow atmospheric light on large sections; one quiet glint every ten seconds. */
body.hf-theme-muertos.hf-theme-animated :is(
  .home-registration-roles,.home-v2-panel,.home-language-challenge,.home-v2-footer
) {
  animation: hfMagicCandlelight 22s ease-in-out infinite alternate;
}
body.hf-theme-muertos.hf-theme-animated :is(
  .primary-btn,.home-main-nav a.active,.nav-pill.active
):not(:disabled) {
  animation: hfMagicBrassGlint 10s ease-in-out infinite;
}
body.hf-theme-muertos.hf-theme-animated .home-v2-panel:nth-child(2n) {
  animation-delay: -11s;
}
body.hf-theme-muertos.hf-theme-animated .home-registration-roles {
  animation-delay: -7s;
}
body.hf-theme-muertos.hf-theme-animated .home-v2-card-link {
  animation-delay: -4s;
}
@keyframes hfMagicCandlelight {
  from { --hf-magic-light: 0%; }
  to { --hf-magic-light: 80%; }
}
@keyframes hfMagicBrassGlint {
  0%, 72% { --hf-magic-glint: 170%; }
  88%, 100% { --hf-magic-glint: -170%; }
}
body.hf-theme-muertos.hf-effects-paused :is(
  .home-registration-roles,.home-v2-panel,.home-language-challenge,.home-v2-footer,
  .primary-btn,.secondary-btn,.ghost-btn,.icon-btn,.nav-pill,
  .home-main-nav a,.public-menu-toggle,.birthday-range-btn,
  .stationery-carousel-actions button
) {
  animation: none !important;
  transition: none !important;
}
@media (prefers-reduced-motion: reduce) {
  body.hf-theme-muertos :is(
    .home-registration-roles,.home-v2-panel,.home-language-challenge,.home-v2-footer,
    .primary-btn,.secondary-btn,.ghost-btn,.icon-btn,.nav-pill,
    .home-main-nav a,.public-menu-toggle,.birthday-range-btn,
    .stationery-carousel-actions button,.home-registration-grid > a,
    .home-community-access-card
  ) {
    animation: none !important;
    transition: none !important;
  }
}

/* Keep the yellow announcement heading legible within the dark theme. */
body.hf-theme-muertos .upcoming-carousel-head > strong { color: #3b210d !important; }
body.hf-theme-muertos .upcoming-carousel-head > span { color: #5b3715 !important; }

/* Playback feedback stays readable without covering the controls. */
body.hf-theme-muertos :is(.hf-theme-audio-status,.hf-theme-menu-sound-status) {
  flex-basis: 100%; color: #ffe3b4; font: 500 11px/1.4 system-ui,sans-serif;
  max-width: 100%; text-align: center; padding: 2px 5px; overflow-wrap: anywhere;
}
body.hf-theme-muertos .hf-theme-controls [hidden] { display: none !important; }

/* Off-screen carousel items must not widen the Home viewport. */
body.hf-theme-muertos .home-strip-card { position: relative; }

body.hf-theme-muertos .home-feedback-invitation {
  box-sizing: border-box !important; width: calc(100% - 28px) !important; max-width: 1220px !important;
  margin: 22px auto !important; min-width: 0;
}


/* One compact sound toggle shares a steady layout with the effects toggle. */
body.hf-theme-muertos .hf-theme-controls {
  display: grid; grid-template-columns: auto auto auto; align-items: center;
  gap: 7px; padding: 7px 10px; border-radius: 28px; background: #21151df5;
  max-width: calc(100% - 20px); box-shadow: 0 5px 24px #0008;
}
body.hf-theme-muertos .hf-theme-controls button {
  box-sizing: border-box; width: 136px; min-width: 112px; min-height: 36px;
  padding: 8px 12px; transition: background-color .18s ease, color .18s ease;
}
body.hf-theme-muertos .hf-theme-controls .hf-theme-audio-status {
  grid-column: 1 / -1; justify-self: center; max-width: 320px;
  padding: 0 3px; font-size: 10px; line-height: 1.4;
}
@media(max-width:640px) {
  body.hf-theme-muertos .hf-theme-controls { grid-template-columns: auto auto; gap: 7px; padding: 6px 8px; }
  body.hf-theme-muertos .hf-theme-controls button { width: 124px; min-width: 112px; font-size: 10px; }
}

/* Only the takeaway banner: never leave a broken image occupying a large card. */
#takeawayFoodBanner #takeawayFoodImage[hidden],
#takeawayFoodBanner .takeaway-image-fallback[hidden] {
  display: none !important;
}
#takeawayFoodBanner.takeaway-image-unavailable {
  min-height: 0 !important;
}
#takeawayFoodBanner .takeaway-image-fallback {
  align-content: center;
  background: linear-gradient(130deg, #fff5d8, #fffaf0);
  border: 1px solid #cba662;
  border-radius: 12px;
  color: #3e290f;
  display: grid;
  gap: 5px;
  min-height: 126px;
  padding: 20px;
  text-align: center;
}
#takeawayFoodBanner .takeaway-image-fallback > strong {
  color: #3e290f;
  font-size: 21px;
  line-height: 1.2;
}
#takeawayFoodBanner .takeaway-image-fallback > span {
  color: #65451b;
  font-size: 14px;
}
#takeawayFoodBanner .takeaway-image-fallback .takeaway-image-fallback-cta {
  color: #704405;
  font-weight: 850;
}
body.hf-theme-muertos #takeawayFoodBanner .takeaway-image-fallback {
  background: radial-gradient(ellipse at 50% 0, #a95a2429, transparent 75%), #281922;
  border-color: #ba8241;
  color: #ffe6bc;
}
body.hf-theme-muertos #takeawayFoodBanner .takeaway-image-fallback > strong,
body.hf-theme-muertos #takeawayFoodBanner .takeaway-image-fallback .takeaway-image-fallback-cta {
  color: #ffda95;
}
body.hf-theme-muertos #takeawayFoodBanner .takeaway-image-fallback > span {
  color: #e6c8a9;
}
