:root{
  --bg0:#060403;
  --bg1:#120b08;
  --bg2:#1c120d;
  --text:#f4eee7;
  --text-strong:#faf5ef;
  --muted:#ac9c8d;
  --muted-strong:#c7b7a8;
  --line:rgba(255,241,230,.08);
  --line-strong:rgba(255,220,192,.14);
  --accent:#ff9d4d;
  --accent2:#d16f26;
  --panel:rgba(19,12,9,.72);
  --panel-strong:rgba(9,6,4,.84);
  --font-ui:"Gotham","Avenir Next","Montserrat","Segoe UI",sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
}

*{box-sizing:border-box}

html{
  height:100%;
  scroll-behavior:smooth;
  background:
    radial-gradient(44rem 24rem at 12% 0%, rgba(255,157,77,.14), transparent 60%),
    radial-gradient(38rem 20rem at 90% 10%, rgba(209,111,38,.12), transparent 58%),
    radial-gradient(46rem 26rem at 50% 78%, rgba(92,54,31,.12), transparent 62%),
    linear-gradient(180deg, #080503 0%, #120b08 34%, #100a07 68%, #080604 100%);
  background-color:#080604;
  background-repeat:no-repeat;
}

body{
  position:relative;
  min-height:100%;
  margin:0;
  color:var(--text);
  font-family:var(--font-ui);
  background:transparent;
  overflow-x:hidden;
  overflow-y:auto;
}

body.body--promo-open,
body.body--wifi-open{
  overflow:hidden;
}

::selection{
  background:rgba(255,157,77,.22);
  color:var(--text);
}

img{
  display:block;
  max-width:100%;
}

a{
  color:inherit;
  text-decoration:none;
}

.promo-popup{
  position:fixed;
  inset:0;
  z-index:80;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(6,4,3,.72);
  backdrop-filter:blur(18px);
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
}

.promo-popup--open{
  opacity:1;
  pointer-events:auto;
}

.promo-popup__card{
  position:relative;
  width:min(560px, 100%);
  overflow:hidden;
  border:1px solid rgba(255,241,230,.1);
  border-radius:32px;
  background:
    radial-gradient(34rem 18rem at 100% 0%, rgba(255,157,77,.14), transparent 58%),
    linear-gradient(180deg, rgba(20,13,9,.98), rgba(8,6,4,.98));
  box-shadow:0 38px 88px rgba(0,0,0,.46);
  transform:translateY(18px) scale(.98);
  transition:transform .24s cubic-bezier(.16,.84,.24,.99);
}

.promo-popup--open .promo-popup__card{
  transform:translateY(0) scale(1);
}

.promo-popup__close{
  position:absolute;
  top:16px;
  right:16px;
  z-index:2;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  color:var(--text);
  font-size:1.8rem;
  line-height:1;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(0,0,0,.26);
  cursor:pointer;
}

.promo-popup__media{
  aspect-ratio:1;
  overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.03);
}

.promo-popup__media img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.promo-popup__body{
  display:grid;
  gap:14px;
  padding:28px;
}

.promo-popup__eyebrow{
  color:var(--accent);
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.3em;
  text-transform:uppercase;
}

.promo-popup__title{
  margin:0;
  font-size:clamp(2rem, 7vw, 3.4rem);
  line-height:.92;
  text-transform:uppercase;
}

.promo-popup__description{
  margin:0;
  color:var(--text);
  font-size:1rem;
  line-height:1.7;
}

.promo-popup__schedule{
  color:var(--muted);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.topbar{
  position:sticky;
  top:0;
  z-index:30;
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:18px;
  padding:16px clamp(18px, 4vw, 44px);
  background:rgba(7,4,3,.66);
  backdrop-filter:blur(22px);
}

.topbar__actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  justify-self:end;
}

.brand{
  display:flex;
  align-items:center;
  min-width:0;
}

.brand__logo{
  width:58px;
  height:58px;
  object-fit:contain;
  filter:drop-shadow(0 0 24px rgba(255,157,77,.14));
}

.topbar__meta{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-width:0;
}

.topbar__pill{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:0 14px;
  border:1px solid rgba(255,220,192,.12);
  border-radius:999px;
  background:rgba(255,255,255,.02);
  color:var(--muted-strong);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  white-space:nowrap;
}

.topbar__pill--soft{
  color:var(--accent);
}

.cta{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:48px;
  padding:0 12px 0 14px;
  border:1px solid rgba(255,220,192,.14);
  border-radius:999px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02)),
    rgba(16,10,7,.76);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 14px 32px rgba(0,0,0,.22);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  white-space:nowrap;
  justify-self:end;
  cursor:pointer;
  color:var(--text);
  font-family:inherit;
  appearance:none;
  -webkit-appearance:none;
}

.cta--review::before{
  content:"★";
  display:inline-block;
  color:var(--accent);
  font-size:.82rem;
  line-height:1;
}

.cta--wifi{
  justify-content:center;
}

.cta__icon{
  width:16px;
  height:16px;
  flex:0 0 auto;
  fill:currentColor;
}

.cta__icon--wifi{
  color:var(--accent);
}

.cta--wifi::after{
  content:"";
  display:none;
}

.wifi-modal{
  position:fixed;
  inset:0;
  z-index:85;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(6,4,3,.72);
  backdrop-filter:blur(18px);
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
}

.wifi-modal--open{
  opacity:1;
  pointer-events:auto;
}

.wifi-modal__card{
  position:relative;
  width:min(520px, 100%);
  overflow:hidden;
  border:1px solid rgba(255,241,230,.1);
  border-radius:30px;
  background:
    radial-gradient(32rem 18rem at 100% 0%, rgba(255,157,77,.14), transparent 58%),
    linear-gradient(180deg, rgba(20,13,9,.98), rgba(8,6,4,.98));
  box-shadow:0 38px 88px rgba(0,0,0,.46);
  transform:translateY(18px) scale(.98);
  transition:transform .24s cubic-bezier(.16,.84,.24,.99);
}

.wifi-modal--open .wifi-modal__card{
  transform:translateY(0) scale(1);
}

.wifi-modal__close{
  position:absolute;
  top:16px;
  right:16px;
  z-index:2;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  color:var(--text);
  font-size:1.8rem;
  line-height:1;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(0,0,0,.26);
  cursor:pointer;
}

.wifi-modal__body{
  display:grid;
  gap:16px;
  padding:30px 28px 28px;
}

.wifi-modal__eyebrow{
  color:var(--accent);
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.3em;
  text-transform:uppercase;
}

.wifi-modal__title{
  margin:0;
  font-size:clamp(1.9rem, 7vw, 3rem);
  line-height:.94;
  text-transform:uppercase;
}

.wifi-modal__description{
  margin:0;
  color:var(--text);
  font-size:1rem;
  line-height:1.7;
}

.wifi-modal__details{
  display:grid;
  gap:12px;
}

.wifi-modal__row{
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:12px;
  align-items:center;
  padding:14px;
  border:1px solid rgba(255,241,230,.08);
  border-radius:22px;
  background:rgba(255,255,255,.03);
}

.wifi-modal__row--copy{
  grid-template-columns:minmax(0, 1fr) auto;
}

.wifi-modal__meta{
  min-width:0;
}

.wifi-modal__label{
  color:var(--muted);
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.22em;
  text-transform:uppercase;
}

.wifi-modal__value{
  margin-top:8px;
  color:var(--text-strong);
  font-family:var(--font-mono);
  font-size:1rem;
  font-weight:700;
  letter-spacing:.02em;
  word-break:break-word;
}

.wifi-modal__copy,
.wifi-modal__action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 16px;
  border:1px solid rgba(255,220,192,.14);
  border-radius:999px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.015)),
    rgba(16,10,7,.64);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 14px 28px rgba(0,0,0,.16);
  color:var(--text);
  font-family:inherit;
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
}

.wifi-modal__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.wifi-modal__hint{
  margin:0;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.7;
}

.wifi-modal__hint:empty{
  display:none;
}

.page{
  position:relative;
  width:min(1140px, calc(100% - 32px));
  margin:0 auto;
  padding:28px 0 80px;
}

.page::before{
  content:none;
}

.hero{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(260px, 320px);
  gap:36px;
  padding:30px 0 34px;
}

.hero__main{
  display:grid;
  gap:16px;
}

.hero__eyebrow{
  margin:0;
  color:var(--accent);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.32em;
  text-transform:uppercase;
}

.hero h1{
  max-width:7ch;
  margin:0;
  font-size:clamp(3.7rem, 9vw, 7rem);
  line-height:.88;
  letter-spacing:-.06em;
  text-transform:uppercase;
}

.hero h1 span{
  display:block;
}

.hero h1 span:first-child{
  color:transparent;
  -webkit-text-stroke:1px rgba(244,238,231,.38);
  text-shadow:none;
}

.hero h1 span:last-child{
  color:var(--accent);
  text-shadow:0 0 30px rgba(209,111,38,.22);
}

.hero__lede{
  max-width:33rem;
  margin:0;
  color:rgba(244,238,231,.78);
  font-size:1rem;
  line-height:1.75;
}

.hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.hero__jump{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  padding:0 18px;
  border:1px solid rgba(255,220,192,.14);
  border-radius:999px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.015)),
    rgba(16,10,7,.64);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 18px 36px rgba(0,0,0,.18);
  color:var(--text);
  font-family:inherit;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.22em;
  text-transform:uppercase;
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
}

.hero__aside{
  display:grid;
  gap:16px;
  align-content:start;
}

.hero__meta{
  display:grid;
  gap:1px;
  padding:10px;
  border:1px solid rgba(255,241,230,.08);
  border-radius:28px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015)),
    rgba(16,10,7,.56);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    0 18px 40px rgba(0,0,0,.16);
}

.hero__meta > *{
  display:block;
  padding:12px 14px;
  border-radius:18px;
  color:var(--muted);
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  background:rgba(255,255,255,.02);
}

.hero__meta a{
  color:var(--text);
}

.hero__meta [data-days].hero__meta-day--today{
  color:var(--accent);
  background:rgba(255,157,77,.08);
  box-shadow:inset 0 0 0 1px rgba(255,157,77,.16);
}

.menu-tools{
  margin:0;
  padding:20px 0 10px;
}

.menu-tools__panel{
  padding:18px;
  border-radius:28px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.008)),
    rgba(16,10,7,.44);
  box-shadow:
    0 14px 34px rgba(0,0,0,.12);
}

.menu-nav{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  overflow:visible;
  padding:0;
  touch-action:pan-y;
}

.menu-nav__link{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:0 14px;
  border:1px solid rgba(255,241,230,.08);
  border-radius:999px;
  background:rgba(255,255,255,.02);
  color:var(--muted-strong);
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  white-space:nowrap;
  transition:border-color .18s ease, background-color .18s ease, color .18s ease;
}

.menu-nav__link:hover,
.menu-nav__link:focus-visible,
.menu-nav__link--active{
  border-color:rgba(255,157,77,.22);
  background:rgba(255,157,77,.08);
  color:var(--text);
  outline:none;
}

.menu-stage{
  padding-top:8px;
}

.menu{
  display:grid;
}

.menu-section{
  display:grid;
  grid-template-columns:minmax(190px, 240px) minmax(0, 1fr);
  gap:34px;
  padding:34px 0 40px;
  scroll-margin-top:100px;
}

.menu-section:first-child{
  padding-top:16px;
}

.section__ghost{
  display:none;
}

.section__meta{
  display:grid;
  align-content:start;
  gap:14px;
}

.section__index{
  color:var(--accent);
  font-family:var(--font-mono);
  font-size:.82rem;
  letter-spacing:.34em;
  text-transform:uppercase;
}

.section__media{
  --media-shift-x:-12px;
  --media-glow-shift-x:-10px;
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:flex-start;
  padding-left:20px;
  margin-left:0;
  min-height:164px;
  pointer-events:none;
}

.section__media::before{
  content:"";
  position:absolute;
  left:calc(36% + var(--media-glow-shift-x));
  bottom:10%;
  width:clamp(130px, 12vw, 190px);
  height:clamp(100px, 10vw, 150px);
  border-radius:999px;
  transform:translateX(-50%);
  background:radial-gradient(circle, rgba(209,111,38,.22), rgba(255,157,77,.08) 48%, transparent 76%);
  filter:blur(24px);
}

.section__media img{
  --media-rotate:0deg;
  position:relative;
  margin-left:var(--media-shift-x);
  width:min(100%, 210px);
  max-height:220px;
  object-fit:contain;
  filter:
    drop-shadow(0 26px 42px rgba(0,0,0,.44))
    drop-shadow(0 0 20px rgba(209,111,38,.12));
  transform-origin:center bottom;
  animation:section-media-rise .95s cubic-bezier(.16,.84,.24,.99) both;
}

.section__media--beer img{
  --media-rotate:-5deg;
  width:min(100%, 168px);
  max-height:240px;
}

.section__media--beer{
  --media-shift-x:-18px;
  --media-glow-shift-x:-16px;
}

.section__media--board::before{
  width:clamp(180px, 18vw, 260px);
  height:clamp(64px, 6vw, 86px);
}

.section__media--board{
  --media-shift-x:-14px;
  --media-glow-shift-x:-14px;
}

.section__media--board img{
  --media-rotate:-2deg;
  width:min(100%, 270px);
  max-height:178px;
}

.section__media--portion{
  --media-shift-x:-10px;
  --media-glow-shift-x:-8px;
}

.section__media--portion img{
  width:min(100%, 222px);
  max-height:226px;
}

.section__media--square::before{
  width:clamp(150px, 13vw, 190px);
  height:clamp(150px, 13vw, 190px);
  border-radius:28px;
}

.section__media--square{
  --media-shift-x:-10px;
  --media-glow-shift-x:-8px;
}

.section__media--square img{
  width:min(100%, 184px);
  aspect-ratio:1;
  object-fit:cover;
  border:1px solid rgba(255,241,230,.08);
  border-radius:28px;
}

.section__name{
  margin:0;
  max-width:100%;
  font-size:clamp(1.52rem, 2.15vw, 2.28rem);
  line-height:.96;
  overflow-wrap:anywhere;
  word-break:break-word;
  hyphens:auto;
  text-transform:uppercase;
}

.section__offer{
  display:inline-flex;
  align-items:center;
  justify-self:start;
  min-height:32px;
  padding:0 12px;
  border:1px solid rgba(255,202,107,.24);
  border-radius:999px;
  color:#ffe6b0;
  background:rgba(255,202,107,.08);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.section__offer--active{
  color:#fff7db;
  border-color:rgba(255,202,107,.34);
  background:linear-gradient(135deg, rgba(255,202,107,.26), rgba(255,157,77,.18));
}

.section__items{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px 28px;
}

.item{
  padding:0;
}

.item__main{
  display:grid;
  gap:8px;
}

.item__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}

.item__name{
  flex:1;
  margin:0;
  font-size:1.04rem;
  font-weight:700;
  line-height:1.35;
  letter-spacing:.01em;
}

.item__price{
  flex-shrink:0;
  color:var(--accent);
  font-family:var(--font-mono);
  font-size:.92rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  white-space:nowrap;
}

.item__price-stack{
  display:grid;
  justify-items:end;
  gap:4px;
}

.item__price--old{
  color:rgba(244,238,231,.52);
  font-size:.74rem;
  letter-spacing:.08em;
  text-decoration:line-through;
}

.item__price--discount{
  color:#ffd688;
  font-size:1rem;
}

.item__offer{
  display:inline-flex;
  align-items:center;
  justify-self:start;
  min-height:28px;
  padding:0 10px;
  border:1px solid rgba(255,202,107,.22);
  border-radius:999px;
  color:#fff1c8;
  background:rgba(255,202,107,.08);
  font-size:.66rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.item__meta{
  color:var(--muted-strong);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.18em;
  line-height:1.5;
  text-transform:uppercase;
}

.item__desc{
  max-width:36ch;
  margin:0;
  color:var(--muted);
  font-size:.93rem;
  line-height:1.65;
}

.footer{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:16px;
  margin-top:34px;
  padding-top:24px;
}

.footer__block{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
}

.footer__block--copy{
  text-align:right;
}

.footer__k{
  color:var(--muted);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.26em;
  text-transform:uppercase;
}

.footer__v{
  margin:0;
  font-size:.98rem;
  font-weight:700;
  line-height:1.6;
}

.footer__v a{
  color:var(--text-strong);
}

@keyframes section-media-rise{
  from{
    opacity:0;
    transform:translate3d(0, 24px, 0) rotate(var(--media-rotate));
  }
  to{
    opacity:1;
    transform:translate3d(0, 0, 0) rotate(var(--media-rotate));
  }
}

@media (hover:hover){
  .cta:hover,
  .hero__jump:hover,
  .wifi-modal__copy:hover,
  .wifi-modal__action:hover{
    border-color:rgba(255,157,77,.22);
  }
}

@media (max-width:980px){
  .page{
    width:min(1140px, calc(100% - 28px));
  }

  .hero{
    grid-template-columns:minmax(0, 1fr) 280px;
    gap:28px;
  }

  .menu-section{
    grid-template-columns:minmax(176px, 220px) minmax(0, 1fr);
    gap:26px;
  }

  .section__items{
    gap:18px 22px;
  }
}

@media (max-width:760px){
  .topbar{
    grid-template-columns:auto 1fr;
    gap:12px;
  }

  .topbar__meta{
    justify-content:center;
  }

  .hero{
    grid-template-columns:1fr;
  }

  .wifi-modal__row,
  .wifi-modal__row--copy{
    grid-template-columns:1fr;
  }

  .menu-section{
    grid-template-columns:1fr;
    gap:18px;
  }

  .section__items{
    grid-template-columns:1fr;
  }

  .footer{
    grid-template-columns:1fr;
  }

  .footer__block--copy{
    text-align:left;
  }
}

@media (max-width:560px){
  .promo-popup{
    padding:16px;
  }

  .promo-popup__card{
    border-radius:26px;
  }

  .promo-popup__body{
    padding:22px 20px 24px;
  }

  .wifi-modal{
    padding:16px;
  }

  .wifi-modal__card{
    border-radius:26px;
  }

  .wifi-modal__body{
    padding:24px 20px 22px;
  }

  .topbar{
    padding:14px 16px;
  }

  .brand__logo{
    width:50px;
    height:50px;
  }

  .topbar__pill{
    min-height:34px;
    padding:0 12px;
    letter-spacing:.14em;
  }

  .cta{
    gap:6px;
    min-height:44px;
    padding:0 10px 0 12px;
  }

  .topbar__actions{
    gap:8px;
  }

  .page{
    width:min(1140px, calc(100% - 24px));
    padding-top:22px;
  }

  .page::before{
    content:none;
  }

  .hero{
    gap:22px;
    padding:22px 0 26px;
  }

  .hero h1{
    max-width:none;
    font-size:clamp(3.1rem, 15vw, 5.3rem);
  }

  .hero__eyebrow,
  .hero__meta > *,
  .footer__k{
    letter-spacing:.16em;
  }

  .hero__meta{
    border-radius:22px;
  }

  .hero__jump{
    width:100%;
  }

  .menu-nav__link{
    min-height:38px;
    padding:0 12px;
    font-size:.68rem;
  }

  .section__media{
    --media-shift-x:-14px;
    --media-glow-shift-x:-12px;
    padding-left:20px;
    margin-left:0;
    min-height:unset;
  }

  .section__media img{
    width:min(100%, 186px);
  }

  .section__media--board img{
    width:min(100%, 224px);
  }

  .item__header{
    gap:10px;
  }
}

@media (prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto;
  }

  *,
  *::before,
  *::after{
    animation:none !important;
    transition:none !important;
  }
}
