/* Keep the feature and supporting row at their own natural heights.
   A tall feature beside two short cards created an empty second column. */
#progress .observatory-grid{grid-template-columns:minmax(0,1fr)}
#progress .city-feature .city-stage{height:clamp(210px,24vw,340px);min-height:0;max-height:none;aspect-ratio:auto}
#progress .support-previews{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:600px){
 #progress .support-previews{grid-template-columns:minmax(0,1fr)}
 #progress .city-feature .city-stage{height:clamp(165px,48vw,240px)}
}

/* Content-sized preview panels; no absolute artwork spacers or matching-height blanks. */
#progress .support-previews{grid-template-rows:none;grid-auto-rows:auto;align-content:start;align-items:start}
#progress .observatory .preview-card{
 display:grid;grid-template-columns:minmax(0,1fr) 96px;
 grid-template-areas:'kicker artwork' 'title artwork' 'description description' 'action action';
 grid-template-rows:auto auto auto auto;align-items:start;align-content:start;
 min-width:0;min-height:0;height:auto;padding:24px;gap:12px 16px;
}
#progress .observatory .preview-card .card-kicker{grid-area:kicker;min-width:0;max-width:100%;margin:0;font-size:10px;line-height:1.65;letter-spacing:.065em;overflow-wrap:anywhere}
#progress .observatory .preview-card h3{grid-area:title;min-width:0;max-width:100%;margin:0;font-size:clamp(25px,2.15vw,32px);line-height:1.15;overflow-wrap:anywhere}
#progress .observatory .preview-card .tease{grid-area:description;max-width:none;margin:2px 0 0;font-size:14px;line-height:1.75}
#progress .observatory .preview-card .card-action{grid-area:action;min-width:0;width:100%;margin:2px 0 0;padding-top:12px;min-height:44px}
#progress .observatory .cube-stage,#progress .observatory .contribution-mark{grid-area:artwork;position:relative;inset:auto;align-self:center;justify-self:center;width:96px;max-width:100%;height:96px;margin:0}
#progress .observatory .cube-stage canvas{display:block;width:100%;height:100%}
#progress .observatory .contribution-mark span{font-size:68px}

/* A shared introductory band, then the nested form: no tall empty column beside consent. */
#notify .invitation-shell{grid-template-columns:minmax(0,1fr);gap:28px;padding:clamp(24px,3.6vw,52px);align-items:start}
#notify .invitation-copy{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);grid-template-areas:'eyebrow eyebrow' 'heading introduction' 'heading signal' 'heading note';gap:16px 40px;min-width:0;max-width:none;padding:0;align-items:start}
#notify .invitation-copy>.eyebrow{grid-area:eyebrow;margin:0}
#notify .invitation-copy h2{grid-area:heading;margin:0;font-size:clamp(38px,4.2vw,62px);line-height:1.08}
#notify .invitation-intro{grid-area:introduction;margin:0;max-width:42ch}
#notify .invitation-signal{grid-area:signal;width:min(100%,420px);height:54px;margin:0;min-width:0}
#notify .invitation-copy .invitation-note{grid-area:note;max-width:44ch;margin:0;font-size:14px;line-height:1.75}
#interest-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;align-content:start;align-self:start;gap:22px 28px;width:100%;min-width:0;margin:0;padding:28px}
#interest-form>.form-header{grid-column:1/-1;margin:0;padding-bottom:18px}
#interest-form>.form-step{grid-column:1;grid-row:2;min-width:0}
#interest-form>fieldset{grid-column:1;grid-row:3;min-width:0;margin:0}
#interest-form>.consent-panel{grid-column:2;grid-row:2/span 2;min-width:0;align-self:start;margin:0}
#interest-form>.submit,#interest-form>.form-status,#interest-form>.receipt-panel,#interest-form>.form-promise,#interest-form>.local-notice{grid-column:1/-1;min-width:0}
#interest-form .interest-options{grid-template-columns:repeat(2,minmax(0,1fr))}
#interest-form .form-promise{gap:8px 20px;font-size:12px;line-height:1.7}

@media(max-width:1100px){
 #progress .observatory .preview-card{grid-template-columns:minmax(0,1fr) 80px;padding:21px;gap:12px}
 #progress .observatory .cube-stage,#progress .observatory .contribution-mark{width:80px;height:80px}
 #progress .observatory .contribution-mark span{font-size:59px}
}
@media(max-width:900px){
 #notify .invitation-shell{padding:24px;gap:24px}
 #notify .invitation-copy{display:block}
 #notify .invitation-copy>.eyebrow{margin-bottom:16px}
 #notify .invitation-copy h2{font-size:clamp(32px,5.8vw,46px);margin:0 0 18px}
 #notify .invitation-intro{margin:0;max-width:46ch}
 #notify .invitation-signal{height:48px;margin:18px 0}
 #notify .invitation-copy .invitation-note{margin:0;max-width:46ch}
 #interest-form{display:flex;flex-direction:column;align-items:stretch;gap:20px;padding:21px}
 #interest-form>.form-step,#interest-form>fieldset,#interest-form>.consent-panel{width:100%}
}
@media(max-width:600px){
 #progress .observatory .preview-card{grid-template-columns:minmax(0,1fr) 76px;padding:18px;gap:10px 12px}
 #progress .observatory .preview-card h3{font-size:clamp(23px,5.6vw,28px)}
 #progress .observatory .preview-card .card-kicker{font-size:10px;letter-spacing:.025em}
 #progress .observatory .cube-stage,#progress .observatory .contribution-mark{width:76px;height:76px}
 #progress .observatory .contribution-mark span{font-size:54px}
 #notify .invitation-shell{padding:16px;gap:22px}
 #interest-form{padding:18px 14px}
}
@media(max-width:420px){
 #progress .observatory .preview-card{grid-template-columns:minmax(0,1fr) 62px;padding:16px;gap:10px}
 #progress .observatory .cube-stage,#progress .observatory .contribution-mark{width:62px;height:62px}
 #progress .observatory .contribution-mark span{font-size:46px}
 #progress .observatory .preview-card h3{font-size:23px}
 #notify .invitation-shell{padding:14px}
 #interest-form{padding:17px 12px}
}
@media(max-width:360px){
 #progress .observatory .preview-card{grid-template-columns:minmax(0,1fr) 54px;gap:10px 8px}
 #progress .observatory .cube-stage,#progress .observatory .contribution-mark{width:54px;height:62px}
 #interest-form .interest-options{grid-template-columns:minmax(0,1fr)}
}
