/* Illustrated thorn letterforms, rose atmosphere and portrait frames. */
.title-art .thorn-lettering{width:100%;height:auto;display:block;overflow:visible}.title-art{width:fit-content;max-width:100%;margin-inline:auto}.hero h1.title-art{width:min(100%,510px);margin-left:0;padding:0 0 9px}.hero h1.title-art:after,.story-copy h2.title-art:after,.section-head h2.title-art:after,.access-section h2.title-art:after,.recruit-section h2.title-art:after,.page-banner h1.title-art:after,.title-h2.title-art:after{display:none}.story-copy h2.title-art{width:min(100%,370px);padding:0}.section-head h2.title-art,.recruit-section h2.title-art,.access-section h2.title-art{width:min(100%,530px);padding:0}.page-banner h1.title-art{width:min(100%,520px);padding:0}.title-h2.title-art{width:170px;padding:0}.hero-sub{margin-top:18px}.rose-atmosphere{position:fixed;inset:0;z-index:2;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 98% 25%,#c6243c0c,transparent 42%),radial-gradient(ellipse at 5% 80%,#e0273609,transparent 40%)}.rose-atmosphere i{position:absolute;top:-35px;left:9%;width:10px;height:17px;border-radius:2px 90% 8px 90%;background:linear-gradient(135deg,#e43d55,#670b24);opacity:0;animation:petal-fall 22s linear infinite;filter:drop-shadow(0 0 4px #a20e3240)}.rose-atmosphere i:nth-child(2){left:27%;animation-delay:-7s;animation-duration:28s;width:7px;height:12px}.rose-atmosphere i:nth-child(3){left:48%;animation-delay:-16s;animation-duration:26s}.rose-atmosphere i:nth-child(4){left:68%;animation-delay:-3s;animation-duration:31s;width:8px;height:13px}.rose-atmosphere i:nth-child(5){left:83%;animation-delay:-14s;animation-duration:24s}.rose-atmosphere i:nth-child(6){left:95%;animation-delay:-20s;animation-duration:30s;width:6px;height:10px}@keyframes petal-fall{0%{transform:translate3d(0,-30px,0) rotate(0deg);opacity:0}12%{opacity:.4}85%{opacity:.28}100%{transform:translate3d(-55px,110vh,0) rotate(390deg);opacity:0}}.ribbon,.cast-section,.page-banner,footer,.recruit-section{position:relative;border-block-color:transparent}.ribbon:after,.cast-section:before,.page-banner:after,footer:before,.recruit-section:before{content:'';position:absolute;top:0;left:0;right:0;height:35px;background:url('../img/thorn-lace.svg') center top/240px 40px repeat-x;pointer-events:none;opacity:.75}.ribbon:after,.page-banner:after{top:auto;bottom:-29px;z-index:1}.cast-section{padding-top:90px}.recruit-section:before{width:auto;margin:0;display:block}.cast-list>ul{gap:35px 28px}.cast-list li{padding:17px 17px 21px;border:1px solid #9e3048;border-radius:110px 110px 18px 18px;background:linear-gradient(120deg,#481729,#130c13 45%,#3c1126);box-shadow:0 7px 0 #390c1d,0 13px 35px #0007;overflow:visible}.portrait-open{position:relative;display:block;width:100%;padding:6px;background:#0e090e;border:2px solid #b65064;border-radius:100px 100px 10px 10px;box-shadow:0 0 0 3px #270c19,0 0 0 4px #7d2339,inset 0 0 18px #000;overflow:hidden;cursor:pointer}.portrait-open:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 25px #17050d66;border-radius:inherit;pointer-events:none}.portrait-open img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:95px 95px 5px 5px;transition:transform .6s}.portrait-open:hover img{transform:scale(1.045)}.cast-list li:before,.cast-list li:after{content:none;display:none}.cast-list li:before{left:-9px;transform:rotate(-18deg)}.cast-list li:after{right:-9px;transform:rotate(18deg)}.cast-list li>.portrait-name{justify-content:center;text-align:center;margin:20px 0 13px;padding:11px 5px;font-family:'Yu Mincho','Hiragino Mincho ProN',serif;letter-spacing:.05em;border-block:1px solid #a5445c;background:linear-gradient(90deg,transparent,#72213a77,transparent)}.cast-list li>.portrait-name:before{display:none}.cast-list .sns-icons{margin-top:13px}.btn,.text-link,.bottom-nav a,.socials>a,.tab a,.portrait-open{transition:transform .18s,box-shadow .18s,border-color .18s,background .18s}.btn:active,.text-link:active,.bottom-nav a:active,.socials>a:active,.tab a:active,.portrait-open:active{transform:translateY(3px) scale(.98);border-color:#ff8799;box-shadow:0 0 19px #f12a4b55}.portrait-dialog{width:min(90vw,720px);padding:50px 25px 25px;border:1px solid #df5b74;border-radius:20px;background:linear-gradient(145deg,#391224,#100b12);box-shadow:0 0 70px #8f123766}.portrait-dialog::backdrop{background:#070309e8;backdrop-filter:blur(7px)}.portrait-dialog .portrait-close{position:absolute;right:17px;top:15px;border:1px solid #954057;background:#29101f;border-radius:20px;padding:8px 15px;font-size:11px}.portrait-dialog .profile-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:25px;align-items:center}.portrait-dialog .profile-grid>img{width:100%;max-height:70svh;object-fit:contain;border-radius:80px 80px 12px 12px;border:1px solid #a74b62}.portrait-dialog h2{text-align:center;font-size:26px;margin:20px 0}.portrait-dialog .profile-label{font:9px Georgia;letter-spacing:.2em;color:#ea8b9c;text-align:center}.portrait-dialog .sns-icons{display:flex;flex-wrap:wrap}.portrait-dialog .sns-icons a{width:auto;height:auto;padding:12px 16px;border-radius:8px;font-size:12px;background:#51122a;border:1px solid #bb405b}.portrait-dialog .sns-icons svg{display:none}.profile-note{text-align:center;font-size:11px;color:#c99da9;line-height:2;margin-top:18px}@media(max-width:700px){.hero h1.title-art{width:min(100%,310px)}.story-copy h2.title-art{width:min(100%,300px)}.section-head h2.title-art,.recruit-section h2.title-art,.access-section h2.title-art{width:min(100%,370px)}.page-banner h1.title-art{width:min(100%,370px)}.cast-list>ul{gap:29px 16px}.cast-list li{padding:11px 10px 17px;border-radius:85px 85px 15px 15px}.portrait-open{padding:4px}.cast-list li:before,.cast-list li:after{width:25px;height:25px;top:43px}.cast-list li>.portrait-name{margin-top:16px;padding:9px 2px;font-size:12px}.portrait-dialog{padding:45px 18px 22px}.portrait-dialog .profile-grid{grid-template-columns:1fr;gap:5px}.portrait-dialog .profile-grid>img{max-height:48svh}.portrait-dialog h2{font-size:23px;margin:13px 0}.portrait-dialog .profile-label{margin-top:15px}.rose-atmosphere i{animation-duration:30s}}@media(prefers-reduced-motion:reduce){.rose-atmosphere{display:none}.portrait-open img,.btn,.text-link,.bottom-nav a,.socials>a,.tab a{transition:none}.btn:active,.text-link:active,.bottom-nav a:active,.socials>a:active,.tab a:active,.portrait-open:active{transform:none}}
.hero-content{width:min(84%,620px)}@media(max-width:700px){.hero-content{width:auto}}
/* Keep the atmosphere visible above page imagery, with no blocked taps. */
.rose-atmosphere{z-index:8;display:block;background:radial-gradient(ellipse at 97% 20%,#e51b3e30,transparent 48%),radial-gradient(ellipse at 2% 77%,#c9183a24,transparent 45%)}
.rose-atmosphere:before,.rose-atmosphere:after{content:'';position:absolute;width:220px;height:280px;border-radius:50%;background:radial-gradient(ellipse,#ec224b22,transparent 70%);pointer-events:none;animation:rose-glow 9s ease-in-out infinite alternate}.rose-atmosphere:before{left:-110px;top:18%}.rose-atmosphere:after{right:-110px;bottom:15%;animation-delay:-4s}
.rose-atmosphere i{width:16px;height:25px;top:-32px;background:linear-gradient(135deg,#ff6379 0%,#d72749 45%,#7d102b 100%);box-shadow:inset 1px 1px 2px #ff8d9655;filter:drop-shadow(0 2px 3px #4b081a80);animation:visible-petal 17s linear infinite;animation-delay:-3s}
.rose-atmosphere i:nth-child(2){width:12px;height:19px;animation-duration:21s;animation-delay:-12s}.rose-atmosphere i:nth-child(3){width:15px;height:23px;animation-duration:19s;animation-delay:-7s}.rose-atmosphere i:nth-child(4){width:13px;height:20px;animation-duration:23s;animation-delay:-17s}.rose-atmosphere i:nth-child(5){width:17px;height:25px;animation-duration:18s;animation-delay:-11s}.rose-atmosphere i:nth-child(6){width:11px;height:18px;animation-duration:22s;animation-delay:-5s}
@keyframes visible-petal{0%{transform:translate3d(18px,-35px,0) rotate(-25deg);opacity:0}8%{opacity:.8}45%{transform:translate3d(-14px,47vh,0) rotate(160deg);opacity:.7}90%{opacity:.75}100%{transform:translate3d(35px,110vh,0) rotate(340deg);opacity:0}}
@keyframes rose-glow{from{opacity:.55;transform:scale(.9)}to{opacity:1;transform:scale(1.2)}}
@media(prefers-reduced-motion:reduce){.rose-atmosphere{display:block}.rose-atmosphere:before,.rose-atmosphere:after{animation:none}.rose-atmosphere i{animation:none;opacity:.65;top:20%;transform:rotate(35deg)}.rose-atmosphere i:nth-child(2){top:65%;transform:rotate(110deg)}.rose-atmosphere i:nth-child(3){top:38%;transform:rotate(60deg)}.rose-atmosphere i:nth-child(4){top:82%;transform:rotate(-35deg)}.rose-atmosphere i:nth-child(5){top:55%;transform:rotate(120deg)}.rose-atmosphere i:nth-child(6){top:13%;transform:rotate(20deg)}}
/* A steadier fall with staggered positions, without crowding the copy. */
.rose-atmosphere i{animation-duration:15s;animation-delay:-2s}
.rose-atmosphere i:nth-child(2){animation-duration:18s;animation-delay:-9s}.rose-atmosphere i:nth-child(3){animation-duration:17s;animation-delay:-5s}.rose-atmosphere i:nth-child(4){animation-duration:20s;animation-delay:-13s}.rose-atmosphere i:nth-child(5){animation-duration:16s;animation-delay:-7s}.rose-atmosphere i:nth-child(6){animation-duration:19s;animation-delay:-15s}
.rose-atmosphere i:nth-child(7){left:17%;width:12px;height:19px;animation-duration:17s;animation-delay:-11s}.rose-atmosphere i:nth-child(8){left:37%;width:14px;height:22px;animation-duration:21s;animation-delay:-3s}.rose-atmosphere i:nth-child(9){left:58%;width:11px;height:18px;animation-duration:16s;animation-delay:-13s}.rose-atmosphere i:nth-child(10){left:75%;width:13px;height:20px;animation-duration:18s;animation-delay:-5s}.rose-atmosphere i:nth-child(11){left:5%;width:10px;height:17px;animation-duration:20s;animation-delay:-16s}.rose-atmosphere i:nth-child(12){left:91%;width:14px;height:22px;animation-duration:17s;animation-delay:-8s}
@media(prefers-reduced-motion:reduce){.rose-atmosphere i{animation:none}.rose-atmosphere i:nth-child(n+7){display:none}}
/* TOP and the full cast list share the same portrait components. */
.home-cast-preview .cast-list>ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0;margin:0;gap:24px}
.home-cast-preview .cast-list li{min-width:0;list-style:none}
.home-cast-preview .portrait-name{display:flex;align-items:center;font-weight:700;font-size:15px;line-height:1.7}
.home-cast-preview .sns-icons{display:flex;justify-content:center;gap:10px}
.home-cast-preview .sns-icons a{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #ae354f;background:#500e26;border-radius:50%;color:#ffced7}
.home-cast-preview .sns-icons svg{width:15px;height:15px;max-width:100%;display:block}
@media(max-width:900px){.home-cast-preview .cast-list>ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 20px}}
@media(max-width:700px){.home-cast-preview .cast-list>ul{gap:29px 16px}.home-cast-preview .portrait-name{font-size:12px}.home-cast-preview .sns-icons{gap:7px}.home-cast-preview .sns-icons a{height:29px;width:29px}.home-cast-preview .sns-icons svg{width:13px;height:13px}}
