:root{
    --bg:#0a0a09;
    --bg-alt:#121110;
    --card:#161410;
    --gold:#c9a24b;
    --gold-light:#e8cd82;
    --gold-dim:#7c652f;
    --ivory:#f2ece0;
    --muted:#8d8574;
    --rule:#2a2620;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--bg);
    color:var(--ivory);
    font-family:'Jost',sans-serif;
    font-weight:300;
    overflow-x:hidden;
  }
  h1,h2,h3,.display{
    font-family:'Cormorant Garamond',serif;
    font-weight:400;
    letter-spacing:0.02em;
  }
  .eyebrow{
    font-family:'Jost',sans-serif;
    font-size:0.72rem;
    letter-spacing:0.35em;
    text-transform:uppercase;
    color:var(--gold);
  }
  a{color:inherit;text-decoration:none;}
  ::selection{background:var(--gold-dim);color:var(--bg);}

  /* Focus visibility */
  a:focus-visible,button:focus-visible{outline:1px solid var(--gold-light);outline-offset:4px;}

  /* ---------- NAV ---------- */
  header{
    position:fixed;top:0;left:0;right:0;
    display:flex;justify-content:space-between;align-items:center;
    padding:22px 5vw;
    z-index:100;
    mix-blend-mode:normal;
    background:linear-gradient(to bottom, rgba(10,10,9,0.9), rgba(10,10,9,0));
    transition:background 0.4s ease, padding 0.4s ease;
  }
  header.scrolled{
    background:rgba(10,10,9,0.92);
    backdrop-filter:blur(10px);
    padding:14px 5vw;
    border-bottom:1px solid var(--rule);
  }
  .logo{
    font-family:'Cormorant Garamond',serif;
    font-size:1.5rem;
    letter-spacing:0.08em;
    color:var(--ivory);
  }
  .logo em{color:var(--gold);font-style:normal;}
  nav ul{list-style:none;display:flex;gap:2.6rem;}
  nav a{
    font-size:0.72rem;letter-spacing:0.2em;text-transform:uppercase;
    color:var(--muted);position:relative;padding-bottom:4px;
    transition:color 0.3s ease;
  }
  nav a:hover{color:var(--gold-light);}
  nav a::after{
    content:'';position:absolute;left:0;bottom:0;width:0;height:1px;
    background:var(--gold);transition:width 0.3s ease;
  }
  nav a:hover::after{width:100%;}
  .nav-toggle{display:none;background:none;border:none;color:var(--ivory);font-size:1.4rem;cursor:pointer;}

  /* ---------- HERO ---------- */
  .hero{
    height:100vh;min-height:640px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;
    position:relative;
    padding:0 1.5rem;
    background:
      radial-gradient(ellipse at 50% 20%, rgba(201,162,75,0.08), transparent 60%),
      var(--bg);
  }
  .hero::before{
    content:'';
    position:absolute;inset:0;
    background-image:
      repeating-linear-gradient(90deg, transparent, transparent 79px, rgba(201,162,75,0.035) 80px),
      repeating-linear-gradient(0deg, transparent, transparent 79px, rgba(201,162,75,0.035) 80px);
    opacity:0.5;
    pointer-events:none;
  }
  .hero-eyebrow{
    opacity:0;animation:riseIn 1s ease forwards;animation-delay:0.2s;
    margin-bottom:1.4rem;
  }
  .hero h1{
    font-size:clamp(3.2rem, 9vw, 7.5rem);
    line-height:0.95;
    font-weight:300;
    color:var(--ivory);
    opacity:0;animation:riseIn 1.1s ease forwards;animation-delay:0.45s;
  }
  .hero h1 em{
    font-style:italic;
    color:var(--gold-light);
    background:linear-gradient(120deg, var(--gold-dim), var(--gold-light), var(--gold));
    -webkit-background-clip:text;background-clip:text;color:transparent;
  }
  .hero-tagline{
    margin-top:1.4rem;
    max-width:32ch;
    color:var(--muted);
    font-size:1rem;
    letter-spacing:0.03em;
    opacity:0;animation:riseIn 1s ease forwards;animation-delay:0.75s;
  }
  .hero-cta{
    margin-top:2.6rem;
    display:flex;gap:1.2rem;flex-wrap:wrap;justify-content:center;
    opacity:0;animation:riseIn 1s ease forwards;animation-delay:1s;
  }
  @keyframes riseIn{
    from{opacity:0;transform:translateY(18px);}
    to{opacity:1;transform:translateY(0);}
  }

  .btn{
    display:inline-block;padding:0.9rem 2.1rem;
    font-size:0.72rem;letter-spacing:0.22em;text-transform:uppercase;
    border:1px solid var(--gold);
    transition:all 0.35s ease;
  }
  .btn-solid{background:var(--gold);color:var(--bg);}
  .btn-solid:hover{background:var(--gold-light);border-color:var(--gold-light);transform:translateY(-2px);}
  .btn-outline{color:var(--gold-light);}
  .btn-outline:hover{background:rgba(201,162,75,0.1);transform:translateY(-2px);}

  .scroll-cue{
    position:absolute;bottom:2.2rem;left:50%;transform:translateX(-50%);
    display:flex;flex-direction:column;align-items:center;gap:8px;
    color:var(--muted);font-size:0.65rem;letter-spacing:0.25em;text-transform:uppercase;
    opacity:0;animation:riseIn 1s ease forwards;animation-delay:1.3s;
  }
  .scroll-line{width:1px;height:36px;background:linear-gradient(var(--gold), transparent);animation:pulseLine 2s ease-in-out infinite;}
  @keyframes pulseLine{0%,100%{opacity:0.3;}50%{opacity:1;}}

  /* ---------- SIGNATURE DIVIDER ---------- */
  .flourish{
    display:flex;justify-content:center;padding:4.5rem 1rem;
  }
  .flourish svg{width:min(420px,80vw);height:auto;overflow:visible;}
  .flourish path{
    fill:none;stroke:var(--gold);stroke-width:1;
    stroke-dasharray:600;stroke-dashoffset:600;
    transition:stroke-dashoffset 1.8s cubic-bezier(.2,.8,.2,1);
  }
  .flourish.in-view path{stroke-dashoffset:0;}
  .flourish circle{
    fill:var(--gold);opacity:0;
    transition:opacity 0.6s ease 1.2s;
  }
  .flourish.in-view circle{opacity:1;}

  /* ---------- SECTION SHELL ---------- */
  section{padding:6.5rem 5vw;position:relative;}
  .section-head{text-align:center;max-width:640px;margin:0 auto 3.6rem;}
  .section-head h2{font-size:clamp(2.2rem,5vw,3.4rem);margin-top:0.6rem;color:var(--ivory);}
  .section-head p{color:var(--muted);margin-top:1rem;font-size:0.95rem;line-height:1.7;}

  /* ---------- ABOUT ---------- */
  .about{
    display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;
    max-width:1180px;margin:0 auto;
  }
  .about-visual{
    aspect-ratio:4/5;
    background:
      linear-gradient(160deg, rgba(201,162,75,0.15), transparent 60%),
      linear-gradient(340deg, var(--card), #1c1811);
    border:1px solid var(--rule);
    position:relative;
    display:flex;align-items:center;justify-content:center;
  }
  .about-visual::before{
    content:'';position:absolute;inset:18px;border:1px solid var(--gold-dim);
  }
  .about-visual .initial{
    font-family:'Cormorant Garamond',serif;
    font-style:italic;font-size:8rem;color:var(--gold);opacity:0.85;
  }
  .about-copy p{color:var(--muted);line-height:1.9;margin-top:1.2rem;font-size:1rem;}
  .about-copy .display{font-size:1.9rem;color:var(--ivory);margin-top:1rem;line-height:1.35;}
  .stats{display:flex;gap:2.6rem;margin-top:2.6rem;}
  .stat b{display:block;font-family:'Cormorant Garamond',serif;font-size:2.1rem;color:var(--gold-light);}
  .stat span{font-size:0.68rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--muted);}

  /* ---------- MENU ---------- */
  .menu-tabs{
    display:flex;justify-content:center;gap:0;flex-wrap:wrap;
    margin-bottom:3.6rem;border-bottom:1px solid var(--rule);
  }
  .menu-tab{
    padding:0.9rem 1.8rem;font-size:0.72rem;letter-spacing:0.2em;text-transform:uppercase;
    color:var(--muted);background:none;border:none;cursor:pointer;position:relative;
    font-family:'Jost',sans-serif;
    transition:color 0.3s ease;
  }
  .menu-tab::after{
    content:'';position:absolute;bottom:-1px;left:50%;width:0;height:1px;background:var(--gold);
    transition:all 0.35s ease;transform:translateX(-50%);
  }
  .menu-tab.active{color:var(--gold-light);}
  .menu-tab.active::after{width:70%;}

  .menu-panel{display:none;max-width:880px;margin:0 auto;}
  .menu-panel.active{display:block;animation:fadePanel 0.5s ease;}
  @keyframes fadePanel{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

  .menu-item{
    display:flex;justify-content:space-between;gap:1.5rem;
    padding:1.6rem 0;border-bottom:1px solid var(--rule);
  }
  .menu-item:last-child{border-bottom:none;}
  .menu-item-name{
    font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--ivory);
    display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;
  }
  .menu-item-name .tag{
    font-family:'Jost',sans-serif;font-size:0.6rem;letter-spacing:0.12em;
    color:var(--gold);border:1px solid var(--gold-dim);padding:2px 7px;text-transform:uppercase;
  }
  .menu-item-desc{color:var(--muted);font-size:0.88rem;margin-top:0.4rem;max-width:46ch;line-height:1.6;}
  .menu-item-price{
    font-family:'Cormorant Garamond',serif;font-size:1.3rem;color:var(--gold-light);
    white-space:nowrap;padding-top:0.15rem;
  }

  /* ---------- QUOTE ---------- */
  .quote{
    text-align:center;max-width:760px;margin:0 auto;padding:7rem 5vw;
  }
  .quote blockquote{
    font-family:'Cormorant Garamond',serif;font-style:italic;
    font-size:clamp(1.6rem,3.6vw,2.6rem);line-height:1.5;color:var(--ivory);
  }
  .quote cite{
    display:block;margin-top:1.6rem;font-style:normal;color:var(--gold);
    font-size:0.72rem;letter-spacing:0.2em;text-transform:uppercase;
  }

  /* ---------- RESERVE ---------- */
  .reserve{
    background:linear-gradient(180deg, var(--bg-alt), var(--bg));
    text-align:center;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  }
  .reserve .section-head{margin-bottom:2.6rem;}
  .reserve-form{
    max-width:560px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:1rem;
  }
  .reserve-form input, .reserve-form select{
    background:transparent;border:1px solid var(--rule);color:var(--ivory);
    padding:0.9rem 1rem;font-family:'Jost',sans-serif;font-size:0.85rem;
    outline:none;transition:border-color 0.3s ease;
  }
  .reserve-form input::placeholder{color:var(--muted);}
  .reserve-form input:focus, .reserve-form select:focus{border-color:var(--gold);}
  .reserve-form .full{grid-column:1/-1;}
  .reserve-form button{
    grid-column:1/-1;margin-top:0.4rem;cursor:pointer;
    font-family:'Jost',sans-serif;
  }
  .form-note{margin-top:1.2rem;font-size:0.78rem;color:var(--muted);min-height:1.2em;}

  /* ---------- FOOTER ---------- */
  footer{
    padding:4.5rem 5vw 2.5rem;
    display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:3rem;
    border-top:1px solid var(--rule);
  }
  footer .logo{margin-bottom:1rem;}
  footer p{color:var(--muted);font-size:0.88rem;line-height:1.8;}
  footer h4{
    font-family:'Jost',sans-serif;font-size:0.68rem;letter-spacing:0.2em;
    text-transform:uppercase;color:var(--gold);margin-bottom:1rem;
  }
  footer ul{list-style:none;}
  footer li{color:var(--muted);font-size:0.88rem;margin-bottom:0.6rem;}
  .footer-bottom{
    text-align:center;padding-top:2.5rem;margin-top:2.5rem;border-top:1px solid var(--rule);
    font-size:0.72rem;letter-spacing:0.1em;color:var(--muted);grid-column:1/-1;
  }

  /* ---------- REVEAL ON SCROLL ---------- */
  .reveal{opacity:0;transform:translateY(24px);transition:opacity 0.8s ease, transform 0.8s ease;}
  .reveal.in-view{opacity:1;transform:translateY(0);}

  /* ---------- RESPONSIVE ---------- */
  @media (max-width: 820px) {
  .nav-toggle {
    display: block;
  }

  nav ul {
    display: none; /* Hidden by default on mobile */
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: rgba(10, 10, 9, 0.96);
    backdrop-filter: blur(12px);
    padding: 2rem;
    gap: 1.8rem;
    border-bottom: 1px solid var(--rule);
    text-align: center;
  }

  /* Added: Triggered when user taps .nav-toggle */
  nav ul.active {
    display: flex;
  }

  .about {
    grid-template-columns: 1fr;
  }

  footer {
    grid-template-columns: 1fr;
  }

  .reserve-form {
    grid-template-columns: 1fr;
  }
}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.01ms !important;transition-duration:0.01ms !important;}
  }