/* Moroccan visual identity; original layout and recipe calculations retained. */
:root{color-scheme:light}
body{background:#fff!important}
#mp-app{--mp-bg:#fff;--mp-fg:#293f37;--mp-muted:#70766f;--mp-line:#e7ebe6;--mp-active:#366453;border:1px solid #edf0eb;box-shadow:0 18px 60px #253e2a06;border-radius:26px}
#mp-app:before{content:'';display:block;height:3px;background:#376452;opacity:.85}
#mp-app .mp-logo{color:#294f40;letter-spacing:-1.3px}
#mp-app .mp-logo:after{color:#b56a44}
#mp-app .mp-header{gap:12px}
#mp-app .mp-mobile-nav,#mp-app .mp-detail-nav{background:#eae2d3;border:1px solid #e1d6c2;border-radius:14px;padding:3px}
#mp-app .mp-mobile-nav button[aria-pressed=true],#mp-app .mp-detail-nav button[aria-pressed=true]{background:#fffaf0;color:#294f40;box-shadow:0 2px 8px #70553812;border-radius:10px}
#mp-app .mp-dish{border:1px solid #e5d9c4;border-radius:18px;background:#fffaf075;padding:9px 5px;transition:transform 180ms ease,background 180ms ease}
#mp-app .mp-dish:hover{background:#fffaf0;transform:translateY(-2px)}
#mp-app .mp-dish[aria-pressed=true]{border-color:#507461;background:#e8eee4}
#mp-app .mp-dish strong{color:#294f40}
#mp-app .mp-energy input{border-color:#ba8c5d}
#mp-app .mp-cook-scene.mp-tagine-scene{max-width:320px;aspect-ratio:360/340}
#mp-app .mp-tagine{width:100%;height:100%;overflow:visible}
#mp-app .mp-tagine-shadow{transform-origin:center;animation:tagine-shadow 4500ms ease-in-out both}
#mp-app .mp-tagine-vapour{opacity:0;animation:tagine-steam 4500ms ease-in-out both}
#mp-app .mp-cook-caption{font:500 23px/1.3 Georgia,serif;letter-spacing:0;color:#294f40;margin:0}
#mp-app .mp-cook-tip{font-size:13px;color:#766d5f;margin:12px auto}
#mp-app .mp-cook-progress{position:absolute;bottom:4%;left:40%;width:20%;height:2px;background:#e1d0b7;overflow:hidden;border-radius:2px}
#mp-app .mp-cook-progress:after{content:'';display:block;width:100%;height:100%;background:#b16b45;transform-origin:left;animation:tagine-progress 4500ms linear both}
@keyframes tagine-steam{0%,22%{opacity:0;transform:translateY(12px) scale(.95)}35%{opacity:.22}64%{opacity:.1;transform:translateY(-5px)}80%{opacity:.8}100%{opacity:0;transform:translateY(-27px) scale(1.04)}}
@keyframes tagine-shadow{0%,100%{transform:scaleX(1);opacity:.75}40%,65%{transform:scaleX(.92);opacity:1}}
@keyframes tagine-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){#mp-app .mp-tagine * ,#mp-app .mp-cook-progress:after{animation:none!important}#mp-app .mp-dish{transition:none}}

/* White studio, photographic pottery and a shareable reveal. */
#mp-app .mp-mobile-nav,#mp-app .mp-detail-nav{background:#f3f6f2;border-color:#e7ebe5}
#mp-app .mp-mobile-nav button[aria-pressed=true],#mp-app .mp-detail-nav button[aria-pressed=true]{background:white}
#mp-app .mp-dish{background:#fff;border-color:#e7ebe5}
#mp-app .mp-dish:hover{background:#f7faf6}
#mp-app .mp-cook-scene.mp-photo-tagine{height:320px;width:280px;max-width:100%;aspect-ratio:auto;margin:32px auto 0;overflow:visible}
#mp-app .mp-tagine-photo-base{top:-45px;background-position:left center}
#mp-app .mp-tagine-meal{position:absolute;left:16%;top:50%;width:68%;height:28%;overflow:hidden;border-radius:50%;transform:scaleY(.7);z-index:2;animation:photo-meal 4500ms ease both}
#mp-app .mp-tagine-meal .mp-meal-photo{width:100%;height:190%;margin-top:-21%;mask-image:radial-gradient(ellipse,#000 42%,transparent 69%)}
#mp-app .mp-photo-vapour{position:absolute;inset:20% 20% 30%;z-index:4;pointer-events:none}
#mp-app .mp-photo-vapour i{position:absolute;left:20%;width:16%;height:70%;background:linear-gradient(transparent,#e7ece5a0,transparent);filter:blur(8px);border-radius:50%;opacity:0;animation:photo-vapour 4500ms ease both}
#mp-app .mp-photo-vapour i:nth-child(2){left:48%;animation-delay:120ms}
#mp-app .mp-photo-vapour i:nth-child(3){left:70%;animation-delay:240ms}
@keyframes photo-meal{0%,55%{opacity:0}75%,100%{opacity:1}}
@keyframes photo-vapour{0%,55%{opacity:0;transform:translateY(15px) scale(.85)}75%{opacity:.7}100%{opacity:0;transform:translateY(-36px) scale(1.15)}}
#mp-app .mp-story-button{display:block;width:100%;min-height:42px;margin:9px 0 0;border:1px solid #d9e5d6;border-radius:12px;background:#f1f7ee;color:#315940;font-size:12px;cursor:pointer}
.mp-story-dialog{border:1px solid #e3e9df;border-radius:22px;padding:22px;max-width:min(340px,85vw);max-height:88dvh;text-align:center;color:#294f40;background:white;font:14px 'Segoe UI',sans-serif}
.mp-story-dialog::backdrop{background:#162e225c;backdrop-filter:blur(5px)}
.mp-story-dialog h2{font:24px Georgia,serif;margin:10px 0}.mp-story-dialog p{font-size:12px;color:#737b70}
.mp-story-dialog img{display:block;height:50dvh;max-width:100%;object-fit:contain;margin:12px auto}
.mp-story-dialog a{display:block;background:#315940;color:white;padding:13px 18px;border-radius:12px;text-decoration:none}
.mp-story-dialog a.mp-instagram-link{background:#f0f5ed;color:#315940;font-size:12px}
.mp-story-close{position:absolute;right:12px;top:8px;background:none;border:0;font-size:27px;color:#53735c;cursor:pointer}
#mp-app .mp-pantry{padding:5px 10px;border:1px solid #e4eadd;border-radius:12px;background:#f8faf6;margin-top:10px}
#mp-app .mp-pantry summary{text-align:left;font-size:13px;color:#315940;cursor:pointer;list-style:disclosure-closed}
#mp-app .mp-pantry[open] summary{list-style:disclosure-open}
#mp-app .mp-pantry-row{display:flex;gap:12px;justify-content:space-between;padding:5px 0;border-top:1px solid #e8ece4;font-size:11px}
#mp-app .mp-pantry-row strong{text-align:right;font-weight:500;max-width:62%}
#mp-app .mp-pantry p{font-size:10px;line-height:1.5}

/* Open tagine: ingredient arrival → gentle simmer → finished meal. */
#mp-app .mp-photo-tagine{isolation:isolate}
#mp-app .mp-tagine-photo-base,#mp-app .mp-tagine-front{position:absolute;left:5%;top:-45px;width:90%;height:504px;background:url('./assets/tagine-photo.png') left center/200% 100% no-repeat;mix-blend-mode:multiply;pointer-events:none}
#mp-app .mp-tagine-photo-base{z-index:1;clip-path:inset(41% 0 28%);animation:tagine-settle 650ms cubic-bezier(.2,0,0,1) both}
#mp-app .mp-tagine-front{z-index:4;clip-path:inset(58% 0 28%);animation:tagine-settle 650ms cubic-bezier(.2,0,0,1) both}
#mp-app .mp-tagine-heat{position:absolute;left:12%;top:65%;width:76%;height:25%;border-radius:50%;background:radial-gradient(ellipse,#d19b592b,transparent 70%);animation:tagine-warmth 1800ms ease-in-out 650ms 2 both}
#mp-app .mp-tagine-arrivals{position:absolute;inset:0;z-index:2}
#mp-app .mp-tagine-ingredient{position:absolute;left:var(--landing);top:53%;width:29%;opacity:0;animation:tagine-arrive 2200ms cubic-bezier(.4,0,.2,1) var(--arrival) both}
#mp-app .mp-tagine-ingredient .mp-photo{mask-image:radial-gradient(ellipse,#000 40%,transparent 70%)}
#mp-app .mp-tagine-meal{z-index:3;left:14%;top:53%;width:72%;height:25%;transform:scaleY(.75);animation:tagine-finish 4500ms cubic-bezier(.4,0,.2,1) both}
#mp-app .mp-photo-vapour{z-index:5;inset:24% 20% 30%}
#mp-app .mp-photo-vapour i{background:linear-gradient(transparent,#cbd7cd75,transparent);animation:tagine-breathe 1700ms ease-in-out 1100ms 2 both}
#mp-app .mp-photo-vapour i:nth-child(2){animation-delay:1400ms}
#mp-app .mp-photo-vapour i:nth-child(3){animation-delay:1700ms}
@keyframes tagine-settle{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes tagine-arrive{0%{opacity:0;transform:translate(var(--drift),-85px) rotate(var(--turn)) scale(.85)}14%{opacity:1;transform:translate(var(--drift),-60px) rotate(var(--turn)) scale(1)}40%,70%{opacity:1;transform:translate(0,0) rotate(0) scale(.86)}100%{opacity:0;transform:translate(0,4px) scale(.8)}}
@keyframes tagine-finish{0%,43%{opacity:0;transform:translateY(6px) scale(.94,.65)}64%,91%{opacity:1;transform:translateY(0) scale(1,.75)}100%{opacity:1;transform:translateY(-3px) scale(1.025,.77)}}
@keyframes tagine-warmth{0%,100%{opacity:.35;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}}
@keyframes tagine-breathe{0%{opacity:0;transform:translate(-3px,20px) scale(.75)}35%{opacity:.7}100%{opacity:0;transform:translate(9px,-35px) scale(1.16)}}
@media(prefers-reduced-motion:reduce){#mp-app .mp-photo-tagine *{animation:none!important}#mp-app .mp-tagine-ingredient{display:none}#mp-app .mp-tagine-meal{opacity:1}}

/* Patient, continuous cooking: only the chosen ingredients, never a plate. */
#mp-app .mp-cooking{padding-bottom:8px}
#mp-app .mp-cook-scene.mp-photo-tagine{margin:0 auto;height:295px}
#mp-app .mp-tagine-ingredient{animation:ingredient-place 1700ms cubic-bezier(.25,.1,.25,1) var(--arrival) both;top:56%;width:30%}
#mp-app .mp-simmer-food{animation:ingredient-simmer 3800ms ease-in-out calc(var(--arrival) + 1700ms) infinite}
#mp-app .mp-tagine-ingredient .mp-photo{mask-image:radial-gradient(ellipse,#000 33%,transparent 67%);filter:saturate(.9) contrast(1.03)}
#mp-app .mp-tagine-heat{animation:tagine-warmth 3400ms ease-in-out 1800ms infinite}
#mp-app .mp-photo-vapour{inset:25% 22% 24%}
#mp-app .mp-photo-vapour i{filter:blur(6px);width:12%;animation:tagine-breathe 2900ms ease-in-out 2200ms infinite}
#mp-app .mp-photo-vapour i:nth-child(2){animation-delay:3100ms;height:85%}
#mp-app .mp-photo-vapour i:nth-child(3){animation-delay:3900ms}
#mp-app .mp-cook-progress{bottom:0;background:#e9efea}
#mp-app .mp-cook-progress:after{animation-duration:var(--cooking-duration,16000ms);background:#46735b}
#mp-app .mp-cook-caption{margin:14px 0 10px;font-size:21px}
#mp-app .mp-tip-card{text-align:center;border:1px solid #e8eee8;background:#f8faf7;border-radius:16px;padding:12px 15px;min-height:115px}
#mp-app .mp-tip-label{font-size:8px;letter-spacing:1.5px;color:#748570}
#mp-app .mp-cook-tip{font-size:14px;line-height:1.5;min-height:42px;margin:8px auto;color:#345443}
#mp-app .mp-tip-dots{display:flex;gap:5px;justify-content:center}
#mp-app .mp-tip-dots i{width:5px;height:5px;background:#dce5da;border-radius:4px;transition:width 400ms ease,background 400ms ease}
#mp-app .mp-tip-dots i.active{width:18px;background:#527b5e}
#mp-app .mp-skip-cooking{display:block;margin:10px auto 0;min-height:40px;color:#55735c;font-size:12px;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
#mp-app .mp-cook-disclaimer{display:block;text-align:center;color:#81877d;font-size:9px}
#mp-app .mp-simmer-surface{position:absolute;z-index:3;left:22%;top:62%;width:56%;height:15%;pointer-events:none;overflow:hidden;border-radius:50%}
#mp-app .mp-simmer-surface i{position:absolute;left:20%;top:30%;width:5px;height:3px;border:1px solid #eec58b99;border-radius:50%;opacity:0;animation:tiny-simmer 1900ms ease-out 2600ms infinite}
#mp-app .mp-simmer-surface i:nth-child(2){left:65%;top:55%;animation-delay:3300ms}
#mp-app .mp-simmer-surface i:nth-child(3){left:43%;top:15%;animation-delay:4100ms}
#mp-app .mp-simmer-surface i:nth-child(4){left:78%;top:20%;animation-delay:4700ms}
@keyframes ingredient-place{0%{opacity:0;transform:translate(var(--drift),-75px) rotate(var(--turn)) scale(.78)}18%{opacity:1;transform:translate(var(--drift),-60px) rotate(var(--turn)) scale(.95)}78%{opacity:1;transform:translate(0,2px) rotate(0) scale(.88,.78)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(.88,.82)}}
@keyframes ingredient-simmer{0%,100%{transform:translateY(0) rotate(-.4deg)}50%{transform:translateY(-1.5px) rotate(.4deg)}}
@keyframes tiny-simmer{0%{opacity:0;transform:scale(.4)}25%{opacity:.65}100%{opacity:0;transform:translateY(-5px) scale(1.8)}}
@media(prefers-reduced-motion:reduce){#mp-app .mp-photo-tagine *,#mp-app .mp-cook-progress:after{animation:none!important}#mp-app .mp-tip-dots i{transition:none}}

/* Open tagine: ingredients settle, generous steam rises. */
#mp-app .mp-photo-vapour{z-index:6;inset:25% 6% 20%;overflow:visible}
#mp-app .mp-photo-vapour i{left:6%;top:23%;width:19%;height:78%;background:radial-gradient(ellipse,#aebdb5b3 0%,#d6dfd999 28%,transparent 69%);filter:blur(7px);animation:covered-steam 2800ms ease-in-out 4300ms infinite;transform-origin:50% 100%;--steam-drift:-18px}
#mp-app .mp-photo-vapour i:nth-child(2){left:73%;top:22%;height:86%;animation-delay:4800ms;--steam-drift:20px}
#mp-app .mp-photo-vapour i:nth-child(3){left:13%;top:17%;width:23%;height:92%;animation-delay:5500ms;--steam-drift:-27px}
#mp-app .mp-photo-vapour i:nth-child(4){left:68%;top:16%;height:95%;animation-delay:6200ms;--steam-drift:30px}
#mp-app .mp-photo-vapour i:nth-child(5){left:5%;top:28%;width:26%;animation-delay:7000ms;--steam-drift:-16px}
#mp-app .mp-photo-vapour i:nth-child(6){left:76%;top:24%;width:21%;animation-delay:7700ms;--steam-drift:22px}
@keyframes covered-steam{0%{opacity:0;transform:translate(0,18px) scale(.65,.8)}28%{opacity:.8}65%{opacity:.5}100%{opacity:0;transform:translate(var(--steam-drift),-72px) scale(1.7,1.2)}}

/* Named actions replace decorative link arrows. */
#mp-app .mp-result-head .mp-icon,#mp-app .mp-result>.mp-icon,#mp-app .mp-cook-back{width:auto;min-width:64px;min-height:44px;height:auto;padding:0 12px;border-radius:14px;background:#f1f5f0;border:1px solid #e1e8dd;color:#315940;font-size:12px;font-weight:600}
#mp-app .mp-story-button{display:flex;align-items:center;justify-content:center;gap:9px;background:#315940;color:#fff;border-color:#315940;min-height:46px}
#mp-app .mp-story-button svg,.mp-instagram-link svg{width:21px;height:21px;flex-shrink:0}
.mp-story-dialog a.mp-instagram-link{display:flex;align-items:center;justify-content:center;gap:8px}
#mp-app .mp-story-button:hover{background:#254c3e}#mp-app .mp-story-button:active{background:#1d3d31}
#mp-app .mp-story-button:focus-visible,.mp-story-dialog a:focus-visible{outline:3px solid #ba815a;outline-offset:3px}

/* Keep catalog navigation distinct from the recipe's content tabs. */
#mp-app[data-view=plate] .mp-mobile-nav{display:none!important}
#mp-app .mp-result-head{display:flex;align-items:center;justify-content:space-between;padding:0 0 10px;margin:0 0 8px;border-bottom:1px solid #e8ede6}
#mp-app .mp-result-head .mp-icon{border:0;background:transparent;padding:0 4px;min-width:0;min-height:32px;height:32px;font-size:11px;font-weight:500;color:#6d7c70;text-decoration:underline;text-underline-offset:4px;border-radius:4px}
#mp-app .mp-result-head>span{font-size:10px;color:#7c857b}
#mp-app .mp-detail-nav{background:transparent;border:0;border-radius:0;padding:0;gap:6px;margin:0 0 14px}
#mp-app .mp-detail-nav button{border-radius:0;border-bottom:2px solid transparent;min-height:38px;font-size:11px;color:#7b857c}
#mp-app .mp-detail-nav button[aria-pressed=true]{background:transparent;box-shadow:none;border-radius:0;border-bottom-color:#315940;color:#315940;font-weight:600}
#mp-app .mp-dish strong{min-height:33px}

/* Cold salads are assembled, not simmered. */
#mp-app .lns-assembly .lns-steam{display:none}
#mp-app .mp-pantry .mp-section-title{margin:5px 0 8px;font-size:13px}
