:root{--haint:#a8c5d4;--oak:#2f5d3a;--oak-deep:#1f3d28;--pine:#8b6914;--clapboard:#f7f4ef;--charcoal:#2c2a26;--gold:#c4a35a;--sky-top:#6b9bb8;--sky-mid:#a8c5d4;--porch-shade:#3d5a4a;--leaf:#4a7a55;--danger:#8b3a2f;--surface:#fff;--surface-muted:#f7f4ef;--input-bg:#fff;--border-subtle:color-mix(in srgb, var(--pine) 40%, #ccc);--radius:4px;--font-display:"Fraunces", Georgia, serif;--font-body:"Source Serif 4", Georgia, serif}[data-theme=dark]{--haint:#4a6270;--oak:#6aab7a;--oak-deep:#9fd4ad;--pine:#c4933a;--clapboard:#1e1c19;--charcoal:#e8e4dc;--gold:#e0c878;--sky-top:#1a2830;--sky-mid:#2a3d48;--porch-shade:#5a7a6a;--leaf:#7aab85;--danger:#d4756a;--surface:#2a2824;--surface-muted:#23211e;--input-bg:#2a2824;--border-subtle:color-mix(in srgb, var(--pine) 35%, #444)}*{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}body{font-family:var(--font-body);color:var(--charcoal);background:radial-gradient(ellipse 120% 80% at 50% -20%, var(--sky-top), transparent 55%), linear-gradient(180deg, var(--sky-mid) 0%, #7a9e8a 45%, var(--oak-deep) 100%);background-attachment:fixed;line-height:1.5}[data-theme=dark] body{background:radial-gradient(ellipse 120% 80% at 50% -20%, var(--sky-top), transparent 55%), linear-gradient(180deg, var(--sky-mid) 0%, #3a5248 45%, #0f1812 100%)}a{color:var(--oak-deep);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--pine)}h1,h2,h3,.brand{font-family:var(--font-display);letter-spacing:-.02em;font-weight:700}.shell{flex-direction:column;min-height:100vh;display:flex}.site-header{z-index:100;background:color-mix(in srgb, var(--oak-deep) 88%, black);color:var(--clapboard);border-bottom:3px solid var(--gold);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.5rem;display:flex;position:sticky;top:0}.site-header a{color:var(--clapboard);text-decoration:none}.site-header nav{flex-wrap:wrap;align-items:center;gap:.85rem 1.25rem;font-size:.95rem;display:flex}.site-header .brand{white-space:nowrap;font-size:1.15rem}.site-header .brand span{color:var(--gold)}.header-profile{border-radius:4px;flex-direction:column;align-items:flex-end;max-width:14rem;padding:.15rem .35rem;line-height:1.2;display:flex}.header-profile:hover{background:color-mix(in srgb, var(--clapboard) 12%, transparent)}.header-profile-email{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.85rem;overflow:hidden}.header-profile-role{text-transform:uppercase;letter-spacing:.04em;color:var(--gold);font-size:.72rem}.account-meta{gap:.85rem;margin:1.25rem 0 1.75rem;display:grid}.account-meta div{gap:.2rem;display:grid}.account-meta dt{text-transform:uppercase;letter-spacing:.04em;color:color-mix(in srgb, var(--charcoal) 55%, gray);font-size:.8rem}.account-meta dd{margin:0;font-size:1.05rem}.help-panel{max-width:44rem}.help-index{padding-left:1.25rem;line-height:1.7}.help-index a{color:var(--oak-deep);font-weight:600}.help-prose h1{color:var(--oak-deep);font-family:var(--font-display);margin-top:0}.help-prose h2{color:var(--oak-deep);font-family:var(--font-display);margin-top:1.75rem;font-size:1.25rem}.help-prose h3{color:var(--oak-deep);margin-top:1.25rem}.help-prose p,.help-prose li{line-height:1.55}.help-prose a{color:var(--oak)}.help-prose table{border-collapse:collapse;width:100%;margin:1rem 0;font-size:.95rem}.help-prose th,.help-prose td{border:1px solid var(--border-subtle);text-align:left;padding:.45rem .65rem}.help-prose th{background:var(--surface-muted)}.help-prose code{background:var(--surface-muted);border-radius:3px;padding:.1em .35em;font-size:.9em}.theme-toggle{appearance:none;border:1px solid color-mix(in srgb, var(--clapboard) 45%, transparent);background:color-mix(in srgb, var(--clapboard) 10%, transparent);color:var(--clapboard);font-family:var(--font-body);border-radius:var(--radius);cursor:pointer;padding:.25rem .55rem;font-size:.85rem;transition:background .15s}.theme-toggle:hover{background:color-mix(in srgb, var(--clapboard) 18%, transparent)}.theme-toggle:disabled{opacity:.6;cursor:wait}main{flex:1;width:min(1100px,100%);margin:0 auto;padding:1.5rem}.panel{background:color-mix(in srgb, var(--clapboard) 92%, var(--surface));border:1px solid color-mix(in srgb, var(--pine) 35%, transparent);border-radius:var(--radius);box-shadow:0 12px 40px color-mix(in srgb, var(--oak-deep) 25%, transparent);padding:1.25rem 1.5rem;animation:.45s ease-out rise}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.hero{place-items:center;min-height:100vh;padding:2rem 1.25rem;display:grid;position:relative;overflow:hidden}.hero:before{content:"";background:linear-gradient(180deg, color-mix(in srgb, var(--sky-top) 70%, transparent) 0%, color-mix(in srgb, var(--haint) 55%, transparent) 40%, color-mix(in srgb, var(--oak) 75%, black) 100%), repeating-linear-gradient(90deg, transparent, transparent 18px, color-mix(in srgb, var(--oak-deep) 8%, transparent) 18px, color-mix(in srgb, var(--oak-deep) 8%, transparent) 19px);z-index:0;position:absolute;inset:0}.hero-inner{z-index:1;text-align:center;color:var(--clapboard);max-width:40rem;animation:.8s ease-out fadeIn;position:relative}.hero-brand{font-family:var(--font-display);text-shadow:0 2px 18px #00000059;margin:0 0 .75rem;font-size:clamp(2.4rem,6vw,3.75rem);line-height:1.1}.hero-brand em{color:var(--gold);font-style:normal}.hero-lead{opacity:.95;margin:0 0 1.75rem;font-size:1.15rem}.cta-row{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.btn{appearance:none;cursor:pointer;font-family:var(--font-body);border-radius:var(--radius);background:var(--gold);color:var(--charcoal);border:none;padding:.65rem 1.2rem;font-size:1rem;font-weight:600;transition:transform .15s,background .15s}.btn:hover{background:color-mix(in srgb, var(--gold) 80%, white);transform:translateY(-1px)}.btn-secondary{color:var(--clapboard);border:1.5px solid color-mix(in srgb, var(--clapboard) 70%, transparent);background:0 0}.btn-secondary:hover{background:#ffffff1f}.btn-oak{background:var(--oak);color:var(--clapboard)}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{border:1px solid color-mix(in srgb, var(--oak) 40%, transparent);color:var(--oak-deep);background:0 0}.form{flex-direction:column;gap:.85rem;max-width:24rem;display:flex}.form label{flex-direction:column;gap:.3rem;font-size:.95rem;display:flex}.form input,.form select,.form textarea{font:inherit;border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--input-bg);color:var(--charcoal);padding:.55rem .7rem}.form input::placeholder,.form textarea::placeholder{color:color-mix(in srgb, var(--charcoal) 38%, transparent);opacity:1}.password-field{display:block;position:relative}.password-field input{box-sizing:border-box;width:100%;padding-right:2.75rem}.password-toggle{width:2.1rem;height:2.1rem;color:color-mix(in srgb, var(--charcoal) 55%, gray);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;right:.35rem;transform:translateY(-50%)}.password-toggle:hover{color:var(--oak-deep);background:color-mix(in srgb, var(--oak) 10%, transparent)}.form textarea{resize:vertical;min-height:4rem}.muted{color:color-mix(in srgb, var(--charcoal) 65%, gray);font-size:.92rem}.error{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, var(--surface));border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);border-radius:var(--radius);padding:.65rem .85rem}.success{color:var(--oak-deep);background:color-mix(in srgb, var(--oak) 12%, var(--surface));border:1px solid color-mix(in srgb, var(--oak) 30%, transparent);border-radius:var(--radius);padding:.65rem .85rem}.auth-wrap{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.auth-panel{width:min(420px,100%)}.auth-panel h1{color:var(--oak-deep);margin-top:0}.tree-scroll{padding-bottom:1rem;overflow-x:auto}.generation-block{margin-bottom:1.75rem;animation:.5s ease-out rise}.generation-label{font-family:var(--font-display);color:var(--oak-deep);border-bottom:2px solid var(--gold);margin:0 0 .75rem;padding-bottom:.15rem;font-size:1.1rem;display:inline-block}.person-row{flex-wrap:wrap;gap:.75rem;display:flex}.couple-columns-header{max-width:640px;color:color-mix(in srgb, var(--charcoal) 60%, gray);text-transform:uppercase;letter-spacing:.04em;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.45rem;font-size:.8rem;font-weight:600;display:grid}.couple-rows{flex-direction:column;gap:.75rem;max-width:640px;display:flex}.branch-tree .couple-columns-header,.branch-tree .couple-rows{max-width:720px}.couple-row{grid-template-columns:1fr 1fr;align-items:stretch;gap:.75rem;display:grid}.person-leaf.compact,.couple-row>.person-leaf{width:100%;min-width:0;max-width:none}.person-leaf.compact.empty,.person-leaf.empty{visibility:hidden;box-shadow:none;pointer-events:none;background:0 0;border:none}@media (max-width:640px){.couple-columns-header{display:none}.couple-rows{gap:.85rem;max-width:none}.couple-row{border-bottom:1px solid color-mix(in srgb, var(--pine) 22%, transparent);grid-template-columns:1fr;gap:.4rem;padding-bottom:.85rem}.couple-row:last-child{border-bottom:none;padding-bottom:0}.person-leaf.compact.empty,.person-leaf.empty{display:none}}.person-leaf{background:color-mix(in srgb, var(--clapboard) 95%, var(--haint));border-left:4px solid var(--leaf);min-width:200px;max-width:280px;padding:.65rem .85rem;transition:transform .2s,box-shadow .2s}.person-leaf.biological{background:color-mix(in srgb, var(--oak) 32%, var(--clapboard));border-left-color:var(--oak)}.person-leaf.adopted{background:color-mix(in srgb, var(--haint) 48%, var(--clapboard));border-left-color:color-mix(in srgb, var(--haint) 40%, var(--sky-top))}.person-leaf.adopted1{background:color-mix(in srgb, var(--haint) 58%, var(--clapboard));border-left-color:color-mix(in srgb, var(--sky-top) 55%, var(--haint))}.person-leaf.extended{background:color-mix(in srgb, var(--pine) 36%, var(--clapboard));border-left-color:var(--pine)}.person-leaf.chosen{background:color-mix(in srgb, var(--gold) 40%, var(--clapboard));border-left-color:var(--gold)}[data-theme=dark] .person-leaf.biological{background:color-mix(in srgb, var(--oak) 28%, var(--clapboard))}[data-theme=dark] .person-leaf.adopted{background:color-mix(in srgb, var(--haint) 40%, var(--clapboard));border-left-color:var(--haint)}[data-theme=dark] .person-leaf.adopted1{background:color-mix(in srgb, var(--haint) 50%, var(--clapboard));border-left-color:color-mix(in srgb, var(--haint) 70%, var(--sky-top))}[data-theme=dark] .person-leaf.extended{background:color-mix(in srgb, var(--pine) 30%, var(--clapboard))}[data-theme=dark] .person-leaf.chosen{background:color-mix(in srgb, var(--gold) 34%, var(--clapboard))}.person-leaf:hover{box-shadow:0 6px 16px color-mix(in srgb, var(--oak) 20%, transparent);transform:translateY(-2px)}.person-leaf.focus{box-shadow:0 0 0 2px color-mix(in srgb, var(--gold) 70%, transparent), 0 6px 16px color-mix(in srgb, var(--oak) 18%, transparent)}.person-leaf a{font-family:var(--font-display);color:var(--oak-deep);font-size:1.05rem;text-decoration:none}.person-leaf a.person-name{display:block}.succession-line{font-family:var(--font-body);color:color-mix(in srgb, var(--charcoal) 60%, gray);flex-wrap:wrap;align-items:baseline;gap:.1rem 0;margin:0 0 .15rem;font-size:.9rem;line-height:1.35;display:flex}.succession-link{font-family:var(--font-body);font-size:inherit;color:var(--oak);text-underline-offset:2px;font-weight:600;text-decoration:underline}.succession-link:hover{color:var(--oak-deep)}.succession-current{color:color-mix(in srgb, var(--charcoal) 80%, gray);font-weight:600}.succession-sep{opacity:.7;-webkit-user-select:none;user-select:none}.card-details{margin:.55rem 0 .35rem;padding:0}.card-details>div{grid-template-columns:5.5rem 1fr;gap:.2rem .45rem;margin-bottom:.25rem;font-size:.82rem;display:grid}.card-details dt{color:color-mix(in srgb, var(--charcoal) 55%, gray);margin:0;font-weight:600}.card-details dd{color:var(--charcoal);overflow-wrap:anywhere;margin:0}.card-details a{font-family:var(--font-body);font-size:inherit}.person-leaf .age{font-family:var(--font-display);color:var(--pine);margin-top:.15rem;font-size:.95rem}.person-leaf .since-death{color:color-mix(in srgb, var(--charcoal) 75%, var(--danger));margin-top:.1rem;font-size:.85rem}.last-edited{color:color-mix(in srgb, var(--charcoal) 48%, gray);margin:.55rem 0 0;font-size:.72rem;line-height:1.35}.person-leaf .last-edited{margin-top:.4rem}.tree-stats{flex-wrap:wrap;gap:.45rem;margin:0 0 1.15rem;display:flex}.tree-stats .stat{border-left:3px solid var(--gold);background:color-mix(in srgb, var(--haint) 22%, var(--surface));flex:7.5rem;min-width:6.5rem;max-width:10rem;padding:.4rem .55rem;animation:.45s ease-out rise}.tree-stats .stat.living{border-left-color:var(--oak)}.tree-stats .stat.dead{border-left-color:var(--danger)}.tree-stats a.stat-link{color:inherit;cursor:pointer;text-decoration:none}.tree-stats a.stat-link:hover{background:color-mix(in srgb, var(--danger) 12%, var(--surface))}.tree-stats a.stat-link:hover .stat-label{color:var(--oak-deep);text-decoration:underline}.tree-stats .stat-value{font-family:var(--font-display);color:var(--oak-deep);font-size:1.2rem;line-height:1.1;display:block}.tree-stats .stat-label{color:color-mix(in srgb, var(--charcoal) 70%, gray);margin-top:.1rem;font-size:.72rem;line-height:1.25;display:block}.tree-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin:0 0 1.1rem;display:flex}.tree-view-toggle{border:1px solid color-mix(in srgb, var(--oak) 28%, transparent);border-radius:var(--radius);display:inline-flex;overflow:hidden}.tree-view-toggle a{color:var(--oak-deep);background:0 0;padding:.4rem .8rem;font-size:.88rem;text-decoration:none}.tree-view-toggle a:hover{background:color-mix(in srgb, var(--oak) 10%, transparent)}.tree-view-toggle a.is-active{background:var(--oak);color:var(--clapboard)}.family-list{max-width:none}.family-list-generation{font-family:var(--font-display);color:var(--oak-deep);border-bottom:2px solid var(--gold);margin:1.25rem 0 .65rem;padding-bottom:.15rem;font-size:1.1rem;display:inline-block}.family-list-section:first-child .family-list-generation{margin-top:.15rem}.family-group{background:color-mix(in srgb, var(--haint) 18%, var(--surface));border-left:3px solid var(--gold);margin:0 0 .95rem;padding:.55rem .7rem .45rem}.family-group-heading{color:var(--oak-deep);margin:0 0 .35rem;font-size:1rem}.family-members{margin:0;padding:0;list-style:none}.family-member{border-bottom:1px dotted color-mix(in srgb, var(--oak) 22%, transparent);justify-content:space-between;align-items:baseline;gap:.75rem 1.25rem;padding:.18rem 0;font-size:.92rem;display:flex}.family-member:last-child{border-bottom:none}.family-member.is-child{padding-left:1.15rem}.family-member.is-parent .family-member-name{font-weight:650}.family-member-name{color:var(--oak-deep);text-decoration:none}.family-member-name:hover{text-decoration:underline}.family-print-name{display:none}.family-member-meta{color:color-mix(in srgb, var(--charcoal) 62%, gray);text-align:right;white-space:nowrap;flex:none;font-size:.82rem}.family-list-body{max-width:46rem}.person-leaf .meta{color:color-mix(in srgb, var(--charcoal) 70%, gray);font-size:.82rem}.map-link{margin:.35rem 0 0;font-size:.88rem}.map-link a{color:var(--oak);font-weight:600}.person-actions{flex-wrap:wrap;gap:.35rem;margin-top:.45rem;display:flex}.person-actions a,.person-actions button{padding:.25rem .45rem;font-size:.78rem}.map-frame{border-radius:var(--radius);border:0;width:100%;height:240px;margin-top:.75rem;animation:.6s ease-out fadeIn}.table{border-collapse:collapse;width:100%;font-size:.95rem}.table th,.table td{text-align:left;border-bottom:1px solid color-mix(in srgb, var(--pine) 25%, transparent);padding:.55rem .4rem}.admin-table{font-size:.85rem}.admin-table th,.admin-table td{vertical-align:middle;padding:.28rem .35rem}.admin-table .btn{padding:.25rem .45rem;font-size:.78rem}.admin-table select{font:inherit;max-width:6.5rem;padding:.2rem .35rem;font-size:.8rem}.admin-email{word-break:break-word;max-width:14rem}.admin-inline-form{align-items:center;gap:.3rem;margin:0;display:flex}.admin-actions{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.directory-search{flex-direction:column;gap:.35rem;max-width:24rem;margin:0 0 .5rem;font-size:.9rem;display:flex}.directory-search input{font:inherit;border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--surface);color:var(--charcoal);padding:.55rem .7rem}.directory-count{margin:0 0 .75rem;font-size:.85rem}.deceased-table{max-width:40rem}.deceased-table td:nth-child(2),.deceased-table th:nth-child(2){width:7.5rem}.deceased-table td:nth-child(3),.deceased-table th:nth-child(3){width:8.5rem}.directory-table th{padding:.35rem .25rem}.directory-sort{color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;padding:.2rem .15rem;font-weight:700}.directory-sort:hover,.directory-sort.is-active{color:var(--oak-deep)}.path-chain{flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:1rem;font-size:.95rem;display:flex}.path-chain .step{background:color-mix(in srgb, var(--haint) 35%, var(--surface));border-radius:var(--radius);padding:.25rem .5rem}.path-chain .arrow{color:var(--oak);font-weight:700}.relation-badge{background:var(--oak);color:var(--clapboard);border-radius:999px;margin-bottom:.5rem;padding:.2rem .65rem;font-size:.85rem;display:inline-block}@media (max-width:640px){.site-header{flex-direction:column;align-items:flex-start}main{padding:1rem}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}main:has(.calendar-page){flex-direction:column;width:min(960px,100%);display:flex}.calendar-page{flex-direction:column;flex:1;max-width:none;min-height:calc(100vh - 5.5rem);display:flex}.calendar-toolbar{flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.calendar-nav{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.65rem 1rem;margin-bottom:1rem;display:flex}.calendar-nav-btn{min-width:2.75rem;padding:.45rem .75rem;font-size:1.1rem;line-height:1}.calendar-nav-label{text-align:center;flex-direction:column;align-items:center;min-width:8rem;display:flex}.calendar-nav-month{font-family:var(--font-display);color:var(--oak-deep);font-size:1.35rem;font-weight:700;line-height:1.15}.calendar-nav-year{color:color-mix(in srgb, var(--charcoal) 65%, gray);font-size:.9rem}.calendar-month-picker select{font:inherit;border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--input-bg);color:var(--charcoal);padding:.45rem .65rem}.calendar-nav .btn-oak{margin-left:auto}.calendar-legend{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.75rem 1.25rem;margin-bottom:1rem;font-size:.88rem;display:flex}.calendar-legend-item{align-items:center;gap:.4rem;display:inline-flex}.calendar-legend-swatch{border-radius:2px;flex-shrink:0;width:.85rem;height:.85rem}.calendar-legend-swatch.birthday{background:color-mix(in srgb, var(--oak) 75%, var(--surface))}.calendar-legend-swatch.anniversary{background:color-mix(in srgb, var(--gold) 85%, var(--surface))}.calendar-legend-swatch.today{background:color-mix(in srgb, var(--gold) 55%, var(--surface));box-shadow:inset 0 0 0 1px var(--gold)}.calendar-months{flex-direction:column;flex:1;min-height:0;display:flex}.calendar-month{background:var(--surface);border:1px solid color-mix(in srgb, var(--pine) 25%, transparent);border-radius:var(--radius);flex-direction:column;flex:1;min-height:calc(100vh - 16rem);padding:1rem;animation:.45s ease-out rise;display:flex}@media screen{.calendar-months{position:relative}.calendar-month:not(.is-active){visibility:hidden;pointer-events:none;flex:none;width:8.5in;max-width:8.5in;min-height:0;position:absolute;top:0;left:-100vw}html.calendar-print-all .calendar-month:not(.is-active){visibility:visible;pointer-events:auto;width:auto;max-width:none;position:static;left:auto}}.calendar-month-title{color:var(--oak-deep);text-align:center;border-bottom:2px solid var(--gold);flex-shrink:0;margin:0 0 .75rem;padding-bottom:.45rem;font-size:1.35rem}.calendar-weekdays{text-transform:uppercase;letter-spacing:.03em;color:color-mix(in srgb, var(--charcoal) 55%, gray);text-align:center;flex-shrink:0;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:.5rem;font-size:.78rem;font-weight:600;display:grid}.calendar-days{flex:1;grid-template-rows:repeat(6,1fr);grid-template-columns:repeat(7,1fr);gap:3px;min-height:0;display:grid}.calendar-day{border:1px solid color-mix(in srgb, var(--pine) 12%, transparent);background:color-mix(in srgb, var(--clapboard) 96%, var(--surface));border-radius:2px;min-height:0;padding:.25rem;font-size:.72rem;line-height:1.25;overflow:auto}.calendar-day.empty{background:color-mix(in srgb, var(--clapboard) 70%, var(--surface-muted));border-color:#0000}.calendar-day.has-events{background:color-mix(in srgb, var(--haint) 18%, var(--surface))}.calendar-day.is-today{background:color-mix(in srgb, var(--gold) 28%, var(--surface));border-color:var(--gold);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--gold) 55%, transparent)}.calendar-day.is-today.has-events{background:color-mix(in srgb, var(--gold) 30%, color-mix(in srgb, var(--haint) 18%, var(--surface)))}.calendar-day.is-today .calendar-day-number{color:var(--pine);font-weight:700}.calendar-day-number{font-family:var(--font-display);color:var(--oak-deep);margin-bottom:.15rem;font-size:.85rem;font-weight:600;display:block}.calendar-day-events{margin:0;padding:0;list-style:none}.calendar-event{border-left:2px solid #0000;border-radius:2px;flex-wrap:wrap;align-items:flex-start;gap:.15rem .2rem;margin-bottom:.15rem;padding:.12rem .18rem;display:flex}.calendar-event-bell{color:var(--pine);flex-shrink:0;margin-top:.05rem;display:inline-flex}.calendar-event-anniversary .calendar-event-bell,.calendar-legend-bell{color:#8b6914}.calendar-event-birthday{background:color-mix(in srgb, var(--oak) 14%, var(--surface));border-left-color:var(--oak)}.calendar-event-anniversary{background:color-mix(in srgb, var(--gold) 22%, var(--surface));border-left-color:var(--gold)}.calendar-event-label{color:var(--charcoal);overflow-wrap:anywhere;font-weight:600;display:block}.calendar-event-label a{color:inherit;text-underline-offset:2px;text-decoration-thickness:1px}.calendar-event-label a:hover{color:var(--oak)}.calendar-event-detail{color:color-mix(in srgb, var(--charcoal) 65%, gray);font-size:.62rem;display:block}.print-only{display:none}@media print{@page{size:letter portrait;margin:0}:root,[data-theme=dark]{--charcoal:#1a1a1a;--oak-deep:#1f3d28;--oak:#2f5d3a;--gold:#8b6914;--pine:#6d5410;--leaf:#2f5d3a;--haint:#e8f0ea;--clapboard:#fff;--surface:#fff;--surface-muted:#f5f5f5;--input-bg:#fff;--border-subtle:#ccc;--danger:#8b3a2f}html,body{-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#1a1a1a!important;background:#fff!important}.site-header,.no-print{display:none!important}.print-only{display:block!important}:is(main,main:has(.calendar-page)){width:100%;max-width:none;margin:0;padding:0;display:block;background:#fff!important}.panel,.calendar-page{min-height:auto;animation:none;box-shadow:none!important;color:#1a1a1a!important;background:#fff!important;border:none!important;padding:0!important}.calendar-print-banner{text-align:center;background:#fff;border-bottom:2px solid #c4a35a;flex:0 0 .55in;height:.55in;min-height:0;max-height:.55in;margin:0;padding:.15rem .25in .1rem;position:relative;overflow:hidden}.calendar-print-banner-bg{pointer-events:none;position:absolute;inset:0}.calendar-print-banner-bg svg{width:100%;height:100%;display:block}.calendar-print-banner-title{z-index:1;font-family:var(--font-display);letter-spacing:-.02em;text-align:center;margin:0;font-size:.95rem;font-weight:700;position:relative;color:#1f3d28!important}.calendar-months{background:#fff!important;display:block!important;position:static!important}.calendar-month,.calendar-month:not(.is-active),.calendar-month.is-active{box-sizing:border-box;break-inside:avoid;page-break-inside:avoid;break-after:page;page-break-after:always;border:none;border-radius:0;flex-direction:column;height:10.6in;max-height:10.6in;margin:0;padding:2.1em .3in .2in;overflow:hidden;visibility:visible!important;pointer-events:auto!important;color:#1a1a1a!important;background:#fff!important;width:100%!important;max-width:none!important;min-height:0!important;animation:none!important;display:flex!important;position:static!important;left:auto!important}.calendar-month:last-child{break-after:auto;page-break-after:auto}.calendar-month-title{text-align:center;border-bottom:2px solid #c4a35a;flex:none;margin:.12rem 0;padding-bottom:.1rem;font-size:.88rem;color:#1f3d28!important}.calendar-weekdays{flex:none;gap:1px;margin-bottom:.1rem;font-size:.55rem;color:#444!important}.calendar-days{flex:auto;grid-template-rows:repeat(6,minmax(0,1fr));gap:1px;min-height:0;max-height:100%;overflow:hidden}.calendar-day{min-height:0;max-height:100%;padding:.06rem;font-size:.46rem;line-height:1.08;overflow:hidden;color:#1a1a1a!important;background:#fff!important;border-color:#ddd!important}.calendar-day.empty{background:#fafafa!important}.calendar-day.has-events{background:#f3f7f4!important}.calendar-day.is-today{background:#f5edd8!important;border-color:#c4a35a!important}.calendar-day.is-today .calendar-day-number{color:#8b6914!important}.calendar-day-number{margin-bottom:.02rem;font-size:.5rem;font-weight:700;color:#1f3d28!important}.calendar-day-events{max-height:calc(100% - .65rem);margin:0;padding:0;list-style:none;overflow:hidden}.calendar-event{border-left-width:2px;flex-wrap:wrap;align-items:flex-start;gap:.04rem .08rem;margin-bottom:.02rem;padding:.02rem .04rem;display:flex}.calendar-event-bell{-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#8b6914!important}.calendar-event-bell svg{width:8px;height:8px}.calendar-event-birthday{background:#e3ece6!important;border-left-color:#2f5d3a!important}.calendar-event-anniversary{background:#f0e8d4!important;border-left-color:#8b6914!important}.calendar-event-label,.calendar-event-detail{font-size:.48rem;font-weight:600;display:inline;color:#1a1a1a!important}.calendar-event-label a{font-weight:700;text-decoration:underline;color:#1f3d28!important}.calendar-event-detail{font-weight:400;color:#333!important}.calendar-event-detail:before{content:" · "}.family-list{max-width:none;padding:0}.family-list-body{max-width:none;padding:.12in 0 .15in}.family-screen-name{display:none!important}.family-print-name{display:inline!important}.family-list-print-heading{text-align:center;margin:.15rem 0 .7rem}.family-list-print-title{font-family:var(--font-display);margin:0;font-size:.95rem;font-weight:700;color:#1f3d28!important}.family-list-print-subtitle{margin:.15rem 0 0;font-size:.72rem;color:#444!important}.family-list-generation{break-after:avoid;page-break-after:avoid;border-bottom-color:#c4a35a;width:100%;margin:.7rem 0 .4rem;font-size:.92rem;display:block;color:#1f3d28!important}.family-list-section:first-of-type .family-list-generation{margin-top:0}.family-group{break-inside:avoid;page-break-inside:avoid;border-left-color:#c4a35a;margin:0 0 .45rem;padding:.28rem .4rem .2rem;background:#f7faf8!important}.family-group-heading{font-size:.88rem;color:#1f3d28!important}.family-member{border-bottom-color:#d5d5d5;padding:.08rem 0;font-size:.78rem;color:#1a1a1a!important}.family-member-name{text-decoration:none;color:#1a1a1a!important}.family-member-meta{font-size:.72rem;color:#444!important}}
