.pairing-slot:empty{display:none}
.pairings{border-top:1px solid #dfc7ce;padding-top:16px;margin-top:24px;color:var(--ink,#44433f)}
.pairing-game-head{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:92px}
.pairings .pairing-game-head h3{font:inherit;font-size:16px;font-weight:400;line-height:1.45;margin:0}
.pairing-hint{margin:6px 0 0;font-size:12px;line-height:1.5;color:#716066}
.pairing-roll{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 88px;gap:6px;min-width:88px;min-height:88px;padding:4px 8px;border:0;border-radius:14px;background:transparent;color:#674550;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.pairings .pairing-roll:hover:not(:disabled){filter:none;background:#f4e5e9}
.pairings .pairing-roll[aria-disabled="true"]{opacity:1;cursor:wait}
.pairing-roll-label{font-size:11px;line-height:1.5;white-space:nowrap}
.pairing-die-stage{display:block;width:58px;height:54px;perspective:320px}
.pairing-die{display:block;position:relative;width:42px;height:42px;margin:4px auto;transform-style:preserve-3d;transform:rotateX(-18deg) rotateY(24deg) rotateZ(-8deg);transition:transform 180ms cubic-bezier(.16,1,.3,1)}
.pairing-die-face{position:absolute;inset:0;display:block;border:1px solid #c28d9e;border-radius:8px;background:#e8b8c7;backface-visibility:hidden}
.pairing-die-face svg{display:block;width:100%;height:100%;padding:2px}
.pairing-die .face-1{transform:translateZ(21px)}
.pairing-die .face-2{transform:rotateY(90deg) translateZ(21px);background:#dca4b6}
.pairing-die .face-3{transform:rotateY(180deg) translateZ(21px)}
.pairing-die .face-4{transform:rotateY(-90deg) translateZ(21px);background:#dca4b6}
.pairing-die .face-5{transform:rotateX(90deg) translateZ(21px);background:#f1d0db}
.pairing-die .face-6{transform:rotateX(-90deg) translateZ(21px);background:#dca4b6}
.pairing-die{--dice-x:-18deg;--dice-y:24deg;transform:rotateX(var(--dice-x)) rotateY(var(--dice-y)) rotateZ(-8deg)}
.pairing-die[data-face="2"]{--dice-y:-66deg}
.pairing-die[data-face="3"]{--dice-y:-156deg}
.pairing-die[data-face="4"]{--dice-y:114deg}
.pairing-die[data-face="5"]{--dice-x:-108deg}
.pairing-die[data-face="6"]{--dice-x:72deg}
.is-rolling .pairing-die{animation:pairing-throw 720ms cubic-bezier(.2,.65,.25,1) both;will-change:transform}
@keyframes pairing-throw{0%{transform:translateY(0) rotateX(var(--dice-x)) rotateY(var(--dice-y)) rotateZ(-8deg)}32%{transform:translateY(-10px) rotateX(calc(var(--dice-x) + 260deg)) rotateY(calc(var(--dice-y) + 300deg)) rotateZ(22deg)}75%{transform:translateY(-3px) rotateX(calc(var(--dice-end-x) + 640deg)) rotateY(calc(var(--dice-end-y) + 660deg)) rotateZ(-12deg)}100%{transform:translateY(0) rotateX(calc(var(--dice-end-x) + 720deg)) rotateY(calc(var(--dice-end-y) + 720deg)) rotateZ(-8deg)}}
.pairing-result:empty{display:none}
.pairing-result{margin-top:10px;border-top:1px solid #ead9de;padding-top:12px}
.pairing-item{display:grid;grid-template-columns:96px minmax(0,1fr) 44px;align-items:center;gap:16px;min-width:0;min-height:112px;padding:4px 0}
.pairing-photo{display:block;position:relative;width:96px;height:96px;overflow:hidden;border:0;text-decoration:none}
.pairing-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;max-width:none;padding:0}
.pairing-copy{min-width:0;display:grid;gap:8px}
.pairing-copy>a{font-size:13px;line-height:1.5;text-decoration:none;overflow-wrap:anywhere;word-break:normal;hyphens:none}
.pairing-copy>a:hover{text-decoration:underline;text-underline-offset:4px}
.pairing-copy>span{font-size:13px;line-height:1.4;white-space:nowrap}
.pairing-add{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #c890a2;border-radius:50%;background:#f3dfe7;color:#674550;cursor:pointer;transition:background-color 140ms,transform 140ms;touch-action:manipulation}
.pairing-add:hover{background:#e8b8c9}
.pairing-add:active{transform:scale(.94)}
.pairing-add:disabled{opacity:.5;cursor:default}
.pairings :is(a,button):focus-visible{outline:2px solid #c37f96;outline-offset:4px}
.is-rolling .pairing-result{opacity:.45;transition:opacity 120ms}
.pairing-result.is-revealing{animation:pairing-reveal 340ms cubic-bezier(.16,1,.3,1) both}
@keyframes pairing-reveal{from{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(6px)}to{opacity:1;clip-path:inset(0);transform:translateY(0)}}
.bag-dialog .pairings{margin:0 0 18px;padding-top:14px}
#checkout-form .pairings{margin:20px 0;padding-top:18px}
.product-dialog .pairings{margin-top:16px;padding-top:16px}
@media(max-width:390px){.pairing-item{grid-template-columns:76px minmax(0,1fr) 44px;gap:12px}.pairing-photo{width:76px;height:84px}.pairing-game-head{gap:12px}.pairings .pairing-game-head h3{font-size:15px}}
@media(prefers-reduced-motion:reduce){.pairing-die,.pairing-add,.pairing-result{animation:none!important;transition:none!important}.pairing-add:active{transform:none}.is-rolling .pairing-die{transform:rotateX(-18deg) rotateY(24deg) rotateZ(-8deg);will-change:auto}.pairing-result.is-revealing{animation:none}}

/* A small magic reveal: real product cutout, rose ring and a short soft puff. */
.pairing-game .pairing-item{grid-template-columns:minmax(0,1fr) 48px;gap:14px;min-height:0;padding:10px 0 4px}
.pairing-magic-stage{position:relative;grid-column:1/-1;display:grid;place-items:center;height:190px;isolation:isolate;overflow:hidden}
.pairing-game .pairing-magic-stage .pairing-photo{width:200px;height:180px;z-index:1}
.pairing-magic-stage::before,.pairing-magic-stage::after{content:"";position:absolute;pointer-events:none;opacity:0;z-index:0}
.pairing-magic-stage::before{width:138px;height:138px;border:2px solid #d796af;border-radius:50%}
.pairing-magic-stage::after{width:220px;height:140px;background:radial-gradient(ellipse at 28% 60%,#e8b7c8 0 18%,transparent 47%),radial-gradient(ellipse at 70% 48%,#f1cedb 0 22%,transparent 49%),radial-gradient(ellipse at 50% 68%,#e8b7c8 0 24%,transparent 54%);filter:blur(6px)}
.pairing-result.is-revealing{animation:none}
.is-revealing .pairing-magic-stage::before{animation:pairing-ring 520ms cubic-bezier(.16,1,.3,1) both}
.is-revealing .pairing-magic-stage::after{animation:pairing-puff 620ms cubic-bezier(.16,1,.3,1) both}
.is-revealing .pairing-photo{animation:pairing-appear 460ms cubic-bezier(.16,1,.3,1) both}
.is-revealing .pairing-copy,.is-revealing .pairing-add{animation:pairing-caption 220ms 140ms both}
@keyframes pairing-ring{0%{opacity:0;transform:scale(.35)}22%{opacity:.8}100%{opacity:0;transform:scale(1.7)}}
@keyframes pairing-puff{0%{opacity:0;transform:translateY(14px) scale(.45)}28%{opacity:.65}100%{opacity:0;transform:translateY(-12px) scale(1.4)}}
@keyframes pairing-appear{0%{opacity:0;transform:scale(.76);clip-path:inset(12% 8% 8%)}65%{opacity:1}100%{opacity:1;transform:scale(1);clip-path:inset(0)}}
@keyframes pairing-caption{from{opacity:0}to{opacity:1}}
@media(max-width:360px){.pairing-magic-stage{height:164px}.pairing-game .pairing-magic-stage .pairing-photo{height:158px;width:180px}}
@media(prefers-reduced-motion:reduce){.pairing-game .pairing-magic-stage::before,.pairing-game .pairing-magic-stage::after{display:none}.pairing-game .is-revealing :is(.pairing-photo,.pairing-copy,.pairing-add){animation:none!important}}
