@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--navy:#1a365d;--teal:#2d7d7d;--teal-dark:#1f5c5c;--teal-light:#e6f4f4;--stone:#44403c;--grey:#78716c;--stone-light:#f5f5f4;--white:#fff;--red-700:#bf000f;--red-50:#fef2f2;--amber-800:#953d00;--amber-50:#fffbeb;--green-800:#016630;--green-50:#f0fdf4;--navy-gradient:linear-gradient(135deg, #1e3f6e 0%, #1a365d 45%, #0f2240 100%);--teal-gradient:linear-gradient(135deg, #359090 0%, #2d7d7d 55%, #1f5c5c 100%);--font-sans:"Inter", system-ui, sans-serif;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--white);min-height:100vh;color:var(--stone);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;font-size:1rem;line-height:1.5;display:flex}#root{flex-direction:column;flex:1;display:flex}main{flex:1}h1,h2,h3{margin:0 0 .5em;font-weight:700;line-height:1.2}h1{font-size:1.875rem}@media (width>=640px){h1{font-size:2.25rem}}a{color:var(--teal-dark)}:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.site-header{z-index:50;background:var(--navy);position:sticky;top:0;box-shadow:0 2px 6px #0003}.site-header__inner,.site-footer__inner,.page{max-width:72rem;margin:0 auto;padding:0 1rem}@media (width>=640px){.site-header__inner,.site-footer__inner,.page{padding:0 1.5rem}}.site-header__inner{justify-content:space-between;align-items:center;height:4rem;display:flex}.site-header__brand{color:var(--white);font-size:1.125rem;font-weight:700;text-decoration:none}.site-header__link{color:#fffc;border-radius:var(--radius-md);padding:.375rem .625rem;font-size:.875rem;font-weight:500;text-decoration:none}.site-header__link:hover{color:var(--white);background:#ffffff1a}.site-footer{background:var(--navy);color:#ffffffb3;font-size:.875rem}.site-footer__inner{padding-top:1rem;padding-bottom:1rem}.site-footer a{color:#ffffffe6;text-underline-offset:2px}.site-footer a:hover{color:var(--white)}.btn{border-radius:var(--radius-md);min-height:3rem;font:inherit;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:0 1.5rem;font-weight:500;text-decoration:none;transition:background-color .15s;display:inline-flex}.btn--primary{background:var(--teal);color:var(--white)}.btn--primary:hover{background:var(--teal-dark)}.btn--secondary{background:var(--white);color:var(--stone);border-color:var(--stone-light)}.btn:disabled{opacity:.6;cursor:not-allowed}@media print{.no-print{display:none!important}html,body{color:var(--stone);background:#fff}}.page{padding-top:2rem;padding-bottom:3rem}.lead{max-width:42rem;font-size:1.125rem}.muted{color:var(--grey);margin:.25rem 0 .5rem;font-size:.875rem}.muted a{color:var(--teal-dark)}.prose{max-width:44rem}.prose h2{margin-top:1.5rem;font-size:1.25rem}.notice-page{max-width:40rem}.plain-list{margin:.25rem 0 .75rem;padding:0;list-style:none}.plain-list li{padding:.125rem 0}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.visually-hidden-input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.visually-hidden-input:focus-visible+*{outline:3px solid var(--teal);outline-offset:2px}label:has(+.visually-hidden-input:focus-visible){outline:3px solid var(--teal);outline-offset:2px}.btn--small{min-height:2.5rem;padding:0 1rem;font-size:.875rem}.btn--large{min-height:3.5rem;padding:0 2.5rem;font-size:1.125rem}.btn--danger{background:var(--red-700);color:var(--white)}.btn--danger:hover{background:#82181a}.btn--danger-outline{background:var(--white);color:var(--red-700);border-color:var(--red-700)}.btn--danger-outline:hover{background:var(--red-50)}.btn--secondary{border-color:#a8a29e}.btn--secondary:hover{background:var(--stone-light)}.btn--secondary:disabled{border-color:var(--stone-light)}.button-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0;display:flex}.link-button{font:inherit;color:var(--teal-dark);cursor:pointer;text-align:left;background:0 0;border:0;padding:.125rem 0;text-decoration:underline}.link-button:hover{color:var(--navy)}.link-button--danger{color:var(--red-700);margin-left:.75rem;font-size:.875rem}.field{flex-direction:column;flex:12rem;gap:.25rem;min-width:0;margin:0 0 .75rem;display:flex}.field label{font-weight:500}.field input,.field select,.field textarea,.inline-label select{font:inherit;color:var(--stone);background:var(--white);border:1px solid var(--grey);border-radius:var(--radius-md);min-height:2.75rem;padding:.5rem .75rem}.field textarea{resize:vertical;min-height:6rem}.field__hint{color:var(--grey);margin:0;font-size:.8125rem}.field__note{color:var(--amber-800);min-height:0;margin:0;font-size:.8125rem}.field__note:empty{display:none}.form__row{flex-wrap:wrap;gap:0 1rem;display:flex}.form__group{border:1px solid var(--stone-light);border-radius:var(--radius-lg);min-width:0;margin:0 0 1rem;padding:.75rem 1rem .25rem}.form__group legend{padding:0 .5rem;font-weight:700}.form__actions{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}.form__danger{border-top:1px solid var(--stone-light);margin-top:1.5rem;padding-top:1rem}.form__error{color:var(--red-700);background:var(--red-50);border:1px solid var(--red-700);border-radius:var(--radius-md);margin:.5rem 0;padding:.5rem .75rem;list-style:none}.more{margin:.5rem 0 1rem}.more summary{cursor:pointer;color:var(--teal-dark);align-items:center;min-height:2.75rem;font-weight:500;display:flex}.choice{border:0;flex-wrap:wrap;gap:1rem;margin:0 0 .75rem;padding:0;display:flex}.choice label{align-items:center;gap:.5rem;min-height:2.5rem;display:inline-flex}.inline-label{font-size:.875rem}.banner{border-radius:var(--radius-lg);border:1px solid;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin:.75rem 0;padding:.75rem 1rem;display:flex}.banner p{flex:20rem;margin:0}.banner--warning{background:var(--amber-50);border-color:var(--amber-800);color:var(--stone)}.banner--error{background:var(--red-50);border-color:var(--red-700);color:var(--stone)}.modal-backdrop{z-index:100;background:#1a365d8c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--white);border-radius:var(--radius-xl);width:100%;max-width:32rem;max-height:90vh;padding:1.5rem;overflow:auto;box-shadow:0 10px 30px #0000004d}.modal h2{font-size:1.25rem}.modal__actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:1.25rem;display:flex}.warnings{margin:.75rem 0}.warnings summary{cursor:pointer;color:var(--teal-dark);font-weight:500}.warnings ul{margin:.5rem 0 0 1.25rem;padding:0;font-size:.875rem}.onboarding{flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:2rem;display:flex}.tree-list{gap:.75rem;margin:1rem 0;padding:0;list-style:none;display:grid}.tree-card{border:1px solid var(--stone-light);border-radius:var(--radius-xl);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex}.tree-card__title{margin:0;font-size:1.25rem}.storage-status{color:var(--grey);font-size:.8125rem}.storage-status--low{color:var(--red-700)}.editor{width:100%;max-width:72rem;margin:0 auto;padding:1rem}@media (width>=640px){.editor{padding:1rem 1.5rem}}.editor__bar{border-bottom:1px solid var(--stone-light);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.5rem 1.5rem;padding-bottom:.75rem;display:flex}.editor__title{flex-wrap:wrap;align-items:flex-end;gap:.5rem 1rem;display:flex}.editor__title .field{flex:0 20rem;margin:0}.back-link{padding-bottom:.75rem}.editor__tools{flex-direction:column;align-items:flex-end;gap:.25rem;display:flex}.save-indicator{color:var(--green-800);margin:0;font-size:.875rem}.save-indicator--bad{color:var(--red-700);font-weight:700}.editor__body{grid-template-columns:1fr;gap:1.5rem;margin-top:1rem;display:grid}@media (width>=900px){.editor__body{grid-template-columns:20rem 1fr;align-items:start}.editor__list{max-height:calc(100vh - 6rem);position:sticky;top:5rem;overflow:auto}}.editor__person{font-size:1.5rem}.editor__main>section{border-top:1px solid var(--stone-light);margin-top:2rem;padding-top:1rem}.empty-state{max-width:36rem;padding:2rem 0}.menu{position:relative}.menu summary{cursor:pointer;align-items:center;list-style:none;display:inline-flex}.menu summary::-webkit-details-marker{display:none}.menu__panel{z-index:20;background:var(--white);border:1px solid var(--stone-light);border-radius:var(--radius-lg);width:18rem;padding:.75rem 1rem;position:absolute;right:0;box-shadow:0 6px 20px #00000026}.menu__panel .muted{margin-bottom:.75rem}.people__head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.people__title{margin:0;font-size:1.125rem}.people__count{color:var(--grey);font-weight:400}.people__list{margin:0;padding:0;list-style:none}.people__item{text-align:left;background:var(--white);border:0;border-bottom:1px solid var(--stone-light);width:100%;min-height:2.75rem;font:inherit;color:var(--stone);cursor:pointer;flex-direction:column;padding:.625rem .5rem;display:flex}.people__item:hover{background:var(--teal-light)}.people__item[aria-current=true]{background:var(--teal-light);box-shadow:inset 4px 0 0 var(--teal);font-weight:500}.people__life{color:var(--stone);font-size:.8125rem;font-weight:400}.people__empty{color:var(--grey)}.relatives__group{margin-bottom:1.25rem}.relatives h3{margin-bottom:.25rem;font-size:1rem}.relatives__family{border-left:3px solid var(--teal-light);margin:.5rem 0 .75rem;padding-left:.75rem}.relatives__tools{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.relatives__partner{margin:0 0 .25rem;font-weight:500}.add-relative{background:var(--teal-light);border-radius:var(--radius-xl);margin-top:1rem;padding:1rem 1.25rem}.add-relative h3{margin-top:0}.guided{max-width:38rem}.guided__progress{color:var(--teal-dark);margin:0 0 .25rem;font-weight:700}.family-form{max-width:52rem}.child-row{border-bottom:1px dashed var(--stone-light);flex-wrap:wrap;align-items:flex-start;gap:0 1rem;margin-bottom:.5rem;padding-bottom:.5rem;display:flex}.dropzone{border:2px dashed var(--grey);border-radius:var(--radius-xl);text-align:center;padding:1rem}.dropzone--over{border-color:var(--teal);background:var(--teal-light)}.photo-list{gap:1rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.photo{border:1px solid var(--stone-light);border-radius:var(--radius-xl);flex-wrap:wrap;gap:1rem;padding:1rem;display:flex}.photo__image{flex:none;width:12.5rem;max-width:100%;position:relative}.photo__image img{border-radius:var(--radius-lg);width:100%;height:auto;display:block}.photo__missing{background:var(--stone-light);border-radius:var(--radius-lg);text-align:center;padding:2rem 1rem;font-size:.875rem}.photo__details{flex:16rem;min-width:0}.badge{background:var(--navy);color:var(--white);border-radius:999px;padding:.125rem .5rem;font-size:.75rem;font-weight:700;position:absolute;top:.5rem;left:.5rem}.partners{grid-template-columns:1fr;gap:0 1rem;display:grid}@media (width>=900px){.partners{grid-template-columns:1fr 1fr}}.child-row .field{flex:9rem}.child-row .field:last-child{flex:0 9rem}.people-collapse{border:1px solid var(--grey);border-radius:var(--radius-lg);margin-bottom:.5rem;padding:0 .75rem}.people-collapse summary{cursor:pointer;min-height:2.75rem;color:var(--teal-dark);align-items:center;font-weight:500;display:flex}.people-collapse[open]{padding-bottom:.75rem}.callout{background:var(--teal-light);border-radius:var(--radius-xl);max-width:40rem;margin-bottom:1rem;padding:1rem 1.25rem}.callout h2{margin:0 0 .25rem;font-size:1.125rem}.callout ul{margin:0;padding-left:1.25rem}.callout li{margin:.25rem 0}.view-tabs{border:1px solid var(--grey);border-radius:var(--radius-lg);margin-bottom:1rem;display:inline-flex;overflow:hidden}.view-tab{background:var(--white);color:var(--stone);font:inherit;cursor:pointer;border:0;min-height:2.75rem;padding:0 1.25rem;font-weight:500}.view-tab+.view-tab{border-left:1px solid var(--grey)}.view-tab[aria-pressed=true]{background:var(--teal);color:var(--white)}.view-tab:not([aria-pressed=true]):hover{background:var(--stone-light)}.chart-options{flex-wrap:wrap;align-items:flex-end;gap:0 1.5rem;margin-bottom:.5rem;display:flex}.chart-options__group{border:0;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;margin:0 0 .75rem;padding:0;display:flex}.chart-options__group legend{float:left;margin-bottom:.25rem;margin-right:.75rem;padding:0;font-weight:500}.chart-options__group label{align-items:center;gap:.375rem;min-height:2.5rem;display:inline-flex}.chart-options__field{flex:none;min-width:9rem}.chart-view__centre{margin:.25rem 0}.chart-view__help{margin:0 0 .5rem}.chart-view__warnings{background:var(--amber-50);border:1px solid var(--amber-800);border-radius:var(--radius-md);margin:.5rem 0;padding:.5rem .75rem .5rem 1.75rem;font-size:.875rem}.chart-view__selected{margin:.75rem 0 0}.chart{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:1px solid var(--grey);border-radius:var(--radius-xl);background:var(--white);touch-action:none;cursor:grab;height:65vh;min-height:22rem;position:relative;overflow:hidden}.chart:active{cursor:grabbing}.chart__svg{width:100%;height:100%;font-family:var(--font-sans);display:block}.chart__zoom{border-radius:var(--radius-lg);background:#ffffffeb;align-items:center;gap:.375rem;padding:.25rem;display:flex;position:absolute;bottom:.75rem;right:.75rem}.chart__zoom .btn{min-width:2.5rem;padding:0 .625rem}.chart__zoom-level{color:var(--stone);text-align:center;min-width:2.75rem;font-size:.8125rem}.chart-edge{stroke:var(--grey);stroke-width:1.5px}.chart-edge--partner{stroke:var(--teal);stroke-width:2px}.chart-edge--dashed{stroke-dasharray:5 4}.chart-card{cursor:pointer;outline:none}.chart-card__box{fill:var(--white);stroke:var(--grey);stroke-width:1px}.chart-card--partner .chart-card__box{fill:var(--stone-light)}.chart-card--root .chart-card__box{stroke:var(--navy);stroke-width:2.5px}.chart-card--placeholder .chart-card__box{fill:var(--white);stroke-dasharray:5 4}.chart-card--selected .chart-card__box{fill:var(--teal-light);stroke:var(--teal-dark);stroke-width:3px}.chart-card:hover .chart-card__box{stroke:var(--teal-dark)}.chart-card:focus-visible .chart-card__box{stroke:var(--teal);stroke-width:4px}.chart-card__name{fill:var(--stone);font-size:14px;font-weight:600}.chart-card__life{fill:var(--stone);font-size:12px;font-weight:400}.chart-card__unknown{fill:var(--grey);font-size:14px;font-style:italic}.chart-card__avatar{fill:var(--teal-light);stroke:var(--teal);stroke-width:1px}.chart-card__person circle,.chart-card__person path{fill:var(--teal-dark)}.chart-card__repeat rect{fill:none;stroke:var(--teal-dark);stroke-width:1.5px}.chart-card__more circle{fill:var(--white);stroke:var(--teal-dark);stroke-width:1.5px}.chart-card__more path{stroke:var(--teal-dark);stroke-width:2px;fill:none}.chart-card__more{cursor:pointer}.outline ul{border-left:2px solid var(--teal-light);margin:.25rem 0 .25rem 1.25rem;padding:0 0 0 .75rem;list-style:none}.outline>ul{border-left:0;margin-left:0;padding-left:0}.outline li{margin:.375rem 0}.outline__relation{color:var(--stone);font-size:.875rem}.outline [aria-current=true]{font-weight:700}.editor__body--single{grid-template-columns:1fr!important}.editor__body--single .editor__list{display:none}.print-view__bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.print-view__bar h1{margin:0;font-size:1.5rem}.print-view__body{grid-template-columns:1fr;gap:1.5rem;margin-top:1rem;display:grid}@media (width>=1100px){.print-view__body{grid-template-columns:22rem 1fr;align-items:start}}.print-settings{min-width:0}.chart-options__group--stack{flex-direction:column;align-items:flex-start}.theme-choice{gap:.5rem;padding:.25rem 0;align-items:flex-start!important;display:flex!important}.theme-choice input{margin-top:.5rem}.check-line{align-items:flex-start;gap:.5rem;margin:.5rem 0;display:flex}.check-line input{margin-top:.35rem}.print-actions{flex-wrap:wrap;gap:.5rem;margin:.75rem 0 .25rem;display:flex}.paper-wrap{background:var(--stone-light);border-radius:var(--radius-xl);margin-top:1rem;padding:1rem}.paper{flex-direction:column;width:100%;max-width:54rem;margin:0 auto;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 10px #00000040}.paper__head{text-align:center;flex-direction:column;align-items:center;padding:.75rem 1rem 0;font-size:.875rem;display:flex}.paper__head strong{font-size:1.25rem}.paper__chart{flex:1;justify-content:center;align-items:center;min-height:0;padding:.5rem 1rem;display:flex}.paper__chart svg{width:auto;max-width:100%;height:auto;max-height:100%}.paper__tiles{pointer-events:none;width:calc(100% - 2rem);height:calc(100% - 5.5rem);position:absolute;inset:3.5rem 1rem 2rem}.paper__tiles rect{fill:none;stroke:var(--teal);stroke-width:3px;stroke-dasharray:12 8}.paper__foot{justify-content:space-between;padding:0 1rem .5rem;font-size:.75rem;display:flex}.checks label{align-items:flex-start;gap:.5rem;margin:.5rem 0;display:flex}.checks input{margin-top:.35rem}.checks__note{margin:0 0 .75rem 1.6rem}#print-root{display:none}.print-page{box-sizing:border-box;page-break-after:always;break-after:page;-webkit-print-color-adjust:exact;print-color-adjust:exact;position:relative;overflow:hidden}.print-page:last-child{page-break-after:auto;break-after:auto}.print-page__head{text-align:center;position:absolute}.print-page__head h1{margin:0;font-size:20pt}.print-page__head p{margin:0;font-size:11pt}.print-page__chart{line-height:0;position:absolute}.print-page__chart svg{display:block}.print-page__foot{justify-content:space-between;font-size:9pt;display:flex;position:absolute}.print-report{font-family:var(--font-sans);color:#000}.print-report h1{margin:0 0 4mm;font-size:16pt}.print-report p{break-inside:avoid;margin:0;font-size:11pt;line-height:1.5}.print-report__first{font-weight:700}.print-report__gap{height:3mm}@media print{#root{display:none!important}#print-root{display:block}html,body{margin:0;padding:0;background:#fff!important}}.field select,.inline-label select{appearance:none;background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2344403c' stroke-width='2'/%3E%3C/svg%3E") no-repeat right .875rem center / .75rem;height:2.75rem;padding-right:2.25rem;line-height:1.25}.inline-label select{height:2.5rem}.guided h1,.family-form h1{font-size:1.5rem}.add-relative .muted,.add-relative .field__hint,.callout .muted,.paper-wrap .muted,.people__item:hover .people__life,.view-tab:not([aria-pressed=true]):hover,.btn--secondary:hover .muted{color:var(--stone)}.steps{max-width:40rem;margin:1.5rem 0 0;padding-left:1.5rem}.steps li{margin:.75rem 0}.home__danger{border-top:1px solid var(--stone-light);margin-top:2.5rem;padding-top:1rem}.home__danger h2{margin-bottom:.25rem;font-size:1.125rem}.family-swatch{vertical-align:-.1rem;border-radius:.2rem;flex:none;width:.9rem;height:.9rem;margin-right:.4rem;display:inline-block}.family-key{background:var(--stone-light);border-radius:var(--radius-md);margin:.5rem 0;padding:.5rem .75rem}.family-key__intro{margin:0 0 .35rem;font-size:.875rem}.family-key__list{flex-wrap:wrap;gap:.25rem 1.25rem;margin:0;padding:0;font-size:.875rem;list-style:none;display:flex}.family-key__list li{align-items:center;display:flex}.family-key__note{color:var(--stone);margin:.35rem 0 0;font-size:.8125rem}.families__list{gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.family-card{background:var(--white);border:1px solid var(--grey);border-left:6px solid var(--grey);border-radius:var(--radius-lg);padding:.75rem 1rem}.family-card__title{flex-wrap:wrap;align-items:center;gap:.25rem;margin:0 0 .5rem;font-size:1.0625rem;display:flex}.family-card__number{margin-right:.25rem;font-weight:700}.family-card__people{margin:.25rem 0}.btn--back{background:var(--navy);color:var(--white);border-color:var(--navy)}.btn--back:hover{background:#0f2240;border-color:#0f2240}
