:root{--red: #9a1300;--red-dark: #7a0f00;--bg: #fffafe;--cocoa: #3b1f1a;--gold: #e8a74a;--blush: #f8e6e2;--muted: #7a5a54;--line: #efd9d4;--surface: #ffffff;--veg: #1e8e3e;--nonveg: #b3261e;--warn-bg: #fff3dc;--radius: 16px;--shadow: 0 6px 24px rgba(59, 31, 26, .12);--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--font-display: "Fraunces", Georgia, serif;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--cocoa);font-family:var(--font-body);font-size:16px;line-height:1.5;overflow-x:hidden;padding-bottom:calc(96px + env(safe-area-inset-bottom))}#root{max-width:640px;margin:0 auto;min-height:100vh;background:var(--bg)}@media (min-width: 700px){#root{box-shadow:0 0 0 1px var(--line)}}h1,h2,h3,p{margin:0}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}img{display:block}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--muted);font-size:.9375rem}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--red);color:var(--bg);transition:opacity .45s ease,transform .45s var(--ease-out)}.splash.is-leaving{opacity:0;transform:scale(1.04);pointer-events:none}.splash-logo{display:block;animation:logo-pop .7s var(--ease-spring) both;filter:drop-shadow(0 8px 24px rgba(0,0,0,.25))}.splash-name{font-family:var(--font-display);font-size:1.6rem;font-weight:700;margin-top:14px;animation:rise .5s .25s var(--ease-out) both}.splash-tag{opacity:.85;animation:rise .5s .4s var(--ease-out) both}.hero{background:var(--red);color:var(--bg);padding:calc(14px + env(safe-area-inset-top)) 16px 18px}.hero>*{animation:rise .5s var(--ease-out) both}.hero>:nth-child(2){animation-delay:.06s}.hero>:nth-child(3){animation-delay:.12s}.hero-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-logo{flex:none;display:block}.brand h1{font-family:var(--font-display);font-size:1.35rem;font-weight:700;line-height:1.15;letter-spacing:-.01em}.brand-tag{font-size:.875rem;opacity:.85}.status{display:flex;align-items:center;gap:8px;margin-top:14px;padding:9px 12px;border-radius:12px;font-size:.875rem;font-weight:500;background:#fffafe24}.status-dot{flex:none;width:10px;height:10px;border-radius:50%;background:#6ee08b;box-shadow:0 0 #6ee08bb3}.status.is-open .status-dot{animation:pulse 1.8s infinite}.status.is-closed .status-dot{background:var(--gold)}.notice-banner{margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--gold);color:var(--cocoa);font-size:.9375rem;font-weight:500}.is-sold-card{opacity:.6}.add-btn.is-sold{color:var(--muted);border-color:var(--line);background:var(--blush);box-shadow:none;font-size:.8125rem;cursor:not-allowed}.add-btn.is-sold:hover{background:var(--blush);color:var(--muted)}.option.is-sold{opacity:.55;cursor:not-allowed}.search-row{display:flex;gap:10px;margin-top:12px}.search{flex:1;min-width:0;display:flex;align-items:center;gap:8px;height:48px;padding:0 14px;background:var(--bg);color:var(--muted);border-radius:14px}.search input{flex:1;min-width:0;border:0;background:transparent;outline:0;color:var(--cocoa);font-size:1rem}.search:focus-within{box-shadow:0 0 0 3px var(--gold)}.veg-toggle{flex:none;display:flex;align-items:center;gap:8px;height:48px;padding:0 14px;border-radius:14px;border:2px solid rgba(255,250,254,.5);background:transparent;color:var(--bg);font-weight:600;font-size:.9375rem;transition:background-color .2s,color .2s,border-color .2s}.veg-toggle.is-on{background:var(--bg);color:var(--cocoa);border-color:var(--bg)}.icon-btn{flex:none;width:44px;height:44px;border-radius:50%;border:0;background:transparent;display:grid;place-items:center}.icon-btn:hover{background:var(--blush)}.icon-btn.on-red{color:var(--bg);background:#fffafe24}.icon-btn.on-red:hover{background:#fffafe42}.diet{flex:none;width:16px;height:16px;border:2px solid var(--veg);border-radius:3px;display:inline-grid;place-items:center;background:#fff}.diet:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--veg)}.diet-nonveg{border-color:var(--nonveg)}.diet-nonveg:after{background:var(--nonveg);border-radius:0;clip-path:polygon(50% 8%,96% 92%,4% 92%);width:9px;height:9px}.hero .diet{background:#fff}.chips-bar{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}.chips{list-style:none;margin:0;padding:8px 16px;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chips a{display:flex;align-items:center;height:44px;padding:0 16px;border-radius:22px;white-space:nowrap;border:1.5px solid var(--line);color:var(--cocoa);text-decoration:none;font-weight:500;background:var(--surface);transition:background-color .2s,color .2s,border-color .2s,transform .15s}.chips a:active{transform:scale(.96)}.chips a.is-on{background:var(--red);border-color:var(--red);color:var(--bg)}main{padding:0 16px}.category{padding-top:28px;scroll-margin-top:64px}.category h2{font-family:var(--font-display);font-size:1.75rem;font-weight:700;letter-spacing:-.02em;line-height:1.15}.group{margin-top:14px}.group-title{font-size:.8125rem;font-weight:600;color:var(--red);letter-spacing:.02em;margin-bottom:10px}.cards{display:grid;gap:12px}.card{display:flex;justify-content:space-between;gap:14px;padding:16px 14px 28px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.card-text{min-width:0;flex:1}.card-diet{display:flex;gap:4px}.card h3{margin-top:6px;font-size:1.0625rem;font-weight:600;line-height:1.3;overflow-wrap:anywhere}.price{margin-top:2px;font-weight:600;color:var(--red);font-variant-numeric:tabular-nums}.price .from{font-weight:400;color:var(--muted);font-size:.875rem}.sub{margin-top:6px;color:var(--muted);font-size:.875rem;line-height:1.4;overflow-wrap:anywhere}.card-compact{align-items:center;justify-content:flex-start;padding:10px 12px 10px 16px;gap:12px}.card-compact h3{margin-top:0;font-size:1rem}.card-compact .sub{margin-top:2px}.compact-action{flex:none;width:104px}.compact-action .add-btn,.compact-action .stepper-on-card{box-shadow:none}.card-photo{position:relative;flex:none;width:104px}.card-photo img,.tile{width:104px;height:104px;border-radius:14px;object-fit:cover}.tile{display:grid;place-items:center;font-family:var(--font-display);font-size:2.4rem;font-weight:700;color:#fffafee6}.tile-0{background:linear-gradient(135deg,#9a1300,#c0391f)}.tile-1{background:linear-gradient(135deg,#3b1f1a,#6b3a2e)}.tile-2{background:linear-gradient(135deg,#b0701a,#e8a74a);color:#3b1f1a}.tile-3{background:linear-gradient(135deg,#7a0f00,#3b1f1a)}.tile-4{background:linear-gradient(135deg,#c0391f,#e8a74a)}.card-action{position:absolute;left:50%;bottom:-20px;transform:translate(-50%);width:112px}.in-cart{position:absolute;top:6px;right:6px;background:var(--gold);color:var(--cocoa);font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:10px}.add-btn{position:relative;width:100%;height:44px;border-radius:12px;border:1.5px solid var(--red);background:var(--surface);color:var(--red);font-weight:700;letter-spacing:.04em;display:flex;align-items:center;justify-content:center;gap:4px;box-shadow:0 4px 12px #9a13002e;transition:transform .12s,background-color .2s,color .2s}.add-btn:hover{background:var(--red);color:var(--bg)}.add-btn:active{transform:scale(.94)}.add-btn small{position:absolute;left:0;right:0;bottom:-17px;color:var(--muted);font-size:.6875rem;font-weight:500;letter-spacing:0}.stepper{display:inline-flex;align-items:center;height:44px;border-radius:12px;background:var(--red);color:var(--bg)}.stepper button{width:44px;height:44px;border:0;background:transparent;color:inherit;display:grid;place-items:center;border-radius:12px;transition:transform .12s}.stepper button:active{transform:scale(.85)}.stepper span{min-width:28px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}.stepper-on-card{width:100%;justify-content:space-between;box-shadow:0 4px 12px #9a13004d}.stepper-sm{height:36px}.stepper-sm button{width:36px;height:36px}.qty-pop{animation:qty-pop .25s var(--ease-spring)}.card-tap{cursor:pointer}.card h3 a{color:inherit;text-decoration:none}.card h3 a:hover{text-decoration:underline}.card-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pp-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;justify-content:center;background:#3b1f1a80;animation:fade .25s ease both}.pp-root.is-closing{animation:fade-out .2s ease-in both}.pp{width:100%;max-width:640px;height:100%;display:flex;flex-direction:column;background:var(--bg);outline:0;animation:sheet-up .38s var(--ease-out) both}.pp-root.is-closing .pp{animation:sheet-down .2s ease-in both}.pp-scroll{flex:1;overflow-y:auto;overscroll-behavior:contain}.pp-hero{position:relative;overflow:hidden;background:var(--blush)}.pp-hero img,.pp-hero .tile{width:100%;height:auto;aspect-ratio:4 / 3;border-radius:0;object-fit:cover;animation:hero-in .8s var(--ease-out) both}.pp-hero img{display:block}.pp-hero .tile{font-size:6rem}.pp-round{position:absolute;top:calc(12px + env(safe-area-inset-top));width:44px;height:44px;border-radius:50%;border:0;display:grid;place-items:center;background:#fffafeeb;color:var(--cocoa);box-shadow:0 2px 10px #3b1f1a40;transition:transform .12s}.pp-round:active{transform:scale(.9)}.pp-back{left:12px}.pp-share{right:12px}.pp-toast{position:absolute;right:12px;bottom:12px;padding:6px 12px;border-radius:10px;background:var(--cocoa);color:var(--bg);font-size:.875rem;animation:rise .25s var(--ease-out) both}.pp-body{display:grid;gap:6px;padding:18px 20px 24px;margin-top:-16px;position:relative;background:var(--bg);border-radius:20px 20px 0 0;animation:rise .45s .1s var(--ease-out) both}.pp-cat{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.875rem;font-weight:500}.pp-body h1{font-family:var(--font-display);font-size:1.75rem;font-weight:700;line-height:1.2;letter-spacing:-.02em;overflow-wrap:anywhere}.pp-price{font-size:1.25rem}.pp-note{color:var(--muted);font-size:.9375rem}.pp-section{display:grid;gap:8px;margin-top:14px}.pp-section h2{font-size:.8125rem;font-weight:600;color:var(--red);letter-spacing:.02em}.pp-section p{line-height:1.6}.pp-allergen{padding:10px 12px;border-radius:12px;background:var(--warn-bg);border:1px solid #f1d49a;color:#5b3b00;font-size:.9375rem}.ingredients{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.ingredients li{padding:6px 14px;border-radius:18px;background:var(--blush);color:var(--cocoa);font-size:.9375rem;animation:rise .4s var(--ease-out) both}.pp-foot{display:flex;gap:12px;padding:12px 20px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg)}.btn-primary.is-added{background:var(--veg);border-color:var(--veg)}.skeleton-list{display:grid;gap:12px;padding-top:24px}.card.skeleton{padding-bottom:16px}.sk{display:block;border-radius:8px;background:linear-gradient(100deg,var(--blush) 30%,#fff5f3 50%,var(--blush) 70%);background-size:300% 100%;animation:shimmer 1.4s linear infinite}.sk-dot{width:16px;height:16px}.sk-line{height:16px;margin-top:10px;width:70%}.sk-line.short{width:40%}.sk-photo{width:104px;height:104px;border-radius:14px;flex:none}.empty{display:grid;justify-items:center;gap:12px;text-align:center;padding:56px 16px}.big{font-family:var(--font-display);font-size:1.35rem;font-weight:700}.footer{margin-top:40px;padding:24px 0 8px;border-top:1px solid var(--line);display:grid;gap:8px;color:var(--muted);font-size:.875rem}.footer .insta{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--red);font-weight:600;text-decoration:none}.footer .fine{font-size:.8125rem}.cart-bar{position:fixed;z-index:30;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));width:min(608px,calc(100% - 32px));height:60px;padding:0 18px;border:0;border-radius:16px;display:flex;align-items:center;justify-content:space-between;background:var(--red);color:var(--bg);box-shadow:var(--shadow);animation:bar-in .4s var(--ease-spring) both;transform:translate(-50%)}.cart-bar:active{background:var(--red-dark)}.cart-info{display:flex;align-items:center;gap:12px}.cart-info small{opacity:.85;font-size:.9375rem}.cart-bag{position:relative;display:grid;place-items:center}.cart-count{position:absolute;top:-9px;right:-12px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--gold);color:var(--cocoa);font-size:.75rem;font-weight:700;display:grid;place-items:center;animation:bump .35s var(--ease-spring)}.cart-cta{font-weight:700}.fly-dot{position:fixed;z-index:200;width:18px;height:18px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px var(--red);pointer-events:none}.sheet-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-end;justify-content:center}.sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#3b1f1a80;animation:fade .25s ease both}.sheet{position:relative;width:100%;max-width:640px;max-height:92dvh;display:flex;flex-direction:column;background:var(--bg);border-radius:24px 24px 0 0;box-shadow:var(--shadow);outline:0;animation:sheet-up .35s var(--ease-out) both}.sheet-root.is-closing .sheet{animation:sheet-down .2s ease-in both}.sheet-root.is-closing .sheet-backdrop{animation:fade-out .2s ease-in both}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 12px 6px 20px}.sheet-head h2{font-family:var(--font-display);font-size:1.35rem;font-weight:700;overflow-wrap:anywhere}.sheet-body{overflow-y:auto;padding:8px 20px 20px;display:grid;gap:16px;align-content:start}.sheet-foot{padding:12px 20px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);display:grid;gap:10px;background:var(--bg)}.sheet-actions{display:flex;gap:12px}.grow{flex:1}.options{border:0;margin:0;padding:0;display:grid;gap:8px;min-width:0}.options legend{padding:0;margin-bottom:8px;font-weight:600}.req{color:var(--red);font-weight:500;font-size:.875rem;margin-left:4px}.option{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 14px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);cursor:pointer;transition:border-color .2s,background-color .2s}.option.is-on{border-color:var(--red);background:var(--blush)}.option input,.chip input{position:absolute;opacity:0;pointer-events:none}.option:focus-within,.chip:focus-within{outline:3px solid var(--gold);outline-offset:2px}.option-name{flex:1;font-weight:500}.option-price{font-weight:600;color:var(--red);font-variant-numeric:tabular-nums}.chips-wrap{display:flex;flex-wrap:wrap;gap:8px}.chip{position:relative;display:flex;align-items:center;min-height:44px;padding:0 18px;border-radius:22px;border:1.5px solid var(--line);background:var(--surface);cursor:pointer;font-weight:500;transition:all .2s}.chip.is-on{background:var(--red);border-color:var(--red);color:var(--bg)}.btn-primary,.btn-outline,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 20px;border-radius:14px;font-weight:600;font-size:1rem;text-decoration:none;border:1.5px solid var(--red);transition:transform .12s,background-color .2s,opacity .2s}.btn-primary{background:var(--red);color:var(--bg)}.btn-primary:hover{background:var(--red-dark)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-outline{background:transparent;color:var(--red)}.btn-outline:hover{background:var(--blush)}.btn-ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn-primary:active,.btn-outline:active{transform:scale(.97)}.lines{list-style:none;margin:0;padding:0;display:grid}.line{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.line-text{display:grid;min-width:0;overflow-wrap:anywhere}.line-price{min-width:64px;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.total-row{display:flex;justify-content:space-between;font-size:1.125rem}.notice{padding:12px 14px;border-radius:12px;background:var(--warn-bg);color:#5b3b00;font-size:.9375rem;border:1px solid #f1d49a}.error{color:var(--red);font-size:.875rem;font-weight:500}.form{display:grid;gap:14px}.field{display:grid;gap:6px}.field-label{font-weight:600;font-size:.9375rem}.field-hint{color:var(--muted);font-size:.8125rem}.field input,.field textarea{width:100%;min-height:48px;padding:10px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);font-size:1rem;resize:vertical}.field input:focus,.field textarea:focus{outline:0;border-color:var(--red);box-shadow:0 0 0 3px #9a130026}.field.has-error input{border-color:var(--red)}.center-stack{display:grid;justify-items:center;gap:14px;text-align:center;padding:20px 0 8px}.plate-loader{width:76px;height:76px;border-radius:50%;border:8px solid var(--blush);border-top-color:var(--red);animation:spin .9s linear infinite;position:relative}.plate-loader:after{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border-radius:50%;border:3px solid var(--gold);opacity:.8}.progress{width:100%;max-width:280px;height:8px;border-radius:4px;background:var(--blush);overflow:hidden}.progress span{display:block;height:100%;background:var(--red);transform-origin:left;animation:fill 1.4s var(--ease-out) forwards}.success{position:relative;width:72px;height:72px;border-radius:50%;background:var(--red);color:var(--bg);display:grid;place-items:center;animation:logo-pop .55s var(--ease-spring) both}.success:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:3px solid var(--gold);animation:ring 1s .2s ease-out both}.success svg{width:36px;height:36px}.success path{stroke-dasharray:30;stroke-dashoffset:30;animation:draw .45s .25s ease-out forwards}@keyframes hero-in{0%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes logo-pop{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{70%{box-shadow:0 0 0 9px #6ee08b00}to{box-shadow:0 0 #6ee08b00}}@keyframes shimmer{to{background-position:-100% 0}}@keyframes fade{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes sheet-up{0%{transform:translateY(100%)}}@keyframes sheet-down{to{transform:translateY(100%)}}@keyframes bar-in{0%{opacity:0;transform:translate(-50%,24px)}to{opacity:1;transform:translate(-50%)}}@keyframes bump{0%{transform:scale(.4)}60%{transform:scale(1.35)}to{transform:scale(1)}}@keyframes qty-pop{0%{transform:scale(.6)}to{transform:scale(1)}}@keyframes fill{0%{transform:scaleX(.04)}to{transform:scaleX(1)}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes ring{0%{transform:scale(.9);opacity:1}to{transform:scale(1.7);opacity:0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.splash{display:none}}
