/* A shared, quieter black-and-crimson finish. */
body{background-color:#0e0b0e;background-image:radial-gradient(#8f25351a .65px,transparent .65px)}
footer{background:#120b11}
.hero .shade{background:linear-gradient(90deg,rgba(15,5,12,.66),rgba(27,6,15,.25) 55%,rgba(12,5,10,.08)),linear-gradient(0deg,rgba(14,5,12,.88),transparent 65%)}
.hero-content{text-shadow:0 2px 18px #10050ccc}
.plan{background:radial-gradient(ellipse at top right,#54132938,transparent 70%),#191017;border-color:#873047;box-shadow:0 5px 0 #390c1d}
.plan.accent{background:linear-gradient(135deg,#2b1020,#471025);border-color:#b23a54}
.btn,.text-link,.topbar nav>a,footer .socials>a,.portrait-dialog .sns-icons a{background:linear-gradient(120deg,#1b1119,#30101e);border-color:#d74460;box-shadow:0 4px 0 #650e27,0 10px 24px #0003}
.btn:hover,.text-link:hover,footer .socials>a:hover{border-color:#ec647a;box-shadow:0 4px 0 #650e27,0 0 20px #ad213126}
.cast-list li{background:linear-gradient(145deg,#29131f,#100c11 65%);border-color:#713044;box-shadow:0 5px 0 #2a0b17,0 12px 26px #0004;padding:14px 14px 22px}
.portrait-open{border:1px solid #b64a60;padding:5px;box-shadow:0 0 0 3px #180b13,0 0 0 4px #652437}
.portrait-open img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:50% 25%;filter:brightness(1.025) contrast(1.025)}
.portrait-open:after{box-shadow:inset 0 -16px 22px #18081022}
.cast-list li>.portrait-name{display:flex;align-items:center;justify-content:center;min-height:48px;margin:20px 0 14px;padding:10px 2px;line-height:1.7;border-block-color:#6f2a40;background:transparent}
.cast-list .sns-icons{gap:10px;margin-top:14px}
.cast-list .sns-icons a{background:#25101c;border-color:#713047;color:#e9c6ce}
.rose-atmosphere{background:radial-gradient(ellipse at 98% 25%,#bd18351a,transparent 42%),radial-gradient(ellipse at 2% 80%,#a5133012,transparent 40%)}
.rose-atmosphere:before,.rose-atmosphere:after{background:radial-gradient(ellipse,#d623401b,transparent 70%)}
.rose-atmosphere i{--sway:18px;--petal-opacity:.58;animation-name:refined-petal;animation-duration:22s;background:linear-gradient(135deg,#df4860,#a31533 55%,#530d25);filter:none;box-shadow:inset 1px 1px 1px #ee738033}
.rose-atmosphere i:nth-child(1){left:3%;width:12px;height:19px;animation-duration:20s}
.rose-atmosphere i:nth-child(2){left:96%;width:9px;height:15px;animation-duration:26s}
.rose-atmosphere i:nth-child(3){left:36%;width:10px;height:16px;animation-duration:23s;--sway:-26px;--petal-opacity:.45}
.rose-atmosphere i:nth-child(4){left:91%;width:13px;height:20px;animation-duration:29s}
.rose-atmosphere i:nth-child(5){left:97%;width:15px;height:23px;animation-duration:21s;--sway:-20px}
.rose-atmosphere i:nth-child(6){left:2%;width:8px;height:13px;animation-duration:27s}
.rose-atmosphere i:nth-child(7){left:24%;width:11px;height:17px;animation-duration:25s;--petal-opacity:.46}
.rose-atmosphere i:nth-child(8){left:65%;width:12px;height:18px;animation-duration:28s;--petal-opacity:.46}
.rose-atmosphere i:nth-child(9){left:51%;width:10px;height:16px;animation-duration:24s;--petal-opacity:.42}
.rose-atmosphere i:nth-child(10){left:77%;width:11px;height:18px;animation-duration:22s;--petal-opacity:.46}
.rose-atmosphere i:nth-child(11){left:5%;width:10px;height:16px;animation-duration:26s}
.rose-atmosphere i:nth-child(12){left:94%;width:12px;height:19px;animation-duration:23s;--sway:-18px}
@keyframes refined-petal{0%{transform:translate3d(0,-35px,0) rotate(-25deg);opacity:0}10%{opacity:var(--petal-opacity)}50%{transform:translate3d(var(--sway),50vh,0) rotate(130deg)}88%{opacity:var(--petal-opacity)}100%{transform:translate3d(0,110vh,0) rotate(310deg);opacity:0}}
@media(max-width:700px){.cast-list li{padding:10px 9px 18px}.portrait-open{padding:4px}.cast-list li>.portrait-name{min-height:40px;margin:16px 0 12px;padding:8px 1px}.hero .shade{background:linear-gradient(90deg,#16070c80,#1b08102b 75%),linear-gradient(0deg,#110710e6,transparent 75%)}}
@media(prefers-reduced-motion:reduce){.rose-atmosphere i{display:none}.rose-atmosphere:before,.rose-atmosphere:after{animation:none}}
@media(min-width:701px){.hero .hero-content{top:max(26%,185px);bottom:23%;gap:24px}.hero .hero-message h1{font-size:clamp(44px,5vw,72px)}}
