/* Reusable editorial covers and filterable image collections. */
.editorial-polaroid-cover {
    display:grid;
    justify-items:center;
    gap:28px;
    padding:44px 24px 40px;
    background:var(--white);
    color:var(--navy);
    text-align:center;
}
.editorial-polaroid-cover h1 {
    max-width:18ch;
    margin:0;
    font-size:var(--type-display);
    line-height:1.08;
    color:inherit;
    text-wrap:balance;
}
.editorial-polaroid-cover .polaroid-format {
    --polaroid-width:min(260px, 34svh, calc(100vw - 72px));
    margin:4px 0;
    transform:rotate(-4deg);
}
.editorial-polaroid-cover > p {
    max-width:56ch;
    margin:0;
    font-size:var(--type-body);
    line-height:1.75;
    text-wrap:pretty;
}
.editorial-polaroid-cover + .editorial-collection { padding-top:48px; }
@media(max-width:760px) {
    .editorial-polaroid-cover { gap:24px; padding:32px 24px; }
    .editorial-polaroid-cover .polaroid-format { --polaroid-width:min(220px, 30svh, calc(100vw - 72px)); }
}
.editorial-cover {
    position:relative;
    width:calc(100% - 48px);
    max-width:1440px;
    height:min(62svh, 620px);
    min-height:340px;
    margin:20px auto 0;
    overflow:hidden;
    border-radius:8px;
    background:var(--navy);
    isolation:isolate;
}
.editorial-cover > img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 54%; }
.editorial-cover::after { content:""; position:absolute; inset:0 0 50%; z-index:1; background:linear-gradient(180deg,rgba(0,0,0,.5),transparent); pointer-events:none; }
.editorial-cover h1 { position:absolute; z-index:2; top:36px; left:40px; right:40px; margin:0; color:#fff; font-size:var(--type-editorial); line-height:1; letter-spacing:0; }
.editorial-collection { padding:80px 0 0; color:var(--navy); background:var(--white); }
.editorial-intro { width:min(700px, calc(100% - 40px)); margin:0 auto 72px; text-align:center; }
.editorial-intro h2, .editorial-outro h2 { margin:0; font-size:var(--type-section); line-height:1.08; color:inherit; text-wrap:balance; }
.editorial-intro p, .editorial-outro p { margin:24px auto 0; max-width:55ch; font-size:var(--type-body); line-height:1.8; color:inherit; text-wrap:pretty; }
.story-collection { width:min(1120px, calc(100% - 48px)); margin:auto; }
.story-collection-toolbar {
    position:sticky;
    top:var(--site-header-height,76px);
    z-index:10;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:32px;
    padding:16px 0;
    background:var(--white);
    border-bottom:1px solid var(--button-outline);
}
.story-collection-toolbar[hidden], .story-entry[hidden], .story-collection-empty[hidden] { display:none; }
.story-collection-filters { display:flex; flex-wrap:wrap; gap:8px; }
.story-collection-count { flex-shrink:0; margin:0; color:var(--navy); font-size:var(--type-small); font-variant-numeric:tabular-nums; }
.story-collection-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:64px 48px; }
.story-entry { min-width:0; margin:0; color:var(--navy); }
.story-entry-media { overflow:hidden; aspect-ratio:3/2; border-radius:8px; }
.story-entry-media img { display:block; width:100%; height:100%; object-fit:cover; }
.story-entry-media .engagement-image-putzpatenschaft { object-position:center 24%; }
.story-entry-body { padding:24px 0 0; }
.story-entry-date { display:block; margin:0 0 10px; color:var(--muted); font-size:var(--type-small); font-weight:var(--weight-regular); line-height:1.5; }
.story-entry-body h3 { margin:0 0 14px; font:var(--weight-semibold) var(--type-card)/1.2 var(--font-main); color:inherit; overflow-wrap:anywhere; text-wrap:balance; }
.story-entry-body p { margin:0; color:inherit; font-size:var(--type-body); line-height:1.7; text-wrap:pretty; }
.story-entry-link { display:flex; align-items:center; justify-content:space-between; gap:16px; width:fit-content; max-width:100%; min-height:44px; margin:16px 0 0; padding:6px 0; color:inherit; font-size:var(--type-small); font-weight:var(--weight-semibold); line-height:1.5; text-decoration:underline; text-decoration-color:var(--button-outline); text-underline-offset:5px; overflow-wrap:anywhere; }
.story-entry-link + .story-entry-link { margin-top:0; }
.story-entry-link i { flex-shrink:0; font-size:12px; }
.story-entry-link:hover { text-decoration-color:currentColor; }
.story-entry-link:focus-visible { outline:2px solid var(--button-focus); outline-offset:5px; border-radius:2px; }
.story-collection-empty { margin:40px 0; text-align:center; }
.editorial-outro { padding:100px 24px; margin:80px auto 0; color:var(--navy); text-align:center; border-top:1px solid var(--button-outline); }
.editorial-outro .button { margin-top:28px; }
/* Editorial timelines reuse the shared scroll-timeline behavior. */
.career-section { width:min(1120px,calc(100% - 48px)); margin:100px auto; color:var(--navy); scroll-margin-top:calc(var(--site-header-height,76px) + 24px); }
.career-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:end; margin-bottom:56px; }
.career-heading h2 { margin:0; color:inherit; font-size:var(--type-section); line-height:1.08; text-wrap:balance; }
.career-heading p { margin:0; font-size:var(--type-body); line-height:1.8; text-wrap:pretty; }
.career-timeline { --timeline-progress:0%; position:relative; isolation:isolate; list-style:none; margin:0; padding:0; }
.career-timeline::before,.career-timeline::after { content:''; position:absolute; top:8px; left:12px; width:1px; height:calc(100% - 8px); background:var(--button-outline); z-index:-1; pointer-events:none; }
.career-timeline::after { height:var(--timeline-progress); max-height:calc(100% - 8px); background:currentColor; opacity:.5; }
.career-entry { position:relative; display:grid; grid-template-columns:220px minmax(0,1fr); gap:48px; padding:0 0 56px 48px; }
.career-entry:last-child { padding-bottom:0; }
.career-entry::before { content:''; position:absolute; top:6px; left:7px; width:9px; height:9px; border:1px solid currentColor; border-radius:50%; background:var(--white); transition:background .25s ease; }
.career-entry.is-active::before { background:currentColor; }
.career-period { font-size:var(--type-small); line-height:1.7; color:var(--muted); font-variant-numeric:tabular-nums; }
.career-copy { min-width:0; }
.career-copy h3 { margin:8px 0 20px; color:inherit; font:var(--weight-semibold) var(--type-card)/1.2 var(--font-main); overflow-wrap:break-word; text-wrap:pretty; }
.career-copy p { margin:0 0 16px; font-size:var(--type-body); line-height:1.7; text-wrap:pretty; }
.career-copy .career-organization,.career-copy .career-role-period { font-size:var(--type-small); line-height:1.7; color:var(--muted); }
.career-copy .career-organization { margin:0; }
.career-copy > :last-child { margin-bottom:0; }
.career-roles { margin:0; }
.career-roles > div + div { margin-top:24px; }
.career-roles dt { font-size:var(--type-body); font-weight:var(--weight-semibold); line-height:1.6; }
.career-roles dd { margin:6px 0 0; font-size:var(--type-body); line-height:1.7; text-wrap:pretty; }
.career-roles .career-role-period { margin:4px 0 8px; }
/* A winding route keeps work experience distinct from an academic timeline. */
.career-timeline--route::before,.career-timeline--route::after { display:none; }
.career-timeline--route .career-entry { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:12%; row-gap:8px; padding:0 0 48px; }
.career-timeline--route .career-entry > * { grid-column:1; }
.career-timeline--route .career-entry:nth-child(even) > * { grid-column:2; }
.career-timeline--route .career-entry::before { top:8px; left:calc(46% - 5px); z-index:1; }
.career-timeline--route .career-entry:nth-child(even)::before { left:calc(54% - 5px); }
.career-timeline--route .career-entry::after { content:''; position:absolute; top:12px; left:46%; width:8%; height:100%; box-sizing:border-box; border:solid var(--button-outline); border-width:0 0 1px 1px; border-bottom-left-radius:32px; z-index:-1; pointer-events:none; }
.career-timeline--route .career-entry:nth-child(even)::after { border-width:0 1px 1px 0; border-radius:0 0 32px 0; }
.career-timeline--route .career-entry:last-child { padding-bottom:0; }
.career-timeline--route .career-entry:last-child::after { display:none; }
.career-timeline--route .career-copy h3 { margin:0 0 16px; }
.career-timeline--route .career-organization { margin-bottom:8px; }
@media(max-width:1000px) { .career-heading { gap:40px; } .career-entry { grid-template-columns:180px minmax(0,1fr); gap:32px; } }
@media(max-width:760px) {
    .career-section { width:calc(100% - 40px); margin:64px auto; }
    .career-heading { grid-template-columns:minmax(0,1fr); gap:24px; margin-bottom:36px; }
    .career-entry { grid-template-columns:minmax(0,1fr); gap:12px; padding:0 0 40px 36px; }
    .career-copy h3 { margin-top:8px; }
    .career-timeline--route .career-entry { grid-template-columns:minmax(0,1fr); gap:8px; padding:0 0 40px 32px; }
    .career-timeline--route .career-entry:nth-child(n) > * { grid-column:1; }
    .career-timeline--route .career-entry:nth-child(n)::before { left:0; }
    .career-timeline--route .career-entry:nth-child(n)::after { left:4px; width:1px; border-width:0 0 0 1px; border-radius:0; }
}
@media(prefers-reduced-motion:reduce) { .career-entry::before { transition:none; } }
@media (prefers-reduced-motion:no-preference) {
    .has-scroll-reveal .story-entry { opacity:0; transform:translateY(18px); transition:opacity .6s ease,transform .6s ease; transition-delay:var(--gallery-reveal-delay,0ms); }
    .has-scroll-reveal .story-entry.is-visible { opacity:1; transform:none; }
}
@media(max-width:900px) {
    .story-collection-grid { gap:48px 28px; }
    .story-collection-toolbar { align-items:flex-start; flex-direction:column; gap:10px; }
}
@media(max-width:760px) {
    .editorial-cover { width:calc(100% - 24px); height:auto; min-height:0; aspect-ratio:4/3; margin-top:12px; }
    .editorial-cover h1 { top:24px; left:24px; right:24px; font-size:3rem; }
    .editorial-cover > img { object-position:center; }
    .editorial-collection { padding-top:48px; }
    .editorial-intro { margin-bottom:40px; }
    .story-collection { width:calc(100% - 40px); }
    .story-collection-grid { grid-template-columns:minmax(0,1fr); gap:44px; }
    .story-collection-toolbar { padding:12px 0; margin-bottom:24px; }
    .story-collection-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
    .story-collection-filters .button { min-width:0; }
    .story-entry-body { padding-top:20px; }
    .editorial-outro { margin-top:56px; padding:64px 24px; }
}
@media print {
    .story-collection-toolbar { position:static; }
    .story-collection-grid { display:block; }
    .story-entry { break-inside:avoid; margin-bottom:32px; opacity:1!important; transform:none!important; }
}
