.bq-scene{aspect-ratio:4/5;background:linear-gradient(#fdf4ec 0% 45%,#faeadb 45%,#f7e3d0 100%);border:3px solid #6b4f3f;border-radius:26px;width:100%;max-width:400px;max-height:62vh;margin:0 auto;position:relative;overflow:hidden;box-shadow:4px 4px #6b4f3fd9}.bq-path{clip-path:polygon(47% 45%,53% 45%,104% 100%,-4% 100%);background:#f4dcc4;position:absolute;inset:0}.bq-horizon{border-top:3px solid #e4cbb4;position:absolute;top:45%;left:0;right:0}.bq-passing{color:#dcbb9c;pointer-events:none;opacity:0;font-size:30px;animation:2.8s linear 2 both bqPass;position:absolute;top:45%;left:50%}@keyframes bqPass{0%{opacity:0;transform:translate(-50%,-50%)scale(.12)}20%{opacity:.95}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1.7);opacity:0}}.bq-walker{transform-origin:50% 88%;justify-content:center;align-items:flex-end;padding-bottom:12%;animation:5s cubic-bezier(.55,.02,.86,.5) both bqApproach;display:flex;position:absolute;inset:0}@keyframes bqApproach{0%{transform:translateY(-36%)scale(.11)}}.bq-figure{width:46%;height:auto;display:block;overflow:visible}.bq-body{animation:.31s ease-in-out 16 both bqBob}@keyframes bqBob{0%,to{transform:translateY(0)}50%{transform:translateY(-2.5px)}}.bq-leg-l{transform-origin:50px 128px;animation:.62s ease-in-out 8 both bqStep}.bq-leg-r{transform-origin:70px 128px;animation:.62s ease-in-out 8 reverse both bqStep}@keyframes bqStep{0%,to{transform:rotate(0)}25%{transform:rotate(14deg)}75%{transform:rotate(-14deg)}}.bq-arm-l{transform-origin:31.5px 78px;animation:.62s ease-in-out 8 both bqSwing}@keyframes bqSwing{0%,to{transform:rotate(0)}25%{transform:rotate(-12deg)}75%{transform:rotate(12deg)}}.bq-arm-r{transform-origin:88.5px 78px;animation:.85s cubic-bezier(.34,1.3,.64,1) 4.75s both bqExtend;transform:rotate(30deg)}@keyframes bqExtend{0%{transform:rotate(7deg)}}.bq-bouquet{animation:1.2s cubic-bezier(.22,.9,.3,1) 5.35s both bqOffer;transform:translate(64px,128px)scale(1.6)}@keyframes bqOffer{0%{transform:translate(89px,126px)scale(.5)}}.bq-caption{text-align:center;color:#8a6a55;margin:0;font-family:Patrick Hand,cursive;font-size:clamp(20px,5.4vw,28px);animation:.7s ease-out 6.1s both bqRise;position:absolute;bottom:16px;left:0;right:0}@keyframes bqRise{0%{opacity:0;transform:translateY(10px)}}.bq-again{color:#5e4636;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fff3e6;border:3px solid #6b4f3f;border-radius:16px;min-height:44px;margin-top:18px;padding:8px 22px;font-family:Gaegu,cursive;font-size:18px}.bq-again:active{background:#f2ddc4}.bq-again:focus-visible{outline-offset:3px;outline:3px dashed #d8b79c}@media (height<=640px){.bq-scene{max-height:54vh}.bq-again{margin-top:10px}}@media (prefers-reduced-motion:reduce){.bq-walker,.bq-body,.bq-leg-l,.bq-leg-r,.bq-arm-l,.bq-arm-r,.bq-bouquet,.bq-caption{animation:none!important}.bq-passing{display:none}}.eats-panel{flex-direction:column;align-items:center;gap:18px;width:100%;max-width:520px;margin:0 auto;padding-bottom:24px;display:flex;position:relative}.eats-header{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.eats-subtitle{color:#a0806b;margin:0;font-family:Gaegu,cursive;font-size:clamp(16px,4.4vw,20px);font-weight:700}.eats-controls{justify-content:center;align-items:center;gap:12px;margin-top:4px;display:flex}.eats-btn{color:#5e4636;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fff3e6;border:3px solid #6b4f3f;border-radius:999px;align-items:center;gap:6px;min-height:44px;padding:8px 22px;font-family:Gaegu,cursive;font-size:19px;font-weight:700;transition:transform .1s,box-shadow .1s;display:inline-flex;box-shadow:3px 3px #6b4f3fd9}.eats-btn:active{background:#f2ddc4;transform:translate(2px,2px);box-shadow:1px 1px #6b4f3fd9}.eats-btn:focus-visible{outline-offset:3px;outline:3px dashed #d8b79c}.eats-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.eats-list{flex-direction:column;gap:20px;width:100%;display:flex}.eats-card{background:#fff;border:3.5px solid #6b4f3f;border-radius:24px;flex-direction:column;transition:transform .2s;animation:.4s cubic-bezier(.2,1.3,.4,1) both popIn;display:flex;overflow:hidden;box-shadow:4px 4px #6b4f3fd9}.eats-card-image-wrap{background:#f4dcc4;border-bottom:3px solid #6b4f3f;width:100%;height:160px;position:relative;overflow:hidden}.eats-card-image{object-fit:cover;width:100%;height:100%;display:block}.eats-card-distance-badge{color:#5e4636;background:#fff;border:2px solid #6b4f3f;border-radius:999px;padding:3px 10px;font-family:Gaegu,cursive;font-size:15px;font-weight:700;position:absolute;top:10px;right:10px;box-shadow:2px 2px #6b4f3fb3}.eats-card-content{flex-direction:column;gap:10px;padding:16px 18px 18px;display:flex}.eats-card-header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.eats-card-title{color:#5e4636;margin:0;font-family:Patrick Hand,cursive;font-size:clamp(22px,5.5vw,26px);line-height:1.15}.eats-card-price{color:#799a68;font-family:Gaegu,cursive;font-size:18px;font-weight:700}.eats-card-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.eats-badge{color:#5e4636;background:#fff3e6;border:2px solid #6b4f3f;border-radius:12px;align-items:center;gap:4px;padding:2px 10px;font-family:Gaegu,cursive;font-size:16px;font-weight:700;display:inline-flex}.eats-badge-halal{color:#3b5f2c;background:#eef7e9;border-color:#588147}.eats-tag{color:#7a5e4d;background:#fdf4ec;border:1.5px solid #d8b79c;border-radius:10px;padding:2px 8px;font-family:Gaegu,cursive;font-size:15px}.eats-card-address{color:#5e4636;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fdf5ec;border:2px solid #dfc3aa;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;margin:2px 0 0;padding:6px 10px 6px 12px;font-family:Gaegu,cursive;font-size:16px;text-decoration:none;transition:transform .1s,box-shadow .1s,background .15s,border-color .15s;display:flex;box-shadow:2.5px 2.5px #6b4f3f66}.eats-card-address:hover{background:#fff3e6;border-color:#6b4f3f;transform:translate(-1px,-1px);box-shadow:3.5px 3.5px #6b4f3fd9}.eats-card-address:active{background:#f2ddc4;transform:translate(1.5px,1.5px);box-shadow:1px 1px #6b4f3fd9}.eats-card-address:focus-visible{outline-offset:3px;outline:3px dashed #d8b79c}.eats-address-main{align-items:center;gap:6px;min-width:0;display:flex}.eats-address-pin{flex-shrink:0;font-size:16px}.eats-address-text{color:#5e4636;font-size:15.5px;font-weight:700;line-height:1.2}.eats-address-cta{color:#5e4636;white-space:nowrap;background:#fff;border:1.5px solid #6b4f3f;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:2px 8px;font-size:13.5px;font-weight:700;transition:transform .1s,background .15s;display:inline-flex;box-shadow:1.5px 1.5px #6b4f3f73}.eats-card-address:hover .eats-address-cta{background:#fff8f0;transform:scale(1.04)}.eats-card-footer{justify-content:flex-end;margin-top:4px;display:flex}.eats-link{color:#5e4636;background:#fff3e6;border:2px solid #6b4f3f;border-radius:999px;align-items:center;gap:5px;padding:4px 14px;font-family:Gaegu,cursive;font-size:17px;font-weight:700;text-decoration:none;transition:transform .1s;display:inline-flex;box-shadow:2px 2px #6b4f3fb3}.eats-link:active{background:#f2ddc4;transform:translate(1px,1px);box-shadow:1px 1px #6b4f3fb3}.eats-link:focus-visible{outline-offset:2px;outline:2px dashed #d8b79c}.eats-status{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;display:flex}.eats-spinner{font-size:38px;animation:1s ease-in-out infinite wiggle}.eats-exhausted-banner{text-align:center;background:#fff;border:3.5px solid #6b4f3f;border-radius:22px;flex-direction:column;align-items:center;gap:8px;width:100%;padding:16px 20px;animation:.4s cubic-bezier(.2,1.3,.4,1) both popIn;display:flex;box-shadow:4px 4px #6b4f3fd9}.eats-exhausted-title{color:#5e4636;margin:0;font-family:Patrick Hand,cursive;font-size:clamp(20px,5.2vw,24px)}.eats-exhausted-text{color:#8a6a55;margin:0;font-family:Gaegu,cursive;font-size:17px;line-height:1.2}.eats-countdown-badge{color:#5e4636;background:#fff3e6;border:2px solid #6b4f3f;border-radius:999px;align-items:center;gap:6px;padding:4px 14px;font-family:Gaegu,cursive;font-size:16px;font-weight:700;display:inline-flex;box-shadow:2px 2px #6b4f3fb3}.eats-remaining-pill{color:#a0806b;background:#fff3e6;border:1.5px solid #d8b79c;border-radius:999px;padding:2px 10px;font-family:Gaegu,cursive;font-size:15px;font-weight:700}.eats-decor{pointer-events:none;opacity:.75;font-size:24px;animation:4s ease-in-out infinite floatY;position:absolute}.panel-scrollable{-webkit-overflow-scrolling:touch;overflow:hidden auto}@media (width<=480px){.eats-panel{gap:14px}.eats-card-image-wrap{height:140px}.eats-card-content{padding:14px 14px 16px}.eats-exhausted-banner{padding:14px 16px}}@media (prefers-reduced-motion:reduce){.eats-card,.eats-decor,.eats-spinner,.eats-exhausted-banner{animation:none!important}}*{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}body{-webkit-text-size-adjust:100%;background:#fdf4ec;font-family:Gaegu,cursive}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes popIn{0%{opacity:0;transform:scale(.4)rotate(-8deg)}60%{opacity:1;transform:scale(1.08)rotate(2deg)}to{opacity:1;transform:scale(1)rotate(-1.5deg)}}@keyframes wiggle{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}@keyframes blink{0%,92%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}@keyframes drift{0%{opacity:0;transform:translateY(0)rotate(0)}15%{opacity:.9}to{transform:translateY(-90px) rotate(var(--r));opacity:0}}.app{flex-direction:column;min-height:100dvh;display:flex}.tabbar{z-index:5;padding-top:env(safe-area-inset-top);background:#fdf4ec;border-bottom:3px solid #e4cbb4;position:sticky;top:0}.tabbar-scroll{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;justify-content:safe center;gap:8px;padding:10px 12px;display:flex;overflow-x:auto}.tabbar-scroll::-webkit-scrollbar{display:none}.tab{color:#5e4636;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fff;border:3px solid #6b4f3f;border-radius:999px;flex:none;min-height:44px;padding:8px 18px;font-family:Gaegu,cursive;font-size:18px}.tab[aria-selected=true]{background:#fff3e6;font-weight:700;box-shadow:3px 3px #6b4f3fd9}.tab:focus-visible{outline-offset:3px;outline:3px dashed #d8b79c}.panel-host{flex:1;min-height:0;display:flex}.panel{padding:32px 20px calc(32px + env(safe-area-inset-bottom));flex-direction:column;flex:1;align-items:center;display:flex;position:relative;overflow:hidden}.panel-centered{justify-content:center}.stage{gap:30px}.flower{pointer-events:none;position:absolute}.greeting{color:#8a6a55;letter-spacing:.3px;text-align:center;margin:0;font-family:Patrick Hand,cursive;font-size:clamp(24px,6.2vw,34px);font-weight:400}.bubble-slot{justify-content:center;align-items:center;width:100%;max-width:440px;min-height:130px;display:flex;position:relative}.kitty-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;outline:none;padding:0;position:relative}.kitty-btn:focus-visible{outline-offset:8px;border-radius:18px;outline:3px dashed #d8b79c}.kitty-svg{max-width:100%;height:auto;animation:4s ease-in-out infinite floatY;display:block;overflow:visible}.hint{color:#b89a85;text-align:center;margin:4px 0 0;font-family:Gaegu,cursive;font-size:18px}.bubble{color:#5e4636;text-align:center;text-wrap:pretty;overflow-wrap:break-word;word-break:break-word;background:#fff;border:3.5px solid #6b4f3f;border-radius:26px;max-width:420px;padding:20px 26px;font-family:Gaegu,cursive;font-size:clamp(20px,5.4vw,27px);font-weight:700;line-height:1.25;animation:.45s cubic-bezier(.2,1.3,.4,1) both popIn;position:relative;box-shadow:4px 5px #6b4f3fd9}.bubble .tail-outer{border-top:16px solid #6b4f3f;border-left:12px solid #0000;border-right:12px solid #0000;width:0;height:0;margin-left:-12px;position:absolute;bottom:-16px;left:50%}.bubble .tail-inner{border-top:11px solid #fff;border-left:8px solid #0000;border-right:8px solid #0000;width:0;height:0;margin-left:-8px;position:absolute;bottom:-10px;left:50%}.empty-bubble{color:#c2a892;text-align:center;font-family:Patrick Hand,cursive;font-size:clamp(18px,4.6vw,22px);animation:3s ease-in-out infinite wiggle}.paw{pointer-events:none;font-size:26px;animation:1.1s ease-out forwards drift;position:absolute;bottom:40px}@media (width<=480px){.stage{gap:22px}.panel{padding-left:16px;padding-right:16px}.bubble-slot{min-height:118px}.bubble{padding:16px 20px}.flower{font-size:22px!important}.tab{padding:8px 14px;font-size:17px}}@media (height<=560px){.stage{gap:16px}.panel{padding-top:20px;padding-bottom:20px}.kitty-svg{width:110px;height:auto}}@media (prefers-reduced-motion:reduce){.kitty-svg,.flower,.empty-bubble,.bubble{animation:none!important}}.gate{z-index:10;padding:max(24px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom));background:#fdf4ec;justify-content:center;align-items:center;font-family:Gaegu,cursive;display:flex;position:fixed;inset:0}.gate-card{text-align:center;width:100%;max-width:320px}.gate-label{color:#8a6a55;margin:0 0 18px;font-family:Patrick Hand,cursive;font-size:24px}.gate-input{color:#5e4636;text-align:center;background:#fff;border:3px solid #6b4f3f;border-radius:16px;outline:none;width:100%;padding:12px 14px;font-family:Gaegu,cursive;font-size:20px}.gate-submit{color:#5e4636;cursor:pointer;background:#fff3e6;border:3px solid #6b4f3f;border-radius:16px;min-height:44px;margin:14px auto 0;padding:8px 22px;font-family:Gaegu,cursive;font-size:18px;display:block}.gate-submit:active{background:#f2ddc4}.gate-error{color:#c0685a;min-height:22px;margin:10px 0 0;font-size:16px}
