html.progress-root, .progress-page{height:auto;min-height:100%;overflow:visible}
.progress-page{--paper:#f4eedf;--ink:#29231d;--muted:#57483d;--rule:#695d4e38;background:var(--paper);color:var(--ink)}
.progress-wrap{max-width:1340px;margin-inline:auto;padding-inline:max(var(--gutter),env(safe-area-inset-left)) max(var(--gutter),env(safe-area-inset-right))}
.progress-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-block:max(1.5rem,env(safe-area-inset-top)) 1.5rem;border-bottom:1px solid var(--rule)}
.progress-home{display:flex;align-items:center;min-height:44px;color:inherit}
.progress-home .wordmark{display:block;width:clamp(112px,12vw,168px)}
.progress-page a{color:inherit}
.back-to-venue{display:inline-flex;align-items:center;min-height:44px;font-size:.875rem;text-decoration:none;text-underline-offset:5px}
.progress-page :is(a,button):focus-visible{outline:2px solid currentColor;outline-offset:5px}
.progress-intro{padding-block:clamp(2.5rem,5vw,4.5rem) clamp(2rem,4vw,3rem)}
.progress-kicker{color:var(--muted);font-size:.875rem;margin-bottom:1rem}
.progress-intro h1{font-size:clamp(2.8rem,6.5vw,5.5rem);line-height:1.1;font-weight:400}
.project-shape-link{color:inherit;text-decoration:none;text-underline-offset:.12em}.project-shape-link:hover{text-decoration:underline;text-decoration-thickness:1px}
.journal-entry-header{display:grid;gap:.75rem;margin-bottom:clamp(1.5rem,3vw,2.5rem)}
.journal-entry-header time{color:var(--muted);font-size:.875rem}
.journal-entry-header h2{font-size:clamp(1.8rem,3.5vw,2.75rem);line-height:1.2;font-weight:400}
.journal-entry-earlier{margin-top:clamp(3.5rem,7vw,6rem);padding-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--rule)}
.site-films{margin-top:clamp(3rem,5vw,4.5rem)}
.site-films h3{font-size:clamp(1.6rem,3vw,2.25rem);line-height:1.25;font-weight:400;margin-bottom:1.5rem}
.film-journal{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.36fr);gap:clamp(1.5rem,3vw,3rem);align-items:start}
.film-journal figure{min-width:0;margin:0}
.film-journal video{display:block;width:100%;height:auto;background:#29231d;object-fit:contain}
.film-journal video:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.film-journal figcaption{margin-top:1rem;color:var(--muted);font-size:.875rem;line-height:1.7}
.film-meta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;column-gap:1rem;margin-top:.5rem}
.film-meta a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px;text-decoration-thickness:1px}
@media(max-width:700px){.film-journal{grid-template-columns:minmax(0,1fr);gap:2.5rem}.film-portrait{width:min(100%,320px)}}
.photo-journal{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:clamp(2.5rem,5vw,5rem) clamp(1.25rem,3vw,3rem)}
.photo-journal figure{min-width:0;margin:0}
.photo-journal figure:first-child{grid-column:1/-1}
.photo-journal .photo-landscape{grid-column:1/-1}
.photo-journal.photo-journal-single-portrait figure:first-child{grid-column:auto}
html[data-v3-4] .photo-journal.photo-journal-single-portrait>figure:first-child .photo-link{aspect-ratio:1}
.photo-link{display:block;cursor:zoom-in;background:#e6dece;line-height:0}
.photo-link img{display:block;width:100%;height:auto}
/* Shared by journal and enlarged viewer; each original photograph has its own grade. */
html body.progress-page :is(.photo-journal,.photo-viewer) img[src*="/assets/progress/2026-09-23/street-front-"]{filter:url("#progress-grade-street-front")}
html body.progress-page :is(.photo-journal,.photo-viewer) img[src*="/assets/progress/2026-09-23/corner-curve-"]{filter:url("#progress-grade-corner-curve")}
html body.progress-page :is(.photo-journal,.photo-viewer) img[src*="/assets/progress/2026-09-23/inside-the-frame-"]{filter:url("#progress-grade-inside-the-frame")}
html body.progress-page :is(.photo-journal,.photo-viewer) img[src*="/assets/progress/2026-09-23/curve-overhead-"]{filter:url("#progress-grade-curve-overhead")}
html body.progress-page :is(.photo-journal,.photo-viewer) img[src*="/assets/progress/2026-09-23/after-the-rain-"]{filter:url("#progress-grade-after-the-rain")}
/* Preserve the supplied 16:9 and 9:16 compositions in the 23 September journal. */
html[data-v3-4] .progress-page .journal-entry[aria-labelledby="september-twenty-three-update"] .photo-journal .photo-link{aspect-ratio:auto}
html[data-v3-4] .progress-page .journal-entry[aria-labelledby="september-twenty-three-update"] .photo-journal .photo-link img{height:auto;object-fit:contain}
.photo-journal figcaption{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.9rem;margin-top:1rem;color:var(--muted);font-size:.875rem;line-height:1.7}
.photo-number{font-size:.75rem;padding-top:.15rem;font-variant-numeric:tabular-nums}
.photo-journal time{grid-column:2;font-size:.8125rem;margin-top:-.5rem}
.progress-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:clamp(3.5rem,6vw,6rem);padding-block:1.5rem max(1.5rem,env(safe-area-inset-bottom));border-top:1px solid var(--rule)}
.progress-footer .brand-symbol{display:block;width:24px}
.progress-skip{position:fixed;top:1rem;left:1rem;z-index:20;transform:translateY(-200%);padding:.65rem 1rem;background:var(--paper);font:1rem/1.5 Arial,sans-serif}
.progress-skip:focus{transform:none}
.photo-viewer:not([open]){display:none}
.photo-viewer{position:fixed;inset:0;border:0;margin:auto;width:100%;max-width:none;height:100%;max-height:none;padding:max(1rem,env(safe-area-inset-top)) max(1.25rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left));background:#111a22;color:#f2e8d7;overflow:auto}
.photo-viewer::backdrop{background:#111a22}
.viewer-shell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:1rem;max-width:1600px;margin:auto}
.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:44px}
.viewer-toolbar p{font-size:.875rem}
.viewer-close{font:inherit;font-size:.875rem;line-height:1.5;background:transparent;color:inherit;border:1px solid #f2e8d760;min-height:44px;padding:.5rem 1rem;cursor:pointer}
.viewer-image{min-height:0;display:grid;place-items:center}
.viewer-image img{display:block;width:100%;height:100%;min-height:0;object-fit:contain}
.viewer-caption{max-width:52rem;margin-inline:auto;text-align:center;font-size:1rem;line-height:1.6}
html.photo-open{overflow:hidden}
@media(hover:hover){.back-to-venue:hover{text-decoration:underline}.viewer-close:hover{background:#f2e8d714}}
@media(max-width:700px){.progress-header{padding-block:1rem}.progress-header .back-to-venue{max-width:9rem;text-align:right}.photo-journal{grid-template-columns:minmax(0,1fr);gap:2.5rem}.photo-journal figure:last-child{width:100%}.progress-intro{padding-block:2.5rem 2rem}.photo-journal figcaption{gap:.65rem}.viewer-caption{font-size:.875rem}.photo-viewer{padding-inline:1rem}html[data-v3-4] .photo-journal.photo-journal-single-portrait>figure:first-child .photo-link{aspect-ratio:4/3}}
@media(max-height:480px){.viewer-shell{height:auto}.viewer-image img{height:65vh}.viewer-caption{font-size:.875rem}}
@media print{.photo-journal figure{break-inside:avoid}.photo-viewer,.progress-skip{display:none!important}}

/* Keep the full 4:3 compositions in the 26 September site update. */
html[data-v3-4] .progress-page .journal-entry[aria-labelledby="september-twenty-six-update"] .photo-journal .photo-link{aspect-ratio:auto}
html[data-v3-4] .progress-page .journal-entry[aria-labelledby="september-twenty-six-update"] .photo-journal .photo-link img{height:auto;object-fit:contain;filter:none}

/* 27 Sep 2026 (senja_fixes_2026-09-27c). The words of "Open video" are drawn, so an underline only marked the space
   between them. Underline the drawn words instead. */
.film-meta a{text-decoration:none}
.film-meta a>.ink-text{border-bottom:1px solid currentColor;padding-bottom:2px}
