/* Jewel motion: progressive enhancement, no animation libraries. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1);--motion-quick:cubic-bezier(.2,.75,.25,1)}
.scroll-progress{position:fixed;inset:0 0 auto;height:3px;z-index:100;pointer-events:none;background:linear-gradient(90deg,#bba2e2,#6947aa 55%,#8297d8);transform:scaleX(var(--scroll-progress,0));transform-origin:left;box-shadow:0 1px 8px #6947aa30}
.header{transition:background .35s,box-shadow .35s,border-color .35s}
.header.is-scrolled{background:#fffffff0;border-bottom-color:#6947aa21;box-shadow:0 8px 30px #44325f0b}
.motion-reveal{transition:opacity .8s var(--motion-ease),translate .9s var(--motion-ease);transition-delay:var(--reveal-delay,0ms)}
.motion-pending{opacity:0;translate:0 30px}
.motion-reveal:focus-within{opacity:1;translate:none;transition-delay:0s}
.product.motion-reveal{transition:opacity .8s var(--motion-ease),translate .9s var(--motion-ease),transform .35s var(--motion-ease),border-color .35s,box-shadow .35s;transition-delay:var(--reveal-delay,0ms),var(--reveal-delay,0ms),0s,0s,0s}
.hero-visual img,.shop-intro-art>img{transform:translate3d(0,var(--parallax-y,0px),0) scale(1.065)}
.hero-visual img{animation:jewel-photo-in 1.5s var(--motion-ease) both}
.hero-visual{overflow:hidden}
.hero-visual::after{pointer-events:none}
.hero .seal{animation:jewel-seal-in 1.2s .45s var(--motion-ease) both}
.hero-scroll span{animation:jewel-scroll-hint 2.4s .8s ease-in-out 3}
.little-flower,.about-art-label>span,.order-star,.shop-help-star,.shop-art-caption i{display:inline-block;transform-origin:center}
.order-section{isolation:isolate}
.order-section::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 15% 15%,#d6c5f180,transparent 60%),radial-gradient(ellipse at 85% 85%,#dce4ff70,transparent 60%)}
.button{position:relative;isolation:isolate;overflow:hidden;transition:transform .35s var(--motion-ease),background .25s,border-color .25s,box-shadow .35s}
.button::after{content:"";position:absolute;inset:-70% -30%;z-index:-1;pointer-events:none;background:linear-gradient(110deg,transparent 35%,#ffffff2b 49%,transparent 63%);transform:translateX(-110%) skewX(-12deg);transition:transform .75s var(--motion-ease)}
.button:active{transform:scale(.97)}
.button>span:not(.cart-count):not(.cart-label):not(.product-count),.text-button>span,.underlined>span,.map-link>span,.product-meta button>span{display:inline-block;transition:translate .35s var(--motion-ease)}
.button:hover>span:not(.cart-count):not(.cart-label):not(.product-count),.text-button:hover>span,.underlined:hover>span,.map-link:hover>span,.product-meta button:hover>span{translate:3px -2px}
.header nav a{position:relative;text-decoration:none!important}
.header nav a::after{content:"";position:absolute;inset:auto 0 -5px;height:1px;background:#9272c0;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--motion-ease)}
.header nav a:hover::after,.header nav a:focus-visible::after,.header nav a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.product-image,.shop-card-image{transition:transform .55s var(--motion-ease),box-shadow .55s var(--motion-ease);transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transform-origin:center;isolation:isolate}
.product-image::after,.shop-card-image::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(circle at var(--pointer-x,50%) var(--pointer-y,50%),#ffffff40,transparent 65%);transition:opacity .4s}
.product-image img,.shop-card-image img{transition:transform .85s var(--motion-ease)}
.product-plus,.shop-card-arrow{z-index:2;transition:transform .5s var(--motion-ease),background .25s,box-shadow .25s}
.shop-card{border-radius:15px;transition:box-shadow .4s var(--motion-ease)}
.flavor{transition:background .35s,border-color .35s,box-shadow .35s,transform .45s var(--motion-ease)}
.flavor-dot{transition:transform .65s var(--motion-ease)}
.flavor.active .flavor-dot{transform:scale(1.08) rotate(-12deg)}
.flavor-arrow{transition:translate .4s var(--motion-ease)}
.flavor:hover .flavor-arrow{translate:3px -3px}
.steps>div{transition:transform .5s var(--motion-ease),box-shadow .5s}
.shop-card.motion-reveal,.flavor.motion-reveal,.steps>div.motion-reveal{transition:opacity .8s var(--motion-ease),translate .9s var(--motion-ease),transform .45s var(--motion-ease),box-shadow .4s var(--motion-ease),background .35s,border-color .35s;transition-delay:var(--reveal-delay,0ms),var(--reveal-delay,0ms),0s,0s,0s,0s}
.faq-list details{overflow-anchor:none}
.faq-list summary span{transition:transform .4s var(--motion-ease)}
.faq-list details>p{display:flow-root}
.shop-search input{transition:border-color .25s,box-shadow .25s,background .25s}
.shop-search input:focus{background:#fff;box-shadow:0 0 0 5px #6947aa0a}
.product-gallery-stage{overflow:hidden}
.product-gallery-thumb{transition:border-color .25s,opacity .25s,transform .3s var(--motion-ease)}
.product-gallery-thumb:hover{transform:translateY(-2px)}
dialog{opacity:0;transform:translateY(18px) scale(.98);transition:opacity .25s,transform .45s var(--motion-ease),display .45s allow-discrete,overlay .45s allow-discrete}
dialog[open]{opacity:1;transform:none}
dialog::backdrop{opacity:0;transition:opacity .3s,display .45s allow-discrete,overlay .45s allow-discrete}
dialog[open]::backdrop{opacity:1}
#cart-dialog{transform:translateX(100%);transition-duration:.25s,.5s,.5s,.5s}
#cart-dialog[open]{transform:none}
@starting-style{
  dialog[open]{opacity:0;transform:translateY(18px) scale(.98)}
  #cart-dialog[open]{opacity:0;transform:translateX(100%)}
  dialog[open]::backdrop{opacity:0}
}
.shop-toast:not([hidden]){animation:jewel-toast-in .5s var(--motion-ease) both}
@keyframes jewel-photo-in{from{opacity:0;scale:1.045}to{opacity:1;scale:1}}
@keyframes jewel-seal-in{from{opacity:0;translate:0 20px;rotate:-8deg}to{opacity:1;translate:0 0;rotate:0deg}}
@keyframes jewel-scroll-hint{0%,100%{translate:0 0}50%{translate:0 6px}}
@keyframes jewel-toast-in{from{opacity:0;translate:0 14px;scale:.97}to{opacity:1;translate:0 0;scale:1}}
@media(hover:hover) and (pointer:fine){
  .button:hover::after{transform:translateX(110%) skewX(-12deg)}
  .product-image:hover,.shop-card-image:hover{box-shadow:0 18px 35px -20px #6947aa70}
  .product-image:hover::after,.shop-card-image:hover::after{opacity:1}
  .product-image:hover img,.shop-card-image:hover img{transform:scale(1.045)}
  .product-image:hover .product-plus,.shop-card-image:hover .shop-card-arrow{transform:rotate(45deg);background:#fff;box-shadow:0 4px 16px #6947aa20}
  .steps>div:hover{transform:translateY(-5px);box-shadow:0 14px 30px #6947aa0a}
}
@media(max-width:900px){.header nav.open{animation:jewel-toast-in .35s var(--motion-ease) both}.motion-pending{translate:0 20px}}

/* Ambient movement continues while the page is idle. */
.hero-visual img{animation:jewel-image-breathe 14s ease-in-out infinite alternate}
.shop-intro-art>img{animation:jewel-image-breathe 14s ease-in-out infinite alternate}
.hero .seal{z-index:3;animation:jewel-label-float 6s ease-in-out infinite}
.shop-art-caption{animation:jewel-label-float 7s ease-in-out infinite}
.hero-scroll span{animation:jewel-scroll-hint 2.4s .8s ease-in-out infinite}
.little-flower,.about-art-label>span,.order-star,.shop-help-star,.shop-art-caption i{animation:jewel-star-turn 22s linear infinite}
.order-star{display:block;width:fit-content;margin-inline:auto}
.order-section::after{inset:-15%;animation:jewel-glow-drift 12s ease-in-out infinite alternate}
.ambient-scene{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none;border-radius:inherit}
.ambient-spark{position:absolute;left:var(--spark-x);top:var(--spark-y);width:var(--spark-size);height:var(--spark-size);display:grid;place-items:center;color:#7959b1;font-family:Georgia,serif;font-size:var(--spark-size);line-height:1;text-shadow:0 2px 14px #fff;animation:jewel-spark-drift var(--spark-duration) var(--spark-delay) ease-in-out infinite}
.ambient-spark:nth-child(even){color:#fff;filter:drop-shadow(0 1px 5px #6947aa60)}
.ambient-orbit{position:absolute;right:8%;top:12%;width:100px;height:100px;border:1px solid #ffffff85;border-radius:50%;animation:jewel-orbit 28s linear infinite}
.ambient-orbit::after{content:"";position:absolute;left:10px;top:10px;width:9px;height:9px;border-radius:50%;background:#b599de;box-shadow:0 0 16px #ffffffb0}
.ribbon{justify-content:flex-start;padding-inline:0}
.ribbon-track{display:flex;width:max-content;flex:none;animation:jewel-ribbon-travel 38s linear infinite}
.ribbon-group{display:flex;align-items:center;justify-content:space-around;min-width:100vw;flex:none;gap:36px;padding-right:36px}
.ribbon-group i{animation:jewel-star-turn 18s linear infinite}
.ribbon:hover .ribbon-track{animation-play-state:paused}
.motion-toggle{position:fixed;right:18px;bottom:18px;z-index:30;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid #d8cbe9;border-radius:50%;background:#fffffff0;color:#6947aa;box-shadow:0 4px 18px #6947aa12;backdrop-filter:blur(10px)}
.motion-toggle:hover{background:#f1eafa}
.motion-toggle svg{width:16px;height:16px;fill:currentColor}
.motion-toggle .motion-play{display:none}
body[data-motion-paused] .motion-toggle .motion-play{display:block}
body[data-motion-paused] .motion-toggle .motion-pause{display:none}
body[data-motion-paused] .ambient-motion,body[data-motion-paused] .ambient-motion *,body[data-motion-paused] .ambient-motion::after,
body.motion-suspended .ambient-motion,body.motion-suspended .ambient-motion *,body.motion-suspended .ambient-motion::after,
.ambient-offscreen,.ambient-offscreen *,.ambient-offscreen::after{animation-play-state:paused!important}
@keyframes jewel-image-breathe{from{scale:1}to{scale:1.035}}
@keyframes jewel-label-float{0%,100%{translate:0 0}50%{translate:0 -10px}}
@keyframes jewel-star-turn{from{rotate:0deg}to{rotate:360deg}}
@keyframes jewel-glow-drift{from{transform:translate(-4%,-3%) rotate(-5deg)}to{transform:translate(4%,3%) rotate(5deg)}}
@keyframes jewel-spark-drift{0%,100%{transform:translate(0,0) rotate(-12deg);opacity:.45}50%{transform:translate(9px,-22px) rotate(22deg);opacity:.95}}
@keyframes jewel-orbit{to{transform:rotate(360deg)}}
@keyframes jewel-ribbon-travel{to{transform:translateX(-50%)}}

/* Words enter once; accent colours and the main headline keep moving gently. */
.text-word{display:inline-block;vertical-align:baseline;transition:opacity .8s var(--motion-ease),translate .9s var(--motion-ease),rotate .9s var(--motion-ease);transition-delay:var(--word-delay,0ms)}
.text-ink{display:inline-block;padding-inline:.06em;margin-inline:-.06em}
.text-pending .text-word{opacity:0;translate:0 .65em;rotate:3deg}
.text-heading.motion-pending{opacity:1;translate:none}
.text-heading em .text-ink{animation:jewel-text-sheen 8s ease-in-out infinite alternate}
.hero h1 .text-ink,.shop-intro h1 .text-ink{animation:jewel-text-float 6s calc(var(--word-index,0)*-.45s) ease-in-out infinite}
.hero h1 em .text-ink,.shop-intro h1 em .text-ink{animation:jewel-text-float 6s calc(var(--word-index,0)*-.45s) ease-in-out infinite,jewel-text-sheen 8s ease-in-out infinite alternate}
@supports((background-clip:text) or (-webkit-background-clip:text)){
  .text-heading em .text-ink{background-image:linear-gradient(110deg,#6947aa 0%,#3e5cb5 28%,#984c91 50%,#6947aa 72%,#3e5cb5 100%);background-size:250% 100%;background-clip:text;-webkit-background-clip:text;color:transparent}
}
@keyframes jewel-text-sheen{from{background-position:0% 50%}to{background-position:100% 50%}}
@keyframes jewel-text-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media(max-width:600px){.ambient-orbit{width:70px;height:70px}.ambient-spark{font-size:calc(var(--spark-size)*.8)}.ribbon-group{gap:24px;padding-right:24px}.ribbon-track{animation-duration:30s}.motion-toggle{width:36px;height:36px;bottom:12px;right:12px}.shop-toast{bottom:60px}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .motion-reveal,.motion-pending{opacity:1;translate:none}
  .hero-visual img,.shop-intro-art>img,.product-image,.shop-card-image{transform:none}
  .scroll-progress{display:none}
  .ambient-scene,.motion-toggle{display:none}
  .text-pending .text-word{opacity:1;translate:none;rotate:none}
  .text-ink{transform:none!important}
}
@media print{.motion-reveal,.motion-pending{opacity:1;translate:none}.text-pending .text-word{opacity:1;translate:none;rotate:none}.text-heading em .text-ink{background:none;color:var(--wine)}.scroll-progress,.ambient-scene,.motion-toggle{display:none}.ambient-motion,.ambient-motion *,.ambient-motion::after{animation:none!important}}
