:root{--stage-accent:#d8aa55;--blue:#d8aa55;--green:#d8aa55;--lime:#d8aa55;--orange:#d8aa55;--stage-black:#050607;--stage-white:#fff;--ease-stage:cubic-bezier(.22,.8,.22,1)}

/* A thin, persistent accent shows where the guest is in the story. */
.v25-progress{position:fixed;z-index:98;top:0;left:0;width:100%;height:3px;pointer-events:none;background:rgba(82,100,255,.13)}
.v25-progress::after{content:"";display:block;width:calc(var(--page-progress,0)*1%);height:100%;background:var(--stage-accent);box-shadow:0 0 18px rgba(216,170,85,.66);transition:width .08s linear}

/* Brand-shaped calls to action: sharp geometry with a stair cut. */
:is(.header-book,.hero-actions a,.hero-actions button,.menu-portal-copy>a,.events-title button,.closing button,.closing a,.button,.primary-button,.cart-dock,.retry){position:relative;isolation:isolate;overflow:hidden;clip-path:polygon(0 0,calc(100% - 13px) 0,calc(100% - 13px) 7px,calc(100% - 7px) 7px,calc(100% - 7px) 13px,100% 13px,100% 100%,0 100%);transition:color .28s var(--ease-stage),background-color .28s var(--ease-stage),transform .2s var(--ease-stage),box-shadow .28s var(--ease-stage)}
:is(.header-book,.hero-actions a,.hero-actions button,.menu-portal-copy>a,.events-title button,.closing button,.closing a,.button,.primary-button,.cart-dock,.retry)::before{content:"";position:absolute;z-index:-1;inset:0;background:var(--stage-accent);transform:translateX(-103%);transition:transform .34s var(--ease-stage)}
:is(.header-book,.hero-actions a,.hero-actions button,.menu-portal-copy>a,.events-title button,.closing button,.closing a,.button,.primary-button,.cart-dock,.retry)::after{content:"";width:14px;height:14px;margin-left:14px;flex:0 0 14px;background:linear-gradient(to right,transparent 0 8px,currentColor 8px 14px) 0 0/14px 4px no-repeat,linear-gradient(to right,transparent 0 4px,currentColor 4px 14px) 0 5px/14px 4px no-repeat,currentColor 0 10px/14px 4px no-repeat;opacity:.72;transition:transform .3s var(--ease-stage),opacity .3s}
.hero-actions a,.hero-actions button{display:flex}
:is(.header-book,.hero-actions a,.hero-actions button,.menu-portal-copy>a,.events-title button,.closing button,.closing a,.button,.primary-button,.retry):hover::before{transform:none}
:is(.header-book,.hero-actions a,.hero-actions button,.menu-portal-copy>a,.events-title button,.closing button,.closing a,.button,.primary-button,.retry):hover::after{transform:translate(3px,-3px);opacity:1}
:is(.header-book,.hero-actions a,.hero-actions button,.menu-portal-copy>a,.events-title button,.closing button,.closing a,.button,.primary-button,.retry):active{transform:translateY(2px)}
:is(a,button,input,textarea,select):focus-visible{outline:3px solid var(--stage-accent);outline-offset:4px}

/* Preserve hierarchy: white secondary actions turn blue, blue actions turn black. */
.hero-actions button:hover,.closing button:hover{color:#08090a}
.hero-actions a::before,.events-title button::before,.closing a::before,.primary-button::before,.cart-dock::before,.retry::before{background:#090b0c}
.hero-actions a,.events-title button,.closing a,.primary-button,.cart-dock,.retry{color:#08090a}
.hero-actions a:hover,.events-title button:hover,.closing a:hover,.primary-button:hover,.retry:hover{color:#fff}
.header-book:hover{border-color:#fff;color:#fff;background:rgba(5,6,7,.78)}
.menu-portal-copy>a:hover{color:#fff}

/* Navigation and labels use a single directional blue accent. */
.site-header nav a,.site-footer nav a{position:relative}
.site-header nav a::after,.site-footer nav a::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;background:var(--stage-accent);transform:scaleX(0);transform-origin:left;transition:transform .28s var(--ease-stage)}
.site-header nav a:hover::after,.site-footer nav a:hover::after,.site-header nav a:focus-visible::after,.site-footer nav a:focus-visible::after{transform:scaleX(1)}
.story-copy>p:first-child,.menu-portal-copy>p:first-child,.spaces>header p,.events-title>p:first-child,.closing>div>p:first-child,.menu-intro>p{position:relative;padding-left:31px}
.story-copy>p:first-child::before,.menu-portal-copy>p:first-child::before,.spaces>header p::before,.events-title>p:first-child::before,.closing>div>p:first-child::before,.menu-intro>p::before{content:"";position:absolute;left:0;top:.55em;width:20px;height:3px;background:var(--stage-accent);box-shadow:6px 5px 0 -1px var(--stage-accent),12px 10px 0 -1px var(--stage-accent)}

/* Large photo groups reveal once; individual cards stay calm and usable. */
.v25-reveal{opacity:0;transform:translateY(28px);transition:opacity .72s var(--ease-stage),transform .72s var(--ease-stage)}
.v25-reveal.v25-photos{clip-path:inset(0 0 18% 0);transform:translateY(0);transition:opacity .72s var(--ease-stage),clip-path .9s var(--ease-stage)}
.v25-reveal.is-visible{opacity:1;transform:none;clip-path:inset(0)}
@media(hover:hover) and (pointer:fine){
  :is(.filmstrip figure,.food-wall figure,.space-grid article,.events figure,.menu-showcase>div){position:relative}
  :is(.filmstrip figure,.food-wall figure,.space-grid article,.events figure,.menu-showcase>div)::after{content:"";position:absolute;z-index:3;left:0;bottom:0;width:0;height:3px;background:var(--stage-accent);transition:width .36s var(--ease-stage)}
  :is(.filmstrip figure,.food-wall figure,.space-grid article,.events figure,.menu-showcase>div):hover::after{width:100%}
  :is(.filmstrip figure,.space-grid article,.events figure,.menu-showcase>div) img{transition:transform .7s var(--ease-stage),filter .4s}
  :is(.filmstrip figure,.space-grid article,.events figure,.menu-showcase>div):hover img{transform:scale(1.025)}
}

/* Menu interaction states */
.icon-link{transition:border-color .22s,background-color .22s,transform .18s}
.icon-link:hover{border-color:var(--stage-accent);background:var(--stage-accent);color:#08090a;transform:translateY(-2px)}
.mode-tabs button,.section-tabs button,.category-tabs button{position:relative;transition:background-color .22s,color .22s,transform .18s}
.mode-tabs button:active,.section-tabs button:active,.category-tabs button:active{transform:translateY(1px)}
.section-tabs button.is-active{clip-path:polygon(0 0,calc(100% - 8px) 0,calc(100% - 8px) 5px,calc(100% - 4px) 5px,calc(100% - 4px) 9px,100% 9px,100% 100%,0 100%)}
.category-tabs button.is-active{box-shadow:inset 4px 0 0 var(--stage-accent)}
.dish-card{transition:background-color .25s,box-shadow .25s,transform .25s var(--ease-stage)}
.dish-card::before{content:"";position:absolute;left:0;top:0;width:3px;height:0;background:var(--stage-accent);transition:height .28s var(--ease-stage)}
.dish-card:hover,.dish-card:focus-within{background:#f9faf9;box-shadow:0 12px 36px rgba(5,6,7,.08);transform:translateY(-2px)}
.dish-card:hover::before,.dish-card:focus-within::before{height:100%}
.add-button{transition:background-color .2s,transform .2s var(--ease-stage),box-shadow .2s}
.add-button{color:#08090a}.add-button:hover{background:#050607;color:#fff;transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--stage-accent)}
.favorite-button{transition:color .2s,transform .2s}
.favorite-button:hover{transform:scale(1.12)}
.section-tabs button.is-active,.add-button,.cart-dock,.primary-button{color:#08090a}
.assistant-fab span,.assistant form button,.user-message{color:#08090a}
.cart-dock{isolation:isolate;padding-right:23px}
.cart-dock::before{transform:translateX(-103%);background:#090b0c}
.cart-dock:hover::before{transform:none}
.cart-dock::after{position:absolute;right:18px;top:8px;margin:0;opacity:.34}
.cart-dock.has-update{animation:v25-cart .36s var(--ease-stage)}
@keyframes v25-cart{50%{transform:translateX(-50%) translateY(-5px)}}

/* Menu hierarchy: identity is dark; browsing controls live on a separate light plane. */
.menu-header{position:relative;top:auto;background:#050607;border-bottom:0;backdrop-filter:none}
.menu-header-spacer{width:44px;height:44px}
.venue-summary{border-top:1px solid rgba(255,255,255,.08)}
.mode-tabs{gap:8px;padding:0 max(16px,calc((100vw - 1180px)/2)) 12px;border:0;background:#050607}
.mode-tabs button{height:42px;border:1px solid #2b2e30!important;background:#121415;color:#aeb3b4;font-size:13px}
.mode-tabs button.is-active{border-color:var(--stage-accent)!important;color:#fff;background:#171819}
.mode-tabs button.is-active::after{left:0;right:0;bottom:-1px;height:2px;background:var(--stage-accent)}
.mode-tabs span{font-size:15px;margin-right:5px}
.menu-nav-sticky{position:sticky;z-index:26;top:0;background:#fff;color:#07090a;border-bottom:1px solid #d7dad9;box-shadow:0 8px 24px rgba(5,6,7,.08)}
.menu-nav-row{display:grid;grid-template-columns:minmax(0,1fr) 48px;align-items:stretch;max-width:1180px;margin:auto;padding-left:16px;background:#fff}
.menu-nav-row .section-tabs{min-width:0;gap:22px;padding:0 4px 0 0;background:#fff}
.menu-nav-row .section-tabs button{height:48px;padding:0 0;border:0;background:transparent;color:#3f4445;font-size:14px;font-weight:650;clip-path:none;box-shadow:none}
.menu-nav-row .section-tabs button.is-active{background:transparent;color:#050607;box-shadow:inset 0 -3px 0 var(--stage-accent)}
.menu-nav-search{display:grid;place-items:center;width:48px;height:48px;border:0;border-left:1px solid #e1e3e2;background:#fff;color:#050607}
.menu-nav-search svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.menu-nav-search:hover{background:var(--stage-accent)}
.menu-nav-sticky .search-panel{background:#fff}
.menu-nav-sticky .search-panel label{margin:8px auto;max-width:1148px;border:1px solid #d8dcda;border-radius:0;background:#f4f5f3}
.menu-nav-sticky .category-tabs{gap:5px;padding-top:7px;padding-bottom:7px;background:#eceeed;border-top:1px solid #e0e2e1}
.menu-nav-sticky .category-tabs button{background:transparent;color:#5c6263;font-size:11px;font-weight:650}
.menu-nav-sticky .category-tabs button.is-active{background:var(--stage-accent);color:#07090a;box-shadow:none}

/* Short stair wipe between the main site and menu. */
.v25-transition{position:fixed;z-index:120;inset:0;pointer-events:none;visibility:hidden}
.v25-transition span{position:absolute;left:0;width:100%;height:25.2%;background:#050607;transform:translateX(-105%);transition:transform .34s var(--ease-stage)}
.v25-transition span:nth-child(1){top:0}.v25-transition span:nth-child(2){top:25%;transition-delay:.035s}.v25-transition span:nth-child(3){top:50%;transition-delay:.07s}.v25-transition span:nth-child(4){top:75%;transition-delay:.105s}
.v25-transition.is-leaving{visibility:visible}
.v25-transition.is-leaving span{transform:none}

body.v25-ready .hero-photo,body.v25-ready .menu-showcase{animation:v25-entry .72s var(--ease-stage) both}
@keyframes v25-entry{from{opacity:.45;clip-path:inset(0 0 14% 0)}to{opacity:1;clip-path:inset(0)}}

@media(max-width:900px){
  .v25-progress{height:2px}
  body{padding-bottom:calc(70px + env(safe-area-inset-bottom))}
  .mobile-nav{left:12px;right:12px;bottom:calc(8px + env(safe-area-inset-bottom));height:58px;background:rgba(5,6,7,.94);border-color:rgba(255,255,255,.18);box-shadow:0 12px 34px rgba(0,0,0,.38);overflow:hidden}
  .mobile-nav a,.mobile-nav button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;padding:5px 2px;color:#fff;transition:color .2s,background-color .2s}
  .mobile-nav a+*,.mobile-nav button+*{border-left:1px solid rgba(255,255,255,.1)}
  .mobile-nav svg{display:block;width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
  .mobile-nav span{display:block;font-size:9px;line-height:1;letter-spacing:.01em}
  .mobile-nav button{background:var(--stage-accent);color:#08090a;clip-path:polygon(0 7px,7px 7px,7px 3px,14px 3px,14px 0,100% 0,100% 100%,0 100%)}
  .mobile-nav a:active{background:rgba(216,170,85,.18);color:var(--stage-accent)}
  .mobile-nav button:active{background:#efd18f;color:#08090a}
  .hero-actions a::after,.hero-actions button::after,.menu-portal-copy>a::after{margin-left:10px}
}
@media(max-width:760px){
  html{scroll-padding-top:102px}
  .menu-header__bar{height:56px}
  .venue-summary{padding-top:6px;padding-bottom:6px}
  .venue-summary small{font-size:10px}
  .mode-tabs button{height:42px}
  .menu-nav-row{grid-template-columns:minmax(0,1fr) 44px;padding-left:14px}
  .menu-nav-row .section-tabs{gap:20px;padding:0}
  .menu-nav-row .section-tabs button{height:45px;padding:0;font-size:13px}
  .menu-nav-search{width:44px;height:45px}
  .menu-nav-sticky .category-tabs{padding:6px 14px}
  .menu-nav-sticky .category-tabs button{padding:7px 9px}
}
@media(max-width:900px) and (max-height:600px){
  body{padding-bottom:calc(54px + env(safe-area-inset-bottom))}
  .mobile-nav{left:10px;right:10px;bottom:calc(5px + env(safe-area-inset-bottom));height:44px}
  .mobile-nav a,.mobile-nav button{flex-direction:row;gap:6px;padding:3px 2px}
  .mobile-nav svg{width:16px;height:16px}
  .mobile-nav span{font-size:8.5px}
}
@media(prefers-reduced-motion:reduce){
  .v25-progress::after,.v25-reveal,.v25-reveal.v25-photos,.v25-transition span,body.v25-ready .hero-photo,body.v25-ready .menu-showcase,:is(.filmstrip figure,.space-grid article,.events figure,.menu-showcase>div) img{animation:none!important;transition:none!important}
  .v25-reveal{opacity:1;transform:none;clip-path:none}
}
