@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght,SOFT,WONK@9..144,500,30,1;9..144,700,30,1;9..144,800,30,1&display=swap');
:root{color-scheme:light;--green:#214c2e;--red:#bb3628;--cream:#fff4de;--ink:#273a25;--gold:#e8bb63;--body:'DM Sans',system-ui,sans-serif;--display:'Fraunces',Georgia,serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:var(--body);font-size:16px;background:#ead2a6}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;font:inherit}button:focus-visible,a:focus-visible{outline:3px solid #bb3628;outline-offset:5px}button:disabled{cursor:default}.tablecloth{min-height:100svh;padding:26px 6vw;background:repeating-linear-gradient(0deg,transparent 0 34px,#ab3a3033 34px 68px),repeating-linear-gradient(90deg,#fffaee 0 34px,#ac3e3022 34px 68px)}.app{max-width:1260px;min-height:calc(100svh - 52px);margin:auto;padding:30px 48px 20px;border:1px solid #c69b60;border-radius:28px;background-color:#efd3a5;background-image:repeating-linear-gradient(0deg,#cf9d5833 0 1px,transparent 1px 7px),linear-gradient(105deg,#f7dfb8,#e7c28d 50%,#f5ddb4);box-shadow:0 25px 70px #4d2b2835,inset 0 0 50px #fff9df88}.masthead{display:flex;align-items:center;justify-content:space-between}.brand{font-family:var(--display);text-decoration:none;color:var(--green);line-height:1.02;transform:rotate(-2deg);text-align:center}.brand span{font-size:27px;font-weight:700;display:block}.brand strong{font-size:58px;font-weight:800;display:block;color:var(--red);text-shadow:0 2px 0 #fff1d0}.icon-btn{border:1px solid #b68750;background:linear-gradient(#fff3d7,#ecd0a1);box-shadow:0 4px 0 #b48751;border-radius:50%;height:48px;width:48px;color:var(--green);font-size:24px}.home{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:50px;padding:35px 0 24px}.hero{position:relative;border-radius:38% 38% 20px 20px;overflow:hidden;border:5px solid #fff3d7;box-shadow:0 10px 30px #5d351533;aspect-ratio:1}.hero img{width:100%;height:100%;object-fit:cover;object-position:50% 38%}.hero-caption{position:absolute;bottom:0;left:0;right:0;padding:20px 14px;background:#fff6e7ed;text-align:center;font:700 23px var(--display);color:var(--green)}.eyebrow{letter-spacing:.15em;font-weight:700;font-size:12px;color:#6d643e;margin:0 0 18px}h1{font:700 clamp(34px,4vw,56px)/1.12 var(--display);letter-spacing:-.03em;margin:0 0 18px}h1 em{font-style:normal;color:var(--red)}.intro{font-size:18px;line-height:1.6;margin:0 0 24px;color:#5d5a3b}.play-btn{display:block;width:100%;border:1px solid #164424;border-radius:20px;padding:17px;background:linear-gradient(#377843,#20552c);color:#fff4dd;box-shadow:0 6px 0 #163f20,inset 0 2px 0 #8db465;transition:transform .15s;font:700 26px var(--display);min-height:72px}.play-btn:hover{transform:translateY(-2px)}.play-btn:active{transform:translateY(3px);box-shadow:0 3px 0 #163f20}.play-btn span{display:block;font:500 13px var(--body);margin-top:6px;color:#fff3d8c9}.saved{font-size:13px;line-height:1.5;text-align:center;color:#6a6145;margin:17px 0}.secondary-actions{display:flex;gap:12px}.secondary-actions button{flex:1;padding:14px;border:1px solid #ac8250;border-radius:13px;background:#fff2d7;box-shadow:0 3px 0 #b48952;color:var(--green);font-weight:700}.secondary-actions button:hover{background:#fff8e7}.account-link{display:block;margin:21px auto 0;border:0;background:none;color:var(--green);font-weight:600;font-size:14px}.account-link span{font-size:12px;margin-left:7px;color:#665638;background:#e9c998;border-radius:8px;padding:3px 7px}.sponsor{margin:13px auto 0;border:1px dashed #bb965e;border-radius:15px;background:#fff5df99;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 20px}.sponsor-label{font-size:11px;letter-spacing:.13em;font-weight:700;color:#826947}.sponsor p{font-size:14px;margin:0}.sponsor button{background:transparent;border:0;color:#725a35;text-decoration:underline;font-size:13px}footer{display:flex;align-items:center;gap:18px;padding-top:22px;font-size:12px;color:#756241}footer>span{margin-right:auto;font:500 25px var(--display);color:var(--green);font-style:italic}footer button{border:0;background:none;color:inherit;font-size:12px}dialog{width:min(92vw,530px);max-height:85svh;border:1px solid #c19b65;border-radius:22px;padding:32px;background:#fff5e1;color:var(--ink);box-shadow:0 30px 80px #27170866}dialog::backdrop{background:#271d13a8;backdrop-filter:blur(5px)}dialog h2{font:700 30px var(--display);margin:0 35px 18px 0}dialog p{line-height:1.65}dialog .close{position:absolute;top:15px;right:15px;background:none;border:0;font-size:28px;color:var(--green)}@media(max-width:800px){.tablecloth{padding:14px}.app{padding:20px 24px;min-height:calc(100svh - 28px)}.home{gap:28px}.brand span{font-size:23px}.brand strong{font-size:48px}h1{font-size:34px}.intro{font-size:16px}.sponsor{flex-wrap:wrap;gap:8px}.sponsor-label{flex-basis:100%}}@media(max-width:600px){.tablecloth{padding:10px}.app{padding:20px 18px 16px;border-radius:22px}.masthead{position:relative;justify-content:center}.icon-btn{position:absolute;right:0;top:0;width:40px;height:40px;font-size:20px}.brand span{font-size:28px}.brand strong{font-size:64px}.home{display:flex;flex-direction:column;gap:20px;padding:22px 0 8px}.hero{width:100%;max-width:380px;aspect-ratio:1.65;border-radius:22px;border-width:3px}.hero-caption{padding:12px;font-size:18px}.welcome{width:100%;text-align:center}.eyebrow,h1,.intro{display:none}.play-btn{font-size:25px;padding:15px}.sponsor{padding:13px 15px;justify-content:center;text-align:center}.sponsor p{display:none}.account-link{margin:16px auto}.saved{margin:15px 0;font-size:12px}footer{gap:10px}footer>span{font-size:23px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
[hidden]{display:none!important}.game{max-width:660px;margin:24px auto 10px}.playing .masthead{max-width:660px;margin:auto}.playing .brand span{font-size:20px}.playing .brand strong{font-size:42px}.game-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.game-top p{font:700 23px var(--display);margin:0}.wood-btn{border:1px solid #ad834e;border-radius:11px;padding:10px 15px;color:var(--green);background:#fff0d2;box-shadow:0 3px 0 #bd9662;font-weight:700;font-size:14px}.recipe{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:19px 22px;margin-bottom:18px;border:1px solid #be965e;border-radius:18px;background:#fff4de;box-shadow:0 4px 0 #c39d66}.recipe .eyebrow{margin-bottom:5px;font-size:11px}.recipe h2{font:700 24px var(--display);margin:0 0 10px}.goals{display:flex;gap:12px}.goal{display:flex;align-items:center;gap:6px}.food-sprite{display:block;width:100%;height:100%;background-image:var(--food-image,url('assets/foods.png'));background-size:var(--food-size,300% 200%);background-position:var(--fx) var(--fy);background-repeat:no-repeat}.goal .food-sprite{width:43px;height:43px;border-radius:9px}.goal strong{font-size:15px}.goal.complete strong{color:#287739}.moves{align-self:stretch;min-width:75px;border-left:1px solid #d2b17d;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-left:19px;color:var(--green)}.moves span{font-size:13px;font-weight:700}.moves strong{font:800 44px var(--display)}.board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;padding:10px;background:#ba864d;border:2px solid #fff0cc;border-radius:21px;box-shadow:0 5px 0 #977046,inset 0 0 15px #56371044;user-select:none}.cell{position:relative;display:block;width:100%;aspect-ratio:1;border-radius:12px;border:2px solid #f8e2be;background:#ffefd1;overflow:hidden;padding:0;touch-action:none;transition:transform .15s,filter .15s,box-shadow .15s;box-shadow:0 2px 0 #714c39}.cell .food-sprite{border-radius:9px;pointer-events:none}.cell:hover{filter:brightness(1.09)}.cell.selected{z-index:1;border-color:#fff1a1;box-shadow:inset 0 0 0 2px #dd992d,0 0 0 2px #dd992d;transform:none;filter:none}.cell.matched{box-shadow:inset 0 0 0 3px #e8bb63;background:#fff6be;z-index:2}.cell.invalid{animation:shake .22s}.cell:focus-visible{z-index:3;outline-offset:1px;outline:3px solid #173e2c}.game-status{display:flex;justify-content:space-between;gap:18px;margin:20px 2px 12px;font-size:13px;line-height:1.5}.game-status #score{font-weight:700;white-space:nowrap}.game-status #live-status{text-align:right}.game progress{appearance:none;width:100%;height:12px;display:block;border:1px solid #a17844;border-radius:99px;background:#c6a376;overflow:hidden}.game progress::-webkit-progress-bar{background:#c6a376}.game progress::-webkit-progress-value{background:linear-gradient(90deg,#214c2e,#5a9d45);border-radius:99px}.game progress::-moz-progress-bar{background:#36743c}.boosters{display:flex;justify-content:center;gap:20px;margin:20px auto 15px}.boosters button{position:relative;min-width:94px;padding:10px 14px 12px;border-radius:17px;border:1px solid #b9915a;background:#fff2d7;box-shadow:0 3px 0 #ae8252;color:var(--green)}.boosters strong{display:block;font-size:14px}.tool-symbol{font:700 30px var(--display);display:block;height:38px}.boosters small{position:absolute;top:6px;right:6px;border-radius:50%;background:var(--red);color:white;width:20px;height:20px;font:700 12px/20px var(--body)}.boosters button:disabled{opacity:.45}.boosters .armed{box-shadow:0 0 0 3px #dba240}.level-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:22px}.level-grid button{aspect-ratio:1;border-radius:14px;border:1px solid #b58d56;background:#f2d9b0;color:var(--green);box-shadow:0 3px 0 #c8a16d;padding:8px 2px}.level-grid button strong{display:block;font:700 25px var(--display)}.level-grid button span{display:block;font-size:11px;margin-top:5px}.level-grid button:disabled{background:#efe7d5;opacity:.5;box-shadow:none}.rules{padding-left:22px;line-height:1.7}.rules li+li{margin-top:10px}.result-stars{font-size:44px;color:#df9f31;letter-spacing:8px}.result-home{display:block;margin:20px auto 0}.dialog-play{margin-top:20px;font-size:20px}@keyframes shake{25%,75%{transform:translateX(-4px)}50%{transform:translateX(4px)}}@media(max-width:600px){.hero img{object-position:50% 68%}.game{margin-top:20px}.game-top{margin-bottom:17px}.game-top p{font-size:20px}.recipe{padding:12px 14px;margin-bottom:14px;gap:8px}.recipe h2{font-size:19px}.goals{gap:8px}.goal{gap:4px}.goal .food-sprite{width:30px;height:30px}.goal strong{font-size:13px}.moves{min-width:58px;padding-left:12px}.moves strong{font-size:36px}.board{gap:4px;padding:6px;border-radius:16px}.cell{border-radius:8px;border-width:1px}.game-status{font-size:12px;margin-top:15px;gap:8px}.boosters{gap:16px;margin-top:17px}.boosters button{min-width:80px;padding:8px 9px}.playing .sponsor{margin-top:18px}.playing .sponsor-label{flex-basis:auto}.playing .sponsor button{font-size:12px}.playing footer{padding-top:16px}}@media(max-width:360px){.goals{gap:5px}.goal .food-sprite{width:25px;height:25px}.recipe{padding:10px}.recipe h2{font-size:17px}.goal strong{font-size:12px}.moves{min-width:49px;padding-left:8px}.moves strong{font-size:30px}.level-grid{gap:7px}.game-top .wood-btn{padding:8px 11px}}

@media(max-width:600px){.goal strong{font-size:14px}}

.sound-toggle{width:auto;min-width:94px;height:58px;border-radius:15px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px 12px}.sound-toggle #sound-label{font:700 11px var(--body)}.sound-toggle[aria-pressed="false"]{color:#795e3b}.sound-status{min-height:1.4em;margin:10px 0 0;color:#6a6145;font-size:12px;line-height:1.5;text-align:center}footer{flex-wrap:wrap}@media(max-width:600px){.masthead{justify-content:space-between}.icon-btn.sound-toggle{position:static;min-width:84px;width:84px;height:58px;padding:5px 6px;font-size:22px}.sound-toggle #sound-label{font-size:10px}footer{row-gap:12px}.sound-status{font-size:11px}}@media(max-width:360px){.brand span{font-size:24px}.brand strong{font-size:52px}}

.chapter{border-top:1px solid #d2b17d;margin-top:26px;padding-top:20px}.chapter-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.chapter-heading h3{font:700 23px var(--display);margin:0}.chapter-heading>span{font-size:13px;white-space:nowrap;color:#725a35}.chapter>p{margin:9px 0 13px;font-size:14px}.chapter-dishes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px}.chapter-dishes>div{display:flex;align-items:center;gap:8px;font-size:14px}.chapter-dishes .food-sprite{width:36px;height:36px;flex-shrink:0;border-radius:9px}.chapter .level-grid{margin-top:17px}.recipe .eyebrow{letter-spacing:.08em}@media(max-width:600px){.chapter-heading h3{font-size:21px}.chapter-dishes>div{font-size:13px}}

.sound-kitchen{border-top:1px solid #d2b17d;margin-top:22px;padding-top:18px}.sound-kitchen h3{font:700 22px var(--display);margin:0 0 14px}.sound-previews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sound-previews button{border:1px solid #ac8250;background:#fff0d2;color:var(--green);border-radius:11px;padding:12px 8px;font-size:14px;font-weight:600}.sound-previews button:hover{background:#fffaf0}footer #sound-examples{color:var(--green);text-decoration:underline;text-underline-offset:3px}.chapter-result{padding:12px 14px;background:#f2e2bb;border-radius:12px}@media(max-width:600px){.recipe .eyebrow{display:block}}

.cell.hint{z-index:2;border-color:#438c53;background:#ffefd1;box-shadow:inset 0 0 0 2px #438c53,0 0 0 2px #438c53;transform:none;filter:none}.cell.hint::after{display:none}

/* Compact start screen, separate instructions, and boards that grow by rank. */
.board{grid-template-columns:repeat(var(--board-cols,6),minmax(0,1fr))}
.sponsor{margin:0 0 16px;padding:0 14px;min-height:44px;flex-wrap:nowrap;justify-content:space-between;text-align:left}
.sponsor-label{flex-basis:auto;font-size:12px;letter-spacing:.06em}
.sponsor a{color:#725a35;font-size:14px;min-height:44px;display:flex;align-items:center;text-underline-offset:3px}
.more-link{display:flex;justify-content:center;align-items:center;min-height:44px;color:var(--green);font-weight:700;text-underline-offset:4px;margin-top:10px}
.simple-footer{justify-content:space-between}.simple-footer a{min-height:44px;display:flex;align-items:center;color:var(--green);font-size:14px;text-underline-offset:3px}
.hero img{object-position:50% 80%}.hero-caption{position:static;padding:10px;background:#fff6e7;font-size:20px}.hero{aspect-ratio:auto}.hero img{display:block;aspect-ratio:1.5;height:auto}
.info-app{max-width:850px}.info-heading{text-align:center;margin:26px 0}.info-heading h1{display:block;font-size:36px;margin:0 0 8px}.info-heading p{font-size:16px;line-height:1.5}.info-heading .wood-btn{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.info-nav{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:20px 0}.info-nav a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:9px 14px;border:1px solid #ac8250;border-radius:12px;background:#fff2d7;color:var(--green);font-size:16px;text-decoration:none;font-weight:600}
.info-section{border-top:1px solid #c9a56e;padding-top:24px;margin-top:28px;scroll-margin-top:16px}.info-section h2{font:700 27px var(--display);margin:0 0 12px}.info-section p,.info-section li{font-size:16px;line-height:1.65}.info-section a{color:var(--green)}
.rank-card{background:#fff3db;border:1px solid #bb965e;border-radius:16px;margin:12px 0;overflow:hidden}.rank-card summary{display:flex;gap:12px;align-items:center;min-height:84px;padding:14px;cursor:pointer;list-style:none}.rank-card summary::-webkit-details-marker{display:none}.rank-card summary>span:nth-child(2){flex:1;min-width:0}.rank-card summary strong{display:block;font:700 21px var(--display);line-height:1.2}.rank-card summary small{display:block;margin-top:6px;font-size:14px;line-height:1.4;color:#6a6145}.rank-number{flex-shrink:0;display:grid;place-items:center;border-radius:50%;width:36px;height:36px;background:var(--green);color:#fff4de;font-weight:700}.rank-card summary>.food-sprite{width:44px;height:44px;border-radius:8px;flex-shrink:0}.rank-card[open] summary{border-bottom:1px solid #d2b17d;background:#f5dfb9}.rank-content{padding:0 16px 16px}.rank-content>p{margin-top:14px}.rank-content .level-grid{margin:18px 0}.rank-content .level-grid a{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1;border-radius:14px;border:1px solid #b58d56;background:#f2d9b0;color:var(--green);box-shadow:0 3px 0 #c8a16d;padding:8px 2px;text-decoration:none}.level-grid a strong{font:700 25px var(--display)}.level-grid a span{font-size:12px;margin-top:5px}.rank-content .level-grid button span{font-size:12px}.rank-sound{display:flex;align-items:center;min-height:44px;font-size:14px;text-underline-offset:3px}.info-section label{display:block;font-size:16px;margin:10px 0}.info-section select{width:100%;min-height:44px;border:1px solid #ac8250;border-radius:10px;padding:10px;color:var(--green);background:#fff4de;font:16px var(--body);margin-bottom:14px}.audio-credits{font-size:14px;margin-top:18px}.audio-credits summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
@media(max-width:600px){
 .tablecloth{padding:6px}.app{padding:10px 14px;min-height:calc(100svh - 12px);border-radius:18px}
 .sponsor{margin:0 0 8px;padding:0 8px;gap:8px}.sponsor-label{font-size:12px;flex-basis:auto}.sponsor a{font-size:13px}
 .app:not(.playing) .masthead{min-height:66px;justify-content:space-between}.app:not(.playing) .brand span{font-size:20px}.app:not(.playing) .brand strong{font-size:43px}.app:not(.playing) .sound-toggle{position:static;min-width:94px;min-height:56px;padding:6px;font-size:20px}.app:not(.playing) #sound-label{font-size:12px}
 .home{gap:10px;padding:12px 0 0}.hero{max-width:none;border-radius:18px}.hero img{height:clamp(140px,24svh,176px);aspect-ratio:auto;object-fit:cover;object-position:50% 87%}.hero-caption{padding:7px 8px;font-size:17px;line-height:1.2}
 .welcome .play-btn{min-height:64px;padding:9px 12px;font-size:24px;border-radius:15px}.welcome .play-btn span{margin-top:4px;font-size:13px}.install-home{margin-top:14px}.install-home .install-btn{min-height:48px;padding:10px 12px;font-size:16px}.saved{margin:13px 0 0;font-size:13px;line-height:1.4}.more-link{margin-top:5px;font-size:16px}.simple-footer{padding-top:4px;gap:8px}.simple-footer>span{font-size:22px}.simple-footer a{font-size:14px}.sound-status:empty{display:none}
 .info-app .masthead{justify-content:space-between}.info-heading{margin:22px 0}.info-heading h1{font-size:29px}.info-heading p{font-size:15px}.info-section{padding-top:20px}.info-section h2{font-size:25px}.rank-card summary{gap:8px;padding:12px 10px}.rank-card summary strong{font-size:19px}.rank-card summary small{font-size:13px}.rank-card summary>.food-sprite{width:36px;height:36px}.rank-number{width:31px;height:31px}.rank-content{padding:0 12px 14px}.rank-content .level-grid{gap:8px}.rank-content .level-grid a strong{font-size:23px}
 .playing .sponsor{margin:0 0 14px}.playing .game{margin-top:16px}.playing .masthead{justify-content:space-between}.playing .sound-toggle{position:static}.playing .brand span{font-size:18px}.playing .brand strong{font-size:36px}.recipe .eyebrow{font-size:12px;line-height:1.4}.game-status{font-size:13px}.goal strong{font-size:14px}
}

.install-home{margin-top:17px;text-align:center}.install-btn{display:block;width:100%;min-height:48px;border:1px solid #9c7849;border-radius:14px;padding:12px 16px;background:linear-gradient(#fff8e7,#f4dfb9);color:var(--green);box-shadow:0 3px 0 #b68c56;font-weight:700;font-size:16px}.install-btn:hover{background:#fffaf0}.install-btn:disabled{opacity:.6}.install-home>p{margin:11px 0 0;font-size:12px;line-height:1.5;color:#6a6145}.install-tip{padding:12px 14px;background:#efdfbb;border-radius:12px;font-size:14px}dialog h3{font:700 23px var(--display);margin:24px 0 12px}

.app:not(.playing):not(.info-app) .sound-status:not(.audio-error){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:0;padding:0}

/* PawSpot image ad: reserve the full banner and keep keyboard focus visible. */
.sponsor.sponsor-banner{position:relative;display:block;width:100%;max-width:660px;min-height:0;margin-left:auto;margin-right:auto;padding:0;border:1px solid #b99561;border-radius:14px;background:#fff4de;box-shadow:0 2px 0 #bd9662}
.sponsor-banner a{display:block;width:100%;min-width:0;min-height:44px;aspect-ratio:3/1;border-radius:inherit;line-height:0;text-decoration:none}
.sponsor-banner img{display:block;width:100%;height:auto;aspect-ratio:3/1;object-fit:contain;border-radius:inherit}
.sponsor-banner .sponsor-label{position:absolute;top:4px;left:6px;z-index:1;padding:2px 5px;border-radius:4px;background:#fff8e8;color:#675d49;font:600 12px/1.2 var(--body);letter-spacing:.04em;pointer-events:none}

@media(hover:none){.cell:hover{filter:none}}
.sponsor-banner .sponsor-slides{width:100%;aspect-ratio:3/1;border-radius:inherit}
.sponsor-banner .sponsor-slides a,.sponsor-banner .sponsor-slides img{height:100%;border-radius:inherit}

/* Account access shares the existing masthead height. */
.masthead-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.profile-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:64px;min-height:56px;padding:6px 8px;border:1px solid #b68750;border-radius:15px;color:var(--green);background:linear-gradient(#fff3d7,#ecd0a1);box-shadow:0 4px 0 #b48751;text-decoration:none;font:700 12px var(--body)}
.profile-btn:hover{background:#fff6df}.privacy-details summary{display:flex;align-items:center;min-height:44px;color:var(--green);font-weight:700;cursor:pointer}
@media(max-width:600px){
 .masthead-actions{gap:6px}.profile-btn{min-width:54px;width:54px;min-height:56px;padding:5px 3px;font-size:11px}
 .app:not(.playing) .masthead-actions .sound-toggle,.playing .masthead-actions .sound-toggle{min-width:78px;width:78px;height:56px;min-height:56px;padding:5px 3px}
 .app:not(.playing) .masthead-actions #sound-label{font-size:10px}.app:not(.playing) .brand strong{font-size:39px}.app:not(.playing) .brand span{font-size:19px}
 .playing .masthead-actions #sound-label{font-size:10px}
}
@media(max-width:350px){.app:not(.playing) .brand strong,.playing .brand strong{font-size:33px}.app:not(.playing) .brand span,.playing .brand span{font-size:17px}.masthead-actions{gap:4px}.profile-btn{min-width:49px;width:49px}.app:not(.playing) .masthead-actions .sound-toggle,.playing .masthead-actions .sound-toggle{min-width:71px;width:71px}}

/* Compact account access: retain its accessible name and dynamic account state. */
.masthead-actions .profile-btn{width:48px;min-width:48px;height:48px;min-height:48px;padding:0;gap:0}
.profile-btn #player-account-label{display:none}
.profile-btn svg{width:24px;height:24px;flex-shrink:0}
.app:not(.playing) .masthead-actions .sound-toggle,.app.playing .masthead-actions .sound-toggle{width:48px;min-width:48px;height:48px;min-height:48px;padding:0;gap:0;border-radius:15px}
.sound-toggle #sound-label{display:none}
.sound-toggle #sound-symbol{font-size:28px;line-height:1}

.recipe-reward{margin:18px 0;padding:16px;border:1px solid #c39b60;border-radius:14px;background:#fff7e8;scroll-margin-top:18px}
.reward-heading{display:flex;align-items:center;gap:12px}.reward-heading>div{min-width:0;flex:1}
.reward-heading h3{margin:4px 0;font:700 23px/1.2 var(--display);color:var(--green)}
.reward-heading p{margin:4px 0;font-size:13px;line-height:1.4}.reward-heading .reward-label{font-weight:700}
.reward-badge{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;border:2px solid var(--green);border-radius:50%;background:#e1ead4;color:var(--green);font-size:23px}
.reward-badge.gold{border-color:#926210;background:#f6d584;color:#72500f}
.reward-heading .reward-dish{width:58px;height:58px;flex-shrink:0}
.reward-link{display:inline-flex;align-items:center;justify-content:center;margin:12px 0 0;text-decoration:none;min-height:44px}
.reward-recipe summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--green);font-weight:700;text-decoration:underline}
.reward-recipe h4{font-size:16px;margin:14px 0 8px}.reward-recipe ul,.reward-recipe ol{padding-left:22px;line-height:1.55}.reward-recipe li{margin:6px 0}
.recipe-source,.recipe-locked{font-size:13px;line-height:1.5;color:#67593e}.recipe-source a{color:var(--green)}
@media(max-width:400px){.recipe-reward{padding:12px}.reward-heading{gap:8px}.reward-heading h3{font-size:20px}.reward-heading .reward-dish{width:42px;height:42px}.reward-badge{width:32px;height:32px;font-size:18px}}

.info-heading #continue{display:flex;align-items:center;justify-content:center;width:min(100%,440px);min-height:56px;margin:20px auto 0;border-color:#164424;background:linear-gradient(#377843,#20552c);color:#fff4dd;box-shadow:0 4px 0 #163f20;font-size:18px}
.info-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;width:100%;max-width:660px;margin:20px auto 26px}
.info-nav a{display:flex;align-items:center;justify-content:center;min-height:58px;padding:12px;text-align:center;line-height:1.25;border-radius:14px;box-shadow:0 3px 0 #b48952}
@media(max-width:600px){.info-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px auto 24px}.info-nav a{font-size:15px;min-height:58px}.info-heading #continue{width:100%;max-width:none}}
.open-rank-levels{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;margin-top:14px}
.levels-dialog{padding:22px;max-width:480px}.levels-dialog h2{font-size:26px;margin-bottom:16px}
.levels-dialog label{font-size:13px;font-weight:700}.levels-dialog select{width:100%;min-height:44px;margin:6px 0 16px;padding:8px;border:1px solid #ac8250;border-radius:10px;background:#fffaef;color:var(--green);font:inherit}
.levels-dialog .level-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:0;padding:0}
.levels-dialog .level-grid a,.levels-dialog .level-grid button{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-width:0;min-height:55px;height:55px;aspect-ratio:auto;padding:5px 2px;border-radius:10px;line-height:1.1}
.levels-dialog .level-grid a{color:var(--green);text-decoration:none;background:#ecd6aa;border:1px solid #ad8655;box-shadow:0 2px 0 #b68c56}
.levels-dialog .level-grid strong{font:700 24px var(--display)}.levels-dialog .level-grid span{min-height:12px;font-size:10px;line-height:1.2;margin-top:4px}
.levels-dialog .close{width:44px;height:44px;top:8px;right:8px;padding:0}
.levels-dialog .level-grid .current-level{border:2px solid var(--red);background:#f5dfb4}
.levels-note{font-size:12px;line-height:1.4!important;margin:14px 0 0}
@media(max-width:400px){.levels-dialog{padding:18px}.levels-dialog .level-grid{gap:6px}.levels-dialog .level-grid a,.levels-dialog .level-grid button{min-height:52px;height:52px}.levels-dialog .level-grid strong{font-size:21px}}
@media(max-height:620px){.levels-dialog .level-grid a,.levels-dialog .level-grid button{height:48px;min-height:48px}.levels-note{display:none}}
.board.is-finished .cell{touch-action:pan-y}
/* The crossed note keeps the sound state clear without a text label. */
.sound-toggle #sound-symbol{position:relative;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px}
.sound-toggle .music-muted{position:absolute;right:-4px;bottom:-3px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#fff2d7;color:var(--red);font:700 21px/1 var(--body)}
@media(max-width:600px){
 .app:not(.playing):not(.info-app):not(.account-app):not(.cookbook-app){display:flex;flex-direction:column;height:calc(100svh - 12px);min-height:calc(100svh - 12px);padding:10px 14px}
 .app:not(.playing):not(.info-app):not(.account-app):not(.cookbook-app) .sponsor.sponsor-banner{flex:none;margin:0 auto 6px}
 .app:not(.playing):not(.info-app):not(.account-app):not(.cookbook-app) .masthead{flex:none;min-height:58px}
 .app:not(.playing):not(.info-app):not(.account-app):not(.cookbook-app) .home{flex:1;min-height:0;gap:8px;padding:8px 0 0;align-items:stretch}
 .app:not(.playing):not(.info-app):not(.account-app):not(.cookbook-app) .hero{display:flex;flex:1;flex-direction:column;min-height:180px;max-width:none;aspect-ratio:auto;background:#f5dfb9;border-radius:18px}
 .app:not(.playing):not(.info-app):not(.account-app):not(.cookbook-app) .hero-picture{position:relative;display:block;flex:1;min-height:0;height:0;width:100%}
 .app:not(.playing):not(.info-app):not(.account-app):not(.cookbook-app) .hero img{display:block;height:100%;width:100%;aspect-ratio:auto;object-fit:cover;object-position:center}
 .app:not(.playing):not(.info-app):not(.account-app):not(.cookbook-app) .hero-caption{position:static;flex:none;padding:7px 8px;font-size:17px;line-height:1.2}
 .app:not(.playing):not(.info-app):not(.account-app):not(.cookbook-app) .welcome{flex:none;display:grid;gap:8px}
 .app:not(.playing):not(.info-app):not(.account-app):not(.cookbook-app) .play-btn{min-height:60px;padding:9px 12px;font-size:24px;line-height:1.05}
 .app:not(.playing):not(.info-app):not(.account-app):not(.cookbook-app) .play-btn span{margin-top:4px;font-size:13px;line-height:1.2}
 .app:not(.playing):not(.info-app):not(.account-app):not(.cookbook-app) .install-home{margin:0}
 .app:not(.playing):not(.info-app):not(.account-app):not(.cookbook-app) .install-btn{min-height:44px;padding:9px 12px;font-size:16px;line-height:1.2}
 .app:not(.playing):not(.info-app):not(.account-app):not(.cookbook-app) .saved{margin:0;font-size:13px;line-height:1.3}
 .app:not(.playing):not(.info-app):not(.account-app):not(.cookbook-app) .more-link{min-height:44px;margin:0;padding:9px 12px;border:1px solid #ac8250;border-radius:12px;background:#fff2d7;box-shadow:0 3px 0 #b48952;font-size:16px;line-height:1.2}
}
.game-result-actions{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;margin:18px 0;padding:14px;border:1px solid #b48952;border-radius:14px;background:#fff5de}
.game-result-actions p{grid-column:1/-1;margin:0;color:var(--green);font:700 22px var(--display)}
.game-result-actions .play-btn{min-height:48px;padding:10px 12px;font:700 16px var(--body);border-radius:12px;box-shadow:0 3px 0 #163f20}
.game-result-actions .wood-btn{min-height:48px}
.game-result-actions .reward-moves{grid-column:1/-1}
.boosters .reward-needed small{width:24px;background:var(--green);font-size:10px}
.reward-dialog{width:min(96vw,calc((94svh - 44px) * .8),560px);padding:0;max-height:94svh;overflow:hidden;border-radius:20px}
.reward-dialog::backdrop{background:#172016cc;backdrop-filter:none}
.reward-dialog .reward-ad-label{position:absolute;top:10px;left:10px;z-index:2;max-width:calc(100% - 74px);margin:0;padding:5px 8px;background:#fff4deee;border-radius:7px;font-size:11px;line-height:1.2;font-weight:700;pointer-events:none}
.reward-close{position:absolute;z-index:3;top:8px;right:8px;width:44px;height:44px;min-width:44px;min-height:44px;border:1px solid #b48952;border-radius:50%;background:#fff4deee;color:var(--green);font-size:26px}
.reward-ad-link{display:block;line-height:0}
.reward-ad-image{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;border:0;border-radius:0}
.reward-dialog .reward-countdown{min-height:44px;margin:0;padding:12px 8px;text-align:center;font-size:14px;line-height:20px;font-weight:700;color:var(--green);background:#fff4de}
.reward-progress{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.level-loading-status{text-align:center;font-size:13px;line-height:1.4;margin:6px 0 0;color:var(--green)}
@media(max-width:600px){
 .app.playing{padding:6px 10px}
 .playing .sponsor.sponsor-banner{margin:0 auto 4px}
 .playing .masthead{min-height:48px}.playing .brand span{font-size:13px}.playing .brand strong{font-size:28px}
 .playing .game{margin:4px auto 0}.playing .game-top{min-height:44px;margin-bottom:4px}.playing .game-top p{font-size:18px}
 .playing .wood-btn{min-height:44px;padding:6px 10px}
 .playing .recipe{padding:6px 8px;margin-bottom:4px;gap:6px}.playing .recipe .eyebrow{font-size:11px;line-height:1.2;margin-bottom:2px}
 .playing .recipe h2{font-size:17px;line-height:1.15;margin-bottom:3px}.playing .goals{gap:6px}.playing .goal{gap:3px}
 .playing .goal .food-sprite{width:28px;height:28px}.playing .goal strong{font-size:13px}.playing .moves{min-width:46px;padding-left:8px}.playing .moves strong{font-size:30px;line-height:1.05}
 .playing .board{gap:2px;padding:4px;border-width:1px;margin-inline:auto}
 .playing .game-status{min-height:26px;margin:4px 0 3px;font-size:11px;line-height:1.2}.playing progress{height:6px}
 .playing .boosters{gap:6px;margin:6px auto 0}.playing .boosters button{flex:1;min-width:0;min-height:44px;padding:4px 6px;display:flex;align-items:center;justify-content:center;gap:5px}
 .playing .tool-symbol{font-size:23px;height:auto;line-height:1}.playing .boosters strong{font-size:12px}.playing .boosters small{top:2px;right:2px;width:16px;height:16px;font-size:10px;line-height:16px}
 .playing .sound-status{margin:3px 0 0;font-size:11px;line-height:1.2}
}
@media(max-width:600px) and (max-height:700px){
 .app:not(.playing):not(.info-app):not(.account-app):not(.cookbook-app) .hero{min-height:160px}
 .playing .sponsor.sponsor-banner{max-width:240px}
 .playing .board{width:100%;max-width:calc(var(--board-cols,6) * 46px + 8px)}
}

.playing .boosters .reward-needed small{width:24px}
@media(max-width:600px) and (max-height:759px){
 .app:not(.playing):not(.info-app):not(.account-app):not(.cookbook-app) .hero img{object-position:50% 90%}
}
.cell .food-sprite{position:absolute;inset:0;width:auto;height:auto}
.food-raster{position:relative;background-image:none}
.food-raster>canvas{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}
@media(max-width:600px),(pointer:coarse){
 .cell,.cell:hover,.cell.selected,.cell.matched,.cell.invalid,.cell.hint{animation:none;transition:none;transform:none;filter:none}
 .cell.selected,.cell.hint{box-shadow:0 0 0 2px #dba240}
 .cell.matched{box-shadow:inset 0 0 0 2px #e8bb63}
 dialog::backdrop{backdrop-filter:none}
}

/* Move food pictures along their actual fall paths; square cells stay fixed. */
.board{position:relative;overflow:hidden}
.cell.moving .food-raster{visibility:hidden}
.board-motion{position:absolute;inset:0;pointer-events:none;z-index:5}
.board-motion .food-raster{position:absolute;will-change:transform}

.home-links{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px}
.home-links .more-link{flex:1 1 auto;margin-top:0;font-size:14px}

/* Immediate contact feedback, independent of navigation and game actions. */
:where(button:not(.cell):not([data-cell]),a[href]:not([data-ad]):not(.reward-ad-link),summary){touch-action:manipulation}
:where(button:not(.cell):not([data-cell]),.wood-btn,.play-btn,.profile-btn,.more-link,summary){transition:translate 80ms,filter 80ms,box-shadow 80ms}
.ui-pressed,.ui-tapped,button:not(.cell):not([data-cell]):not(:disabled):active,a.wood-btn:active,a.play-btn:active,a.profile-btn:active,a.more-link:active{translate:0 2px;filter:brightness(.94);box-shadow:inset 0 0 0 2px #dba240,0 1px 0 #ad834e;transition:none!important}
#pot[aria-pressed="true"],.sound-toggle[aria-pressed="true"]{background:linear-gradient(#377843,#20552c);color:#fff4dd;border-color:#164424;box-shadow:0 3px 0 #163f20,inset 0 0 0 2px #e8bb63}
#pot[aria-pressed="true"] .tool-symbol{color:#fff4dd}
:is(button:not(.cell),a)[aria-busy="true"],:is(#sign-out,#sync-retry,#stats-refresh,#stats-signout,#access-retry):disabled{position:relative;color:transparent!important;opacity:1;cursor:progress}
:is(button:not(.cell),a)[aria-busy="true"]>*,:is(#sign-out,#sync-retry,#stats-refresh,#stats-signout,#access-retry):disabled>*{visibility:hidden}
:is(button:not(.cell),a)[aria-busy="true"]::after,:is(#sign-out,#sync-retry,#stats-refresh,#stats-signout,#access-retry):disabled::after{content:"";position:absolute;left:calc(50% - 10px);top:calc(50% - 10px);width:20px;height:20px;border:3px solid #214c2e33;border-top-color:var(--green);border-radius:50%;animation:button-loading 650ms linear infinite;pointer-events:none}
.play-btn[aria-busy="true"]::after{border-color:#fff4dd55;border-top-color:#fff4dd}
@keyframes button-loading{to{transform:rotate(360deg)}}
@media(hover:none){.play-btn:hover{transform:none}}

/* Keep the suggested pair clear above the dish pictures without moving cells. */
.board .cell.hint{border-color:#214c2e;box-shadow:0 0 0 2px #214c2e;z-index:2}
.board .cell.hint::before{content:"";position:absolute;inset:0;border:4px solid #214c2e;border-radius:inherit;box-shadow:inset 0 0 0 2px #fff4dd;z-index:3;pointer-events:none}
.board .cell.hint::after{content:attr(data-hint);position:absolute;top:3px;right:3px;display:grid;place-items:center;width:20px;height:20px;border:2px solid #fff4dd;border-radius:50%;background:#214c2e;color:#fff4dd;font:800 12px/1 var(--body);z-index:4;pointer-events:none}

/* Bonuses stay in the ordinary cells and use the same canvas movement layer. */
.board .cell.spoon-bonus{border-color:#214c2e;background:#ffe6a9;box-shadow:inset 0 0 0 2px #e8bb63}
.board .cell.spoon-target{z-index:2;border-color:#bd7420}
.board .cell.spoon-target::before{content:"";position:absolute;inset:0;border:4px solid #bd7420;border-radius:inherit;box-shadow:inset 0 0 0 2px #fff4dd;z-index:3;pointer-events:none}
.cell.spoon-born .food-raster{animation:spoon-appear 160ms ease-out}
@keyframes spoon-appear{from{opacity:.5;transform:scale(.75)}to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.cell.spoon-born .food-raster{animation:none}}

/* Warm control feedback; board cells keep their authoritative movement. */
:where(button:not(.cell):not([data-cell]),a.wood-btn,a.play-btn,a.profile-btn,a.more-link,summary){transition:transform 160ms cubic-bezier(.34,1.56,.64,1),translate 80ms,filter 80ms,box-shadow 160ms}
@media(hover:hover) and (pointer:fine){
 :where(button:not(.cell):not([data-cell]):not(:disabled):not([aria-busy="true"]),a.wood-btn:not([aria-busy="true"]),a.play-btn:not([aria-busy="true"]),a.profile-btn,a.more-link,summary):hover{transform:translateY(-2px) scale(1.015);filter:brightness(1.035)}
 .play-btn:not([aria-busy="true"]):hover::before{transform:translateX(180%) skewX(-20deg)}
}
.play-btn{position:relative;overflow:hidden;isolation:isolate}
.play-btn::before{content:"";position:absolute;inset:-30% auto -30% -60%;width:45%;background:linear-gradient(90deg,transparent,#fff4dd40,transparent);transform:translateX(0) skewX(-20deg);transition:transform 600ms ease-out;pointer-events:none}
.ui-pressed,.ui-tapped,button:not(.cell):not([data-cell]):not(:disabled):active,a.wood-btn:active,a.play-btn:active,a.profile-btn:active,a.more-link:active{transform:scale(.985)!important}
@media(prefers-reduced-motion:no-preference){#play,.promo-cta{animation:invite-to-play 2800ms ease-in-out 2;animation-delay:1200ms}@keyframes invite-to-play{0%,100%{filter:brightness(1)}50%{filter:brightness(1.10)}}}
@media(prefers-reduced-motion:reduce){:where(button:not(.cell):not([data-cell]),a.wood-btn,a.play-btn,a.profile-btn,a.more-link,summary):hover,.ui-pressed,.ui-tapped{transform:none!important;translate:none!important}.play-btn::before{display:none}}

.board .cell.roller-column .food-raster canvas{transform:rotate(90deg)}

.ui-pressed,.ui-tapped{animation:none!important}

/* Short scene accents sit above pictures and never move or intercept the grid. */
.scene-fx{position:absolute;inset:0;overflow:hidden;z-index:6;pointer-events:none;contain:layout paint}
.scene-fx>span{position:absolute;display:block;pointer-events:none}
.fx-spark{width:5px;height:5px;border-radius:2px;background:var(--fx-color,#e8bb63);box-shadow:0 0 0 1px #fff4dd99}
.fx-ring{border:2px solid var(--fx-color,#e8bb63);border-radius:50%;background:transparent}
.fx-sweep{background:#fff4dd;border-radius:99px;box-shadow:0 0 0 2px #e8bb6399;transform-origin:top left}
.fx-score{white-space:nowrap;font:800 clamp(14px,3.2vw,21px)/1 var(--body);color:#214c2e;padding:5px 8px;border:1px solid #c99b50;border-radius:99px;background:#fff4def0;box-shadow:0 2px 0 #ad834e55}
.fx-reaction{box-sizing:border-box;width:calc(100% - 24px);max-width:calc(100% - 24px);padding:14px 10px 12px;border:2px solid #d8af60;border-radius:20px;background:linear-gradient(135deg,#fff9e8,#ffe4af);color:#9b3324;text-align:center;white-space:normal;overflow-wrap:anywhere;font:800 clamp(34px,10vw,64px)/1.05 var(--display);box-shadow:0 4px 0 #99683266,0 5px 14px #53331b25;will-change:transform,opacity}
.fx-reaction-word{display:block;font:inherit;text-wrap:balance}.fx-reaction-detail{display:block;margin-top:8px;color:#214c2e;font:800 clamp(13px,3.2vw,17px)/1.15 var(--body)}
.victory-reaction{margin:14px 0 18px;color:#9b3324;text-align:center;overflow-wrap:anywhere;text-wrap:balance;font:800 clamp(34px,10vw,56px)/1.08 var(--display);transform-origin:center}
@media(prefers-reduced-motion:no-preference){.victory-reaction{animation:diner-welcome 2200ms linear both}@keyframes diner-welcome{0%{opacity:0;transform:translateX(-20px) scale(.9)}16%{opacity:1;transform:translateX(0) scale(1.03)}24%,80%{opacity:1;transform:translateX(0) scale(1)}100%{opacity:1;transform:translateY(-2px) scale(1)}}}
.fx-confetti{width:5px;height:9px;border-radius:1px;background:var(--fx-color)}
#dialog-content{position:relative}.result-stars{text-shadow:0 2px 0 #fff4dd,0 0 18px #e8bb6344}
@media(prefers-reduced-motion:reduce){.scene-fx{display:none}}

/* Safari focuses the close button when opening a dialog. Show its focus cue
   only during keyboard navigation, keeping touch-opened results uncluttered. */
dialog :is(.close,.reward-close):focus{outline:none}
.keyboard-navigation dialog :is(.close,.reward-close):focus{outline:2px solid var(--green);outline-offset:2px;border-radius:50%}
/* Vapor crosses the card background; text and solid buttons stay above it. */
#dialog .dialog-card{display:contents}
#dialog.victory-mode{position:fixed;inset:0;margin:0;padding:0;width:100vw;height:100svh;max-width:none;max-height:none;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden}
#dialog.victory-mode[open]{display:flex;align-items:center;justify-content:center}
#dialog.victory-mode .dialog-card{display:block;position:relative;z-index:auto;box-sizing:border-box;width:min(92vw,530px);max-height:85svh;overflow:auto;border:1px solid #c19b65;border-radius:22px;padding:32px;background:#fff5e1;color:var(--ink);box-shadow:0 30px 80px #27170866}
#dialog.victory-mode .vapor-fx{z-index:1;overflow:hidden}
#dialog.victory-mode #dialog-content{position:relative;z-index:2}
#dialog.victory-mode .close{z-index:3}
.vapor-cloud{position:absolute;display:block;pointer-events:none;transform-origin:center;will-change:transform,opacity}
.vapor-screencloud{z-index:-1}
.vapor-lid{z-index:1;transform-origin:center;will-change:transform,opacity}
.vapor-lid svg{display:block;width:100%;height:100%}
@media(max-width:600px){#dialog.victory-mode .dialog-card{max-width:480px;padding:22px}}
@media(max-width:360px){#dialog.victory-mode .dialog-card{padding:18px}}

/* Community recipe pages and invitations share the game's warm kitchen style. */
.cookbook-home{display:flex;align-items:center;justify-content:center;gap:9px;margin:12px 0 0;min-height:50px;padding:11px 14px;border:1px solid #a8804e;border-radius:14px;background:linear-gradient(#fff7e4,#f2dfb9);box-shadow:0 3px #b38b57;color:var(--green);font:700 21px var(--display);text-decoration:none}
.cookbook-home span{font-size:23px}.community-home{grid-column:1/-1;width:100%;max-width:760px;margin:15px auto 0;padding:18px;border:1px solid #ba915c;border-radius:18px;background:#fff4de}.community-home h2{margin:0 0 7px;font:700 26px var(--display);color:var(--green)}.community-home>p{font-size:15px;line-height:1.5;margin:8px 0}.community-home a{color:var(--green)}.community-recipes{display:grid;gap:10px}.community-recipe-card{padding:12px;border:1px solid #d0b483;border-radius:14px;background:#fffaf0}.community-recipe-card h3{margin:0 0 5px;font:700 22px var(--display);color:var(--green)}.community-recipe-card p{margin:6px 0;font-size:15px}.community-recipe-card .wood-btn{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;margin:7px 6px 0 0}.community-recipe-card button:disabled{opacity:.6}.community-author{font:700 25px/1.2 var(--display);color:var(--green);padding:12px;background:#f0e1bb;border-radius:12px}.community-intro-dish{width:90px;height:90px;margin:12px auto}.community-save-state{font-size:14px!important;color:#6a6145}.community-home:has(.community-recipes:empty){margin-top:9px;padding:12px 15px}.community-home:has(.community-recipes:empty) h2{font-size:22px}.community-home:has(.community-recipes:empty)>p{margin:5px 0}
.community-inclusion{padding:14px 16px;background:#e6efd9;border:1px solid #a8b98a;border-radius:14px;color:var(--green);line-height:1.5}.community-inclusion strong{display:inline-block;margin-bottom:4px}
@media(max-width:600px){.cookbook-home{min-height:45px;margin-top:10px;font-size:21px}.community-home{padding:13px}.community-home h2{font-size:24px}.community-author{font-size:24px}}

.community-recipe-card{display:flex;align-items:center;gap:14px}.community-recipe-card>.food-sprite{width:64px;height:64px;flex:none;border-radius:12px}.community-recipe-card>div{min-width:0;flex:1}.community-recipe-card strong{font:700 22px var(--display);color:var(--green)}
#dialog:not(.victory-mode) .close{z-index:3;top:8px;right:8px;width:44px;height:44px;padding:0}

#add-recipe-home{width:100%;margin:8px 0 12px;text-decoration:none;min-height:96px;padding:22px 18px;color:#fff4dd;text-align:center;font-size:32px;line-height:1.15}#add-recipe-home span{font-size:16px;line-height:1.4;margin-top:7px}@media(max-width:600px){#add-recipe-home{min-height:94px;padding:20px 14px;font-size:28px}}

/* Keep the mobile home in one viewport, with every action available. */
@media(max-width:600px){#home .hero{min-height:70px}#home .cookbook-home,#add-recipe-home{margin:0}}
@media(max-width:600px) and (max-height:740px){#home{gap:6px;padding-top:6px}#home .welcome{gap:5px}#home .hero-caption{font-size:15px;padding:5px 8px}#home .cookbook-home{min-height:44px;padding:8px 12px;font-size:20px}#add-recipe-home{min-height:76px;padding:14px 12px;font-size:24px;line-height:1.1}#add-recipe-home span{font-size:13px;line-height:1.2;margin-top:4px}}
@media(max-width:600px) and (max-height:620px){#home .hero{min-height:48px}#home #play{min-height:44px;padding:7px 10px;font-size:22px}#home #install-home{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center}#home .install-links{margin:0;gap:8px}#home #install{font-size:14px}#home .install-links a{font-size:13px}}

@media(max-width:360px) and (max-height:620px){#home .home-links{display:grid;grid-template-columns:1.65fr 1fr;gap:6px}#home .home-links .more-link{min-height:44px;padding:8px 7px;font-size:13px;white-space:nowrap;text-align:center}}
