/* Five real photographs extend the established Index world. */
.v07 .photo-figure { min-width:0; margin:0; }
.v07 .photo-open { display:block; position:relative; padding:0; border:1px solid var(--line); border-radius:5px; background:var(--bg); width:100%; overflow:hidden; cursor:zoom-in; }
.v07 .photo-open img { display:block; width:100%; height:auto; }
.v07 .photo-zoom { position:absolute; right:12px; bottom:12px; display:grid; place-items:center; width:28px; height:28px; background:var(--ink); color:var(--bg); }
.v07 .photo-zoom svg { width:16px; height:16px; }
.v07 .photo-figure figcaption { display:flex; justify-content:space-between; flex-wrap:wrap; gap:5px 22px; margin-top:12px; color:var(--muted); font-size:11px; line-height:1.8; }
.v07 .photo-glimpse { display:grid; grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr); gap:65px; align-items:center; margin-top:85px; padding-top:38px; border-top:1px solid var(--line); }
.v07 .glimpse-copy h2 { font-size:31px; line-height:1.35; max-width:15ch; margin-bottom:22px; }
.v07 .glimpse-copy p { color:var(--muted); font-size:15px; line-height:1.9; max-width:40ch; }
.v07 .glimpse-copy .text-link { margin-top:22px; font-size:13px; }
.v07 .photography-intro { max-width:none; }
.v07 .photography-intro > p { max-width:58ch; }
.v07 .sky-pair { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:30px; margin-top:22px; }
.v07 .pair-heading { grid-column:1 / -1; display:flex; align-items:baseline; justify-content:space-between; gap:35px; }
.v07 .pair-heading h2 { font-size:32px; line-height:1.4; margin:0; }
.v07 .pair-heading p { max-width:47ch; color:var(--muted); font-size:14px; line-height:1.9; }
.v07 .sky-background { grid-column:1 / -1; }
.v07 .meteor-note { grid-column:1 / 4; padding-top:20px; align-self:center; }
.v07 .meteor-note h3 { font-size:24px; line-height:1.4; margin:0 0 18px; }
.v07 .meteor-note p { color:var(--muted); font-size:14px; line-height:1.9; }
.v07 .sky-meteors { grid-column:4 / -1; margin-top:10px; }
.v07 .field-radiant { margin-top:100px; padding-top:38px; border-top:1px solid var(--line); }
.v07 .field-radiant .pair-heading { grid-column:8 / -1; display:block; align-self:center; grid-row:1; }
.v07 .field-radiant .pair-heading h2 { margin-bottom:24px; }
.v07 .field-radiant .sky-background { grid-column:1 / 8; grid-row:1; }
.v07 .field-radiant .meteor-note { grid-row:2; }
.v07 .field-radiant .sky-meteors { grid-row:2; }
.v07 .tiangong-spread { margin-top:100px; padding-top:38px; border-top:1px solid var(--line); }
.v07 .tiangong-spread > header { display:flex; align-items:baseline; justify-content:space-between; gap:35px; margin-bottom:30px; }
.v07 .tiangong-spread h2 { font-size:34px; margin:0; }
.v07 .tiangong-spread header p { max-width:47ch; color:var(--muted); font-size:14px; line-height:1.9; }
.v07 .photo-method-note { font-size:12px; color:var(--muted); margin-top:28px; max-width:75ch; line-height:1.9; }
.v07 .imaging-connection { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:center; gap:80px; margin-top:85px; padding-top:38px; border-top:1px solid var(--line); }
.v07 .imaging-connection h2 { font-size:30px; margin-bottom:24px; }
.v07 .imaging-connection p { color:var(--muted); font-size:15px; line-height:1.9; }
.v07 .imaging-connection .text-link { margin-top:24px; font-size:13px; }
.v07 .imaging-connection .image-credit, .v07 .imaging-connection .source-link { font-size:11px; }
.v07 .photography-entry { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.9fr); gap:70px; align-items:center; padding-block:34px; border-block:1px solid var(--line); margin-top:60px; }
.v07 .photography-entry h2 { font-size:28px; margin-bottom:18px; }
.v07 .photography-entry p { font-size:14px; color:var(--muted); line-height:1.9; }
.v07 .photography-entry .text-link { font-size:13px; margin-top:20px; }
.v07 .photo-entry-image { display:block; border:1px solid var(--line); border-radius:3px; overflow:hidden; }
.v07 .photo-entry-image img { display:block; width:100%; height:auto; }
.v07 .photo-dialog { width:min(1400px,96vw); max-height:96dvh; padding:22px; border:1px solid var(--line); border-radius:5px; background:var(--bg); color:var(--ink); overflow:auto; }
.v07 .photo-dialog::backdrop { background:rgb(0 0 0 / .9); }
.v07 .photo-dialog-toolbar { display:flex; justify-content:space-between; align-items:start; gap:25px; margin-bottom:20px; }
.v07 .photo-dialog-toolbar h2 { font-family:var(--body); font-size:20px; line-height:1.5; margin:0; }
.v07 .photo-dialog-toolbar button { flex-shrink:0; display:grid; place-items:center; border:0; background:transparent; padding:5px; cursor:pointer; }
.v07 .photo-dialog-toolbar svg { width:23px; height:23px; }
.v07 .photo-dialog-stage { display:grid; place-items:center; min-height:100px; }
.v07 .photo-dialog-stage img { max-width:100%; max-height:73dvh; width:auto; height:auto; object-fit:contain; }
.v07 .photo-dialog > .text-link { font-size:12px; margin-top:18px; }
.v07 .photo-dialog-error { color:var(--muted); font-size:13px; margin-top:20px; }

/* Outline keeps each field in a compact, unequal pair. */
.v07.direction-outline .photo-glimpse { grid-template-columns:minmax(0,1fr) minmax(0,.75fr); gap:55px; margin-top:48px; padding-top:25px; }
.v07.direction-outline .glimpse-copy h2 { font-size:25px; }
.v07.direction-outline .sky-pair { grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); gap:22px 30px; }
.v07.direction-outline .pair-heading { grid-column:1 / -1; display:flex; grid-row:auto; }
.v07.direction-outline .pair-heading h2 { font-size:25px; margin:0; }
.v07.direction-outline .sky-background { grid-column:1; grid-row:2; }
.v07.direction-outline .sky-meteors { grid-column:2; grid-row:2; margin:0; }
.v07.direction-outline .meteor-note { display:none; }
.v07.direction-outline .field-radiant { margin-top:55px; padding-top:28px; }
.v07.direction-outline .tiangong-spread { margin-top:55px; padding-top:28px; }
.v07.direction-outline .tiangong-spread h2 { font-size:25px; }
.v07.direction-outline .imaging-connection { gap:55px; margin-top:55px; }
.v07.direction-outline .imaging-connection h2 { font-size:25px; }

/* Afterlight gives the complete images time and room. */
.v07.direction-afterlight .photo-glimpse { display:flex; flex-direction:column; align-items:stretch; gap:35px; margin-top:100px; padding-top:45px; }
.v07.direction-afterlight .glimpse-copy { display:grid; grid-template-columns:1fr 1fr; gap:15px 75px; }
.v07.direction-afterlight .glimpse-copy h2 { grid-row:span 2; font-size:36px; }
.v07.direction-afterlight .glimpse-copy .text-link { margin-top:0; }
.v07.direction-afterlight .sky-pair { display:block; margin-top:10px; }
.v07.direction-afterlight .pair-heading { display:block; max-width:650px; margin-bottom:35px; }
.v07.direction-afterlight .pair-heading h2 { font-size:39px; margin-bottom:22px; }
.v07.direction-afterlight .pair-heading p { font-size:16px; }
.v07.direction-afterlight .meteor-note { width:70%; margin:40px 0 25px auto; padding:0; }
.v07.direction-afterlight .meteor-note h3 { font-size:28px; }
.v07.direction-afterlight .meteor-note p { max-width:48ch; }
.v07.direction-afterlight .sky-meteors { width:85%; margin-left:auto; }
.v07.direction-afterlight .field-radiant { margin-top:115px; padding-top:48px; }
.v07.direction-afterlight .field-radiant .sky-background { width:85%; }
.v07.direction-afterlight .field-radiant .sky-meteors { width:100%; }
.v07.direction-afterlight .tiangong-spread { margin-top:115px; padding-top:45px; }
.v07.direction-afterlight .tiangong-spread h2 { font-size:39px; }
.v07.direction-afterlight .imaging-connection { grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); margin-top:100px; }

/* Double pairs two independently treated images of each field. */
.v07.direction-double .photo-glimpse { display:block; margin-top:70px; }
.v07.direction-double .glimpse-copy { display:grid; grid-template-columns:1fr 1fr; gap:12px 60px; margin-bottom:30px; }
.v07.direction-double .glimpse-copy h2 { grid-row:span 2; }
.v07.direction-double .glimpse-copy .text-link { margin-top:0; }
.v07 .home-photo-pair { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.v07.direction-double .sky-pair { grid-template-columns:1fr 1fr; gap:28px; }
.v07.direction-double .pair-heading { grid-column:1 / -1; display:flex; grid-row:1; }
.v07.direction-double .pair-heading h2 { margin:0; }
.v07.direction-double .sky-background { grid-column:1; grid-row:2; }
.v07.direction-double .sky-meteors { grid-column:2; grid-row:2; margin:0; }
.v07.direction-double .meteor-note { display:none; }
.v07.direction-double .field-radiant { margin-top:80px; }

@media (max-width:1100px) {
  .v07 .photo-glimpse, .v07 .imaging-connection, .v07 .photography-entry { gap:40px; }
  .v07 .sky-pair { gap:24px; }
  .v07 .pair-heading { gap:25px; }
  .v07 .pair-heading p { max-width:40ch; }
}
@media (max-width:760px) {
  .v07 .photo-glimpse, .v07.direction-outline .photo-glimpse, .v07.direction-afterlight .photo-glimpse { display:flex; flex-direction:column; gap:25px; margin-top:48px; padding-top:26px; align-items:stretch; }
  .v07 .glimpse-copy h2, .v07.direction-outline .glimpse-copy h2, .v07.direction-afterlight .glimpse-copy h2 { font-size:28px; max-width:none; margin-bottom:18px; }
  .v07 .glimpse-copy p { font-size:14px; max-width:60ch; }
  .v07.direction-afterlight .glimpse-copy, .v07.direction-double .glimpse-copy { display:block; margin-bottom:0; }
  .v07.direction-afterlight .glimpse-copy .text-link, .v07.direction-double .glimpse-copy .text-link { margin-top:18px; }
  .v07 .photo-glimpse .home-photo-pair { grid-template-columns:1fr; gap:18px; margin-top:25px; }
  .v07 .sky-pair, .v07.direction-outline .sky-pair, .v07.direction-double .sky-pair { display:flex; flex-direction:column; gap:25px; margin-top:0; }
  .v07 .pair-heading, .v07.direction-outline .pair-heading, .v07.direction-double .pair-heading { display:block; }
  .v07 .pair-heading h2, .v07.direction-outline .pair-heading h2, .v07.direction-afterlight .pair-heading h2 { font-size:29px; margin-bottom:17px; }
  .v07 .pair-heading p, .v07.direction-afterlight .pair-heading p { font-size:14px; max-width:60ch; }
  .v07 .sky-meteors, .v07.direction-afterlight .sky-meteors, .v07.direction-afterlight .field-radiant .sky-background, .v07.direction-afterlight .field-radiant .sky-meteors { width:100%; margin:0; }
  .v07 .meteor-note, .v07.direction-afterlight .meteor-note { padding-top:7px; margin:0; width:100%; }
  .v07 .meteor-note h3, .v07.direction-afterlight .meteor-note h3 { font-size:24px; margin-bottom:14px; }
  .v07 .meteor-note p { font-size:14px; }
  .v07 .field-radiant, .v07.direction-outline .field-radiant, .v07.direction-afterlight .field-radiant, .v07.direction-double .field-radiant { margin-top:50px; padding-top:27px; }
  .v07 .field-radiant .pair-heading h2 { margin-bottom:17px; }
  .v07.direction-afterlight .pair-heading { margin-bottom:25px; }
  .v07.direction-afterlight .sky-background { margin-bottom:25px; }
  .v07.direction-afterlight .meteor-note { margin-bottom:25px; }
  .v07 .tiangong-spread, .v07.direction-outline .tiangong-spread, .v07.direction-afterlight .tiangong-spread { margin-top:50px; padding-top:27px; }
  .v07 .tiangong-spread > header { display:block; margin-bottom:25px; }
  .v07 .tiangong-spread h2, .v07.direction-outline .tiangong-spread h2, .v07.direction-afterlight .tiangong-spread h2 { font-size:29px; margin-bottom:17px; }
  .v07 .tiangong-spread header p { max-width:60ch; }
  .v07 .photo-figure figcaption { font-size:10px; gap:4px 15px; }
  .v07 .photo-method-note { font-size:11px; }
  .v07 .imaging-connection, .v07.direction-afterlight .imaging-connection { display:flex; flex-direction:column; align-items:stretch; gap:28px; margin-top:50px; padding-top:27px; }
  .v07 .imaging-connection h2 { font-size:28px; margin-bottom:20px; }
  .v07 .photography-entry { grid-template-columns:1fr; gap:25px; margin-top:40px; padding-block:27px; }
  .v07 .photography-entry h2 { font-size:27px; }
  .v07 .photo-dialog { padding:16px; width:calc(100vw - 16px); max-height:96dvh; }
  .v07 .photo-dialog-toolbar { gap:12px; margin-bottom:15px; }
  .v07 .photo-dialog-toolbar h2 { font-size:17px; }
  .v07 .photo-dialog-stage img { max-height:70dvh; }
}
