/* Shared scale and motion. Each design supplies its own composition. */
body.storefront {
  --atelier-shell: 1200px;
  --atelier-muted: color-mix(in srgb, var(--theme-fg) 76%, var(--theme-bg));
  --store-surface: color-mix(in srgb, var(--theme-bg) 93%, var(--theme-fg));
  --atelier-paper: var(--store-surface);
  --atelier-line: color-mix(in srgb, var(--theme-fg) 14%, transparent);
  --atelier-line-strong: color-mix(in srgb, var(--theme-fg) 26%, transparent);
  --motion-soft: cubic-bezier(.22,.72,.2,1);
  overflow-x: clip;
}
.storefront ::selection { color:var(--theme-bg); background:var(--theme-fg); }
.storefront :focus-visible { outline:2px solid var(--theme-accent); outline-offset:5px; }
.storefront :is(.micro-label,.atelier-kicker,.eyebrow,.atelier-pill,.modern-button,.atelier-link,.modern-text-link,.product-category-modern,.product-badge-modern,.product-open-modern,.product-category-tags a,.product-purchase-modern label span,.inventory-line,.payment-note-modern p,.detail-assurance-modern span,.product-accordions-modern summary,.spec-grid b,.footer-modern-bottom,.footer-nav-modern h2,.footer-nav-modern a,.footer-nav-modern button,.cookie-banner-modern .button,.cookie-banner-modern p,.cookie-banner-modern>div>span,.catalog-filters label>span,.catalog-filters select,.breadcrumbs-modern,.whatsapp-modern,.review-item-head b) { font-size:11px; }
.storefront :is(.product-accordions-modern details>div,.product-lede-modern,.review-item p,.account-form label>span) { font-size:13px; }
.storefront :is(.product-meta-modern h3,.product-price-modern strong) { font-size:15px; }
.storefront :is(.desktop-mega-nav>a,.mega-nav-item>a) { font-size:11px; letter-spacing:.075em; }
.storefront .announcement-modern { min-height:28px; }
.storefront .announcement-modern p { font-size:10px; letter-spacing:.09em; }
.storefront .header-inner-modern { height:70px; grid-template-columns:minmax(180px,1fr) auto minmax(136px,1fr); gap:22px; }
.storefront .mega-panel { top:70px; max-height:calc(100svh - 105px); overflow-y:auto; }
.storefront .mega-links small { font-size:11px; }
.storefront .mega-panel-inner { min-height:280px; }
.storefront .mega-feature { max-height:310px; }
.storefront .mega-panel-all .mega-links { max-height:380px; overflow-y:auto; }
.storefront .desktop-mega-nav { gap:19px; }
.storefront .header-actions-modern :is(a,button) { min-width:32px; min-height:38px; }
.storefront .search-drawer { top:70px; background:var(--theme-bg); color:var(--theme-fg); }
.storefront .search-drawer input { color:var(--theme-fg); }
.storefront .brand-modern strong { font-size:16px; letter-spacing:.16em; }
.storefront .product-grid-modern { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; row-gap:32px; }
.storefront .product-media-modern { aspect-ratio:4/5; box-shadow:none; }
.storefront .product-meta-modern { gap:9px; }
.storefront .product-heading-modern h1 { font-size:clamp(32px,3.25vw,43px); line-height:1.07; letter-spacing:-.045em; }
.storefront .product-summary-modern { top:95px; }
.storefront .product-price-detail-modern strong { font-size:17px; }
.storefront .product-purchase-modern { grid-template-columns:88px 1fr; }
.storefront .product-purchase-modern select { font-size:13px; }
.storefront .product-purchase-modern .modern-button { min-height:46px; }
.storefront .product-gallery-modern { align-content:start; }
.storefront .product-gallery-modern figure { max-height:560px; }
.storefront .product-gallery-modern img { object-fit:contain; }
.storefront :is(.atelier-section-head h2,.section-head-modern h2) { font-size:clamp(30px,3vw,39px); line-height:1.12; }
.storefront .atelier-service-line { min-height:53px; }
.storefront .atelier-service-group small { font-size:11px; }
.storefront .atelier-service-track { animation-duration:45s; }
.storefront .atelier-service-line:hover .atelier-service-track,
.storefront .atelier-service-line:focus-within .atelier-service-track { animation-play-state:paused; }
.storefront .instagram-feed { gap:14px; }
.storefront .instagram-card { aspect-ratio:1; }
.storefront .cookie-banner-modern { border-radius:14px; }
.storefront .cookie-banner-modern .button { min-height:38px; }
.storefront .footer-brand-block p { color:rgba(255,255,255,.72); }
.storefront .footer-modern-bottom { color:rgba(255,255,255,.62); }
.storefront .footer-nav-modern :is(a,button) { color:rgba(255,255,255,.78); }
.storefront .reveal { transition:opacity .8s var(--motion-soft),transform 1s var(--motion-soft); }
.storefront .product-media-modern>img { transition:transform .85s var(--motion-soft),opacity .6s; }
.storefront .mobile-menu-modern { background:var(--theme-bg); }
.storefront .mobile-submenu-inner { grid-template-columns:1fr 1fr; }
.storefront .mobile-menu-topline { font-size:11px; }

/* A short jewelry study; the screen never captures clicks or locks scrolling. */
.arrival-screen { position:fixed; inset:0; z-index:9999; display:none; align-items:center; justify-content:center; overflow:hidden; pointer-events:none; color:#51412f; background:#f8f6f2; isolation:isolate; }
.arrival-noir { color:#e7d8b9; background:#151918; }
html.loader-active .arrival-screen { display:flex; animation:arrival-failsafe 1.65s linear forwards; }
.arrival-screen::before { position:absolute; inset:0; content:""; z-index:-1; background:radial-gradient(ellipse at 50% 42%,rgba(222,200,164,.20),transparent 48%); }
.arrival-noir::before { background:radial-gradient(ellipse at 50% 42%,rgba(179,155,111,.10),transparent 45%); }
.arrival-composition { display:grid; justify-items:center; transform:translateY(-10px); }
.arrival-rule { position:absolute; width:1px; height:clamp(35px,12vh,105px); left:50%; background:linear-gradient(transparent,currentColor); opacity:.16; }
.arrival-rule-top { top:0; }
.arrival-rule-bottom { bottom:0; transform:rotate(180deg); }
.arrival-sculpture { position:relative; width:260px; height:230px; perspective:750px; }
.arrival-sculpture svg { position:relative; z-index:1; width:260px; height:210px; overflow:visible; }
.arrival-links { animation:arrival-link-tilt 1.55s var(--motion-soft) both; transform-style:preserve-3d; }
.arrival-link { transform-box:fill-box; transform-origin:center; }
.arrival-link-left { animation:arrival-link-one 1.3s var(--motion-soft) both; }
.arrival-link-right { animation:arrival-link-two 1.3s var(--motion-soft) both; }
.arrival-shadow { position:absolute; bottom:14px; left:68px; width:124px; height:13px; background:radial-gradient(ellipse,rgba(62,43,18,.17),transparent 70%); transform:scaleY(.5); animation:arrival-shadow 1.5s ease both; }
.arrival-noir .arrival-shadow { background:radial-gradient(ellipse,rgba(231,207,155,.22),transparent 70%); }
.arrival-prism-body { transform-origin:130px 108px; animation:arrival-prism-turn 1.45s var(--motion-soft) both; }
.arrival-prism-orbit { stroke-dasharray:540; animation:arrival-orbit-trace 1.25s var(--motion-soft) both; }
.arrival-brand { max-width:84vw; margin-top:9px; font:400 clamp(16px,2.2vw,22px)/1.4 var(--atelier-serif); letter-spacing:.24em; text-align:center; animation:arrival-type-in .8s .12s both; }
.arrival-brand img { width:auto; max-width:200px; max-height:58px; object-fit:contain; }
.arrival-noir .arrival-brand img { filter:brightness(0) invert(1); }
.arrival-caption { margin-top:11px; font-size:10px; letter-spacing:.15em; text-transform:uppercase; opacity:.65; animation:arrival-type-in .8s .25s both; }
.arrival-hairline { width:118px; height:1px; overflow:hidden; margin-top:27px; background:color-mix(in srgb,currentColor 14%,transparent); }
.arrival-hairline i { display:block; width:100%; height:1px; background:currentColor; transform-origin:left; animation:arrival-line-in 1.15s var(--motion-soft) both; }
html.loader-active .arrival-screen.is-leaving { animation:none; opacity:0; visibility:hidden; transform:translateY(-8px); transition:opacity .4s ease,transform .5s var(--motion-soft),visibility .4s; }
@keyframes arrival-link-tilt { from { transform:rotateX(18deg) rotateY(-22deg) translateY(8px); opacity:0; } 35% { opacity:1; } to { transform:rotateX(-4deg) rotateY(8deg) translateY(-4px); opacity:1; } }
@keyframes arrival-link-one { from { transform:translate(-14px,-7px) rotate(-10deg); } to { transform:translate(0,0) rotate(0); } }
@keyframes arrival-link-two { from { transform:translate(14px,9px) rotate(12deg); } to { transform:translate(0,0) rotate(0); } }
@keyframes arrival-prism-turn { from { transform:rotateY(-44deg) rotateZ(-9deg) scale(.9); opacity:0; } 35% { opacity:1; } to { transform:rotateY(12deg) rotateZ(0) scale(1); opacity:1; } }
@keyframes arrival-orbit-trace { from { stroke-dashoffset:540; opacity:0; } to { stroke-dashoffset:0; opacity:1; } }
@keyframes arrival-shadow { from { opacity:0; transform:scale(.7,.4); } to { opacity:1; transform:scale(1,.5); } }
@keyframes arrival-type-in { from { opacity:0; transform:translateY(8px); filter:blur(3px); } to { opacity:1; transform:none; filter:blur(0); } }
@keyframes arrival-line-in { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes arrival-failsafe { 0%,77% { opacity:1; visibility:visible; } 100% { opacity:0; visibility:hidden; } }

.design-preview-notice { position:fixed; z-index:90; bottom:16px; left:50%; transform:translateX(-50%); display:flex; align-items:center; justify-content:center; gap:14px; width:max-content; max-width:calc(100% - 24px); padding:12px 18px; border:1px solid #d6d3c9; border-radius:6px; background:#fcfaf4; color:#272823; box-shadow:0 5px 24px #0002; font:500 12px/1.5 var(--atelier-sans); }
.design-preview-notice small { font-size:11px; color:#626158; }
.design-preview-notice a { white-space:nowrap; text-decoration:underline; text-underline-offset:3px; }
@media (max-width:680px) { .design-preview-notice { gap:10px; padding:10px 12px; } .design-preview-notice small { display:none; } }
@media (min-width:961px) and (max-width:1180px) {
  .storefront .header-inner-modern { grid-template-columns:155px minmax(0,1fr) 120px; gap:12px; }
  .storefront .brand-modern strong { font-size:13px; }
  .storefront .desktop-mega-nav { gap:12px; }
  .storefront .desktop-mega-nav>a,.storefront .mega-nav-item>a { max-width:105px; overflow:hidden; text-overflow:ellipsis; font-size:10px; letter-spacing:.02em; }
}
@media (max-width:960px) {
  .storefront .header-inner-modern { height:62px; grid-template-columns:1fr auto 1fr; gap:8px; }
  .storefront .search-drawer { top:62px; }
  .storefront .brand-modern strong { max-width:140px; font-size:12px; letter-spacing:.13em; }
  .storefront .header-actions-modern :is(a,button) { min-width:28px; width:28px; }
  .storefront .product-grid-modern { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .storefront .product-gallery-modern figure { max-height:510px; }
  .storefront .mobile-menu-scroll { padding-top:12px; padding-bottom:35px; overflow-x:hidden; }
  .storefront .mobile-menu-modern summary { position:relative; }
}
@media (max-width:680px) {
  .storefront .shell-wide { width:calc(100% - 36px); }
  .storefront .header-inner-modern { width:calc(100% - 24px); }
  .storefront .brand-modern strong { max-width:134px; }
  .storefront .product-grid.product-grid-modern { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; row-gap:26px; }
  .storefront .product-gallery-modern figure { max-height:440px; }
  .storefront .product-summary-modern { width:calc(100% - 36px); }
  .storefront .product-heading-modern h1 { font-size:31px; }
  .storefront .product-price-modern strong { font-size:14px; }
  .storefront .product-meta-modern h3 { font-size:14px; }
  .storefront .atelier-service-group small { display:none; }
  .storefront .atelier-service-group b { font-size:12px; }
  .storefront .atelier-service-line { min-height:47px; }
  .storefront .cookie-banner-modern .cookie-actions { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .storefront .cookie-banner-modern .cookie-actions .button-primary { grid-column:auto; }
  .storefront .cookie-banner-modern .button { padding:8px 6px; font-size:10px; }
  .storefront .cookie-banner-modern { padding:14px; gap:10px; }
  .arrival-sculpture { transform:scale(.87); margin-bottom:-18px; }
}
@media (max-width:360px) {
  .storefront .brand-modern strong { max-width:110px; font-size:10px; }
  .storefront .header-actions-modern { gap:0; }
}
@media (prefers-reduced-motion:reduce) {
  .arrival-screen { display:none!important; }
  .storefront .reveal,.reveal-pending .reveal,.reveal-active .reveal { opacity:1!important; transform:none!important; }
  .storefront .atelier-service-track { animation:none; }
  .storefront .atelier-service-line { overflow-x:auto; }
  .storefront .atelier-service-group[aria-hidden="true"] { display:none; }
}
