
.study-label{position:fixed;z-index:20;bottom:12px;right:16px;padding:6px 10px;background:#101313aa;color:#d7cfb8;font:8px sans-serif;letter-spacing:2px;pointer-events:none}
.reading-progress{display:none}
.hero{overflow:hidden;perspective:1200px}.hero-image{transform:scale(1.08);will-change:transform;transition:transform .6s ease-out}.hero-content{position:relative;z-index:2}.hero h1{max-width:950px}
.button,.world-tabs button,.world-image-button,.portrait{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.portrait{cursor:zoom-in;overflow:hidden}.portrait img{transition:transform .5s ease}.portrait:focus-visible,.button:focus-visible,.world-image-button:focus-visible{outline:2px solid #c6b88b;outline-offset:5px}
@media(hover:hover) and (pointer:fine){.button:hover{transform:translateY(-3px) scale(1.025);box-shadow:0 10px 28px #0003}.world-tabs button:hover{transform:translateY(-2px)}.world-image-button:hover img,.portrait:hover img{transform:scale(1.045)}.portrait:hover{box-shadow:0 12px 30px #0005}}
@media(prefers-reduced-motion:reduce){.hero-image{transform:none!important;transition:none}.button,.world-tabs button,.portrait,.portrait img{transition:none;transform:none!important}}

.festival-recognition{display:flex;flex-direction:column;align-items:center;text-align:center;padding:65px 20px 55px;border-top:1px solid #ffffff15}.festival-recognition img{width:250px;max-width:70vw;height:auto;filter:invert(1);opacity:.85}.festival-recognition p{font-size:18px;margin:22px 0 0}.festival-recognition span{display:block;font-size:11px;color:#bcb8ad;letter-spacing:1px;margin-top:10px}

/* One entrance animation owns the image transform, including its final state. */
.hero-image{transition:none;transform:scale(1.015);animation:hero-settle 2.8s cubic-bezier(.2,.65,.3,1) both}
@keyframes hero-settle{from{transform:scale(1.06);opacity:1}to{transform:scale(1.015);opacity:1}}
@media(prefers-reduced-motion:reduce){.hero-image{animation:none!important;transform:none!important}}
