:root{--locket-gold-primary:linear-gradient(135deg, #bf953f 0%, #fcf6ba 25%, #b38728 50%, #fbf5b7 75%, #aa771c 100%);--locket-gold-dark:linear-gradient(135deg, #a67c1e 0%, #bf953f 50%, #8c620d 100%);--locket-velvet-bg:radial-gradient(circle, #5a111b 0%, #2e050a 100%)}.opening-effect-vintage_locket{z-index:9999;perspective:1500px;background:radial-gradient(circle,#1c1917 0%,#0c0a09 100%);justify-content:center;align-items:center;transition:opacity 1s cubic-bezier(.25,1,.5,1);display:flex;position:fixed;inset:0;overflow:hidden}.opening-effect-vintage_locket:before{content:"";pointer-events:none;background-image:radial-gradient(#bf953f14 1px,#0000 0);background-size:24px 24px;position:absolute;inset:0}.locket-wrapper{cursor:pointer;z-index:10;flex-direction:column;align-items:center;display:flex;position:relative}.locket-chain{transform-origin:top;background:repeating-linear-gradient(0deg,#bf953f,#bf953f 4px,#8c620d 4px 8px);border-radius:3px;width:6px;height:400px;animation:6s ease-in-out infinite chainSwing;position:absolute;top:-400px;box-shadow:0 0 15px #0009}@keyframes chainSwing{0%,to{transform:rotate(0)}25%{transform:rotate(1.5deg)}75%{transform:rotate(-1.5deg)}}.locket-body{background:var(--locket-gold-dark);width:200px;height:240px;transform-style:preserve-3d;transform-origin:50%;border:4px solid #bf953f;border-radius:50%/40% 40% 60% 60%;margin-top:40px;transition:transform 1.2s cubic-bezier(.25,1,.5,1);position:relative;box-shadow:0 15px 35px #000000b3,inset 0 0 20px #0009}.locket-body:before{content:"";z-index:-1;background:0 0;border:6px solid #bf953f;border-radius:50%;width:34px;height:34px;position:absolute;top:-25px;left:50%;transform:translate(-50%);box-shadow:0 5px 10px #00000080}.locket-inside{background:var(--locket-velvet-bg);border:2px solid #bf953f4d;border-radius:50%/40% 40% 60% 60%;justify-content:center;align-items:center;display:flex;position:absolute;inset:12px;box-shadow:inset 0 0 25px #000000e6}.locket-initials{background:var(--locket-gold-primary);-webkit-text-fill-color:transparent;filter:drop-shadow(0 4px 8px #0009);-webkit-background-clip:text;background-clip:text;font-family:Cormorant Garamond,serif;font-size:72px;font-style:italic;font-weight:600;animation:2.5s ease-in-out infinite alternate monogramGlow}@keyframes monogramGlow{0%{filter:drop-shadow(0 2px 4px #0009)drop-shadow(0 0 5px #bf953f33)}to{filter:drop-shadow(0 4px 10px #000000b3)drop-shadow(0 0 20px #fcf6ba99)}}.locket-reflection{border-radius:inherit;pointer-events:none;z-index:6;background:linear-gradient(135deg,#ffffff40 0%,#ffffff0d 45%,#0000 50%,#0000004d 100%);position:absolute;inset:0}.locket-door{background:var(--locket-gold-primary);z-index:5;width:50%;transform-style:preserve-3d;backface-visibility:hidden;transition:transform 1.8s cubic-bezier(.25,1,.5,1);position:absolute;top:-2px;bottom:-2px;box-shadow:inset 0 0 15px #0006,0 4px 10px #0006}.locket-door.left{transform-origin:0;border:4px solid #bf953f;border-right:none;border-radius:100px 0 0 100px/120px 0 0 120px;left:-2px}.locket-door.right{transform-origin:100%;border:4px solid #bf953f;border-left:none;border-radius:0 100px 100px 0/0 120px 120px 0;right:-2px}.locket-engraving{pointer-events:none;border:1px solid #8c620d66;position:absolute;inset:10px}.locket-door.left .locket-engraving{border-right:none;border-radius:90px 0 0 90px/110px 0 0 110px}.locket-door.right .locket-engraving{border-left:none;border-radius:0 90px 90px 0/0 110px 110px 0}.locket-engraving:before{content:"❦";color:#8c620d8c;filter:drop-shadow(0 1px 1px #ffffff4d);font-size:24px;position:absolute;top:50%;transform:translateY(-50%)}.locket-door.left .locket-engraving:before{right:8px}.locket-door.right .locket-engraving:before{left:8px;transform:translateY(-50%)scaleX(-1)}.locket-wrapper.open .locket-door.left{transform:rotateY(-145deg);box-shadow:10px 10px 30px #000c}.locket-wrapper.open .locket-door.right{transform:rotateY(145deg);box-shadow:-10px 10px 30px #000c}.locket-wrapper.open .locket-body{transform:translateZ(100px)rotateX(10deg)}.locket-hint{text-transform:uppercase;letter-spacing:.3em;color:#dfba73;text-shadow:0 2px 4px #00000080;pointer-events:none;margin-top:35px;font-family:Montserrat,sans-serif;font-size:11px;animation:2s ease-in-out infinite locketHintPulse}@keyframes locketHintPulse{0%,to{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}@media (width<=576px){.locket-body{width:160px;height:192px}.locket-initials{font-size:58px}}
