/* =========================================================
   Cardápio estilo reels — mobile first
   ========================================================= */
@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Onest";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/onest-latin-wght-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Onest";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/onest-latin-ext-wght-normal.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C0,U+2C60-2C7F,U+A720-A7FF}

:root{
  --accent:#F2C14E;
  --accent-ink:#141210;
  --ink:#FFFFFF;
  --ink-2:rgba(255,255,255,.78);
  --ink-3:rgba(255,255,255,.56);
  --glass:rgba(255,255,255,.16);
  --glass-strong:rgba(255,255,255,.26);
  --glass-line:rgba(255,255,255,.22);
  --sheet:#1C1A19;
  --sheet-2:#262322;
  --sheet-line:rgba(255,255,255,.09);
  --wa:#25D366;
  --serif:"Instrument Serif",ui-serif,Georgia,serif;
  --sans:"Onest",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --safe-t:env(safe-area-inset-top,0px);
  --safe-b:env(safe-area-inset-bottom,0px);
  --app-w:100vw;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;height:100%;background:#000;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
body{overflow:hidden;overscroll-behavior:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,textarea{font:inherit;color:inherit}
svg{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.glass{background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(16px) saturate(150%);backdrop-filter:blur(16px) saturate(150%)}

/* ---------- moldura (desktop vira um "celular" centralizado) ---------- */
.backdrop{position:fixed;inset:-60px;background:#000 center/cover no-repeat;filter:blur(48px) brightness(.42) saturate(1.2);transition:background-image .6s;z-index:0}
.app{position:relative;z-index:1;height:100dvh;width:100%;margin:0 auto;overflow:hidden;background:#000}
@media (min-width:640px){
  :root{--app-w:min(440px,calc(100dvh * .5))}
  .app{width:var(--app-w);height:min(100dvh,920px);top:max(0px,calc((100dvh - 920px)/2));border-radius:28px;box-shadow:0 30px 120px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.08)}
}

/* ---------- topo ---------- */
.top{position:absolute;inset:0 0 auto 0;z-index:20;padding-top:calc(var(--safe-t) + 10px);pointer-events:none;background:linear-gradient(to bottom,rgba(0,0,0,.55),rgba(0,0,0,.18) 70%,transparent)}
.top > *{pointer-events:auto}
.top-row{display:flex;align-items:center;justify-content:space-between;padding:0 16px 10px}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.brand-logo{width:30px;height:30px;border-radius:50%;object-fit:cover;border:1px solid var(--glass-line)}
.brand-name{font-family:var(--serif);font-size:1.45rem;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 12px rgba(0,0,0,.4)}
.cart-btn{position:relative;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:1.25rem;transition:transform .2s}
.cart-btn.bump{animation:bump .45s ease}
.cart-count[hidden]{display:none}
.cart-count{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--accent);color:var(--accent-ink);font-size:.72rem;font-weight:700;display:grid;place-items:center}
@keyframes bump{0%{transform:scale(1)}35%{transform:scale(1.18)}100%{transform:scale(1)}}

.chips{display:flex;gap:8px;overflow-x:auto;padding:0 16px 10px;scrollbar-width:none;scroll-snap-type:x proximity;transition:opacity .3s}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;scroll-snap-align:start;padding:8px 15px;border-radius:999px;font-size:.86rem;font-weight:500;letter-spacing:.005em;background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(14px) saturate(150%);backdrop-filter:blur(14px) saturate(150%);color:var(--ink);transition:background .25s,color .25s,border-color .25s}
.chip.on{background:rgba(255,255,255,.92);color:#151313;border-color:transparent}
.is-cover .chips,.is-cover .segments,.is-cover .brand{opacity:0;pointer-events:none}
.brand{transition:opacity .3s}

/* barras de progresso dentro da categoria (tipo stories) */
.segments{display:flex;gap:4px;padding:0 16px;height:3px;transition:opacity .3s}
.segments i{flex:1;border-radius:2px;background:rgba(255,255,255,.28);overflow:hidden;position:relative}
.segments i.done{background:rgba(255,255,255,.55)}
.segments i.now{background:#fff}

/* ---------- feed ---------- */
.feed{height:100%;overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior-y:contain;scrollbar-width:none}
.feed::-webkit-scrollbar{display:none}
.slide{position:relative;height:100%;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden;isolation:isolate}

.media{position:absolute;inset:0;z-index:0;background:hsl(var(--h) 30% 14%)}
.media img,.media video{width:100%;height:100%;object-fit:cover;display:block}
.fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden;
  background:
    radial-gradient(120% 70% at 20% 15%,hsl(var(--h) 70% 58% / .95),transparent 60%),
    radial-gradient(90% 60% at 90% 70%,hsl(calc(var(--h) + 40) 75% 45% / .9),transparent 65%),
    linear-gradient(160deg,hsl(var(--h) 45% 22%),hsl(calc(var(--h) - 30) 40% 9%))}
.fallback::after{content:"";position:absolute;inset:0;opacity:.22;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.fallback span{font-family:var(--serif);font-style:italic;font-size:min(9rem,calc(var(--app-w) * 1.55 / var(--len,8)));line-height:.86;letter-spacing:-.03em;color:rgba(255,255,255,.13);text-align:center;transform:rotate(-8deg);padding:0 6%;overflow-wrap:normal}

.shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(to top,rgba(0,0,0,.86) 0%,rgba(0,0,0,.55) 30%,rgba(0,0,0,0) 58%)}

/* ---------- trilho lateral ---------- */
.rail{position:absolute;z-index:3;right:12px;bottom:calc(var(--safe-b) + 150px);display:flex;flex-direction:column;align-items:center;gap:16px}
.rail-btn{display:flex;flex-direction:column;align-items:center;gap:4px}
.rail-ico{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-size:1.3rem;transition:transform .15s}
.rail-btn:active .rail-ico{transform:scale(.9)}
.rail-num{font-size:.74rem;font-weight:600;min-height:1em;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.like[aria-pressed="true"] .rail-ico{background:rgba(255,60,90,.22);border-color:rgba(255,90,120,.5)}
.like[aria-pressed="true"] svg{fill:#FF3D63;stroke:#FF3D63}
.like.pop .rail-ico{animation:bump .4s ease}
.sound .i-on{display:none}
.sound.on .i-on{display:block}
.sound.on .i-off{display:none}

/* ---------- informações do prato ---------- */
.info{position:absolute;z-index:3;left:0;right:70px;bottom:0;padding:0 16px calc(var(--safe-b) + 26px) 18px}
.badge{display:inline-block;margin-bottom:10px;padding:5px 11px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:.74rem;font-weight:650;letter-spacing:.01em}
.dish-name{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(2.55rem,11.5vw,3.4rem);line-height:.92;letter-spacing:-.012em;text-wrap:balance;cursor:pointer;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.dish-desc{margin:10px 0 0;font-size:.92rem;line-height:1.45;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer;max-width:34ch}
.dish-actions{display:flex;align-items:center;gap:10px;margin-top:16px;flex-wrap:wrap}
.price{display:inline-flex;align-items:baseline;gap:8px;padding:9px 15px;border-radius:999px;font-weight:600;font-size:.98rem;font-variant-numeric:tabular-nums}
.price s{font-weight:400;font-size:.8rem;color:var(--ink-3)}
.act{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:42px;padding:0 18px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-weight:650;font-size:.95rem;transition:transform .15s,filter .15s}
.act svg{font-size:1.05rem;stroke-width:2.4}
.act:active{transform:scale(.96)}
.act.ghost{background:var(--glass);color:var(--ink);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.act.wide{flex:1;height:52px;font-size:1rem}
.sheet-foot.col .act.wide{flex:none}
.cart-table{display:inline-flex;margin:2px 0 4px;padding:6px 12px;border-radius:999px;background:var(--sheet-2);font-size:.85rem;color:var(--ink-2)}
.act.wa{background:var(--wa);color:#0B2A17}
.act[disabled]{opacity:.45;pointer-events:none}

/* coração do duplo toque */
.burst{position:absolute;z-index:6;width:110px;height:110px;margin:-55px 0 0 -55px;pointer-events:none;color:#FF3D63;animation:burst .8s cubic-bezier(.2,.9,.3,1.2) forwards}
.burst svg{width:100%;height:100%;fill:currentColor;stroke:none;filter:drop-shadow(0 6px 20px rgba(0,0,0,.35))}
@keyframes burst{0%{transform:scale(.2) rotate(-12deg);opacity:0}25%{transform:scale(1.1) rotate(4deg);opacity:1}55%{transform:scale(.95) rotate(0)}100%{transform:scale(1.25) translateY(-40px);opacity:0}}

/* ---------- capa ---------- */
.cover{display:flex;flex-direction:column;justify-content:flex-end;background:#0E0D0C}
.cover-glow{position:absolute;inset:0;background:radial-gradient(90% 55% at 15% 10%,color-mix(in srgb,var(--accent) 55%,transparent),transparent 70%),radial-gradient(70% 50% at 100% 60%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 70%)}
.cover-body{position:relative;padding:calc(var(--safe-t) + 64px) 22px calc(var(--safe-b) + 104px);max-height:100%;overflow:hidden}
@media (max-height:760px){
  .cover-name{font-size:clamp(3.2rem,16vw,4.6rem)!important}
  .cover-tagline{font-size:.92rem;margin-top:10px}
  .cover-index{margin-top:18px}
  .cover-index button{padding:8px 2px;font-size:1.35rem}
  .cover-meta{margin-top:12px}
  .cover-body{padding-bottom:calc(var(--safe-b) + 88px)}
  .cover-hint{bottom:calc(var(--safe-b) + 18px)}
}
@media (max-height:640px){.cover-tagline,.cover-meta{display:none}.cover-index button{font-size:1.2rem;padding:6px 2px}}
.cover-logo{width:64px;height:64px;border-radius:50%;object-fit:cover;margin-bottom:18px;border:1px solid var(--glass-line)}
.cover-table{display:inline-block;margin:0 0 14px;padding:6px 12px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-line);font-size:.82rem;font-weight:550}
.cover-name{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(4rem,21vw,6rem);line-height:.86;letter-spacing:-.025em;text-wrap:balance}
.cover-tagline{margin:14px 0 0;font-size:1rem;line-height:1.45;color:var(--ink-2);max-width:32ch}
.cover-index{list-style:none;margin:28px 0 0;padding:0;border-top:1px solid rgba(255,255,255,.14)}
.cover-index li{border-bottom:1px solid rgba(255,255,255,.14)}
.cover-index button{width:100%;display:flex;justify-content:space-between;align-items:baseline;padding:12px 2px;font-family:var(--serif);font-size:1.6rem;line-height:1.1;text-align:left}
.cover-count{font-family:var(--sans);font-size:.8rem;color:var(--ink-3);font-variant-numeric:tabular-nums}
.cover-meta{display:flex;flex-direction:column;gap:2px;margin:18px 0 0;font-size:.82rem;color:var(--ink-3)}
.cover-empty{margin-top:20px;color:var(--ink-2)}
.cover-hint{white-space:nowrap;position:absolute;left:50%;bottom:calc(var(--safe-b) + 28px);transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;font-size:.82rem;color:var(--ink-2)}
.cover-hint svg{font-size:1.4rem;animation:nudge 1.6s ease-in-out infinite}
@keyframes nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
.cover-body > *{animation:rise .7s cubic-bezier(.2,.8,.2,1) both}
.cover-body > :nth-child(2){animation-delay:.06s}.cover-body > :nth-child(3){animation-delay:.12s}.cover-body > :nth-child(4){animation-delay:.18s}.cover-body > :nth-child(5){animation-delay:.24s}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* ---------- fim ---------- */
.end{display:grid;place-items:center;background:#0E0D0C;text-align:center}
.end-body{padding:0 28px;max-width:360px}
.end-title{margin:0;font-family:var(--serif);font-size:3rem;line-height:1}
.end-sub{color:var(--ink-2);line-height:1.5;margin:12px 0 22px}
.end-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.end-ig{display:inline-block;margin-top:22px;color:var(--ink-3);text-decoration:none;font-size:.9rem}

/* ---------- bottom sheets ---------- */
.sheet-wrap{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center}
.sheet-wrap[hidden]{display:none}
.sheet-scrim{position:absolute;inset:0;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade .25s ease}
.sheet{position:relative;width:100%;max-width:var(--app-w);max-height:88dvh;display:flex;flex-direction:column;background:var(--sheet);border-radius:24px 24px 0 0;border:1px solid var(--sheet-line);border-bottom:0;animation:up .32s cubic-bezier(.2,.9,.25,1);touch-action:pan-y}
@media (min-width:640px){.sheet-wrap{align-items:center}.sheet{border-radius:24px;border-bottom:1px solid var(--sheet-line);max-height:min(82dvh,760px)}}
.sheet:focus{outline:none}
.sheet.closing{animation:down .22s ease forwards}
@keyframes up{from{transform:translateY(100%)}to{transform:none}}
@keyframes down{to{transform:translateY(100%)}}
@keyframes fade{from{opacity:0}}
.sheet-grip{width:40px;height:4px;border-radius:2px;background:rgba(255,255,255,.22);margin:10px auto 0}
.sheet-x{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--sheet-2);font-size:1.1rem}
.sheet-scroll{overflow-y:auto;padding:14px 20px 8px;overscroll-behavior:contain}
.sheet-title{margin:4px 44px 6px 0;font-family:var(--serif);font-weight:400;font-size:2.3rem;line-height:.98}
.sheet-desc{margin:0 0 6px;color:var(--ink-2);line-height:1.5;font-size:.95rem}
.sheet-foot{display:flex;gap:12px;align-items:center;padding:12px 20px calc(var(--safe-b) + 16px);border-top:1px solid var(--sheet-line)}
.sheet-foot.col{flex-direction:column;align-items:stretch}

.group{margin-top:20px}
.group-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.group-name{font-weight:650;font-size:1rem}
.group-rule{font-size:.78rem;color:var(--ink-3)}
.group-rule.req{color:var(--accent)}
.opt{display:flex;align-items:center;gap:12px;padding:13px 2px;border-bottom:1px solid var(--sheet-line);cursor:pointer}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt-mark{flex:none;width:22px;height:22px;border-radius:50%;border:1.6px solid rgba(255,255,255,.35);display:grid;place-items:center;transition:all .15s}
.opt[data-multi] .opt-mark{border-radius:7px}
.opt input:checked + .opt-mark{background:var(--accent);border-color:var(--accent)}
.opt input:checked + .opt-mark::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent-ink)}
.opt[data-multi] input:checked + .opt-mark::after{width:10px;height:6px;border-radius:0;background:none;border:2px solid var(--accent-ink);border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
.opt input:focus-visible + .opt-mark{outline:2px solid var(--accent);outline-offset:2px}
.opt-name{flex:1}
.opt-price{font-size:.88rem;color:var(--ink-2);font-variant-numeric:tabular-nums}
.opt.disabled{opacity:.4;pointer-events:none}
.group.shake{animation:shake .4s}
@keyframes shake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}

.field{display:block;margin-top:18px}
.field span{display:block;font-size:.82rem;color:var(--ink-3);margin-bottom:6px}
.field input,.field textarea{width:100%;padding:12px 14px;border-radius:14px;border:1px solid var(--sheet-line);background:var(--sheet-2);outline:none;resize:none}
.field input:focus,.field textarea:focus{border-color:color-mix(in srgb,var(--accent) 70%,transparent)}

.stepper{display:flex;align-items:center;height:52px;border-radius:999px;background:var(--sheet-2);border:1px solid var(--sheet-line)}
.stepper button{width:44px;height:100%;font-size:1.3rem}
.stepper output{min-width:22px;text-align:center;font-weight:650;font-variant-numeric:tabular-nums}
.stepper.sm{height:36px}.stepper.sm button{width:32px;font-size:1.1rem}

.cart-list{list-style:none;margin:10px 0 0;padding:0}
.cart-item{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--sheet-line)}
.cart-thumb{width:52px;height:52px;border-radius:12px;object-fit:cover;background:hsl(var(--h,30) 40% 30%)}
.cart-name{font-weight:600;line-height:1.25}
.cart-sub{font-size:.8rem;color:var(--ink-3);margin-top:2px;line-height:1.35}
.cart-price{font-size:.9rem;color:var(--ink-2);margin-top:4px;font-variant-numeric:tabular-nums}
.cart-empty{color:var(--ink-2);padding:14px 0}
.cart-total{display:flex;justify-content:space-between;align-items:baseline;font-size:1rem}
.cart-total strong{font-size:1.4rem;font-variant-numeric:tabular-nums}
.cart-note{margin:0;font-size:.78rem;color:var(--ink-3);text-align:center}

/* ---------- toast ---------- */
.toast{position:fixed;z-index:80;left:50%;top:calc(var(--safe-t) + 18px);transform:translate(-50%,-30px);opacity:0;padding:11px 18px;border-radius:999px;background:rgba(255,255,255,.95);color:#151313;font-weight:600;font-size:.9rem;box-shadow:0 10px 30px rgba(0,0,0,.35);transition:all .3s cubic-bezier(.2,.9,.3,1.2);pointer-events:none;white-space:nowrap}
.toast.show{opacity:1;transform:translate(-50%,0)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .feed{scroll-behavior:auto}
}
