.city-hero{width:100%;margin:0}.city-hero__photo{aspect-ratio:2.1;background:var(--surface);width:100%;position:relative;overflow:hidden}.city-hero__frame{opacity:1;transition:opacity 1.2s ease-in-out;position:absolute;inset:0}.city-hero__frame--previous{z-index:0}.city-hero__frame--current{z-index:1}.city-hero__frame--next{z-index:2;opacity:0;pointer-events:none}.city-hero__image{object-fit:cover;object-position:var(--city-wide-x,var(--city-x)) var(--city-wide-y,var(--city-y));width:100%;height:100%;display:block;position:absolute;inset:0}.city-hero__photo:before{content:"";z-index:3;background:linear-gradient(to bottom, var(--overlay), transparent);pointer-events:none;position:absolute;inset:0 0 52%}.city-hero__control,.stack-hero__control{z-index:4;border-radius:var(--radius);background:var(--ground);color:var(--type);font:inherit;cursor:pointer;border:0;padding:8px 14px;font-size:.875rem;line-height:1.2;position:absolute}.city-hero__control{bottom:clamp(12px,1.6vw,24px);right:clamp(12px,1.6vw,24px)}@media (prefers-reduced-motion:reduce){.city-hero__frame{transition:none}}@media (width<=640px){.city-hero__photo{aspect-ratio:1.2}.city-hero__image{object-position:var(--city-narrow-x,var(--city-x)) var(--city-narrow-y,var(--city-y))}}.stack-hero{width:100%;min-height:32rem;color:var(--type);isolation:isolate;position:relative}.stack-hero__plates{position:absolute;inset:2rem 0 7rem}.stack-hero__layer{width:76%;color:var(--accent);transform:translateY(calc(-1 * var(--stage-offset)));align-items:center;gap:1rem;display:flex;position:absolute;bottom:20%;left:4%}.stack-hero__layer svg{flex:none;width:clamp(16rem,27vw,25rem);height:8rem;display:block;overflow:visible}.stack-hero__stage-label{border-top:1px solid var(--divider);min-width:clamp(10rem,13vw,14rem);font-family:var(--font-mono);letter-spacing:.14em;color:var(--muted);justify-content:space-between;gap:1rem;padding:.55rem .75rem;font-size:.72rem;display:inline-flex}.stack-hero__lockup{font-family:var(--font-display);letter-spacing:-.055em;white-space:nowrap;align-items:center;gap:.6rem;font-size:clamp(2.7rem,4vw,5rem);font-weight:700;display:flex;position:absolute;bottom:1rem;left:4%;right:0}.stack-hero__lockup>svg{flex:none;width:1em;height:1em}.stack-hero__lockup-words{align-items:baseline;gap:.12em;display:inline-flex}.stack-hero__lockup-words>span:last-child{color:var(--accent)}.stack-hero__control{top:clamp(12px,1.6vw,24px);right:clamp(12px,1.6vw,24px)}.stack-hero[data-motion=full] .stack-hero__layer{animation:6.32s ease-in-out infinite stage-separate;animation-delay:var(--stage-delay);animation-fill-mode:backwards}.stack-hero[data-motion=full] .stack-hero__stage-label{animation:6.32s ease-in-out infinite stage-label;animation-delay:var(--stage-delay);animation-fill-mode:backwards}@keyframes stage-separate{0%,3%{transform:translateY(0)}28%,68%{transform:translateY(calc(-1 * var(--stage-offset)))}92%,to{transform:translateY(0)}}@keyframes stage-label{0%,4%,92%,to{opacity:0}28%,68%{opacity:1}}.hero{max-width:var(--max);padding:clamp(4rem, 7vw, 7rem) var(--gutter);grid-template-columns:minmax(0,1.16fr) minmax(0,.84fr);align-items:center;gap:clamp(2rem,5vw,6rem);margin:0 auto;display:grid}.hero__stack,.hero__copy{min-width:0}.hero__caption{border-top:1px solid var(--divider);max-width:34rem;padding-top:1.25rem}.hero__caption h2{margin-bottom:.75rem!important;font-size:clamp(1.2rem,1.5vw,1.6rem)!important}.hero__caption p{color:var(--muted);font-size:.9rem}.hero__caption p+p{margin-top:.5rem}.hero__copy{max-width:40rem}.hero h1{max-width:9ch;font-size:clamp(4rem,7.2vw,8rem);line-height:.98}.hero__lead{max-width:32rem;font-size:clamp(1.15rem,1.75vw,1.6rem);margin-top:2.5rem!important}.hero__detail{max-width:29rem;color:var(--muted);margin-top:1rem!important}.hero__note{color:var(--muted);font-size:.9rem;margin-top:1rem!important}@media (width<=900px){.hero{grid-template-columns:1fr}.hero__stack{order:2;max-width:44rem}}@media (width<=640px){.hero{padding-top:3rem;padding-bottom:3rem}.hero h1{font-size:clamp(3.25rem,13vw,5rem)}.hero__lead{margin-top:1.25rem!important}.stack-hero{min-height:25rem}.stack-hero__plates{inset:0 0 5rem}.stack-hero__layer{gap:.25rem;width:100%;left:0}.stack-hero__layer svg{width:clamp(8rem,37vw,12rem);height:4rem}.stack-hero__stage-label{min-width:7rem;font-size:.58rem}.stack-hero__lockup{font-size:clamp(1.8rem,8vw,2.4rem)}}
