/* Emil: continuous brand atmosphere; short, interruptible interaction feedback. */
:root{--ease-out:cubic-bezier(.23,1,.32,1);--ease-drawer:cubic-bezier(.32,.72,0,1);--ease-drift:cubic-bezier(.45,0,.55,1)}
a,button{touch-action:manipulation}
.ambient{animation-play-state:paused!important;pointer-events:none}
:where(.motion-ready .motion-scene.is-inview) .ambient{animation-play-state:running!important}
html[data-motion-paused=true] .ambient,html[data-page-hidden=true] .ambient,.scroll-locked .ambient{animation-play-state:paused!important}
.hero-seal{position:absolute;right:max(56px,calc((100% - 1280px)/2));top:calc(var(--header) + 44px);width:158px;height:158px;pointer-events:none;color:var(--ink)}
.seal-float{width:100%;height:100%;border-radius:50%;background:var(--yellow);box-shadow:0 4px 24px rgb(0 0 0 / .12);animation:seal-drift 6s var(--ease-drift) infinite}
.seal-ring{width:100%;height:100%;padding:5px;animation:seal-turn 26s linear infinite}
.seal-ring text{font:600 12px var(--body);fill:currentColor;letter-spacing:1.4px}
.seal-cup{position:absolute;inset:29%;width:42%;height:42%;overflow:visible}
.steam{animation:steam-rise 2.8s var(--ease-drift) infinite;transform-box:fill-box;transform-origin:center}
.steam-two{animation-delay:-.9s}.steam-three{animation-delay:-1.8s}
.brand-ribbon{overflow:hidden;background:var(--ink);color:var(--yellow);padding-block:14px;border-block:1px solid var(--ink)}
.ribbon-track{display:flex;width:max-content;animation:ribbon-flow 34s linear infinite}
.ribbon-group{display:flex;align-items:center;gap:24px;padding-right:24px;flex:none;white-space:nowrap}
.ribbon-group span{font-family:var(--display);font-size:44px;line-height:1.1;font-weight:600;letter-spacing:-.02em}
.ribbon-group .ribbon-italic{font-family:Georgia,serif;font-size:40px;font-style:italic;font-weight:400}
.ribbon-group svg{width:26px;height:26px;flex:none}
.about-copy{position:relative}
.about-copy>.eyebrow{padding-right:62px}
.about-spark{position:absolute;right:0;top:-9px;width:47px;height:47px;color:#bc7919;animation:seal-turn 23s linear infinite}
.about-spark svg{width:100%;height:100%}
.bakery-feature{position:relative;isolation:isolate;overflow:hidden}
.feature-grid{position:relative;z-index:1}
.bakery-light{position:absolute;inset:-50% auto -50% -60%;width:65%;background:linear-gradient(90deg,transparent,rgb(255 253 246 / .34),transparent);transform:rotate(24deg);animation:bakery-light-pass 12s var(--ease-drift) infinite}
.feature-visual{position:relative;min-width:0}
.bakery-stamp{position:absolute;right:-20px;bottom:-24px;width:122px;height:122px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-align:center;border-radius:50%;outline:1px dashed var(--ink);outline-offset:-7px;background:var(--paper);color:var(--ink);box-shadow:0 6px 12px rgb(76 52 7 / .12);animation:stamp-drift 5s var(--ease-drift) infinite}
.bakery-stamp>span:first-child{font:600 23px/1 var(--display);letter-spacing:.01em}
.bakery-stamp>span:last-child{font:italic 12px/1.2 Georgia,serif}
.stamp-star{font-size:19px;line-height:1}
.reviews-section{position:relative;isolation:isolate;overflow:hidden}
.reviews-section>.wrap{position:relative;z-index:1}
.review-spark{position:absolute;width:360px;height:360px;top:-135px;left:53%;color:var(--yellow);opacity:.1;animation:seal-turn 55s linear infinite}
.review-spark svg{width:100%;height:100%;stroke-width:1}
.footer-note{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:48px;margin-bottom:40px;border-bottom:1px solid rgb(40 41 32 / .25)}
.footer-note>span{font:600 clamp(60px,7.6vw,106px)/.97 var(--display);letter-spacing:-.03em}
.footer-note i{font:400 italic .8em/1.15 Georgia,serif}
.footer-cup{position:relative;width:136px;height:136px;flex:none}
.footer-cup .seal-cup{inset:5%;width:90%;height:90%;stroke-width:1.2}
.motion-ready [data-reveal]{transition:opacity .5s var(--ease-out),transform .5s var(--ease-out);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .reveal-pending{opacity:0;transform:translate3d(0,24px,0)}
.button,.icon-button,.icon-link,.menu-toggle,.mobile-quick-actions a{transition:transform 150ms var(--ease-out),background-color 180ms ease}
.button{position:relative;isolation:isolate;overflow:hidden}
.button::after{content:"";position:absolute;inset:-40% 0;z-index:-1;background:rgb(255 255 255 / .28);transform:translateX(-120%) skewX(-18deg);transition:transform 240ms var(--ease-out);pointer-events:none}
.button svg,.text-link svg,.menu-toggle svg,.footer-bottom svg,.info-strip-inner svg{transition:transform 200ms var(--ease-out)}
.desktop-nav a{position:relative}
.desktop-nav a::after{content:"";position:absolute;left:0;right:0;bottom:13px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 200ms var(--ease-out)}
.portrait img{transition:transform 280ms var(--ease-out)}
.gallery-link .image-open{width:44px;height:44px;transition:transform 220ms var(--ease-out),background-color 180ms ease}
.image-open svg{transition:transform 220ms var(--ease-out)}
.menu-card-heading .menu-number{transition:transform 200ms var(--ease-out)}
.site-menu nav a{transition:transform 180ms var(--ease-out)}
.site-menu nav a svg{transition:transform 180ms var(--ease-out)}
.lightbox figure img{touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-drag:none}
.lightbox figcaption{font-variant-numeric:tabular-nums}
.lightbox figure[aria-busy=true] figcaption{opacity:.65}
.button:active,.icon-button:active,.icon-link:active,.menu-toggle:active,.mobile-quick-actions a:active{transform:scale(.97)}
.gallery-link:active .image-open{transform:scale(.92)}
@media(hover:hover) and (pointer:fine){
 .icon-link:hover,.icon-button:hover{background:rgb(34 35 31 / .09)}
 .button-yellow:hover{background:#ffd263}.button-light:hover{background:#e9e9e0}
 .info-strip-inner>a:hover,.phone:hover,.footer-main nav>a:hover,.footer-main address>a:hover{text-decoration:underline;text-underline-offset:5px}
 .lightbox .icon-button:hover{background:#42433c}
 .button:hover::after{transform:translateX(0) skewX(-18deg)}
 .button:hover svg,.info-strip-inner>a:hover svg,.footer-bottom a:hover svg{transform:translateX(4px)}
 .button:hover{transform:translateY(-2px)}
 .button:active{transform:translateY(0) scale(.97)}
 .desktop-nav a:hover{text-decoration:none}
 .desktop-nav a:hover::after{transform:scaleX(1)}
 .icon-link:hover{border-radius:50%;transform:translateY(-2px)}
 .text-link:hover svg{transform:translate(3px,-3px)}
 .menu-card:hover .portrait img{transform:scale(1.025)}
 .menu-card:hover .menu-number{transform:rotate(-8deg)}
 .gallery-link:hover img{transform:scale(1.035)}
 .gallery-link:hover .image-open{background:var(--yellow);transform:translateY(-3px)}
 .gallery-link:hover .image-open svg{transform:rotate(90deg)}
 .site-menu nav a:hover{text-decoration:none;transform:translateX(5px)}
 .site-menu nav a:hover svg{transform:translate(3px,-3px)}
}
@media(max-width:1100px){.hero-seal{right:32px}.bakery-stamp{right:-14px;width:106px;height:106px}}
@media(max-width:767px){
 .hero-seal{width:116px;height:116px;right:24px;top:calc(var(--header) + 30px)}
 .ribbon-group{gap:24px;padding-right:24px}
 .ribbon-group span{font-size:46px}.ribbon-group .ribbon-italic{font-size:39px}
 .ribbon-group svg{width:26px;height:26px}.brand-ribbon{padding-block:20px}
 .ribbon-track{animation-duration:30s}
 .about-spark{width:38px;height:38px;top:-4px}
 .bakery-stamp{width:100px;height:100px;right:-5px;bottom:-20px}
 .bakery-stamp>span:first-child{font-size:20px}.bakery-stamp>span:last-child{font-size:10px}
 .feature-grid{padding-bottom:58px}
 .review-spark{width:280px;height:280px;top:-95px;left:60%}
 .footer-note{padding-bottom:30px;margin-bottom:30px;gap:16px}
 .footer-note>span{font-size:clamp(54px,13.5vw,72px)}
 .footer-cup{width:85px;height:110px}
 .motion-ready [data-reveal]{transition-duration:420ms;transition-delay:0ms}
 .mobile-quick-actions{transition:opacity 180ms var(--ease-out),transform 180ms var(--ease-out),visibility 180ms}
}
@media(max-width:359px){.hero-seal{width:94px;height:94px;right:20px;top:calc(var(--header) + 22px)}.footer-cup{width:66px}}
@media(max-height:660px){.hero-seal{width:92px;height:92px;top:calc(var(--header) + 16px)}}
html[data-input=keyboard]{scroll-behavior:auto}
html[data-input=keyboard] :is(a,button,dialog,[data-reveal]),html[data-motion-paused=true] [data-reveal]{transition:none!important}
html[data-input=keyboard] .reveal-pending,html[data-motion-paused=true] .reveal-pending{opacity:1;transform:none}
@keyframes seal-turn{to{transform:rotate(360deg)}}
@keyframes seal-drift{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-12px) rotate(5deg)}}
@keyframes steam-rise{0%{transform:translateY(4px);opacity:0}24%{opacity:.8}70%{opacity:.65}100%{transform:translateY(-10px);opacity:0}}
@keyframes ribbon-flow{to{transform:translateX(-50%)}}
@keyframes stamp-drift{0%,100%{transform:translateY(0) rotate(-11deg)}50%{transform:translateY(-12px) rotate(3deg)}}
@keyframes bakery-light-pass{0%,14%{transform:translateX(0) rotate(24deg);opacity:0}30%{opacity:1}75%{opacity:1}100%{transform:translateX(300%) rotate(24deg);opacity:0}}
@media(prefers-reduced-motion:reduce){
 .ambient{animation:none!important}
 .steam{opacity:.8}
 .motion-ready [data-reveal],.motion-ready .reveal-pending{opacity:1;transform:none;transition:none}
 .ribbon-track{width:100%}.ribbon-group{white-space:normal;flex-wrap:wrap;justify-content:center;gap:18px;width:100%;padding:0 20px}
 .ribbon-group:nth-child(2){display:none}.ribbon-group span{font-size:clamp(28px,5vw,54px)}.ribbon-group .ribbon-italic{font-size:clamp(26px,4vw,48px)}.ribbon-group svg{width:22px;height:22px}
 .bakery-light{display:none}
}
