.life-map-launch{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin:6px 0 20px;padding:15px 16px;border:1px solid rgba(213,180,110,.34);border-radius:14px;background:linear-gradient(120deg,rgba(213,180,110,.14),rgba(125,169,255,.07));color:#f1dfb8;text-align:left;cursor:pointer;transition:.2s}.life-map-launch:hover{border-color:rgba(213,180,110,.62);transform:translateY(-1px);box-shadow:0 12px 30px rgba(0,0,0,.22)}.life-map-launch__copy{display:grid;gap:4px;min-width:0}.life-map-launch__copy strong{font-family:Georgia,"Times New Roman",serif;font-size:16px;font-weight:500;line-height:1.2}.life-map-launch__copy small{display:block;color:#929cac;font-size:10px;line-height:1.4;text-align:left}.life-map-launch__arrow{display:grid;width:30px;height:30px;place-items:center;border:1px solid rgba(213,180,110,.28);border-radius:50%;color:#d5b46e;font-size:17px;transition:transform .2s,background .2s}.life-map-launch:hover .life-map-launch__arrow{transform:translateX(2px);background:rgba(213,180,110,.1)}

.person-explorer[hidden]{display:none}.person-explorer{position:fixed;inset:0;z-index:300;display:grid;grid-template-rows:auto 1fr;background:radial-gradient(circle at 50% 45%,rgba(29,45,72,.42),transparent 40%),linear-gradient(145deg,#07090e,#0a0f17 52%,#080b10);color:var(--ink);isolation:isolate}.person-explorer:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.24;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:34px 34px;mask-image:radial-gradient(circle at center,#000,transparent 78%)}
.person-explorer__header{position:relative;z-index:4;display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(48px,1fr);grid-template-areas:"identity tabs close";align-items:center;gap:20px;min-height:88px;padding:12px 24px;border-bottom:1px solid rgba(255,255,255,.09);background:rgba(7,10,15,.72);backdrop-filter:blur(22px)}
.person-explorer__identity{grid-area:identity;display:flex;align-items:center;gap:12px;min-width:0}.person-explorer__identity>span:last-child{display:grid;min-width:0}.person-explorer__identity small{color:var(--gold);font-size:9px;font-style:normal;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.person-explorer__identity b{overflow:hidden;margin-top:2px;font:500 18px/1.15 Georgia,"Times New Roman",serif;text-overflow:ellipsis;white-space:nowrap}.person-explorer__identity em{margin-top:3px;color:var(--muted);font-size:10px;font-style:normal}
.life-avatar{position:relative;flex:0 0 auto;width:42px;height:42px;display:grid;place-items:center;overflow:hidden;border:1px solid rgba(213,180,110,.38);border-radius:50%;background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.14),rgba(213,180,110,.08) 45%,rgba(0,0,0,.28));color:#e8ce96;box-shadow:0 0 0 5px rgba(213,180,110,.025)}.life-avatar img{width:100%;height:100%;object-fit:cover}.life-avatar b{font:500 13px Georgia,"Times New Roman",serif}.life-avatar--featured{width:92px;height:92px;border-width:2px;box-shadow:0 0 0 8px rgba(213,180,110,.04),0 0 42px rgba(213,180,110,.18)}.life-avatar--featured b{font-size:25px}
.person-explorer__tabs{grid-area:tabs;display:flex;gap:4px;padding:4px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.035)}.person-explorer__tabs button{height:38px;padding:0 13px;border:0;border-radius:10px;background:transparent;color:#8f9aaa;font-size:11px;font-weight:650;white-space:nowrap;cursor:pointer}.person-explorer__tabs button:hover{color:#dbe1e8}.person-explorer__tabs button.is-active{background:rgba(213,180,110,.13);color:#ecd6a4;box-shadow:inset 0 0 0 1px rgba(213,180,110,.2)}
.person-explorer__close{grid-area:close;justify-self:end;width:40px;height:40px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.04);color:#a4adba;font-size:24px;cursor:pointer}.person-explorer__close:hover{background:rgba(255,255,255,.08);color:#fff}.person-explorer__content{min-width:0;min-height:0;overflow:auto}
.bowtie-scroll{width:100%;height:100%;overflow:auto}.bowtie-stage{position:relative;width:1400px;height:720px;min-height:100%;margin:0 auto}.bowtie-lines{position:absolute;inset:0;width:1400px;height:720px;overflow:visible}.bowtie-band{fill:rgba(121,151,190,.018);stroke:rgba(150,173,205,.09);stroke-width:1}.bowtie-band.band-1{fill:rgba(213,180,110,.025);stroke:rgba(213,180,110,.12)}.bowtie-band.band-2{fill:rgba(120,199,160,.017)}.bowtie-band.band-3{fill:rgba(125,169,255,.014)}.bowtie-links path{fill:none;stroke:rgba(155,175,202,.2);stroke-width:1.25}.bowtie-links path.partner-link{stroke:rgba(213,180,110,.36);stroke-dasharray:5 7}
/* Each link ends in a junction dot at the circle edge, like the family lines on the main tree. */
.bowtie-dots circle{pointer-events:none}.bowtie-dot{fill:#0a0f17;stroke:rgba(155,175,202,.55);stroke-width:1.5}.bowtie-dot-core{fill:rgba(190,205,225,.9)}.bowtie-dot--partner{stroke:rgba(213,180,110,.7)}.bowtie-dot-core--partner{fill:rgba(213,180,110,.95)}
/* Avatars sit above the lines with an opaque base (the classic book view paints its own), so nothing drawn behind a circle can show through it. */
body:not(.classic-tree-mode) .bowtie-person .life-avatar{background-color:#0a0f17}.bowtie-axis-label{position:absolute;top:28px;color:#596576;font-size:9px;font-weight:800;letter-spacing:.2em;text-transform:uppercase}.bowtie-axis-label--left{left:72px}.bowtie-axis-label--right{right:72px}
.bowtie-person{position:absolute;z-index:2;display:grid;justify-items:center;gap:7px;width:126px;padding:0;border:0;background:transparent;color:var(--ink);transform:translate(-50%,-26px);cursor:pointer}.bowtie-person:hover{z-index:6}.bowtie-person:hover .life-avatar{border-color:rgba(213,180,110,.78);transform:scale(1.08);box-shadow:0 0 28px rgba(213,180,110,.22)}.bowtie-person .life-avatar{width:52px;height:52px;transition:.2s}.bowtie-person>span:last-child{display:grid;max-width:126px;text-align:center;text-shadow:0 2px 10px #05070b}.bowtie-person>span>b{font:500 12px/1.15 Georgia,"Times New Roman",serif}.bowtie-person>span>small{margin-top:3px;color:#778394;font-size:8px;line-height:1.25}.bowtie-person.is-featured{z-index:5;width:180px;transform:translate(-50%,-46px)}.bowtie-person.is-featured .life-avatar{width:92px;height:92px}.bowtie-person.is-featured>span>b{font-size:19px}.bowtie-person.is-featured>span>small{color:var(--gold);font-size:9px;letter-spacing:.1em;text-transform:uppercase}.bowtie-more{position:absolute;transform:translate(-50%,-50%);color:#596576;font-size:9px}.bowtie-empty{position:absolute;top:50%;width:220px;color:#515c6b;font:italic 14px Georgia,"Times New Roman",serif;text-align:center}.bowtie-empty--left{left:150px}.bowtie-empty--right{right:150px}
.perspective-page{width:min(1120px,calc(100% - 40px));margin:0 auto;padding:48px 0 80px}.perspective-page--narrow{width:min(820px,calc(100% - 40px))}.perspective-intro{margin-bottom:30px}.perspective-intro p{margin:0 0 8px;color:var(--gold);font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.perspective-intro h2{margin:0;font:500 clamp(28px,4vw,46px)/1.03 Georgia,"Times New Roman",serif;letter-spacing:-.025em}.perspective-empty{grid-column:1/-1;padding:46px;border:1px dashed rgba(255,255,255,.11);border-radius:18px;color:#6f7a89;text-align:center}
.relationship-group{margin-top:28px}.relationship-group>header{display:flex;align-items:center;justify-content:space-between;padding-bottom:9px;border-bottom:1px solid rgba(255,255,255,.08);color:#7f8a99;font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.relationship-group>header b{font:500 18px Georgia,"Times New Roman",serif;color:#bec7d2}.relationship-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:12px}.relationship-card{display:flex;align-items:center;gap:13px;min-height:74px;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:15px;background:rgba(255,255,255,.025);color:var(--ink);text-align:left;cursor:pointer}.relationship-card:hover{border-color:rgba(213,180,110,.3);background:rgba(213,180,110,.05)}.relationship-card>span:last-child{display:grid}.relationship-card>span>b{font:500 15px Georgia,"Times New Roman",serif}.relationship-card>span>small{margin-top:5px;color:#7f8998;font-size:10px}
.life-timeline{position:relative;padding-left:34px}.life-timeline:before{content:"";position:absolute;left:8px;top:8px;bottom:8px;width:1px;background:linear-gradient(var(--gold),rgba(125,169,255,.18))}.life-timeline article{position:relative;display:grid;grid-template-columns:120px 1fr;gap:24px;padding:0 0 34px}.life-timeline article:before{content:"";position:absolute;left:-31px;top:5px;width:9px;height:9px;border:2px solid #0a0f17;border-radius:50%;background:var(--gold);box-shadow:0 0 0 1px rgba(213,180,110,.5),0 0 18px rgba(213,180,110,.26)}.life-timeline time{color:#c9ad72;font-size:11px}.life-timeline h3,.place-card h3,.memory-card h3{margin:0;font:500 20px/1.15 Georgia,"Times New Roman",serif}.life-timeline p,.place-card p,.memory-card p{margin:8px 0 0;color:#939eac;font-size:13px;line-height:1.6}
.place-grid,.memory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.place-card,.memory-card{display:flex;gap:15px;min-height:150px;padding:20px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.015))}.place-card>div{min-width:0}.place-marker{flex:0 0 auto;width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(120,199,160,.3);border-radius:12px;background:rgba(120,199,160,.08);color:var(--green)}.place-card small,.memory-card>span{display:block;margin-bottom:7px;color:var(--green);font-size:9px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.memory-card{display:block}.memory-card>span{color:var(--rose)}.memory-card>small{display:block;margin-top:7px;color:#778394;font-size:10px}

@media(max-width:1050px){.person-explorer__header{grid-template-columns:1fr auto;grid-template-areas:"identity close" "tabs tabs";gap:10px;padding:10px 14px}.person-explorer__tabs{overflow-x:auto;justify-content:flex-start}.person-explorer__tabs button{flex:0 0 auto}.bowtie-stage{margin:0}}
@media(max-width:650px){.person-explorer__header{min-height:118px}.person-explorer__identity b{font-size:16px}.person-explorer__tabs button{height:36px;padding:0 11px;font-size:10px}.perspective-page,.perspective-page--narrow{width:calc(100% - 28px);padding-top:28px}.life-timeline article{grid-template-columns:1fr;gap:7px}.life-timeline{padding-left:28px}.life-timeline article:before{left:-25px}.relationship-grid,.place-grid,.memory-grid{grid-template-columns:1fr}.life-map-launch{align-items:flex-start;flex-direction:column}.life-map-launch small{max-width:none;text-align:left}}

/* The life map uses the same relationship colors as the main tree. */
body:not(.classic-tree-mode) .bowtie-links path:not(.partner-link){
  stroke:#36e6ff;
  opacity:.5;
  filter:drop-shadow(0 0 4px rgba(54,230,255,.7));
}
body:not(.classic-tree-mode) .bowtie-links path.partner-link{
  stroke:#ff5fa2;
  stroke-width:1.75;
  stroke-dasharray:5 7;
  opacity:.72;
  filter:drop-shadow(0 0 5px rgba(255,95,162,.75));
}

/* Person portal launcher */
.life-map-launch{position:relative;display:grid;grid-template-columns:1fr auto;grid-template-areas:"eyebrow arrow" "copy arrow";gap:5px 16px;margin:8px 0 22px;padding:18px 18px 17px;overflow:hidden;border:1px solid rgba(124,217,255,.36);border-radius:18px;background:radial-gradient(circle at 92% 20%,rgba(54,230,255,.14),transparent 34%),linear-gradient(135deg,rgba(22,32,47,.96),rgba(11,16,24,.96));box-shadow:inset 0 1px rgba(255,255,255,.07),0 12px 28px rgba(0,0,0,.2);color:#fff}.life-map-launch:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(#70e9ff,#9a8cff);box-shadow:0 0 16px #54dff8}.life-map-launch__eyebrow{grid-area:eyebrow;color:#78ddf2;font-size:9px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.life-map-launch__copy{grid-area:copy}.life-map-launch__copy strong{font:500 20px/1.1 Georgia,"Times New Roman",serif}.life-map-launch__copy small{margin-top:6px;color:#9ca8b8;font-size:11px}.life-map-launch__arrow{grid-area:arrow;align-self:center;width:42px;height:42px;border-color:rgba(112,233,255,.35);background:rgba(86,216,244,.08);color:#8cecff}.life-map-launch:hover{border-color:rgba(112,233,255,.72);box-shadow:0 16px 38px rgba(0,0,0,.3),0 0 28px rgba(54,230,255,.1)}

/* Full person profile */
.person-explorer{--profile-accent:#d5b46e;--profile-accent-rgb:213,180,110;background:#07090e}.person-explorer[data-accent="cyan"]{--profile-accent:#56def5;--profile-accent-rgb:86,222,245}.person-explorer[data-accent="rose"]{--profile-accent:#ff79aa;--profile-accent-rgb:255,121,170}.person-explorer__header{min-height:76px;padding:10px 22px;background:rgba(5,7,11,.88)}.person-explorer__identity small,.perspective-intro p{color:var(--profile-accent)}.person-explorer__tabs button.is-active{background:rgba(var(--profile-accent-rgb),.14);color:var(--profile-accent);box-shadow:inset 0 0 0 1px rgba(var(--profile-accent-rgb),.25)}.person-explorer__content{scroll-behavior:smooth}.life-overview{min-height:100%;background:#080b11}.life-hero{position:relative;isolation:isolate;display:flex;min-height:clamp(500px,70vh,760px);align-items:flex-end;overflow:hidden;background:radial-gradient(circle at 70% 20%,rgba(var(--profile-accent-rgb),.13),transparent 32%),linear-gradient(145deg,#111a27,#06080c 68%)}.life-hero.has-image:before{content:"";position:absolute;z-index:-3;inset:-20px;background-image:var(--life-hero);background-position:center 34%;background-size:cover;filter:saturate(.82);transform:scale(1.02);animation:life-hero-arrive 1.2s cubic-bezier(.2,.8,.2,1)}.life-hero.has-image:after{content:"";position:absolute;z-index:-2;inset:0;background:linear-gradient(90deg,rgba(5,7,11,.92) 0%,rgba(5,7,11,.52) 46%,rgba(5,7,11,.1) 74%),linear-gradient(0deg,#080b11 0%,transparent 48%)}.life-hero__shade{position:absolute;z-index:-1;inset:0;background:linear-gradient(0deg,rgba(5,7,11,.88),transparent 48%)}.life-hero__copy{width:min(680px,70%);padding:64px clamp(24px,6vw,90px) 78px}.life-hero__kicker{color:var(--profile-accent);font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.life-hero h1{max-width:780px;margin:12px 0 16px;font:500 clamp(48px,7vw,92px)/.9 Georgia,"Times New Roman",serif;letter-spacing:-.055em;text-shadow:0 8px 34px rgba(0,0,0,.48)}.life-hero__copy>p{max-width:590px;margin:0;color:#d1d7df;font:400 clamp(16px,1.7vw,21px)/1.55 Georgia,"Times New Roman",serif;text-shadow:0 3px 16px #000}.life-hero__actions{display:flex;gap:10px;margin-top:30px}.life-primary-action,.life-secondary-action{height:46px;padding:0 18px;border-radius:999px;cursor:pointer}.life-primary-action{border:0;background:#f4f5f7;color:#090b0f;font-weight:750}.life-primary-action:disabled{opacity:.36;cursor:not-allowed}.life-secondary-action{border:1px solid rgba(255,255,255,.24);background:rgba(8,11,17,.5);backdrop-filter:blur(12px);color:#fff}.life-hero__facts{position:absolute;right:clamp(24px,5vw,72px);bottom:74px;display:grid;grid-template-columns:repeat(2,92px);gap:1px;border:1px solid rgba(255,255,255,.12);border-radius:18px;overflow:hidden;background:rgba(5,7,11,.58);backdrop-filter:blur(18px)}.life-hero__facts span{display:grid;gap:3px;padding:14px;color:#8f9aaa;font-size:9px;letter-spacing:.1em;text-transform:uppercase}.life-hero__facts b{color:#fff;font:500 24px Georgia,"Times New Roman",serif;letter-spacing:0}.life-overview__body{width:min(1280px,calc(100% - 48px));margin:0 auto;padding:32px 0 90px}.life-section-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 14px}.life-section-heading>span{font:500 20px Georgia,"Times New Roman",serif}.life-section-heading button{border:0;background:transparent;color:var(--profile-accent);font-size:11px;cursor:pointer}.life-section-heading small{color:#6f7a89}.life-filmstrip{display:grid;grid-template-columns:2fr repeat(5,1fr);grid-auto-rows:170px;gap:7px}.life-film-frame{position:relative;overflow:hidden;padding:0;border:0;border-radius:14px;background:#151a22;cursor:pointer}.life-film-frame:first-child{grid-row:span 2}.life-film-frame img{width:100%;height:100%;object-fit:cover;transition:transform .45s,filter .3s}.life-film-frame:hover img{transform:scale(1.04);filter:brightness(1.08)}.life-overview__grid{display:grid;grid-template-columns:1.3fr .7fr;gap:34px;margin-top:42px}.life-family-row{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));gap:8px}.life-family-face{display:grid;justify-items:center;gap:9px;padding:16px 8px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(255,255,255,.025);color:#fff;cursor:pointer}.life-family-face:hover{border-color:rgba(var(--profile-accent-rgb),.35);background:rgba(var(--profile-accent-rgb),.06)}.life-family-face>span:last-child{display:grid;text-align:center}.life-family-face b{font:500 12px Georgia,"Times New Roman",serif}.life-family-face small{margin-top:3px;color:#798493;font-size:9px}.featured-story{min-height:190px;padding:25px;border:1px solid rgba(var(--profile-accent-rgb),.18);border-radius:18px;background:linear-gradient(145deg,rgba(var(--profile-accent-rgb),.08),rgba(255,255,255,.02))}.featured-story small{color:var(--profile-accent);font-size:9px;letter-spacing:.1em}.featured-story h2{margin:10px 0 9px;font:500 24px/1.08 Georgia,"Times New Roman",serif}.featured-story p{margin:0;color:#aeb7c3;font-size:12px;line-height:1.65;display:-webkit-box;overflow:hidden;-webkit-line-clamp:5;-webkit-box-orient:vertical}.life-empty-album{display:grid;width:100%;min-height:230px;place-items:center;align-content:center;gap:7px;border:1px dashed rgba(var(--profile-accent-rgb),.34);border-radius:20px;background:rgba(var(--profile-accent-rgb),.035);color:#fff;cursor:pointer}.life-empty-album>span{display:grid;width:46px;height:46px;place-items:center;border:1px solid rgba(var(--profile-accent-rgb),.28);border-radius:50%;color:var(--profile-accent);font-size:22px}.life-empty-album b{font:500 19px Georgia,"Times New Roman",serif}.life-empty-album small{color:#7f8998}

/* Photo theater */
.life-photos-page{background:#05070a}.memory-theater{position:relative;display:grid;height:min(73vh,760px);min-height:520px;place-items:center;overflow:hidden;background:#000}.memory-theater>img{width:100%;height:100%;object-fit:contain}.memory-theater__veil{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(0,0,0,.82),transparent 38%),linear-gradient(180deg,rgba(0,0,0,.52),transparent 22%)}.memory-theater__top{position:absolute;left:24px;right:24px;top:20px;display:flex;align-items:center;justify-content:space-between;color:#ccd3dc;font-size:11px}.memory-theater__top button{border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(0,0,0,.35);color:#fff;padding:8px 12px;backdrop-filter:blur(10px);cursor:pointer}.memory-theater__caption{position:absolute;left:clamp(24px,5vw,72px);bottom:34px;width:min(520px,60%)}.memory-theater__caption small{color:var(--profile-accent);font-size:10px;letter-spacing:.12em}.memory-theater__caption h2{margin:6px 0;font:500 clamp(28px,4vw,50px)/1 Georgia,"Times New Roman",serif}.memory-theater__caption p{margin:8px 0 0;color:#c2c9d2;font-size:13px;line-height:1.55}.memory-theater__controls{position:absolute;right:clamp(24px,5vw,72px);bottom:38px;display:flex;align-items:center;gap:7px}.memory-theater__controls button{height:40px;min-width:40px;padding:0 13px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(8,10,14,.58);backdrop-filter:blur(12px);color:#fff;cursor:pointer}.memory-theater__controls .memory-play{background:#fff;color:#080a0d}.memory-theater__controls [data-soundtrack].is-playing{border-color:var(--profile-accent);color:var(--profile-accent)}.life-photo-library{width:min(1280px,calc(100% - 48px));margin:0 auto;padding:34px 0 90px}.life-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:7px}.life-photo-grid.layout-mosaic .life-photo-tile:nth-child(7n+1){grid-column:span 2;grid-row:span 2}.life-photo-grid.layout-mosaic .life-photo-tile:nth-child(7n+4){grid-column:span 2}.life-photo-tile{position:relative;overflow:hidden;padding:0;border:2px solid transparent;border-radius:12px;background:#11151c;cursor:pointer}.life-photo-tile.is-active{border-color:var(--profile-accent)}.life-photo-tile img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.life-photo-tile:hover img{transform:scale(1.035)}.life-photo-tile span{position:absolute;left:0;right:0;bottom:0;padding:24px 10px 9px;background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff;font-size:10px;text-align:left}

/* Per-person customization */
.customize-profile form{display:grid;gap:26px}.customize-profile label{display:grid;gap:8px;color:var(--form-label);font-size:12px}.customize-profile label>span,.customize-profile legend{color:var(--form-label);font:750 11px/1.3 var(--form-ui-font);letter-spacing:.035em}.customize-profile textarea,.customize-profile input[type="url"]{width:100%;min-height:var(--field-min-height);box-sizing:border-box;padding:12px 13px;border:1px solid var(--field-line);border-radius:var(--field-radius);outline:none;background:var(--field-bg);color:var(--field-ink);font:var(--field-font);resize:vertical}.customize-profile textarea::placeholder,.customize-profile input[type="url"]::placeholder{color:var(--field-placeholder)}.customize-profile textarea:focus,.customize-profile input[type="url"]:focus{border-color:var(--field-focus-line);outline:2px solid var(--field-focus-ring);outline-offset:1px}.customize-profile fieldset{margin:0;padding:0;border:0}.customize-profile legend{margin-bottom:11px}.profile-choice-row{display:flex;flex-wrap:wrap;gap:9px}.profile-choice-row label{display:block}.profile-choice-row input{position:absolute;opacity:0}.profile-choice-row label>span{display:block;padding:12px 15px;border:1px solid var(--field-line);border-radius:var(--field-radius);background:var(--field-bg);color:var(--form-label);font:500 13px/1.3 var(--form-ui-font);letter-spacing:0;cursor:pointer;text-transform:none}.profile-choice-row input:checked+span{border-color:var(--profile-accent);background:rgba(var(--profile-accent-rgb),.1);color:#fff}.accent-choice:before{content:"";display:inline-block;width:9px;height:9px;margin-right:8px;border-radius:50%;background:#d5b46e;box-shadow:0 0 10px #d5b46e}.accent-cyan:before{background:#56def5;box-shadow:0 0 10px #56def5}.accent-rose:before{background:#ff79aa;box-shadow:0 0 10px #ff79aa}.customize-actions{display:flex;justify-content:flex-end;gap:9px}.customize-actions button{min-height:var(--btn-min-height);padding:0 17px;border:1px solid var(--btn-secondary-line);border-radius:var(--btn-radius);background:var(--btn-secondary-bg);color:var(--btn-secondary-ink);font:var(--btn-font);cursor:pointer;transition:background .18s ease}.customize-actions button:hover{background:var(--btn-secondary-hover-bg)}.customize-actions button[type="submit"]{border-color:var(--btn-primary-line);background:var(--btn-primary-bg);color:var(--btn-primary-ink)}.customize-actions button[type="submit"]:hover{background:var(--btn-primary-hover-bg)}.customize-note{margin:0;color:var(--form-help);font-size:11px;line-height:1.5}
@keyframes life-hero-arrive{from{opacity:0;transform:scale(1.09)}to{opacity:1;transform:scale(1.02)}}

@media(max-width:900px){.person-explorer__header{grid-template-columns:1fr auto;grid-template-areas:"identity close" "tabs tabs";gap:8px}.person-explorer__tabs{overflow-x:auto;justify-content:flex-start}.life-hero__copy{width:100%;padding-bottom:150px}.life-hero.has-image:after{background:linear-gradient(0deg,#080b11 0%,rgba(5,7,11,.68) 58%,rgba(5,7,11,.12))}.life-hero__facts{left:24px;right:auto;bottom:34px;grid-template-columns:repeat(4,74px)}.life-overview__grid{grid-template-columns:1fr}.life-family-row{grid-template-columns:repeat(3,1fr)}.life-filmstrip{grid-template-columns:repeat(3,1fr);grid-auto-rows:150px}.life-film-frame:first-child{grid-column:span 2}.life-photo-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.person-explorer__header{padding:8px 10px}.person-explorer__identity b{font-size:15px}.person-explorer__tabs button{height:34px;padding:0 11px}.life-hero{min-height:560px}.life-hero__copy{padding:46px 18px 148px}.life-hero h1{font-size:48px}.life-hero__copy>p{font-size:16px}.life-hero__facts{left:18px;right:18px;bottom:25px;grid-template-columns:repeat(4,1fr)}.life-hero__facts span{padding:10px 8px}.life-overview__body,.life-photo-library{width:calc(100% - 24px)}.life-filmstrip{grid-template-columns:repeat(2,1fr);grid-auto-rows:135px}.life-family-row{grid-template-columns:repeat(2,1fr)}.memory-theater{height:65vh;min-height:470px}.memory-theater__caption{left:18px;bottom:105px;width:calc(100% - 36px)}.memory-theater__controls{left:18px;right:auto;bottom:38px}.life-photo-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px}.life-photo-grid.layout-mosaic .life-photo-tile:nth-child(7n+1){grid-column:span 2}.life-map-launch__copy strong{font-size:18px}}


.source-card{display:flex;flex-direction:column;align-items:flex-start}
.source-card>small{margin-top:10px;color:var(--muted);line-height:1.45}
.source-card__link{display:inline-flex;align-items:center;gap:7px;margin-top:16px;padding:9px 11px;border:1px solid color-mix(in srgb,var(--profile-accent) 38%,transparent);border-radius:9px;color:var(--profile-accent);font-size:12px;font-weight:700;text-decoration:none}
.source-card__link:hover{background:color-mix(in srgb,var(--profile-accent) 10%,transparent)}
.source-card__link:focus-visible{outline:2px solid var(--profile-accent);outline-offset:2px}
.source-card__link i{font-style:normal}

/* Profile biography and personal details */
.life-hero__copy>p{display:-webkit-box;max-height:6.2em;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:4}
.profile-about{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.72fr);gap:18px;margin:0 0 42px}
.profile-about__story,.profile-about__facts{border:1px solid rgba(255,255,255,.09);border-radius:20px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.018));box-shadow:inset 0 1px rgba(255,255,255,.035)}
.profile-about__story{min-height:320px;padding:26px clamp(20px,3vw,34px) 32px}
.profile-about__story .life-section-heading{margin-bottom:5px}
.profile-edit-action{min-height:42px;padding:0 16px;border:1px solid rgba(var(--profile-accent-rgb),.48);border-radius:999px;background:rgba(var(--profile-accent-rgb),.1);color:var(--profile-accent);font-size:14px;font-weight:750;cursor:pointer}
.profile-edit-action:hover{border-color:var(--profile-accent);background:rgba(var(--profile-accent-rgb),.17)}
.profile-edit-action:focus-visible{outline:2px solid var(--profile-accent);outline-offset:3px}
.profile-edit-status{display:flex;align-items:center;gap:8px;margin:0 0 24px;color:#8e99a8;font-size:13px;line-height:1.4}
.profile-edit-status i{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:var(--profile-accent);box-shadow:0 0 12px rgba(var(--profile-accent-rgb),.65)}
.profile-biography{color:#d6dbe2;font:400 17px/1.75 Georgia,"Times New Roman",serif;white-space:pre-wrap}
.profile-biography--empty{color:#7d8795;font-style:italic}
.profile-about__facts{display:grid;align-content:start;overflow:hidden;padding:8px 20px}
.profile-fact{display:grid;gap:6px;padding:17px 3px;border-bottom:1px solid rgba(255,255,255,.075)}
.profile-fact:last-child{border-bottom:0}
.profile-fact small{color:#7f8a99;font-size:12px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}
.profile-fact b{color:#e8ebef;font-size:15px;font-weight:550;line-height:1.5;white-space:pre-wrap}
.profile-fact--email a{overflow-wrap:anywhere;color:#e8ebef;font-size:15px;font-weight:650;line-height:1.45;text-decoration-color:color-mix(in srgb,var(--profile-accent,#d5b46e) 60%,transparent);text-underline-offset:3px}
.profile-fact__invite{justify-self:start;min-height:36px;padding:0 12px;border:1px solid color-mix(in srgb,var(--profile-accent,#d5b46e) 48%,transparent);border-radius:9px;background:color-mix(in srgb,var(--profile-accent,#d5b46e) 12%,transparent);color:var(--profile-accent,#e7c984);font-size:11px;font-weight:800;cursor:pointer}
.profile-fact__invite:hover{border-color:var(--profile-accent,#d5b46e);background:color-mix(in srgb,var(--profile-accent,#d5b46e) 20%,transparent)}
.profile-fact__invite:disabled{cursor:wait;opacity:.58}
.profile-fact__invite:focus-visible{outline:2px solid var(--profile-accent,#d5b46e);outline-offset:2px}

@media(max-width:850px){.profile-about{grid-template-columns:1fr}.profile-about__story{min-height:0}.profile-about__facts{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-fact:nth-child(odd){padding-right:16px}.profile-fact:nth-child(even){padding-left:16px;border-left:1px solid rgba(255,255,255,.075)}}
@media(max-width:560px){.profile-about{gap:12px;margin-bottom:32px}.profile-about__story{padding:21px 18px 25px}.profile-about__facts{grid-template-columns:1fr;padding:5px 18px}.profile-fact:nth-child(n){padding:15px 0;border-left:0}.profile-biography{font-size:16px;line-height:1.7}.profile-edit-action{min-height:44px}}

.profile-about__actions{display:flex;align-items:center;gap:8px}
.profile-history-action{min-height:42px;padding:0 13px;border:0;border-radius:999px;background:transparent;color:#98a3b1;font-size:14px;cursor:pointer}
.profile-history-action:hover{background:rgba(255,255,255,.055);color:#fff}
.profile-history-action:focus-visible{outline:2px solid var(--profile-accent);outline-offset:2px}
.profile-history{display:grid;gap:12px}
.profile-history__entry{padding:20px;border:1px solid rgba(255,255,255,.09);border-radius:18px;background:rgba(255,255,255,.025)}
.profile-history__entry>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:15px;border-bottom:1px solid rgba(255,255,255,.075)}
.profile-history__entry>header>div{display:grid;gap:4px}.profile-history__entry>header b{font-size:15px}.profile-history__entry>header small{color:#7f8a99;font-size:12px}.profile-history__entry>header>span{color:var(--profile-accent);font-size:12px}
.profile-history__change{display:grid;gap:8px;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.profile-history__change:last-child{padding-bottom:0;border-bottom:0}.profile-history__change>b{color:#aeb7c3;font-size:13px}.profile-history__change>span{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:10px;font-size:14px;line-height:1.5}.profile-history__change s{overflow-wrap:anywhere;color:#747f8e}.profile-history__change i{color:var(--profile-accent);font-style:normal}.profile-history__change strong{overflow-wrap:anywhere;color:#e2e6eb;font-weight:550;white-space:pre-wrap}.profile-history__entry>p{margin:15px 0 0;color:#8d98a6}
@media(max-width:560px){.profile-about__story .life-section-heading{align-items:flex-start;gap:14px}.profile-about__actions{align-items:stretch;flex-direction:column}.profile-history-action,.profile-edit-action{min-height:44px}.profile-history__change>span{grid-template-columns:1fr}.profile-history__change i{transform:rotate(90deg)}}
/* Direct editing: keep corrections close to the information they change. */
.person-explorer__identity .life-edit-profile{
  align-self:center;
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  margin-left:4px;
  padding:0 12px;
  border:1px solid rgba(213,180,110,.34);
  border-radius:999px;
  background:rgba(213,180,110,.08);
  color:#ead8af;
  font:700 11px/1 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  white-space:nowrap;
  cursor:pointer;
}
.person-explorer__identity .life-edit-profile:hover{
  border-color:rgba(213,180,110,.62);
  background:rgba(213,180,110,.14);
}
.perspective-intro--actions{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
}
.profile-edit-action,.record-inline-edit{
  flex:0 0 auto;
  min-height:34px;
  padding:0 12px;
  border:1px solid rgba(125,169,255,.34);
  border-radius:10px;
  background:rgba(125,169,255,.08);
  color:#c9dcff;
  font:700 11px/1 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  cursor:pointer;
}
.profile-edit-action:hover,.record-inline-edit:hover{
  border-color:rgba(125,169,255,.64);
  background:rgba(125,169,255,.15);
}
.life-timeline__content{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}
.life-timeline__content>div{min-width:0}
.place-card--editable{position:relative}
.place-card--editable .record-inline-edit{margin-left:auto}

body.classic-tree-mode .person-explorer__identity .life-edit-profile,
body.classic-tree-mode .profile-edit-action,
body.classic-tree-mode .record-inline-edit{
  border-color:#80613e;
  border-radius:2px;
  background:linear-gradient(#ead9b5,#cdb184);
  color:#3b2818;
  box-shadow:0 3px 8px rgba(45,26,12,.18),inset 0 0 0 1px rgba(255,245,219,.28);
}
body.classic-tree-mode .person-explorer__identity .life-edit-profile{
  border-color:#b8925d;
  background:rgba(244,220,176,.1);
  color:#efd7aa;
  box-shadow:none;
}

@media(max-width:650px){
  .person-explorer__identity{gap:9px}
  .person-explorer__identity .life-edit-profile{min-height:32px;padding:0 10px;font-size:10px}
  .perspective-intro--actions{align-items:flex-start;flex-direction:column;gap:12px}
  .life-timeline__content{gap:10px}
  .record-inline-edit{min-height:36px}
  .place-card--editable{align-items:flex-start}
}
body:not(.classic-tree-mode) .bowtie-dot--family{stroke:#36e6ff;filter:drop-shadow(0 0 3px rgba(54,230,255,.6))}
body:not(.classic-tree-mode) .bowtie-dot-core--family{fill:#bff9ff}
body:not(.classic-tree-mode) .bowtie-dot--partner{stroke:#ff5fa2;filter:drop-shadow(0 0 3px rgba(255,95,162,.6))}
body:not(.classic-tree-mode) .bowtie-dot-core--partner{fill:#ffd2e6}
body.classic-tree-mode .bowtie-dot{fill:#dbc294;stroke:#654724}
body.classic-tree-mode .bowtie-dot-core{fill:#654724}



/* Life events: the profile's major moments, each edited through its own sheet. */
.life-milestones{margin:0 0 42px}
.life-milestones__loading{margin:-6px 0 12px;color:#6f7a89;font-size:12px}
.life-milestone-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.life-milestone{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:14px;min-height:118px;padding:18px 18px 16px;border:1px solid rgba(255,255,255,.09);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.018));box-shadow:inset 0 1px rgba(255,255,255,.035);color:#e8ebef;text-align:left}
.life-milestone__icon{display:grid;width:38px;height:38px;place-items:center;border:1px solid rgba(var(--profile-accent-rgb),.32);border-radius:50%;background:rgba(var(--profile-accent-rgb),.09);color:var(--profile-accent);font:500 18px/1 Georgia,"Times New Roman",serif}
.life-milestone--marriage .life-milestone__icon{border-color:rgba(255,121,170,.34);background:rgba(255,121,170,.09);color:#ff9bbf;font-size:21px}
.life-milestone--death .life-milestone__icon,.life-milestone--burial .life-milestone__icon{border-color:rgba(174,183,195,.3);background:rgba(174,183,195,.07);color:#c5ccd6}
.life-milestone__body{display:grid;gap:5px;min-width:0}
.life-milestone__body small{color:#7f8a99;font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.life-milestone__body h3{margin:0;font:500 22px/1.15 Georgia,"Times New Roman",serif;overflow-wrap:anywhere}
.life-milestone__body p{margin:0;color:#aeb7c3;font-size:13px;line-height:1.55;white-space:pre-wrap}
.life-milestone__body .life-milestone__place{color:#d1d7df}
.life-milestone__person{padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:rgba(var(--profile-accent-rgb),.5);text-underline-offset:4px}
.life-milestone__person:hover{color:var(--profile-accent)}
.life-milestone .record-inline-edit{align-self:start}
.life-milestone--add{grid-template-columns:auto minmax(0,1fr);border-style:dashed;border-color:rgba(var(--profile-accent-rgb),.34);background:rgba(var(--profile-accent-rgb),.035);cursor:pointer}
.life-milestone--add:hover{border-color:var(--profile-accent);background:rgba(var(--profile-accent-rgb),.08)}
.life-milestone--add:focus-visible{outline:2px solid var(--profile-accent);outline-offset:3px}
.life-milestone--add .life-milestone__body b{font:500 17px/1.2 Georgia,"Times New Roman",serif}
.life-milestone--add .life-milestone__body small{color:#7f8998;font-weight:500;letter-spacing:0;text-transform:none}
.life-moments{margin-top:14px;padding:16px 18px;border:1px solid rgba(255,255,255,.07);border-radius:18px;background:rgba(255,255,255,.02)}
.life-moments__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.life-moments__head>span{font:500 16px Georgia,"Times New Roman",serif}
.life-moments__empty{margin:0;color:#6f7a89;font-size:13px}
.life-moment-list{display:grid;margin:0;padding:0;list-style:none}
.life-moment{display:grid;grid-template-columns:118px minmax(0,1fr) auto;align-items:start;gap:14px;padding:11px 0;border-top:1px solid rgba(255,255,255,.06)}
.life-moment:first-child{border-top:0}
.life-moment>span{padding-top:4px;color:var(--profile-accent);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.life-moment b{display:block;font:500 15px/1.3 Georgia,"Times New Roman",serif}
.life-moment small{display:block;margin-top:3px;color:#8f9aaa;font-size:12px}
.life-moment p{margin:6px 0 0;color:#aeb7c3;font-size:13px;line-height:1.5}
@media(max-width:650px){.life-milestone-grid{grid-template-columns:1fr}.life-milestone{padding:15px 14px;gap:12px}.life-milestone__body h3{font-size:19px}.life-moment{grid-template-columns:1fr;gap:6px}.life-moment .record-inline-edit{justify-self:start}.life-moments__head{align-items:flex-start;flex-direction:column}}
body.classic-tree-mode .life-milestone{border-color:rgba(70,48,25,.48);border-radius:2px;background:rgba(231,209,169,.82);color:#312418;box-shadow:none}
body.classic-tree-mode .life-milestone__icon{border-color:#8a6b46;border-radius:1px;background:#d9c49b;color:#7c4930}
body.classic-tree-mode .life-milestone__body small,body.classic-tree-mode .life-moment>span{color:#795326}
body.classic-tree-mode .life-milestone__body p,body.classic-tree-mode .life-milestone__body .life-milestone__place,body.classic-tree-mode .life-moment small,body.classic-tree-mode .life-moment p{color:#675038}
body.classic-tree-mode .life-milestone__person{color:#3b2818;text-decoration-color:#8a6b46}
body.classic-tree-mode .life-milestone--add{border-color:#8a6b46;background:rgba(244,220,176,.35)}
body.classic-tree-mode .life-moments{border-color:rgba(70,48,25,.4);border-radius:2px;background:rgba(231,209,169,.6)}
/* Rare family corrections live inside the Family tab, above its scrollable map. */
.profile-family{height:100%;min-height:0;display:flex;flex-direction:column}
.profile-family__toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid var(--form-divider)}
.profile-family__toolbar h2{min-width:0;margin:0;color:var(--form-title);font:500 20px/1.3 var(--form-display-font);overflow-wrap:anywhere}
.profile-family__toolbar button{flex-shrink:0;min-height:44px}
.profile-family .bowtie-scroll{flex:1;min-height:0;height:auto}
@media(max-width:560px){.profile-family__toolbar{padding:12px 16px}.profile-family__toolbar h2{font-size:17px}}
