*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg,#f4f6fa);color:var(--ink,#20243b);font:16px/1.5 -apple-system,BlinkMacSystemFont,system-ui,sans-serif}a{color:var(--primary,#6741a5)}.wrap{max-width:960px;margin:auto;padding:18px}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0 18px}.brand{text-decoration:none;color:inherit;font-size:22px;font-weight:850;letter-spacing:-.04em}.brand small{display:block;font-size:10px;color:var(--secondary,#087f8c);letter-spacing:.15em}.nav{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.nav a{font-size:14px;font-weight:700;text-decoration:none}.hero{background:#17213d;color:white;border-radius:22px;overflow:hidden}.sky{height:170px;background:linear-gradient(#75d5e4,#f4b4a2);position:relative;overflow:hidden}.sun{position:absolute;width:72px;height:72px;right:15%;top:12%;background:#ffe5b0;border-radius:50%}.buildings{position:absolute;bottom:0;left:10%;right:10%;height:95px;background:linear-gradient(90deg,#f5b6a7 0 22%,#fff0d2 22% 48%,#9fe3d6 48% 70%,#f5c1a5 70%);border-radius:10px 10px 0 0}.palms{position:absolute;bottom:-16px;left:2%;right:2%;display:flex;justify-content:space-between;font-size:90px}.hero-body{padding:22px}.hero h1{font-size:clamp(28px,5vw,43px);margin:0}.hero p{margin:4px 0;color:#dbe8f1}.panel{background:var(--surface,white);border-radius:20px;padding:22px;margin:16px 0;box-shadow:0 3px 20px #18213b0b}.panel h2{margin:0 0 8px}.verse{font:italic 21px/1.5 Georgia,serif}.muted{color:var(--muted,#647088)}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.13em;color:var(--secondary,#087f8c);font-weight:800}.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.tile{background:var(--tile);color:white;text-decoration:none;padding:22px;border-radius:20px;min-height:140px;display:flex;flex-direction:column;justify-content:space-between}.tile strong{font-size:21px;line-height:1.2}.tile small{opacity:.9}.tile:last-child:nth-child(odd){grid-column:1/-1;min-height:95px}.topics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.topic{display:block;background:var(--surface,white);border:1px solid var(--border,#e0e4ec);border-radius:15px;padding:18px;text-decoration:none;color:var(--ink,#20243b);font-weight:750}.topic small{display:block;color:var(--muted,#647088);font-weight:400;margin-top:6px}.back{display:inline-block;margin:12px 0;text-decoration:none;font-weight:750}.btn{display:inline-block;background:var(--primary,#6741a5);color:white;padding:12px 17px;border-radius:13px;text-decoration:none;font-weight:750}.footer{padding:30px 0;color:var(--muted,#647088);font-size:13px;text-align:center}.breadcrumbs{font-size:14px;margin:8px 0 18px}.breadcrumbs a{text-decoration:none}.notice{border-left:4px solid var(--secondary,#087f8c);padding:12px 16px;background:var(--surface,white);border-radius:10px}.settings{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.settings select,.settings button{font:inherit;border:1px solid #cbd2df;border-radius:10px;padding:9px;background:var(--surface,white);color:var(--ink,#20243b)}@media(max-width:580px){.wrap{padding:13px}.tiles{gap:10px}.tile{padding:16px;min-height:132px}.tile strong{font-size:18px}.topics{grid-template-columns:1fr}.panel{padding:18px}.sky{height:135px}.palms{font-size:68px}}
/* V7: Miami Ocean Drive hero image, bundled locally for Netlify. */
.hero{background:#17213d url("miami-ocean-drive.jpg") center top/cover no-repeat;min-height:350px;display:flex;align-items:flex-end}
.hero-body{width:100%;padding:80px 24px 24px;background:linear-gradient(to bottom,transparent,rgba(13,24,51,.95));text-shadow:0 1px 3px rgba(0,0,0,.3)}
@media(max-width:600px){.hero{min-height:330px}.hero-body{padding:90px 20px 22px}}
/* V8: journal form and entries */
.hidden{display:none!important}
#journal-form label{display:block;font-weight:700;margin:15px 0 6px}
#journal-form input,#journal-form textarea,#journal-form select{display:block;width:100%;font:inherit;color:var(--ink,#20243b);background:var(--surface,#fff);border:1px solid #aeb7c9;border-radius:12px;padding:12px}
#journal-form textarea{resize:vertical}.journal-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px}.journal-actions button{cursor:pointer;font:inherit}.journal-secondary{background:transparent;color:var(--primary,#6741a5);border:1px solid #aeb7c9;border-radius:12px;padding:10px 14px;font-weight:700;cursor:pointer}.journal-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.journal-entry{padding:16px 0;border-top:1px solid var(--border,#e0e4ec)}.journal-entry h3{margin:0}.journal-meta{font-size:13px;margin:4px 0 12px}.journal-content{white-space:pre-wrap;overflow-wrap:anywhere}

/* Version 12: reflection-specific family conversations */
.conversation-shell{margin-top:18px;border-top:1px solid var(--border,#dce1eb);padding-top:14px}.conversation-shell h4{margin:0 0 8px}.conversation-status{font-size:13px}.conversation-comment{margin:10px 0;padding:12px;background:var(--bg,#f4f6fa);border-radius:12px;overflow-wrap:anywhere}.conversation-comment p{white-space:pre-wrap;margin:6px 0}.conversation-meta{font-size:12px;color:var(--muted,#647088);font-weight:700}.conversation-children{margin-left:15px;padding-left:10px;border-left:3px solid var(--secondary,#087f8c)}.conversation-actions{display:flex;gap:10px;flex-wrap:wrap}.conversation-actions button,.conversation-inline button{border:0;background:transparent;color:var(--primary,#6741a5);font:inherit;font-size:13px;font-weight:700;padding:5px;cursor:pointer}.conversation-form,.conversation-inline{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:12px}.conversation-form textarea,.conversation-inline textarea{width:100%;min-height:64px;border:1px solid #abb5c7;border-radius:10px;padding:10px;font:inherit;color:var(--ink,#20243b);background:var(--surface,#fff)}.conversation-form .conversation-button,.conversation-inline .conversation-button{background:var(--secondary,#087f8c);color:#fff;border:0;border-radius:10px;padding:9px 13px;font:inherit;cursor:pointer}.conversation-form button:disabled,.conversation-inline button:disabled{opacity:.5}

/* v19.3 — family directory cards; mobile-first */
.family-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:18px;margin-top:22px}
.family-member-card{background:#fff;border:1px solid #d9dce7;border-radius:20px;padding:22px;box-shadow:0 5px 18px rgba(23,33,61,.045);min-width:0}
.family-member-top{display:flex;align-items:center;gap:15px;margin-bottom:16px}
.family-member-avatar{width:62px;height:62px;min-width:62px;display:grid;place-items:center;border-radius:50%;background:#ece6f7;color:#6540a2;font-size:28px;font-weight:800}
.family-member-identity{min-width:0}.family-member-name{margin:0 0 5px;font-size:1.25rem;line-height:1.3;overflow-wrap:anywhere}
.family-member-role,.family-member-legal{color:#677188;margin:3px 0;font-size:.95rem}
.family-member-birthday,.family-member-no-birthday{margin:14px 0 18px;font-size:.98rem}
.family-member-no-birthday{color:#677188}
.family-member-button{width:100%;max-width:100%;text-align:center}
.family-member-expanded{border-top:1px solid #d9dce7;margin-top:20px;padding-top:15px;overflow-wrap:anywhere}
.family-member-expanded h4{margin:0 0 12px}.family-member-expanded p{line-height:1.55;margin:10px 0}
.family-directory-help{margin:0 0 10px}
@media(max-width:600px){.family-card-grid{grid-template-columns:1fr}.family-member-card{padding:20px}.family-member-avatar{width:54px;height:54px;min-width:54px}}

/* v19.4 — private family celebrations */
.celebrations-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px;margin-top:20px}
.celebration-card{border:1px solid #dcdce7;border-radius:20px;padding:20px;background:#fff;display:flex;flex-direction:column;gap:10px}
.celebration-top{display:flex;align-items:center;gap:12px}
.celebration-symbol{font-size:27px;background:#eee8f8;border-radius:50%;height:54px;width:54px;display:grid;place-items:center;flex:none}
.celebration-card h3{font-size:1.1rem;margin:0;color:#20253c}
.celebration-card p{margin:0}
.celebration-countdown{font-weight:700;color:#6741a5}
.celebration-today{border:2px solid #087f8c;background:#f2fcfc}
.celebration-help{font-size:.9rem;color:#667085}
