/* Grill'n'chill — витрина самовывоза. Мир: их собственная вывеска, жёлтое по чёрному. */

:root{
  --ground:#0B0B0B;
  --panel:#151412;
  --sign:#FFC400;
  --paper:#F2EFE9;
  --mute:#9A948A;
  --rule:#2A2724;
  --ease:cubic-bezier(.16,1,.3,1);
  --bar-h:64px;
}

*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none !important}

html{-webkit-text-size-adjust:100%;background:#000}

body{
  background:#000;
  color:var(--paper);
  font-family:'Alumni Sans','PT Sans Narrow','Oswald',ui-sans-serif,system-ui,sans-serif;
  font-weight:500;line-height:1.1;
  text-transform:uppercase;
  overscroll-behavior-y:none;
}

b{font-weight:800}

.phone{
  max-width:460px;margin:0 auto;background:var(--ground);
  min-height:100dvh;position:relative;
  padding-bottom:calc(var(--bar-h) + 48px + env(safe-area-inset-bottom));
  overflow-x:hidden;
}

.skip{position:absolute;left:-9999px;top:0;z-index:40;background:var(--sign);color:#000;padding:10px 16px}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--sign);outline-offset:2px}

/* ——— шапка ——— */

.top{
  background:var(--ground);
  padding:calc(12px + env(safe-area-inset-top)) 16px 10px;
  border-bottom:1px solid var(--rule);
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
}
.top__mark{display:flex;align-items:baseline;gap:8px;min-width:0}
.top__name{
  color:var(--sign);font-weight:900;font-size:1.9rem;letter-spacing:-.03em;line-height:.9;
  white-space:nowrap;
}
.top__name i{font-style:normal;font-weight:400}
.top__tag{
  color:var(--mute);font-size:.62rem;font-weight:700;letter-spacing:.18em;white-space:nowrap;
}
.top__where{color:var(--mute);font-size:.62rem;font-weight:700;letter-spacing:.12em;text-align:right}

/* ——— экраны ——— */

main{display:block}
.screen{padding:0 0 8px}
#screen-cart,#screen-slot,#screen-pay,#screen-code{padding:20px 16px 8px}

.head{
  font-size:1.5rem;font-weight:900;letter-spacing:-.02em;line-height:1;
  display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:14px;
}
.head__day{color:var(--sign);font-size:.72rem;letter-spacing:.16em;font-weight:800}

/* ——— бейдж демо ——— */

.top__demo{
  display:inline-block;margin-left:10px;background:var(--sign);color:#000;
  font-size:.56rem;font-weight:800;letter-spacing:.16em;padding:3px 5px;vertical-align:2px;
}

/* ——— вступление ——— */

.lede{padding:18px 16px 16px;border-bottom:1px solid var(--rule)}
.lede__head{
  font-size:1.6rem;font-weight:900;letter-spacing:-.025em;line-height:1;color:var(--paper);
}
.why{list-style:none;margin:12px 0 0}
.why li{
  position:relative;padding-left:16px;margin-top:7px;
  font-size:.76rem;font-weight:600;letter-spacing:.01em;line-height:1.45;
  text-transform:none;color:var(--paper);
}
.why li::before{
  content:"";position:absolute;left:0;top:.45em;width:7px;height:7px;background:var(--sign);
}
.lede__where{
  margin-top:13px;font-size:.68rem;font-weight:700;letter-spacing:.1em;color:var(--mute);
}

.rail-wrap{padding-top:18px}
.rail-wrap .group__head{margin:0 16px 10px;padding-bottom:8px;border-bottom:1px solid var(--rule)}

.rail{
  display:flex;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;scroll-padding-left:16px;
  padding:0 16px 18px;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.rail::-webkit-scrollbar{display:none}

.card{
  flex:0 0 78%;scroll-snap-align:start;
  background:var(--panel);border:0;padding:0;color:inherit;font:inherit;text-transform:inherit;
  text-align:left;cursor:pointer;display:block;
}
.card__pic{display:block;width:100%;aspect-ratio:5/4;object-fit:cover;background:var(--panel)}
.card__cap{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 12px 12px}
.card__name{font-size:1.15rem;font-weight:900;letter-spacing:-.02em;line-height:.95}
.card__note{
  display:block;margin-top:6px;font-size:.68rem;font-weight:600;letter-spacing:.02em;
  line-height:1.45;text-transform:none;color:var(--mute);
}
.card__price{color:var(--sign);font-size:1.05rem;font-weight:900;white-space:nowrap}
.card.is-on{outline:2px solid var(--sign);outline-offset:-2px}

/* ——— категории ——— */

.chips{
  position:sticky;top:0;z-index:20;display:flex;gap:6px;overflow-x:auto;
  padding:10px 16px;background:var(--ground);border-bottom:1px solid var(--rule);
  scrollbar-width:none;
}
.chips::-webkit-scrollbar{display:none}
.chip{
  flex:0 0 auto;background:none;border:1px solid var(--rule);color:var(--mute);
  font:inherit;text-transform:inherit;font-size:.7rem;font-weight:800;letter-spacing:.12em;
  padding:8px 12px;min-height:36px;cursor:pointer;
  transition:color .2s linear,border-color .2s linear,background-color .2s linear;
}
.chip.is-on{background:var(--sign);border-color:var(--sign);color:#000}

/* ——— список ——— */

.group{padding:22px 16px 0}
.group__head{
  font-size:.72rem;font-weight:800;letter-spacing:.2em;color:var(--mute);
  padding-bottom:8px;border-bottom:1px solid var(--rule);margin-bottom:4px;
}

.item{
  display:grid;grid-template-columns:76px 1fr auto;align-items:center;gap:12px;
  width:100%;background:none;border:0;border-bottom:1px solid var(--rule);
  color:inherit;font:inherit;text-transform:inherit;text-align:left;
  padding:10px 0;cursor:pointer;min-height:60px;-webkit-tap-highlight-color:transparent;
}
.item--nopic{grid-template-columns:1fr auto}
.item__pic{
  width:76px;height:76px;object-fit:cover;display:block;background:var(--panel);
  transition:filter .25s linear;
}
.item__body{min-width:0}
.item__name{font-size:1.02rem;font-weight:800;letter-spacing:-.01em;line-height:1.05;display:block}
.item__note{
  display:block;margin-top:5px;font-size:.66rem;font-weight:600;letter-spacing:.02em;
  line-height:1.45;text-transform:none;color:var(--mute);
}
.item__price{display:block;margin-top:6px;color:var(--sign);font-size:.92rem;font-weight:900}

.add{
  width:40px;height:40px;border:1px solid var(--sign);background:none;color:var(--sign);
  font:inherit;font-size:1.3rem;font-weight:800;line-height:1;cursor:pointer;
  display:grid;place-items:center;
  transition:background-color .18s linear,color .18s linear,transform .25s var(--ease);
}
.item.is-on .add{background:var(--sign);color:#000;font-size:1rem}
.item.is-on .item__name{color:var(--sign)}

.item.is-off{cursor:not-allowed}
.item.is-off .item__pic{filter:grayscale(1) brightness(.45)}
.item.is-off .item__name{text-decoration:line-through;color:var(--mute)}
.item.is-off .item__price{color:var(--mute)}
.item.is-off .add{display:none}
.item__out{color:var(--mute);font-size:.66rem;font-weight:800;letter-spacing:.12em}

/* ——— повтор ——— */

.usual{
  display:block;width:calc(100% - 32px);margin:0 16px 4px;background:none;
  border:1px solid var(--sign);color:var(--sign);font:inherit;text-transform:inherit;
  font-size:.76rem;font-weight:800;letter-spacing:.12em;padding:13px;min-height:48px;cursor:pointer;
  transition:background-color .18s linear,color .18s linear;
}
.usual:hover{background:var(--sign);color:#000}

/* ——— корзина ——— */

.cart__row{
  display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:12px;
  padding:12px 0;border-bottom:1px solid var(--rule);
}
.cart__pic{width:56px;height:56px;object-fit:cover;display:block;background:var(--panel)}
.cart__name{font-size:.98rem;font-weight:800;line-height:1.05}
.cart__sum{display:block;margin-top:5px;color:var(--sign);font-size:.82rem;font-weight:800}
.step{display:flex;align-items:center;gap:2px}
.step button{
  width:38px;height:38px;background:none;border:1px solid var(--rule);color:var(--paper);
  font:inherit;font-size:1.1rem;font-weight:800;line-height:1;cursor:pointer;
}
.step button:hover{border-color:var(--sign);color:var(--sign)}
.step span{min-width:2.4ch;text-align:center;font-size:1rem;font-weight:900;font-variant-numeric:tabular-nums}

.total{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  margin-top:18px;padding-top:10px;border-top:2px solid var(--sign);
}
.total dt{font-size:.72rem;font-weight:800;letter-spacing:.2em;color:var(--mute)}
.total dd{font-size:2.3rem;font-weight:900;letter-spacing:-.03em;color:var(--sign);font-variant-numeric:tabular-nums}

/* ——— слоты ——— */

.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.slot{
  background:none;border:1px solid var(--rule);color:var(--paper);
  font:inherit;text-transform:inherit;cursor:pointer;padding:12px 10px;min-height:70px;
  display:flex;flex-direction:column;justify-content:space-between;text-align:left;
  transition:background-color .18s linear,color .18s linear,border-color .18s linear;
}
.slot__time{font-size:1.35rem;font-weight:900;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.slot__left{font-size:.62rem;font-weight:800;letter-spacing:.1em;color:var(--mute);margin-top:8px}
.slot.is-on{background:var(--sign);border-color:var(--sign);color:#000}
.slot.is-on .slot__left{color:#000;opacity:.7}
.slot:disabled{cursor:not-allowed;color:var(--mute);border-color:#1E1C1A}
.slot:disabled .slot__time{text-decoration:line-through}

/* ——— поле ввода ——— */

.field{margin-bottom:22px}
.field__label{display:block;font-size:.68rem;font-weight:800;letter-spacing:.2em;color:var(--mute)}
.field__input{
  display:block;width:100%;margin-top:8px;background:none;border:1px solid var(--rule);
  color:var(--paper);font:inherit;font-size:1.35rem;font-weight:800;letter-spacing:.02em;
  padding:13px 14px;min-height:56px;
  transition:border-color .18s linear;
}
.field__input::placeholder{color:#5A554E}
.field__input:focus{outline:none;border-color:var(--sign)}
.field__input[aria-invalid="true"]{border-color:#E4572E}
.field__hint{
  margin-top:8px;font-size:.68rem;font-weight:600;line-height:1.5;
  text-transform:none;color:var(--mute);
}
.field__err{
  margin-top:8px;font-size:.68rem;font-weight:700;line-height:1.5;
  text-transform:none;color:#F08B6B;
}

/* ——— оплата ——— */

.pay{display:flex;flex-direction:column;gap:8px}
.pay__opt{
  display:block;width:100%;text-align:left;background:none;border:1px solid var(--rule);
  color:var(--paper);font:inherit;text-transform:inherit;cursor:pointer;padding:14px;
  transition:background-color .18s linear,color .18s linear,border-color .18s linear;
}
.pay__name{display:block;font-size:1.25rem;font-weight:900}
.pay__list{list-style:none;margin-top:8px}
.pay__list li{
  position:relative;padding-left:15px;margin-top:6px;
  font-size:.72rem;font-weight:600;line-height:1.45;text-transform:none;color:var(--mute);
}
.pay__list li::before{
  content:"";position:absolute;left:0;top:.5em;width:6px;height:6px;background:var(--mute);
}
.pay__opt.is-on .pay__list li{color:var(--paper)}
.pay__opt.is-on .pay__list li::before{background:var(--sign)}
.pay__opt sup{font-size:.7em;vertical-align:super}
.pay__opt.is-on{border-color:var(--sign);background:#191612}
.pay__opt.is-on .pay__name{color:var(--sign)}

/* ——— код ——— */

.code__label{font-size:.72rem;font-weight:800;letter-spacing:.2em;color:var(--mute)}
.code{
  font-size:5.8rem;font-weight:900;letter-spacing:-.05em;line-height:.85;color:var(--sign);
  margin:6px 0 8px;font-variant-numeric:tabular-nums;
}
.code__when{font-size:1rem;font-weight:600;color:var(--mute)}
.code__when b{color:var(--paper)}

.track{
  list-style:none;display:flex;margin-top:24px;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
}
.track li{
  flex:1;padding:12px 8px;font-size:.64rem;font-weight:800;letter-spacing:.12em;
  color:#5A554E;border-right:1px solid var(--rule);
  transition:color .3s linear,background-color .3s linear;
}
.track li:last-child{border-right:0}
.track li.is-done{color:var(--paper)}
.track li.is-now{background:var(--sign);color:#000}

.ghost{
  display:block;width:100%;margin-top:24px;background:none;border:1px solid var(--rule);
  color:var(--paper);font:inherit;text-transform:inherit;font-size:.78rem;font-weight:800;
  letter-spacing:.12em;padding:15px;min-height:52px;cursor:pointer;
}
.ghost:hover{border-color:var(--sign);color:var(--sign)}

/* ——— повторный заказ ——— */

.again{margin-top:30px;padding-top:4px}
.again .group__head{padding-bottom:8px;border-bottom:1px solid var(--rule);margin-bottom:12px}
.again .ghost{margin-top:0}

/* ——— служебное ——— */

.note{
  font-size:.7rem;font-weight:600;letter-spacing:.02em;line-height:1.6;
  text-transform:none;color:var(--mute);margin-top:12px;
}
.note--lead{margin:0 0 16px}
.empty{font-size:.85rem;font-weight:600;text-transform:none;color:var(--mute);padding:36px 0;line-height:1.6}
.disclaimer{
  font-size:.66rem;font-weight:600;letter-spacing:.02em;line-height:1.6;text-transform:none;
  color:var(--mute);margin:14px 16px 0;
}
.footnote{
  font-size:.64rem;font-weight:700;letter-spacing:.06em;text-transform:none;
  color:#5A554E;margin:30px 16px 0;padding-top:12px;border-top:1px solid var(--rule);
}
.note--fine{font-size:.64rem;margin-top:8px}
.demo{
  display:inline-block;margin-top:16px;background:var(--sign);color:#000;
  font-size:.64rem;font-weight:800;letter-spacing:.14em;padding:7px 10px;
}

/* ——— нижняя лента ——— */

.bar{
  position:fixed;bottom:0;left:50%;transform:translateX(-50%);
  width:min(460px,100%);z-index:35;
  background:var(--ground);border-top:1px solid var(--rule);
  padding:9px 12px calc(9px + env(safe-area-inset-bottom));
  display:flex;gap:8px;
  animation:bar-in .34s var(--ease) both;
}
@keyframes bar-in{from{transform:translate(-50%,100%)}to{transform:translate(-50%,0)}}

.bar__btn{
  flex:1;display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:var(--sign);color:#000;border:0;font:inherit;text-transform:inherit;
  font-weight:900;font-size:.95rem;letter-spacing:.02em;padding:0 16px;
  min-height:var(--bar-h);cursor:pointer;
}
.bar__btn:disabled{background:#3A362F;color:#8C877E;cursor:not-allowed}
.bar__left{font-variant-numeric:tabular-nums}
.bar__right{letter-spacing:.1em}
.bar__back{
  width:52px;min-height:var(--bar-h);background:none;border:1px solid var(--rule);
  color:var(--paper);font:inherit;font-size:1.6rem;font-weight:800;line-height:1;cursor:pointer;
}
.bar__back:hover{border-color:var(--sign);color:var(--sign)}

/* ——— летящая фотография ——— */

.fly{
  position:fixed;z-index:50;pointer-events:none;object-fit:cover;
  will-change:transform,opacity;
}

/* ——— вход строк ——— */

@keyframes rise{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:none}
}
.screen.is-entering .group,
.screen.is-entering .hero,
.screen.is-entering .cart__row,
.screen.is-entering .slot,
.screen.is-entering .pay__opt{
  animation:rise .42s var(--ease) both;
  animation-delay:calc(var(--i,0) * 26ms);
}

/* ——— переходы экранов ——— */

::view-transition-old(screen),
::view-transition-new(screen){mix-blend-mode:normal}

@keyframes slide-from-right{from{opacity:0;transform:translateX(26px)}}
@keyframes slide-to-left{to{opacity:0;transform:translateX(-18px)}}
@keyframes slide-from-left{from{opacity:0;transform:translateX(-26px)}}
@keyframes slide-to-right{to{opacity:0;transform:translateX(18px)}}

html:active-view-transition-type(forward)::view-transition-old(screen){
  animation:slide-to-left .26s var(--ease) both;
}
html:active-view-transition-type(forward)::view-transition-new(screen){
  animation:slide-from-right .42s var(--ease) both;
}
html:active-view-transition-type(back)::view-transition-old(screen){
  animation:slide-to-right .26s var(--ease) both;
}
html:active-view-transition-type(back)::view-transition-new(screen){
  animation:slide-from-left .42s var(--ease) both;
}
.screen.is-active{view-transition-name:screen}

/* ——— широкий экран: телефон на чёрном поле ——— */

@media (min-width:520px){
  body{padding:24px 0}
  .phone{border:1px solid var(--rule);min-height:calc(100dvh - 48px)}
  .bar{width:460px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none !important}
}
