/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.grid{display:grid}.hidden{display:none}.table{display:table}.resize{resize:both}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--paper:#f3efe7;--surface:#fbf9f4;--forest:#234a3d;--ink:#1f2a27;--muted:#6f746e;--sepia:#8b6949;--border:#ded7ca;--gold:#b09a75}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 10% 8%,#ffffffb8,transparent 24rem),linear-gradient(#5d462d05 1px,transparent 1px),var(--paper);color:var(--ink);background-size:auto,6px 6px,auto;margin:0;font-family:Arial,Helvetica,sans-serif}body>main{z-index:1;position:relative}.family-background{z-index:0;pointer-events:none;background:#d8c9b3;position:fixed;inset:0;overflow:hidden}.family-background img{object-fit:cover;filter:saturate(1.02)contrast(1.02);opacity:.7;width:100%;height:100%}.family-background:after{content:"";background:linear-gradient(120deg,#efe9de94,#f2ebde61 48%,#e2d6c285);position:absolute;inset:0}.family-background~.topbar,.family-background~.shell{position:relative}.family-background~.shell .card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fbf9f4d1}button,input,textarea{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:3px;outline:2px solid #376f5c}.topbar{z-index:10;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f3efe7ed;border-bottom:1px solid #b5a89494;grid-template-columns:minmax(210px,.7fr) minmax(320px,1.5fr) minmax(280px,.8fr);align-items:center;gap:28px;min-height:80px;padding:14px clamp(22px,4vw,64px);display:grid;position:sticky;top:0}.brand,h1,h2,.person strong,.memory strong,.conversation label{font-family:Georgia,Times New Roman,serif}.brand{color:var(--forest);letter-spacing:-.045em;font-size:clamp(1.8rem,2.6vw,2.45rem);font-weight:600;text-decoration:none}.search{position:relative}.search>b{color:var(--muted);font-size:1.5rem;font-weight:400;position:absolute;top:9px;left:17px}.search input{border:1px solid var(--border);background:#fffdf9e6;border-radius:14px;width:100%;min-height:48px;padding:0 112px 0 49px}.family-search>button{background:var(--forest);color:#fff;cursor:pointer;border:0;border-radius:10px;min-height:38px;padding:0 13px;font-size:.68rem;font-weight:700;position:absolute;top:5px;right:5px}.family-search>button:disabled{cursor:not-allowed;opacity:.5}.search-results{z-index:25;border:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fbf9f4fa;border-radius:16px;max-height:min(520px,70vh);padding:12px;position:absolute;top:58px;left:0;right:0;overflow:auto;box-shadow:0 20px 60px #1c231f38}.search-results-heading{color:var(--forest);justify-content:space-between;align-items:center;padding:3px 4px 10px;display:flex}.search-results-heading>button{color:#65706a;cursor:pointer;background:0 0;border:0;width:30px;height:30px;font-size:1.2rem}.search-person{border-top:1px solid #e5ded2;grid-template-columns:58px 1fr;align-items:center;gap:12px;padding:11px 8px;display:grid}.search-person>span{color:#fff;background:linear-gradient(145deg,#927a5e,#5d5749);border:3px solid #e8decf;border-radius:11px;place-items:center;width:54px;height:54px;font-family:Georgia,serif;display:grid;overflow:hidden}.search-person>span img{object-fit:cover;width:100%;height:100%}.search-person>div{min-width:0}.search-person strong{color:var(--forest);text-overflow:ellipsis;white-space:nowrap;font-family:Georgia,serif;display:block;overflow:hidden}.search-person small{color:var(--muted);font-size:.62rem}.search-person p{color:#5e675f;overflow-wrap:anywhere;margin:6px 0 0;font-size:.7rem}.search-person p b{color:var(--ink)}.search-empty{color:var(--muted);text-align:center;margin:0;padding:24px 10px;font-size:.75rem}.account{justify-content:flex-end;align-items:center;gap:10px;font-size:.8rem;display:flex}.account>span{color:#58635c;margin-right:10px;font-size:.72rem;font-weight:700}.account>b{color:#fff;background:linear-gradient(145deg,#8b765d,#c1aa8a);border-radius:50%;place-items:center;width:38px;height:38px;font-family:Georgia,serif;display:grid}.account em{font-style:normal}.account>a{border:1px solid var(--border);color:#59635e;border-radius:8px;margin-left:5px;padding:7px 9px;font-size:.68rem;font-weight:700;text-decoration:none}.shell{max-width:1540px;margin:0 auto;padding:42px clamp(22px,4vw,64px) 60px}.welcome{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:26px;display:flex}.kicker{color:#123c30;letter-spacing:.14em;text-shadow:0 1px 2px #ffffffd1;text-transform:uppercase;margin:0 0 7px;font-size:.68rem;font-weight:800}h1,h2{color:var(--forest);letter-spacing:-.035em;margin:0;font-weight:600}h1{font-size:clamp(2.5rem,4.2vw,4rem);line-height:1}.welcome>div:first-child>p:last-child{color:#123c30;letter-spacing:.14em;text-shadow:0 1px 3px #fffffffa,0 0 12px #ffffffe0;text-transform:uppercase;margin:12px 0 0;font-size:.72rem;font-weight:900}.primary{background:var(--forest);color:#fff;border-radius:13px;justify-content:center;align-items:center;min-height:48px;padding:0 20px;font-size:.84rem;font-weight:700;text-decoration:none;display:inline-flex;box-shadow:0 7px 18px #234a3d26}.welcome-actions{align-items:flex-start;gap:12px;display:flex}.personal-cover-control{flex-wrap:wrap;align-items:center;gap:8px;max-width:330px;display:flex}.personal-cover-control label,.personal-cover-control button{min-height:48px;color:var(--forest);cursor:pointer;background:#fbf9f4db;border:1px solid #9bb5a9;border-radius:10px;padding:0 12px;font-size:.68rem;font-weight:700}.personal-cover-control label{align-items:center;display:inline-flex}.personal-cover-control label.disabled{cursor:wait;opacity:.55}.personal-cover-control input{display:none}.personal-cover-control small{color:#5f6b64;width:100%;font-size:.6rem}.personal-cover-control span{color:#8a3528;width:100%;font-size:.62rem}.grid{grid-template-columns:minmax(0,2fr) minmax(310px,.85fr);gap:24px;display:grid}.card{border:1px solid var(--border);background:#fbf9f4eb;border-radius:20px;box-shadow:0 8px 28px #28241c12}.tree-card{min-height:540px;padding:clamp(22px,2.2vw,32px)}.heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}h2{font-size:clamp(1.65rem,2.3vw,2.3rem)}.heading>button{color:#56635d;cursor:pointer;background:0 0;border:0;min-height:40px;font-size:.76rem;font-weight:700}.tree{flex-direction:column;justify-content:center;min-height:410px;display:flex;position:relative;overflow:hidden}.generation{z-index:2;justify-content:center;display:flex;position:relative}.grandparents{gap:clamp(90px,13vw,190px)}.parents{gap:clamp(22px,4.4vw,68px);margin-top:35px}.current{gap:clamp(80px,11vw,165px);margin-top:36px}.person{min-width:80px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:12px;flex-direction:column;align-items:center;padding:4px;display:flex}.person>span{color:#fffaf1;background:radial-gradient(circle at 35% 28%,#ffffff40,#0000 24%),linear-gradient(145deg,#927a5e,#5d5749);border:4px solid #eee5d6;border-radius:13px;place-items:center;width:75px;height:75px;margin-bottom:7px;font-family:Georgia,serif;transition:transform .18s;display:grid;box-shadow:0 2px 7px #362d2121}.grandparents .person>span{width:88px;height:88px}.current .person>span{background:linear-gradient(145deg,#537466,#314b41)}.person:hover>span{transform:translateY(-2px)}.person strong{font-size:.94rem}.person small{color:var(--muted);margin-top:2px;font-size:.66rem}.line{border-left:1px solid var(--gold);border-right:1px solid var(--gold);height:35px;position:absolute}.line:before{content:"";border-top:1px solid var(--gold);position:absolute;top:50%;left:0;right:0}.line-one{top:135px;left:20%;right:20%}.line-two{bottom:100px;left:35%;right:35%}.conversation{flex-direction:column;justify-content:space-between;min-height:540px;padding:clamp(24px,2.3vw,34px);display:flex}.conversation i{border-top:1px solid var(--gold);width:75px;margin-top:18px;display:block}.conversation form{flex-direction:column;flex:1;justify-content:flex-end;margin-top:24px;display:flex}.conversation label{margin-bottom:24px;font-size:clamp(1.42rem,2.1vw,2rem);line-height:1.24}.conversation textarea{resize:vertical;width:100%;min-height:135px;color:var(--ink);background:#f8f5ee;border:1px solid #d7d0c3;border-radius:14px;padding:16px;line-height:1.5}.actions{justify-content:space-between;align-items:center;margin-top:14px;display:flex}.actions span{gap:9px;display:flex}.actions button{border:1px solid var(--border);min-height:44px;color:var(--forest);cursor:pointer;background:0 0;border-radius:12px}.actions span button{width:44px}.actions .save{background:var(--forest);border-color:var(--forest);color:#fff;padding:0 16px;font-size:.8rem;font-weight:700}.conversation form>small{color:var(--muted);margin-top:12px;font-size:.65rem;line-height:1.5}.conversation textarea:disabled{cursor:wait;opacity:.72}.actions button:disabled{cursor:not-allowed;opacity:.48}.actions .save:disabled{background:#aab5ae;border-color:#aab5ae}.conversation-history{flex-direction:column;gap:8px;max-height:150px;margin:0 0 18px;padding-right:4px;display:flex;overflow:auto}.conversation-history p{border-radius:12px;max-width:88%;margin:0;padding:9px 11px;font-size:.75rem;line-height:1.45}.conversation-history .user{color:var(--forest);background:#e4ece7;align-self:flex-end}.conversation-history .assistant{color:#544d44;background:#eee8dc;align-self:flex-start}.conversation-error{color:#7d3528;background:#f7e9e5;border:1px solid #dfbdb2;border-radius:10px;margin:10px 0 0;padding:9px 11px;font-size:.72rem;line-height:1.4}.recent{margin-top:28px}.memories{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:13px;display:grid}.memory{border:1px solid var(--border);min-height:116px;color:var(--ink);text-align:left;cursor:pointer;background:#fbf9f4eb;border-radius:16px;grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr) auto;align-items:center;gap:15px;padding:7px 15px 7px 7px;transition:transform .18s,box-shadow .18s;display:grid}.memory:hover{transform:translateY(-2px);box-shadow:0 8px 28px #28241c14}.photo{filter:sepia(.55);border-radius:11px;min-width:100px;height:100px}.lunch{background:radial-gradient(circle at 38% 44%,#d2b891 0 9%,#0000 10%),linear-gradient(145deg,#9b7b57,#d4bea0)}.house{background:linear-gradient(155deg,#0000 42%,#604e3e 43% 48%,#0000 49%),linear-gradient(35deg,#80684f 45%,#d9c8ad 46%)}.beach{background:linear-gradient(#c9b690 0 48%,#a79272 49% 55%,#d8c5a3 56%)}.memory>span:nth-child(2){flex-direction:column;gap:10px;display:flex}.memory strong{font-size:clamp(.9rem,1.3vw,1.12rem);line-height:1.25}.memory small{color:var(--muted);font-size:.65rem}.recent .heading>span{color:#716759;background:#eee8dc;border-radius:999px;padding:7px 10px;font-size:.65rem;font-weight:700}.family-memories{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:14px;display:grid}.family-memory{grid-template-columns:minmax(180px,.9fr) minmax(0,1.1fr);min-height:230px;display:grid;overflow:hidden}.family-memory>img{object-fit:cover;width:100%;height:100%;min-height:230px}.family-memory>div{flex-direction:column;align-items:flex-start;padding:22px;display:flex}.family-memory strong,.memory-upload>strong{color:var(--forest);font-family:Georgia,serif;font-size:1.15rem}.family-memory p{color:#5f655f;margin:11px 0;font-size:.76rem;line-height:1.5}.family-memory small,.memory-upload>small{color:var(--muted);margin-top:auto;font-size:.65rem}.family-memory button{color:#8a3528;cursor:pointer;background:0 0;border:0;margin-top:13px;padding:0;font-size:.65rem;font-weight:700}.family-memory .background-action{color:var(--forest);background:#edf3ef;border:1px solid #9bb5a9;border-radius:8px;padding:7px 9px}.memory-upload{flex-direction:column;gap:11px;padding:22px;display:flex}.memory-upload>small{margin:0}.memory-upload label{color:#59635e;flex-direction:column;gap:6px;font-size:.7rem;font-weight:700;display:flex}.memory-upload input,.memory-upload textarea{border:1px solid var(--border);width:100%;color:var(--ink);background:#fffdf8;border-radius:10px;padding:10px 12px}.memory-upload textarea{resize:vertical;min-height:76px}.memory-upload>button{background:var(--forest);color:#fff;cursor:pointer;border:0;border-radius:10px;min-height:43px;font-size:.74rem;font-weight:700}.memory-upload>button:disabled{cursor:not-allowed;opacity:.48}.family-photo-section{margin-top:30px}.photo-upload-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f2ebde9e;border:1px dashed #cbbb9f;border-radius:18px;margin-top:14px;padding:24px}.photo-upload-fields{grid-template-columns:1fr 1fr;gap:12px;display:grid}.photo-upload-fields .photo-story-field{grid-column:1/-1}.photo-upload-panel>button{align-self:flex-end;width:min(320px,100%)}.album-heading{margin-top:40px}.album-heading h2{font-size:clamp(1.65rem,2.3vw,2.3rem)}.vintage-book-area{margin-top:15px}.vintage-book{filter:drop-shadow(0 22px 25px #392a1933);perspective:1400px;grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);width:min(1120px,100% - 70px);min-height:620px;margin:0 auto;animation:.65s both book-page-turn;display:grid;position:relative}.book-page{background:linear-gradient(100deg,#e8d5ad,#f8eccd 15%,#f3e2bd 88%,#d5bd8c);border:1px solid #7454304d;padding:40px;position:relative;overflow:hidden}.book-page:after{content:"";pointer-events:none;opacity:.18;background:repeating-linear-gradient(0deg,#583d2214 0 1px,#0000 1px 5px),radial-gradient(circle at 16% 20%,#8f6637 0 1px,#0000 2px);position:absolute;inset:0}.book-photo-page{border-radius:18px 3px 3px 18px;place-items:center;display:grid;box-shadow:inset -18px 0 28px #50341924}.book-photo-button{z-index:1;cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;position:relative}.book-photo-button img{object-fit:cover;filter:sepia(.18)saturate(.9);background:#f7efdc;border:1px solid #c7ad7f;width:100%;height:520px;padding:11px;display:block;transform:rotate(-.6deg);box-shadow:0 8px 18px #3d2b1938}.book-photo-button>span{z-index:3;color:#fff;opacity:0;background:#1c2520d1;border-radius:999px;padding:8px 12px;font-size:.68rem;font-weight:700;transition:opacity .18s,transform .18s;position:absolute;bottom:24px;left:50%;transform:translate(-50%,8px)}.book-photo-button:hover>span,.book-photo-button:focus-visible>span{opacity:1;transform:translate(-50%)}.photo-corners:before,.photo-corners:after{content:"";z-index:2;border-color:#8d7049;width:42px;height:42px;position:absolute}.photo-corners:before{border-top:5px solid;border-left:5px solid;top:48px;left:50px}.photo-corners:after{border-bottom:5px solid;border-right:5px solid;bottom:48px;right:50px}.book-spine{background:linear-gradient(90deg,#8f6f43,#c5a36f 45%,#70512f);box-shadow:inset 5px 0 8px #fff3,inset -5px 0 9px #2a1b0e40}.book-story-page{border-radius:3px 18px 18px 3px;flex-direction:column;align-items:flex-start;display:flex;box-shadow:inset 18px 0 28px #50341924}.book-story-page h3{z-index:1;color:#4d3520;margin:18px 0 13px;font-family:Georgia,serif;font-size:clamp(1.7rem,3vw,2.7rem);line-height:1.08;position:relative}.book-story-page>p:not(.kicker){z-index:1;color:#604a35;margin:0;font-family:Georgia,serif;font-size:.95rem;line-height:1.75;position:relative}.book-story-page>small:not(.book-page-number){z-index:1;color:#7b6449;margin-top:auto;position:relative}.book-story-page>button{z-index:1;color:#8a3528;cursor:pointer;background:0 0;border:0;margin-top:13px;padding:0;font-size:.66rem;font-weight:700;position:relative}.book-page-number{z-index:1;color:#8b7354;font-size:.62rem;position:absolute;top:22px;right:25px}.book-arrow{z-index:5;color:#5e4227;cursor:pointer;background:#f5e5c3;border:1px solid #aa8c62;border-radius:50%;width:46px;height:46px;font-family:Georgia,serif;font-size:2rem;line-height:1;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 6px 16px #3726162e}.book-arrow.previous{left:-58px}.book-arrow.next{right:-58px}.empty-album{color:#746149;text-align:center;background:#f5ebd5b8;border:1px dashed #bca57e;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:230px;padding:30px;display:flex}.empty-album strong{color:var(--forest);font-family:Georgia,serif;font-size:1.25rem}.empty-album span{font-size:.76rem}.photo-viewer-open{overflow:hidden}.photo-viewer{z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:zoom-out;background:#0f1210eb;place-items:center;padding:clamp(18px,4vw,54px);display:grid;position:fixed;inset:0}.photo-viewer figure{cursor:default;flex-direction:column;align-items:center;gap:12px;max-width:100%;max-height:100%;margin:0;display:flex}.photo-viewer figure img{object-fit:contain;filter:none;width:auto;max-width:100%;height:auto;max-height:calc(100vh - 120px);display:block;box-shadow:0 18px 70px #0000008c}.photo-viewer figcaption{color:#fff;text-align:center;font-family:Georgia,serif;font-size:clamp(.9rem,2vw,1.15rem)}.photo-viewer-close{z-index:101;color:#fff;cursor:pointer;background:#1419169e;border:1px solid #ffffff8c;border-radius:50%;width:46px;height:46px;font-size:2rem;line-height:1;position:fixed;top:16px;right:20px}@keyframes book-page-turn{0%{opacity:.35;transform:rotateY(-7deg)translate(18px)}to{opacity:1;transform:rotateY(0)translate(0)}}.friendly-file{position:relative}.friendly-file input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.friendly-file-control{border:1px solid var(--border);background:#fffdf8;border-radius:11px;align-items:center;min-height:46px;display:flex;overflow:hidden}.friendly-file:focus-within .friendly-file-control{outline-offset:3px;outline:2px solid #376f5c}.friendly-file-button{background:var(--forest);color:#fff;cursor:pointer;align-self:stretch;align-items:center;padding:0 14px;font-size:.7rem;font-weight:700;display:flex}.friendly-file-name{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;padding:0 12px;font-size:.7rem;overflow:hidden}@media (width<=1050px){.topbar{grid-template-columns:auto 1fr auto}.account>span{display:none}.grid{grid-template-columns:1fr}.memories{grid-template-columns:1fr 1fr}.memory:last-child{grid-column:1/-1}}@media (width<=720px){.topbar{grid-template-columns:1fr auto;gap:13px;padding:13px 18px}.search{grid-area:2/1/auto/-1}.account em{display:none}.shell{padding:32px 18px 48px}.welcome,.welcome-actions{flex-direction:column;align-items:stretch}.primary{width:100%}.tree-card{overflow-x:auto}.tree{min-width:680px}.memories{grid-template-columns:1fr}.memory:last-child{grid-column:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.tree-heading{align-items:center}.tree-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:9px;display:flex}.tree-tabs{background:#eee8dc;border-radius:12px;gap:6px;padding:4px;display:flex}.tree-tabs button{color:#68716c;cursor:pointer;background:0 0;border:0;border-radius:9px;min-height:36px;padding:0 12px;font-size:.72rem;font-weight:700}.tree-tabs button.active{color:var(--forest);background:#fffdf8;box-shadow:0 2px 8px #322a1e14}.add-relative{background:var(--forest);color:#fff;cursor:pointer;border:0;border-radius:10px;min-height:44px;padding:0 13px;font-size:.7rem;font-weight:700}.add-relative:disabled{cursor:not-allowed;opacity:.45}.tree-quota{color:#68716c;background:#fffdf8ab;border:1px solid #b09a7573;border-radius:11px;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:10px 12px;font-size:.68rem;display:flex}.tree-quota strong{color:var(--forest)}.tree-quota em{color:#8a6947;font-style:normal;font-weight:700}.tree-quota button{color:#765331;cursor:pointer;background:#fff8ea;border:1px solid #b28a61;border-radius:8px;min-height:34px;padding:0 10px;font-size:.65rem;font-weight:700}.tree-quota button:disabled{cursor:wait;opacity:.55}.tree-organize-button{color:#416759;cursor:pointer;white-space:nowrap;background:#fffdf875;border:1px solid #2f745f61;border-radius:9px;min-height:34px;padding:0 10px;font-size:.61rem;font-weight:800}.tree-organize-button:hover{background:#fffdf8;border-color:#2f745f}.family-chat{margin-top:38px}.family-chat-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:14px;display:flex}.family-chat-heading h2{color:var(--forest);margin:2px 0 0;font-family:Georgia,serif;font-size:2rem}.family-chat-heading>span{color:#66716b;font-size:.62rem}.family-chat-card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffdf8db;border:1px solid #aa926c7a;border-radius:20px;overflow:hidden;box-shadow:0 14px 38px #3a30221a}.family-chat-list{scroll-behavior:smooth;flex-direction:column;gap:10px;height:310px;padding:20px;display:flex;overflow-y:auto}.family-chat-empty{color:#7b756c;margin:auto;font-size:.75rem}.family-chat-message{color:#333d38;background:#eee8dc;border-radius:4px 14px 14px;align-self:flex-start;max-width:min(72%,620px);padding:10px 13px}.family-chat-message.mine{background:#dfece7;border-radius:14px 4px 14px 14px;align-self:flex-end}.family-chat-message>div{justify-content:space-between;align-items:center;gap:14px;margin-bottom:5px;display:flex}.family-chat-message strong{color:var(--forest);font-size:.67rem}.family-chat-message time{color:#7f827d;font-size:.52rem}.family-chat-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:.73rem;line-height:1.45}.family-chat-message>button{color:#9b584c;cursor:pointer;background:0 0;border:0;margin:5px 0 0 auto;padding:0;font-size:.52rem;display:block}.family-chat-form{background:#f7f2e9e0;border-top:1px solid #aa926c59;padding:14px 18px 16px}.family-chat-form>label{color:#506158;margin-bottom:7px;font-size:.62rem;font-weight:800;display:block}.family-chat-form>div{grid-template-columns:1fr auto;gap:8px;display:grid}.family-chat-form input{border:1px solid var(--border);min-width:0;min-height:44px;color:var(--ink);font:inherit;background:#fffdf8;border-radius:11px;padding:0 14px;font-size:.75rem}.family-chat-form button{background:var(--forest);color:#fff;cursor:pointer;border:0;border-radius:11px;min-width:100px;font-size:.68rem;font-weight:800}.family-chat-form button:disabled{cursor:not-allowed;opacity:.42}.family-chat-form .conversation-error{margin:9px 0 0}@media (width<=720px){.family-chat-heading{flex-direction:column;align-items:flex-start;gap:5px}.family-chat-list{height:360px;padding:14px}.family-chat-message{max-width:88%}.family-chat-form{padding:12px}.family-chat-form>div{grid-template-columns:1fr}.family-chat-form button{min-height:42px}}.dynamic-tree{flex-direction:column;justify-content:center;gap:24px;min-height:400px;padding:26px 0 8px;display:flex;overflow:auto}.tree-generation{text-align:center;position:relative}.tree-generation:not(:last-child):after{content:"";border-left:1px solid var(--gold);height:24px;position:absolute;bottom:-24px;left:50%}.generation-name{color:var(--sepia);letter-spacing:.12em;text-transform:uppercase;margin-bottom:9px;font-size:.62rem;font-weight:700;display:block}.tree-people{justify-content:center;align-items:flex-start;gap:clamp(12px,2.4vw,34px);min-width:max-content;padding:0 10px;display:flex}.dynamic-tree .person{min-width:110px;max-width:145px}.dynamic-tree .person>span{width:66px;height:66px;overflow:hidden}.dynamic-tree .person>span img{object-fit:cover;width:100%;height:100%}.dynamic-tree .person.me>span{background:linear-gradient(145deg,#537466,#234a3d);box-shadow:0 0 0 3px #dce8e1}.dynamic-tree .person strong{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.dynamic-tree .person em{color:#507364;opacity:0;margin-top:5px;font-size:.58rem;font-style:normal;font-weight:700;transition:opacity .18s}.dynamic-tree .person:hover em,.dynamic-tree .person:focus-visible em{opacity:1}.tree-empty{min-height:390px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.tree-empty strong{color:var(--forest);font-family:Georgia,serif;font-size:1.25rem}.tree-empty span{max-width:420px;font-size:.8rem;line-height:1.5}.match-note{color:#796146;background:#f3ecdf;border-radius:10px;margin:12px 0 0;padding:9px 12px;font-size:.7rem}.personal-tree-starter{flex-direction:column;justify-content:center;align-items:center;min-height:400px;padding:30px 0 8px;display:flex}.starter-generation{text-align:center}.starter-parents{justify-content:center;gap:clamp(75px,12vw,180px);display:flex;position:relative}.starter-parents:after{content:"";border-top:1px solid var(--gold);position:absolute;bottom:-22px;left:22%;right:22%}.starter-parents:before{content:"";border-left:1px solid var(--gold);height:20px;position:absolute;bottom:-42px;left:50%}.starter-connector{height:42px}.tree-placeholder{cursor:default;min-width:120px}.tree-placeholder>span{width:66px;height:66px;color:var(--gold);background:#927a5e38;border-style:dashed;font-family:Arial,sans-serif;font-size:1.6rem}.tree-placeholder:hover>span{transform:none}.tree-placeholder strong,.tree-placeholder small{max-width:150px}.family-groups{grid-template-columns:repeat(auto-fit,minmax(330px,1fr));align-content:center;gap:14px;min-height:400px;padding:28px 0 8px;display:grid}.family-group-card{background:#fffdf8b3;border:1px solid #b09a758c;border-radius:16px;min-width:0;min-height:235px;padding:18px;box-shadow:0 5px 16px #322a1e0f}.family-group-card>div:first-child{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.family-group-card>div:first-child strong{color:var(--forest);font-family:Georgia,serif;font-size:1rem}.family-group-card>div:first-child span{color:var(--sepia);flex:none;font-size:.6rem}.family-carousel{grid-template-columns:36px minmax(0,1fr) 36px;align-items:center;gap:8px;margin-top:18px;display:grid!important}.family-carousel>button{width:36px;height:58px;color:var(--forest);cursor:pointer;background:#fffdf8eb;border:1px solid #b09a758c;border-radius:10px;font-family:Georgia,serif;font-size:1.8rem;line-height:1}.family-carousel>button:hover{background:#edf3ef}.family-carousel-stage{cursor:grab;touch-action:pan-y;grid-template-columns:repeat(3,minmax(62px,1fr));align-items:center;gap:8px;min-width:0;padding:5px;display:grid}.family-carousel-stage.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.family-carousel-person{min-width:0;color:var(--ink);cursor:pointer;text-align:center;background:0 0;border:2px solid #0000;border-radius:13px;padding:4px;transition:transform .2s,border-color .2s,background .2s}.family-carousel-person>span{color:#fff;background:linear-gradient(145deg,#927a5e,#5d5749);border:2px solid #e8dece;border-radius:10px;place-items:center;width:56px;height:56px;margin:0 auto 6px;font-family:Georgia,serif;font-size:.75rem;transition:width .2s,height .2s;display:grid;overflow:hidden}.family-carousel-person img{object-fit:cover;pointer-events:none;width:100%;height:100%}.family-carousel-person small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.56rem;display:block;overflow:hidden}.family-carousel-person.active{background:#e2f1fa;border:3px solid #377aa8;padding:7px 5px;transform:translateY(-3px);box-shadow:0 6px 18px #377aa833}.family-carousel-person.active>span{border-color:#fff;width:78px;height:78px}.family-carousel-person.active small{color:#194d70;font-size:.62rem;font-weight:800}.carousel-help{color:#356b8f;text-align:center;margin-top:8px;font-size:.58rem;font-weight:700;display:block}.modal-backdrop{z-index:30;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#18221e80;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.edit-person{background:var(--surface);border:1px solid var(--border);border-radius:20px;width:min(440px,100%);padding:28px;position:relative;box-shadow:0 24px 80px #141e1a40}.edit-person h3{color:var(--forest);margin:0 0 22px;font-family:Georgia,serif;font-size:1.7rem}.edit-person .close{color:#68716c;cursor:pointer;background:0 0;border:0;width:36px;height:36px;font-size:1.5rem;position:absolute;top:14px;right:16px}.edit-person label{color:#59635e;flex-direction:column;gap:7px;margin-bottom:16px;font-size:.72rem;font-weight:700;display:flex}.edit-person label input,.edit-person label select{border:1px solid var(--border);width:100%;min-height:44px;color:var(--ink);background:#fffdf8;border-radius:10px;padding:0 12px}.edit-person>div:not(.conversation-error){grid-template-columns:1fr 1fr;gap:12px;display:grid}.edit-person .primary{cursor:pointer;border:0;width:100%}.edit-person .primary:disabled{cursor:not-allowed;opacity:.5}.add-relative-form{width:min(410px,100%)}.delete-person{color:#8a3528;cursor:pointer;background:#fff8f5;border:1px solid #c98f82;border-radius:12px;width:100%;min-height:44px;margin-top:10px;font-size:.78rem;font-weight:700}.delete-person:disabled{cursor:not-allowed;opacity:.5}.delete-help{color:#85766f;text-align:center;margin-top:9px;font-size:.64rem;line-height:1.4;display:block}.edit-person>.person-photo-editor{background:#f1ece2;border-radius:13px;align-items:center;gap:15px;margin-bottom:18px;padding:13px;display:flex!important}.person-photo-editor>span{color:#fff;background:linear-gradient(145deg,#927a5e,#5d5749);border:3px solid #e5dac8;border-radius:12px;flex:0 0 68px;place-items:center;width:68px;height:68px;font-family:Georgia,serif;display:grid;overflow:hidden}.person-photo-editor>span img{object-fit:cover;width:100%;height:100%}.person-photo-editor>div{flex:1}.photo-upload{background:var(--forest);cursor:pointer;border-radius:9px;padding:8px 11px;color:#fff!important;margin:0 0 6px!important;font-size:.68rem!important;display:inline-flex!important}.photo-upload input{display:none}.remove-photo{color:#8a3528;cursor:pointer;background:0 0;border:0;margin-left:8px;font-size:.66rem;font-weight:700}.person-photo-editor small{color:var(--muted);font-size:.6rem;display:block}.edit-person{max-height:calc(100vh - 40px);overflow-y:auto}.edit-person>.person-admin-message{background:#f3ecdfb3;border:1px solid #b09a7580;border-radius:13px;margin-top:16px;padding:15px;display:block!important}.person-admin-message label{font-family:Georgia,serif;color:var(--forest)!important;margin:0!important;font-size:.9rem!important}.person-admin-message textarea{resize:vertical;border:1px solid var(--border);width:100%;min-height:88px;color:var(--ink);background:#fffdf8;border-radius:10px;padding:11px;font-family:Arial,sans-serif;line-height:1.4}.person-admin-message>div{justify-content:space-between;align-items:center;gap:10px;margin-top:9px;display:flex}.person-admin-message small{color:var(--muted);font-size:.59rem}.person-admin-message button{background:var(--forest);color:#fff;cursor:pointer;border:0;border-radius:9px;min-height:36px;padding:0 11px;font-size:.64rem;font-weight:700}.person-admin-message button:disabled{cursor:not-allowed;opacity:.48}.person-admin-message>p{color:var(--forest);margin:10px 0 0;font-size:.68rem;font-weight:700}.person-messages-section{margin-top:30px}.person-messages-section .heading>span{color:#805f13;background:#fff0c9;border-radius:999px;padding:7px 10px;font-size:.65rem;font-weight:700}.person-message-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.person-message-list>.members-empty,.person-message-list>.conversation-error{grid-column:1/-1}.person-message{padding:18px}.person-message.resolved{opacity:.68}.person-message>div{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.person-message strong{color:var(--forest);font-family:Georgia,serif}.person-message span{color:var(--muted);text-align:right;font-size:.61rem}.person-message p{white-space:pre-wrap;margin:15px 0;font-size:.78rem;line-height:1.5}.person-message button{min-height:36px;color:var(--forest);cursor:pointer;background:#edf3ef;border:1px solid #9bb5a9;border-radius:9px;padding:0 11px;font-size:.65rem;font-weight:700}.person-message button:disabled{cursor:wait;opacity:.5}.person-message>.person-message-actions{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;display:flex}.person-message-actions .open-person{border-color:var(--forest);background:var(--forest);color:#fff}.person-message-actions .delete-message{color:#8a3528;background:#fff8f5;border-color:#c98f82}.family-wall{margin-top:30px}.wall-grid{grid-template-columns:minmax(280px,.8fr) minmax(0,1.6fr);gap:18px;margin-top:14px;display:grid}.notice-composer{padding:22px}.notice-composer>label{color:var(--forest);margin-bottom:12px;font-family:Georgia,serif;font-size:1.15rem;font-weight:700;display:block}.notice-composer textarea{resize:vertical;border:1px solid var(--border);width:100%;min-height:110px;color:var(--ink);background:#f8f5ee;border-radius:12px;padding:13px;line-height:1.45}.notice-composer>div{justify-content:space-between;align-items:center;gap:12px;margin-top:10px;display:flex}.notice-composer small{color:var(--muted);font-size:.66rem}.notice-composer button{background:var(--forest);color:#fff;cursor:pointer;border:0;border-radius:10px;min-height:42px;padding:0 15px;font-size:.74rem;font-weight:700}.notice-composer button:disabled{cursor:not-allowed;opacity:.48}.notice-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-height:360px;padding:1px;display:grid;overflow:auto}.notice{padding:18px}.notice>div{justify-content:space-between;align-items:center;gap:12px;display:flex}.notice strong{color:var(--forest);font-family:Georgia,serif}.notice time{color:var(--muted);font-size:.62rem}.notice p{white-space:pre-wrap;margin:13px 0 0;font-size:.8rem;line-height:1.55}.notice button{color:#8a4a3c;cursor:pointer;background:0 0;border:0;margin-top:14px;padding:0;font-size:.65rem;font-weight:700}.notice-empty{min-height:160px;color:var(--muted);text-align:center;grid-column:1/-1;place-items:center;margin:0;padding:24px;font-size:.8rem;display:grid}.access-future{background:#f2ebde80;border:1px dashed #cbbb9f;border-radius:18px;margin-top:30px;padding:24px}.access-future .heading>span{color:#776750;text-transform:uppercase;background:#e4ddd0;border-radius:999px;padding:7px 10px;font-size:.65rem;font-weight:700}.access-options{grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;display:grid}.access-options article{gap:14px;padding:18px;display:flex}.access-options article>b{width:40px;height:40px;color:var(--forest);background:#e4ece7;border-radius:11px;flex:0 0 40px;place-items:center;display:grid}.access-options strong{font-family:Georgia,serif}.access-options p{color:var(--muted);margin:7px 0 0;font-size:.75rem;line-height:1.45}.access-future>small{color:#756c61;margin-top:12px;font-size:.68rem;display:block}.invite-section{margin-top:30px}.invite-card{grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:12px;margin-top:14px;padding:20px;display:grid}.invite-card label{color:#59635e;margin-bottom:7px;font-size:.72rem;font-weight:700;display:block}.invite-card input{border:1px solid var(--border);width:100%;min-height:46px;color:var(--ink);background:#fffdf8;border-radius:11px;padding:0 13px}.invite-card>button,.invite-result button{background:var(--forest);color:#fff;cursor:pointer;border:0;border-radius:11px;min-height:46px;padding:0 16px;font-size:.75rem;font-weight:700}.invite-card>button:disabled{cursor:not-allowed;opacity:.5}.invite-card>.conversation-error,.invite-result{grid-column:1/-1}.invite-result{background:#e9f0eb;border-radius:13px;margin-top:4px;padding:16px}.invite-result strong{color:var(--forest);margin-bottom:9px;font-family:Georgia,serif;display:block}.invite-result{grid-template-columns:1fr auto;align-items:center;gap:9px;display:grid}.invite-result small{color:var(--muted);grid-column:1/-1;font-size:.65rem}.members-section{margin-top:30px}.members-section .heading>span{color:var(--forest);background:#e4ece7;border-radius:999px;padding:7px 10px;font-size:.65rem;font-weight:700}.members-card{margin-top:14px;padding:8px 18px 18px}.members-table-wrap{overflow-x:auto}.members-table{border-collapse:collapse;width:100%;min-width:1050px}.members-table th{border-bottom:1px solid var(--border);color:var(--muted);letter-spacing:.06em;text-align:left;text-transform:uppercase;padding:14px 10px;font-size:.65rem}.members-table td{border-bottom:1px solid #e8e1d6;padding:14px 10px;font-size:.75rem}.members-table td:first-child{flex-direction:column;gap:4px;display:flex}.members-table td:first-child strong{color:var(--forest);font-family:Georgia,serif;font-size:.9rem}.members-table small{color:var(--muted);font-size:.63rem}.members-table button{color:#775530;cursor:pointer;background:#fffaf2;border:1px solid #c49b78;border-radius:9px;min-height:36px;padding:0 11px;font-size:.66rem;font-weight:700}.members-table button:disabled{cursor:not-allowed;opacity:.5}.member-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.member-actions .approve{border-color:var(--forest);color:var(--forest);background:#edf3ef}.member-actions .reset-code{color:var(--forest);background:#edf3ef;border-color:#719789}.member-actions .permanent-delete{color:#8a3528;background:#fff8f5;border-color:#c98f82}.member-actions>.generated-code{width:100%;color:var(--forest);background:#e4ece7;border-radius:9px;align-items:center;gap:7px;margin-top:4px;padding:9px 10px;font-size:.7rem;display:flex}.generated-code>strong{letter-spacing:.08em;font-family:monospace;font-size:.9rem}.generated-code>button{border-color:var(--forest);background:var(--forest);color:#fff;min-height:30px;margin-left:auto}.member-status{border-radius:999px;padding:5px 8px;font-size:.62rem;font-weight:700;display:inline-flex}.member-status.active{color:var(--forest);background:#e4ece7}.member-status.pending{color:#805f13;background:#fff0c9}.member-status.blocked{color:#786b5d;background:#eee8dc}.people-limit{color:var(--forest);display:block}.limit-request{margin-top:5px;font-weight:700;color:#8a5f19!important;display:block!important}.members-empty{color:var(--muted);text-align:center;margin:0;padding:26px;font-size:.78rem}.auth-page{background:radial-gradient(circle at 50% 8%,#fffdf7,transparent 30rem),var(--paper);place-items:center;min-height:100vh;padding:28px;display:grid}.auth-card{border:1px solid var(--border);background:#fbf9f4f5;border-radius:24px;width:min(520px,100%);padding:clamp(28px,5vw,52px);box-shadow:0 24px 80px #28241c1f}.auth-card .brand{margin-bottom:34px;display:inline-block}.auth-card h1{margin-bottom:14px;font-size:clamp(2rem,5vw,3.2rem);line-height:1.02}.auth-card>p:not(.kicker):not(.conversation-error){color:var(--muted);line-height:1.55}.auth-explanation{grid-template-columns:32px 1fr;align-items:center;gap:12px;margin:24px 0;display:grid}.auth-explanation b{width:30px;height:30px;color:var(--forest);background:#e4ece7;border-radius:50%;place-items:center;display:grid}.auth-explanation span{font-size:.8rem}.auth-card>small{color:var(--muted);margin-top:18px;font-size:.7rem;line-height:1.5;display:block}.auth-card label{color:#59635e;flex-direction:column;gap:8px;margin-top:24px;font-size:.75rem;font-weight:700;display:flex}.auth-card label input{border:1px solid var(--border);background:#fffdf8;border-radius:11px;min-height:48px;padding:0 13px}.auth-card .primary{cursor:pointer;border:0;width:100%;margin-top:14px}.auth-card .primary:disabled{cursor:not-allowed;opacity:.5}.invite-auth-page{isolation:isolate;background:#211d13;position:relative;overflow:hidden}.invite-auth-page:before{content:"";z-index:-3;filter:saturate(1.08)contrast(1.08);opacity:.64;background:url(/default-family-cover.png) 50%/cover no-repeat;position:fixed;inset:0;transform:scale(1.02)}.invite-auth-page:after{content:"";z-index:-2;background:linear-gradient(90deg,#181c17b3,#221d1278 50%,#181c17b3),radial-gradient(circle at 50% 45%,#debe751f,#0c110e6b 72%);position:fixed;inset:0}.family-name-matrix{z-index:-1;pointer-events:none;grid-template-rows:repeat(8,1fr);align-items:center;display:grid;position:fixed;inset:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000);mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000)}.family-name-lane{opacity:.45;width:100%;overflow:hidden}.family-name-lane:nth-child(2n){opacity:.28}.family-name-lane:nth-child(3n){opacity:.55}.family-name-track{will-change:transform;width:max-content;animation:34s linear infinite family-names-left;display:flex}.family-name-lane:nth-child(2n) .family-name-track{animation-name:family-names-right;animation-duration:42s}.family-name-group{justify-content:space-around;align-items:center;gap:clamp(60px,8vw,150px);width:100vw;min-width:max-content;padding:0 clamp(30px,5vw,90px);display:flex}.family-name-group span{color:#9ce1c7;letter-spacing:.08em;text-shadow:0 0 7px #53ffb8c7,0 0 20px #30b48273;white-space:nowrap;font-family:Georgia,Times New Roman,serif;font-size:clamp(.78rem,1.25vw,1.2rem);font-weight:700}.family-name-lane:nth-child(3n+2) span{color:#e2c98d;text-shadow:0 0 7px #f4cd748c}.invite-auth-page>.auth-card{z-index:2;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#251f0fed;border-color:#89bfa657;position:relative;box-shadow:0 28px 90px #0000007a}.invite-auth-page .brand,.invite-auth-page h1{color:#a9ddca}.invite-auth-page .kicker{color:#e4bc78;text-shadow:none}.invite-auth-page .auth-card label,.invite-auth-page .auth-card>small{color:#d5c8ae}.invite-auth-page .auth-card label input{color:#fff;background:#413008b3;border-color:#96b2a357}.invite-auth-page .login-tabs{background:#584b336b}.invite-auth-page .login-tabs button{color:#d6c9b1}.invite-auth-page .login-tabs button.active{color:#a9ddca;box-shadow:none;background:#402d00db}.invite-auth-page .primary{background:#245b49}.invite-auth-page .primary:disabled{background:#385644}.invite-auth-page .conversation-error{color:#ffd3c9;background:#5b1f17cc;border-color:#a75c4e}@keyframes family-names-left{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes family-names-right{0%{transform:translate(-50%)}to{transform:translate(0)}}.login-card{width:min(500px,100%)}.login-tabs{background:#e9e2d6;border-radius:12px;grid-template-columns:1fr 1fr;gap:6px;margin:22px 0 2px;padding:5px;display:grid}.login-tabs button{color:#675f55;cursor:pointer;background:0 0;border:0;border-radius:9px;min-height:42px;font-size:.76rem;font-weight:700}.login-tabs button.active{color:var(--forest);background:#fffdf8;box-shadow:0 2px 9px #28241c17}.request-code{border:1px solid var(--forest);width:100%;min-height:44px;color:var(--forest);cursor:pointer;background:0 0;border-radius:11px;margin-top:10px;font-size:.76rem;font-weight:700}.request-code:hover{background:#edf2ef}.request-code:disabled{cursor:not-allowed;opacity:.45}.code-notice{color:#675f55;background:#eee8dc;border-radius:10px;margin:10px 0 0;padding:10px 12px;font-size:.69rem;line-height:1.45}.first-access{border-top:1px solid var(--border);flex-direction:column;gap:5px;margin-top:22px;padding-top:17px;display:flex}.first-access strong{color:var(--forest);font-family:Georgia,serif}.first-access span{color:var(--muted);font-size:.7rem;line-height:1.4}.login-auth-page .request-code{color:#a9ddca;border-color:#a9ddca9e}.login-auth-page .request-code:hover{background:#a9ddca1a}.login-auth-page .code-notice{color:#e5d8c1;background:#584b338f}.login-auth-page .first-access{border-top-color:#a9ddca38}.login-auth-page .first-access strong{color:#a9ddca}.login-auth-page .first-access span{color:#d5c8ae}@media (width<=720px){.tree-heading{flex-direction:column;align-items:flex-start}.tree-controls{justify-content:stretch;width:100%}.tree-tabs{width:100%}.tree-tabs button{flex:1}.add-relative{width:100%}.tree-quota{flex-direction:column;align-items:flex-start}.tree-quota button{width:100%}.dynamic-tree{min-width:0}.tree-people{justify-content:flex-start}.edit-person>div:not(.conversation-error){grid-template-columns:1fr}}@media (width<=900px){.wall-grid,.family-memories,.person-message-list{grid-template-columns:1fr}.notice-list{max-height:none}.access-options{grid-template-columns:1fr}}@media (width<=720px){.photo-upload-fields{grid-template-columns:1fr}.photo-upload-fields .photo-story-field{grid-column:auto}.photo-upload-panel>button{width:100%}.vintage-book{grid-template-columns:1fr;width:calc(100% - 44px);min-height:0}.book-spine{height:13px}.book-photo-page{border-radius:16px 16px 3px 3px}.book-story-page{border-radius:3px 3px 16px 16px;min-height:320px}.book-photo-button img{height:260px}.book-photo-button>span{opacity:1;transform:translate(-50%)}.book-arrow{width:38px;height:38px;font-size:1.6rem}.book-arrow.previous{left:-44px}.book-arrow.next{right:-44px}.photo-viewer{padding:14px}.photo-viewer figure img{max-height:calc(100vh - 90px)}.photo-viewer-close{top:10px;right:12px}}@media (width<=620px){.notice-list,.family-memory{grid-template-columns:1fr}.family-memory>img{height:220px;min-height:0}.account em{display:none}.invite-card,.invite-result{grid-template-columns:1fr}.invite-result small{grid-column:auto}.person-admin-message>div{flex-direction:column;align-items:stretch}.person-admin-message button{width:100%}}.family-name-track{animation-duration:68s}.family-name-lane:nth-child(2n) .family-name-track{animation-duration:84s}.family-name-lane:nth-child(3n) .family-name-track{animation-duration:58s}.dynamic-tree{isolation:isolate;gap:34px;padding-bottom:32px;position:relative}.tree-generation{z-index:2}.tree-generation:not(:last-child):after{display:none}.tree-connector-layer{z-index:0;pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.tree-connector-layer path{fill:none;stroke:#b8a889;stroke-width:1.15px;stroke-linecap:round;stroke-linejoin:round;opacity:.48;transition:stroke .2s,stroke-width .2s,opacity .2s}.tree-connector-layer path.spouse{opacity:.4}.tree-connector-layer path.sibling{stroke:#9a8767;stroke-width:1.35px;opacity:.58}.tree-connector-layer path.proposed{stroke-dasharray:4 5;opacity:.32}.tree-connector-layer path.active{stroke:#2f745f;stroke-width:2.2px;opacity:.95;filter:drop-shadow(0 1px 2px #2f745f2e)}.tree-person-node{z-index:2;flex-direction:column;align-items:center;min-width:110px;max-width:145px;display:flex;position:relative}.dynamic-tree .tree-person-node .person{width:100%;min-width:110px;transition:transform .18s,opacity .18s}.tree-person-node.selected .person>span{border-color:#2f745f;box-shadow:0 0 0 4px #2f745f29,0 5px 14px #234a3d2e}.tree-person-node.related .person>span{border-color:#8eb7a7;box-shadow:0 0 0 3px #5389741a}.tree-person-node.selected .person strong,.tree-person-node.related .person strong{color:#174b3a}.tree-person-edit{color:#507364;cursor:pointer;opacity:0;background:0 0;border:0;border-radius:7px;min-height:25px;margin-top:2px;padding:0 8px;font-size:.58rem;font-weight:700;transition:opacity .18s,background .18s}.tree-person-node:hover .tree-person-edit,.tree-person-edit:focus-visible{opacity:1}.tree-person-edit:hover{background:#e4ece7}.tree-link-help{z-index:2;color:#65726b;text-align:center;margin:2px 0 0;font-size:.58rem;position:relative}@media (width<=720px){.tree-person-edit{opacity:1}.tree-link-help{text-align:left;padding-left:10px}}.complete-family-view{flex-direction:column;gap:18px;padding-top:22px;display:flex}.family-list-heading{justify-content:space-between;align-items:flex-end;gap:14px;display:flex}.family-list-heading strong{color:var(--forest);font-family:Georgia,serif;font-size:1.25rem;display:block}.family-list-heading span{color:var(--muted);margin-top:4px;font-size:.7rem;display:block}.complete-family-view .family-groups{align-content:start;min-height:0;padding:0}.family-group-card{cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s}.family-group-card:hover{border-color:#8eb7a7;transform:translateY(-1px)}.family-group-card.selected-family{border:2px solid #377aa8;box-shadow:0 8px 24px #377aa826}.selected-family-tree{background:#fffdf8b8;border:1px solid #b09a7580;border-radius:18px;padding:24px 18px 10px}.selected-family-heading{border-bottom:1px solid #b09a754d;justify-content:space-between;align-items:flex-start;gap:18px;padding:0 4px 16px;display:flex}.selected-family-heading h3{color:var(--forest);margin:3px 0 4px;font-family:Georgia,serif;font-size:1.35rem}.selected-family-heading span{color:var(--muted);font-size:.68rem}.link-family-button{color:#fff;cursor:pointer;white-space:nowrap;background:#245b49;border:1px solid #2f745f;border-radius:10px;min-height:42px;padding:0 13px;font-size:.68rem;font-weight:800}.link-family-button:hover{background:#174b3a}.link-families-modal{border:1px solid var(--border);background:var(--surface);border-radius:20px;width:min(520px,100%);max-height:calc(100vh - 40px);padding:28px;position:relative;overflow-y:auto;box-shadow:0 24px 80px #141e1a40}.link-families-modal h3{color:var(--forest);margin:0 0 8px;font-family:Georgia,serif;font-size:1.7rem}.link-families-modal>p:not(.kicker):not(.conversation-error){color:var(--muted);margin:0 0 20px;font-size:.76rem;line-height:1.5}.link-families-modal .close{color:#68716c;cursor:pointer;background:0 0;border:0;width:36px;height:36px;font-size:1.5rem;position:absolute;top:14px;right:16px}.link-families-modal label{color:#59635e;flex-direction:column;gap:7px;margin-bottom:15px;font-size:.72rem;font-weight:700;display:flex}.link-families-modal select{border:1px solid var(--border);width:100%;min-height:46px;color:var(--ink);background:#fffdf8;border-radius:10px;padding:0 12px}.link-families-modal .primary{cursor:pointer;border:0;width:100%}.link-families-modal>small{color:var(--muted);text-align:center;margin-top:11px;font-size:.61rem;line-height:1.45;display:block}@media (width<=720px){.selected-family-heading{flex-direction:column}.link-family-button{width:100%}.selected-family-tree{padding:20px 10px 8px}.complete-family-view .family-groups{grid-template-columns:1fr}}.notice-actions{flex-wrap:wrap;align-items:center;gap:7px;margin-top:14px;justify-content:flex-start!important;display:flex!important}.notice-actions button{min-height:34px;color:var(--forest);background:#f8f5ee;border:1px solid #cfc5b3;border-radius:999px;margin-top:0;padding:0 10px}.notice-actions button:disabled{cursor:not-allowed;opacity:.5}.notice-actions button.active.like{color:#24617a;background:#e5f2f6;border-color:#5c8b9d}.notice-actions button.active.heart{color:#a82e3f;background:#fff0f1;border-color:#db8f97}.notice-actions button.delete{color:#983f31;border-color:#dfaaa1;margin-left:auto}.notice-replies{border-left:3px solid #d7cbb8;gap:8px;margin-top:13px;padding-left:14px;display:grid!important}.notice-reply{background:#f7f3ebd9;border-radius:10px;padding:10px 12px}.notice-reply>div{justify-content:space-between;align-items:center;gap:10px;display:flex}.notice-reply p{white-space:pre-wrap;margin:6px 0 0;font-size:.73rem;line-height:1.45}.notice-reply>button{color:#8a4a3c;margin-top:7px}.notice-reply-form{gap:8px;margin-top:12px;display:grid}.notice-reply-form label{color:var(--forest);font-size:.7rem;font-weight:700}.notice-reply-form textarea{resize:vertical;border:1px solid var(--border);width:100%;color:var(--ink);background:#fffdf8;border-radius:10px;padding:10px}.notice-reply-form button{background:var(--forest);color:#fff;border-radius:9px;justify-self:end;min-height:36px;margin-top:0;padding:0 13px}.family-tree-fullscreen{z-index:100;width:100vw;height:100dvh;min-height:100dvh;box-shadow:none;overscroll-behavior:contain;background:linear-gradient(#faf7eff5,#f4efe4f7);border:0;border-radius:0;padding:clamp(20px,2.4vw,42px);position:fixed;inset:0;overflow-y:auto}.family-tree-fullscreen .tree-heading{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f7f3e9f5;border-bottom:1px solid #b09a7573;margin:calc(-1*clamp(20px,2.4vw,42px)) calc(-1*clamp(20px,2.4vw,42px)) 0;padding:clamp(18px,2vw,30px) clamp(20px,2.4vw,42px);position:sticky;top:calc(-1*clamp(20px,2.4vw,42px));box-shadow:0 8px 22px #322a1e0f}.family-tree-fullscreen .complete-family-view{gap:24px;width:100%;max-width:1900px;margin:0 auto;padding:30px 0 42px}.family-tree-fullscreen .family-groups{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:18px}.family-tree-fullscreen .selected-family-tree{background:#fffdf8db;min-height:calc(100dvh - 250px);padding:30px 24px 18px;box-shadow:0 12px 34px #322a1e12}.family-tree-fullscreen .selected-family-tree .dynamic-tree{min-height:620px;padding-top:38px}.family-fullscreen-close{color:#fff;cursor:pointer;white-space:nowrap;background:#245b49;border:1px solid #78998b;border-radius:11px;min-height:44px;padding:0 15px;font-size:.7rem;font-weight:800}.family-fullscreen-close:hover{background:#174b3a}@media (width<=720px){.family-tree-fullscreen{padding:14px}.family-tree-fullscreen .tree-heading{margin:-14px -14px 0;padding:16px 14px;top:-14px}.family-tree-fullscreen .tree-controls{width:100%}.family-tree-fullscreen .tree-tabs{order:2}.family-tree-fullscreen .family-fullscreen-close{order:1;width:100%}.family-tree-fullscreen .family-groups{grid-template-columns:1fr}.family-tree-fullscreen .selected-family-tree{padding:20px 10px 10px}.family-tree-fullscreen .selected-family-tree .dynamic-tree{min-height:520px}}.tree-card:not(.family-tree-fullscreen) .tree-heading h2{font-size:clamp(1.35rem,1.8vw,1.7rem)}.tree-card:not(.family-tree-fullscreen) .tree-heading .kicker{font-size:.58rem}.family-tree-fullscreen{padding:0 18px 18px}.family-fullscreen-bar{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(#f7f3e9f7,#f7f3e9db 76%,#0000);justify-content:space-between;align-items:center;gap:16px;min-height:54px;padding:8px 4px;display:flex;position:sticky;top:0}.family-fullscreen-bar>div{align-items:baseline;gap:10px;min-width:0;display:flex}.family-fullscreen-bar strong{color:var(--forest);font-family:Georgia,serif;font-size:1rem;font-weight:600}.family-fullscreen-bar span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.58rem}.family-fullscreen-bar .family-fullscreen-close{min-height:34px;color:var(--forest);box-shadow:none;background:#fffdf8c7;border-color:#2f745f73;padding:0 11px}.family-fullscreen-bar .family-fullscreen-close:hover{background:#e4ece7}.family-tree-fullscreen .complete-family-view.central-family-view{max-width:none;padding:4px 0 28px}.family-tree-fullscreen .central-family-tree{min-height:calc(100dvh - 76px);box-shadow:none;background:0 0;border:0;padding:8px 4px 12px}.family-tree-fullscreen .central-family-tree .dynamic-tree{min-height:calc(100dvh - 105px);padding-top:12px}@media (width<=720px){.family-tree-fullscreen{padding:0 8px 10px}.family-fullscreen-bar{min-height:48px;padding:6px 2px}.family-fullscreen-bar>div{gap:6px}.family-fullscreen-bar strong{font-size:.88rem}.family-fullscreen-bar span{font-size:.5rem}.family-fullscreen-bar .family-fullscreen-close{width:auto;min-height:32px}.family-tree-fullscreen .central-family-tree{padding:4px 0 8px}}.family-fullscreen-bar>div{order:1;margin-right:auto}.family-fullscreen-bar .family-manage-button{order:2}.family-fullscreen-bar .family-fullscreen-close{order:3}.family-manage-button{color:#fff;cursor:pointer;background:#245b49;border:1px solid #2f745f;border-radius:9px;min-height:34px;padding:0 11px;font-size:.64rem;font-weight:800}.family-manage-button:hover{background:#174b3a}.family-tree-fullscreen .modal-backdrop{z-index:140}.family-management-modal{border:1px solid var(--border);background:var(--surface);border-radius:20px;width:min(680px,100%);max-height:calc(100dvh - 40px);padding:28px;position:relative;overflow-y:auto;box-shadow:0 24px 80px #141e1a47}.family-management-modal>.close{color:#68716c;cursor:pointer;background:0 0;border:0;width:36px;height:36px;font-size:1.5rem;position:absolute;top:12px;right:14px}.family-management-modal h3{color:var(--forest);margin:0 0 8px;font-family:Georgia,serif;font-size:1.55rem}.family-management-modal>p:not(.kicker){color:var(--muted);margin:0 0 18px;font-size:.73rem;line-height:1.5}.family-management-list{gap:9px;display:grid}.family-management-list article{border:1px solid var(--border);background:#fffdf8;border-radius:12px;justify-content:space-between;align-items:center;gap:14px;padding:13px;display:flex}.family-management-list article>div{gap:4px;display:grid}.family-management-list strong{color:var(--forest);font-family:Georgia,serif;font-size:.88rem}.family-management-list span{color:var(--muted);font-size:.6rem}.family-management-list article>button{min-height:36px;color:var(--forest);cursor:pointer;white-space:nowrap;background:#edf3ef;border:1px solid #2f745f;border-radius:9px;padding:0 11px;font-size:.62rem;font-weight:800}.relationship-manager{border:1px solid var(--border);background:#fffdf8;border-radius:14px;margin:4px 0 22px;padding:16px}.relationship-manager-heading{gap:4px;margin-bottom:13px;display:grid}.relationship-manager-heading strong,.family-management-divider strong{color:var(--forest);font-family:Georgia,serif;font-size:1rem}.relationship-manager-heading span,.family-management-divider span{color:var(--muted);font-size:.64rem}.relationship-manager form{grid-template-columns:1fr 1fr;gap:11px;display:grid}.relationship-manager label{color:#59635e;gap:6px;font-size:.66rem;font-weight:800;display:grid}.relationship-manager select{border:1px solid var(--border);width:100%;min-height:42px;color:var(--ink);background:#fff;border-radius:9px;padding:0 10px}.relationship-manager .relationship-kind-field{grid-column:1/-1}.relationship-manager form>.primary{cursor:pointer;border:0;grid-column:1/-1;min-height:42px}.relationship-list{border-top:1px solid var(--border);gap:7px;margin-top:15px;padding-top:13px;display:grid}.relationship-list>strong{color:var(--forest);font-size:.7rem}.relationship-list>span{color:var(--muted);font-size:.64rem}.relationship-list>div{background:#f5f0e7;border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.relationship-list>div>span{color:#505a55;font-size:.64rem;line-height:1.35}.relationship-list button{color:#9d4438;cursor:pointer;white-space:nowrap;background:#fff9f7;border:1px solid #c77d70;border-radius:8px;min-height:30px;padding:0 9px;font-size:.58rem;font-weight:800}.family-management-divider{gap:4px;margin:0 0 11px;display:grid}.family-management-tabs{background:#eee7da;border-radius:11px;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:15px;padding:5px;display:grid}.family-management-tabs button{color:#625d54;cursor:pointer;background:0 0;border:0;border-radius:8px;min-height:40px;font-size:.65rem;font-weight:800}.family-management-tabs button.active{color:var(--forest);background:#fffdf8;box-shadow:0 2px 8px #28241c1a}.relationship-approval-note{color:#7b6e5e;margin-top:9px;font-size:.62rem;line-height:1.4;display:block}.relationship-list em{color:#a06a31;font-style:normal;font-weight:800}.relationship-review-actions{gap:5px;display:flex}.relationship-review-actions button:first-child{color:#245b49;background:#edf5f1;border-color:#5d8b79}.person-management-list{max-height:360px;overflow-y:auto}.tree-connector-layer path{stroke-linecap:butt;stroke-linejoin:miter;shape-rendering:geometricprecision}@media (width<=720px){.family-fullscreen-bar .family-manage-button{width:auto;min-height:32px;font-size:.57rem}.family-management-tabs{grid-template-columns:1fr}.family-management-list article{flex-direction:column;align-items:stretch}.family-management-list article>button{width:100%}.relationship-manager form{grid-template-columns:1fr}.relationship-manager .relationship-kind-field,.relationship-manager form>.primary{grid-column:auto}.relationship-list>div{flex-direction:column;align-items:stretch}.relationship-list button,.relationship-review-actions{width:100%}.relationship-review-actions button{flex:1}}
