/* 4단계 · 손맛과 연출 */
.iris{position:absolute;inset:0;z-index:60;pointer-events:none;overflow:hidden;display:grid;place-items:center}
.iris>i{position:absolute;left:50%;top:50%;width:0;height:0;border-radius:50%;transform:translate(-50%,-50%);
  box-shadow:0 0 0 7px #ffd6ea,0 0 30px 14px rgba(255,170,215,.75),0 0 0 220vmax #2e2148;animation:iris-open .9s cubic-bezier(.6,0,.2,1) .12s both}
.iris>b{position:relative;font:900 22px "Outfit","Noto Sans KR",sans-serif;color:#fff;letter-spacing:.04em;text-shadow:0 2px 0 #ff7fb0;animation:iris-title .9s ease .02s both}
@keyframes iris-open{from{width:0;height:0}to{width:260vmax;height:260vmax}}
@keyframes iris-title{0%{opacity:0;transform:scale(.8)}20%{opacity:1;transform:scale(1)}55%{opacity:1}100%{opacity:0;transform:scale(1.15)}}

.rpg-modal-wrap[data-pop]>.rpg-modal{animation:modal-pop .34s cubic-bezier(.2,1.5,.4,1) both}
.rpg-modal-wrap[data-pop]{animation:veil-in .2s ease both}
.rpg-modal-wrap.closing>.rpg-modal{animation:modal-out .16s ease-in both}
.rpg-modal-wrap.closing{animation:veil-out .16s ease-in both}
@keyframes modal-pop{0%{opacity:0;transform:scale(.86) translateY(10px)}60%{opacity:1;transform:scale(1.03)}100%{transform:none}}
@keyframes modal-out{to{opacity:0;transform:scale(.92) translateY(6px)}}
@keyframes veil-in{from{background-color:transparent;backdrop-filter:none}}
@keyframes veil-out{to{opacity:0}}

.fly-coin{position:absolute;left:0;top:0;z-index:58;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 35% 30%,#fff7c8 0 18%,#ffd34d 32%,#f2a81d 70%,#c97b0c 100%);box-shadow:0 0 0 2px #fff3b0 inset,0 2px 6px rgba(201,123,12,.45)}
.rpg-gold.bump{animation:gold-bump .22s ease}
@keyframes gold-bump{50%{transform:scale(1.14)}}

.cutin{position:absolute;inset:0;z-index:61;display:grid;place-items:center;background:rgba(40,24,60,.28);animation:veil-in .2s ease both;cursor:pointer}
.cutin.out{animation:veil-out .3s ease-in both}
.cutin-band{position:relative;width:140%;height:190px;transform:rotate(-6deg);display:flex;align-items:center;justify-content:center;gap:22px;overflow:hidden;
  background:linear-gradient(90deg,#ff7fb0,#ffb4d6 40%,#c9b3ff 70%,#8fd3ff);box-shadow:0 0 0 6px #fff,0 18px 40px rgba(80,30,90,.35);animation:band-in .5s cubic-bezier(.2,1.3,.4,1) both}
.cutin.out .cutin-band{animation:band-out .3s ease-in both}
.cutin-band img{height:230px;margin-top:20px;filter:drop-shadow(0 6px 0 rgba(255,255,255,.85));transform:rotate(6deg);animation:doll-in .6s cubic-bezier(.2,1.4,.4,1) .12s both}
.cutin-text{transform:rotate(6deg);color:#fff;text-shadow:0 3px 0 rgba(150,40,110,.45);animation:text-in .5s ease .2s both}
.cutin-text small{display:block;font:800 15px "Noto Sans KR",sans-serif;opacity:.9}
.cutin-text b{display:block;font:900 64px/1 "Outfit","Black Han Sans",sans-serif;letter-spacing:.02em}
.cutin-text span{font:800 22px "Outfit","Noto Sans KR",sans-serif}.cutin-text em{font-style:normal;color:#fff3a6}
.cutin-text p{margin:6px 0 0;font:700 14px "Noto Sans KR",sans-serif}
.cutin-stars i{position:absolute;width:10px;height:10px;background:#fff;clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);opacity:.85;animation:twinkle 1.2s ease-in-out infinite}
.cutin-stars i:nth-child(odd){width:16px;height:16px}
.cutin-stars i:nth-child(1){left:8%;top:20%}.cutin-stars i:nth-child(2){left:16%;top:70%;animation-delay:.2s}.cutin-stars i:nth-child(3){left:24%;top:35%;animation-delay:.5s}.cutin-stars i:nth-child(4){left:31%;top:80%;animation-delay:.1s}
.cutin-stars i:nth-child(5){left:39%;top:12%;animation-delay:.7s}.cutin-stars i:nth-child(6){left:58%;top:78%;animation-delay:.3s}.cutin-stars i:nth-child(7){left:64%;top:18%;animation-delay:.6s}.cutin-stars i:nth-child(8){left:71%;top:60%;animation-delay:.15s}
.cutin-stars i:nth-child(9){left:78%;top:28%;animation-delay:.45s}.cutin-stars i:nth-child(10){left:84%;top:75%;animation-delay:.25s}.cutin-stars i:nth-child(11){left:90%;top:40%;animation-delay:.65s}.cutin-stars i:nth-child(12){left:50%;top:88%;animation-delay:.35s}
.cutin-stars i:nth-child(13){left:46%;top:6%;animation-delay:.55s}.cutin-stars i:nth-child(14){left:3%;top:55%;animation-delay:.05s}
@keyframes band-in{from{transform:rotate(-6deg) translateX(-110%)}to{transform:rotate(-6deg)}}
@keyframes band-out{to{transform:rotate(-6deg) translateX(110%);opacity:.4}}
@keyframes doll-in{from{opacity:0;transform:rotate(6deg) translateX(-160px) scale(.8)}to{opacity:1;transform:rotate(6deg)}}
@keyframes text-in{from{opacity:0;transform:rotate(6deg) translateX(60px)}to{opacity:1;transform:rotate(6deg)}}
@keyframes twinkle{50%{transform:scale(.4);opacity:.3}}
.cutin.still .cutin-band,.cutin.still .cutin-band img,.cutin.still .cutin-text{animation:none}
@media (max-width:640px){.cutin-band{height:140px;gap:10px}.cutin-band img{height:160px}.cutin-text b{font-size:40px}.cutin-text span{font-size:17px}}
@media (prefers-reduced-motion:reduce){.rpg-modal-wrap[data-pop]>.rpg-modal,.rpg-modal-wrap.closing>.rpg-modal{animation:none}}
