body:has(.catpfp),html:has(.catpfp){background:#fff;color:#111}.catpfp{box-sizing:border-box;width:min(920px,100%);min-height:100dvh;margin:0 auto;padding:32px 20px;display:flex;flex-direction:column;justify-content:safe center;font-family:ui-sans-serif,system-ui,sans-serif;text-align:center}body:has(.catpfp-gate),html:has(.catpfp-gate){overflow:hidden;background:#fff}.catpfp-gate{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:72px 28px;background:#fff;color:#111}.catpfp-gate.is-out{animation:catpfp-gate-out .5s ease forwards}.catpfp-skip{position:absolute;top:20px;right:20px;height:36px;padding:0 14px;border:1px solid #111;background:#fff;color:#111;font:inherit;font-size:13px;cursor:pointer}.catpfp-gate p{margin:0;max-width:14em;font-size:clamp(40px,7vw,88px);font-weight:700;letter-spacing:-.045em;line-height:.95;text-align:center;animation:catpfp-line 1s ease both}.catpfp-gate p.is-mark{max-width:none;font-size:clamp(56px,10vw,120px)}.catpfp-gate p.is-punch span{animation-name:catpfp-hit;animation-duration:.42s}.catpfp-gate p.is-mark span{animation-name:catpfp-slam;animation-duration:.55s}.catpfp-gate p span{display:inline-block;margin-right:.28em;opacity:0;animation:catpfp-word .45s ease forwards}.catpfp-gate p span:last-child{margin-right:0}@keyframes catpfp-word{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes catpfp-hit{0%{opacity:0;transform:translateY(28px) scale(1.08)}60%{opacity:1;transform:translateY(-4px)}to{opacity:1;transform:none}}@keyframes catpfp-slam{0%{opacity:0;transform:scale(1.4)}70%{opacity:1;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes catpfp-line{0%{opacity:0}to{opacity:1}}@keyframes catpfp-gate-out{to{opacity:0}}.catpfp-ca{display:grid;justify-items:center;gap:8px;margin:0 0 28px}.catpfp-ca span{color:#111;font-size:13px;font-weight:650;letter-spacing:-.02em}.catpfp-ca button{max-width:100%;padding:0;border:0;background:transparent;color:#111;font:inherit;font-size:15px;line-height:1.4;overflow-wrap:anywhere;cursor:pointer}.catpfp-ca button:disabled{color:#888;cursor:default}.catpfp-ca button.is-copied{animation:catpfp-copied .45s ease}.catpfp h1{margin:0 0 16px;font-size:28px;font-weight:560;letter-spacing:-.03em}.catpfp-modes{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:min(640px,100%);margin:0 auto 12px}.catpfp-modes button{min-height:44px;padding:10px 12px;border:1px solid #111;background:#fff;color:#111;font:inherit;font-size:14px;text-align:center;cursor:pointer}.catpfp-modes button[aria-selected=true]{background:#111;color:#fff}.catpfp-modes{position:relative}@media (min-width:721px){.catpfp-modes:before{content:"";position:absolute;z-index:0;top:0;left:0;width:calc(50% - 4px);height:100%;background:#111;transition:transform .35s cubic-bezier(.2,.8,.2,1)}.catpfp-modes[data-mode=pose]:before{transform:translateX(calc(100% + 8px))}.catpfp-modes button{position:relative;z-index:1;background:transparent;transition:color .25s ease,background .25s ease}.catpfp-modes button[aria-selected=true]{background:transparent;color:#fff}.catpfp-modes button:not([aria-selected=true]):hover{background:#f4f4f4}}.catpfp>p:not(.catpfp-ca){margin:0 0 24px;color:#777;font-size:14px}.catpfp.is-in>*{animation:catpfp-rise .65s cubic-bezier(.2,.8,.2,1) both}.catpfp.is-in>:first-child{animation-delay:.02s}.catpfp.is-in>:nth-child(2){animation-delay:.1s}.catpfp.is-in>:nth-child(3){animation-delay:.18s}.catpfp.is-in>:nth-child(4){animation-delay:.26s}.catpfp.is-in>:nth-child(6){animation-delay:.62s}.catpfp.is-in>.catpfp-row{animation:none}.catpfp.is-in>.catpfp-copy{animation:catpfp-rise .4s cubic-bezier(.2,.8,.2,1) both;animation-delay:0s}.catpfp.is-in .catpfp-row figure{animation:catpfp-rise .7s cubic-bezier(.2,.8,.2,1) both}.catpfp.is-in .catpfp-row figure:first-child{animation-delay:.34s}.catpfp.is-in .catpfp-row figure:nth-child(2){animation-delay:.46s}.catpfp.is-in .catpfp-row figure:nth-child(3){animation-delay:.58s}.catpfp figure:first-child img{animation:catpfp-float 3.4s ease-in-out infinite}.catpfp-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;width:min(720px,100%);margin:0 auto}.catpfp figure{margin:0}.catpfp img,.catpfp-drop,.catpfp-empty{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:#f4f4f4}.catpfp-drop{padding:0;border:1px dashed #ccc;cursor:pointer;font:inherit}.catpfp-drop:not(:has(img)){animation:catpfp-dash 1.8s ease-in-out infinite}.catpfp figure img,.catpfp-drop{transition:border-color .2s ease,box-shadow .3s ease}.catpfp figure:hover img,.catpfp-drop:hover{box-shadow:0 16px 40px rgba(0,0,0,.12)}.catpfp-row figure:last-child img{animation:catpfp-pop .5s cubic-bezier(.2,.9,.2,1) both}.catpfp-empty.is-busy{position:relative;overflow:hidden;color:transparent}.catpfp-empty.is-busy:after{content:"";position:absolute;left:0;right:0;height:40%;background:linear-gradient(180deg,transparent,rgba(0,0,0,.08),transparent);animation:catpfp-scan 1.1s linear infinite}.catpfp-drop span,.catpfp-empty{display:grid;place-items:center;color:#888;font-size:13px}.catpfp figcaption{margin-top:8px;color:#888;font-size:12px}.catpfp-actions{display:flex;justify-content:center;gap:8px;margin-top:20px}.catpfp-actions a,.catpfp-actions button{display:inline-flex;align-items:center;height:36px;padding:0 14px;background:#111;color:#fff;font:inherit;font-size:13px;text-decoration:none;border:0;cursor:pointer;transition:transform .2s ease,background .2s ease}.catpfp-actions a:hover,.catpfp-actions button:not(:disabled):hover{transform:translateY(-2px)}.catpfp-actions a{animation:catpfp-rise .35s ease both}.catpfp-actions button:disabled{background:#aaa;cursor:default}.catpfp-note{margin:12px 0 0;color:#777;font-size:13px}@media (max-width:720px){.catpfp-modes,.catpfp-row{grid-template-columns:1fr}}@keyframes catpfp-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes catpfp-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes catpfp-dash{0%,to{border-color:#ccc}50%{border-color:#111}}@keyframes catpfp-pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}@keyframes catpfp-scan{0%{top:-40%}to{top:100%}}@keyframes catpfp-copied{0%{transform:scale(1)}40%{transform:scale(1.04)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.catpfp figure:first-child img,.catpfp-actions a,.catpfp-ca button.is-copied,.catpfp-copy,.catpfp-drop:not(:has(img)),.catpfp-empty.is-busy,.catpfp-empty.is-busy:after,.catpfp-gate p,.catpfp-gate p span,.catpfp-gate.is-out,.catpfp-row figure:last-child img,.catpfp.is-in .catpfp-row figure,.catpfp.is-in>*{opacity:1;animation:none;transform:none}.catpfp-actions a,.catpfp-actions button,.catpfp-modes:before{transition:none}}