/* Optional purple-qipao costume. Layout and action durations stay shared. */
body.red-rose{--cup-purple:#e2a0a5;--cup-ink:#291917;--cup-pearl:#f7e9dd}
.red-rose .home-art{background:#291917!important;animation:none!important}
.red-rose .home-art.animated-ready{background:#291917!important}
.red-rose #home .vignette{background:linear-gradient(#19121da8,transparent 37%,transparent 60%,#291917ed 84%,#17131c)}
.red-rose .home-art:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 35%,#e1c1ff08 49%,transparent 62%);animation:cup-sheen 9s ease-in-out infinite}
.red-rose .home-bubble{border-color:#b49aaa}.red-rose #home .ambient-motes{display:none}
.red-rose #enter{background:#e5cbb5;border:0;box-shadow:4px 0 #201329,-4px 0 #201329,0 -4px #201329,0 8px #201329,6px 8px #503553}
.red-rose #enter .start-face{background:linear-gradient(#efb2a8 0 5px,#b74658 5px 48%,#913242 48% calc(100% - 9px),#4e1f2b calc(100% - 9px));border-color:#3c204d;box-shadow:inset 3px 0 #e47785,inset -3px 0 #6a273d;color:#fff3db}
.red-rose #enter .start-face b{font-size:28px;text-shadow:2px 3px #3b194e}
.red-rose #enter .start-face:after{background:#e7bfff55;box-shadow:9px 0 #e7bfff30}
.red-rose #enter .start-key{background:#f1d9b3;border-color:#24172d;color:#513366;box-shadow:2px 2px #100c16}
.red-rose #enter .start-play{color:#f9ddb2;text-shadow:2px 3px #452354}
.red-rose #enter .start-arrow{color:#ebccec;text-shadow:2px 2px #4d2860}
.red-rose #enter:active{box-shadow:4px 0 #201329,-4px 0 #201329,0 -4px #201329,0 3px #201329}
.red-rose #enter:focus-visible{outline-color:#ead3ff}
@media(max-height:760px){.red-rose #enter .start-face b{font-size:25px}}
@media(max-width:350px){.red-rose #enter .start-face{gap:10px}.red-rose #enter .start-arrow{right:9px}}
.red-rose #enemy-hero:not(.evil-joe-v15){background:#291917;border-bottom-color:#b38aba}
.red-rose #enemy-hero:not(.evil-joe-v15) .enemy-portrait{background:#291917!important;animation:none!important}
.red-rose #enemy-hero:not(.evil-joe-v15) #speech{background:#f0e4d1;color:#3f3040;border-color:#ad8ca4;box-shadow:1px 2px #211522}
.red-rose #enemy-hero:not(.evil-joe-v15) .enemy-name small{color:#dbc4eb}
.red-rose .player-portrait.story-female{background-image:url(assets/chouchou-rose-avatar-v17.webp)!important;background-size:cover!important;background-position:center 24%!important}
.red-rose .opponent-portrait:not(.evil-joe-v15),.red-rose .duel-person.opponent:not(.evil-joe-v15)>i{background-image:url(assets/chouchou-rose-avatar-v17.webp)!important;background-size:cover!important;background-position:center!important}
.red-rose #dialog[data-opponent='chouchou'] .result-character{background-image:url(assets/chouchou-rose-stages-pixel-v17.webp)!important}
.cup-petals{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}
.cup-petals i{position:absolute;width:7px;height:10px;background:#ac78c5;clip-path:polygon(40% 0,85% 15%,100% 50%,60% 100%,20% 85%,0 45%);left:var(--x);top:-12px;opacity:0;animation:cup-petal 8s linear infinite;animation-delay:var(--delay)}
.cup-fx{position:absolute;pointer-events:none;z-index:4;will-change:transform,opacity}
.cup-fan{width:180px;height:150px;transform-origin:50% 90%;color:#ead7ff}
.cup-fan svg{width:100%;height:100%;overflow:visible}
.cup-fan-petal{width:8px;height:12px;background:#d3a6ec;clip-path:polygon(40% 0,85% 15%,100% 50%,60% 100%,20% 85%,0 45%)}
.cup-fan-wave{width:160px;height:45px;border:2px solid #ddc6ef;border-left-color:transparent;border-radius:50%;box-shadow:0 3px 0 #9360b766}
@keyframes cup-petal{0%{transform:translate(0,-12px) rotate(0deg);opacity:0}10%{opacity:.55}85%{opacity:.25}100%{transform:translate(48px,420px) rotate(210deg);opacity:0}}
@keyframes cup-sheen{0%,65%,100%{opacity:0}30%{opacity:1}}
@media(prefers-reduced-motion:reduce){.cup-petals,.red-rose .home-art:after{display:none!important}}
.cup-page-hidden .cup-petals i,.cup-page-hidden .home-art:after{animation-play-state:paused!important}

#home>.cup-petals{z-index:-1;inset:22% 0 18%}

/* Six-panel preserved artwork: own asset names, never the Suixin boss art. */
.red-rose .player-portrait.story-female,.red-rose .opponent-portrait:not(.evil-joe-v15),.red-rose .duel-person.opponent:not(.evil-joe-v15)>i{background-size:auto 170%!important;background-position:58% 16%!important;image-rendering:auto}
.red-rose #dialog[data-opponent='chouchou'] .result-character{background-size:200% 300%!important;background-position:0 0!important;image-rendering:auto}
.red-rose #dialog[data-opponent='chouchou'][data-result='win'] .result-character{background-position:0 100%!important}
.costume-choice-v16[data-costume-choice='red-rose'][aria-pressed=true]{border-color:#c7a1ee;box-shadow:0 0 0 2px #ab8ad522}
.costume-choice-v16[data-costume-choice='red-rose'] .costume-check{background:#d2aceb;color:#35213e}
.red-rose .cup-petals i{background:#bc3654;clip-path:polygon(0 0,80% 30%,100% 100%,20% 70%);height:13px;width:5px}

/* Dedicated continuous pixel scene; no cropped battle sheet on the home screen. */
body.red-rose #home .home-art{background:#1b1420!important}
body.red-rose #home .home-art canvas{image-rendering:pixelated}

.red-rose .player-portrait.story-female,.red-rose .opponent-portrait:not(.evil-joe-v15),.red-rose .duel-person.opponent:not(.evil-joe-v15)>i{background-size:cover!important;background-position:center!important;image-rendering:pixelated}
.red-rose .cup-petals i{width:8px;height:10px;background:#d54b69;clip-path:polygon(25% 0,75% 0,100% 25%,100% 70%,55% 100%,10% 65%)}
.rose-petal-fx-v17{position:absolute;width:8px;height:11px;clip-path:polygon(25% 0,75% 0,100% 25%,100% 70%,55% 100%,10% 65%);pointer-events:none;z-index:15}
