.lunch-page{max-width:1000px;margin:auto;padding:20px 24px 48px}.lunch-top{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#6c7969;font-size:12px;letter-spacing:1px}.lunch-heading{text-align:center;margin:30px 0 24px}.lunch-heading h1{font-size:clamp(26px,5vw,42px);margin:10px 0;color:#354c3d}.lunch-heading p,.lunch-note{color:#738073}.lunch-steps{display:flex;justify-content:center;gap:12px;margin-bottom:24px;flex-wrap:wrap}.lunch-steps span{padding:10px 18px;border-radius:30px;background:#eeeee4;color:#78806d;font-size:14px}.lunch-steps [aria-current]{background:#365d48;color:white}.lunch-scene{background:#fffdf5;border:2px solid #e7e5d6;border-radius:30px;overflow:hidden;text-align:center;box-shadow:0 12px 35px #40553b09;padding:24px}.lunch-window{display:flex;justify-content:center;align-items:center;gap:20px;background:#e9f1df;border-radius:16px;padding:14px;color:#52704d}.lunch-window span{font-size:15px}.lunch-bag{display:flex;flex-direction:column;align-items:center;gap:6px;margin:22px auto;padding:15px 45px;background:#f6dfb9;border:2px dashed #c99860;border-radius:20px;cursor:pointer;color:#694c32;min-width:220px;transition:transform .2s}.lunch-bag>span{font-size:80px}.lunch-bag.open{transform:rotate(-2deg);background:#fbe7c9}.lunch-bag strong{font-size:22px}.lunch-bag div{min-height:30px;font-size:26px}.lunch-shelf,.lunch-table{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:20px}.lunch-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:white;border:2px solid #e7e6d9;border-radius:20px;padding:18px 8px;color:#3e5345;cursor:pointer;min-height:150px;transition:transform .2s,background .2s;font-family:inherit}.lunch-item:hover:not(:disabled){transform:translateY(-5px);background:#f1f7e7;border-color:#9aad83}.lunch-object{font-size:56px;line-height:1.2}.lunch-item strong{font-size:20px}.lunch-item small{font-size:12px;line-height:1.6}.lunch-item:disabled{opacity:.55;cursor:default}.lunch-item:focus-visible,.lunch-bag:focus-visible{outline:3px solid #ce7b48;outline-offset:4px}.lunch-message{min-height:55px;display:flex;align-items:center;justify-content:center;text-align:center;color:#476747;font-weight:600;padding:12px}.lunch-controls{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.lunch-controls button:disabled{opacity:.4;cursor:default}.lunch-note{text-align:center;font-size:12px;margin-top:20px}.lunch-friends{display:flex;align-items:center;justify-content:center;gap:24px}.lunch-friends>span{font-size:48px}.lunch-table{background:#eacba4;border:6px solid #dcb98e;padding:18px;border-radius:24px}.lunch-face{font-size:20px;margin-top:20px}.lunch-missing,.lunch-display{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:120px;border-radius:18px;background:#fff8e9;color:#765a3e}.lunch-missing{border:3px dashed #b78e60;font-size:60px;background:transparent}.lunch-display span{font-size:55px}.lunch-postcard{max-width:560px;margin:8px auto;background:#f4edda;border:8px solid white;outline:2px dashed #d6b779;border-radius:8px;padding:32px 12px}.lunch-stamp{font-size:11px;letter-spacing:3px;color:#9b7b46}.lunch-party{font-size:60px;margin-top:25px}.lunch-postcard h2{font-size:44px;color:#42654d;margin:16px}.lunch-feast{font-size:38px}.lunch-postcard p{line-height:2;color:#65745f}.lunch-postcard>strong{display:inline-block;background:#e8c986;padding:12px 24px;border-radius:30px;color:#6d5025}.lunch-choice{background:#fff2db!important}.step-options{flex-wrap:wrap}.lunch-page button{touch-action:manipulation}@media(max-width:600px){.lunch-page{padding:14px 12px 30px}.lunch-top{letter-spacing:0}.lunch-top>span:nth-child(2){display:none}.lunch-scene{padding:14px}.lunch-shelf,.lunch-table{grid-template-columns:repeat(2,minmax(0,1fr))}.lunch-item{min-height:125px}.lunch-object{font-size:45px}.lunch-steps{gap:5px}.lunch-steps span{padding:9px 10px;font-size:12px}.lunch-friends{flex-direction:column;gap:10px}.lunch-table{padding:10px}.lunch-party{font-size:48px}.lunch-feast{font-size:28px}}@media(prefers-reduced-motion:reduce){.lunch-item,.lunch-bag{transition:none}}
/* Lunch club: listen, assemble, deliver. */
.lunch-rules{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin:25px 0;color:#63715b;font-size:14px}.lunch-customer{display:flex;align-items:center;justify-content:center;gap:24px;background:#eaf1df;padding:22px;border-radius:24px}.customer-face{font-size:90px}.lunch-customer strong{font-size:26px}.lunch-customer p{color:#62735b;margin:8px 0 16px}.lunch-customer.happy{background:#fff0c7}.lunch-tray{background:#edcfac;border:6px solid #d1aa7c;border-radius:28px;margin-top:24px;padding:16px;box-shadow:inset 0 3px 8px #89613320}.tray-label{font-size:14px;font-weight:700;color:#725132}.tray-slots{min-height:116px;display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}.tray-slots .lunch-item{min-height:90px;width:100px;padding:10px}.tray-empty{color:#886745;font-size:15px}.lunch-tray>small{color:#715439}.service-controls{margin-top:22px}.lunch-order-hint{margin-top:18px;background:#fff3cc;padding:15px;border-radius:16px;font-size:23px;color:#785b28}.lunch-order-hint small{font-size:14px}.lunch-delivered{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;min-height:200px}.lunch-delivered>span{font-size:70px;animation:lunch-arrive .35s ease-out}.lunch-delivered strong{width:100%;color:#52724b}.food-napkin{display:inline-flex;align-items:center;justify-content:center;background:#fffefa;border:2px solid #d8cdb8;border-radius:3px;width:58px;height:48px;color:#d4c5a7;box-shadow:3px 4px 0 #daceb9;transform:rotate(-8deg);font-size:32px!important}.lunch-receipts{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:22px 0}.lunch-receipts>div{background:#fffaf0;padding:15px;border-radius:14px;color:#536747}.lunch-receipts span{display:block;font-size:32px;margin-top:10px}.lunch-postcard h2{font-size:clamp(24px,5vw,36px)}.lunch-scene>.lunch-controls{margin-top:22px}@keyframes lunch-arrive{from{transform:translateY(30px) scale(.7);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@media(max-width:600px){.lunch-customer{gap:12px;padding:16px}.customer-face{font-size:64px}.lunch-tray{padding:10px}.lunch-rules{gap:10px}.tray-slots .lunch-item{width:75px}.tray-empty{font-size:13px}}@media(prefers-reduced-motion:reduce){.lunch-delivered>span{animation:none}}
