@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');
:root{--cream:#f8efde;--green:#163e2b;--gold:#d7b879;--duration:3000ms;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:#0d2119;font-family:'DM Sans',sans-serif;display:grid;place-items:center;min-height:100svh;color:var(--green)}a{color:inherit;text-decoration:none}button{font:inherit}button:focus-visible,a:focus-visible{outline:3px solid #cb914a;outline-offset:5px}.stage{width:min(100vw,56.25svh);aspect-ratio:9/16;position:relative;overflow:hidden;background:var(--cream);isolation:isolate;container-type:inline-size;box-shadow:0 0 80px #0004}.texture{position:absolute;inset:0;pointer-events:none;z-index:10;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23n)' opacity='.25' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}.brand{position:absolute;z-index:4;top:6%;width:100%;display:flex;align-items:center;justify-content:center;gap:3cqw;font-size:4.2cqw;letter-spacing:1cqw;font-weight:600;pointer-events:none}.brand-mark{display:grid;place-items:center;border:1px solid;border-radius:50%;width:8cqw;height:8cqw;font-size:6.5cqw;letter-spacing:0}.decoration{position:absolute;font-family:Georgia,serif;font-size:42cqw;color:#84946d44;pointer-events:none;z-index:3}.leaf-top{top:7%;right:-10%;transform:rotate(-45deg)}.leaf-bottom{bottom:3%;left:-15%;transform:rotate(25deg)}.slide{position:absolute;inset:0;visibility:hidden;opacity:0;pointer-events:none}.slide.active{visibility:visible;opacity:1;pointer-events:auto}.slide-content{position:absolute;inset:19% 8% 14%;display:flex;flex-direction:column;justify-content:center}.eyebrow{font-size:3.05cqw;letter-spacing:.32cqw;font-weight:600;line-height:1.5;margin:0 0 4cqw}h1,h2{font-family:'Playfair Display',Georgia,serif;font-size:12.6cqw;line-height:1.12;letter-spacing:-.5cqw;font-weight:500;margin:0 0 7cqw}h1 em,h2 em{font-weight:500}h3,p{margin-top:0}.intro-slide .slide-content{text-align:center;justify-content:flex-start}.intro-slide h1{margin-bottom:0}.intro-slide .eyebrow{font-size:2.9cqw}.intro-caption{font-size:5.2cqw;line-height:1.4;margin:0}.marquesitas{position:relative;flex:1;min-height:0;margin:3cqw 0 4cqw}.halo{position:absolute;inset:4% 8%;border-radius:50%;background:#e7d5b7}.crepe{position:absolute;width:23%;height:78%;bottom:8%;border-radius:35% 35% 10% 10%;background:repeating-linear-gradient(37deg,transparent 0 9px,#98601e65 10px,#f8d38a 11px,transparent 12px 20px),repeating-linear-gradient(-37deg,transparent 0 9px,#98601e65 10px,#f8d38a 11px,transparent 12px 20px),linear-gradient(90deg,#af6c29,#e6b263 40%,#e6ad59 65%,#995923);box-shadow:inset -5px 0 8px #63391040,5px 8px 12px #6c4d2330;border:1px solid #b57833}.crepe-one{left:18%;transform:rotate(-17deg);height:70%;z-index:2}.crepe-two{left:40%;transform:rotate(-2deg);z-index:1}.crepe-three{left:61%;transform:rotate(14deg)}.filling{position:absolute;top:0;left:4%;width:92%;height:19%;border-radius:50%;background:#57321b;box-shadow:inset 0 4px #e9ba70,0 4px #bc7d35}.berry{background:#792a39}.caramel{background:#9b4a16}.cheese{position:absolute;top:3%;left:8%;width:85%;height:18%;border-radius:50%;background:repeating-linear-gradient(62deg,transparent 0 7px,#f3d38a 8px 10px,transparent 11px 15px),repeating-linear-gradient(-38deg,transparent 0 6px,#ffe4a5 7px 9px,transparent 10px 17px)}.spark{position:absolute;font-size:12cqw;color:#b28745}.spark-one{left:0;top:3%}.spark-two{right:0;bottom:5%;font-size:9cqw}.price-list{margin-top:1cqw}.price-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #163e2b30;padding:5cqw 0}.price-row h3{font-size:6.4cqw;margin:0 0 1cqw;font-weight:600}.price-row p{font-size:4.1cqw;margin:0;color:#425940}.price-row strong{font-family:'Playfair Display',Georgia,serif;font-size:10cqw;font-weight:500}.footnote{font-size:3cqw;margin:3cqw 0 0;color:#425940}.toppings-slide{background:var(--green);color:var(--cream)}.toppings{padding:0;margin:1cqw 0 7cqw;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:3cqw}.toppings li{border-bottom:1px solid #f8efde44;padding:3cqw 0;font-size:4.5cqw}.extra{border:1px solid #f8efde55;border-radius:2cqw;padding:4cqw;font-size:4.5cqw;display:flex;align-items:center;justify-content:space-between;margin:0}.extra strong{font-size:7cqw;color:var(--gold)}.stage:has(.toppings-slide.active) .brand,.stage:has(.contact-slide.active) .brand{color:var(--cream)}.stage:has(.toppings-slide.active) .playback,.stage:has(.contact-slide.active) .playback{color:var(--cream)}.drink-card{border-top:1px solid #163e2b30;padding:5cqw 0}.drink-heading{display:flex;justify-content:space-between;align-items:center;gap:2cqw}.drink-heading h3{font-size:6.8cqw;margin:0}.drink-heading strong{font-family:'Playfair Display',Georgia,serif;font-size:9cqw;font-weight:500}.drink-card p{font-size:4.6cqw;line-height:1.65;margin:2cqw 0 0;color:#425940}.contact-slide{background:var(--green);color:var(--cream)}.contact-slide .slide-content{text-align:center}.flower{font-size:17cqw;color:var(--gold);line-height:1;margin-bottom:7cqw}.contact-slide h2{font-size:12cqw}.contact-details{display:flex;flex-direction:column;gap:6cqw}.contact-details a{font-size:6cqw;line-height:1.4}.contact-details span{display:block;font-size:2.9cqw;letter-spacing:.4cqw;color:#dac69b;margin-bottom:1.5cqw}.playback{position:absolute;bottom:3%;left:8%;right:8%;z-index:5}.progress{display:flex;gap:2cqw}.progress-item{padding:12px 0;border:0;background:transparent;cursor:pointer;position:relative;flex:1;color:inherit}.progress-item:before{content:'';position:absolute;left:0;right:0;height:2px;background:currentColor;opacity:.2}.progress-item span{display:block;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left}.progress-item.done span{transform:scaleX(1)}.progress-item.current span{animation:progress var(--duration) linear both}.playback-bottom{display:flex;align-items:center;justify-content:space-between;font-size:2.6cqw;letter-spacing:.2cqw;height:8cqw}.playback-bottom>span{width:40%}#counter{text-align:right}.playback-bottom button{display:grid;place-items:center;width:44px;min-height:44px;background:none;border:0;color:inherit;font-size:5cqw;cursor:pointer}.active .reveal{animation:slide-content var(--duration) both;animation-delay:var(--delay,0ms)}.active .marquesitas{animation-name:art-content}.paused .reveal,.paused .progress-item.current span{animation-play-state:paused}@keyframes slide-content{0%{opacity:0;transform:translateY(5cqw);filter:blur(3px)}13%,86%{opacity:1;transform:translateY(0);filter:blur(0)}100%{opacity:0;transform:translateY(-3cqw);filter:blur(2px)}}@keyframes art-content{0%{opacity:0;transform:translateY(7cqw) rotate(-5deg) scale(.92)}18%,86%{opacity:1;transform:translateY(0) rotate(0) scale(1)}100%{opacity:0;transform:translateY(-3cqw) scale(1.03)}}@keyframes progress{to{transform:scaleX(1)}}@media(prefers-reduced-motion:reduce){.active .reveal{animation-name:gentle-content}.progress-item.current span{animation-timing-function:steps(3)}@keyframes gentle-content{0%,100%{opacity:0}8%,92%{opacity:1}}}

/* GSAP owns the reveal transforms when available; CSS remains the offline fallback. */
.gsap-motion .active .reveal{animation:none}
.motion-word{transform-origin:0 100%;will-change:transform,opacity}
