@import url(https://fonts.googleapis.com/css2?family=Mona+Sans:ital,wght@0,200..900;1,200..900&display=swap);@import url(https://fonts.googleapis.com/css2?family=Young+Serif&display=swap);.landing-layout{border-radius:25px;display:flex;flex-direction:column;font-family:var(--font-primary);margin:1rem 0;overflow:hidden;padding:2rem;position:relative}.landing-layout:before{animation:float-gradient 2s ease-in-out infinite alternate;background:radial-gradient(circle at 30% 30%,var(--gradient-spot-light-1),#0000 40%),radial-gradient(circle at 70% 70%,var(--gradient-spot-light-2),#0000 40%),radial-gradient(ellipse at 40% 60%,var(--gradient-spot-medium-1),#0000 50%),radial-gradient(ellipse at 60% 30%,var(--gradient-spot-medium-2),#0000 45%)}.landing-layout:after,.landing-layout:before{content:"";height:200%;left:-50%;position:absolute;top:-50%;width:200%;will-change:transform;z-index:-1}.landing-layout:after{animation:float-gradient-alt 30s ease-in-out infinite alternate;background:radial-gradient(circle at 65% 25%,var(--gradient-spot-light-1),#0000 35%),radial-gradient(circle at 25% 65%,var(--gradient-spot-light-2),#0000 40%),radial-gradient(ellipse at 75% 45%,var(--gradient-spot-medium-1),#0000 50%)}.landing-header{background-color:var(--color-secondary-300)}.logo{color:var(--color-primary-500);font-family:var(--font-secondary);font-size:var(--text-xl);font-weight:var(--weight-bold)}.logo,.signup-button{margin-bottom:auto;margin-top:auto}.signup-button{box-shadow:2px 2px 0 var(--color-primary-400);transition:background .2s ease}.landing-main{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:4rem 2rem;text-align:center}.headline{font-family:var(--font-secondary);font-size:var(--text-5xl);margin-bottom:.5rem}.headline,.subhead{color:var(--color-primary-700);font-weight:var(--weight-medium)}.subhead{font-size:var(--text-xl);margin-bottom:2rem}.features-bar{background-color:var(--color-secondary-400);border-radius:2rem;box-shadow:2px 4px 0 var(--color-shadow-light);display:flex;gap:2rem;padding:.75rem 1.5rem}.feature-pill{background-color:var(--color-secondary-300);border-radius:9999px;color:var(--color-primary-700);font-size:var(--text-sm);font-weight:var(--weight-semibold);padding:.4rem 1rem;text-shadow:var(--color-neutral-white)}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}:focus{outline:3px solid var(--color-primary-300);outline-offset:2px;transition:outline-offset .1s ease}:focus:not(:focus-visible){outline:none}::selection{background:var(--color-secondary-200);color:var(--color-primary-700)}:root{--color-primary:var(--color-primary-700);--color-primary-hover:var(--color-primary-600);--color-primary-light:var(--color-primary-400);--color-secondary:var(--color-secondary-300);--color-secondary-light:var(--color-secondary-200);--color-bg-main:var(--color-primary-100);--color-bg-card:var(--color-secondary-100);--color-text:var(--color-primary-500);--color-text-light:var(--color-neutral-500);--color-text-error:var(--color-error);--color-error:var(--color-error);--color-error-hover:var(--color-error-dark);--font-primary:var(--font-primary);--font-heading:var(--font-secondary)}h1,h2,h3,h4,h5,h6{color:var(--color-primary-500);font-family:var(--font-secondary);margin-top:0}body,button,input,select,textarea{font-family:var(--font-primary)}.btn{align-items:center;border:none;border-radius:9999px;cursor:pointer;display:inline-flex;font-size:var(--text-base);font-weight:var(--weight-bold);gap:.5rem;justify-content:center;max-width:max-content;overflow:hidden;padding:.5rem 1.5rem;position:relative;transition:all .2s ease}.btn:before{background-color:var(--color-background-translucent);border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .5s,height .5s;width:0;z-index:0}.btn:hover:before{height:300%;width:300%}.btn>*{position:relative;z-index:1}.btn:disabled{cursor:not-allowed;opacity:.7}.btn-primary{background-color:var(--color-primary);box-shadow:2px 2px 0 var(--color-primary-400);box-shadow:2px 2px 0 var(--color-primary-light);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-600);background-color:var(--color-primary-hover);box-shadow:3px 3px 0 var(--color-primary-400);box-shadow:3px 3px 0 var(--color-primary-light);transform:translateY(-2px)}.btn-primary:active:not(:disabled){box-shadow:1px 1px 0 var(--color-primary-400);box-shadow:1px 1px 0 var(--color-primary-light);transform:translateY(1px)}.btn-secondary{background-color:var(--color-secondary-300);background-color:var(--color-secondary);box-shadow:2px 2px 0 var(--color-secondary-200);box-shadow:2px 2px 0 var(--color-secondary-light);color:var(--color-primary-500);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background-color:#c8c59a;transform:translateY(-1px)}.btn-delete{background:var(--color-error);box-shadow:2px 2px 0 #b94a4880;color:#fff}.btn-delete:hover:not(:disabled){background:var(--color-error-dark);background:var(--color-error-hover);transform:translateY(-1px)}.btn-outline{background:#0000;border:1px solid var(--color-primary);color:var(--color-primary-700);color:var(--color-primary)}.btn-outline:hover:not(:disabled){background:#1e321c0d}.form-row b,.form-row label{color:var(--color-primary-500);color:var(--color-text);display:inline-block;font-weight:700;text-align:left;transition:transform .2s ease,color .2s ease;width:auto}.form-row input,.form-row select,.form-row textarea{background:#fff;border:1px solid var(--color-secondary);border-radius:6px;flex:1 1;font-family:var(--font-primary);font-size:1rem;padding:.4rem .7rem;transition:all .3s ease}.form-row input:hover,.form-row select:hover,.form-row textarea:hover{border-color:#a5a27a;box-shadow:0 2px 5px #1e321c1a}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #1e321c1a;outline:none;transform:translateY(-1px)}.form-row input:focus+label,.form-row select:focus+label,.form-row textarea:focus+label{color:var(--color-primary-700);color:var(--color-primary);transform:translateY(-2px)}.form-column{display:flex;flex-direction:column;gap:.5rem;width:100%}.form-column label{color:var(--color-primary-500);color:var(--color-text);font-weight:700;transition:transform .2s ease,color .2s ease}.form-column input:focus+label,.form-column select:focus+label,.form-column textarea:focus+label{color:var(--color-primary-700);color:var(--color-primary);transform:translateY(-2px)}.error-text{animation:fadeInUp .3s forwards;color:var(--color-error);font-size:.9rem;margin-top:.25rem;opacity:0;transform:translateY(-5px)}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}.container{margin:0 auto;max-width:1200px;padding:0 1rem;width:100%}.card{background-color:var(--color-secondary-100);background-color:var(--color-bg-card);border-radius:18px;box-shadow:0 4px 24px 0 #1e321c1a,0 1.5px 4px 0 #1e321c14;padding:2rem}.flex-row{align-items:center;display:flex;flex-direction:row}.flex-col{display:flex;flex-direction:column}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.items-center{align-items:center}.gap-sm{gap:.5rem}.gap-md{gap:1rem}.gap-lg{gap:2rem}@media (max-width:768px){.hide-mobile{display:none}.form-row{align-items:flex-start;flex-direction:column}.form-row b,.form-row label{margin-bottom:.25rem;width:100%}}.auth-content{min-height:92vh}.auth-page-container{overflow:hidden;position:relative}.auth-page-container:before{animation:rotate-gradient 2s linear infinite;background:radial-gradient(circle at 30% 30%,#e3e9dc99,#0000 40%),radial-gradient(circle at 70% 70%,#d1dbc799,#0000 40%);content:"";height:300%;left:-100%;position:absolute;top:-100%;width:300%;z-index:-1}@keyframes rotate-gradient{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes pulse{0%{opacity:1}50%{opacity:.6}to{opacity:1}}.loading{animation:pulse 1.5s ease-in-out infinite}.standard-modal-container{background-color:var(--color-secondary-100);border-radius:12px;box-shadow:0 4px 6px #0000001a;box-sizing:border-box;font-family:var(--font-primary);margin:2rem auto;max-width:800px;min-height:400px;padding:2rem;position:relative;width:100%}.standard-modal-header{align-items:flex-start;border-bottom:2px solid var(--color-secondary-300);display:flex;flex-wrap:wrap;gap:2rem;margin-bottom:1.5rem;padding-bottom:1.5rem}.standard-modal-photo-container{background:var(--color-secondary-200);border:3px solid var(--color-primary-300);flex-shrink:0;overflow:hidden;position:relative}.standard-modal-photo-container.circular{border-radius:50%;height:150px;width:150px}.standard-modal-photo-container.rectangular{border-radius:8px;height:180px;width:180px}.standard-modal-photo{border-radius:15px;display:block;height:100%;object-fit:cover;width:100%}.standard-modal-photo.circular{border-radius:50%}.standard-modal-photo-upload{cursor:pointer;display:block;height:100%;width:100%}.standard-modal-uploading{background:#000c;bottom:0;color:#fff;font-size:.8rem;left:0;padding:.25rem;position:absolute;right:0;text-align:center}.standard-modal-primary-info{flex:1 1;min-width:250px}.standard-modal-title-container{margin-bottom:.5rem}.standard-modal-title{background:none;border:none;color:var(--color-primary-700);font-size:1.8rem;font-weight:600;line-height:1.2;margin:0;padding:0}.standard-modal-title.editable{background:#fff;border:2px solid var(--color-primary-300);border-radius:4px;font-size:1.4rem;padding:.5rem}.standard-modal-title.editable:focus{border-color:var(--color-primary-400);box-shadow:0 0 0 2px #bcb88a33;outline:none}.standard-modal-subtitle{color:var(--color-secondary-600);font-size:1rem;font-style:italic;margin-bottom:1rem}.standard-modal-description{background-color:#f6f9f3;border:none;border-radius:8px;color:var(--color-text-primary);font-size:.95rem;line-height:1.5;padding:1rem}.standard-modal-description.editable{background:#f6f9f3;border:none;font-size:1rem;min-height:60px;outline:none;resize:vertical;width:100%}.standard-modal-content{margin-bottom:1.5rem}.standard-modal-details-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.standard-field-row{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.standard-field-row.vertical{align-items:flex-start;border-bottom:1px solid var(--color-secondary-200);flex-direction:column;gap:.3rem;padding:.75rem 0}.standard-field-row.vertical:last-child{border-bottom:none}.standard-field-label{color:var(--color-secondary-700);font-size:.9rem;font-weight:600;letter-spacing:.5px;min-width:120px;text-transform:uppercase}.standard-field-value{color:var(--color-text-primary);font-size:1rem;line-height:1.4}.standard-field-input{background:#fff;border:1px solid var(--color-secondary-300);border-radius:4px;flex:1 1;font-family:inherit;font-size:1rem;min-width:200px;padding:.5rem}.standard-field-input:focus{border-color:var(--color-primary-400);box-shadow:0 0 0 2px #bcb88a33;outline:none}.standard-modal-related-section{border-top:2px solid var(--color-secondary-300);margin-top:2rem;padding-top:1.5rem}.standard-modal-related-title{color:var(--color-primary-700);font-size:1.2rem;font-weight:600;margin-bottom:1rem}.standard-modal-related-list{display:flex;flex-wrap:wrap;gap:.75rem}.standard-modal-related-tag{align-items:center;background:var(--color-primary-100);border:1px solid var(--color-primary-300);border-radius:20px;cursor:pointer;display:flex;font-size:.9rem;gap:.5rem;padding:.5rem .75rem;transition:all .2s ease}.standard-modal-related-tag:hover{background:var(--color-primary-200);box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.standard-modal-related-tag.selected{background:var(--color-primary-300)}.standard-modal-related-photo{border:1px solid var(--color-primary-400);border-radius:50%;height:24px;object-fit:cover;width:24px}.standard-modal-related-name{color:var(--color-primary-700);font-weight:500}.standard-relationship-selector{margin-bottom:1.5rem}.standard-relationship-selector .standard-field-label{display:block;margin-bottom:.5rem}.standard-relationship-search{border:1px solid var(--color-secondary-300);border-radius:4px;margin-bottom:.5rem;max-width:320px;padding:.5rem;width:100%}.standard-relationship-tags{display:flex;flex-wrap:wrap;gap:.5rem}.standard-modal-actions{border-top:1px solid var(--color-secondary-300);display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1.5rem}.standard-form-row{align-items:center;display:flex;gap:1rem;margin-bottom:1rem}.standard-form-row.name-inputs{gap:.5rem}.standard-form-row.name-inputs .standard-modal-title.editable{margin-right:.5rem}.standard-error-text{color:var(--color-error);font-size:.8rem;margin-top:.25rem;text-align:center}.standard-metadata-section{background:var(--color-secondary-50);border-radius:6px;margin-top:1.5rem;padding:1rem}.standard-metadata-toggle{fontWeight:600;color:var(--color-secondary-700);cursor:pointer}.standard-metadata-content{fontSize:.9rem;margin-top:.5rem}.standard-metadata-content p{margin:.25rem 0}.standard-metadata-content strong{font-weight:600}@media (max-width:768px){.standard-modal-container{border-radius:8px;margin:1rem;padding:1.5rem}.standard-modal-header{align-items:center;flex-direction:column;gap:1rem;text-align:center}.standard-modal-photo-container.circular{height:120px;width:120px}.standard-modal-photo-container.rectangular{height:180px;width:180px}.standard-modal-details-grid{grid-template-columns:1fr}.standard-field-row,.standard-modal-actions{flex-direction:column}.standard-field-row{align-items:stretch;gap:.5rem}.standard-field-input,.standard-field-label{min-width:auto}.standard-form-row.name-inputs{flex-direction:column;gap:.5rem}.standard-modal-title.editable{margin-bottom:.5rem;margin-right:0}}@media (max-width:480px){.standard-modal-container{margin:.5rem;padding:1rem}.standard-modal-title{font-size:1.5rem}.standard-modal-related-list{flex-direction:column}}.item-layout{background-color:var(--color-secondary-200);border-radius:25px;gap:1.4rem;margin-top:0;padding:.5rem 2rem 2rem;position:relative}.add-heirloom-header{display:flex;justify-content:flex-end;padding:1rem 2rem}.save-button-top{align-items:center;display:flex;gap:1rem;justify-content:flex-end}.item-edit-sleek form{display:flex;flex-direction:column;gap:2.5rem}.item-edit-top{align-items:flex-start;border-bottom:1px solid var(--color-secondary-300);display:flex;flex-wrap:wrap;gap:2.5rem;padding:0 0 1.5rem}.item-edit-image{align-items:center;display:flex;flex-direction:column;gap:.7rem;max-width:220px;min-width:180px}.item-edit-img-preview{background:var(--color-neutral-white);border:1px solid var(--color-neutral-900);border-radius:8px;height:180px;object-fit:cover;width:180px}.item-edit-img-input{margin-top:.5rem}.item-edit-uploading{color:var(--color-neutral-500);font-size:var(--text-sm)}.item-edit-mainfields{display:flex;flex:1 1;flex-direction:column;gap:1.2rem}.item-edit-title{background:none;border:none;border-bottom:2px solid var(--color-primary-700);font-size:var(--text-xl);font-weight:var(--weight-bold);padding:.3rem .5rem}.item-edit-description,.item-edit-title{font-family:var(--font-primary);width:100%}.item-edit-description{background:var(--color-neutral-white);border:1px solid var(--color-secondary-300);border-radius:6px;font-size:var(--text-md);min-height:120px;padding:.7rem;resize:vertical}.item-edit-bottom{margin-top:1.5rem}.item-edit-grid{grid-gap:1.2rem 2.5rem;display:grid;gap:1.2rem 2.5rem;grid-template-columns:1fr 1fr}@media (max-width:900px){.item-edit-top{flex-direction:column;gap:1.5rem;padding:1rem 0}.item-edit-grid{grid-template-columns:1fr}}.item-edit-actions{display:flex;gap:1.2rem;justify-content:flex-end;margin-top:2rem}.item-header{background-color:var(--color-primary-100);justify-content:flex-start;position:relative}.item-header img{border:1px solid var(--color-neutral-900);width:275px}.item-meta{align-items:flex-start;display:flex;flex-direction:column;gap:.5rem;justify-content:flex-start}.form-row{gap:1rem;margin-bottom:1rem}.form-row input{background:none;border:none;border-bottom:1px solid var(--color-primary-700);flex:1 1;font-family:var(--font-primary);font-size:var(--text-base);padding:.25rem}.tabs{background-color:var(--color-secondary-400);border:1px solid var(--color-neutral-900);gap:0;margin-top:2rem}.tab-textarea,.tabs textarea{background-color:var(--color-secondary-300);border:1px solid var(--color-neutral-900);min-height:25rem;padding:1rem;white-space:pre-wrap}.tab-text,.tab-textarea,.tabs textarea{font-family:var(--font-primary);font-size:var(--text-base)}.tab-buttons{border-bottom:1px solid var(--color-neutral-900);display:flex}.tab-buttons,.tab-buttons button{background-color:var(--color-secondary-400)}.tab-buttons button{border:1px solid var(--color-neutral-900);color:var(--color-primary-700);cursor:pointer;flex:1 1;font-weight:var(--weight-bold);padding:.75rem;text-decoration:underline}.tab-buttons button.active{background-color:var(--color-secondary-300);border-bottom:none}.auth-button{border-radius:100%;font-size:var(--text-sm);padding:.5rem 1.25rem}.heirloom-grid{grid-gap:2rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));padding:2rem 1rem}.heirloom-card{background-color:var(--color-primary-100);border:1px solid var(--color-neutral-900);justify-content:space-between;width:250px}.heirloom-img{border-bottom:1px solid var(--color-neutral-900);height:auto}.heirloom-footer{align-items:center;background-color:var(--color-secondary-400);display:flex;justify-content:space-between;padding:.7rem}.heirloom-name{color:var(--color-primary-700);flex:1 1;font-family:var(--font-primary);font-weight:var(--weight-bold);margin:0;text-decoration:underline}.heirloom-edit,.heirloom-view{background-color:var(--color-primary-700);border:none;border-radius:100%;color:var(--color-neutral-white);cursor:pointer;font-size:var(--text-xs);margin-left:.5rem;padding:.25rem .75rem}.heirloom-actions{align-items:center;display:flex;gap:.1rem}.metadata-tooltip{display:inline-block;margin-top:1rem;position:relative}.metadata-link{color:var(--color-primary-700);cursor:pointer;font-weight:var(--weight-bold);text-decoration:underline}.metadata-tooltip:hover .tooltip-text{opacity:1;visibility:visible}.tooltip-text{background-color:var(--color-secondary-400);border:1px solid var(--color-neutral-900);border-radius:8px;bottom:125%;color:var(--color-primary-700);font-family:var(--font-primary);font-size:var(--text-sm);left:50%;opacity:0;padding:1rem;position:absolute;text-align:left;transform:translateX(-50%);transition:opacity .3s ease;visibility:hidden;white-space:normal;width:250px;z-index:1}.tooltip-text p{margin:0;padding:.3rem 0}.details-box{background-color:var(--color-secondary-300);border:1px solid var(--color-neutral-900);border-radius:8px;display:flex;flex-direction:column;font-family:var(--font-primary);font-size:var(--text-base);gap:.8rem;margin-top:2rem;padding:1.5rem}.details-box .form-row{align-items:baseline;display:flex;gap:1rem}.item-layout{display:flex;flex-direction:column;font-family:var(--font-primary);gap:1.5rem;height:100%;padding:2rem}.item-header{align-items:flex-start;display:flex;gap:2rem}.item-header img{background-color:var(--color-neutral-white);border:1px solid var(--color-neutral-300);height:auto;object-fit:contain;width:150px}.item-header input{border:1px solid var(--color-primary-700);font-size:var(--text-base);margin-left:.5rem;padding:.25rem}.tabs{display:flex;flex-direction:column;gap:1rem}.tabs textarea{background-color:var(--color-secondary-200);border:1px solid var(--color-primary-700);font-size:var(--text-base);min-height:6rem;padding:.5rem;resize:vertical}.item-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end;padding:1rem 0 0 2rem}.item-toolbar .auth-button{margin:0}.standard-view-container{background-color:var(--color-secondary-100);border-radius:12px;box-shadow:0 4px 6px #0000001a;font-family:var(--font-primary);margin:2rem auto;max-width:800px;min-height:400px;padding:2rem;position:relative;width:100%}.standard-view-header{align-items:flex-start;border-bottom:2px solid var(--color-secondary-300);display:flex;flex-wrap:wrap;gap:2rem;margin-bottom:1.5rem;padding-bottom:1.5rem}.standard-view-photo-container{background:var(--color-secondary-200);border:3px solid var(--color-primary-300);border-radius:50%;flex-shrink:0;height:150px;overflow:hidden;width:150px}.standard-view-photo{display:block;height:100%;object-fit:cover;width:100%}.standard-view-photo-container.rectangular{border-radius:8px;height:120px;width:180px}.standard-view-primary-info{flex:1 1;min-width:250px}.standard-view-title{color:var(--color-primary-700);font-size:1.8rem;font-weight:600;line-height:1.2;margin:0 0 .5rem}.standard-view-subtitle{color:var(--color-secondary-600);font-size:1rem;font-style:italic;margin-bottom:1rem}.standard-view-description{background-color:var(--color-secondary-50);border-left:4px solid var(--color-primary-300);border-radius:8px;color:var(--color-text-primary);font-size:.95rem;line-height:1.5;padding:1rem}.standard-view-details{margin-top:1.5rem}.standard-view-details-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.standard-view-detail-field{border-bottom:1px solid var(--color-secondary-200);display:flex;flex-direction:column;gap:.3rem;padding:.75rem 0}.standard-view-detail-field:last-child{border-bottom:none}.standard-view-detail-label{color:var(--color-secondary-700);font-size:.9rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.standard-view-detail-value{color:var(--color-text-primary);font-size:1rem;line-height:1.4}.standard-view-related-section{border-top:2px solid var(--color-secondary-300);margin-top:2rem;padding-top:1.5rem}.standard-view-related-title{color:var(--color-primary-700);font-size:1.2rem;font-weight:600;margin-bottom:1rem}.standard-view-related-list{display:flex;flex-wrap:wrap;gap:.75rem}.standard-view-related-tag{align-items:center;background:var(--color-primary-100);border:1px solid var(--color-primary-300);border-radius:20px;cursor:pointer;display:flex;font-size:.9rem;gap:.5rem;padding:.5rem .75rem;transition:all .2s ease}.standard-view-related-tag:hover{background:var(--color-primary-200);box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.standard-view-related-photo{border:1px solid var(--color-primary-400);border-radius:50%;height:24px;object-fit:cover;width:24px}.standard-view-related-name{color:var(--color-primary-700);font-weight:500}.standard-view-actions{border-top:1px solid var(--color-secondary-300);display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1.5rem}@media (max-width:768px){.standard-view-container{border-radius:8px;margin:1rem;padding:1.5rem}.standard-view-header{align-items:center;flex-direction:column;gap:1rem;text-align:center}.standard-view-photo-container{height:120px;width:120px}.standard-view-photo-container.rectangular{height:100px;width:160px}.standard-view-details-grid{grid-template-columns:1fr}.standard-view-actions{flex-direction:column}}@media (max-width:480px){.standard-view-container{margin:.5rem;padding:1rem}.standard-view-title{font-size:1.5rem}.standard-view-related-list{flex-direction:column}}.loading-screen-overlay{animation:fadeIn .3s ease-in-out;background:linear-gradient(135deg,var(--color-primary-50),var(--color-secondary-50));bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999}.loading-screen-inline,.loading-screen-overlay{align-items:center;display:flex;font-family:var(--font-primary);justify-content:center}.loading-screen-inline{min-height:200px;padding:2rem}.loading-container{background:var(--color-neutral-white);border-radius:12px;box-shadow:0 8px 32px #0000001a;max-width:400px;padding:2rem;text-align:center;width:90%}.loading-spinner{animation:spin 1s linear infinite;border-top:4px solid var(--color-primary-200);border:4px solid var(--color-primary-200);border-radius:50%;border-top-color:var(--color-primary-700);margin:0 auto 1rem}.loading-spinner-small{border-width:2px;height:24px;width:24px}.loading-spinner-medium{border-width:4px;height:48px;width:48px}.loading-spinner-large{border-width:5px;height:64px;width:64px}.loading-message{color:var(--color-primary-700);font-size:var(--text-base);font-weight:var(--weight-medium);line-height:1.5;margin:0}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.loading-screen-inline .loading-container{background:#0000;box-shadow:none;padding:1rem}.loading-screen-inline .loading-message{color:var(--color-primary-600)}.home-container,.layout{font-family:var(--font-primary)}.home-container{min-height:92vh;padding:2rem}.home-title{color:var(--color-primary-700);font-size:var(--text-4xl);font-weight:var(--weight-bold);margin-bottom:2rem;text-align:center}.highlight-section{display:flex;flex-wrap:wrap;gap:2rem;justify-content:center}.highlight-card{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.highlight-card:hover{box-shadow:0 4px 8px var(--color-shadow-dark);transform:translateY(-5px)}.highlight-card{align-items:center;background-color:var(--color-secondary-100);border-radius:10px;box-shadow:0 4px 24px 0 var(--color-shadow-medium),0 1.5px 4px 0 var(--color-shadow-light);display:flex;flex-direction:column;outline:none;padding:1rem;text-align:center;transition:transform .18s cubic-bezier(.4,0,.2,1),box-shadow .18s cubic-bezier(.4,0,.2,1);width:300px}.highlight-card h2{color:var(--color-primary-700);font-size:var(--text-md);margin-bottom:1rem}.highlight-card img{border-radius:8px;height:auto;margin-bottom:1rem;width:100%}.highlight-card p{color:var(--color-primary-500);font-size:var(--text-sm);margin:.5rem 0}.auth-layout{align-items:center;display:flex;flex-direction:column;font-family:var(--font-primary);justify-content:center;min-height:92vh;position:relative}.auth-content{z-index:1}.auth-content,.login-page,.register-page{align-items:center;justify-content:center;position:relative;width:100%}.login-page,.register-page{display:flex;flex-direction:column;min-height:calc(100vh - 150px)}.about-page:after,.about-page:before,.faq-page:after,.faq-page:before,.login-page:after,.login-page:before,.register-page:after,.register-page:before,.terms-page:after,.terms-page:before{display:none!important}.auth-title{color:var(--color-primary-700);font-size:var(--text-3xl);font-weight:var(--weight-bold)}.auth-form{background:var(--color-neutral-white);border-radius:25px;display:flex;flex-direction:column;gap:1.2rem;margin:1rem 0;min-width:30%;padding:2rem}.auth-form label{align-self:flex-start;color:var(--color-primary-700);font-weight:var(--weight-bold)}.auth-form input{backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);background-color:var(--color-background-translucent);border:1px solid var(--color-primary-700);color:var(--color-primary-700);font-size:var(--text-base);padding:.5rem;transition:background-color .2s ease,border-color .2s ease;width:100%}.auth-form input:focus{background-color:var(--color-background-translucent-focus);border-color:var(--color-primary-400);outline:none}.auth-link{align-self:flex-end;color:var(--color-primary-700);font-size:var(--text-xs);font-weight:var(--weight-semibold);margin-top:-.24rem;padding-bottom:.6rem;text-align:right;text-decoration:none}.auth-button{font-size:var(--text-md);margin:0 auto;max-width:100%;padding:.5rem 2rem;width:100%}.auth-form a.auth-button{text-decoration:none}.auth-form a.auth-button,.button-wrapper{display:flex;justify-content:center;width:100%}.password-requirements{background-color:var(--color-background-translucent);border:1px solid var(--color-neutral-200);border-radius:4px;font-size:var(--text-sm);margin:.5rem 0 1rem;padding:.8rem}.password-requirements p{color:var(--color-neutral-600);font-weight:var(--weight-semibold);margin:0 0 .5rem}.password-requirements ul{list-style-type:none;margin:0;padding-left:1.5rem}.password-requirements li{color:var(--color-error);margin-bottom:.25rem;position:relative}.password-requirements li:before{color:var(--color-error);content:"✕";display:inline-block;margin-right:.5rem;width:15px}.password-requirements li.met{color:var(--color-success)}.password-requirements li.met:before{color:var(--color-success);content:"✓"}.about-page:after,.about-page:before,.auth-layout:after,.auth-layout:before,.faq-page:after,.faq-page:before,.landing-layout:after,.landing-layout:before,.login-page:after,.login-page:before,.register-page:after,.register-page:before,.terms-page:after,.terms-page:before{display:none}.auth-form span{align-items:center;display:flex;justify-content:space-between;margin-bottom:.3rem;width:100%}.required-field-hint{color:var(--color-neutral-500);font-size:var(--text-xs);font-style:italic;margin-left:1.5rem;text-align:right}.auth-form .auth-action-container{align-items:center;display:flex;justify-content:space-between;margin-top:1rem;width:100%}.auth-form .auth-action-container .auth-link{align-self:center;margin-top:0;padding-bottom:0}.auth-form .auth-action-container .auth-button{margin:0;max-width:50%}.heirloom-container{align-items:center;display:flex;flex-direction:column;font-family:var(--font-primary);min-height:92vh;padding:2rem 0}.heirloom-grid{box-sizing:border-box;display:flex;gap:2rem;justify-items:center;padding:1.5rem;width:100%}.heirloom-card{align-items:center;background-color:var(--color-secondary-100);border:none;border-radius:18px;box-shadow:0 4px 24px 0 var(--color-shadow-medium),0 1.5px 4px 0 var(--color-shadow-light);cursor:pointer;display:flex;flex-direction:column;outline:none;padding:1rem;text-align:center;transition:transform .18s cubic-bezier(.4,0,.2,1),box-shadow .18s cubic-bezier(.4,0,.2,1);width:340px}.heirloom-card:focus{box-shadow:0 0 0 3px var(--color-secondary-300),0 4px 24px 0 var(--color-shadow-medium)}.heirloom-card:hover{box-shadow:0 8px 32px 0 var(--color-shadow-dark),0 2px 8px 0 var(--color-shadow-medium);transform:translateY(-7px) scale(1.025)}.heirloom-img{aspect-ratio:1/1;border-radius:12px;box-shadow:0 2px 8px var(--color-shadow-light);margin-bottom:1.2rem;object-fit:cover;width:100%}.heirloom-card-content h2{color:var(--color-primary-700);font-size:var(--text-md);font-weight:var(--weight-bold);margin:.5rem 0 .3rem}.heirloom-card-content p{color:var(--color-primary-500);font-size:var(--text-base);margin:0}.add-heirloom-card{background-color:var(--color-primary-200);border:2px dashed var(--color-secondary-300);justify-content:center;min-height:320px;position:relative}.add-heirloom-plus{color:var(--color-primary-400);font-size:4.5rem;font-weight:var(--weight-bold);line-height:1;margin-bottom:1.2rem;-webkit-user-select:none;user-select:none}.no-heirlooms-msg{color:var(--color-primary-400);font-size:var(--text-md);grid-column:1/-1;margin-top:2rem;text-align:center}.heirloom-button{align-items:center;background-color:var(--color-primary-700);border:none;border-radius:9999px;box-shadow:2px 2px 0 var(--color-primary-400);color:var(--color-neutral-white);cursor:pointer;display:flex;font-size:var(--text-sm);font-weight:var(--weight-bold);justify-content:flex-end;margin:.5rem -.7rem .2rem auto;max-width:max-content;padding:.25rem 1rem;transition:background .2s ease;white-space:nowrap}.heirloom-button:hover{background-color:var(--color-primary-600)}@keyframes wiggle{0%{transform:rotate(0deg)}10%{transform:rotate(-4deg)}20%{transform:rotate(4deg)}30%{transform:rotate(-3deg)}40%{transform:rotate(3deg)}50%{transform:rotate(-2deg)}60%{transform:rotate(2deg)}70%{transform:rotate(-1deg)}80%{transform:rotate(1deg)}90%{transform:rotate(0deg)}to{transform:rotate(0deg)}}.wiggle{animation:wiggle .8s ease-in-out}.settings-layout-sleek{font-family:var(--font-primary);justify-content:center;padding:2.5rem 0}.settings-layout-sleek,.settings-main-sleek{background:var(--color-secondary-100);display:flex}.settings-main-sleek{border-radius:1.2rem;box-shadow:0 4px 18px var(--color-shadow-medium);flex-direction:column;gap:2.5rem;min-width:420px;padding:2.5rem 2.5rem 2rem;width:100%}.settings-main-sleek h1{border-bottom:2px solid var(--color-secondary-300);color:var(--color-primary-500);font-family:var(--font-secondary);font-size:var(--text-3xl);letter-spacing:.5px;margin-bottom:1.5rem;padding-bottom:.7rem}.settings-section-sleek{border:1px solid var(--color-secondary-300);border-radius:1rem;box-shadow:0 2px 8px var(--color-shadow-light);display:flex;flex-direction:column;gap:1.5rem;margin:2rem 0;padding:2rem 1.5rem}.settings-section-sleek h2{color:var(--color-primary-700);font-family:var(--font-secondary);font-size:var(--text-lg);margin:0 0 1.2rem;text-decoration:underline}.settings-profile-row{align-items:flex-start;display:flex;flex-wrap:wrap;gap:2.5rem}.settings-avatar-label{align-items:center;cursor:pointer;display:flex;flex-direction:column}.settings-avatar-large{background:var(--color-neutral-white);border:3px solid var(--color-primary-700);border-radius:50%;box-shadow:0 2px 8px var(--color-shadow-medium);height:120px;margin-bottom:.7rem;overflow:hidden;width:120px}.settings-avatar-large img{background:var(--color-secondary-200);border-radius:50%;display:block;height:100%;object-fit:cover;object-position:center;width:100%}.settings-profile-fields{display:flex;flex:1 1;flex-direction:column;gap:1.1rem;min-width:200px}.form-row{align-items:center;display:flex;gap:1.1rem;margin-bottom:.5rem;width:100%}.form-row b{color:var(--color-primary-700);display:inline-block;font-family:var(--font-primary);font-weight:var(--weight-bold);text-align:left;width:120px}.form-row input,.form-row select{background:var(--color-neutral-white);border:1px solid var(--color-secondary-300);border-radius:.5rem;flex:1 1;font-family:var(--font-primary);font-size:var(--text-base);padding:.4rem .7rem;transition:border .2s}.form-row input:focus,.form-row select:focus{border-color:var(--color-primary-700);outline:none}.settings-readonly{background:none;border:none;color:var(--color-neutral-500);font-family:var(--font-primary);padding:.4rem 0}.settings-actions{display:flex;justify-content:flex-end;margin-top:1.5rem}.auth-button{font-size:var(--text-base);font-weight:var(--weight-bold);padding:.6rem 1.5rem;transition:background .2s}.settings-content{background-color:var(--color-primary-100);font-family:var(--font-primary);min-height:calc(100vh - 160px);padding:2.5rem;width:100%}.settings-container{min-height:92vh;padding:2rem}.settings-layout-sleek{background:none!important;display:block!important;min-height:0!important;padding:0!important}.settings-main-sleek{margin:0 auto;max-width:600px}@media (max-width:700px){.settings-main-sleek{max-width:100vw;min-width:0;min-width:auto;padding:1.2rem .5rem}.settings-profile-row{align-items:stretch;flex-direction:column;gap:1.5rem}}.landing-header{background:var(--color-neutral-white);border-bottom:1px solid var(--color-neutral-200)}.header,.landing-header{align-items:center;box-shadow:0 2px 4px #0000001a;box-sizing:border-box;display:flex;font-family:var(--font-primary);justify-content:space-between;padding:1rem 2rem;position:sticky;top:0;transition:background-color .6s ease;width:100%;z-index:1100}.header{background:var(--color-secondary-200);border-bottom:none}.logo{flex-shrink:0;order:0}.logo a{display:inline-block;font-family:var(--font-secondary);font-size:var(--text-xl);font-weight:var(--weight-bold);margin-bottom:auto;margin-top:auto;text-decoration:none;transition:color .3s ease,transform .2s ease}.logo a,.logo a:hover{color:var(--color-primary-700)}.logo a:hover{transform:scale(1.03);transition:.3s}.auth-links{align-items:center;display:flex;gap:1rem}.signin-link{color:var(--color-primary-700);font-family:var(--font-secondary);font-size:var(--text-sm);font-weight:var(--weight-bold);margin-bottom:auto;margin-top:auto;text-decoration:none}.signin-link:hover{color:var(--color-primary-600)}.signup-button{background-color:var(--color-primary-700);border-radius:9999px;color:var(--color-neutral-white);font-family:var(--font-secondary);font-size:var(--text-sm);font-weight:var(--weight-bold);padding:.4rem .9rem;text-decoration:none;transition:background-color .2s ease}.signup-button:hover{background-color:var(--color-primary-600)}.header-content{align-items:center;display:flex;flex:1 1;gap:2rem;justify-content:space-between;max-width:calc(100% - 200px)}.header-nav{display:flex;font-size:var(--text-md);font-weight:var(--weight-medium);gap:2rem;margin-left:2rem}.header-nav .nav-link{border-radius:6px;color:var(--color-primary-600);padding:.5rem 1rem;position:relative;text-decoration:none;transition:all .2s ease}.header-nav .nav-link:hover{background-color:var(--color-primary-50);color:var(--color-primary-700)}.header-nav .nav-link.active{background-color:var(--color-primary-100);color:var(--color-primary-700);font-weight:var(--weight-semibold)}.header-nav .nav-link.active:after{background-color:var(--color-primary-700);border-radius:1px;bottom:-8px;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);width:20px}.header-icons{flex-shrink:0;gap:1rem}.avatar-dropdown,.header-icons{align-items:center;display:flex}.avatar-dropdown{position:relative}.icon{color:var(--color-primary-700);cursor:pointer;font-size:var(--text-lg)}.avatar{background:var(--color-secondary-200);border-radius:9999px;display:block;height:3rem;object-fit:cover;object-position:center;transition:transform .2s ease;width:3rem}.avatar:hover{transform:scale(1.05)}.dropdown-menu{animation:dropdownFadeIn .2s ease-out;background:var(--color-neutral-white);border:1px solid var(--color-neutral-200);border-radius:8px;box-shadow:0 8px 32px #00000026;min-width:160px;padding:.5rem 0;position:absolute;right:0;top:calc(100% + .25rem);z-index:9999}.dropdown-menu:before{background:#0000;content:"";height:.25rem;position:absolute;right:0;top:-.25rem;width:100%;z-index:9998}.dropdown-item{align-items:center;background:none;border:none;color:var(--color-neutral-700);cursor:pointer;display:flex;font-size:var(--text-sm);font-weight:var(--weight-medium);gap:.5rem;padding:.75rem 1rem;text-align:left;transition:background-color .2s ease;width:100%}.dropdown-item:hover{background-color:var(--color-primary-50);color:var(--color-primary-700)}.dropdown-item.sign-out-item:hover{background-color:#fef2f2;background-color:var(--color-error-50,#fef2f2);color:#b91c1c;color:var(--color-error-700,#b91c1c)}.dropdown-icon{align-items:center;display:flex;font-size:1rem;height:1rem;justify-content:center;width:1rem}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.header-content{gap:1rem;max-width:calc(100% - 150px)}.header-nav{gap:1rem;margin-left:1rem}.header-nav .nav-link{font-size:var(--text-sm);padding:.4rem .8rem}.landing-header{padding:.8rem 1rem}.logo a{font-size:var(--text-lg)}}@media (max-width:640px){.header-nav{display:none}.header-content{justify-content:flex-end}.mobile-nav-hint{color:var(--color-neutral-500);font-size:var(--text-xs);margin-right:1rem}}.footer{background-color:var(--color-neutral-800);color:var(--color-neutral-white);flex-shrink:0;font-family:var(--font-primary);margin-top:auto;padding:2rem 0 1rem;width:100%}.footer-content{display:flex;flex-wrap:wrap;justify-content:space-around;margin:0 auto;max-width:1200px;padding:0 2rem}.footer-section{flex:1 1;margin-bottom:1.5rem;min-width:250px;padding:0 1rem}.footer-section h4{color:var(--color-neutral-100);font-size:var(--text-md);font-weight:var(--weight-semibold);margin-bottom:1rem;padding-bottom:.5rem;position:relative}.footer-section h4:after{background-color:var(--color-primary-400);bottom:0;content:"";height:2px;left:0;position:absolute;width:50px}.footer-section ul{list-style:none;padding:0}.footer-section ul li{margin-bottom:.5rem}.footer-bottom a,.footer-section a{color:var(--color-neutral-300);text-decoration:none;transition:color .3s ease}.footer-bottom a:hover,.footer-section a:hover{color:var(--color-primary-400);text-decoration:underline}.footer-bottom{border-top:1px solid var(--color-neutral-600);color:var(--color-neutral-400);font-size:var(--text-sm);margin-top:1rem;padding-top:1rem;text-align:center}.layout .footer{margin-left:0;width:100%}@media (max-width:768px){.footer-content{flex-direction:column}.footer-section{margin-bottom:2rem}}.cookie-consent{background:var(--color-neutral-white);border-top:2px solid var(--color-primary-700);bottom:0;box-shadow:0 -4px 12px #0000001a;font-family:var(--font-primary);left:0;padding:1.5rem;position:fixed;right:0;z-index:1000}.cookie-consent-content{align-items:center;display:flex;gap:2rem;justify-content:space-between;margin:0 auto;max-width:1200px}.cookie-consent-text h3{color:var(--color-primary-700);font-size:var(--text-lg);font-weight:var(--weight-bold);margin:0 0 .5rem}.cookie-consent-text p{color:var(--color-neutral-700);font-size:var(--text-sm);line-height:1.5;margin:0}.cookie-consent-actions{align-items:center;display:flex;flex-shrink:0;gap:1rem}.btn-outline,.btn-primary,.btn-secondary{border:none;border-radius:6px;cursor:pointer;display:inline-block;font-size:var(--text-sm);font-weight:var(--weight-medium);padding:.5rem 1rem;text-decoration:none;transition:all .2s ease}.btn-primary{background-color:var(--color-primary-700);color:var(--color-neutral-white)}.btn-primary:hover{background-color:var(--color-primary-600)}.btn-secondary{background-color:var(--color-secondary-200);color:var(--color-neutral-800)}.btn-secondary:hover{background-color:var(--color-secondary-300)}.btn-outline{background-color:initial;border:1px solid var(--color-neutral-300);color:var(--color-neutral-700)}.btn-outline:hover{background-color:var(--color-neutral-100)}.cookie-preferences{border-top:1px solid var(--color-neutral-200);margin-top:1.5rem;padding-top:1.5rem}.cookie-preferences h4{color:var(--color-primary-700);font-size:var(--text-base);font-weight:var(--weight-bold);margin:0 0 1rem}.cookie-category{background-color:var(--color-neutral-50);border-radius:6px;margin-bottom:1rem;padding:.75rem}.cookie-category-header{align-items:center;display:flex;gap:.5rem;margin-bottom:.25rem}.cookie-category-header input[type=checkbox]{accent-color:var(--color-primary-700);height:16px;width:16px}.cookie-category-header label{align-items:center;color:var(--color-neutral-800);cursor:pointer;display:flex;font-size:var(--text-sm);gap:.5rem}.cookie-category-header input[disabled]+label{cursor:not-allowed;opacity:.7}.required{background-color:var(--color-primary-700);border-radius:4px;color:var(--color-neutral-white);font-size:.75rem;font-weight:var(--weight-medium);padding:.125rem .375rem}.cookie-category p{color:var(--color-neutral-600);font-size:.875rem;line-height:1.4;margin:0 0 0 1.5rem}.cookie-preferences-actions{margin-top:1.5rem;text-align:right}@media (max-width:768px){.cookie-consent-content{align-items:stretch;flex-direction:column;gap:1rem}.cookie-consent-actions{flex-wrap:wrap;justify-content:center}.cookie-consent{padding:1rem}}.react-flow{direction:ltr}.react-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.react-flow__pane{cursor:grab;z-index:1}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:grabbing}.react-flow__viewport{pointer-events:none;transform-origin:0 0;z-index:2}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{overflow:visible;pointer-events:none}.react-flow__connection-path,.react-flow__edge-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{cursor:pointer;pointer-events:visibleStroke}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{box-sizing:border-box;cursor:grab;pointer-events:all;position:absolute;transform-origin:0 0;-webkit-user-select:none;user-select:none}.react-flow__node.dragging{cursor:grabbing}.react-flow__nodesselection{pointer-events:none;transform-origin:left top;z-index:3}.react-flow__nodesselection-rect{cursor:grab;pointer-events:all;position:absolute}.react-flow__handle{background:#1a192b;border:1px solid #fff;border-radius:100%;height:6px;min-height:5px;min-width:5px;pointer-events:none;position:absolute;width:6px}.react-flow__handle.connectionindicator{cursor:crosshair;pointer-events:all}.react-flow__handle-bottom{bottom:-4px;left:50%;top:auto;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{left:-4px;top:50%;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{margin:15px;position:absolute;z-index:5}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translateX(-50%)}.react-flow__attribution{background:#ffffff80;font-size:10px;margin:0;padding:2px 3px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{height:100%;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;width:100%}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{background-color:#fff;border:1px solid #1a192b;border-radius:3px;color:#222;font-size:12px;padding:10px;text-align:center;width:150px}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted #0059dccc}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{align-items:center;background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:initial;cursor:pointer;display:flex;height:16px;justify-content:center;padding:5px;-webkit-user-select:none;user-select:none;width:16px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{max-height:12px;max-width:12px;width:100%}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:#3367d9;border:1px solid #fff;border-radius:1px;height:4px;transform:translate(-50%,-50%);width:4px}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border:0 solid #3367d9}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{height:100%;top:0;transform:translate(-50%);width:1px}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;left:0;transform:translateY(-50%);width:100%}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.familytree-container{font-family:var(--font-primary);min-height:calc(100vh - 80px);overflow:hidden;padding:0}.familytree-container,.familytree-treearea{align-items:center;display:flex;flex-direction:column;width:100%}.familytree-treearea{height:calc(100vh - 160px);justify-content:flex-start;margin:0 auto;min-height:calc(100vh - 160px);padding:2rem;position:relative}.familytree-treeheader{align-items:center;display:flex;flex-direction:row;gap:1rem;justify-content:space-between;margin-bottom:1.5rem;padding:0;width:90%}.familytree-treeheader h1{color:var(--color-primary-500);font-family:var(--font-secondary);font-size:2.2rem;margin:0;text-align:center;width:auto}.family-modal-rel{font-size:1.1rem}.family-modal-dob{font-size:1rem}.family-modal-details{font-size:var(--text-md)}.family-form .form-row{align-items:center;display:flex;gap:1rem;margin-bottom:1rem;width:100%}.family-form .form-row b{display:inline-block;text-align:left;width:120px}.family-form input,.family-form select{background:var(--color-neutral-white);border:1px solid var(--color-secondary-300);border-radius:6px;flex:1 1;font-family:var(--font-primary);font-size:1rem;padding:.25rem .5rem}.family-form select[multiple]{min-height:2.5rem}.family-form .error-text{color:var(--color-error);font-size:1rem;margin-bottom:.5rem}.auth-button{background-color:var(--color-primary-700);border:none;border-radius:9999px;box-shadow:2px 2px 0 var(--color-primary-400);color:var(--color-neutral-white);cursor:pointer;font-size:1rem;font-weight:700;max-width:max-content;padding:.5rem 1.5rem;transition:background .2s ease}.auth-button:hover{background-color:var(--color-primary-600)}.auth-button.delete{background:var(--color-error);color:var(--color-neutral-white)}.auth-button.delete:hover{background:#a94442}.familytree-treearea svg .node{margin:1.5rem}.react-flow__handle{opacity:0!important;pointer-events:none!important}.family-node-plus{align-items:center;background:var(--color-secondary-300);border:none;border-radius:50%;box-shadow:0 1px 4px 0 var(--color-shadow-light);cursor:pointer;display:flex;font-size:20px;height:28px;justify-content:center;left:50%;opacity:0;pointer-events:none;position:absolute;transform:translateX(-50%);transition:opacity .2s;width:28px;z-index:2}.family-node-card:focus .family-node-plus,.family-node-card:focus-within .family-node-plus,.family-node-card:hover .family-node-plus{opacity:1;pointer-events:auto}.family-node-plus-top{top:-24px}.family-node-plus-bottom{bottom:-24px}.highlighted-edge path{stroke:var(--color-primary-600)!important;stroke-width:4!important}.spouse-edge path{stroke-dasharray:6,6;stroke-width:3px;stroke:var(--color-primary-400)!important}.highlighted-edge.spouse-edge path,.spouse-edge.highlighted-edge path{stroke:var(--color-primary-600)!important;stroke-dasharray:6,6;stroke-width:4!important}.family-node-card{transition:opacity .3s,box-shadow .3s}.highlighted-node{box-shadow:0 0 0 3px var(--color-primary-600),0 4px 10px var(--color-shadow-medium)!important;z-index:10}.dimmed-node{opacity:.4}.family-modal-overlay{align-items:center;background:var(--color-overlay);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.family-modal{background:var(--color-secondary-100);border-radius:18px;box-shadow:0 8px 32px 0 var(--color-shadow-dark),0 2px 8px 0 var(--color-shadow-medium);display:flex;flex-direction:column;font-family:var(--font-primary);gap:1.2rem;max-height:95vh;max-width:95vw;min-width:370px;overflow-y:auto;padding:2.5rem 2.2rem 2rem}.family-modal-header{align-items:center;display:flex;gap:1.5rem;margin-bottom:.5rem}.family-modal-img{background:var(--color-secondary-200);border:1.5px solid var(--color-secondary-300);border-radius:12px;height:90px;object-fit:cover;width:90px}.family-modal-rel{color:var(--color-primary-400);font-size:var(--text-md);margin-top:.2rem}.family-modal-dob{color:var(--color-secondary-300);font-size:var(--text-base);margin-top:.1rem}.family-modal-details{background:var(--color-primary-100);border-radius:10px;color:var(--color-primary-500);display:flex;flex-direction:column;font-size:var(--text-base);gap:.4rem;margin-bottom:.5rem;padding:1rem 1.2rem}.family-modal-actions{display:flex;gap:1.2rem;justify-content:flex-end;margin-top:1.2rem}.about-page{background:var(--color-neutral-white);border-radius:25px;font-family:var(--font-primary);margin:1rem 0;max-width:900px;overflow:hidden;padding:2rem;position:relative}.about-page h1{border-bottom:2px solid var(--color-secondary-300);color:var(--color-primary-500);font-size:var(--text-3xl);font-weight:var(--weight-bold);padding-bottom:1rem;text-align:center}.about-page h1,.about-section{margin-bottom:2rem;position:relative;z-index:1}.about-section h2{color:var(--color-secondary-500);font-size:var(--text-xl);font-weight:var(--weight-semibold);margin-bottom:1rem;position:relative}.about-section h2:after{background-color:var(--color-secondary-300);bottom:-.5rem;content:"";height:2px;left:0;position:absolute;width:50px}.about-section p{color:var(--color-neutral-800);font-size:var(--text-base);line-height:1.6}.feature-list{list-style-type:none;padding-left:0}.feature-list li{margin-bottom:1rem;padding-left:1.5rem;position:relative}.feature-list li:before{color:var(--color-secondary-500);content:"•";font-weight:var(--weight-bold);left:0;position:absolute}@media (max-width:768px){.about-page{padding:1rem}.about-section h2{font-size:var(--text-lg)}}.terms-page{background:var(--color-neutral-white);border-radius:25px;font-family:var(--font-primary);margin:1rem 0;max-width:900px;overflow:hidden;padding:2rem;position:relative}.terms-page h1{border-bottom:2px solid var(--color-secondary-300);color:var(--color-primary-500);font-size:var(--text-3xl);font-weight:var(--weight-bold);padding-bottom:1rem;text-align:center}.terms-notice,.terms-page h1{margin-bottom:2rem;position:relative;z-index:1}.terms-notice{background-color:var(--color-neutral-100);border-left:4px solid var(--color-secondary-300);padding:1rem}.terms-section{margin-bottom:2rem}.terms-section h2{color:var(--color-secondary-500);font-size:var(--text-lg);font-weight:var(--weight-semibold);margin-bottom:1rem}.terms-section li,.terms-section p{color:var(--color-neutral-800);font-size:var(--text-base);line-height:1.6;margin-bottom:.5rem}.terms-section ul{margin-bottom:1rem;padding-left:1.5rem}.terms-section li{margin-bottom:.5rem}.terms-acceptance{background-color:var(--color-primary-100);border-radius:4px;margin-top:2rem;padding:1rem;text-align:center}.terms-acceptance p{color:var(--color-primary-700);font-weight:var(--weight-medium)}@media (max-width:768px){.terms-page{padding:1rem}.terms-section h2{font-size:var(--text-md)}}.faq-page{background:var(--color-neutral-white);border-radius:25px;font-family:var(--font-primary);margin:1rem 0;max-width:900px;overflow:hidden;padding:2rem;position:relative}.faq-page h1{border-bottom:2px solid var(--color-secondary-300);color:var(--color-primary-500);font-size:var(--text-3xl);font-weight:var(--weight-bold);margin-bottom:1.5rem;padding-bottom:1rem}.faq-intro,.faq-page h1{position:relative;text-align:center;z-index:1}.faq-intro{color:var(--color-neutral-800);font-size:var(--text-md);margin-bottom:2.5rem}.faq-container{display:flex;flex-direction:column;gap:1.5rem}.faq-item{border:1px solid var(--color-neutral-200);border-radius:8px;box-shadow:0 2px 5px var(--color-shadow-light);overflow:hidden;transition:all .3s ease}.faq-item:hover{box-shadow:0 5px 15px var(--color-shadow-medium)}.faq-item h3{background-color:var(--color-primary-100);color:var(--color-secondary-500);cursor:pointer;font-size:var(--text-md);font-weight:var(--weight-semibold);margin:0;padding:1.2rem;position:relative}.faq-answer{color:var(--color-neutral-800);line-height:1.6;padding:0 1.2rem 1.2rem}.faq-answer p{margin-bottom:.8rem;margin-top:0}.faq-answer p:last-child{margin-bottom:0}.faq-answer ul{margin-bottom:.8rem;padding-left:1.5rem}.faq-answer li{margin-bottom:.3rem}.faq-answer a{border-bottom:1px dotted var(--color-secondary-500);color:var(--color-secondary-500);text-decoration:none}.faq-answer a:hover{border-bottom-color:var(--color-primary-400);color:var(--color-primary-400)}.faq-contact{background-color:var(--color-primary-100);border-radius:8px;margin-top:3rem;padding:1.5rem;text-align:center}.faq-contact h3{color:var(--color-secondary-500);font-size:var(--text-lg);font-weight:var(--weight-semibold);margin-bottom:1rem;margin-top:0}.faq-contact p{color:var(--color-neutral-800);margin-bottom:0}@media (max-width:768px){.faq-page{padding:1rem}.faq-item h3{font-size:var(--text-base);padding:1rem}.faq-answer{padding:0 1rem 1rem}}.privacy-page{color:var(--color-neutral-800);font-family:var(--font-primary);line-height:1.6;margin:0 auto;max-width:800px;padding:2rem}.privacy-container h1{color:var(--color-primary-700);font-size:var(--text-2xl);font-weight:var(--weight-bold);margin-bottom:.5rem}.last-updated{color:var(--color-neutral-600);font-size:var(--text-sm);font-style:italic}.last-updated,.privacy-section{margin-bottom:2rem}.privacy-section h2{border-bottom:2px solid var(--color-primary-200);color:var(--color-primary-700);font-size:var(--text-xl);font-weight:var(--weight-bold);margin-bottom:1rem;padding-bottom:.5rem}.privacy-section h3{color:var(--color-primary-600);font-size:var(--text-lg);font-weight:var(--weight-semibold);margin:1rem 0 .5rem}.privacy-section p{margin-bottom:1rem;text-align:justify}.privacy-section ul{margin:1rem 0;padding-left:1.5rem}.privacy-section li{margin-bottom:.5rem}.privacy-section strong{color:var(--color-primary-700);font-weight:var(--weight-semibold)}@media (max-width:768px){.privacy-page{padding:1rem}.privacy-container h1{font-size:var(--text-xl)}.privacy-section h2{font-size:var(--text-lg)}}:root{--font-primary:"Mona Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-secondary:"Young Serif",Georgia,serif;--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-md:1.125rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:1.875rem;--text-3xl:2.25rem;--text-4xl:3rem;--text-5xl:3.75rem;--text-6xl:4.5rem}#root{min-height:100vh;position:relative}body{margin:0;padding:0}.layout{flex-direction:column;min-height:100vh}.content-wrapper,.layout{display:flex;position:relative}.content-wrapper{flex:1 1;flex-direction:column;min-height:calc(100vh - 80px);padding-top:0;width:100%}.auth-page-container{display:flex;flex-direction:column;min-height:100vh}.auth-content{display:flex;flex:1 1;flex-direction:column}:root{--color-primary-100:#f6f9f3;--color-primary-200:#e3e9dc;--color-primary-300:#d1dbc7;--color-primary-400:#7c9a7a;--color-primary-500:#4a5240;--color-primary-600:#2e4d2a;--color-primary-700:#1e321c;--color-secondary-100:#fffbe9;--color-secondary-200:#e3e7d3;--color-secondary-300:#bcb88a;--color-secondary-400:#a2a078;--color-secondary-500:#6b5843;--color-neutral-white:#fff;--color-neutral-100:#f5f5f5;--color-neutral-200:#e5e5e5;--color-neutral-300:#d4d4d4;--color-neutral-400:#a3a3a3;--color-neutral-500:#737373;--color-neutral-600:#525252;--color-neutral-700:#404040;--color-neutral-800:#222;--color-neutral-900:#171717;--color-success:#28a745;--color-warning:#ffc107;--color-error:#dc3545;--color-error-dark:#a94442;--color-info:#17a2b8;--color-shadow-light:#1e321c14;--color-shadow-medium:#1e321c1a;--color-shadow-dark:#1e321c29;--color-overlay:#1e321c2e;--gradient-primary:linear-gradient(135deg,var(--color-primary-100),var(--color-primary-200),var(--color-secondary-200),var(--color-secondary-300));--gradient-spot-light-1:#f0f5ebb3;--gradient-spot-light-2:#e6f0e1b3;--gradient-spot-medium-1:#dcdab466;--gradient-spot-medium-2:#d2d2aa4d;--gradient-vibrant-green:#7c9a7a66;--gradient-warm-beige:#bcb88a4d;--gradient-heritage-brown:#6b584333;--gradient-soft-cream:#e3e9dc66;--gradient-accent-green:#a2a0784d;--gradient-highlight-green:#7c9a7a33;--color-background-translucent:#fff3;--color-background-translucent-focus:#ffffff4d}*{box-sizing:border-box;font-family:var(--font-primary);margin:0;padding:0}.heading-font,h1,h2,h3,h4,h5,h6{font-family:var(--font-secondary)}#root,body,html{height:100%;width:100%}body{background:var(--color-secondary-100);min-height:100vh;overflow-x:hidden;position:relative}body:before{animation:moveGradient 30s ease-in-out infinite alternate;background:radial-gradient(circle at 30% 30%,var(--gradient-vibrant-green),#0000 40%),radial-gradient(circle at 70% 70%,var(--gradient-warm-beige),#0000 40%),radial-gradient(ellipse at 20% 80%,var(--gradient-heritage-brown),#0000 50%);z-index:-2}body:after,body:before{content:"";height:300%;left:-100%;position:fixed;top:-100%;width:300%;will-change:transform}body:after{animation:moveGradient 25s ease-in-out infinite alternate-reverse;background:radial-gradient(ellipse at 40% 60%,var(--gradient-accent-green),#0000 50%),radial-gradient(ellipse at 60% 30%,var(--gradient-soft-cream),#0000 45%),radial-gradient(circle at 80% 20%,var(--gradient-highlight-green),#0000 35%);z-index:-1}@keyframes moveGradient{0%{transform:translate(-5%,-5%) rotate(0deg) scale(1)}25%{transform:translate(2%,-8%) rotate(45deg) scale(1.05)}50%{transform:translate(-2%,5%) rotate(90deg) scale(.95)}75%{transform:translate(5%,2%) rotate(135deg) scale(1.02)}to{transform:translate(-3%,-3%) rotate(180deg) scale(1)}}
/*# sourceMappingURL=main.9489d4e1.css.map*/