/* Pick My Meal Today V8 — experience layer */
:root{--v8-plum:#4b294a;--v8-plum-2:#744667;--v8-apricot:#f39a78;--v8-gold:#f6c65b;--v8-cream:#fffaf6;--v8-ink:#2f2430}
html{scroll-behavior:smooth}body.public-body{overflow-x:hidden;background:
radial-gradient(circle at 8% 12%,rgba(243,154,120,.12),transparent 27rem),
radial-gradient(circle at 92% 28%,rgba(116,70,103,.10),transparent 31rem),
linear-gradient(180deg,#fffaf7 0,#fff 45%,#fff9f5 100%)}
body.public-body:before,body.public-body:after{content:"";position:fixed;z-index:-1;border-radius:999px;filter:blur(2px);pointer-events:none;opacity:.55;animation:v8-float 16s ease-in-out infinite}
body.public-body:before{width:210px;height:210px;left:-80px;top:32vh;background:radial-gradient(circle,rgba(246,198,91,.16),transparent 68%)}
body.public-body:after{width:280px;height:280px;right:-130px;top:68vh;background:radial-gradient(circle,rgba(243,154,120,.15),transparent 68%);animation-delay:-7s}
@keyframes v8-float{50%{transform:translate3d(0,-24px,0) scale(1.06)}}

/* Page entrance and scroll reveal */
body.public-body main{animation:v8-page-in .52s cubic-bezier(.2,.75,.25,1) both}
@keyframes v8-page-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.v8-reveal{opacity:0;transform:translateY(22px) scale(.985);transition:opacity .58s ease,transform .64s cubic-bezier(.2,.75,.25,1)}
.v8-reveal.is-visible{opacity:1;transform:none}.v8-reveal[data-v8-delay="1"]{transition-delay:.06s}.v8-reveal[data-v8-delay="2"]{transition-delay:.12s}.v8-reveal[data-v8-delay="3"]{transition-delay:.18s}.v8-reveal[data-v8-delay="4"]{transition-delay:.24s}

/* More tactile cards and controls */
.public-body .card,.public-body .cuisine-card,.public-body .smart-feature-card{will-change:transform;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.public-body .card:hover,.public-body .cuisine-card:hover,.public-body .smart-feature-card:hover{transform:translateY(-6px);border-color:rgba(116,70,103,.2)}
.public-body .button,.public-body button,.public-body .section-action{position:relative;overflow:hidden;isolation:isolate}
.v8-ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.42);transform:translate(-50%,-50%) scale(0);animation:v8-ripple .55s ease-out;pointer-events:none;z-index:-1}@keyframes v8-ripple{to{transform:translate(-50%,-50%) scale(5);opacity:0}}
.site-header{transition:box-shadow .25s ease,background .25s ease,transform .25s ease}.site-header.is-scrolled{background:rgba(255,250,247,.92);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 12px 35px rgba(61,35,57,.09)}
.brand-mark{transition:transform .35s cubic-bezier(.2,.8,.2,1)}.brand:hover .brand-mark{transform:rotate(-5deg) scale(1.06)}

/* Ingredient checklist */
.ingredient-row label{cursor:pointer}.ingredient-row input[type="checkbox"]{accent-color:var(--v8-plum-2)}
.ingredient-row.is-checked{background:linear-gradient(90deg,rgba(105,176,123,.12),transparent);border-radius:12px}.ingredient-row.is-checked [data-ingredient-text]{text-decoration:line-through;color:#7c7078;transition:color .2s ease}.ingredient-row.is-checked:after{content:"✓";margin-inline-start:auto;color:#3c8a54;font-weight:900;animation:v8-check .35s cubic-bezier(.2,.9,.3,1.3)}
@keyframes v8-check{from{transform:scale(.2) rotate(-18deg);opacity:0}to{transform:none;opacity:1}}

/* Feedback toasts */
.v8-toast-region{position:fixed;right:20px;top:88px;z-index:99999;display:grid;gap:10px;max-width:min(360px,calc(100vw - 30px));pointer-events:none}
.v8-toast{display:flex;align-items:center;gap:12px;padding:13px 16px;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:rgba(55,31,54,.94);color:#fff;box-shadow:0 18px 50px rgba(47,27,44,.25);backdrop-filter:blur(14px);animation:v8-toast-in .38s cubic-bezier(.2,.85,.25,1) both}.v8-toast.is-leaving{animation:v8-toast-out .28s ease forwards}.v8-toast-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:rgba(255,255,255,.12);font-size:1.1rem}.v8-toast strong{font-size:.9rem}.v8-toast small{display:block;color:#e7dce5;margin-top:2px}
@keyframes v8-toast-in{from{opacity:0;transform:translateX(25px) scale(.96)}to{opacity:1;transform:none}}@keyframes v8-toast-out{to{opacity:0;transform:translateX(20px)}}

/* Full fridge-search experience */
.fridge-search-overlay{background:radial-gradient(circle at 50% 36%,rgba(120,71,108,.34),rgba(32,17,34,.88) 55%,rgba(22,12,23,.96));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.fridge-search-overlay-card{width:min(680px,calc(100% - 30px));padding:clamp(28px,6vw,58px);border:1px solid rgba(255,255,255,.18);border-radius:34px;background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(255,246,241,.95));box-shadow:0 40px 110px rgba(20,10,21,.42);text-align:center;overflow:hidden;position:relative}
.fridge-search-overlay-card:before{content:"";position:absolute;inset:-50%;background:conic-gradient(from 90deg,transparent,rgba(243,154,120,.12),transparent 30%);animation:v8-overlay-glow 5s linear infinite;pointer-events:none}@keyframes v8-overlay-glow{to{transform:rotate(360deg)}}
.fridge-search-overlay-card>*{position:relative}.fridge-search-orbit{width:112px;height:112px;margin:0 auto 20px}.fridge-search-orbit-ring{inset:0;border:2px solid rgba(116,70,103,.12);border-top-color:var(--v8-apricot);border-right-color:var(--v8-plum-2);animation:pmm-spin 1.25s linear infinite}.fridge-search-orbit-ring:after{content:"";position:absolute;width:13px;height:13px;border-radius:50%;background:var(--v8-gold);top:7px;left:17px;box-shadow:0 0 0 7px rgba(246,198,91,.13)}.fridge-search-orbit-icon{font-size:2.4rem;animation:v8-chef-pulse 1.4s ease-in-out infinite}@keyframes v8-chef-pulse{50%{transform:scale(1.1) rotate(-4deg)}}
.fridge-search-overlay h2{font-size:clamp(1.7rem,5vw,2.5rem);margin:.45rem 0}.fridge-search-overlay p{max-width:50ch;margin:.4rem auto 1rem;color:#695765;line-height:1.65}.fridge-search-stage{min-height:1.5em;font-weight:850;color:var(--v8-plum);transition:opacity .22s ease,transform .22s ease}.fridge-search-stage.is-changing{opacity:0;transform:translateY(5px)}
.fridge-search-ingredients{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;min-height:34px;margin:18px auto 8px}.fridge-search-chip{padding:7px 11px;border-radius:999px;background:#f4e8f0;color:#5d3755;font-size:.8rem;font-weight:800;animation:v8-chip-in .38s cubic-bezier(.2,.8,.2,1) both}@keyframes v8-chip-in{from{opacity:0;transform:translateY(8px) scale(.9)}}
.fridge-search-progress{height:8px;background:rgba(116,70,103,.10);border-radius:999px;overflow:hidden;margin-top:22px}.fridge-search-progress span{display:block;width:36%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--v8-plum-2),var(--v8-apricot),var(--v8-gold));animation:v8-progress 1.5s ease-in-out infinite}@keyframes v8-progress{0%{transform:translateX(-110%)}100%{transform:translateX(310%)}}
.fridge-search-facts{margin-top:16px;color:#8a7684;font-size:.76rem}.fridge-search-dots{margin-top:11px}

/* Substitution assistant as a mobile bottom-sheet experience */
.substitute-dialog{background:rgba(29,15,30,.66);backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px)}.substitute-dialog-card{animation:v8-sheet-in .42s cubic-bezier(.2,.78,.22,1) both}@keyframes v8-sheet-in{from{opacity:0;transform:translateY(26px) scale(.98)}to{opacity:1;transform:none}}
.substitution-card{transition:transform .22s ease,box-shadow .22s ease}.substitution-card:hover{transform:translateY(-2px);box-shadow:0 15px 35px rgba(63,27,55,.10)}

/* Surprise page / navigation transition */
.v8-page-exit:after{content:"";position:fixed;inset:0;z-index:99998;background:linear-gradient(135deg,#3d223e,#754667);animation:v8-exit .38s ease forwards;pointer-events:none}@keyframes v8-exit{from{opacity:0}to{opacity:1}}

@media(max-width:700px){.v8-toast-region{top:auto;bottom:88px;left:15px;right:15px;max-width:none}.v8-toast{border-radius:16px}.fridge-search-overlay-card{border-radius:28px;padding:30px 20px}.fridge-search-orbit{width:92px;height:92px}.fridge-search-overlay h2{font-size:1.8rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.v8-reveal{opacity:1;transform:none}}
