/* The script owns one opacity timeline and one uninterrupted zoom for each painting. */
.sacred-slideshow{position:relative;isolation:isolate;width:100%;aspect-ratio:1.72;overflow:hidden;z-index:-1;mask-image:linear-gradient(#000 78%,transparent 100%);-webkit-mask-image:linear-gradient(#000 78%,transparent 100%)}
body .masthead .sacred-slideshow .sacred-slide{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 58%;margin:0;border:0;border-radius:0;filter:brightness(1.06) saturate(.87);opacity:1;transform:scale(1.015);animation:none!important;transition:none!important;mask-image:none;-webkit-mask-image:none;will-change:transform,opacity}
.sacred-slideshow .sacred-next{z-index:2}
html.sacred-arriving body .masthead .sacred-slideshow .sacred-slide{opacity:0}
.sacred-slideshow::after{display:none!important}
@media(min-width:700px){.sacred-slideshow{aspect-ratio:2;max-height:600px}}
body:not(.theme-pop) .home-portal .chara-img{animation:portraitBreathe 5.5s ease-in-out var(--portrait-delay,0s) infinite}
@keyframes portraitBreathe{0%,100%{transform:translateY(3px) scale(1.015)}50%{transform:translateY(-7px) scale(1.055)}}
body:not(.theme-pop) .home-portal .chara-frame::before{content:"";position:absolute;inset:15% 5% 12%;pointer-events:none;border:0;border-radius:50%;background:radial-gradient(ellipse,#d8bb7730,transparent 70%);animation:portraitGlow 7s ease-in-out var(--portrait-delay,0s) infinite}
@keyframes portraitGlow{0%,100%{opacity:.25;transform:scale(.9)}50%{opacity:.7;transform:scale(1.08)}}
/* Keep controls steady while the portrait responds with depth and warm light. */
body:not(.theme-pop) .home-portal .portrait-answering .chara-frame{animation:portraitAnswer 1s cubic-bezier(.2,.8,.25,1) both;transform-origin:50% 75%}
@keyframes portraitAnswer{0%{transform:translateY(0) scale(1);filter:brightness(1)}22%{transform:translateY(-9px) scale(1.105);filter:brightness(1.18) drop-shadow(0 0 12px #d8bd8266)}65%{transform:translateY(-4px) scale(1.055);filter:brightness(1.08)}100%{transform:none;filter:brightness(1)}}
body:not(.theme-pop) .home-portal .portrait-answering .chara-frame::before{animation:portraitAnswerGlow 1s ease-out both}
@keyframes portraitAnswerGlow{0%{opacity:.3;transform:scale(.7)}35%{opacity:1;transform:scale(1.35)}100%{opacity:.25;transform:scale(1)}}
@media(hover:hover){body:not(.theme-pop) .home-portal .portal-stage:hover .chara-img{filter:brightness(1.1)}}
@media(prefers-reduced-motion:reduce){body:not(.theme-pop) .home-portal .portrait-answering .chara-frame,body:not(.theme-pop) .home-portal .portrait-answering .chara-frame::before{animation:none}body:not(.theme-pop) .home-portal .portrait-answering .chara-frame{filter:brightness(1.15)}}
