:root{
    --rubine:#CE0058;
    --black:#171717;
    --ink:#1A1A1A;
    --paper:#FFFFFF;
    --mono:'JetBrains Mono',ui-monospace,monospace;
    --display:'Bebas Neue',Impact,sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{background:var(--black);color:var(--paper);font-family:var(--mono);font-size:21px;line-height:1.6}
  img{max-width:100%;display:block}
  a{color:inherit;text-decoration:none}
  section{scroll-margin-top:80px}

  /* ---------- NAV ---------- */
  .nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--black);border-bottom:2px solid var(--rubine);
       transition:transform .26s ease}
  .nav.is-hidden{transform:translateY(-105%)}
  .nav-in{max-width:1100px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
  .nav-brand{display:flex;align-items:center;gap:12px}
  .nav-brand img{width:38px;height:38px}
  .nav-brand span{font-family:var(--display);font-size:30px;letter-spacing:.08em;color:var(--paper);line-height:1}
  .nav-links{display:flex;gap:30px;font-weight:700;font-size:18px;letter-spacing:.2em;text-transform:uppercase}
  .nav-links a{padding:4px 0;border-bottom:2px solid transparent}
  .nav-links a:hover{color:var(--rubine);border-bottom-color:var(--rubine)}
  @media(max-width:560px){
    .nav-in{padding:12px 16px}
    .nav-links{gap:11px;font-size:14.4px;letter-spacing:.04em}
    .nav-brand span{font-size:24px}
    .nav-brand img{width:30px;height:30px}
  }
  /* smallest phones: badge only, so the bigger nav links still fit on one line */
  @media(max-width:379px){
    .nav-brand span{display:none}
    .nav-links{gap:10px;font-size:13.5px}
  }

  /* ---------- HERO ---------- */
  .hero{background:var(--black);text-align:center;padding:64px 24px 60px}
  .hero-eyebrow{
    color:var(--rubine);font-weight:700;
    font-size:clamp(24px,3.6vw,42px);letter-spacing:.06em;line-height:1.15;
    text-transform:uppercase;margin-bottom:40px;
    display:flex;justify-content:center;align-items:baseline;gap:.5em;flex-wrap:wrap;
  }
  .hero-eyebrow .sep{opacity:.6}

  .flip{position:relative;width:min(400px,78vw);aspect-ratio:1/1;margin:0 auto 40px}
  /* 6s cycle: 1.5s per colourway, dissolving between them rather than cutting */
  .flip img{position:absolute;inset:0;width:100%;height:100%;opacity:0;
            animation-name:pulse;animation-duration:6s;animation-timing-function:linear;
            animation-iteration-count:infinite}
  .flip img.f1{animation-delay:0s}
  .flip img.f2{animation-delay:-4.5s}
  .flip img.f3{animation-delay:-3s;filter:drop-shadow(0 0 30px rgba(206,0,88,.6))}
  .flip img.f4{animation-delay:-1.5s}
  @keyframes pulse{0%,18%{opacity:1}25%,93%{opacity:0}100%{opacity:1}}

  .hero-sub{
    font-family:var(--display);color:var(--paper);
    font-size:clamp(40px,7.4vw,88px);line-height:.95;letter-spacing:.03em;
    display:flex;justify-content:center;align-items:baseline;gap:.26em;flex-wrap:wrap;
  }
  .hero-sub .unit{display:inline-flex;align-items:baseline;gap:.26em;white-space:nowrap}
  .hero-sub .plus{color:var(--rubine)}
  .hero-plus{margin-top:24px;color:var(--rubine);letter-spacing:.25em;font-size:18px}

  /* stack on mobile — the + stays, it's a brand mark */
  @media(max-width:700px){
    .hero{padding:48px 24px 34px}
    .hero-eyebrow{flex-direction:column;align-items:center;gap:.15em;margin-bottom:22px}
    .hero-eyebrow .sep{display:none}
    .flip{margin-bottom:24px}
    /* words centre as a column; the + hangs in the left margin so it doesn't shift them */
    .hero-sub{flex-direction:column;align-items:center;gap:.02em}
    .hero-sub .unit{position:relative}
    .hero-sub .unit .plus{position:absolute;top:0;right:100%;margin-right:.16em}
    .hero-plus{margin-top:16px}
    .band{padding:52px 24px}
    .menu-band{padding:56px 24px}
  }

  /* ---------- SOLID BANDS ---------- */
  .band{padding:76px 24px}
  .band-rubine{background:var(--rubine);color:var(--black)}
  .band-white{background:var(--paper);color:var(--black)}
  .band-black{background:var(--black);color:var(--paper)}

  .blurb{max-width:860px;margin:0 auto;text-align:center}
  .blurb h2{font-family:var(--display);font-size:clamp(52px,8vw,84px);letter-spacing:.03em;line-height:.95;margin-bottom:24px}
  .blurb p{font-size:21px;line-height:1.75}

  /* ---------- SLIDER ---------- */
  .slider-band{background:var(--black);padding:0 24px}
  .slider{position:relative;max-width:1100px;margin:0 auto;overflow:hidden}
  .slides{display:flex;transition:transform .55s cubic-bezier(.77,0,.18,1)}
  .slide{flex:0 0 100%;position:relative;aspect-ratio:16/8;overflow:hidden;background:#232323}
  @media(max-width:700px){.slide{aspect-ratio:4/3}}
  .slide > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .slide .scrim{position:absolute;inset:0;
    background:linear-gradient(to top,
      rgba(10,10,10,.97) 0%,  rgba(10,10,10,.93) 16%, rgba(10,10,10,.72) 32%,
      rgba(10,10,10,.34) 52%, rgba(10,10,10,.06) 74%, rgba(10,10,10,.34) 100%)}
  .slide .cap{position:absolute;left:0;right:0;bottom:0;padding:clamp(18px,3.4vw,44px);text-align:left}
  .slide .tag{font-size:clamp(11px,1.2vw,15px);font-weight:700;letter-spacing:.26em;text-transform:uppercase;
              color:var(--rubine);margin-bottom:8px;display:flex;align-items:center;gap:10px}
  .slide .tag::before{content:"";width:clamp(18px,2.4vw,34px);height:3px;background:var(--rubine);flex:none}
  .slide .big{font-family:var(--display);font-size:clamp(40px,7.4vw,104px);line-height:.9;letter-spacing:.02em;
              color:var(--paper);max-width:100%;overflow-wrap:break-word}
  .s-arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:none;cursor:pointer;background:var(--black);color:var(--paper);font-size:26px;font-family:var(--mono);line-height:1}
  .s-arrow:hover{background:var(--rubine)}
  .s-prev{left:0}.s-next{right:0}
  .s-dots{display:flex;gap:10px;justify-content:center;padding:22px 0 0}
  .s-dot{width:11px;height:11px;border-radius:50%;border:1.5px solid var(--rubine);background:transparent;cursor:pointer;padding:0}
  .s-dot.on{background:var(--rubine)}

  /* ---------- MENU INTRO ---------- */
  .menu-intro{text-align:center}
  .menu-intro h2{font-family:var(--display);font-size:clamp(70px,11vw,132px);line-height:.9;letter-spacing:.03em;color:var(--paper)}
  .menu-intro h2 span{display:inline-block;white-space:nowrap}
  .menu-tag{
    max-width:1100px;margin:16px auto 0;
    display:flex;justify-content:center;align-items:baseline;gap:.25em;flex-wrap:wrap;
    font-family:var(--display);font-size:clamp(24px,4.6vw,64px);line-height:1;
    letter-spacing:.03em;color:var(--rubine);
  }
  .menu-btns{display:flex;gap:18px;justify-content:center;margin-top:40px;flex-wrap:wrap}
  .btn{display:inline-block;font-family:var(--display);font-size:30px;letter-spacing:.1em;padding:14px 48px;border:2px solid var(--rubine);color:var(--paper);transition:all .15s;min-width:250px;text-align:center}
  @media(max-width:620px){
    .menu-btns,.soc-btns{flex-direction:column;align-items:center;gap:14px}
    .btn{min-width:0;width:100%;padding:14px 20px}
  }
  .btn:hover{background:var(--rubine);color:var(--black)}
  .btn-solid{background:var(--rubine);color:var(--black)}
  .btn-solid:hover{background:var(--paper);border-color:var(--paper)}
  .btn-inverse{border-color:var(--black);color:var(--black)}
  .btn-inverse:hover{background:var(--black);color:var(--rubine)}

  /* ---------- MENUS ---------- */
  .menu-band{padding:84px 24px}
  .menu-band.food{background:var(--ink);color:var(--rubine)}
  .menu-band.drinks{background:var(--rubine);color:var(--black)}
  .menu-head{max-width:1100px;margin:0 auto 52px;display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}
  .menu-head h3{font-family:var(--display);font-size:clamp(58px,9vw,104px);line-height:.9;letter-spacing:.03em}
  .menu-head .note{font-size:16px;font-style:italic;opacity:.75}
  .menu-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:0 64px}
  @media(max-width:860px){.menu-grid{grid-template-columns:1fr}}
  .msection{margin-bottom:48px}
  .chip{display:inline-block;font-family:var(--display);font-size:32px;letter-spacing:.08em;padding:8px 20px;margin-bottom:10px}
  .food .chip{background:var(--rubine);color:var(--ink)}
  .drinks .chip{background:var(--ink);color:var(--rubine)}
  .snote{font-size:16px;font-style:italic;opacity:.7;margin-bottom:22px;line-height:1.5}
  .item{margin-bottom:20px}
  .ihead{display:flex;align-items:baseline;gap:10px}
  .iname{font-weight:700;font-size:21px;letter-spacing:.02em;text-transform:uppercase}
  .idots{flex:1;border-bottom:1.5px dotted currentColor;opacity:.35;transform:translateY(-4px)}
  .iprice{font-weight:500;font-size:18px;white-space:nowrap}
  .food .iprice{color:var(--paper)}
  .idesc{font-size:18px;opacity:.85;margin-top:4px;line-height:1.5}
  .diet{font-size:14px;letter-spacing:.08em;text-transform:uppercase;font-weight:700}
  .heat{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
        border:1.5px solid currentColor;padding:1px 8px;margin-left:4px;white-space:nowrap;opacity:1}
  .mfoot{font-size:16px;font-style:italic;opacity:.7;margin-top:12px;line-height:1.5}
  .marg-deal{border-top:2px solid currentColor;border-bottom:2px solid currentColor;padding:18px 0;margin:6px 0 22px}
  .marg-deal .line1{font-weight:700;font-size:26px;letter-spacing:.02em;line-height:1.25}
  .marg-deal .line2{font-size:18px;margin-top:8px;line-height:1.5}
  .marg-count{text-align:center;font-weight:700;font-size:18px;letter-spacing:.12em;border-top:2px solid currentColor;border-bottom:2px solid currentColor;padding:16px 0;margin-top:28px}

  /* ---------- FIND US ---------- */
  .find-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
  @media(max-width:860px){.find-grid{grid-template-columns:1fr}}
  .find-grid h2{font-family:var(--display);font-size:clamp(62px,10vw,112px);line-height:.9;letter-spacing:.03em;margin-bottom:26px}
  .find-label{font-weight:700;font-size:16px;letter-spacing:.22em;text-transform:uppercase;color:var(--rubine);margin:24px 0 8px}
  .find-grid p{font-size:21px}
  .hours{display:grid;gap:16px}
  .hours > div{font-size:21px;line-height:1.5}
  .hours span{display:block;font-size:15px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;opacity:.55;margin-bottom:2px}
  .maplink{display:inline-block;margin-top:28px;font-weight:700;font-size:17px;letter-spacing:.16em;text-transform:uppercase;border-bottom:2px solid var(--rubine);padding-bottom:4px}
  .maplink:hover{color:var(--rubine)}
  .mapwrap{border:2px solid var(--black);background:var(--black);line-height:0}
  .mapwrap svg{width:100%;height:auto;display:block}

  /* ---------- BOOKINGS ---------- */
  .book{text-align:center}
  .book h2{font-family:var(--display);font-size:clamp(70px,11vw,132px);line-height:.9;letter-spacing:.03em}
  .book p{max-width:640px;margin:20px auto 0;font-size:21px}
  .book .menu-btns{margin-top:36px}

  /* ---------- SOCIAL ---------- */
  .social{text-align:center}
  .social h2{font-family:var(--display);font-size:clamp(54px,9vw,100px);line-height:.9;letter-spacing:.03em;color:var(--paper)}
  .social .handle{margin-top:14px;font-weight:700;font-size:18px;letter-spacing:.18em;text-transform:uppercase;color:var(--rubine)}
  .soc-btns{display:flex;gap:16px;justify-content:center;margin:32px 0 46px;flex-wrap:wrap}
  .soc-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
  @media(max-width:900px){.soc-grid{grid-template-columns:repeat(3,1fr)}}
  .soc-tile{aspect-ratio:1/1;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
  .soc-tile img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
  .soc-tile:hover img{transform:scale(1.05)}
  .soc-tile .big{font-family:var(--display);font-size:clamp(22px,2.8vw,38px);letter-spacing:.04em;line-height:1;padding:10px;text-align:center}
  .soc-tile .mini{position:absolute;bottom:8px;left:0;right:0;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;opacity:.6;text-align:center}
  .t-rubine{background:var(--rubine);color:var(--black)}
  .t-dark{background:#232323;color:var(--rubine)}

  /* ---------- BANNER + FOOTER ---------- */
  .banner img{width:100%;height:auto}
  .footer{background:var(--black);border-top:2px solid var(--rubine);padding:44px 24px;text-align:center}
  .footer .fbrand{font-family:var(--display);font-size:38px;letter-spacing:.1em;color:var(--paper)}
  .footer p{margin-top:12px;font-size:16px;letter-spacing:.16em;text-transform:uppercase;color:var(--paper);opacity:.7;line-height:1.7}
  .footer .plus{margin-top:18px;color:var(--rubine);letter-spacing:.25em;font-size:16px}

  @media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    .slides{transition:none}
    .nav{transition:none}
    .flip img{animation:none;opacity:0}
    .flip .f1{opacity:1}
  }
