.welcome{display:grid;grid-template-columns:1fr 1fr;gap:2rem 2.7rem}.welcome-title{grid-column:1/-1;max-width:930px}.welcome h1{font-size:clamp(2.8rem,4.7vw,5.2rem);line-height:1.05;margin:1rem 0 1.4rem}.welcome h1 em{color:var(--gold);font-weight:400}.welcome-image{margin:0;align-self:start;position:sticky;top:2rem;border:1px solid var(--line);background:var(--panel)}.welcome-image>button{display:block;padding:1rem;border:0;background:var(--paper);width:100%}.welcome-image img{width:100%;height:auto;display:block}.welcome-image figcaption{padding:1.1rem;font-size:.85rem;color:var(--muted)}.welcome-image figcaption button{display:block;color:var(--gold);margin:.5rem 0 0;text-align:left}.welcome-letter{max-width:640px}.welcome-letter>p{color:#cbd7d9;line-height:1.8;margin-top:1.1rem}.welcome-letter>.welcome-lead{font-family:Georgia,serif;font-size:1.5rem;color:var(--ink);line-height:1.45;margin-top:0}.welcome-signature{margin:2.3rem 0}.welcome-signature p{font-family:Georgia,serif;font-size:1.5rem;font-style:italic;color:var(--gold);line-height:1.4;margin:1rem 0 .5rem}.welcome-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);margin-top:2.5rem;padding-top:2rem;gap:2rem}.welcome-paths a{text-decoration:none}.welcome-paths a:hover h2{color:var(--gold)}.welcome-paths h2{font-size:1.7rem;line-height:1.25;margin-top:.65rem}.welcome-paths h2 span{color:var(--gold)}.welcome-paths p{font-size:.9rem;color:var(--muted);margin-top:.7rem}.gallery-tabs{display:flex;flex-wrap:wrap;gap:.8rem;border-bottom:1px solid var(--line);padding-bottom:1.5rem;margin-bottom:2rem}.gallery-tabs .city-tab{padding:.75rem 1.4rem}.gallery-intro{display:flex;justify-content:space-between;gap:2rem;align-items:start;margin-bottom:2.5rem}.gallery-intro h2{font-size:2.2rem;max-width:470px}.gallery-intro p{max-width:450px;color:var(--muted);font-size:.95rem;margin:0;line-height:1.7}.portrait-pyramid{max-width:1500px;margin:auto}.portrait-generation{position:relative;margin:0 auto 2rem;padding-top:1.2rem}.portrait-generation+.portrait-generation:before{content:'';position:absolute;left:50%;top:-1.6rem;height:1.8rem;width:1px;background:var(--gold)}.generation-title{text-align:center;margin-bottom:1.4rem}.generation-title h2{font-size:1.65rem;letter-spacing:-.02em;margin:.4rem 0}.generation-title p{font-size:.85rem;color:var(--muted);margin:.5rem 0 0}.portrait-row{display:grid;gap:.75rem;align-items:stretch}.couple{max-width:560px}.couple .portrait-row{grid-template-columns:repeat(2,minmax(0,1fr))}.daughters{max-width:1050px}.daughters .portrait-row{grid-template-columns:repeat(5,minmax(0,1fr))}.dated-grandchildren{max-width:740px;margin:auto;grid-template-columns:repeat(3,minmax(0,1fr))}.undated-grandchildren{grid-template-columns:repeat(7,minmax(0,1fr))}.portrait-card{border:1px solid var(--line);background:var(--panel);min-width:0;display:flex;flex-direction:column}.gallery-portrait-image{padding:.6rem;background:var(--paper);border:0;height:240px;display:block;width:100%}.gallery-portrait-image img{display:block;object-fit:contain;width:100%;height:100%}.portrait-unlocated{height:95px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;border-bottom:1px solid var(--line);color:var(--muted);background:#0e242e;font-size:.72rem;text-align:center;padding:.5rem}.couple .portrait-unlocated{height:240px}.portrait-monogram{font-family:Georgia,serif;color:#73898a;font-size:2.1rem;letter-spacing:-.13em;padding-right:.2rem}.couple .portrait-monogram{font-size:3.8rem}.portrait-card-copy{padding:1rem .85rem;display:flex;flex-direction:column;flex:1}.portrait-date{font-size:.75rem;color:var(--gold);min-height:2.5em;line-height:1.45}.portrait-card h3{font-size:1.23rem;line-height:1.25;overflow-wrap:anywhere}.portrait-card h3 span{display:block;font-size:.88em;margin-top:.4rem;color:#c5d2d4}.portrait-branch{font-size:.72rem;color:var(--muted);margin:.8rem 0;line-height:1.5}.portrait-card .quiet{margin:0;text-align:left;color:var(--gold);font-size:.77rem}.portrait-card .portrait-profile{margin-top:auto;padding-top:.65rem;min-height:44px}.portrait-profile span{margin-left:0}.undated-heading{text-align:center;margin:2rem auto 1.4rem;max-width:650px}.undated-heading h3{font-size:1.35rem}.undated-heading p{color:var(--muted);font-size:.875rem;margin-top:.6rem}.collection-controls{margin-bottom:1.5rem}.collection-filters{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1rem}.collection-filters .city-tab{padding:.6rem .85rem;font-size:.85rem;min-height:44px}.collection-filters span{margin-left:.4rem;color:var(--muted)}.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;align-items:start}.collection-card{border:1px solid var(--line);background:var(--panel);min-width:0}.collection-image{display:block;width:100%;height:245px;border:0;background:var(--paper);padding:.85rem}.collection-image img{display:block;width:100%;height:100%;object-fit:contain}.collection-copy{padding:1.2rem}.collection-copy .eyebrow{font-size:.68rem;letter-spacing:.1em}.collection-copy h3{font-size:1.5rem;line-height:1.22;margin-top:.6rem}.collection-copy p{font-size:.84rem;line-height:1.65;color:var(--muted);margin-top:.8rem}.collection-copy .collection-era{color:var(--gold);font-size:.77rem}.collection-copy .quiet{color:var(--gold);text-align:left;margin:1rem 0 0;min-height:44px}.family-photo-empty{max-width:740px;margin:3rem auto 2rem;border:1px solid var(--line);padding:3rem;text-align:center;background:var(--panel)}.album-mark{font:4rem Georgia,serif;letter-spacing:-.13em;color:var(--gold);padding-right:.3rem;margin-bottom:1.7rem}.family-photo-empty h2{font-size:2.5rem;margin-top:.8rem}.family-photo-empty p{color:var(--muted);line-height:1.75}.family-photo-empty .secondary{margin-top:1.8rem}.family-photo-empty .source-note{font-size:.8rem}.sidebar .nav{gap:.7rem}.sidebar .nav span{flex:none}.sidebar .nav[data-view=galeria]{font-size:.875rem}
.gallery-branch-caption{color:var(--gold);text-align:center;margin:1.6rem 0}.branch-generation{max-width:var(--generation-width)}.branch-generation .portrait-row{grid-template-columns:repeat(var(--portrait-columns),minmax(0,1fr))}.branch-generation-first .portrait-unlocated{min-height:160px}.branch-generation .undated-heading{margin:1.2rem auto}.branch-generation .gallery-portrait-image{height:220px}
@media(max-width:1400px){.undated-grandchildren{grid-template-columns:repeat(4,minmax(0,1fr))}.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.daughters .portrait-card-copy{padding:.8rem .65rem}.daughters .portrait-card h3{font-size:1.1rem}.branch-generation .portrait-row{grid-template-columns:repeat(min(var(--portrait-columns),4),minmax(0,1fr))}}
@media(max-width:1000px){.welcome{grid-template-columns:1fr}.welcome-image{position:static;max-width:650px}.welcome-letter{max-width:none}.welcome-paths{gap:1.2rem}.welcome-paths h2{font-size:1.5rem}.gallery-intro{display:block}.gallery-intro p{margin-top:1rem;max-width:650px}.daughters .portrait-row{grid-template-columns:repeat(3,minmax(0,1fr))}.undated-grandchildren{grid-template-columns:repeat(3,minmax(0,1fr))}.daughters .portrait-card h3{font-size:1.23rem}}
@media(max-width:620px){nav{grid-template-columns:repeat(3,minmax(0,1fr))}.sidebar .nav[data-view=galeria]{font-size:.875rem}.welcome h1{font-size:2.65rem}.welcome{gap:1.5rem}.welcome-title h1{margin-bottom:.7rem}.welcome-image>button{padding:.6rem}.welcome-paths{grid-template-columns:1fr;gap:1.8rem}.welcome-letter>p{font-size:.96rem}.welcome-signature p{font-size:1.35rem}.gallery-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.gallery-tabs .city-tab{padding:.65rem .4rem;font-size:.85rem}.gallery-intro h2{font-size:2rem}.portrait-card-copy{padding:.9rem .65rem}.portrait-card h3,.daughters .portrait-card h3{font-size:1.13rem}.portrait-row{gap:.6rem}.couple .portrait-unlocated,.gallery-portrait-image{height:205px}.daughters .portrait-row,.dated-grandchildren,.undated-grandchildren{grid-template-columns:repeat(2,minmax(0,1fr))}.portrait-date{min-height:2.5em}.portrait-generation+.portrait-generation:before{top:-1.4rem}.collection-grid{grid-template-columns:1fr}.collection-image{height:280px}.family-photo-empty{padding:2rem 1.2rem;margin-top:1.5rem}.family-photo-empty h2{font-size:2rem}.collection-filters .city-tab{font-size:.8rem}.welcome-image figcaption button{min-height:44px}.gallery-tabs .city-tab{min-height:52px}}
@media(max-width:1000px){.branch-generation .portrait-row{grid-template-columns:repeat(min(var(--portrait-columns),3),minmax(0,1fr))}}@media(max-width:620px){.branch-generation .portrait-row{grid-template-columns:repeat(min(var(--portrait-columns),2),minmax(0,1fr))}.branch-generation .gallery-portrait-image{height:205px}.branch-generation-first .portrait-unlocated{min-height:130px}}
.branch-selector,.journey-person-label{display:flex;flex-direction:column;gap:.65rem;color:var(--muted);font-size:.9rem;margin:1.5rem 0;max-width:640px}.branch-selector select,.journey-person-label select{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);padding:.9rem 2.5rem .9rem 1rem;border-radius:0;min-height:48px;width:100%}.family-tabs{flex-wrap:wrap}.branch-selector select:focus-visible,.journey-person-label select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.contact-card{max-width:850px;border:1px solid var(--line);background:var(--panel);padding:clamp(1.5rem,4vw,3rem);margin-top:2rem}.contact-card h2{font:400 clamp(1.9rem,3.4vw,3.2rem)/1.22 Georgia,serif;margin:1rem 0 1.8rem}.contact-card p{color:var(--muted);margin:1.7rem 0 .7rem}.contact-email{display:inline-block;color:var(--gold);font-size:clamp(1rem,1.6vw,1.3rem);line-height:1.6;overflow-wrap:anywhere;text-underline-offset:.25em;padding-bottom:.5rem}

.memory-records{margin-top:3rem;border-top:1px solid var(--line);padding-top:2.5rem}.memory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.memory-card{border:1px solid var(--line);padding:1.5rem;background:var(--panel)}.memory-card h3{font-size:1.7rem;margin:.8rem 0}.memory-card p{font-size:1rem;line-height:1.7;color:var(--muted)}.memory-sources{display:grid;gap:.7rem;margin-top:1.2rem;font-size:.875rem}.memory-sources a{overflow-wrap:anywhere}@media(max-width:700px){.memory-grid{grid-template-columns:1fr}}
