.box-scene{--s:clamp(140px, 50vw, 220px);--h:calc(var(--s) * .68);--f:calc(var(--s) * .5);--r:calc(var(--s) * .12);--velvet-a:#4d2775;--velvet-b:#2a1146;--velvet-c:#170828;width:var(--s);height:calc(var(--h) + var(--s) * .5);perspective:1100px;perspective-origin:50% 38%;touch-action:manipulation;-webkit-user-select:none;user-select:none;position:relative}@media (min-width:1024px){.box-scene{--s:300px}}.box-bob,.box-wiggle,.box-tilt,.box-cube,.face{transform-style:preserve-3d}.box-bob{will-change:transform;animation:6s ease-in-out infinite box-bob;position:absolute;inset:0}.box-scene[data-open=true] .box-bob{animation-play-state:paused}@keyframes box-bob{0%,to{transform:translateY(6px)rotateY(-8deg)}50%{transform:translateY(-6px)rotateY(8deg)}}.box-wiggle{position:absolute;inset:0}.box-wiggle[data-wiggle=true]{animation:.6s ease-in-out box-wiggle}@keyframes box-wiggle{0%,to{transform:rotate(0)}17%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}83%{transform:rotate(-3deg)}}.box-tilt{position:absolute;inset:0}.box-cube{--flap:90deg;--side:0deg;width:var(--s);height:var(--h);margin:calc(var(--h) / -2) 0 0 calc(var(--s) / -2);position:absolute;top:50%;left:50%}.box-cube.open{--flap:0deg;--side:-90deg}.face{backface-visibility:visible;background-image:linear-gradient(var(--shade,#0000), var(--shade,#0000)), url(/noise.svg), radial-gradient(120% 110% at 28% 18%, var(--velvet-a) 0%, var(--velvet-b) 58%, var(--velvet-c) 100%);background-blend-mode:normal, soft-light, normal;background-size:100% 100%,140px 140px,100% 100%;position:absolute;box-shadow:inset 0 0 0 1px #ffffff0a}.box-bottom{width:var(--s);height:var(--s);left:0;top:calc(var(--h) / 2 - var(--s) / 2);--shade:#00000059;transform:translateY(calc(var(--h) / 2)) rotateX(90deg)}.box-bottom:after{content:"";background:radial-gradient(circle, var(--gold-hot) 0%, #ffe3a373 35%, transparent 72%);filter:blur(10px);opacity:0;transition:opacity calc(var(--unfold-ms) * .6) var(--ease-out) calc(var(--unfold-ms) * .4);border-radius:50%;position:absolute;inset:-6%}.box-cube.open .box-bottom:after{opacity:1}.side{width:var(--s);height:var(--h);transform-origin:50% 100%;transition:transform calc(var(--unfold-ms) * .6) var(--ease-out) calc(var(--unfold-ms) * .37);top:0;left:0}.box-cube:not(.open) .side{transition:transform calc(var(--refold-ms) * .6) var(--ease-out) 0s}.side.front{--shade:#ffffff05;transform:rotateY(0deg) translateZ(calc(var(--s) / 2)) rotateX(var(--side))}.side.right{--shade:#00000038;transform:rotateY(90deg) translateZ(calc(var(--s) / 2)) rotateX(var(--side))}.side.back{--shade:#0000006b;transform:rotateY(180deg) translateZ(calc(var(--s) / 2)) rotateX(var(--side))}.side.left{--shade:#0000004d;transform:rotateY(-90deg) translateZ(calc(var(--s) / 2)) rotateX(var(--side))}.side:before{content:"";background:var(--gold-hot);opacity:.55;height:2px;transition:opacity .4s var(--ease-out);position:absolute;top:0;left:2%;right:2%;box-shadow:0 0 6px 1px #ffe3a3b3,0 0 18px 4px #f2c87940}.box-cube.open .side:before{opacity:0}.side.front:after,.side.back:after,.side.left:after,.side.right:after,.flap.outer:after{content:"";top:0;bottom:0;left:calc(50% - var(--r) / 2);width:var(--r);background:linear-gradient(90deg, #b8903f 0%, var(--gold) 22%, var(--gold-hot) 50%, var(--gold) 78%, #b8903f 100%);position:absolute;box-shadow:0 0 0 1px #0000001f,0 2px 8px #00000059}.flap.outer:before{content:"";height:calc(var(--r) / 2);background:linear-gradient(180deg, var(--gold-hot) 0%, var(--gold) 55%, #b8903f 100%);z-index:1;position:absolute;top:0;left:0;right:0;box-shadow:0 1px 4px #0000004d}.flap{width:100%;height:var(--f);transform-origin:50% 100%;--shade:#ffffff14;transition:transform calc(var(--unfold-ms) * .47) var(--ease-out) 0s;position:absolute;bottom:100%;left:0}.box-cube:not(.open) .flap{transition:transform calc(var(--refold-ms) * .5) var(--ease-out) calc(var(--refold-ms) * .5)}.flap.outer{transform:rotateX(var(--flap))}.flap.inner{height:calc(var(--f) * .92);--shade:#0000001a;transform:translateY(1px) rotateX(var(--flap))}.bow{width:calc(var(--s) * .5);height:calc(var(--s) * .22);margin-left:calc(var(--s) * -.25);transform-style:preserve-3d;transition:opacity .3s var(--ease-out), transform .4s var(--ease-out);pointer-events:none;position:absolute;top:0;left:50%;transform:translateY(-100%)translateZ(0)}.box-cube.open .bow{opacity:0;transform:translateY(-120%)scale(.8)}.bow-loop{background:radial-gradient(70% 70% at 40% 35%, var(--gold-hot), var(--gold) 55%, #b8903f 100%);border-radius:60% 60% 55% 55%/80% 80% 45% 45%;width:46%;height:100%;position:absolute;bottom:0;box-shadow:inset 0 -4px 8px #78501459,0 4px 10px #0000004d}.bow-loop.l{left:2%;transform:rotate(-16deg)}.bow-loop.r{right:2%;transform:rotate(16deg)scaleX(-1)}.bow-knot{background:radial-gradient(60% 60% at 40% 35%, var(--gold-hot), #c9a45a 70%, #9d7a34 100%);border-radius:40%;width:22%;height:40%;margin-left:-11%;position:absolute;bottom:8%;left:50%;box-shadow:0 2px 6px #00000059}.box-shadow{left:50%;bottom:calc(var(--s) * -.02);width:calc(var(--s) * 1.15);height:calc(var(--s) * .28);margin-left:calc(var(--s) * -.575);filter:blur(6px);pointer-events:none;background:radial-gradient(50% 50%,#0000008c,#0000 70%);border-radius:50%;animation:6s ease-in-out infinite shadow-bob;position:absolute}@keyframes shadow-bob{0%,to{opacity:.9;transform:scale(1.04)}50%{opacity:.7;transform:scale(.92)}}@media (prefers-reduced-motion:reduce){.box-bob,.box-shadow,.box-wiggle[data-wiggle=true]{animation:none}}
.vch-ticket{isolation:isolate;--notch:8px;--stub-h:38px;--stub:calc(100% - var(--stub-h));-webkit-mask:radial-gradient(circle at 0 var(--stub), transparent var(--notch), #000 calc(var(--notch) + .5px)), radial-gradient(circle at 100% var(--stub), transparent var(--notch), #000 calc(var(--notch) + .5px));-webkit-mask-composite:source-in;-webkit-mask:radial-gradient(circle at 0 var(--stub), transparent var(--notch), #000 calc(var(--notch) + .5px)), radial-gradient(circle at 100% var(--stub), transparent var(--notch), #000 calc(var(--notch) + .5px));mask:radial-gradient(circle at 0 var(--stub), transparent var(--notch), #000 calc(var(--notch) + .5px)), radial-gradient(circle at 100% var(--stub), transparent var(--notch), #000 calc(var(--notch) + .5px));transition:transform .22s var(--ease-out), background .4s var(--ease-out), border-color .4s var(--ease-out);background:radial-gradient(120% 90% at 0 0,#ffe3a338,#0000 55%),radial-gradient(100% 80% at 100% 100%,#ff8fb124,#0000 60%),linear-gradient(#ffffff0d,#ffffff05);border:1px solid #f2c87961;border-radius:18px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff29,0 10px 26px #00000047;-webkit-mask-composite:source-in;mask-composite:intersect}.vch-ticket:before{content:"";z-index:-1;pointer-events:none;animation:vch-sweep 6s var(--ease-out) infinite;animation-delay:var(--sweep-delay,0s);background:linear-gradient(105deg,#0000 42%,#fff4d638 50%,#0000 58%);position:absolute;inset:-60% -40%;transform:translate(-70%)}.vch-ticket:after{content:"";left:14px;right:14px;top:var(--stub);pointer-events:none;border-top:1.5px dashed #ffffff38;position:absolute}.vch-ticket--card:active{transform:scale(.97)}.vch-stub{height:var(--stub-h)}.vch-ticket.is-sent{background:linear-gradient(#ffffff0b,#ffffff05);border-color:#ffffff1f;box-shadow:inset 0 1px #ffffff14}.vch-ticket.is-sent:before{animation:none}.vch-fade{transition:opacity .4s var(--ease-out)}.vch-ticket.is-sent .vch-fade{opacity:.45}.vch-stamp{border:2px solid var(--rose);color:var(--rose);font-family:var(--font-round);letter-spacing:.16em;text-transform:uppercase;border-radius:8px;padding:2px 9px;font-size:.72rem;font-weight:800;position:absolute;top:34px;right:10px;transform:rotate(-12deg);box-shadow:inset 0 0 0 1px #ff8fb140}.vch-ticket--hero{--stub-h:52px;--notch:11px;border-radius:24px}.vch-ticket--hero .vch-stamp{border-width:3px;border-radius:10px;padding:4px 14px;font-size:.95rem;top:58px;right:22px}.vch-dot{width:7px;height:7px;transition:background .4s var(--ease-out), box-shadow .4s var(--ease-out);background:#ffffff29;border-radius:999px}.vch-dot.is-on{background:linear-gradient(180deg, var(--gold-hot), var(--gold));box-shadow:0 0 8px #f2c87999}.vch-pin{font-family:var(--font-mono);letter-spacing:.08em;font-variant-numeric:tabular-nums;color:var(--gold-hot);text-shadow:0 0 18px #ffe3a340;font-size:clamp(1.15rem,5.4vw,1.55rem)}.vch-mark{border:1px solid var(--glass-edge);width:100%;min-height:52px;transition:background .24s var(--ease-out), border-color .24s var(--ease-out), color .24s var(--ease-out), transform .16s var(--ease-out);background:#ffffff0a;border-radius:999px;justify-content:center;align-items:center;gap:.6rem;padding:0 1.25rem;font-weight:800;display:inline-flex}.vch-mark:active{transform:scale(.98)}.vch-mark.is-on{color:#ffd6e3;background:linear-gradient(#ff8fb147,#ff8fb129);border-color:#ff8fb199}@keyframes vch-sweep{0%,55%{transform:translate(-70%)}to{transform:translate(70%)}}
