:root{--paper:#faf9f6;--ink:#2e3c32;--soft:#69756b;--line:#d8dfd5;--green:#637e59}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 Arial,sans-serif}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.2}h1{font-size:clamp(35px,5vw,62px);letter-spacing:-1px}h2{font-size:27px}h3{font-size:30px}a{color:inherit}button,input,select,textarea{font:inherit}button,.button{display:inline-block;padding:11px 18px;background:var(--ink);color:white;border:0;border-radius:4px;text-decoration:none;cursor:pointer}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #a28d5b;outline-offset:3px}header{padding:23px 6%;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{font:25px Georgia,serif;text-decoration:none;overflow-wrap:anywhere}.brand span{color:var(--green)}.header-actions{display:flex;gap:20px;align-items:center;font-size:12px}.quiet{padding:7px 10px;background:transparent;color:var(--ink);border:1px solid var(--line)}.muted,p{color:var(--soft)}.eyebrow{text-transform:uppercase;letter-spacing:1.8px;font-size:11px;color:var(--green)}.timeline-heading{max-width:1100px;margin:auto;padding:55px 6% 30px}.timeline-heading h1{margin:20px 0}.chapters{padding:18px 6%;border-block:1px solid var(--line);display:flex;gap:22px;flex-wrap:wrap}.chapters a{font-size:12px;text-decoration:none}.timeline{max-width:1060px;margin:45px auto 70px;padding:0 6%}.chapter{border-left:1px solid #b5c4af;padding:0 0 20px 32px;scroll-margin-top:25px}.chapter>h2{font-size:21px;color:var(--green);padding:15px 0 20px;margin:0}.event{position:relative;display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center;margin-bottom:40px}.event:before{content:'';position:absolute;left:-38px;top:25px;width:9px;height:9px;border-radius:50%;background:var(--green);border:2px solid var(--paper)}.photo-open{background:none;color:var(--soft);padding:0;text-align:left;width:100%;font-size:11px}.photo-open img{display:block;width:100%;max-height:430px;min-height:230px;object-fit:cover;border-radius:3px}.event h3{margin:14px 0}.note-text{white-space:pre-wrap;overflow-wrap:anywhere}.event p{font-size:14px}.small{font-size:12px}.empty{text-align:center;padding:45px 15px}.auth{max-width:510px;margin:60px auto;padding:0 25px}.auth h1{font-size:43px}.auth form{margin-top:30px}label{display:block;font-size:13px;margin-bottom:17px}input:not([type=checkbox]),select,textarea{width:100%;padding:11px;border:1px solid #cbd3c8;border-radius:4px;background:#fff;color:var(--ink);margin-top:6px}textarea{resize:vertical}input[type=file]{font-size:13px}.check{display:flex;align-items:center;gap:8px}.check input{width:18px;height:18px}.admin{max-width:1250px;margin:40px auto;padding:0 5%}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.heading h1{font-size:40px;margin:10px 0 30px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.panel{padding:26px;border:1px solid var(--line);border-radius:8px;background:#fff}.panel h2{margin-top:0}.panel p{font-size:12px}.panel summary{font:25px Georgia,serif;cursor:pointer}.panel[open] summary{margin-bottom:25px}.manage{margin-top:45px}.memory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:25px}.memory{padding:15px;border:1px solid var(--line);background:#fff;border-radius:7px;min-width:0}.memory img{width:100%;height:210px;object-fit:cover;border-radius:3px}.memory summary{overflow-wrap:anywhere;padding:12px 0;cursor:pointer}.danger{background:#8e3f32}.notice{margin:20px 6%;padding:14px 18px;border:1px solid #b1c3a5;background:#edf3e8;overflow-wrap:anywhere}.error{border-color:#c89f91;background:#faeee8;color:#803923}footer{text-align:center;padding:28px;font:13px Georgia,serif;border-top:1px solid var(--line);color:var(--soft)}dialog{border:0;background:#19221c;color:#fff;width:min(1100px,94vw);max-height:92vh;padding:20px;border-radius:6px}dialog::backdrop{background:#000d}dialog img{width:100%;height:65vh;object-fit:contain}dialog h2{font-size:24px}dialog p{color:#dde5db}.viewer-controls{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:12px;font-size:12px}.viewer-controls button{background:#344738;padding:8px 12px}.viewer-controls>div{display:flex;gap:7px}@media(max-width:750px){.admin-grid{grid-template-columns:1fr}.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event{gap:24px}.event h3{font-size:27px}.header-actions{gap:10px}}@media(max-width:520px){header{padding:18px 5%;align-items:flex-start}.brand{font-size:22px}.header-actions{flex-direction:column;align-items:flex-end;gap:7px}.header-actions .muted{display:none}.timeline-heading{padding:35px 7% 25px}.timeline-heading h1{font-size:39px}.chapters{gap:12px 20px}.timeline{margin-top:25px}.chapter{padding-left:21px}.event{grid-template-columns:1fr;gap:15px;margin-bottom:35px}.event:before{left:-27px}.event h3{font-size:29px;margin:8px 0}.event p{margin-top:8px}.photo-open img{min-height:0;max-height:400px}.memory-grid{grid-template-columns:1fr}.panel{padding:19px}.viewer-controls{align-items:flex-start}dialog{padding:12px}dialog img{height:55vh}.auth{margin-top:35px}.auth h1{font-size:35px}input:not([type=checkbox]),select,textarea{font-size:16px}.heading h1{font-size:33px}.admin{margin-top:25px}}

/* Compact admin photo management */
.memory-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:start}.memory{padding:10px;border-radius:5px}.memory img{display:block;width:100%;height:112px;min-height:0;max-height:112px;object-fit:contain;background:#f0f1ec}.memory .check{font-size:11px;margin-bottom:8px;gap:5px}.memory summary{font-size:12px;line-height:1.5;padding:9px 0 0;overflow-wrap:anywhere}.memory details[open]{grid-column:span 2}.memory form{margin-top:12px}.memory label{font-size:12px}.memory input:not([type=checkbox]),.memory select,.memory textarea{padding:7px;font-size:13px}.pagination{display:flex;justify-content:space-between;gap:15px;align-items:center;flex-wrap:wrap;margin:20px 0}.pagination>div{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.pagination .button{font-size:12px;padding:6px 10px}#memories{scroll-margin-top:20px}@media(max-width:1000px){.memory-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:750px){.memory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.memory img{height:105px;max-height:105px}}@media(max-width:520px){.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.memory img{height:105px;max-height:105px}.memory details[open] input,.memory details[open] select,.memory details[open] textarea{font-size:16px}}

.family-pages{max-width:1150px;margin:0 auto 55px}.family-pages .timeline-heading{padding-top:40px;padding-bottom:30px}.family-pages .timeline-heading h1{font-size:clamp(32px,4vw,48px)}.back-link{display:block;margin-top:15px;font-size:13px}.chapter-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;padding:0 6%;}.chapter-cover{display:grid;grid-template-columns:130px 1fr;text-decoration:none;overflow:hidden;border:1px solid var(--line);border-radius:6px;min-height:145px;background:#fff}.chapter-cover img{width:130px;height:100%;min-height:145px;max-height:190px;object-fit:cover}.chapter-placeholder{background:#e9eee4;color:var(--green);display:flex;align-items:center;justify-content:center;font:16px Georgia,serif;min-height:145px}.chapter-cover-text{padding:20px}.chapter-cover h2{font-size:23px;margin:10px 0}.chapter-cover .small{color:var(--soft);font-size:11px}.chapter-content{padding:0 6%}.chapter-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.chapter-photo{min-width:0}.chapter-photo .photo-open img{width:100%;height:180px;min-height:0;max-height:180px;object-fit:contain;background:#eef0e9}.thumb-caption{display:block;color:var(--ink);font-size:14px;margin:8px 0 3px;overflow-wrap:anywhere}.chapter-photo .small{font-size:11px}.chapters a[aria-current=page]{font-weight:bold;text-decoration:underline}.viewer-controls a{font-size:11px;padding:7px 10px}.viewer-controls>div{flex-wrap:wrap;justify-content:flex-end}@media(max-width:800px){.chapter-overview{grid-template-columns:1fr}.chapter-cover{grid-template-columns:120px 1fr}.chapter-cover img{width:120px}.chapter-cover-text{padding:15px}}@media(max-width:520px){.chapter-photos{gap:14px}.chapter-photo .photo-open img{height:125px;max-height:125px}.thumb-caption{font-size:12px}.chapter-photo .small{font-size:10px}.chapter-cover h2{font-size:22px}.family-pages .timeline-heading h1{font-size:35px}}

/* Photos without colored side panels. */
.chapter-photo .photo-open img{background:transparent;width:auto;max-width:100%;margin-inline:auto}.memory img{background:transparent}

/* Keep the colored panel to the left; show the entire photo at the right. */
.chapter-photo .photo-open img{width:100%;max-width:100%;margin-inline:0;object-fit:contain;object-position:right center;background:#eef0e9}

.chapter-photo .photo-open img{background:#d8e3cf;object-fit:contain;object-position:right center}

.admin-sections{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 28px}.section-tab{display:flex;align-items:center;gap:9px;text-decoration:none;padding:10px 13px;border:1px solid var(--line);border-radius:5px;font-size:13px;background:#fff}.section-tab span{background:#edf0e8;padding:0 7px;border-radius:10px;font-size:11px;color:var(--ink)}.section-tab[aria-current=page]{background:var(--ink);color:#fff;border-color:var(--ink)}@media(max-width:520px){.admin-sections{display:grid;grid-template-columns:1fr 1fr}.section-tab{font-size:12px;justify-content:space-between;padding:9px}}

/* Reserve final geometry before images load; no JavaScript resizing. */
.chapter-photo{--thumb-height:180px;--image-width:min(100%,calc(var(--thumb-height) * var(--photo-ratio,1)))}
.chapter-photo .photo-open img{height:var(--thumb-height);max-height:var(--thumb-height);width:calc((100% + min(100%,calc(var(--thumb-height) * var(--photo-ratio,1)))) / 2);margin-left:auto;margin-right:0;object-fit:contain;object-position:right center;background:#d8e3cf}
.chapter-photo .photo-open>.small{display:block;width:calc((100% - min(100%,calc(var(--thumb-height) * var(--photo-ratio,1)))) / 2);margin-left:auto;margin-right:min(100%,calc(var(--thumb-height) * var(--photo-ratio,1)));text-align:center;white-space:nowrap;margin-top:8px}
@media(max-width:520px){.chapter-photo{--thumb-height:125px}}

/* Identical frames: a fixed green column and an uncropped photo area. */
.chapter-photo .photo-open{display:grid;grid-template-columns:clamp(65px,28%,110px) minmax(0,1fr);grid-template-rows:var(--thumb-height) auto;width:min(100%,380px);margin-left:auto;column-gap:0;row-gap:8px;align-items:start}
.chapter-photo .photo-open::before{content:'';display:block;grid-column:1;grid-row:1;width:100%;height:var(--thumb-height);background:#d8e3cf;border-radius:3px 0 0 3px}
.chapter-photo .photo-open img{grid-column:2;grid-row:1;width:100%;height:var(--thumb-height);max-height:var(--thumb-height);margin:0;object-fit:contain;object-position:left center;background:transparent;border-radius:0}
.chapter-photo .photo-open>.small{grid-column:1;grid-row:2;width:100%;margin:0;text-align:center;white-space:normal;line-height:1.5}
.chapter-photo .photo-open>.thumb-caption{grid-column:2;grid-row:2;margin:0;padding-left:8px}
@media(max-width:520px){.chapter-photo .photo-open{grid-template-columns:55px minmax(0,1fr)}.chapter-photo .photo-open>.small{font-size:10px}}

/* Matching thumbnail frames; originals remain untouched. */
.chapter-photo .photo-open img{object-fit:cover;object-position:center center}
