/* One contained landscape stage: title/canvas coordinates always use the true viewport. */
.hero.has-moya-sequence{position:relative;display:block!important;height:100svh!important;min-height:100svh!important;overflow:hidden;padding:0!important;isolation:isolate;background:#09181d}
.has-moya-sequence .hero-water{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;aspect-ratio:auto!important;overflow:hidden}
.has-moya-sequence .hero-water::before{content:"";display:block!important;position:absolute;inset:-5%;background:url('../video/hero-poster.webp') center/cover;filter:blur(28px) brightness(.38);transform:scale(1.05)}
.has-moya-sequence .hero-video{object-fit:contain!important;object-position:center!important}
.has-moya-sequence .hero-sky{z-index:2}
.has-moya-sequence .hero-pause{display:none!important}
.sequence-plaza{position:absolute;inset:0;z-index:3;visibility:hidden;background:#09181d;overflow:hidden}
.sequence-plaza::before{content:"";position:absolute;inset:-5%;background:url('../plaza/plaza-cinematic.png') center/cover;filter:blur(26px) brightness(.42);transform:scale(1.07)}
.sequence-plaza.is-visible{visibility:visible}
.sequence-plaza img{position:relative;width:100%;height:100%;object-fit:contain;object-position:center;display:block}
.sequence-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none}
.sequence-controls{position:absolute;z-index:6;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));display:flex;align-items:center;gap:.4rem}
.sequence-controls button{color:#f4efe2;background:#07171aba;border:1px solid #d7e8dc60;padding:.55rem .8rem;border-radius:2rem;font:500 .65rem var(--sans,Arial,sans-serif);cursor:pointer;backdrop-filter:blur(8px)}
.sequence-controls button[hidden]{display:none!important}
.sequence-controls button:focus-visible{outline:3px solid #62d6c1;outline-offset:3px}
@media(max-width:640px){.sequence-controls{bottom:1rem;right:.8rem}.sequence-controls button{font-size:.65rem;padding:.6rem .85rem}}
@media(prefers-reduced-motion:reduce){.sequence-canvas{display:none}.sequence-controls button{backdrop-filter:none}}

.sequence-plaza-title{position:absolute;z-index:1;text-align:center;color:#fff4d7;pointer-events:none;will-change:transform;text-shadow:0 1px 3px #17333a99,0 2px 12px #17333a66;line-height:1.05}
.sequence-plaza-title strong{display:block;font:700 var(--plaza-title-size)/1 Georgia,serif;letter-spacing:.06em}
.sequence-plaza-title span{display:block;font:500 var(--plaza-subtitle-size)/1.3 Georgia,serif;letter-spacing:.025em;margin-top:.15em;white-space:nowrap}

.plaza-clouds{position:absolute;z-index:0;pointer-events:none}.sequence-plaza-title{z-index:1}
.church-scene{position:absolute;inset:0;pointer-events:none;z-index:2}.church-scene[hidden]{display:none}.church-portal{position:absolute;transform-style:preserve-3d}.church-depth{position:absolute;z-index:0;clip-path:polygon(0 47%,5% 33%,14% 22%,26% 11%,39% 4%,50% 0,61% 4%,74% 11%,86% 22%,95% 33%,100% 47%,100% 100%,0 100%);background:radial-gradient(ellipse at 50% 80%,#67411d 0,#20170e 28%,#07090b 70%);box-shadow:inset 0 0 10px #000}.church-leaf{position:absolute;top:0;width:50%;height:100%;background-image:url('../plaza/plaza-cinematic.png');backface-visibility:visible;will-change:transform}.church-leaf.left{left:0;transform-origin:left center;clip-path:polygon(0 47%,10% 33%,28% 22%,52% 11%,78% 4%,100% 0,100% 100%,0 100%)}.church-leaf.right{right:0;transform-origin:right center;clip-path:polygon(0 0,22% 4%,48% 11%,72% 22%,90% 33%,100% 47%,100% 100%,0 100%)}.saint-stage{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}

/* Edge-only correction: same complete hinged leaves, curve follows photographed wood. */
.church-leaf{width:calc(50% + .25px)}

/* Phones: retain the entire landscape, without a screenful of empty ambience. */
@media(max-width:640px) and (orientation:portrait){
 .hero.has-moya-sequence{height:clamp(340px,90vw,520px)!important;min-height:0!important}
}
@media(pointer:coarse),(max-width:900px){
 .sequence-controls{right:max(.5rem,env(safe-area-inset-right));bottom:max(.4rem,env(safe-area-inset-bottom));gap:.35rem;max-width:calc(100% - 1rem);flex-wrap:wrap;justify-content:flex-end}
 .sequence-controls button{min-height:44px;min-width:44px;padding:.65rem .85rem;font-size:.75rem;touch-action:manipulation}
}
@media(max-width:950px) and (orientation:landscape) and (max-height:500px){
 .hero.has-moya-sequence{height:100svh!important;min-height:0!important}
 .sequence-controls button{padding:.5rem .75rem}
}

/* Stable first paint: identical contain geometry before/after module startup. */
.has-moya-sequence .hero-still{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:contain;object-position:center;pointer-events:none}
.has-moya-sequence .hero-video{opacity:0;transition:opacity .18s linear}
.has-moya-sequence .hero-video.has-decoded-frame{opacity:1}
@media(prefers-reduced-motion:reduce){.has-moya-sequence .hero-video{transition:none}}

.fountain-water{position:absolute;z-index:1;pointer-events:none;overflow:hidden}
@media(prefers-reduced-motion:reduce){.fountain-water{display:none!important}}

.mobile-scene-nav{display:none}
.moya-news{padding:4rem var(--gutter);scroll-margin-top:6rem}
.moya-news h2{font:400 clamp(2rem,5vw,3.5rem)/1.1 var(--serif);margin:0 0 1rem}
.moya-news p{max-width:42rem;color:var(--muted);margin:0}
@media(max-width:640px),(max-width:950px) and (orientation:landscape) and (max-height:500px){
 .mobile-scene-nav{position:relative;z-index:7;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;height:72px;margin-bottom:-72px;padding:12px max(.5rem,env(safe-area-inset-right)) 12px max(.5rem,env(safe-area-inset-left));align-items:center}
 .mobile-scene-nav a{display:flex;align-items:center;justify-content:center;min-height:44px;min-width:0;border:1px solid #90b7ae66;border-radius:12px;background:#0a2528e8;color:#f4efe2;font:500 clamp(.7rem,2.7vw,.82rem)/1.15 var(--sans);text-decoration:none;touch-action:manipulation}
 .mobile-scene-nav a:focus-visible{outline:3px solid #62d6c1;outline-offset:2px}
 .mobile-scene-nav a:active{background:#1b5555}
 #memoria,#constelacion,#fiestas,#noticias{scroll-margin-top:1rem}
}
@media(max-width:950px) and (orientation:landscape) and (max-height:500px){
 .mobile-scene-nav{margin-bottom:0;background:#09181d}
 .hero.has-moya-sequence{height:calc(100svh - 72px)!important}
}

/* Lower strip contains only supplied place names; duplicate is visual-only. */
.places-ticker{position:absolute;bottom:0;left:0;right:0;z-index:6;height:48px;overflow:hidden;padding-right:56px;background:#081d20dc;color:#f4efe2;mask-image:linear-gradient(90deg,transparent,#000 12px,#000 calc(100% - 56px),transparent calc(100% - 50px))}
.places-track{display:flex;width:max-content;height:100%;animation:places-scroll 65s linear infinite}
.places-track ul{display:flex;align-items:center;flex:none;list-style:none;margin:0;padding:0}
.places-track li{white-space:nowrap;padding-right:2.3rem;font:500 .8rem/1.3 var(--sans)}
@keyframes places-scroll{to{transform:translateX(-50%)}}
.places-ticker:hover .places-track,.places-ticker:focus-within .places-track,.hero[data-motion-paused="true"] .places-track{animation-play-state:paused}
.places-ticker:focus-visible{outline:2px solid #62d6c1;outline-offset:-3px}
.sequence-controls{bottom:2px!important;right:4px!important;gap:0}
.sequence-controls button{font-size:0!important;min-height:44px;min-width:44px;width:44px;padding:0!important;border:0;background:#102e31}
.sequence-controls .sequence-pause-icon::before{content:"";display:block;width:8px;height:13px;border-left:2px solid currentColor;border-right:2px solid currentColor;margin:auto}
.sequence-controls .sequence-pause-icon[aria-pressed="true"]::before{width:0;height:0;border:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:10px solid currentColor}
.sequence-controls button:not(.sequence-pause-icon){display:none!important}
@media(prefers-reduced-motion:reduce){
 .places-ticker{position:relative;height:auto;padding:1rem;mask-image:none;overflow:visible}
 .places-track{animation:none;display:block;width:auto}
 .places-track ul{flex-wrap:wrap;gap:.6rem 1rem}
 .places-track li{white-space:normal;padding:0}
 .places-track ul[aria-hidden]{display:none}
 .sequence-controls button:not(.sequence-pause-icon):not([hidden]){display:block!important}
 .sequence-next-icon::before{content:"→";font-size:22px}
 .sequence-replay-icon::before{content:"↶";font-size:22px}
 .sequence-saint-icon::before{content:"◇";font-size:22px}
}

/* Deliberate portrait composition: safe controls, sharp expanded scenes, no blur bars. */
.portrait-frame{display:none}
@media(max-width:900px) and (orientation:portrait){
 .hero.has-moya-sequence{height:100svh!important;min-height:100svh!important;background:linear-gradient(#53b7eb 0 55%,#575e39 80%,#0c3438)}
 .mobile-scene-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:relative;z-index:7;height:72px;margin-bottom:-72px;padding:calc(10px + env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) 10px max(8px,env(safe-area-inset-left));gap:5px;background:linear-gradient(#072a35e8,#072a3500)}
 .mobile-scene-nav a{display:flex;align-items:center;justify-content:center;min-height:44px;min-width:0;border:1px solid #d2f4ee66;border-radius:12px;background:#0a2528d9;color:#fff7e6;font:500 clamp(.7rem,2.6vw,.95rem)/1.15 var(--sans);text-decoration:none}
 .has-moya-sequence .hero-water,.sequence-plaza>img,.plaza-clouds,.fountain-water,.sequence-plaza::before{display:none!important}
 .sequence-plaza{background:linear-gradient(#079ee4,#54b8ec 60%,#bda585 80%)}
 .portrait-frame{display:block;position:absolute;inset:72px 0 56px;overflow:hidden;pointer-events:none}
 .portrait-frame img,.portrait-frame canvas{position:absolute;left:0;max-width:none;object-fit:fill;display:block}
 .portrait-river{z-index:1}.portrait-town{z-index:0}
 .places-ticker{height:calc(56px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#082a2ee8}
 .places-track li{font-size:.78rem}.sequence-controls{bottom:max(6px,env(safe-area-inset-bottom))!important;right:max(6px,env(safe-area-inset-right))!important}
 .sequence-plaza-title{z-index:1}
}
@media(max-width:900px) and (orientation:portrait){
 .portrait-river{background:url('../mobile/river-portrait.png') center/100% 100% no-repeat}
 .portrait-town{background:url('../mobile/plaza-portrait.png') center/100% 100% no-repeat}
 .portrait-frame img,.portrait-frame canvas{mask-image:linear-gradient(transparent,#000 22px,#000 calc(100% - 22px),transparent)}
}
@media(max-width:900px) and (orientation:portrait){
 .mobile-scene-nav{height:calc(72px + env(safe-area-inset-top));margin-bottom:calc(-72px - env(safe-area-inset-top))}
 .portrait-frame{top:calc(72px + env(safe-area-inset-top));bottom:calc(56px + env(safe-area-inset-bottom))}
 .portrait-river>img{width:100%;height:auto;top:calc((100svh - 128px - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 177.683315vw)*.70)}
}
