/* Emil: compositor motion for atmosphere; immediate keyboard interactions. */
:root{--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1);--ease-drawer:cubic-bezier(.32,.72,0,1)}

.hero-media{animation:coffee-camera 18s var(--ease-in-out) infinite alternate}
.coffee-seal{position:absolute;top:124px;right:max(48px,calc((100vw - 1248px)/2));width:184px;aspect-ratio:1;pointer-events:none;color:var(--paper)}
.seal-orbit{position:absolute;inset:0;width:100%;height:100%;overflow:visible;animation:coffee-orbit 26s linear infinite}
.seal-orbit text{fill:currentColor;font-family:Outfit,Arial,sans-serif;font-size:14px;font-weight:400;letter-spacing:2.1px}
.seal-heart{position:absolute;inset:28%;display:grid;place-items:center;border:1px solid rgb(255 255 255 / .65);border-radius:50%;padding:8px;background:rgb(255 255 255 / .08)}
.seal-heart img{display:block;width:100%;height:auto;border-radius:50%}
.intro-kicker{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}
.intro-kicker .eyebrow{margin:0;max-width:260px}
.coffee-steam{position:relative;width:76px;height:92px;flex-shrink:0;color:var(--olive)}
.steam-plumes{position:absolute;top:0;left:18px;width:42px;height:60px;display:flex;gap:2px;overflow:hidden}
.steam-plume{width:13px;height:55px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;animation:coffee-steam 3.6s var(--ease-out) infinite}
.steam-plume:nth-child(2){animation-delay:-1.2s}.steam-plume:nth-child(3){animation-delay:-2.4s}
.steam-cup{position:absolute;bottom:0;left:0;width:76px;height:37px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.brand-marquee{overflow:hidden;border-block:1px solid var(--line);padding-block:14px;background:var(--paper);color:var(--olive);pointer-events:none;user-select:none}
.marquee-track{display:flex;width:max-content;animation:coffee-marquee 32s linear infinite}
.marquee-group{display:flex;align-items:center;justify-content:space-around;flex-shrink:0;min-width:100vw;gap:28px;padding-inline:14px;font-size:clamp(32px,3vw,46px);line-height:1.2;font-weight:400;letter-spacing:-.045em;white-space:nowrap}
.marquee-outline{color:transparent;-webkit-text-stroke:1px var(--olive)}
.marquee-spark{font-family:Arial,sans-serif;font-size:.66em;letter-spacing:0}
.menu-section{position:relative;isolation:isolate;overflow:hidden}
.menu-section>.wrap{position:relative;z-index:1}
.window-light{position:absolute;inset:-10% -35%;pointer-events:none;background:repeating-linear-gradient(118deg,transparent 0 130px,rgb(57 68 8 / .055) 130px 161px,transparent 161px 260px);animation:window-drift 15s var(--ease-in-out) infinite alternate}

.ambient-loop{animation-play-state:paused}
.is-ambient-visible .ambient-loop{animation-play-state:running}
.motion-suspended .ambient-loop,body.dialog-open .ambient-loop{animation-play-state:paused!important}
.is-ambient-visible .hero-media,.is-ambient-visible .marquee-track{will-change:transform}

.button,.icon-button,.icon-link,.gallery-button,.dish-tab,.menu-tab,.mobile-quick-actions a{transition:scale 140ms var(--ease-out),background-color 160ms ease,opacity 160ms ease}
html:not([data-input="keyboard"]) :is(.button,.icon-button,.icon-link,.dish-tab,.menu-tab,.mobile-quick-actions a):active{scale:.96}
html:not([data-input="keyboard"]) .gallery-button:active{scale:.99}
.button .icon,.text-link .icon,.quick-menu .icon,.mobile-quick-actions .icon{transition:transform 200ms var(--ease-out)}
.gallery-button img{transition:transform 480ms var(--ease-out)}
.photo-peek{position:absolute;right:18px;bottom:18px;width:48px;height:48px;display:grid;place-items:center;background:var(--paper);color:var(--olive);border-radius:50%;opacity:0;transform:translateY(10px) scale(.9);transition:transform 220ms var(--ease-out),opacity 180ms ease;pointer-events:none}
.photo-peek svg{width:20px;height:20px}
.gallery-button:focus-visible .photo-peek{opacity:1;transform:none}
.dish-tabs{position:relative}
.dish-tab[aria-selected=true]{border-bottom-color:transparent}
.dish-indicator{position:absolute;bottom:0;left:0;width:1px;height:2px;background:var(--olive);transform-origin:left center;transition:transform 220ms var(--ease-out);pointer-events:none}
.dish-indicator[data-instant]{transition:none}
.viewer[aria-busy=true] .viewer-counter{opacity:.55}
.viewer-photo[hidden]{display:none}
.mobile-quick-actions{transition-timing-function:var(--ease-drawer)}

@media(hover:hover) and (pointer:fine){
  .button:hover .icon,.text-link:hover .icon,.quick-menu:hover .icon,.mobile-quick-actions a:hover .icon{transform:translateX(4px)}
  .gallery-button:hover img{transform:scale(1.055)}
  .gallery-button:hover .photo-peek{opacity:1;transform:none}
  .icon-link:hover svg{transform:translateY(-2px)}
  .icon-link svg{transition:transform 180ms var(--ease-out)}
  .menu-card .portrait-frame img{transition:transform 600ms var(--ease-out)}
  .menu-card:hover .portrait-frame img{transform:scale(1.035)}
}
@media(hover:none){.photo-peek{width:38px;height:38px;right:12px;bottom:12px;opacity:.94;transform:none}.photo-peek svg{width:18px;height:18px}}

@keyframes coffee-camera{from{transform:scale(1.012) translate(0,0)}to{transform:scale(1.075) translate(-.65%,.3%)}}
@keyframes coffee-orbit{to{transform:rotate(360deg)}}
@keyframes coffee-steam{0%{transform:translateY(17px) scale(.8);opacity:0}24%{opacity:.9}72%{opacity:.5}100%{transform:translateY(-20px) scale(1.1);opacity:0}}
@keyframes coffee-marquee{to{transform:translateX(-50%)}}
@keyframes window-drift{from{transform:translateX(-4%);opacity:.6}to{transform:translateX(5%);opacity:1}}
@keyframes section-arrive{from{opacity:.18;transform:translateY(25px)}to{opacity:1;transform:none}}
@keyframes veil-in{from{opacity:0}to{opacity:1}}
@keyframes veil-out{from{opacity:1}to{opacity:0}}
.reveal-arrived{animation:section-arrive 550ms var(--ease-out) both}
dialog[open]::backdrop{animation:veil-in 220ms var(--ease-out) both}
dialog[data-closing]::backdrop{animation:veil-out 140ms var(--ease-out) both}
html[data-input="keyboard"] :is(.button,.icon-button,.icon-link,.gallery-button,.dish-tab,.menu-tab,.dish-indicator,.photo-peek,.mobile-quick-actions,.mobile-quick-actions a),html[data-input="keyboard"] .icon{transition:none}
html[data-input="keyboard"] dialog::backdrop{animation:none}
html[data-input="keyboard"]{scroll-behavior:auto}

@media(min-width:1600px){.coffee-seal{right:max(48px,calc((100vw - 1376px)/2))}}
@media(max-width:1023px){.coffee-seal{width:158px;right:28px;top:112px}.intro-kicker{gap:12px}.intro-kicker .eyebrow{font-size:10px;max-width:200px}.coffee-steam{width:66px;scale:.9;transform-origin:right center}}
@media(max-width:767px){
  .coffee-seal{width:126px;right:24px;top:100px}
  .seal-orbit text{font-size:15px}
  .seal-heart{padding:5px}
  .intro-kicker{margin-bottom:18px}.intro-kicker .eyebrow{max-width:220px;font-size:10px}
  .coffee-steam{width:70px;height:85px;scale:.92}
  .brand-marquee{padding-block:17px}.marquee-group{font-size:45px;justify-content:normal;gap:24px;padding:0 24px 0 0}
  .marquee-track{animation-duration:30s}.window-light{opacity:.7}
}
@media(max-height:620px){.coffee-seal{width:98px;top:94px}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .hero-media,.seal-orbit,.marquee-track,.window-light{transform:none!important;will-change:auto!important}
  .steam-plume{opacity:.65;transform:none}
  .reveal-arrived{opacity:1;transform:none}
  .brand-marquee{padding:20px 24px}.marquee-track{display:block;width:auto}
  .marquee-group{min-width:0;font-size:clamp(28px,4vw,46px);white-space:normal;flex-wrap:wrap;justify-content:center;gap:6px 16px;padding:0}
  .marquee-group:nth-child(2),.marquee-group>span:nth-child(n+5){display:none}
  .marquee-outline{color:var(--olive);-webkit-text-stroke:0}
  .gallery-button:hover img,.menu-card:hover .portrait-frame img{transform:none}
  html :is(.button,.icon-button,.icon-link,.gallery-button,.dish-tab,.menu-tab,.mobile-quick-actions a):active{scale:1!important}
  .button:hover .icon,.text-link:hover .icon,.quick-menu:hover .icon,.mobile-quick-actions a:hover .icon,.icon-link:hover svg{transform:none!important}
}
@media print{.coffee-seal,.coffee-steam,.brand-marquee,.window-light,.photo-peek{display:none}}
