.puppet{--turn:0deg;--tilt:0deg;--drop:0%;--spin:0deg;--grow:1;--show:1;--shadow:1;perspective:1400px;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;position:relative}.puppet__rig{transform-style:preserve-3d;transform:rotateY(var(--turn)) rotateX(var(--tilt));transform-origin:50% 60%;will-change:transform;animation:4.2s ease-in-out infinite puppet-float;position:absolute;inset:0}.puppet__part{pointer-events:none;backface-visibility:hidden;width:100%;height:100%;position:absolute;inset:0}.puppet__leg.is-kick{animation:1s cubic-bezier(.3,1.5,.5,1) puppet-kick}.puppet__blink{opacity:0;transition:opacity 40ms}.puppet__blink.is-on{opacity:1}.puppet__palm-shadow{height:2.2%;opacity:var(--shadow);transform:translateZ(20px) scaleX(calc(.4 + .6 * var(--shadow)));pointer-events:none;background:radial-gradient(closest-side,#780a3c73,#780a3c00);border-radius:50%;position:absolute}.puppet__logo{transform-style:preserve-3d;position:absolute;transform:translateZ(40px)}.puppet__logo-fall{transform:translateY(var(--drop)) rotate(var(--spin)) scale(var(--grow));transform-origin:50% 90%;opacity:var(--show)}.puppet__logo img{transform-origin:50% 100%;filter:drop-shadow(0 4px 6px #780a3c4d);width:100%;height:auto;display:block}.puppet__logo img.is-hop{animation:1s cubic-bezier(.3,1.4,.5,1) puppet-hop}.puppet__hearts{pointer-events:none;position:absolute;top:-10%;left:50%}.puppet__hearts i{background:var(--pink);width:18px;height:18px;clip-path:path("M9 16 C3 11 0 8 0 5 C0 2 2 0 4.6 0 C6.4 0 8 1.2 9 3 C10 1.2 11.6 0 13.4 0 C16 0 18 2 18 5 C18 8 15 11 9 16 Z");filter:drop-shadow(0 0 6px rgba(var(--pink-rgb), .9));animation:1.3s ease-out forwards puppet-heart;animation-delay:calc(var(--i) * 60ms);--dx:calc((var(--i) - 2) * 34px);position:absolute}@keyframes puppet-float{0%,to{translate:0}50%{translate:0 -.8%}}@keyframes puppet-kick{0%{rotate:none}35%{rotate:11deg}65%{rotate:-2deg}to{rotate:none}}@keyframes puppet-hop{0%{translate:0;rotate:none}15%{translate:0 6%;scale:1.04 .94}45%{translate:0 -150%;rotate:-360deg;scale:1.06}80%{translate:0 4%;rotate:-360deg;scale:1.04 .95}to{translate:0;rotate:-360deg;scale:1}}@keyframes puppet-heart{0%{opacity:0;transform:translate(0)scale(.4)}20%{opacity:1}to{opacity:0;transform:translate(var(--dx), -140px) scale(1.1)}}@media (prefers-reduced-motion:reduce){.puppet__rig,.puppet__leg,.puppet__logo img{animation:none!important}}.puppet-lab{background:radial-gradient(46% 60% at 64% 52%,#ffd6e6f2 0%,#f7a8c8e6 30%,#e9609c8c 58%,#e9609c00 82%),linear-gradient(#07040a 0%,#8c2a5a 30%,#d9709f 50%,#b84a7f 75%,#0b060c 100%);place-items:center;min-height:calc(100svh - 64px);padding:24px 16px;display:grid}.puppet-lab__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:40px;width:min(1200px,100%);display:grid}.puppet-lab__stage{justify-self:center;width:min(100%,75svh - 90px)}.puppet-lab__copy h2{color:#fff;text-shadow:0 2px 18px #3c06228c;font-size:clamp(34px,4.4vw,64px);line-height:1.2}.puppet-lab__copy p{color:#fff0f7;text-shadow:0 1px 10px #3c062299}@media (max-width:809px){.puppet-lab__grid{text-align:center;grid-template-columns:1fr}.puppet-lab__stage{width:min(88%,75svh - 195px)}}.princess-turn{cursor:pointer;-webkit-tap-highlight-color:transparent;width:100%;position:relative}.princess-turn canvas{width:100%;height:100%;display:block}.princess-turn__hearts{top:34%;left:62%}.catch-experience .catch-scroll--puppet{height:190svh}.catch-experience .catch-scroll--puppet .catch-sticky{min-height:100svh;position:sticky;top:0}.catch-experience .catch-scroll--puppet .catch-media{width:min(100%,75svh - 127.5px,640px);margin-top:40px}@media (max-width:809px){.catch-experience .catch-scroll--puppet{height:170svh}.catch-experience .catch-scroll--puppet .catch-sticky{align-content:center;padding-block:64px 16px}.catch-experience .catch-scroll--puppet .catch-media{width:min(92%,75svh - 187.5px,440px);margin-top:8px}}@media (prefers-reduced-motion:reduce){.catch-experience .catch-scroll--puppet{height:auto}}.catch-experience .catch-scroll.catch-scroll--puppet{background:#000}.catch-experience .catch-scroll--puppet .catch-media:before{display:none}.catch-experience .catch-scroll--puppet .catch-sticky:before{content:"";z-index:-1;pointer-events:none;filter:blur(90px);background:radial-gradient(closest-side,#ffd6e6f2,#f7a8c8e0 30%,#e9609c99 58%,#a02c6838 82%,#50103200 100%);border-radius:50%;width:100%;height:116%;animation:9s ease-in-out infinite catch-glow,11s linear 3s infinite catch-flicker;display:block;position:absolute;top:-8%;left:14%;-webkit-mask-image:linear-gradient(#0000 6%,#000 26% 74%,#0000 94%);mask-image:linear-gradient(#0000 6%,#000 26% 74%,#0000 94%)}@keyframes catch-glow{0%,to{opacity:.82;transform:translate(0)scale(1)}35%{opacity:1;transform:translate(-3%,2%)scale(1.08)}70%{opacity:.7;transform:translate(2%,-2%)scale(.96)}}@keyframes catch-flicker{0%,84%,86.5%,89%,to{filter:blur(90px)brightness()}85%{filter:blur(90px)brightness(.7)}88%{filter:blur(90px)brightness(1.15)}}@media (prefers-reduced-motion:reduce){.catch-experience .catch-scroll--puppet .catch-sticky:before{animation:none}}.catch-experience .catch-scroll--puppet .catch-sticky:after{content:"";z-index:-1;pointer-events:none;opacity:.06;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000 6%,#000 26% 74%,#0000 94%);mask-image:linear-gradient(#0000 6%,#000 26% 74%,#0000 94%)}@media (max-width:809px){.catch-experience .catch-scroll--puppet .catch-sticky:before{width:100%;height:70%;top:30%;left:0}}.catch-experience .catch-scroll--puppet .catch-fx{z-index:-2;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.catch-experience .catch-scroll--puppet .catch-sticky:has(>.catch-fx):before{display:none}.catch-experience .catch-scroll--puppet .catch-sticky:has(>.catch-fx):after{display:none}.catch-fx-pick{z-index:3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#07040a8c;border:1px solid #ffd0e859;border-radius:999px;gap:6px;padding:5px;display:flex;position:absolute;top:96px;right:clamp(16px,3vw,48px)}.catch-fx-pick button{color:#ffe3f1;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:8px 12px;font:600 12px/1 inherit}.catch-fx-pick button[aria-pressed=true]{background:rgba(var(--pink-rgb), .28);box-shadow:0 0 0 1px #ffd0e8, 0 0 12px rgba(var(--pink-rgb), .7)}@media (max-width:809px){.catch-fx-pick{top:72px;right:50%;translate:50%}.catch-fx-pick button{padding:7px 9px;font-size:12px}}
