/* Quiet motion: clarity, depth and feedback without blocking navigation. */
.scroll-progress{position:fixed;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,#c5aa7e,#8daba0);transform:scaleX(0);transform-origin:left;z-index:100;pointer-events:none}.header-scrolled{background:rgba(248,247,243,.95);box-shadow:0 12px 40px #071e2a14;border-color:#fff}header{transition:background .35s ease,box-shadow .35s ease,border-color .35s ease}.button,.nav-cta,.detail-trigger{position:relative;overflow:hidden;isolation:isolate}.button:active,.nav-cta:active{transform:translateY(1px) scale(.975)}.button>span:last-child,.text-link>span:last-child{transition:transform .3s cubic-bezier(.2,.7,.2,1)}.button:hover>span:last-child,.text-link:hover>span:last-child{transform:translate(3px,-2px)}.click-wave{position:absolute;left:var(--wave-x);top:var(--wave-y);width:var(--wave-size);height:var(--wave-size);border-radius:50%;background:currentColor;opacity:0;transform:translate(-50%,-50%) scale(0);animation:click-wave .55s ease-out;pointer-events:none;z-index:-1}.dark .click-wave{background:white}@keyframes click-wave{0%{opacity:.14;transform:translate(-50%,-50%) scale(0)}100%{opacity:0;transform:translate(-50%,-50%) scale(1)}}
.reveal{transition:opacity .85s cubic-bezier(.2,.7,.2,1),translate .85s cubic-bezier(.2,.7,.2,1),filter .85s ease;transition-delay:var(--reveal-delay,0ms)}.reveal-pending{opacity:0;translate:0 26px;transform:none;filter:blur(8px)}.region.reveal,.district-card.reveal{transition-property:opacity,translate,filter,transform,box-shadow,background;transition-duration:.85s,.85s,.85s,.3s,.3s,.3s}.hero-content,.valencia-hero-copy,.about-hero>.wrap{animation:crisp-arrival 1.05s cubic-bezier(.2,.7,.2,1) both}.hero-img,.valencia-hero>img{animation:image-settle 1.7s cubic-bezier(.2,.7,.2,1) both}@keyframes crisp-arrival{from{opacity:0;translate:0 18px;filter:blur(9px)}to{opacity:1;translate:0 0;filter:blur(0)}}@keyframes image-settle{from{scale:1.045;filter:blur(3px)}to{scale:1;filter:blur(0)}}
.detail-trigger{display:inline-flex;gap:20px;align-items:center;justify-content:space-between;background:transparent;border:1px solid #cbd4c6;border-radius:100px;padding:11px 15px;color:var(--navy);font-size:11px;line-height:1.4;transition:background .25s,border-color .25s,transform .25s;max-width:100%;text-align:left}.detail-trigger>span:last-child{display:grid;place-items:center;width:23px;height:23px;border:1px solid #bec9b7;border-radius:50%;font-size:17px;line-height:1;flex-shrink:0;transition:rotate .35s}.detail-trigger:hover{background:#e8ece2;border-color:#acbba3}.detail-trigger:hover>span:last-child{rotate:90deg}.detail-trigger:active{transform:scale(.97)}.steps .detail-trigger,.partner-services .detail-trigger{color:#f7f5ef;border-color:#ffffff38;margin-top:23px}.steps .detail-trigger>span:last-child,.partner-services .detail-trigger>span:last-child{border-color:#ffffff45}.steps .detail-trigger:hover,.partner-services .detail-trigger:hover{background:#ffffff12;border-color:#ffffff70}.newbuild-copy>.detail-trigger{margin:8px 0 0}.valencia-role>.detail-trigger{display:flex;width:max-content;margin:25px auto 0}.valencia-role>.text-link{margin-top:20px}.district-card,.region{position:relative;isolation:isolate}.district-card{overflow:hidden}.region:before,.district-card:before{content:'';position:absolute;inset:0;background:radial-gradient(400px circle at var(--pointer-x,50%) var(--pointer-y,50%),#fff3,transparent 65%);opacity:0;transition:opacity .3s;pointer-events:none;z-index:3;border-radius:inherit}.region:hover:before,.district-card:hover:before{opacity:.65}.image-panel img{transition:scale .9s cubic-bezier(.2,.7,.2,1)}.image-panel:hover img{scale:1.035}.district-card:active{transform:scale(.985)}
.experience-dialog{padding:0;border:1px solid #ffffffa0;border-radius:32px;width:min(680px,calc(100% - 40px));max-width:680px;max-height:calc(100svh - 48px);background:#fafaf5;color:var(--navy);box-shadow:0 35px 120px #0005;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c8cebf transparent}.experience-dialog::backdrop{background:#06192380;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.experience-dialog[open]{animation:panel-open .5s cubic-bezier(.16,1,.3,1) both}.experience-dialog[open]::backdrop{animation:backdrop-open .35s ease both}.experience-dialog.is-closing{animation:panel-close .2s ease both}.experience-dialog.is-closing::backdrop{animation:backdrop-close .2s ease both}.story-surface{padding:48px;position:relative;isolation:isolate;overflow:hidden;min-height:300px}.story-close{position:absolute;right:20px;top:20px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#e9ede4;border:1px solid #dfe4d8;font-size:25px;line-height:1;color:var(--navy);transition:background .2s,rotate .3s;z-index:2}.story-close:hover{background:#dce5d3;rotate:90deg}.story-orb{position:absolute;right:-130px;top:-150px;width:350px;height:350px;filter:blur(60px);border-radius:50%;background:#d8e5cf8c;z-index:-1;pointer-events:none}.story-label{display:block;color:#8e7854;font-size:9px;letter-spacing:1.8px;font-weight:500;margin:0 40px 25px 0}.experience-dialog h2{font-size:clamp(34px,4vw,49px);line-height:1.12;letter-spacing:-1.3px;max-width:510px;margin-bottom:20px}.experience-dialog h2:focus{outline:none}.experience-dialog .story-lead{font-size:14px;color:#63716d;margin-bottom:28px;max-width:520px}.story-point{display:grid;grid-template-columns:30px 1fr;gap:15px;padding:17px 0;border-top:1px solid #e0e5d8}.story-number{font-size:10px;color:#8b7656;padding-top:3px}.story-point h3{font-size:14px;font-weight:500;margin:0 0 5px;line-height:1.5}.story-point p{font-size:12px;color:#65736e;margin:0;line-height:1.7}.story-footer{padding-top:25px;display:flex;gap:20px;align-items:center;flex-wrap:wrap}.story-footer .button{font-size:12px;gap:24px}.story-footer p{font-size:10px;color:#75816e;margin:0;line-height:1.7}.experience-dialog[open] .story-point{animation:story-in .55s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(100ms + var(--point-index,0)*65ms)}@keyframes panel-open{from{opacity:0;transform:translateY(24px) scale(.94);filter:blur(5px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes panel-close{to{opacity:0;transform:translateY(12px) scale(.97);filter:blur(3px)}}@keyframes backdrop-open{from{opacity:0}to{opacity:1}}@keyframes backdrop-close{to{opacity:0}}@keyframes story-in{from{opacity:0;translate:0 10px;filter:blur(3px)}to{opacity:1;translate:0 0;filter:blur(0)}}
#privacy-dialog{border-radius:28px}#privacy-dialog[open]{animation:panel-open .4s cubic-bezier(.16,1,.3,1) both}#privacy-dialog::backdrop{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.leaflet-popup-content-wrapper{animation:story-in .3s ease both}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.region:hover,.district-card:hover{transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(-5px)}}
@media(max-width:760px){.experience-dialog{width:calc(100% - 24px);margin:auto;border-radius:26px;max-height:calc(100svh - 32px)}.story-surface{padding:45px 25px 28px}.story-close{right:15px;top:15px;width:33px;height:33px}.experience-dialog h2{font-size:36px}.story-footer{gap:15px}.story-footer .button{padding:15px 20px}.story-point{gap:10px}.detail-trigger{font-size:10px}.reveal-pending{translate:0 18px;filter:blur(5px)}}
@media(prefers-reduced-motion:reduce){.reveal,.reveal-pending{opacity:1;translate:none;transform:none;filter:none;transition:none!important}.hero-content,.valencia-hero-copy,.about-hero>.wrap,.hero-img,.valencia-hero>img,.experience-dialog,.experience-dialog::backdrop,.story-point,.leaflet-popup-content-wrapper,#privacy-dialog{animation:none!important;filter:none;scale:1;translate:none}.click-wave{display:none}.button,.nav-cta,.detail-trigger,.story-close,.detail-trigger>span:last-child,.image-panel img,.region,.district-card{transition:none!important}.region:hover,.district-card:hover,.button:active,.nav-cta:active,.detail-trigger:active,.district-card:active{transform:none}.image-panel:hover img{scale:1}.story-close:hover,.detail-trigger:hover>span:last-child{rotate:none}.experience-dialog::backdrop,#privacy-dialog::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none}.experience-dialog.is-closing{opacity:1}}

/* Consistent line arrows across desktop and mobile. */
.region .destination-arrow-frame{display:grid;place-items:center;line-height:1;flex-shrink:0}
.destination-arrow{display:block;transition:transform .25s ease}
.region:hover .destination-arrow{transform:translate(1px,-1px)}
@media(prefers-reduced-motion:reduce){.destination-arrow{transition:none}.region:hover .destination-arrow{transform:none}}

/* One consistent vector icon language, including phone and map controls. */
.ui-icon{display:inline-block;vertical-align:middle;flex-shrink:0;width:18px;height:18px;overflow:visible;pointer-events:none}
.menu{align-items:center;gap:9px}.menu .ui-icon{width:17px;height:17px;margin-left:5px}
.close,.story-close{display:inline-grid;place-items:center}.close .ui-icon,.story-close .ui-icon{width:17px;height:17px}
.about-back>.ui-icon{margin-right:6px;width:16px;height:16px}
.detail-trigger .ui-icon{width:13px;height:13px}.text-link>.ui-icon,.district-card b>.ui-icon{width:15px;height:15px}
.map-actions .ui-icon{width:15px;height:15px}.leaflet-control-zoom a{display:grid!important;place-items:center}.leaflet-control-zoom .ui-icon{width:18px;height:18px}
.leaflet-container a.leaflet-popup-close-button{display:grid;place-items:center;width:28px;height:28px}.leaflet-popup-close-button .ui-icon{width:13px;height:13px}
.explorer-heading>a>.ui-icon,.photo-credit .ui-icon,.hero-bottom .ui-icon{width:13px;height:13px}.map-error .ui-icon{width:15px;height:15px}
