/* Static gallery graphics; only transform/opacity animate during the short reveal. */
.online-reveal:has(.pf-celebration-frame){padding:14px;background:radial-gradient(ellipse at 50% 35%,#30354f 0,#10131e 74%);backdrop-filter:none}
.online-reveal-card.pf-celebration-frame{--pf-paper:#f3f1ed;--pf-ink:#242733;--pf-line:#d7d5d1;--pf-accent:#f6d695;--pf-radius:7px;position:relative;isolation:isolate;gap:14px;animation:none;padding:4px 12px 10px;box-sizing:border-box}
.pf-celebration-frame .online-reveal-kicker{color:#c6cbdc;font-size:10px;font-weight:650;letter-spacing:5px}
.pf-celebration-frame .pf-celebration-title{max-width:30em;padding:0 5px;color:#f9f9fd;font-size:clamp(18px,4.8vw,26px);font-weight:720;line-height:1.42;letter-spacing:-.045em;text-wrap:balance;word-break:keep-all;overflow-wrap:anywhere}
.pf-celebration-frame>p{color:#c9cedf;font-size:12px;letter-spacing:-.01em;line-height:1.6}
.pf-celebration-frame .online-reveal-frame{position:relative;isolation:isolate;max-width:100%;padding:12px 12px 30px;background:var(--pf-paper);border:1px solid var(--pf-line);border-radius:var(--pf-radius);box-shadow:0 18px 45px #0005,0 2px 5px #0003;transform:none;box-sizing:border-box}
.pf-celebration-frame .pf-celebration-media{display:block;max-width:100%;max-height:min(58dvh,calc(100dvh - 250px));object-fit:contain;image-rendering:auto;border-radius:max(0px,calc(var(--pf-radius) - 3px));background:#252938}
.pf-celebration-frame .online-reveal-frame:after{content:"";position:absolute;left:12px;right:12px;bottom:11px;height:2px;background:linear-gradient(90deg,var(--pf-accent) 0 24px,transparent 24px calc(100% - 24px),var(--pf-ink) calc(100% - 24px));opacity:.65;pointer-events:none}
.pf-celebration-frame.pf-frame-porcelain{--pf-paper:#f5f2eb;--pf-ink:#45484e;--pf-line:#ebe6dc;--pf-accent:#bb9b6c;--pf-radius:5px}
.pf-celebration-frame.pf-frame-nocturne{--pf-paper:#191c26;--pf-ink:#77819b;--pf-line:#555d73;--pf-accent:#e4c991;--pf-radius:9px}
.pf-frame-nocturne .online-reveal-frame{box-shadow:inset 0 0 0 4px #252b38,0 18px 48px #0007}
.pf-celebration-frame.pf-frame-cobalt{--pf-paper:#354dea;--pf-ink:#b6c3ff;--pf-line:#8396ff;--pf-accent:#e5eeff;--pf-radius:14px}
.pf-frame-cobalt .online-reveal-frame{padding:14px 14px 31px;background:linear-gradient(155deg,#5670ff,#354dea 55%,#2437b8);box-shadow:0 20px 48px #07145088,inset 0 1px #a0b5ff}
.pf-celebration-frame.pf-frame-apricot{--pf-paper:#f0c8b4;--pf-ink:#9b6250;--pf-line:#f6e0d4;--pf-accent:#fcf5e7;--pf-radius:7px}
.pf-frame-apricot .online-reveal-frame{background:linear-gradient(130deg,#f8deca,#e8b6a3);box-shadow:0 18px 42px #3d16154d,inset 0 0 0 4px #f3d5c5}
.pf-celebration-frame.pf-frame-silver{--pf-paper:#dbe0e8;--pf-ink:#8e99ac;--pf-line:#f3f6fc;--pf-accent:#fff;--pf-radius:4px}
.pf-frame-silver .online-reveal-frame{background:linear-gradient(125deg,#f0f3f8,#bfc7d4 36%,#e7ecf3 62%,#c4ccd8);padding:10px 10px 27px;box-shadow:0 20px 45px #0005,inset 0 0 0 3px #f3f5fa88}
.pf-celebration-frame.pf-frame-iris{--pf-paper:#aaa0e4;--pf-ink:#655697;--pf-line:#d7cef9;--pf-accent:#fbefcb;--pf-radius:12px}
.pf-frame-iris .online-reveal-frame{background:linear-gradient(145deg,#beb6f1,#8e93d4 48%,#d2b8d9);box-shadow:0 20px 48px #1b134b66,inset 0 0 0 4px #e7dcff66}
/* Each effect uses the same two lightweight decorative layers; no particle DOM. */
.online-reveal-card.pf-celebration-frame:before,.online-reveal-card.pf-celebration-frame:after{content:"";position:absolute;z-index:3;left:auto;right:auto;top:auto;bottom:auto;width:24px;height:24px;pointer-events:none;background:var(--pf-accent);color:var(--pf-accent);border:0;opacity:0;clip-path:polygon(50% 0,59% 35%,100% 50%,59% 60%,50% 100%,40% 60%,0 50%,40% 35%);animation:pf-celebrate-glint 1000ms ease-out 150ms both}
.online-reveal-card.pf-celebration-frame:before{top:24%;left:0}
.online-reveal-card.pf-celebration-frame:after{bottom:21%;right:1%;width:38px;height:38px;animation-delay:320ms}
.pf-celebration-frame.pf-effect-halo:before,.pf-celebration-frame.pf-effect-halo:after{clip-path:none;border:1px solid var(--pf-accent);border-radius:50%;background:transparent;width:55px;height:55px;animation-name:pf-celebrate-halo}
.pf-celebration-frame.pf-effect-halo:after{width:28px;height:28px}
.pf-celebration-frame.pf-effect-rays:before,.pf-celebration-frame.pf-effect-rays:after{clip-path:none;background:repeating-conic-gradient(from 0deg,transparent 0deg 42deg,var(--pf-accent) 43deg 46deg,transparent 47deg 60deg);border-radius:50%;width:58px;height:58px;animation-name:pf-celebrate-rays}
.pf-celebration-frame.pf-effect-ribbons:before,.pf-celebration-frame.pf-effect-ribbons:after{clip-path:polygon(0 0,100% 0,100% 100%,50% 70%,0 100%);width:12px;height:38px;animation-name:pf-celebrate-ribbon}
.pf-celebration-frame.pf-effect-ribbons:after{width:9px;height:28px}
.pf-celebration-frame.pf-effect-dots:before,.pf-celebration-frame.pf-effect-dots:after{clip-path:none;border-radius:50%;width:5px;height:5px;box-shadow:12px -15px 0 -1px var(--pf-accent),-7px 19px 0 1px #fff9,20px 12px 0 0 var(--pf-accent);animation-name:pf-celebrate-dots}
.pf-celebration-frame.pf-effect-brackets:before,.pf-celebration-frame.pf-effect-brackets:after{clip-path:none;background:transparent;border-top:2px solid var(--pf-accent);border-left:2px solid var(--pf-accent);border-radius:3px;width:25px;height:25px;animation-name:pf-celebrate-bracket}
.pf-celebration-frame.pf-effect-brackets:after{transform:rotate(180deg)}
.online-reveal-card.pf-motion-rise{animation:pf-celebrate-rise 650ms cubic-bezier(.2,.8,.2,1) both}
.online-reveal-card.pf-motion-snap{animation:pf-celebrate-snap 650ms cubic-bezier(.2,.8,.2,1) both}
.online-reveal-card.pf-motion-orbit{animation:pf-celebrate-orbit 700ms cubic-bezier(.2,.8,.2,1) both}
.online-reveal-card.pf-motion-unfold{animation:pf-celebrate-unfold 700ms cubic-bezier(.2,.8,.2,1) both}
.online-reveal-card.pf-motion-glide{animation:pf-celebrate-glide 650ms cubic-bezier(.2,.8,.2,1) both}
.online-reveal-card.pf-motion-focus{animation:pf-celebrate-focus 680ms ease-out both}
.online-reveal-card.pf-motion-drop{animation:pf-celebrate-drop 650ms cubic-bezier(.2,.8,.2,1) both}
.online-reveal-card.pf-motion-pop{animation:pf-celebrate-pop 700ms cubic-bezier(.2,.8,.2,1) both}
@keyframes pf-celebrate-rise{from{opacity:0;transform:translateY(28px) scale(.97)}to{opacity:1;transform:none}}
@keyframes pf-celebrate-snap{0%{opacity:0;transform:scale(.88) rotate(-3deg)}70%{opacity:1;transform:scale(1.012) rotate(.4deg)}100%{opacity:1;transform:none}}
@keyframes pf-celebrate-orbit{from{opacity:0;transform:translate(22px,10px) rotate(4deg) scale(.95)}to{opacity:1;transform:none}}
@keyframes pf-celebrate-unfold{from{opacity:0;transform:perspective(900px) rotateX(12deg) translateY(15px)}to{opacity:1;transform:none}}
@keyframes pf-celebrate-glide{from{opacity:0;transform:translateX(-30px) rotate(-1deg)}to{opacity:1;transform:none}}
@keyframes pf-celebrate-focus{from{opacity:0;transform:scale(1.045)}to{opacity:1;transform:none}}
@keyframes pf-celebrate-drop{from{opacity:0;transform:translateY(-20px) rotate(2deg)}to{opacity:1;transform:none}}
@keyframes pf-celebrate-pop{0%{opacity:0;transform:scale(.82)}72%{opacity:1;transform:scale(1.018)}100%{opacity:1;transform:none}}
@keyframes pf-celebrate-glint{0%{opacity:0;transform:scale(.4) rotate(-15deg)}35%{opacity:.95;transform:scale(1) rotate(0)}100%{opacity:0;transform:translateY(-12px) scale(1.18) rotate(12deg)}}
@keyframes pf-celebrate-halo{from{opacity:.8;transform:scale(.65)}to{opacity:0;transform:scale(1.5)}}
@keyframes pf-celebrate-rays{0%{opacity:0;transform:scale(.55) rotate(-10deg)}35%{opacity:.85}100%{opacity:0;transform:scale(1.12) rotate(18deg)}}
@keyframes pf-celebrate-ribbon{0%{opacity:0;transform:translateY(-14px) rotate(-14deg)}30%{opacity:.9}100%{opacity:0;transform:translateY(20px) rotate(14deg)}}
@keyframes pf-celebrate-dots{0%{opacity:0;transform:translateY(8px) scale(.7)}35%{opacity:.95}100%{opacity:0;transform:translateY(-20px) scale(1.2)}}
@keyframes pf-celebrate-bracket{0%{opacity:0;translate:0 8px}35%{opacity:.9}100%{opacity:0;translate:0 -8px}}
.online-reveal-card.pf-celebration-static,.pf-celebration-static *{animation:none!important;transition:none!important;transform:none!important}
.online-reveal-card.pf-celebration-static:before,.online-reveal-card.pf-celebration-static:after{display:none!important;animation:none!important}
@media(max-height:600px){.online-reveal-card.pf-celebration-frame{gap:8px}.pf-celebration-frame .pf-celebration-media{max-height:min(49dvh,calc(100dvh - 205px))}.pf-celebration-frame .pf-celebration-title{font-size:18px}.pf-celebration-frame .online-reveal-frame{padding-bottom:22px}}
@media(prefers-reduced-motion:reduce){
  .online-reveal:has(.pf-celebration-frame),.pf-celebration-frame,.pf-celebration-frame *,.pf-celebration-frame:before,.pf-celebration-frame:after,.pf-celebration-frame *:before,.pf-celebration-frame *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .online-reveal-card.pf-celebration-frame,.pf-celebration-frame .online-reveal-frame{transform:none!important}
  .online-reveal-card.pf-celebration-frame:before,.online-reveal-card.pf-celebration-frame:after{display:none!important}
}
