/* A shared motion language for the whole café story. */
.motion-enhanced{--motion-ease:cubic-bezier(.22,1,.36,1)}
.motion-word{display:inline-block;overflow:hidden;vertical-align:top;padding:.08em .045em .14em;margin:-.08em -.045em -.14em}
.motion-word-inner{display:inline-block;transform-origin:left bottom;transition:transform .95s var(--motion-ease),opacity .6s;transition-delay:var(--word-delay,0ms)}
.motion-enhanced .motion-headline:not(.motion-seen) .motion-word-inner{transform:translate3d(0,115%,0) rotate(3deg);opacity:0}
.motion-enhanced .motion-headline.motion-seen .motion-word-inner{transform:none;opacity:1}
.motion-enhanced .section-top,.motion-enhanced .split-heading{position:relative}
.motion-enhanced .section-top:after,.motion-enhanced .split-heading:after{content:'';position:absolute;width:80px;height:1px;bottom:-20px;left:0;background:currentColor;opacity:.35;transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--motion-ease) .25s}
.motion-enhanced .section-top.motion-seen:after,.motion-enhanced .split-heading.motion-seen:after{transform:scaleX(1)}
.motion-enhanced .section-top:after{left:calc(50% - 40px)}
.motion-enhanced .reveal{transition-delay:var(--entry-delay,0ms)}
.motion-photo{isolation:isolate}
.motion-photo>img{clip-path:inset(0);object-position:50% calc(44% + var(--photo-progress,.5)*12%);transition:clip-path 1.15s var(--motion-ease),transform 1.2s var(--motion-ease),filter .8s}
.motion-enhanced .motion-photo:not(.photo-seen)>img{clip-path:inset(0 0 100% 0)}
.motion-enhanced .motion-photo.photo-side:not(.photo-seen)>img{clip-path:inset(0 100% 0 0)}
.motion-enhanced .motion-photo.photo-seen>img{clip-path:inset(0)}
.motion-enhanced .motion-photo.motion-visible>img{animation:photo-drift 13s ease-in-out infinite alternate}
.motion-enhanced .motion-photo:not(.motion-visible)>img{animation-play-state:paused}
.motion-enhanced .hero-media img{animation:hero-photo 1.8s var(--motion-ease) both,hero-breath 18s ease-in-out 1.8s infinite alternate}
.motion-enhanced .hero:not(.motion-visible) .hero-media img{animation-play-state:paused}
.hero-light{position:absolute;z-index:0;inset:-25%;pointer-events:none;background:linear-gradient(112deg,transparent 42%,#fff0c715 49%,transparent 57%);animation:window-light 18s ease-in-out infinite alternate;mix-blend-mode:screen}
.coffee-steam{position:absolute;z-index:1;left:69%;top:29%;height:150px;width:115px;pointer-events:none;opacity:.45}
.coffee-steam i{position:absolute;bottom:0;left:16px;height:120px;width:28px;border-right:2px solid #fff3d899;border-radius:50%;filter:blur(4px);opacity:0;animation:coffee-steam 5.5s ease-out infinite}
.coffee-steam i:nth-child(2){left:45px;height:145px;animation-delay:1.8s}
.coffee-steam i:nth-child(3){left:76px;height:105px;animation-delay:3.6s}
.hero-orbit{position:absolute;z-index:1;width:132px;height:132px;right:17px;bottom:60px;border:1px solid #f7e4bd2e;border-radius:50%;animation:quiet-orbit 26s linear infinite;pointer-events:none}
.hero-orbit:before{content:'';position:absolute;top:18px;left:15px;width:6px;height:6px;background:#dec3a0;border-radius:50%;box-shadow:0 0 14px #dec3a044}
.hero-orbit:after{content:'';position:absolute;inset:-12px;border:1px dashed #f7e4bd1c;border-radius:50%}
.hero:not(.motion-visible) .hero-light,.hero:not(.motion-visible) .coffee-steam i,.hero:not(.motion-visible) .hero-orbit{animation-play-state:paused}
.motion-enhanced .hero-corner{animation:mark-float 8s ease-in-out infinite}
.motion-enhanced .logo>span{display:inline-block;animation:logo-dot 6s ease-in-out infinite;transform-origin:50% 80%}
.motion-enhanced nav a{position:relative}
.motion-enhanced nav a:after{content:'';position:absolute;left:0;right:0;bottom:-7px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s var(--motion-ease)}
.motion-enhanced nav a:hover:after,.motion-enhanced nav a:focus-visible:after,.motion-enhanced nav a.nav-current:after{transform:scaleX(1);transform-origin:left}
.motion-enhanced .button{position:relative;isolation:isolate;overflow:hidden;transition:transform .4s var(--motion-ease),box-shadow .4s,background .4s}
.motion-enhanced .button:hover{box-shadow:0 9px 24px #1720141a}
.motion-enhanced .button:before{content:'';position:absolute;inset:0;background:#baa58020;transform:translateY(102%);transition:transform .5s var(--motion-ease);z-index:-1}
.motion-enhanced .button:hover:before{transform:none}
.motion-enhanced .button>span,.motion-enhanced .text-link>span,.motion-enhanced .header-book>span{display:inline-block;transition:transform .5s var(--motion-ease)}
.motion-enhanced .button:hover>span,.motion-enhanced .text-link:hover>span,.motion-enhanced .header-book:hover>span{transform:translate(3px,-3px) rotate(7deg)}
.tap-ripple{position:absolute;display:block;pointer-events:none;width:var(--ripple-size);height:var(--ripple-size);left:var(--ripple-x);top:var(--ripple-y);border-radius:50%;background:currentColor;opacity:.1;transform:translate(-50%,-50%) scale(0);animation:tap-ripple .8s ease-out forwards;z-index:3}
.motion-enhanced .circle-arrow{transition:transform .45s var(--motion-ease),background .45s,color .45s}
.motion-enhanced .circle-arrow:hover,.motion-enhanced a:hover .circle-arrow{transform:rotate(45deg);background:var(--green);color:var(--paper)}
.motion-enhanced .menu-item{animation:menu-arrive .85s var(--motion-ease) both}
.motion-enhanced .menu-item-copy,.motion-enhanced .menu-item>p{transition:transform .45s var(--motion-ease)}
.motion-enhanced .menu-item:hover .menu-item-copy,.motion-enhanced .menu-item:hover>p{transform:translateX(4px)}
.motion-enhanced .menu-tabs button{transition:color .3s}
.motion-enhanced .menu-tabs button:after{transition:transform .55s var(--motion-ease)}
.motion-enhanced .day-panel.changing .day-time{animation:copy-arrive .6s both}
.motion-enhanced .day-panel.changing h3{animation:copy-arrive .75s .06s both}
.motion-enhanced .day-panel.changing p{animation:copy-arrive .75s .12s both}
.motion-enhanced .day-panel.changing .text-link{animation:copy-arrive .75s .18s both}
.motion-enhanced .recommendation.changing .recommendation-copy{animation:copy-arrive .75s .05s both}
.motion-enhanced .day-panel.changing .day-photo>img,.motion-enhanced .recommendation.changing .recommendation-photo>img{animation:photo-swap .8s var(--motion-ease) both,photo-drift 13s ease-in-out .8s infinite alternate}
.motion-enhanced .process-steps>button>span{transition:transform .5s var(--motion-ease)}
.motion-enhanced .process-steps>button.active>span{transform:translateX(5px)}
.motion-enhanced .process-steps>button.active h3{animation:copy-arrive .65s var(--motion-ease)}
.motion-enhanced .process-photos img.active{animation:process-breath 12s ease-in-out infinite alternate}
.motion-enhanced .process-visual:not(.motion-visible) .process-photos img.active,.motion-enhanced .hero:not(.motion-visible) .hero-corner,.motion-enhanced footer:not(.motion-visible) .logo>span{animation-play-state:paused}
.motion-enhanced .gallery-tile>span{transition:transform .5s var(--motion-ease)}
.motion-enhanced .gallery-tile:hover>span{transform:translateY(-7px)}
.motion-enhanced .gallery-tile b{transition:transform .5s var(--motion-ease)}
.motion-enhanced .gallery-tile:hover b{transform:rotate(45deg)}
.motion-enhanced .journal-card>span{transition:padding-right .4s}
.motion-enhanced .journal-card:hover>span{padding-right:20px}
.motion-enhanced .pastry-list button{position:relative;transition:padding .4s,color .4s}
.motion-enhanced .pastry-list button:before{content:'';position:absolute;inset:0;background:#d7ddcc55;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--motion-ease);z-index:-1}
.motion-enhanced .pastry-list button:hover{padding-inline:12px}
.motion-enhanced .pastry-list button:hover:before{transform:scaleX(1)}
.motion-enhanced .faq-list details[open]>p,.motion-enhanced .faq-list details[open]>.text-link{animation:copy-arrive .55s var(--motion-ease) both}
.motion-enhanced .dialog[open]{animation:dialog-arrive .55s var(--motion-ease) both}
.motion-enhanced .dialog[open]::backdrop{animation:backdrop-arrive .4s both}
.motion-enhanced .dialog[open] .dialog-content,.motion-enhanced .booking-dialog[open]>form{animation:copy-arrive .65s .12s both}
.motion-enhanced .dialog-close{transition:transform .4s,background .4s}
.motion-enhanced .dialog-close:hover{transform:rotate(90deg);background:#e2e5da}
.motion-enhanced .form-row input,.motion-enhanced .form-row select{transition:border-color .3s,box-shadow .3s,background .3s}
.motion-enhanced .form-row input:focus,.motion-enhanced .form-row select:focus{border-color:var(--green);background:#fff9;box-shadow:0 3px 0 -1px #36402b30}
.motion-enhanced #booking-result:not([hidden]){animation:copy-arrive .65s var(--motion-ease) both}
.motion-enhanced .closing-photo img{animation:hero-breath 18s ease-in-out infinite alternate;animation-play-state:paused}
.motion-enhanced .closing.motion-visible .closing-photo img{animation-play-state:running}
.motion-enhanced .back-top{border:2px solid transparent;background:linear-gradient(var(--paper),var(--paper)) padding-box,conic-gradient(var(--green) var(--reading-turn,0deg),#d9dece 0) border-box}
.motion-enhanced .back-top:hover{transform:translateY(-5px)}
.motion-enhanced .footer-main a:not(.logo){transition:transform .35s,color .35s}
.motion-enhanced .footer-main a:not(.logo):hover{transform:translateX(5px);color:var(--accent)}
.motion-paused *{animation-play-state:paused!important}
@media(hover:hover) and (pointer:fine){.motion-enhanced .motion-tilt{transform-style:preserve-3d;transition:transform .65s var(--motion-ease)}.motion-enhanced .motion-tilt.in,.motion-enhanced .motion-tilt:not(.reveal){transform:perspective(950px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg))}}
@media(max-width:760px){.coffee-steam{left:72%;top:34%;height:105px;width:70px;opacity:.32}.coffee-steam i{height:85px;width:20px}.coffee-steam i:nth-child(2){left:30px;height:105px}.coffee-steam i:nth-child(3){left:48px;height:75px}.hero-orbit{width:95px;height:95px;right:17px;bottom:92px}.hero-orbit:before{width:4px;height:4px;top:12px;left:12px}.hero-orbit:after{inset:-8px}.motion-enhanced .motion-photo.motion-visible>img{animation-duration:16s}.motion-enhanced .section-top:after,.motion-enhanced .split-heading:after{bottom:-13px;width:50px}.motion-enhanced .section-top:after{left:calc(50% - 25px)}.motion-enhanced nav a:after{bottom:5px;width:30px;right:auto}.motion-word-inner{transition-duration:.75s}}
@keyframes photo-drift{from{scale:1}to{scale:1.055}}
@keyframes hero-breath{from{scale:1}to{scale:1.06}}
@keyframes window-light{from{transform:translateX(-8%) rotate(-4deg);opacity:.3}to{transform:translateX(8%) rotate(4deg);opacity:.8}}
@keyframes coffee-steam{0%{transform:translateY(20px) scaleX(.65) rotate(-9deg);opacity:0}25%{opacity:.55}65%{opacity:.25}100%{transform:translateY(-100px) scaleX(1.4) rotate(13deg);opacity:0}}
@keyframes quiet-orbit{to{transform:rotate(360deg)}}
@keyframes mark-float{50%{translate:0 -7px;rotate:-3deg}}
@keyframes logo-dot{0%,75%,100%{transform:none}83%{transform:translateY(-5px) scaleY(1.1)}90%{transform:scaleY(.75)}}
@keyframes tap-ripple{to{transform:translate(-50%,-50%) scale(1.5);opacity:0}}
@keyframes menu-arrive{from{opacity:0;transform:translateY(32px) rotate(.7deg)}to{opacity:1;transform:none}}
@keyframes copy-arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes process-breath{from{scale:1}to{scale:1.045}}
@keyframes dialog-arrive{from{opacity:0;transform:translateY(28px) scale(.96)}to{opacity:1;transform:none}}
@keyframes backdrop-arrive{from{opacity:0}to{opacity:1}}
.motion-off .motion-word-inner,.motion-off .motion-headline:not(.motion-seen) .motion-word-inner{transform:none!important;opacity:1!important}
.motion-off .motion-photo>img,.motion-off .motion-photo:not(.photo-seen)>img{clip-path:none!important;scale:1!important}
.motion-off .motion-tilt,.motion-off .hero-corner{transform:none!important;translate:none!important;rotate:none!important}
.motion-off .coffee-steam,.motion-off .hero-light,.motion-off .hero-orbit{display:none}
.motion-off .section-top:after,.motion-off .split-heading:after{transform:none!important}
@media(prefers-reduced-motion:reduce){.motion-word-inner,.motion-enhanced .motion-headline:not(.motion-seen) .motion-word-inner{transform:none!important;opacity:1!important}.motion-enhanced .motion-photo>img,.motion-enhanced .motion-photo:not(.photo-seen)>img{clip-path:none!important;scale:1!important}.motion-enhanced .motion-tilt,.motion-enhanced .hero-corner{transform:none!important;translate:none!important;rotate:none!important}.coffee-steam,.hero-light,.hero-orbit{display:none}.motion-enhanced .section-top:after,.motion-enhanced .split-heading:after{transform:none!important}}
