  @import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@500;700;900&family=Noto+Sans+SC:wght@400;500;600&family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500&family=Ma+Shan+Zheng&display=swap');

  :root{
    --red:#8B1E1E;
    --red-deep:#5f1414;
    --brown:#4A2E1F;
    --cream:#E7DEC4;
    --cream-light:#F7F2E4;
    --paper:#FBF8EF;
    --ink:#2A1F14;
    --ink-soft:#6b5c47;
    --gold:#B8862E;
    --gold-soft:#d9b877;
  }

  :root{
    --ease-out:cubic-bezier(.16,1,.3,1);
    --ease-standard:cubic-bezier(.4,0,.2,1);
    --ease-spring:cubic-bezier(.34,1.4,.4,1);
  }

  :root{
    --noise-dark:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='140'%20height='140'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.9'%20numOctaves='2'%20stitchTiles='stitch'/%3E%3CfeColorMatrix%20type='matrix'%20values='0%200%200%200%200%20%200%200%200%200%200%20%200%200%200%200%200%20%200%200%200%200.05%200'/%3E%3C/filter%3E%3Crect%20width='100%25'%20height='100%25'%20filter='url%28%23n%29'/%3E%3C/svg%3E");
    --noise-light:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='140'%20height='140'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.9'%20numOctaves='2'%20stitchTiles='stitch'/%3E%3CfeColorMatrix%20type='matrix'%20values='0%200%200%200%201%20%200%200%200%200%201%20%200%200%200%200%201%20%200%200%200%200.06%200'/%3E%3C/filter%3E%3Crect%20width='100%25'%20height='100%25'%20filter='url%28%23n%29'/%3E%3C/svg%3E");
    --tex-wood:url("assets/texture/wood-grain.png");
    --tex-dramatic:url("assets/texture/dramatic-red.jpg");
    --tex-sparkle:url("assets/texture/gold-sparkle.svg");
    --ink-red:#241009;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background-color:var(--paper);
    background-image:
      radial-gradient(1100px 720px at -6% -14%, rgba(184,134,46,.12), transparent 60%),
      radial-gradient(900px 700px at 106% 22%, rgba(139,30,30,.05), transparent 60%),
      linear-gradient(rgba(184,134,46,.05) 1px, transparent 1px),
      linear-gradient(90deg, rgba(184,134,46,.05) 1px, transparent 1px),
      var(--noise-dark),
      var(--tex-wood);
    background-repeat:no-repeat, no-repeat, repeat, repeat, repeat, repeat;
    background-size:auto, auto, 46px 46px, 46px 46px, 140px 140px, 378px 140px;
    color:var(--ink);
    font-family:'Noto Sans SC',system-ui,sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;}
  [hidden]{display:none!important;}
  ::selection{background:var(--gold-soft);color:var(--ink);}

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

  /* ---------------- scroll reveal ---------------- */
  /* Only hides content when JS has run (html.js, set by an inline head script);
     if JS is unavailable the .js class never appears and content stays visible. */
  .reveal{
    transition:opacity .8s var(--ease-out), transform .8s var(--ease-out);
    will-change:opacity, transform;
  }
  .js .reveal{opacity:0;transform:translateY(26px);}
  .reveal.is-visible{opacity:1;transform:translateY(0);}

  .en{
    font-family:'Cormorant Garamond',serif;
    letter-spacing:.16em;
    text-transform:uppercase;
  }

  .container{
    max-width:1120px;
    margin-inline:auto;
    padding-inline:24px;
  }

  /* ---------------- key-fret divider (回纹) ---------------- */
  .fret{
    height:14px;
    background-image:
      linear-gradient(var(--gold) 2px, transparent 2px),
      linear-gradient(90deg, var(--gold) 2px, transparent 2px);
    background-size:14px 14px;
    background-position:center;
    opacity:.55;
    margin-block:0;
  }

  /* ---------------- nav ---------------- */
  header.nav{
    position:sticky; top:0; z-index:50;
    background:rgba(251,248,239,.92);
    backdrop-filter:saturate(140%) blur(6px);
    border-bottom:1px solid var(--gold-soft);
    transition:box-shadow .4s var(--ease-standard), background .4s var(--ease-standard);
  }
  header.nav.scrolled{
    box-shadow:0 8px 28px -14px rgba(20,12,6,.28);
    background:rgba(251,248,239,.98);
  }
  .nav-inner{
    max-width:1120px;
    margin-inline:auto;
    padding:12px 24px;
    display:flex;
    align-items:center;
    gap:14px;
  }
  .nav-inner .brand-mark{
    width:38px;height:38px;border-radius:50%;object-fit:cover;flex:0 0 auto;
    transition:transform .5s var(--ease-out);
  }
  .nav-inner > a:hover .brand-mark{transform:scale(1.08) rotate(-4deg);}
  .nav-inner .brand-name{
    font-family:'Noto Serif SC',serif;
    font-weight:900;
    font-size:19px;
    letter-spacing:.04em;
    margin-right:auto;
  }
  .nav-links{display:flex;gap:26px;list-style:none;margin:0;padding:0;}
  .nav-links a{
    position:relative;
    font-size:14px;
    font-weight:500;
    text-decoration:none;
    color:var(--ink-soft);
    padding-bottom:2px;
    transition:color .3s var(--ease-standard);
  }
  .nav-links a::after{
    content:"";
    position:absolute;
    left:0;right:0;bottom:-2px;
    height:2px;
    background:var(--gold);
    transform:scaleX(0);
    transform-origin:right;
    transition:transform .4s var(--ease-out);
  }
  .nav-links a:hover{color:var(--red);}
  .nav-links a:hover::after{transform:scaleX(1);transform-origin:left;}
  .nav-cta{
    display:inline-block;
    font-size:13.5px;
    font-weight:600;
    background:var(--red);
    color:var(--cream-light);
    padding:9px 18px;
    border-radius:2px;
    text-decoration:none;
    letter-spacing:.03em;
    transition:background .3s var(--ease-standard), transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
  }
  .nav-cta:hover{background:var(--red-deep);transform:translateY(-2px);box-shadow:0 10px 22px -10px rgba(139,30,30,.55);}
  .nav-cta:active{transform:translateY(0) scale(.96);transition-duration:.15s;}
  @media (max-width:760px){
    .nav-inner{flex-wrap:wrap;row-gap:10px;}
    .nav-links{
      order:3;
      width:100%;
      justify-content:center;
      flex-wrap:wrap;
      row-gap:6px;
      gap:8px;
      padding-top:10px;
      border-top:1px solid var(--gold-soft);
    }
    .nav-links a{font-size:12.5px;padding:4px 8px;}
  }

  /* ---------------- hero ---------------- */
  .hero{
    position:relative;
    min-height:min(88vh,760px);
    display:flex;
    align-items:flex-end;
    overflow:hidden;
  }
  .hero img.bg{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover;
    object-position:center 35%;
  }
  .hero .scrim{
    position:absolute; inset:0;
    background-image:
      linear-gradient(180deg, rgba(20,12,6,.20) 0%, rgba(20,12,6,.35) 45%, rgba(15,9,5,.86) 100%),
      var(--tex-sparkle);
    background-repeat:no-repeat, repeat;
    background-size:auto, 260px 260px;
  }
  .hero-content{
    position:relative;
    z-index:2;
    width:100%;
    padding-block:48px 56px;
    text-align:center;
    color:var(--cream-light);
  }
  .hero-seal{
    width:88px;height:88px;
    border-radius:50%;
    object-fit:cover;
    margin:0 auto 18px;
    border:2px solid var(--gold-soft);
    box-shadow:0 0 0 6px rgba(0,0,0,.18);
  }
  .hero-brush{
    font-family:'Ma Shan Zheng',cursive;
    font-size:22px;
    color:var(--gold-soft);
    margin:0 0 6px;
  }
  .hero h1{
    font-family:'Noto Serif SC',serif;
    font-weight:900;
    font-size:clamp(40px,7vw,64px);
    margin:0;
    letter-spacing:.03em;
    text-wrap:balance;
  }
  .hero .en{
    display:block;
    font-size:15px;
    color:var(--gold-soft);
    margin-top:10px;
  }
  .hero p.tagline{
    max-width:46ch;
    margin:22px auto 30px;
    font-size:16.5px;
    line-height:1.8;
    color:#eee2ce;
  }
  .hero-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
  .btn{
    display:inline-block;
    padding:12px 26px;
    border-radius:2px;
    font-size:14.5px;
    font-weight:600;
    text-decoration:none;
    letter-spacing:.03em;
    transition:transform .45s var(--ease-out), box-shadow .45s var(--ease-out), background .3s var(--ease-standard), color .3s var(--ease-standard);
  }
  .btn:hover{transform:translateY(-3px);box-shadow:0 16px 32px -16px rgba(0,0,0,.5);}
  .btn:active{transform:translateY(-1px) scale(.97);transition-duration:.15s;}
  .btn.solid{background:var(--gold-soft);color:#2a1c08;}
  .btn.solid:hover{background:#e9c98a;}
  .btn.outline{border:1.5px solid var(--cream-light);color:var(--cream-light);}
  .btn.outline:hover{background:rgba(255,255,255,.12);}

  /* ---------------- section shell ---------------- */
  section{padding-block:76px;}
  .eyebrow{
    font-family:'Cormorant Garamond',serif;
    font-size:14px;
    letter-spacing:.28em;
    text-transform:uppercase;
    color:var(--gold);
    margin:0 0 10px;
  }
  h2.section-title{
    font-family:'Noto Serif SC',serif;
    font-weight:900;
    font-size:clamp(28px,4vw,38px);
    margin:0 0 14px;
    color:var(--brown);
    text-wrap:balance;
  }
  p.section-lede{
    max-width:56ch;
    font-size:15.5px;
    line-height:1.9;
    color:var(--ink-soft);
    margin:0;
  }

  /* ---------------- about / story ---------------- */
  .story{
    background-color:var(--cream-light);
    background-image:
      radial-gradient(900px 660px at 108% -12%, rgba(184,134,46,.15), transparent 60%),
      linear-gradient(rgba(184,134,46,.05) 1px, transparent 1px),
      linear-gradient(90deg, rgba(184,134,46,.05) 1px, transparent 1px),
      var(--noise-dark),
      var(--tex-wood);
    background-repeat:no-repeat, repeat, repeat, repeat, repeat;
    background-size:auto, 46px 46px, 46px 46px, 140px 140px, 378px 140px;
  }
  .story-grid{
    display:grid;
    grid-template-columns:1fr 1.15fr;
    gap:52px;
    align-items:center;
  }
  .story-grid > img{
    width:100%;
    aspect-ratio:6/5;
    object-fit:cover;
    border-radius:2px;
    box-shadow:0 18px 40px -18px rgba(42,31,20,.45);
    transition:transform .7s var(--ease-out), box-shadow .7s var(--ease-out);
  }
  .story-grid:hover > img{transform:scale(1.02);box-shadow:0 26px 52px -20px rgba(42,31,20,.55);}

  /* ---------------- story multi-photo collage ---------------- */
  .story-photos{
    display:grid;
    grid-template-columns:1.15fr 1fr;
    grid-template-rows:1fr 1fr;
    gap:10px;
    aspect-ratio:6/5;
  }
  .story-photos img{
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:2px;
    box-shadow:0 14px 32px -16px rgba(42,31,20,.45);
    transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out);
  }
  .story-photos img:hover{transform:scale(1.03);box-shadow:0 20px 40px -18px rgba(42,31,20,.55);}
  .story-photos .p-main{grid-row:1/3;}
  .story-text p{font-size:15px;line-height:1.95;color:var(--ink-soft);margin:0 0 14px;}
  .story-text p:last-child{margin-bottom:0;}
  .story-marks{display:flex;gap:28px;margin-top:26px;padding-top:22px;border-top:1px solid var(--gold-soft);}
  .story-mark b{
    display:block;
    font-family:'Noto Serif SC',serif;
    font-size:26px;
    color:var(--red);
  }
  .story-mark span{font-size:12px;color:var(--ink-soft);letter-spacing:.04em;}
  @media (max-width:820px){ .story-grid{grid-template-columns:1fr;} }

  /* ---------------- signature dishes ---------------- */
  .dishes-head{text-align:center;max-width:640px;margin:0 auto 46px;}
  .dishes-head p{margin:0 auto;}
  .dish-grid{
    display:grid;
    grid-template-columns:1.3fr 1fr 1fr;
    grid-template-rows:auto auto;
    gap:22px;
  }
  .dish-card{
    position:relative;
    border-radius:2px;
    overflow:hidden;
    background:var(--ink);
    color:#fff;
    grid-row:span 2;
    transition:box-shadow .5s var(--ease-out), transform .5s var(--ease-out);
  }
  .dish-card:hover{transform:translateY(-4px);box-shadow:0 28px 54px -22px rgba(0,0,0,.55);}
  .dish-card.small{grid-row:span 1;}
  .dish-card img{
    width:100%;height:100%;
    object-fit:cover;
    position:absolute;inset:0;
    transition:transform .8s var(--ease-out);
  }
  .dish-card:hover img{transform:scale(1.08);}
  .dish-card .veil{
    position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(20,12,6,0) 40%, rgba(15,9,5,.92) 100%);
  }
  .dish-card .info{
    position:relative;z-index:2;
    height:100%;
    display:flex;flex-direction:column;justify-content:flex-end;
    padding:20px;
    min-height:230px;
  }
  .dish-card.tall .info{min-height:420px;}
  .dish-card .tag{
    align-self:flex-start;
    font-family:'Cormorant Garamond',serif;
    font-size:11px;
    letter-spacing:.18em;
    text-transform:uppercase;
    background:var(--red);
    padding:3px 9px;
    border-radius:2px;
    margin-bottom:10px;
  }
  .dish-card h3{
    font-family:'Noto Serif SC',serif;
    font-size:22px;
    margin:0 0 4px;
    font-weight:700;
  }
  .dish-card .en{font-size:11.5px;color:var(--gold-soft);}
  .dish-card p{font-size:13px;color:#e7ddc9;margin:8px 0 0;line-height:1.6;}
  @media (max-width:860px){
    .dish-grid{grid-template-columns:1fr 1fr;}
    .dish-card.tall{grid-column:span 2;grid-row:span 1;}
    .dish-card.tall .info{min-height:260px;}
  }
  @media (max-width:560px){
    .dish-grid{grid-template-columns:1fr;}
    .dish-card.tall{grid-column:span 1;}
  }

  /* ---------------- soup base strip ---------------- */
  .soup{
    position:relative;
    color:#fff;
    overflow:hidden;
  }
  .soup img.bg{
    position:absolute;inset:0;
    width:100%;height:100%;
    object-fit:cover;
    object-position:center 30%;
  }
  .soup .scrim{position:absolute;inset:0;background:linear-gradient(90deg, rgba(15,9,5,.92) 0%, rgba(15,9,5,.55) 55%, rgba(15,9,5,.85) 100%);}
  .soup-inner{position:relative;z-index:2;}
  .soup .eyebrow{color:var(--gold-soft);}
  .soup h2{color:#fff;}
  .soup p.section-lede{color:#e7ddc9;}
  .soup-chips{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;}
  .chip-item{
    border:1px solid rgba(255,255,255,.35);
    border-radius:2px;
    padding:10px 16px;
    font-size:13.5px;
    display:flex;
    gap:10px;
    align-items:baseline;
    transition:transform .4s var(--ease-out), background .4s var(--ease-standard), border-color .4s var(--ease-standard);
  }
  .chip-item:hover{transform:translateY(-3px);background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.6);}
  .chip-item b{font-family:'Noto Serif SC',serif;font-weight:700;}
  .chip-item span{color:var(--gold-soft);font-size:12px;}

  /* ---------------- menu ---------------- */
  .menu-section{
    background-color:var(--paper);
    background-image:
      radial-gradient(900px 660px at -8% 0%, rgba(184,134,46,.11), transparent 55%),
      radial-gradient(800px 620px at 106% 100%, rgba(139,30,30,.05), transparent 55%),
      linear-gradient(rgba(184,134,46,.05) 1px, transparent 1px),
      linear-gradient(90deg, rgba(184,134,46,.05) 1px, transparent 1px),
      var(--noise-dark),
      var(--tex-wood);
    background-repeat:no-repeat, no-repeat, repeat, repeat, repeat, repeat;
    background-size:auto, auto, 46px 46px, 46px 46px, 140px 140px, 378px 140px;
  }
  .menu-cat-block{margin-bottom:52px;}
  .menu-cat-block:last-of-type{margin-bottom:0;}
  .menu-cat-title{
    display:flex;
    align-items:baseline;
    gap:12px;
    margin:0 0 22px;
    padding-bottom:12px;
    border-bottom:2px solid var(--red);
  }
  .menu-cat-title h3{
    font-family:'Noto Serif SC',serif;
    font-size:21px;
    color:var(--red);
    margin:0;
    white-space:nowrap;
  }
  .menu-cat-title span{
    font-size:11px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }
  .dish-menu-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
  }
  .dish-menu-card{
    background:var(--cream-light);
    border:1px solid var(--gold-soft);
    border-radius:2px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    transition:transform .45s var(--ease-out), box-shadow .45s var(--ease-out), border-color .45s var(--ease-standard);
  }
  .dish-menu-card:hover{
    transform:translateY(-7px);
    box-shadow:0 24px 44px -20px rgba(42,31,20,.4);
    border-color:var(--gold);
  }
  .dish-menu-card .thumb{
    position:relative;
    width:100%;
    aspect-ratio:4/3;
    overflow:hidden;
  }
  .dish-menu-card .thumb img{
    width:100%;height:100%;
    object-fit:cover;
    display:block;
    transition:transform .7s var(--ease-out);
  }
  .dish-menu-card:hover .thumb img{transform:scale(1.09);}
  .dish-menu-card .badge{
    position:absolute;
    top:10px;left:10px;
    background:var(--red);
    color:var(--cream-light);
    font-size:10.5px;
    letter-spacing:.04em;
    padding:4px 9px;
    border-radius:1px;
    box-shadow:0 2px 6px rgba(0,0,0,.25);
  }
  .dish-menu-card .dm-body{padding:14px 16px 16px;flex:1;display:flex;flex-direction:column;}
  .dish-menu-card h4{
    font-family:'Noto Serif SC',serif;
    font-size:15.5px;
    color:var(--ink);
    margin:0 0 2px;
  }
  .dish-menu-card .en{
    display:block;
    font-size:11px;
    color:var(--ink-soft);
    margin-bottom:10px;
  }
  .dish-menu-card .price-row{
    margin-top:auto;
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    padding-top:10px;
    border-top:1px dashed rgba(74,46,31,.18);
  }
  .dish-menu-card .price-row .price{
    font-family:'Noto Serif SC',serif;
    font-weight:700;
    font-size:15px;
    color:var(--brown);
  }
  .dish-menu-card .price-row .price small{font-size:10.5px;color:var(--ink-soft);font-weight:400;margin-left:2px;}
  .menu-note{
    margin-top:36px;
    font-size:12.5px;
    color:var(--ink-soft);
    font-style:italic;
    text-align:center;
  }
  .menu-cta-wrap{
    margin-top:34px;
    display:flex;
    justify-content:center;
  }
  .menu-cta-btn{
    display:inline-block;
    font-size:14px;
    font-weight:600;
    background:var(--red);
    color:var(--cream-light);
    padding:13px 34px;
    border-radius:2px;
    text-decoration:none;
    letter-spacing:.03em;
    transition:background .3s var(--ease-standard), transform .45s var(--ease-out), box-shadow .45s var(--ease-out);
  }
  .menu-cta-btn:hover{background:var(--red-deep);transform:translateY(-3px);box-shadow:0 16px 32px -16px rgba(139,30,30,.5);}
  .menu-cta-btn:active{transform:translateY(-1px) scale(.97);transition-duration:.15s;}
  @media (max-width:900px){ .dish-menu-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .dish-menu-grid{grid-template-columns:1fr;} }

  /* ---------------- locations ---------------- */
  .locations{
    background-color:var(--cream-light);
    background-image:
      radial-gradient(850px 620px at 106% 108%, rgba(139,30,30,.08), transparent 55%),
      radial-gradient(720px 560px at -6% -12%, rgba(184,134,46,.11), transparent 55%),
      linear-gradient(rgba(184,134,46,.05) 1px, transparent 1px),
      linear-gradient(90deg, rgba(184,134,46,.05) 1px, transparent 1px),
      var(--noise-dark),
      var(--tex-wood);
    background-repeat:no-repeat, no-repeat, repeat, repeat, repeat, repeat;
    background-size:auto, auto, 46px 46px, 46px 46px, 140px 140px, 378px 140px;
  }
  .loc-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
  }
  .loc-card{
    background:var(--paper);
    border:1px solid var(--gold-soft);
    border-radius:2px;
    padding:0;
    overflow:hidden;
    transition:transform .45s var(--ease-out), box-shadow .45s var(--ease-out), border-color .45s var(--ease-standard);
  }
  .loc-card:hover{
    transform:translateY(-7px);
    box-shadow:0 24px 44px -20px rgba(42,31,20,.35);
    border-color:var(--gold);
  }
  .loc-photo{
    width:100%;
    aspect-ratio:3/4;
    height:auto;
    object-fit:cover;
    display:block;
    border-bottom:1px solid var(--gold-soft);
    transition:transform .7s var(--ease-out);
  }
  .loc-card:hover .loc-photo{transform:scale(1.07);}
  .loc-gallery[data-outlet]{cursor:pointer;}
  .loc-gallery-cta{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(20,12,6,0);
    opacity:0;
    transition:opacity .35s var(--ease-standard), background .35s var(--ease-standard);
    z-index:3;
    pointer-events:none;
  }
  .loc-gallery:hover .loc-gallery-cta{
    opacity:1;
    background:rgba(20,12,6,.32);
  }
  .loc-gallery-cta span{
    display:inline-flex;
    align-items:center;
    gap:6px;
    background:var(--gold-soft);
    color:#2a1c08;
    font-size:13px;
    font-weight:600;
    padding:9px 18px;
    border-radius:2px;
    letter-spacing:.02em;
    box-shadow:0 10px 24px -10px rgba(0,0,0,.5);
    transform:translateY(6px);
    transition:transform .35s var(--ease-out);
  }
  .loc-gallery:hover .loc-gallery-cta span{transform:translateY(0);}
  @media (max-width:680px){
    .loc-gallery-cta{opacity:1;background:linear-gradient(180deg, rgba(20,12,6,0) 60%, rgba(20,12,6,.5) 100%);align-items:flex-end;padding-bottom:14px;}
    .loc-gallery-cta span{transform:none;padding:7px 14px;font-size:12px;}
  }
  .loc-gallery{
    position:relative;
    aspect-ratio:3/4;
    overflow:hidden;
    border-bottom:1px solid var(--gold-soft);
    background:var(--brown);
  }
  .loc-gallery-track{
    display:flex;
    width:100%;
    height:100%;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .loc-gallery-track::-webkit-scrollbar{display:none;}
  .loc-gallery-track img{
    flex:0 0 100%;
    width:100%;
    height:100%;
    object-fit:cover;
    scroll-snap-align:start;
    display:block;
  }
  .gallery-arrow{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:34px;
    height:34px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.35);
    background:rgba(20,13,8,.45);
    backdrop-filter:blur(2px);
    color:#fff;
    font-size:13px;
    line-height:1;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    opacity:0;
    transition:opacity .3s var(--ease-standard), background .25s;
    z-index:2;
    padding:0;
  }
  .loc-gallery:hover .gallery-arrow{opacity:1;}
  .gallery-arrow:hover{background:rgba(20,13,8,.75);}
  .gallery-arrow:focus-visible{opacity:1;outline:2px solid var(--gold);}
  .gallery-arrow.prev{left:10px;}
  .gallery-arrow.next{right:10px;}
  .gallery-dots{
    position:absolute;
    bottom:12px;
    left:0;
    right:0;
    display:flex;
    justify-content:center;
    gap:5px;
    z-index:2;
    pointer-events:none;
  }
  .gallery-dot{
    width:5px;
    height:5px;
    border-radius:50%;
    background:rgba(255,255,255,.5);
    box-shadow:0 0 0 1px rgba(0,0,0,.15);
    transition:background .25s, width .25s, border-radius .25s;
  }
  .gallery-dot.active{background:var(--gold-soft);width:15px;border-radius:3px;}
  @media (max-width:680px){
    .gallery-arrow{opacity:1;}
  }
  .loc-body{padding:22px 22px 24px;}
  .loc-card h3{
    font-family:'Noto Serif SC',serif;
    font-size:19px;
    margin:0 0 12px;
    color:var(--brown);
    display:flex;
    align-items:center;
    gap:8px;
  }
  .loc-card h3 .dot{width:6px;height:6px;background:var(--red);border-radius:50%;}
  .loc-line{font-size:13.5px;color:var(--ink-soft);margin:0 0 8px;line-height:1.6;}
  .loc-line b{color:var(--ink);font-weight:600;}
  .loc-placeholder{
    font-size:12px;
    color:var(--ink-soft);
    font-style:italic;
    background:rgba(184,134,46,.1);
    border-left:2px solid var(--gold);
    padding:6px 10px;
    margin-top:10px;
  }
  .loc-line.meta{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--gold);margin-bottom:10px;}
  .loc-line.meta b{color:var(--gold);}
  @media (max-width:1000px){ .loc-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:600px){ .loc-grid{grid-template-columns:1fr;} }

  /* ---------------- gallery ---------------- */
  .gallery-section{
    background-color:var(--paper);
    background-image:
      radial-gradient(900px 660px at -8% -10%, rgba(184,134,46,.11), transparent 55%),
      radial-gradient(800px 620px at 106% 105%, rgba(139,30,30,.05), transparent 55%),
      linear-gradient(rgba(184,134,46,.05) 1px, transparent 1px),
      linear-gradient(90deg, rgba(184,134,46,.05) 1px, transparent 1px),
      var(--noise-dark),
      var(--tex-wood);
    background-repeat:no-repeat, no-repeat, repeat, repeat, repeat, repeat;
    background-size:auto, auto, 46px 46px, 46px 46px, 140px 140px, 378px 140px;
  }
  .gallery-grid{
    column-count:3;
    column-gap:20px;
  }
  .gallery-item{
    break-inside:avoid;
    margin-bottom:20px;
    border-radius:2px;
    overflow:hidden;
    box-shadow:0 14px 32px -18px rgba(42,31,20,.35);
    cursor:zoom-in;
    transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out);
  }
  .gallery-item:hover{
    transform:translateY(-6px);
    box-shadow:0 26px 50px -20px rgba(42,31,20,.45);
  }
  .gallery-item img{
    width:100%;
    display:block;
    transition:transform .8s var(--ease-out);
  }
  .gallery-item:hover img{transform:scale(1.05);}
  @media (max-width:900px){ .gallery-grid{column-count:2;} }
  @media (max-width:560px){ .gallery-grid{column-count:1;} }

  /* ---------------- lightbox ---------------- */
  .lightbox-overlay{
    position:fixed; inset:0;
    background:rgba(15,9,5,.9);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:28px;
    z-index:500;
    opacity:0;
    cursor:zoom-out;
    transition:opacity .35s var(--ease-standard);
  }
  .lightbox-overlay.is-visible{opacity:1;}
  .lightbox-overlay img{
    max-width:92vw;
    max-height:88vh;
    border-radius:2px;
    box-shadow:0 30px 80px -20px rgba(0,0,0,.6);
    transform:scale(.94);
    transition:transform .4s var(--ease-out);
  }
  .lightbox-overlay.is-visible img{transform:scale(1);}

  /* ---------------- footer ---------------- */
  footer{
    position:relative;
    background-color:var(--ink-red);
    background-image:
      linear-gradient(rgba(36,16,9,.72), rgba(36,16,9,.86)),
      var(--tex-dramatic),
      radial-gradient(700px 520px at 100% 0%, rgba(184,134,46,.1), transparent 60%),
      linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px),
      var(--noise-light),
      var(--tex-sparkle);
    background-repeat:no-repeat, no-repeat, no-repeat, repeat, repeat, repeat, repeat;
    background-size:auto, cover, auto, 46px 46px, 46px 46px, 140px 140px, 260px 260px;
    background-position:center, center, center, center, center, center, center;
    color:#cfc3ac;
    padding-block:44px 28px;
  }
  .foot-inner{
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:28px;
    padding-bottom:26px;
    border-bottom:1px solid rgba(255,255,255,.12);
  }
  .foot-brand{display:flex;align-items:center;gap:12px;}
  .foot-brand img{width:34px;height:34px;border-radius:50%;object-fit:cover;}
  .foot-brand span{font-family:'Noto Serif SC',serif;font-weight:700;font-size:17px;color:#f2ead6;}
  .foot-social{display:flex;gap:16px;font-size:13px;}
  .foot-social a{
    text-decoration:none;
    color:#cfc3ac;
    border-bottom:1px solid transparent;
    transition:color .3s var(--ease-standard), border-color .3s var(--ease-standard);
  }
  .foot-social a:hover{color:var(--gold-soft);border-color:var(--gold-soft);}
  .foot-bottom{
    padding-top:20px;
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:10px;
    font-size:12px;
    color:#8d8168;
  }
  @media (max-width:600px){ .foot-inner{flex-direction:column;} }

  /* ---------------- nav active state ---------------- */
  .nav-links a.active{color:var(--red);}
  .nav-links a.active::after{transform:scaleX(1);background:var(--red);}

  /* ---------------- interior page banner ---------------- */
  .page-banner{
    position:relative;
    background-color:var(--ink-red);
    background-image:var(--tex-dramatic);
    background-size:cover;
    background-position:center 30%;
    color:var(--cream-light);
    padding-block:60px 50px;
    text-align:center;
    overflow:hidden;
  }
  .page-banner::before{
    content:"";
    position:absolute;inset:0;
    background-image:
      linear-gradient(rgba(36,16,9,.55), rgba(36,16,9,.8)),
      radial-gradient(ellipse at 50% -10%, rgba(184,134,46,.24), transparent 60%),
      linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px),
      var(--noise-light),
      var(--tex-sparkle);
    background-repeat:no-repeat, no-repeat, repeat, repeat, repeat, repeat;
    background-size:auto, auto, 46px 46px, 46px 46px, 140px 140px, 260px 260px;
  }
  .page-banner .inner{position:relative;z-index:2;}
  .page-banner .eyebrow{color:var(--gold-soft);}
  .page-banner h1{
    font-family:'Noto Serif SC',serif;
    font-weight:900;
    font-size:clamp(30px,5vw,44px);
    margin:0 0 12px;
    color:#fdf9ee;
  }
  .page-banner p{
    max-width:56ch;
    margin:0 auto;
    color:#e7ddc9;
    font-size:15px;
    line-height:1.85;
  }

  /* ---------------- careers page ---------------- */
  .job-section{
    background-color:var(--cream-light);
    background-image:
      radial-gradient(850px 620px at -8% 105%, rgba(184,134,46,.12), transparent 55%),
      radial-gradient(700px 560px at 105% -10%, rgba(139,30,30,.05), transparent 55%),
      linear-gradient(rgba(184,134,46,.05) 1px, transparent 1px),
      linear-gradient(90deg, rgba(184,134,46,.05) 1px, transparent 1px),
      var(--noise-dark),
      var(--tex-wood);
    background-repeat:no-repeat, no-repeat, repeat, repeat, repeat, repeat;
    background-size:auto, auto, 46px 46px, 46px 46px, 140px 140px, 378px 140px;
  }

  .why-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
  }
  .why-card{
    background:var(--cream-light);
    border:1px solid var(--gold-soft);
    border-radius:2px;
    padding:26px 22px;
    text-align:center;
    transition:transform .45s var(--ease-out), box-shadow .45s var(--ease-out), border-color .45s var(--ease-standard);
  }
  .why-card:hover{
    transform:translateY(-6px);
    box-shadow:0 20px 40px -20px rgba(42,31,20,.3);
    border-color:var(--gold);
  }
  .why-card .num{
    font-family:'Noto Serif SC',serif;
    font-weight:900;
    font-size:28px;
    color:var(--red);
    display:block;
    margin-bottom:10px;
  }
  .why-card h4{font-size:15px;margin:0 0 8px;color:var(--ink);font-family:'Noto Serif SC',serif;}
  .why-card p{font-size:12.5px;color:var(--ink-soft);line-height:1.7;margin:0;}
  @media (max-width:900px){ .why-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:520px){ .why-grid{grid-template-columns:1fr;} }

  .job-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:20px;
  }
  .job-card{
    background:var(--paper);
    border:1px solid var(--gold-soft);
    border-left:4px solid var(--red);
    border-radius:2px;
    padding:22px 24px;
    transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
  }
  .job-card:hover{
    transform:translateY(-5px);
    box-shadow:0 18px 36px -18px rgba(42,31,20,.28);
  }
  .job-card .job-head{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:10px;
    margin-bottom:8px;
  }
  .job-card h4{
    font-family:'Noto Serif SC',serif;
    font-size:17px;
    color:var(--brown);
    margin:0;
  }
  .job-card .job-type{
    font-size:11px;
    color:var(--gold);
    letter-spacing:.05em;
    white-space:nowrap;
    border:1px solid var(--gold-soft);
    padding:2px 8px;
    border-radius:20px;
  }
  .job-card p{font-size:13.5px;color:var(--ink-soft);line-height:1.75;margin:0;}
  @media (max-width:700px){ .job-grid{grid-template-columns:1fr;} }

  .apply-panel{
    background:var(--brown);
    color:#f2ead6;
    border-radius:2px;
    padding:40px 36px;
    text-align:center;
  }
  .apply-panel h3{
    font-family:'Noto Serif SC',serif;
    font-size:24px;
    margin:0 0 12px;
    color:#fff;
  }
  .apply-panel p{
    max-width:52ch;
    margin:0 auto 24px;
    font-size:14.5px;
    line-height:1.85;
    color:#e7ddc9;
  }

  /* ---------------- reservation ---------------- */
  .reserve{
    background-color:var(--cream-light);
    background-image:
      radial-gradient(850px 620px at -6% -10%, rgba(184,134,46,.12), transparent 55%),
      radial-gradient(750px 580px at 106% 105%, rgba(139,30,30,.05), transparent 55%),
      linear-gradient(rgba(184,134,46,.05) 1px, transparent 1px),
      linear-gradient(90deg, rgba(184,134,46,.05) 1px, transparent 1px),
      var(--noise-dark),
      var(--tex-wood);
    background-repeat:no-repeat, no-repeat, repeat, repeat, repeat, repeat;
    background-size:auto, auto, 46px 46px, 46px 46px, 140px 140px, 378px 140px;
  }
  .reserve-card{
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    border-radius:2px;
    overflow:hidden;
    box-shadow:0 28px 60px -26px rgba(42,31,20,.4);
  }
  .reserve-pitch{
    background:var(--brown);
    background-image:linear-gradient(165deg, rgba(184,134,46,.18), transparent 60%), var(--tex-sparkle);
    background-repeat:no-repeat, repeat;
    background-size:auto, 260px 260px;
    color:#f2ead6;
    padding:44px 38px;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .reserve-pitch .eyebrow{color:var(--gold-soft);}
  .reserve-pitch h2{
    font-family:'Noto Serif SC',serif;
    font-weight:900;
    font-size:clamp(24px,3vw,30px);
    margin:0 0 14px;
    color:#fff;
    text-wrap:balance;
  }
  .reserve-pitch > p{
    font-size:14px;
    line-height:1.85;
    color:#e7ddc9;
    margin:0 0 22px;
  }
  .reserve-points{
    list-style:none;
    margin:0;
    padding:18px 0 0;
    border-top:1px solid rgba(255,255,255,.16);
    display:flex;
    flex-direction:column;
    gap:10px;
  }
  .reserve-points li{
    font-size:13px;
    color:#e7ddc9;
    padding-left:20px;
    position:relative;
  }
  .reserve-points li::before{
    content:"";
    position:absolute;left:0;top:7px;
    width:6px;height:6px;
    background:var(--gold-soft);
    border-radius:50%;
  }
  .reserve-form{
    background:var(--paper);
    padding:40px 38px;
    display:grid;
    gap:18px;
    transition:box-shadow .5s var(--ease-standard);
  }
  .reserve-form.is-highlighted{
    box-shadow:inset 0 0 0 3px var(--gold);
  }
  .reserve-form .field{display:flex;flex-direction:column;gap:6px;}
  .reserve-form .field-pair{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
  }
  .reserve-form .field-pair > div{display:flex;flex-direction:column;gap:6px;}
  .reserve-form label{
    font-size:12.5px;
    font-weight:600;
    color:var(--ink-soft);
    letter-spacing:.02em;
  }
  .reserve-form input,
  .reserve-form select,
  .reserve-form textarea{
    font:inherit;
    font-size:14px;
    color:var(--ink);
    background:var(--cream-light);
    border:1px solid var(--gold-soft);
    border-radius:2px;
    padding:11px 13px;
    width:100%;
    transition:border-color .3s var(--ease-standard), box-shadow .3s var(--ease-standard), background .3s var(--ease-standard);
  }
  .reserve-form select{
    appearance:none;
    background-image:
      linear-gradient(45deg, transparent 50%, var(--ink-soft) 50%),
      linear-gradient(135deg, var(--ink-soft) 50%, transparent 50%);
    background-position:calc(100% - 18px) center, calc(100% - 13px) center;
    background-size:5px 5px, 5px 5px;
    background-repeat:no-repeat;
    padding-right:34px;
  }
  .reserve-form input:focus,
  .reserve-form select:focus,
  .reserve-form textarea:focus{
    outline:none;
    border-color:var(--gold);
    background:#fff;
    box-shadow:0 0 0 3px rgba(184,134,46,.16);
  }
  .reserve-form textarea{resize:vertical;min-height:76px;font-family:inherit;}
  .reserve-actions{
    display:flex;
    align-items:center;
    gap:18px;
    flex-wrap:wrap;
    margin-top:4px;
  }
  .reserve-submit{border:none;cursor:pointer;font:inherit;}
  .reserve-call{
    font-size:13px;
    color:var(--red);
    text-decoration:none;
    border-bottom:1px solid transparent;
    transition:border-color .3s var(--ease-standard);
    display:flex;
    align-items:center;
    gap:4px;
  }
  .reserve-call:hover{border-color:var(--red);}
  .reserve-hint{
    font-size:12px;
    color:var(--ink-soft);
    font-style:italic;
    margin:0;
  }
  .reserve-hint.is-success{color:var(--red);font-style:normal;font-weight:600;}
  @media (max-width:860px){
    .reserve-card{grid-template-columns:1fr;}
    .reserve-form .field-pair{grid-template-columns:1fr;}
  }

  /* ---------------- menu: quick jump ---------------- */
  .menu-jump{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
    margin:0 0 54px;
  }
  .menu-jump a{
    border:1px solid var(--gold-soft);
    border-radius:20px;
    padding:8px 18px;
    font-size:12.5px;
    font-weight:600;
    color:var(--ink-soft);
    text-decoration:none;
    background:var(--cream-light);
    transition:color .3s var(--ease-standard), border-color .3s var(--ease-standard), background .3s var(--ease-standard);
  }
  .menu-jump a:hover{color:var(--red);border-color:var(--red);background:#fff;}

  /* ---------------- menu: text price list ---------------- */
  .menu-cat-block .cat-lede{
    font-size:13.5px;
    color:var(--ink-soft);
    margin:-10px 0 24px;
    line-height:1.8;
    max-width:70ch;
  }
  .pl-group{margin-bottom:28px;}
  .pl-group:last-child{margin-bottom:0;}
  .pl-group-title{
    font-family:'Noto Serif SC',serif;
    font-size:14px;
    font-weight:700;
    color:var(--gold);
    letter-spacing:.04em;
    margin:0 0 12px;
    display:flex;
    align-items:baseline;
    gap:8px;
    flex-wrap:wrap;
  }
  .pl-group-title .en{
    font-family:'Cormorant Garamond',serif;
    font-size:11px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--ink-soft);
    font-weight:400;
  }
  .price-list{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:0 40px;
  }
  .price-list.cols-1{grid-template-columns:1fr;}
  .price-item{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:12px;
    padding:9px 0;
    border-bottom:1px dashed rgba(74,46,31,.18);
  }
  .price-item .pi-name{min-width:0;}
  .price-item .pi-name .cn{
    font-size:14px;
    color:var(--ink);
    font-weight:500;
  }
  .price-item .pi-name .en{
    display:block;
    font-family:'Cormorant Garamond',serif;
    font-size:11px;
    letter-spacing:.05em;
    color:var(--ink-soft);
    margin-top:1px;
  }
  .price-item .pi-price{
    font-family:'Noto Serif SC',serif;
    font-weight:700;
    font-size:14px;
    color:var(--brown);
    white-space:nowrap;
    flex:0 0 auto;
  }
  .price-item .pi-price small{font-size:10px;color:var(--ink-soft);font-weight:400;margin-left:2px;}
  .price-item.popular{background:linear-gradient(90deg, rgba(184,134,46,.08), transparent);}
  .price-item.popular .pi-name .cn::after{
    content:"人气";
    font-size:9.5px;
    color:#fff;
    background:var(--red);
    padding:1px 6px;
    border-radius:1px;
    margin-left:8px;
    letter-spacing:.02em;
    vertical-align:middle;
  }
  @media (max-width:700px){
    .price-list{grid-template-columns:1fr;}
  }

  /* ---------------- menu: CNY set packages ---------------- */
  .setmenu-lede{
    background:var(--brown);
    background-image:linear-gradient(165deg, rgba(184,134,46,.18), transparent 60%), var(--tex-sparkle);
    background-repeat:no-repeat, repeat;
    background-size:auto, 260px 260px;
    color:#f2ead6;
    border-radius:2px;
    padding:20px 26px;
    margin-bottom:30px;
    font-size:13.5px;
    line-height:1.85;
    display:flex;
    align-items:center;
    gap:16px;
    flex-wrap:wrap;
  }
  .setmenu-lede b{color:var(--gold-soft);font-family:'Noto Serif SC',serif;}
  .setmenu-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:22px;
  }
  .setmenu-card{
    position:relative;
    background:var(--cream-light);
    border:1px solid var(--gold-soft);
    border-radius:2px;
    padding:26px 24px 22px;
    transition:transform .45s var(--ease-out), box-shadow .45s var(--ease-out), border-color .45s var(--ease-standard);
  }
  .setmenu-card:hover{
    transform:translateY(-6px);
    box-shadow:0 22px 42px -20px rgba(42,31,20,.35);
    border-color:var(--gold);
  }
  .setmenu-card .sm-ribbon{
    position:absolute;top:0;right:18px;
    background:var(--red);
    color:var(--cream-light);
    font-size:10.5px;
    letter-spacing:.04em;
    padding:5px 10px;
    border-radius:0 0 2px 2px;
  }
  .setmenu-card .sm-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:12px;
    margin-bottom:4px;
  }
  .setmenu-card h4{
    font-family:'Noto Serif SC',serif;
    font-size:19px;
    color:var(--red);
    margin:0;
  }
  .setmenu-card .sm-pax{
    font-size:11.5px;
    color:var(--gold);
    border:1px solid var(--gold-soft);
    border-radius:20px;
    padding:2px 10px;
    white-space:nowrap;
  }
  .setmenu-card .sm-code{font-size:11px;color:var(--ink-soft);}
  .setmenu-card .sm-price{
    font-family:'Noto Serif SC',serif;
    font-weight:900;
    font-size:26px;
    color:var(--brown);
    margin:8px 0 14px;
  }
  .setmenu-card .sm-price small{font-size:12px;font-weight:400;color:var(--ink-soft);}
  .setmenu-card dl{margin:0;padding-top:14px;border-top:1px dashed rgba(74,46,31,.18);}
  .setmenu-card dt{
    font-size:11.5px;
    color:var(--gold);
    font-weight:600;
    letter-spacing:.03em;
    margin-bottom:3px;
  }
  .setmenu-card dd{
    margin:0 0 12px;
    font-size:13px;
    color:var(--ink-soft);
    line-height:1.7;
  }
  .setmenu-card dd:last-child{margin-bottom:0;}
  @media (max-width:820px){
    .setmenu-grid{grid-template-columns:1fr;}
    .setmenu-card[style]{grid-column:auto!important;}
  }

  /* ---------------- craft / process video (About Us) ---------------- */
  .craft{
    background:
      radial-gradient(ellipse 900px 500px at 85% 0%, rgba(184,134,46,.08), transparent 60%),
      var(--cream-light);
  }
  .craft-grid{
    display:grid;
    grid-template-columns:1.14fr .86fr;
    gap:64px;
    align-items:center;
  }
  .craft-text p.eyebrow{color:var(--gold);}
  .craft-video{display:flex;justify-content:center;}
  .craft-video .frame{
    position:relative;
    width:100%;
    max-width:320px;
    aspect-ratio:9/16;
    border-radius:16px;
    overflow:hidden;
    cursor:pointer;
    background:#0d0a06;
    box-shadow:
      0 32px 64px -22px rgba(42,31,20,.55),
      0 0 0 1px rgba(184,134,46,.28);
    transition:transform .6s cubic-bezier(.22,1,.36,1), box-shadow .6s cubic-bezier(.22,1,.36,1);
  }
  .craft-video .frame:hover{
    transform:translateY(-4px) scale(1.015);
    box-shadow:
      0 40px 80px -20px rgba(42,31,20,.6),
      0 0 0 1px rgba(184,134,46,.45);
  }
  .craft-video .frame::before{
    content:'';
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(180deg, rgba(0,0,0,.28) 0%, rgba(0,0,0,0) 22%, rgba(0,0,0,0) 68%, rgba(0,0,0,.4) 100%);
  }
  .craft-video video{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    background:#000;
  }
  .craft-video .tag-corner{
    position:absolute;
    top:14px;
    left:14px;
    z-index:2;
    background:rgba(20,14,8,.5);
    backdrop-filter:blur(4px);
    color:var(--cream-light);
    font-size:10px;
    letter-spacing:.08em;
    padding:5px 11px;
    border-radius:20px;
    border:1px solid rgba(217,184,119,.35);
    pointer-events:none;
  }
  .play-veil{
    position:absolute;
    inset:0;
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:12px;
    background:rgba(13,10,6,.22);
    opacity:1;
    transition:opacity .5s cubic-bezier(.22,1,.36,1);
    pointer-events:none;
  }
  .frame.is-active .play-veil{opacity:0;}
  .play-icon{
    width:54px;
    height:54px;
    border-radius:50%;
    background:rgba(251,248,239,.94);
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 12px 28px -8px rgba(0,0,0,.55);
    transition:transform .4s cubic-bezier(.22,1,.36,1);
  }
  .frame:hover .play-icon{transform:scale(1.08);}
  .play-icon::after{
    content:'';
    border-style:solid;
    border-width:9px 0 9px 15px;
    border-color:transparent transparent transparent var(--red);
    margin-left:4px;
  }
  .play-hint{
    font-family:'Cormorant Garamond',serif;
    font-size:12px;
    letter-spacing:.1em;
    color:var(--cream-light);
    text-shadow:0 1px 6px rgba(0,0,0,.6);
  }
  .craft-text .cta-row{margin-top:28px;}
  @media (max-width:820px){
    .craft-grid{grid-template-columns:1fr;gap:34px;}
    .craft-grid .craft-text{order:2;}
    .craft-grid .craft-video{order:1;}
    .craft-video .frame{max-width:280px;}
  }

  /* ---------------- flipbook menu (MENU page) ---------------- */
  .flip-wrap{margin-top:54px;}
  .flip-head{max-width:640px;margin:0 auto 30px;text-align:center;}
  .flip-head .cat-lede{margin-top:8px;}
  .flipbook{
    position:relative;
    max-width:900px;
    margin:0 auto;
    padding:26px 0 0;
    border-radius:20px;
    background:radial-gradient(ellipse 700px 360px at 50% 0%, rgba(184,134,46,.09), transparent 65%);
  }
  .flipbook-tabs{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:8px;
    margin-bottom:22px;
    padding:0 6px;
  }
  .ft-tab{
    font-family:'Noto Sans SC',sans-serif;
    font-size:12.5px;
    letter-spacing:.02em;
    color:var(--ink-soft);
    background:var(--paper);
    border:1px solid rgba(74,46,31,.16);
    border-radius:20px;
    padding:8px 16px;
    cursor:pointer;
    transition:color .3s, background .3s, border-color .3s, transform .3s;
  }
  .ft-tab:hover{color:var(--red);border-color:rgba(139,30,30,.35);}
  .ft-tab.is-active{
    background:var(--red);
    border-color:var(--red);
    color:var(--cream-light);
    transform:translateY(-1px);
    box-shadow:0 8px 18px -8px rgba(139,30,30,.55);
  }
  .flip-stage{
    position:relative;
    display:flex;
    align-items:center;
    gap:14px;
  }
  .flip-nav{
    flex:none;
    width:44px;
    height:44px;
    border-radius:50%;
    border:1px solid rgba(184,134,46,.4);
    background:var(--paper);
    color:var(--red);
    font-size:20px;
    line-height:1;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 10px 22px -10px rgba(42,31,20,.4);
    transition:background .3s, color .3s, transform .2s;
  }
  .flip-nav:hover{background:var(--red);color:var(--cream-light);transform:scale(1.06);}
  .flip-nav:active{transform:scale(.96);}
  .flip-pages{
    position:relative;
    flex:1;
    height:clamp(520px, 74vh, 760px);
    perspective:2400px;
  }
  .flip-page{
    position:absolute;
    inset:0;
    background:var(--paper);
    border:1px solid rgba(74,46,31,.12);
    border-radius:16px;
    box-shadow:0 26px 54px -22px rgba(42,31,20,.45);
    padding:30px 34px 26px;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
    transform:rotateY(0deg);
    opacity:1;
    z-index:1;
    scrollbar-width:thin;
    scrollbar-color:var(--gold-soft) transparent;
  }
  .flip-page.is-active{z-index:5;}
  .flip-page.is-photo{padding:16px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
  .flip-photo{width:100%;height:100%;display:flex;align-items:center;justify-content:center;}
  .flip-photo .og-shot-btn{
    position:relative;
    display:block;
    width:auto;
    max-width:100%;
    height:100%;
    max-height:100%;
    padding:0;
    border:1px solid rgba(74,46,31,.14);
    border-radius:10px;
    overflow:hidden;
    background:none;
    cursor:zoom-in;
    box-shadow:0 20px 44px -18px rgba(42,31,20,.5);
    transition:transform .3s, box-shadow .3s;
  }
  .flip-photo .og-shot-btn:hover{transform:scale(1.008);box-shadow:0 26px 52px -18px rgba(42,31,20,.6);}
  .flip-photo .og-shot-btn img{display:block;height:100%;width:auto;max-width:100%;object-fit:contain;}
  .flip-stage.is-single .flip-nav{visibility:hidden;pointer-events:none;}
  .flip-page::after{
    content:'';
    position:absolute;
    inset:0;
    border-radius:inherit;
    pointer-events:none;
    background:linear-gradient(90deg, rgba(20,14,8,.35), rgba(20,14,8,0) 16%, rgba(20,14,8,0) 84%, rgba(20,14,8,.35));
    opacity:0;
    transition:opacity .3s;
  }
  .flip-page.is-flipping::after{opacity:1;}
  .flip-page::-webkit-scrollbar{width:6px;}
  .flip-page::-webkit-scrollbar-thumb{background:var(--gold-soft);border-radius:6px;}
  .flip-progress{
    display:flex;
    align-items:center;
    gap:14px;
    max-width:900px;
    margin:20px auto 0;
    padding:0 6px;
  }
  .fp-label{font-size:12px;color:var(--ink-soft);white-space:nowrap;font-variant-numeric:tabular-nums;}
  .fp-label b{color:var(--red);font-weight:700;}
  .fp-track{flex:1;height:3px;background:rgba(74,46,31,.14);border-radius:3px;overflow:hidden;}
  .fp-fill{height:100%;width:16.666%;background:var(--gold);border-radius:3px;transition:width .5s cubic-bezier(.4,0,.2,1);}
  @media (max-width:820px){
    .flip-stage{gap:8px;}
    .flip-nav{width:36px;height:36px;font-size:17px;}
    .flip-pages{height:clamp(480px, 78vh, 680px);}
    .flip-page{padding:24px 18px 20px;}
    .flip-page.is-photo{padding:10px;}
    .flipbook-tabs{gap:6px;}
    .ft-tab{font-size:11.5px;padding:7px 12px;}
  }

  /* ---------------- original menu-sheet photo + lightbox ---------------- */
  .og-menu-shot{
    margin:0 0 24px;
    padding:0;
    text-align:center;
  }
  .og-shot-btn{
    display:inline-block;
    position:relative;
    width:100%;
    max-width:340px;
    padding:0;
    border:1px solid rgba(74,46,31,.16);
    border-radius:10px;
    overflow:hidden;
    background:none;
    cursor:zoom-in;
    box-shadow:0 14px 30px -16px rgba(42,31,20,.45);
    transition:transform .3s, box-shadow .3s;
  }
  .og-shot-btn:hover{transform:translateY(-2px);box-shadow:0 20px 38px -16px rgba(42,31,20,.55);}
  .og-shot-btn img{display:block;width:100%;height:auto;}
  .og-shot-btn .og-zoom{
    position:absolute;
    right:8px;
    bottom:8px;
    background:rgba(20,14,8,.62);
    backdrop-filter:blur(3px);
    color:var(--cream-light);
    font-size:11px;
    letter-spacing:.03em;
    padding:5px 10px;
    border-radius:20px;
  }
  .og-menu-shot figcaption{
    margin-top:9px;
    font-size:11.5px;
    color:var(--ink-soft);
    letter-spacing:.02em;
  }
  .og-lightbox{
    position:fixed;
    inset:0;
    z-index:999;
    display:none;
    align-items:center;
    justify-content:center;
    padding:28px;
    background:rgba(15,10,6,.88);
    backdrop-filter:blur(2px);
  }
  .og-lightbox.is-open{display:flex;}
  .og-lightbox img{
    max-width:100%;
    max-height:100%;
    border-radius:8px;
    box-shadow:0 30px 70px -20px rgba(0,0,0,.7);
  }
  .og-lightbox-close{
    position:absolute;
    top:20px;
    right:24px;
    width:44px;
    height:44px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.3);
    background:rgba(255,255,255,.08);
    color:#fff;
    font-size:26px;
    line-height:1;
    cursor:pointer;
  }
  .og-lightbox-close:hover{background:rgba(255,255,255,.18);}
