/* Chronological geometry uses the same columns and baseline as the editor.
 * Desktop has explicit row/column placement; mobile retains its reading flow. */
@media (min-width:769px) {
    #memory-generated .memory-shell { --memory-component-gutter:var(--composition-gutter,24px); }
    #memory-generated#memory-generated#memory-generated .is-chronological-grid {
        display:grid!important; grid-template-columns:repeat(var(--composition-columns,12),minmax(0,1fr))!important;
        grid-auto-rows:8px!important; column-gap:var(--composition-gutter,24px)!important; row-gap:0!important;
        align-content:start; padding:0!important;
    }
    #memory-generated#memory-generated#memory-generated :is(.is-chronological-grid,.is-chronological-horizontal) > [data-block-id] {
        position:relative!important; left:auto!important; top:auto!important; width:auto!important;
        height:100%!important; min-height:0!important; margin:0!important; transform:none!important;
        grid-column:var(--composition-column) / span var(--composition-span);
        grid-row:var(--composition-row) / span var(--composition-rows); min-width:0;
    }
    #memory-generated#memory-generated#memory-generated .is-chronological-horizontal {
        display:grid!important; grid-template-columns:repeat(var(--horizontal-grid-columns),calc(var(--book-pitch) - var(--book-gap)))!important;
        grid-auto-rows:var(--composition-row-size,8px)!important; column-gap:var(--book-gap,24px)!important; row-gap:0!important;
        padding:0!important; align-content:start;
    }
    #memory-generated#memory-generated#memory-generated .is-chronological-grid > .gen-timeline-item:has(.gen-photo-view-stack) {
        display:grid; grid-template-columns:subgrid;
    }
    #memory-generated .is-chronological-grid .gen-photo-view-stack { display:grid; grid-template-columns:subgrid; grid-column:1 / -1; }
    #memory-generated .is-chronological-grid .gen-photo-view-stack > .gen-photo-group { grid-column:1 / -1; }
    #memory-generated#memory-generated#memory-generated .is-chronological-memory.memory-layout-central-timeline .gen-day-layout {
        display:block!important; width:100%!important; padding:0!important; margin:0!important;
    }
    #memory-generated#memory-generated#memory-generated .is-chronological-memory.memory-layout-central-timeline :is(.gen-day-main,.gen-day) {
        width:100%!important; max-width:1048px!important; margin-inline:auto!important;
    }
    #memory-generated#memory-generated#memory-generated .is-chronological-memory.memory-layout-central-timeline .gen-day-main { min-height:var(--timeline-grid-extra,0px)!important; }
    #memory-generated .is-chronological-memory:not(.memory-layout-horizontal-timeline) .gen-day { margin-bottom:var(--composition-day-gap,192px)!important; }
    #memory-generated .is-chronological-memory.memory-layout-horizontal-timeline .gen-day { margin-right:calc(var(--book-pitch,134px) * var(--composition-day-columns,1))!important; }
}
/* Bento slots share their parent columns. Blank baseline cells create the same
 * vertical gutter as the column gutter; the side wrapper carries no geometry. */
#memory-generated#memory-generated#memory-generated .is-chronological-content .gen-photo-group {
    display:grid!important; grid-template-columns:repeat(var(--bento-columns,2),minmax(0,1fr))!important;
    grid-template-rows:repeat(var(--bento-rows,2),minmax(0,1fr))!important;
    column-gap:var(--composition-gutter,24px)!important; row-gap:0!important;
    width:100%!important; height:100%!important; min-height:0!important; aspect-ratio:auto!important;
}
#memory-generated#memory-generated#memory-generated .is-chronological-content .gen-photo-group-side { display:contents!important; }
#memory-generated#memory-generated#memory-generated .is-chronological-content :is(.gen-photo-group-main,.gen-photo-group-tile) {
    grid-column:var(--bento-column,1) / span var(--bento-span,1)!important;
    grid-row:var(--bento-row,1) / span var(--bento-height,1)!important;
}
#memory-generated#memory-generated#memory-generated .is-chronological-content .gen-photo {
    width:100%!important; height:100%!important; min-height:0!important; aspect-ratio:auto!important;
    overflow:hidden;
}
/* Fit is a memory-wide presentation setting, independent of the canvas/style.
 * Source files and saved crop focus are unchanged. */
#memory-generated#memory-generated#memory-generated .memory-shell .gen-photo { position:relative; }
#memory-generated#memory-generated#memory-generated .memory-shell .gen-photo > img {
    width:100%!important; height:100%!important; object-fit:cover!important;
}
#memory-generated#memory-generated#memory-generated .memory-shell[data-image-fit="whole"] .gen-photo {
    background:#E4DFD2!important; aspect-ratio:var(--photo-source-aspect,3 / 2);
}
#memory-generated#memory-generated#memory-generated .memory-shell[data-image-fit="whole"] .gen-photo > img {
    position:absolute!important; inset:var(--photo-mat-inset,8px)!important;
    width:calc(100% - 2 * var(--photo-mat-inset,8px))!important;
    height:calc(100% - 2 * var(--photo-mat-inset,8px))!important;
    max-width:none!important; max-height:none!important;
    object-fit:contain!important; object-position:50% 50%!important;
}
#memory-generated .memory-shell[data-image-fit="whole"] .gen-photo-crop-toggle { display:none!important; }
#memory-generated .memory-shell[data-image-fit="whole"] .gen-photo-more-overlay {
    inset:auto calc(var(--photo-mat-inset,8px) + 8px) calc(var(--photo-mat-inset,8px) + 8px) auto;
    width:auto; height:auto; padding:4px 8px; background:rgba(0,0,0,.6); font-size:16px; line-height:24px;
}
.memory-image-fit-setting { display:grid; gap:8px; margin-block:24px; }
.memory-image-fit-setting label { display:grid; gap:8px; }
.memory-image-fit-setting select { width:100%; padding:12px; border:1px solid #D6D3C9; border-radius:8px; background:transparent; color:inherit; font:inherit; }
.memory-image-fit-setting p { margin:0; font-size:14px; line-height:24px; color:#666; }
.editorial-photo.is-chronological-photo { display:block; }
.editorial-photo-frame { position:relative; width:100%; height:100%; overflow:hidden; }
.editorial-photo-group > .editorial-photo-frame:first-child { grid-row:1 / -1; }
.editorial-photo-frame img { margin:0; }
.editorial-preview[data-view=mobile] .editorial-photo { aspect-ratio:var(--preview-photo-aspect,3 / 2); }
@media (max-width:768px) {
    #memory-generated#memory-generated#memory-generated .is-chronological-content .gen-photo-group {
        height:var(--bento-mobile-height,auto)!important; aspect-ratio:var(--photo-natural-aspect,3 / 2)!important; column-gap:8px!important;
    }
    #memory-generated#memory-generated#memory-generated .is-chronological-content .gen-entry > .gen-photo {
        height:auto!important; aspect-ratio:var(--photo-natural-aspect,3 / 2)!important;
    }
    #memory-generated .is-chronological-content > [data-block-id] { margin-bottom:24px!important; }
}
/* Map and story share a shell, not an inner grid. Both vertical presets use
 * one available content rectangle, with the same margins in either story mode. */
@media (min-width:769px) {
    #memory-generated#memory-generated#memory-generated#memory-generated .is-unified-memory[data-vertical-width] .memory-shell-viewport {
        width:100%; max-width:100%; min-width:0; justify-self:stretch;
    }
    #memory-generated#memory-generated#memory-generated#memory-generated .is-unified-memory[data-vertical-width] .memory-content {
        width:100%; max-width:none; padding:0; min-width:0;
    }
    #memory-generated#memory-generated#memory-generated#memory-generated .is-unified-memory[data-vertical-width] .memory-body {
        display:block; width:100%; max-width:var(--vertical-canvas-max-width,1432px); margin-inline:auto; padding-inline:32px; box-sizing:border-box;
    }
    #memory-generated#memory-generated#memory-generated#memory-generated .is-unified-memory[data-vertical-width="focused"] .memory-body { max-width:min(1112px,var(--vertical-canvas-max-width,1432px)); }
    #memory-generated#memory-generated#memory-generated#memory-generated .is-unified-memory[data-vertical-width] :is(.gen-timeline,.gen-day,.gen-day-main) {
        width:100%; max-width:none!important; margin-inline:0;
    }
    #memory-generated#memory-generated#memory-generated#memory-generated .is-unified-memory[data-vertical-width] .gen-timeline { display:block; }
    #memory-generated#memory-generated#memory-generated#memory-generated .is-unified-memory[data-vertical-width] .memory-story-hero { padding-left:0; }
    #memory-generated#memory-generated#memory-generated#memory-generated .is-unified-memory[data-vertical-width] .memory-story-hero h1 { left:-4px; }
    #memory-generated#memory-generated#memory-generated#memory-generated .is-unified-memory[data-vertical-width] .is-unified-grid .gen-day-text { width:100%; max-width:none; }
    #memory-generated#memory-generated#memory-generated#memory-generated .is-unified-memory[data-vertical-width] .memory-chapter { width:100%; }
    /* The wrapper stays on the column grid. Only the cover expands, leaving
     * chapter copy, following days and the scroll position geometrically fixed. */
    #memory-generated#memory-generated#memory-generated#memory-generated .memory-chapter[data-scroll-reveal] .memory-chapter-cover {
        width:var(--chapter-reveal-width,100%); transform:translateX(var(--chapter-reveal-offset,0px));
    }
    #memory-generated#memory-generated#memory-generated#memory-generated .memory-chapter[data-scroll-reveal] .memory-chapter-copy {
        flex:0 0 auto; width:var(--chapter-copy-width,100%); box-sizing:border-box;
        margin-left:calc(0px - var(--chapter-reveal-offset,0px));
    }
    #memory-generated#memory-generated#memory-generated#memory-generated .memory-chapter[data-scroll-reveal] .memory-chapter-edit {
        right:calc(16px - var(--chapter-reveal-right,0px));
    }
    #memory-generated#memory-generated#memory-generated#memory-generated .is-unified-memory[data-vertical-width]:not(.memory-layout-horizontal-timeline):is(.no-map,.is-map-collapsed) :is(.memory-shell-drawer,.memory-shell-drawer-scroll) {
        background:transparent;
    }
    #memory-generated#memory-generated#memory-generated#memory-generated .is-unified-memory[data-vertical-width] .memory-chapter-cover { min-height:min(clamp(544px,88vh,1024px),var(--vertical-photo-max-height,88vh)); }
    @supports (min-height:round(down,1px,8px)) {
        #memory-generated#memory-generated#memory-generated#memory-generated .is-unified-memory[data-vertical-width] .memory-chapter-cover { min-height:round(down,min(clamp(544px,88vh,1024px),var(--vertical-photo-max-height,88vh)),8px); }
    }
}
