/* Phase G — one-piece sky overture + city structure admin/residential refinements. */
html.show-overture,html.show-overture body{overflow:hidden}
.city-overture{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;overflow:hidden;background:#061020;color:#e8edf4;isolation:isolate}
.city-overture .overture-sky{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:linear-gradient(180deg,#040a18 0%,#081832 38%,#102943 68%,#1a3b50 100%)}
.city-overture .sky-whole{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:1;transition:opacity .08s linear .08s}
.city-overture .overture-sky::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 82%,rgba(59,114,136,.15),transparent 45%),linear-gradient(180deg,transparent 45%,rgba(2,7,16,.25));z-index:3;pointer-events:none}
.city-overture .sky-piece{position:absolute;top:-2%;height:104%;width:53%;display:block;opacity:0;will-change:transform;transition:transform 1.48s cubic-bezier(.74,.02,.22,1),filter 1.25s ease,opacity .06s linear;transform:translate3d(0,0,0)}
.city-overture .sky-piece.left{left:-2%;clip-path:polygon(0 0,100% 0,97.2% 17%,100% 34%,96.8% 51%,100% 69%,96% 86%,100% 100%,0 100%)}
.city-overture .sky-piece.right{right:-2%;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,4% 86%,0 69%,3.2% 51%,0 34%,2.8% 17%)}
.city-overture.is-committed .sky-whole{opacity:0}
.city-overture.is-committed .sky-piece{opacity:1}
.city-overture.is-opening .sky-piece.left{transform:translate3d(-106%,0,0) rotate(-1.2deg);filter:brightness(.82) blur(.45px)}
.city-overture.is-opening .sky-piece.right{transform:translate3d(106%,0,0) rotate(1.2deg);filter:brightness(.82) blur(.45px)}
.city-overture .overture-content{position:relative;z-index:5;width:min(1060px,94vw);min-height:min(760px,96vh);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:34px 24px;text-align:center;transition:opacity .38s ease,transform .48s cubic-bezier(.2,.8,.2,1),filter .38s ease}
.city-overture .overture-kicker{font:500 10px/1.2 'IBM Plex Sans',sans-serif;letter-spacing:.34em;text-transform:uppercase;color:rgba(205,219,231,.68);margin-bottom:14px}
.city-overture .overture-title{margin:0;font:400 clamp(44px,7vw,86px)/.92 'Special Elite',serif;letter-spacing:.075em;color:#f1dfaa;text-shadow:0 2px 0 rgba(0,0,0,.22),0 0 34px rgba(229,201,124,.13)}
.city-overture .overture-canvas-wrap{position:relative;width:min(980px,94vw);height:clamp(245px,36vh,380px);margin:20px auto 12px;border-radius:24px;overflow:hidden;background:linear-gradient(180deg,rgba(2,8,18,.03),rgba(2,8,18,.26));-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.city-overture .overture-canvas-wrap::after{content:"";position:absolute;left:4%;right:4%;bottom:5%;height:1px;background:linear-gradient(90deg,transparent,rgba(226,205,143,.25),transparent);box-shadow:0 -20px 70px rgba(57,126,148,.15)}
#overtureCityCanvas{display:block;width:100%;height:100%}
.city-overture .overture-slogan{display:flex;flex-direction:column;gap:7px;margin:5px 0 0;max-width:700px;font:400 clamp(15px,1.75vw,20px)/1.55 'IBM Plex Serif',serif;color:rgba(226,231,237,.84)}
.city-overture .overture-slogan strong{font-weight:500;color:#f0d996}.city-overture .overture-slogan span{font-style:italic;color:rgba(207,216,226,.7)}
.city-overture .overture-enter{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-width:250px;margin-top:26px;padding:15px 25px;border:1px solid rgba(239,209,126,.65);border-radius:999px;background:linear-gradient(180deg,rgba(239,209,126,.14),rgba(6,17,30,.54));box-shadow:0 18px 55px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.08),0 0 0 8px rgba(240,205,110,.025);color:#f4dda0;font:600 12px/1 'IBM Plex Sans',sans-serif;letter-spacing:.19em;text-transform:uppercase;cursor:pointer;backdrop-filter:blur(10px);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background .22s ease}
.city-overture .overture-enter:hover{transform:translateY(-2px);border-color:#f0d27c;box-shadow:0 22px 65px rgba(0,0,0,.36),0 0 30px rgba(240,205,110,.1);background:linear-gradient(180deg,rgba(239,209,126,.2),rgba(9,24,39,.66))}
.city-overture .overture-enter:focus-visible{outline:2px solid #f0cd6e;outline-offset:5px}.city-overture .overture-enter i{font-style:normal;font-size:17px;transition:transform .24s ease}.city-overture .overture-enter:hover i{transform:translateX(4px)}
.city-overture.is-committed .overture-content{opacity:0;transform:translateY(12px) scale(.985);filter:blur(3px)}
.city-overture.is-opening{pointer-events:none}.city-overture.is-leaving{animation:phaseGOvertureFade .42s ease forwards}
@keyframes phaseGOvertureFade{to{opacity:0;visibility:hidden}}

/* Residential creation note */
.residential-policy-note{padding:12px 14px;border:1px solid #31415f;border-radius:8px;background:linear-gradient(180deg,#13223e,#101b33);color:#aebbd0;font-size:13px;line-height:1.55;margin:10px 0 16px}.residential-policy-note b{color:#f0cd6e}

@media(max-width:700px){
 .city-overture .overture-content{min-height:96vh;width:100%;padding:24px 13px}.city-overture .overture-kicker{font-size:8px;letter-spacing:.25em;margin-bottom:12px}.city-overture .overture-title{font-size:clamp(37px,11.5vw,56px);letter-spacing:.055em}.city-overture .overture-canvas-wrap{width:100vw;height:235px;margin:18px -13px 10px;border-radius:0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 2%,#000 98%,transparent);mask-image:linear-gradient(90deg,transparent,#000 2%,#000 98%,transparent)}.city-overture .overture-slogan{padding:0 13px;font-size:15px;gap:5px}.city-overture .overture-enter{margin-top:22px;min-width:226px;padding:14px 20px}.city-overture .sky-piece{width:55%}
}
@media(max-height:680px) and (min-width:701px){.city-overture .overture-content{min-height:100vh;padding:14px 22px}.city-overture .overture-canvas-wrap{height:220px;margin:12px auto 6px}.city-overture .overture-enter{margin-top:17px}.city-overture .overture-kicker{margin-bottom:8px}}
@media(prefers-reduced-motion:reduce){.city-overture .sky-piece,.city-overture .overture-content,.city-overture .overture-enter{transition-duration:.2s!important}.city-overture.is-leaving{animation-duration:.15s}}
