.product-options-form .personalization-intro { display:block; padding:16px; border-radius:14px; background:var(--blush); }
.personalization-intro strong { font-size:15px; }
.personalization-intro p { margin:6px 0 0; font-size:12px; line-height:1.6; color:var(--muted); }
.personalization-group { min-width:0; margin:4px 0; padding:0; border:0; }
.personalization-group legend { width:100%; margin-bottom:10px; font-size:13px; font-weight:700; }
.personalization-group legend small { float:right; color:var(--muted); font-size:10px; font-weight:500; }
.personalization-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.personalization-choice { position:relative; cursor:pointer; min-width:0; }
.personalization-choice input { position:absolute; opacity:0; width:1px!important; height:1px; padding:0!important; }
.personalization-choice > span { min-height:74px; display:flex; flex-direction:column; justify-content:center; gap:8px; padding:13px; border:1px solid var(--line); border-radius:12px; background:white; transition:border-color .2s,background .2s,box-shadow .2s,transform .2s; overflow-wrap:anywhere; }
.personalization-choice b { font-size:12px; line-height:1.5; }
.personalization-choice small { display:flex; justify-content:space-between; gap:6px; color:var(--muted); font-size:11px; }
.personalization-choice i { opacity:0; font-style:normal; color:var(--rose-dark); }
.personalization-choice input:checked + span { border-color:var(--rose); background:var(--blush); box-shadow:0 0 0 1px var(--rose); }
.personalization-choice input:checked + span i { opacity:1; }
.personalization-choice input:focus-visible + span { outline:3px solid var(--rose); outline-offset:3px; }
.product-options-form > .product-price-breakdown { display:block; }
.product-dialog-price { display:inline-block; }
.celebration-particle { position:fixed; z-index:10000; width:7px; height:7px; border-radius:2px; pointer-events:none; background:var(--rose); }
@media(prefers-reduced-motion:no-preference) {
  .hero-visual .gift-large { animation:gift-arrive 1s cubic-bezier(.2,.7,.2,1) both; }
  .hero-visual .gift-small { animation:gift-arrive 1.2s .12s cubic-bezier(.2,.7,.2,1) both; }
  .hero-visual .sparkle { animation:sparkle-bloom 3s ease-in-out 2 alternate; }
  .hero-visual .sparkle-two { animation-delay:.4s; }
  .hero-visual .sparkle-three { animation-delay:.8s; }
  .experience-dialog[open] { animation:dialog-arrive .3s cubic-bezier(.2,.7,.2,1); }
  .experience-dialog[open]::backdrop { animation:backdrop-arrive .25s ease-out; }
  .button,.product-card,.personalization-choice { transition:transform .25s,box-shadow .25s; }
  .button:active { transform:scale(.97); }
  .personalization-choice:active { transform:scale(.98); }
  .studio-preview * { animation:none!important; }
}
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .product-card:hover { transform:translateY(-5px); box-shadow:0 16px 34px rgba(100,40,65,.12); }
  .button:hover { transform:translateY(-2px); box-shadow:0 7px 20px rgba(100,40,65,.14); }
  .personalization-choice:hover > span { border-color:var(--rose); }
}
@keyframes gift-arrive { from { opacity:0; translate:0 28px; scale:.92; } to { opacity:1; translate:0 0; scale:1; } }
@keyframes sparkle-bloom { from { scale:.8; opacity:.55; } to { scale:1.12; opacity:1; } }
@keyframes dialog-arrive { from { opacity:0; translate:0 16px; scale:.98; } to { opacity:1; translate:0 0; scale:1; } }
@keyframes backdrop-arrive { from { opacity:0; } to { opacity:1; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
