/* The altar is the shop. Product buttons are transparent regions over objects
   painted into the scene; interface chrome stays at its edges. */
:root{--controls:AltarSans,Arial,sans-serif;--ink:#284337;--paper:#f5f0df;--line:#cfc5a8}
.masthead{top:27px}
.brand-name{font-size:clamp(48px,4.4vw,66px)}
.brand-subtitle{font-size:11px;letter-spacing:.25em;margin-top:8px}
.basket-link{font:400 14px/1 var(--serif);gap:7px;min-height:40px;padding:4px 2px;background:none;border:0;border-radius:0;backdrop-filter:none;color:#fff0cf;text-shadow:0 2px 6px #061e24,0 0 12px #061e24;box-shadow:none}
.basket-link svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.basket-count{display:inline;min-width:0;height:auto;color:inherit;background:none;font:inherit;border-radius:0}
.basket-count:before{content:'('}.basket-count:after{content:')'}
.basket-link:hover{color:#fffbe8}

.altar-footer{bottom:19px}
.altar-dock{position:relative;gap:9px;padding:3px 15px;border:0;border-radius:0;outline:0;background:linear-gradient(90deg,transparent,#082c2bc4 15%,#082c2bc4 85%,transparent);box-shadow:none;backdrop-filter:none}
.altar-dock:before{content:'';position:absolute;left:5%;right:5%;top:0;height:1px;background:linear-gradient(90deg,transparent,#d4bc7d70,transparent)}
.altar-dock button{gap:6px;min-height:38px;padding:6px 8px;border:0;border-radius:0;background:none;box-shadow:none;color:#f7e9c8;font:400 14px/1.2 var(--serif);text-shadow:0 1px 6px #061c20;transition:color .2s}
.altar-dock button:hover{transform:none;background:none;box-shadow:none;color:#fffbdc}
.altar-dock .dock-icon{font-size:18px;color:#ddbd7d;filter:none;text-shadow:0 0 8px #d8a85130}
.altar-dock button[aria-pressed="true"],.altar-dock button[aria-pressed="mixed"]{background:none;color:#fff5c5;box-shadow:none}
.altar-dock button[aria-pressed="true"] .dock-icon,.altar-dock button[aria-pressed="mixed"] .dock-icon{color:#fff4b6;filter:drop-shadow(0 0 5px #edc97c)}
.dock-divider{display:none}
.return-button{font:400 14px var(--serif);border:0;border-bottom:1px solid #d4be866b;border-radius:0;background:#092c2cb8;padding:9px 13px;color:#fff0cf;backdrop-filter:blur(6px)}
.toast{bottom:88px}

.bottle-collection{position:absolute;inset:0;pointer-events:none;z-index:3}
.altar-offering{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);width:calc(var(--w)*1%);height:calc(var(--h)*1%);min-width:44px;min-height:44px;transform:translate(-50%,-50%);border:1px solid transparent;border-radius:35%;background:none;padding:0;pointer-events:auto;transition:background .3s,border-color .3s}
.altar-offering:hover,.altar-offering:focus-visible,.altar-offering.highlighted{background:radial-gradient(ellipse,#ffe6a41c,transparent 75%);border-color:#ffe8b12b;outline:none}
.altar-offering:focus-visible{outline:1px solid #ffe8b1;outline-offset:3px}
.artifact-label,.incense-object .incense-label{display:block;font:400 14px/1.25 var(--serif);color:#fff1ce;text-shadow:0 1px 5px #061e22;opacity:0;pointer-events:none;bottom:-25px;padding:6px 12px;border:0;border-radius:0;background:linear-gradient(90deg,transparent,#082b2be8 12%,#082b2be8 88%,transparent);box-shadow:none;backdrop-filter:none;transform:translateX(-50%);transition:opacity .22s}
.artifact:hover .artifact-label,.artifact:focus-visible .artifact-label,.altar-offering:hover .artifact-label,.altar-offering:focus-visible .artifact-label,.altar-offering.highlighted .artifact-label,.incense-object:hover .incense-label,.incense-object:focus-visible .incense-label{opacity:1;transform:translateX(-50%);color:#fff4d1}
.artifact-rose .artifact-label{font-size:14px}
.offering-glimmer{position:absolute;left:62%;top:34%;font-size:15px;color:#ffefc1;text-shadow:0 0 7px #ffe5a3;opacity:0;pointer-events:none;animation:offering-glimmer 9s ease-in-out infinite}
.altar-offering:nth-child(2) .offering-glimmer{animation-delay:-2.2s}.altar-offering:nth-child(3) .offering-glimmer{animation-delay:-6.1s}.altar-offering:nth-child(4) .offering-glimmer{animation-delay:-4s}.altar-offering:nth-child(5) .offering-glimmer{animation-delay:-7.7s}
.altar-offering.highlighted{animation:offering-invitation 1.3s ease-in-out 3}
.incense-object{left:77.1%;top:65%;width:7.2%;aspect-ratio:110/210;filter:none}
.incense-object .incense-ember{position:absolute;width:2px;height:5px;border-radius:2px;background:#faab66;box-shadow:0 0 4px #f3a057;pointer-events:none}
.incense-tip-right{left:77%;top:6%;transform:rotate(12deg)}
.incense-tip-left{left:25%;top:14%;transform:rotate(-12deg)}
.incense-object .incense-base-glow{left:30%;top:78%;height:22%}
.incense-object .incense-label{bottom:-23px}
.ritual-label{font:400 14px var(--serif);border:0;background:#0a302ce6;color:#fff1ce}
.contemplating .altar-offering{pointer-events:none}
.contemplating .altar-offering .artifact-label,.contemplating .offering-glimmer{opacity:0;animation:none}

.star-threads{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#ffe9b8;stroke-width:1;stroke-linecap:round;stroke-dasharray:1 27;opacity:.13;z-index:1;pointer-events:none;animation:thread-orbit 85s linear infinite}
.star-threads path+path{stroke-dasharray:1 39;opacity:.6}
.petal-drift{position:absolute;width:var(--petal-size,9px);height:calc(var(--petal-size,9px)*.65);border-radius:100% 12% 100% 22%;background:linear-gradient(130deg,#ffe6e9b8,#e5a2ce80);box-shadow:0 0 7px #f3d3c329;opacity:0;animation:petal-fall var(--duration) linear var(--delay) infinite}

/* Small antique-paper windows, with the living shrine still in view. */
.shop-window{width:420px;color:var(--ink);background:linear-gradient(120deg,#faf5e8,#f0e9d8);border-color:#d1b77b;outline-color:#d3bd8045;border-radius:2px;box-shadow:0 16px 60px #031d2899}
.shop-window::backdrop{background:#001c2429;backdrop-filter:none}
.window-chrome{min-height:35px;font:400 10px/1.3 var(--controls);letter-spacing:.08em;color:#4a5942;background:linear-gradient(90deg,#e5e7d2,#f3ebd6,#e4dfc5);border-color:#c8bb92}
.close-window{width:28px;height:28px;border:0;border-radius:0;background:none;color:#586044;font-size:22px}
.close-window:hover{background:#c6c6a633}
.shop-window h2{font-size:34px}
.window-inner{padding:22px 25px 25px}
.shop-window .primary{font-family:var(--controls);font-size:13px;letter-spacing:.015em;border-radius:0;background:linear-gradient(120deg,#2d5542,#234538);border-color:#34553c;color:#fff7df}
.shop-window .primary:hover{background:#39654c}
.shop-window .secondary{font:400 13px var(--controls);border-radius:0;color:#385541;background:#e4e5d0;border-color:#bcc5a4}
.shop-window .text-button{font:400 13px/1.4 var(--serif);color:#47603d;border-color:#9caa7b;padding:4px 0}
.shop-window .eyebrow{font:400 10px/1.5 var(--controls);letter-spacing:.1em;color:#6b7356}
.pill{font:400 9px var(--controls);background:#e7e7d366;border-color:#c7c5a1;color:#60684b}
.tiny-note{font:400 11px/1.6 var(--controls)!important;color:#6c735e}
.variant-choice:has(input:checked){border-color:#597552;background:#dfe6cf;box-shadow:inset 0 0 0 1px #597552}
.window-body{scrollbar-color:#b7b997 #f4eddd}
.collection-window{left:28px;right:auto;width:340px;max-width:calc(100vw - 56px)}
.cabinet-inner{padding:23px 24px 24px}
.cabinet-inner h2{font-size:31px;margin:0 0 16px}
.offering-index{display:grid}
.offering-link{display:grid;grid-template-columns:19px 1fr 13px;align-items:center;gap:9px;padding:12px 0;border:0;border-bottom:1px solid #c9bd994d;background:none;color:#2d4939;text-align:left}
.offering-link strong{display:block;font:400 18px/1.25 var(--serif)}
.offering-link small{display:block;font:400 11px/1.4 var(--controls);color:#747957;margin-top:3px}
.offering-star{font-size:19px;color:#9b8451}.offering-arrow{font-size:15px;color:#8c895d}
.offering-link:hover strong{color:#8e6644}.offering-link:hover .offering-star{color:#b48b3c;text-shadow:0 0 7px #d4b36d66}
.cabinet-footer{display:flex;gap:9px 18px;flex-wrap:wrap;margin-top:22px}
.cabinet-footer .text-button{font-size:12px}
.product-vessel{height:200px;background-color:#1c3a31;background-image:linear-gradient(0deg,#1a352915,transparent 35%),url('assets/white-tara-altar-integrated-v2.webp');background-size:var(--portrait-size,400%) auto;background-position:var(--portrait-x) var(--portrait-y,71.5%);border-bottom:1px solid #cabc93}
.product-portrait{background-image:url('assets/white-tara-altar-integrated-v2.webp')}
.product-portrait.bundle{background-size:240%;background-position:42% 81%}
.ingredient-garden{display:flex;flex-wrap:wrap;gap:5px 0;padding:0;margin:17px 0 20px;list-style:none}
.ingredient-garden li{font:400 15px/1.5 var(--serif);color:#566344}
.ingredient-garden li:not(:last-child):after{content:' · ';white-space:pre;color:#a3976e}
.offering-pricing{font:400 12px var(--controls)!important;color:#787c63;margin:18px 0 12px!important}
.offering-find{font-size:14px!important}
.offering-name{font-size:34px!important}
.card-footer{gap:12px}
.card-footer .text-button{font-size:12px}

.motion-paused .petal-drift,.motion-paused .star-threads,.motion-paused .offering-glimmer{animation-play-state:paused!important}
@keyframes offering-glimmer{0%,50%,80%,100%{opacity:0;transform:scale(.4)}63%{opacity:.65;transform:scale(1)}}
@keyframes offering-invitation{0%,100%{box-shadow:0 0 0 #ffe5a300}50%{box-shadow:0 0 22px #ffe5a35c}}
@keyframes thread-orbit{to{stroke-dashoffset:-1000}}
@keyframes petal-fall{0%{opacity:0;transform:translate(0,-30px) rotate(-15deg)}18%{opacity:.42}78%{opacity:.28}100%{opacity:0;transform:translate(var(--drift,70px),170px) rotate(160deg)}}
@media(max-width:760px){
  .masthead{top:21px;left:20px;right:20px}.brand-name{font-size:46px}.brand-subtitle{font-size:10px;letter-spacing:.18em}
  .basket-link{font-size:13px;min-height:40px;gap:5px}.basket-link svg{width:14px}
  .altar-footer{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom))}
  .altar-dock{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:4px 3px 0;background:linear-gradient(90deg,transparent,#082c2bc9 10%,#082c2bc9 90%,transparent)}
  .altar-dock button{font:400 12px/1.2 var(--serif);gap:5px;min-height:49px;padding:5px 1px;flex-direction:column}.altar-dock .dock-icon{font-size:18px}
  .candle-text,.incense-text{font-size:12px}.candle-text:after,.incense-text:after{content:none}
  .artifact-label,.incense-object .incense-label{display:block;font-size:14px;bottom:-24px}.artifact-rose .artifact-label{font-size:14px}
  .vignette{background:linear-gradient(0deg,#06272ada,transparent 19%,transparent 79%,#071d2970)}
  .shop-window{top:auto;bottom:0;left:0;right:0;width:100%;max-width:100%;max-height:87svh;transform:none;border-radius:2px 2px 0 0;outline:0}
  .window-chrome{min-height:42px}.close-window{width:36px;height:36px}.window-body{max-height:calc(87svh - 42px)}
  .collection-window{left:14px;right:14px;bottom:80px;width:calc(100vw - 28px);max-width:360px;max-height:calc(100svh - 155px);margin:0 auto;border-bottom:1px solid #d1b77b}
  .collection-window .window-body{max-height:calc(100svh - 197px)}
  .cabinet-inner{padding:20px 24px}.offering-link{padding:11px 0}.offering-link strong{font-size:18px}
  .product-vessel{height:180px}.offering-name{font-size:33px!important}
  .toast{bottom:89px}.star-threads{opacity:.1}.petal-drift:nth-child(2n){display:none}
}
@media(max-width:370px){.brand-name{font-size:42px}.altar-dock button{font-size:11px}.altar-dock .candle-text,.altar-dock .incense-text{font-size:11px}.cabinet-inner{padding:20px}.offering-link{padding:9px 0}}
@media(prefers-reduced-motion:reduce){.petal-drift,.star-threads,.offering-glimmer{display:none}.altar-offering.highlighted{animation:none;box-shadow:0 0 20px #ffe5a34d}}
