:root{--paper:#f4f0e7;--paper-deep:#e8e0d2;--ink:#26221d;--muted:#70695f;--line:#26221d2b;--accent:#b44f2b;--accent-dark:#77331d;--display:Georgia, "Times New Roman", serif;--body:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--content:74rem;--reading:47rem}html[data-site=family]{--paper:#f6f3ea;--paper-deep:#e6eee9;--ink:#17332f;--muted:#65736f;--line:#17332f2b;--accent:#17766c;--accent-dark:#0c4e48;--display:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans CJK SC", sans-serif}html[data-site=personal]{--paper:#f3efe6;--paper-deep:#e4e7e3;--ink:#183631;--muted:#667a82;--line:#1836312e;--accent:#b75d48;--accent-dark:#183631;--display:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}html[data-site=root]{--paper:#f3efe6;--paper-deep:#dce3df;--ink:#183631;--muted:#667a82;--line:#1624372b;--accent:#c1833d;--accent-dark:#183631;--display:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:20rem;color:var(--ink);background:var(--paper);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.65}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration-color:color-mix(in srgb, var(--accent) 55%, transparent);text-underline-offset:.18em}a:hover{color:var(--accent-dark)}h1,h2,h3{font-family:var(--display);letter-spacing:-.025em;font-weight:500;line-height:1.04}h1{margin:0;font-size:clamp(3.1rem,8vw,7.8rem)}h2{font-size:clamp(2rem,4vw,3.6rem)}h3{font-size:clamp(1.35rem,2.3vw,2rem)}.skip-link{z-index:100;background:var(--ink);color:var(--paper);padding:.7rem 1rem;position:fixed;top:-5rem;left:1rem}.skip-link:focus{top:1rem}.site-header{width:min(calc(100% - 2rem), var(--content));border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:2rem;min-height:7rem;margin:0 auto;padding:1.3rem 0;display:flex}.wordmark{font-family:var(--body);letter-spacing:.055em;text-transform:uppercase;flex-direction:column;font-size:1.25rem;font-weight:650;line-height:1;text-decoration:none;display:flex}.wordmark-kicker{font-family:var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:.45rem;font-size:.65rem;font-weight:700}.site-header nav{flex-wrap:wrap;justify-content:flex-end;gap:.45rem 1.35rem;display:flex}.site-header nav a{letter-spacing:.045em;padding:.5rem .15rem;font-size:.78rem;font-weight:650;text-decoration:none}.family-navigation{gap:.45rem 1rem!important}.family-navigation a{text-align:center;flex-direction:column;line-height:1.32;display:flex;font-size:.9rem!important}.family-navigation a span:first-child{color:var(--accent-dark);font-size:1rem}.family-navigation a span:last-child{color:var(--muted);font-size:.76rem}html[data-site=family] .wordmark-kicker{font-size:.85rem}html[data-site=family] .eyebrow{letter-spacing:.1em;font-size:.88rem}.content-shell{width:min(calc(100% - 2rem), var(--content));margin-inline:auto}.eyebrow{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin:0 0 .8rem;font-size:.72rem;font-weight:750;line-height:1.4}.section-heading{max-width:42rem;margin-bottom:clamp(2.5rem,6vw,5.5rem)}.section-heading h2{margin:0 0 1rem}.section-heading>p:last-child{color:var(--muted);font-size:1.05rem}.gallery-home{grid-template-rows:auto minmax(0,1fr) auto;min-height:100svh;display:grid}.gallery-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:2rem;min-height:7rem;display:flex}.gallery-name{color:var(--ink);letter-spacing:.075em;text-transform:uppercase;font-size:1.35rem;font-weight:600;text-decoration:none}.gallery-header nav{justify-content:flex-end;align-items:center;gap:.7rem;display:flex}.gallery-header nav a{letter-spacing:.045em;border:1px solid #0000;align-items:center;min-height:2.75rem;padding:.6rem .9rem;font-size:.78rem;text-decoration:none;display:inline-flex}.gallery-header nav a:hover,.gallery-header nav a:focus-visible{color:var(--paper);background:var(--ink);border-color:var(--ink);outline:none}.gallery-header .gallery-portal{border-color:var(--line)}.gallery-portal span{color:var(--muted);margin-left:.25rem}.gallery-header .gallery-portal:hover span,.gallery-header .gallery-portal:focus-visible span{color:inherit}.gallery-hero{grid-template-columns:minmax(0,1.15fr) minmax(22rem,.85fr);align-items:center;gap:clamp(3rem,7vw,7rem);min-height:44rem;padding-block:clamp(3.5rem,7vh,6rem);display:grid}.gallery-copy{max-width:48rem}.gallery-copy h1{color:var(--ink);letter-spacing:-.018em;margin:0 0 clamp(2.5rem,5vh,4rem);font-size:clamp(3.4rem,5.4vw,5.4rem);font-weight:520;line-height:1.075}.gallery-bio{border-left:2px solid var(--accent);color:#252b29;max-width:44rem;margin:0;padding-left:1.6rem;font-size:clamp(1.05rem,1.35vw,1.3rem);line-height:1.65}.gallery-portrait{aspect-ratio:1/1.08;background:#667a82;margin:0;overflow:hidden}.gallery-portrait img{object-fit:cover;object-position:center 38%;width:100%;height:100%}.gallery-milestones{border-top:1px solid var(--line);min-height:6.75rem;color:var(--muted);letter-spacing:.085em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:1rem 1.5rem;font-size:.68rem;font-weight:650;line-height:1.4;display:flex}.gallery-milestones span{align-items:center;gap:.8rem;display:inline-flex}.gallery-milestones span:not(:last-child):after{content:"";background:var(--accent);border-radius:50%;width:.25rem;height:.25rem}.personal-hero{width:min(calc(100% - 2rem), var(--content));grid-template-columns:minmax(0,1.5fr) minmax(17rem,.55fr);align-items:end;gap:clamp(2rem,8vw,8rem);min-height:33rem;margin:0 auto;padding:clamp(4rem,10vw,9rem) 0 clamp(3rem,8vw,7rem);display:grid}.personal-hero h1{letter-spacing:-.02em;font-size:clamp(3.25rem,6.4vw,6.25rem)}.personal-hero h1 em{color:var(--accent);font-style:normal;font-weight:500}.hero-deck{border-top:0;border-left:2px solid var(--accent);max-width:27rem;color:var(--muted);font-family:var(--body);margin:0 0 .6rem;padding:1.35rem 0 0 1.35rem;font-size:1.12rem;line-height:1.6}.listing{border-top:1px solid var(--line);padding:clamp(4rem,8vw,7rem) 0}.card-list,.feature-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid}.post-card{background:var(--paper);min-height:20rem;padding:clamp(1.5rem,4vw,3.4rem)}.post-card h2{letter-spacing:-.012em;margin:0 0 1.1rem;font-size:clamp(1.65rem,2.8vw,2.65rem)}.post-card h2 a{text-decoration:none}.post-card>p:not(.eyebrow){max-width:35rem;color:var(--muted)}.text-link{color:var(--accent-dark);margin-top:1.2rem;font-weight:700;text-decoration:none;display:inline-block}.family-hero{background:var(--accent-dark);width:min(100% - 2rem,92rem);min-height:46rem;margin:1.4rem auto 0;position:relative;overflow:hidden}.family-hero>img{object-fit:cover;filter:saturate(.83)contrast(.96);width:100%;height:100%;position:absolute;inset:0}.family-hero:after{content:"";background:linear-gradient(90deg,#06231fd1,#06231f57 53%,#06231f0d);position:absolute;inset:0}.family-hero-card{z-index:1;color:#fff;width:min(92%,38rem);padding:clamp(4rem,8vw,8rem) clamp(1.5rem,5vw,5rem);position:relative}.family-hero-card h1{font-size:clamp(3.4rem,6.4vw,6.2rem)}.family-hero-card>p:not(.eyebrow){max-width:31rem;font-family:var(--display);margin:1.6rem 0 2rem;font-size:1.28rem}.button-link{border:1px solid #ffffffb3;padding:.85rem 1.15rem;font-weight:700;text-decoration:none;display:inline-flex}.button-link:hover{color:#fff;background:#ffffff1f}.family-intro{padding:clamp(5rem,9vw,9rem) 0}.family-intro>h2{max-width:50rem;margin:0 0 3rem}.family-feature-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:minmax(0,1.3fr) minmax(20rem,.7fr);gap:1px;display:grid}.family-story-list{background:var(--line);align-content:start;gap:1px;display:grid}.family-story-list .post-card{min-height:15rem}.album-cover-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding-bottom:7rem;display:grid}.album-cover-card{color:#fff;background:var(--ink);min-height:31rem;text-decoration:none;display:block;position:relative;overflow:hidden}.album-cover-card>img{object-fit:cover;width:100%;height:100%;transition:transform .45s,filter .45s;position:absolute;inset:0}.album-cover-shade{background:linear-gradient(#081c1914 30%,#081c19e0);position:absolute;inset:0}.album-cover-copy{z-index:2;flex-direction:column;align-items:flex-start;padding:clamp(1.5rem,4vw,3.25rem);display:flex;position:absolute;bottom:0;left:0;right:0}.album-cover-copy small{letter-spacing:.13em;text-transform:uppercase;margin-bottom:.7rem;font-size:.7rem;font-weight:700}.album-cover-copy strong{max-width:35rem;font-size:clamp(2rem,4vw,4rem);font-weight:560;line-height:1.05}.album-cover-copy>span{color:#fffc;max-width:35rem;margin-top:.8rem;font-size:.9rem}.album-cover-card:hover{color:#fff}.album-cover-card:hover>img{filter:saturate(1.08);transform:scale(1.025)}.wedding-feature{padding-bottom:7rem}.wedding-cover{min-height:clamp(30rem,62vw,47rem)}.wedding-album-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding-bottom:clamp(4rem,8vw,7rem);display:grid}.wedding-album-grid .wedding-cover{min-height:clamp(25rem,44vw,38rem)}.wedding-album-grid .album-cover-copy strong{font-size:clamp(1.75rem,3.1vw,3rem)}.wedding-details{border:1px solid var(--line);background:var(--paper-deep);max-width:48rem;margin-bottom:7rem;padding:clamp(2rem,5vw,4rem)}.wedding-details h2{margin:.5rem 0 1rem;font-size:clamp(1.8rem,3.5vw,3.2rem)}.wedding-details p:last-child{color:var(--muted);margin-bottom:0}.page-hero{padding:clamp(4rem,9vw,8rem) 0 clamp(3rem,6vw,5rem)}.page-hero h1{max-width:60rem;font-size:clamp(3rem,6vw,5.6rem)}.page-hero>p:last-child{max-width:38rem;color:var(--muted);font-size:1.15rem}.family-section-hero h1 span{color:var(--accent);font-size:.58em}.family-section-grid{background:var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-bottom:7rem;padding:1px;display:grid}.family-section-grid a{background:var(--paper);flex-direction:column;min-height:18rem;padding:clamp(1.5rem,4vw,3.5rem);text-decoration:none;display:flex}.family-section-grid a>span{color:var(--accent);font-family:var(--display);font-size:1.15rem}.family-section-grid strong{font-family:var(--display);margin:auto 0 1rem;font-size:clamp(1.7rem,3vw,2.8rem);font-weight:500;line-height:1.08}.family-section-grid small{color:var(--muted)}.family-collection-list{padding-bottom:7rem}.family-collection-list>a{border-top:1px solid var(--line);grid-template-columns:4rem minmax(0,1fr) auto;align-items:baseline;gap:1rem;padding:1.25rem 0;text-decoration:none;display:grid}.family-collection-list>a:last-of-type{border-bottom:1px solid var(--line)}.family-collection-list>a>span,.family-collection-list small{color:var(--muted)}.family-collection-list strong{font-family:var(--display);font-size:clamp(1.45rem,3vw,2.4rem);font-weight:500}.prototype-note{max-width:40rem;color:var(--muted);margin-top:2rem;font-size:.85rem}.archive-introduction{background:var(--paper-deep);grid-template-columns:1.3fr 1fr;gap:clamp(2rem,7vw,6rem);margin-bottom:7rem;padding:clamp(2rem,6vw,5rem);display:grid}.archive-introduction h2{margin:0 0 1rem}.archive-introduction ul{margin:0;padding:0;list-style:none}.archive-introduction li{border-bottom:1px solid var(--line);padding:.8rem 0}.archive-button{margin-top:1.2rem;font-weight:750;text-decoration:none;display:inline-block}.protected-archive{padding-bottom:7rem}.protected-archive>.archive-button{margin-top:2rem}.article-shell{width:min(calc(100% - 2rem), var(--content));margin:0 auto;padding-bottom:7rem}.article-header{max-width:66rem;padding:clamp(4rem,9vw,8.5rem) 0 clamp(2.5rem,6vw,5.5rem)}.article-header h1{font-size:clamp(3rem,7vw,6.5rem)}.with-gallery .article-header{max-width:52rem;padding-bottom:clamp(1.5rem,3vw,2.5rem)}.with-gallery .article-header h1{font-size:clamp(2.6rem,5vw,4.8rem)}.article-deck{max-width:50rem;color:var(--muted);font-family:var(--display);margin:1.8rem 0;font-size:clamp(1.2rem,2.4vw,1.65rem);line-height:1.48}.category-list{flex-wrap:wrap;gap:.5rem;margin:2rem 0 0;padding:0;list-style:none;display:flex}.category-list li{border:1px solid var(--line);text-transform:uppercase;padding:.35rem .65rem;font-size:.72rem;font-weight:700}.prose{max-width:var(--reading);font-family:var(--display);font-size:clamp(1.08rem,1.8vw,1.25rem);line-height:1.78}.prose h2,.prose h3{margin-top:2.8em}.prose img{margin:2rem auto}.prose iframe,.prose video,.prose audio{max-width:100%}.prose blockquote{border-left:4px solid var(--accent);color:var(--muted);margin:2.4rem 0;padding:.2rem 0 .2rem 1.5rem;font-size:1.2em}.legacy-caption{margin:2rem 0}.visibility-badge{border:1px solid var(--accent);width:fit-content;color:var(--accent-dark);font-family:var(--body);flex-wrap:wrap;gap:.35rem 1rem;margin-bottom:2.4rem;padding:.75rem 1rem;font-size:.78rem;display:flex}.visibility-badge span{color:var(--muted)}.visibility-badge.protected{color:#5e3511;background:#fff4dd;border-color:#b8782c}.photo-section{border-top:1px solid var(--line);margin-top:clamp(4rem,9vw,9rem);padding-top:clamp(3rem,6vw,5rem)}.photo-grid{columns:3 18rem;column-gap:.8rem}.photo-tile{break-inside:avoid;background:var(--paper-deep);margin:0 0 .8rem;overflow:hidden}.photo-tile a{display:block;overflow:hidden}.photo-tile img{width:100%;transition:transform .35s,filter .35s}.photo-tile a:hover img{filter:saturate(1.08);transform:scale(1.018)}.photo-tile figcaption{color:var(--muted);padding:.65rem .75rem .8rem;font-size:.78rem;line-height:1.4}.pswp__caption{z-index:20;color:#fff;text-align:center;text-shadow:0 2px 5px #000000f2,0 0 12px #000c;pointer-events:none;background:linear-gradient(90deg,#0000,#0006 20% 80%,#0000);width:min(100% - 6rem,54rem);padding:.5rem .85rem;font-size:.92rem;font-weight:650;line-height:1.4;position:absolute;top:3.35rem;left:50%;transform:translate(-50%)}.visibility-table-wrap{padding-bottom:7rem;overflow-x:auto}.visibility-table{border-collapse:collapse;background:var(--paper);width:100%}.visibility-table th,.visibility-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.9rem}.visibility-table th{letter-spacing:.08em;text-transform:uppercase;font-size:.72rem}.visibility-table code{color:var(--accent-dark)}.site-footer{width:min(calc(100% - 2rem), var(--content));border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:2rem;margin:0 auto;padding:2.2rem 0 3rem;font-size:.78rem;display:flex}@media (width<=720px){.site-header{align-items:flex-start}.site-header nav{gap:.3rem .8rem;max-width:14rem}html[data-site=family] .site-header{display:block}.family-navigation{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:1.2rem;gap:.7rem .5rem!important;max-width:none!important;display:grid!important}.gallery-header{align-items:flex-start;min-height:auto;padding-block:1.4rem}.gallery-header nav{flex-wrap:wrap;max-width:22rem}.gallery-hero{grid-template-columns:1fr;gap:2.5rem;min-height:auto;padding-block:3.5rem}.gallery-copy h1{font-size:clamp(3rem,11vw,4.4rem)}.gallery-portrait{width:min(100%,35rem)}.gallery-milestones{flex-wrap:wrap;justify-content:flex-start;padding-block:1.5rem}.family-section-grid{grid-template-columns:1fr}.family-section-grid a{min-height:14rem}.archive-introduction{grid-template-columns:1fr}.personal-hero{grid-template-columns:1fr;align-content:end;min-height:32rem}.card-list,.feature-grid{grid-template-columns:1fr}.family-hero{min-height:39rem}.family-hero:after{background:linear-gradient(#06231f1f,#06231fe0)}.family-hero-card{padding-block:3rem;position:absolute;bottom:0;left:0}.family-feature-grid,.album-cover-grid,.wedding-album-grid{grid-template-columns:1fr}.album-cover-card{min-height:27rem}.photo-grid{columns:2 9rem}.site-footer{flex-direction:column;gap:.2rem}}@media (width<=430px){.wordmark-kicker{display:none}.wordmark{font-size:1.2rem}.site-header nav{font-size:.75rem}.family-navigation{grid-template-columns:repeat(2,minmax(0,1fr))}.family-navigation a span:first-child{font-size:.95rem}.family-navigation a span:last-child{font-size:.74rem}.gallery-header{display:block}.gallery-header nav{justify-content:flex-start;gap:.35rem;margin-top:1rem}.gallery-header nav a{padding-inline:.55rem}.gallery-portal span{display:none}.gallery-copy h1{font-size:clamp(2.75rem,13vw,3.8rem)}.pswp__caption{width:calc(100% - 4.5rem);font-size:.82rem;top:3rem}.photo-grid{columns:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
