:root{--parchment:#f4efe4;--parchment-deep:#e8dfd0;--ink:#2a2218;--ink-muted:#5c5248;--ink-faint:#8a7f72;--accent:#7a5c3a;--accent-light:#a67c52;--border:#d4c9b8;--card:#faf7f0;--shadow:0 2px 20px #2a22180f;--font-serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;--font-sans:"Source Sans 3", system-ui, sans-serif;font-family:var(--font-sans);color:var(--ink-muted);background-color:var(--parchment);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:17px;font-weight:300;line-height:1.6}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{min-height:100svh;margin:0;overflow-x:hidden}#root{min-height:100svh}h1,h2,h3{font-family:var(--font-serif);color:var(--ink);font-weight:400;line-height:1.15}h1{letter-spacing:-.02em;font-size:clamp(2.75rem,6vw,4.5rem)}h2{letter-spacing:-.01em;font-size:clamp(2rem,4vw,2.75rem)}h3{font-size:1.5rem}p{margin:0}a{color:inherit}img{max-width:100%;display:block}@keyframes rise-in{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:translateY(0)}}@keyframes header-in{0%{opacity:0;transform:translateY(-.75rem)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0s);transform:translateY(1.25rem)}.reveal--visible{opacity:1;transform:translateY(0)}.hero-enter{opacity:0;animation:.85s cubic-bezier(.22,1,.36,1) forwards rise-in;animation-delay:var(--enter-delay,0s)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}.hero-enter{opacity:1;animation:none}.carousel-image{transition:none!important}}.site{flex-direction:column;min-height:100svh;display:flex}.site-header{padding:1rem clamp(1rem,4vw,3rem);padding-top:max(1rem, env(safe-area-inset-top));-webkit-backdrop-filter:blur(12px);z-index:10;background:#f4efe4b8;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:1rem;transition:border-color .3s,box-shadow .3s,background .3s;animation:.6s cubic-bezier(.22,1,.36,1) forwards header-in;display:flex;position:sticky;top:0}body.is-scrolled .site-header{border-bottom-color:var(--border);background:#f4efe4f0;box-shadow:0 4px 24px #2a22180f}.site-logo{align-items:center;gap:.75rem;min-width:0;text-decoration:none;transition:opacity .2s;display:flex}.site-logo:active{opacity:.7}.site-logo-mark{border:1px solid var(--border);width:2.25rem;height:2.25rem;font-family:var(--font-serif);color:var(--accent);background:var(--card);border-radius:2px;flex-shrink:0;place-items:center;font-size:1.25rem;transition:border-color .25s,transform .25s;display:grid}.site-logo:hover .site-logo-mark{border-color:var(--accent-light);transform:scale(1.04)}.site-logo-text{font-family:var(--font-serif);color:var(--ink);letter-spacing:.02em;white-space:nowrap;font-size:clamp(1.1rem,3.5vw,1.35rem)}.site-logo-text em{color:var(--ink-faint);font-style:italic}.site-nav{flex-shrink:0;gap:clamp(.75rem,3vw,1.75rem);margin:0;padding:0;list-style:none;display:flex}.site-nav a{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);padding:.35rem 0;font-size:clamp(.72rem,2.5vw,.9rem);text-decoration:none;transition:color .2s;position:relative}.site-nav a:after{content:"";background:var(--accent);transform-origin:100%;width:100%;height:1px;transition:transform .3s cubic-bezier(.22,1,.36,1);position:absolute;bottom:0;left:0;transform:scaleX(0)}.site-nav a:hover:after,.site-nav a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.site-nav a:hover{color:var(--accent)}main{flex:1;width:min(1100px,100%);margin:0 auto;padding:0 clamp(1rem,4vw,3rem)}.section-header{margin-bottom:clamp(1.75rem,5vw,2.5rem)}.section-eyebrow,.hero-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent-light);margin-bottom:.75rem;font-size:.8rem}.section-lead{max-width:32rem;margin-top:.75rem;font-size:clamp(1rem,2.5vw,1.05rem);line-height:1.7}.hero{max-width:38rem;padding:clamp(2.5rem,8vw,6rem) 0 clamp(3rem,7vw,5rem)}.hero-lead{max-width:32rem;margin-top:1.25rem;font-size:clamp(1.05rem,2.8vw,1.15rem);line-height:1.7}.lineage{padding-bottom:clamp(3rem,8vw,4rem)}.lineage-list{flex-direction:column;max-width:36rem;margin:0;padding:0;list-style:none;display:flex}.lineage-item{border-bottom:1px solid var(--border);gap:1rem;padding:clamp(1.15rem,3vw,1.5rem) 0;display:flex}.lineage-item:first-child{border-top:1px solid var(--border)}.lineage-marker{letter-spacing:.04em;width:1.75rem;height:1.75rem;color:var(--accent);border:1px solid var(--border);border-radius:50%;flex-shrink:0;place-items:center;margin-top:.15rem;font-size:.75rem;transition:background .3s,border-color .3s,transform .3s;display:grid}.lineage-item:hover .lineage-marker{background:var(--card);border-color:var(--accent-light);transform:scale(1.08)}.lineage-content{min-width:0}.lineage-content h3{margin-bottom:.35rem;font-size:clamp(1.2rem,3.5vw,1.35rem)}.lineage-content p{font-size:clamp(.9rem,2.5vw,.95rem)}.lineage-milestone{font-family:var(--font-serif);color:var(--accent);margin-top:.5rem;font-style:italic}.family-photos{padding-bottom:clamp(3rem,8vw,4rem)}.carousel{width:100%;max-width:52rem}.carousel-frame{grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;display:grid;position:relative}.carousel-slide{background:var(--card);border:1px solid var(--border);min-width:0;box-shadow:var(--shadow);touch-action:pan-y pinch-zoom;border-radius:2px;margin:0;transition:box-shadow .3s;overflow:hidden}.carousel-slide:active{box-shadow:0 4px 28px #2a22181a}.carousel-image-stage{background:#1a1612;width:100%;height:min(68vh,32rem);position:relative;overflow:hidden}.carousel-image{object-fit:contain;opacity:0;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;will-change:opacity;width:100%;height:100%;transition:opacity .5s cubic-bezier(.4,0,.2,1);position:absolute;inset:0}.carousel-image.is-active{opacity:1;z-index:1}.carousel-caption{font-family:var(--font-serif);color:var(--ink);border-top:1px solid var(--border);text-align:center;padding:.85rem 1rem;font-size:clamp(.95rem,2.8vw,1.1rem);font-style:italic;line-height:1.4;transition:opacity .35s}.carousel-btn{border:1px solid var(--border);background:var(--card);color:var(--ink);cursor:pointer;border-radius:2px;flex-shrink:0;place-items:center;line-height:1;transition:border-color .2s,color .2s,background .2s,transform .15s;display:grid}.carousel-btn-side{width:2.75rem;height:2.75rem;font-size:1.5rem}.carousel-btn:hover{border-color:var(--accent-light);color:var(--accent);background:var(--parchment)}.carousel-btn:active{transform:scale(.94)}.carousel-controls-bar{justify-content:space-between;align-items:center;gap:.75rem;margin-top:.75rem;display:none}.carousel-btn-bar{width:2.75rem;height:2.75rem;font-size:1.35rem}.carousel-counter{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);text-align:center;flex:1;margin:0;font-size:.8rem}.carousel-dots{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1rem;display:flex}.carousel-dot{background:var(--border);cursor:pointer;border:none;border-radius:50%;width:.5rem;height:.5rem;padding:0;transition:background .25s,transform .25s cubic-bezier(.22,1,.36,1)}.carousel-dot:hover{background:var(--accent-light)}.carousel-dot[aria-selected=true]{background:var(--accent);transform:scale(1.35)}.site-footer{border-top:1px solid var(--border);background:var(--parchment-deep)}.footer-inner{width:min(1100px,100%);padding:clamp(2.5rem,7vw,3rem) clamp(1rem,4vw,3rem);padding-bottom:max(clamp(2.5rem, 7vw, 3rem), env(safe-area-inset-bottom));margin:0 auto}.footer-dedication{letter-spacing:.12em;text-transform:uppercase;color:var(--accent-light);margin-bottom:.75rem;font-size:.8rem}.footer-about h2{margin-bottom:.75rem;font-size:clamp(1.5rem,4vw,1.75rem)}.footer-about p{max-width:36rem;font-size:clamp(.95rem,2.5vw,1rem);line-height:1.7}.footer-note{border-top:1px solid var(--border);color:var(--ink-faint);margin-top:2.5rem;padding-top:1.5rem;font-size:.85rem}@media (width<=720px){.site-header{padding-inline:1rem}.site-nav a{padding:.5rem .15rem}.carousel-frame{grid-template-columns:1fr;gap:0}.carousel-btn-side{display:none}.carousel-controls-bar{display:flex}.carousel-image-stage{height:min(52vh,24rem)}.carousel-caption{padding-inline:.85rem}}@media (width<=420px){.lineage-item{gap:.85rem}}
