/* Composição editorial da home. Reutiliza a paleta e a tipografia originais do produto. */
.home-v2 {
    --home-surface:var(--h-surface,#231f28);
    --home-text:var(--h-text,#f4eee8);
    --home-muted:var(--h-muted,#b8abbc);
    --home-accent:var(--h-accent,#ddb8d5);
    --home-border:var(--h-border,#3c3342);
    --home-soft:var(--h-soft,#342a38);
    --home-focus:var(--h-accent,#ddb8d5);
    box-sizing:border-box; overflow-wrap:anywhere;
    width:100%; max-width:1420px; margin:0 auto;
    padding:36px clamp(24px,3vw,48px) 48px;
    color:var(--home-text); font:400 14px/1.6 var(--font-inter,Inter,system-ui,sans-serif);
}
.home-v2 *, .home-v2 *::before, .home-v2 *::after { box-sizing:border-box; }
.home-v2 :is(h1,h2,h3,p) { margin:0; }
.home-v2 :is(h1,h2) { color:var(--home-text); font-family:var(--h-serif,Georgia,serif); font-weight:400; letter-spacing:-.035em; }
.home-v2 h1 { font-size:34px; line-height:1.18; }
.home-v2 h2 { font-size:25px; line-height:1.25; }
.home-v2 h3 { font-size:17px; line-height:1.4; font-weight:600; letter-spacing:-.015em; }
.home-v2 :is(button,a) { font:inherit; touch-action:manipulation; }
.home-v2 button { color:inherit; cursor:pointer; background:transparent; border:0; text-align:left; white-space:normal; }
.home-v2 button:disabled { opacity:.6; cursor:wait; }
.home-v2 a { color:var(--home-accent); }
.home-v2 :is(button,a):focus-visible { outline:2px solid var(--home-focus); outline-offset:3px; }
.home-v2 small, .home-v2 .home-caption { font-size:13px; line-height:1.5; color:var(--home-muted); }
.home-v2 .home-eyebrow { font-size:12px; line-height:1.4; font-weight:600; letter-spacing:.14em; color:var(--h-rose,var(--home-accent)); text-transform:uppercase; }
.home-greeting { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:88px; margin-bottom:34px; }
.home-greeting p { margin-top:9px; color:var(--home-muted); font-size:14px; }
.home-presence { display:flex; align-items:center; gap:6px; margin-top:6px; color:var(--home-muted); font-size:13px; }
.home-presence::before { content:""; width:5px; height:5px; border-radius:50%; background:currentColor; opacity:.6; }
.home-couple-portrait { display:block; flex-shrink:0; width:88px; height:88px; padding:3px; border:1px solid var(--home-border); border-radius:23px; }
.home-couple-portrait img { display:block; width:100%; height:100%; border-radius:19px; object-fit:cover; }
.home-avatars { display:flex; align-items:center; flex-shrink:0; min-height:48px; text-decoration:none; }
.home-avatars :is(img,span) { width:48px; height:48px; display:grid; place-items:center; border-radius:50%; object-fit:cover; background:var(--home-soft); color:var(--home-accent); border:3px solid var(--h-bg); font-weight:600; }
.home-avatars>:nth-child(2) { margin-left:-12px; }
.home-composition { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); align-items:start; gap:32px; }
.home-primary-column,.home-couple,.home-discovery { display:flex; flex-direction:column; gap:26px; min-width:0; }
.home-moment-heading,.home-block-heading { display:grid; gap:5px; }
.home-block { min-width:0; }
.home-block-heading h2 { display:flex; align-items:center; gap:10px; }
.home-block-heading h2 .home-icon { width:20px; height:20px; }
.home-block-body { display:flex; flex-direction:column; align-items:stretch; gap:12px; min-width:0; }
.home-block:not(.home-block-editorial):not(.home-block-week) { background:var(--home-surface); border:1px solid var(--home-border); border-radius:18px; padding:20px; box-shadow:var(--h-shadow); }
.home-block-heading+.home-block-body { margin-top:16px; }
.home-block-editorial .home-block-heading+.home-block-body,.home-block-week .home-block-heading+.home-block-body { margin-top:16px; }
.home-block:is(.home-block-checkin,.home-block-memory,.home-block-sticker,.home-block-invitation) h2 { font:600 16px/1.4 var(--font-inter,Inter,sans-serif); letter-spacing:-.015em; }
.home-block-invitation h2 { font-size:14px; }
.home-block-invitation .home-block-heading+.home-block-body { margin-top:8px; }
.home-block-invitation .home-block-body>p { font-size:14px; line-height:1.6; color:var(--home-muted); }
.home-block-invitation .home-actions { margin-top:0; }
.home-block-invitation .home-secondary-action { background:transparent; border-color:transparent; padding-left:0; }
.home-moment-section { display:grid; gap:16px; }
.home-moment { padding:22px; background:var(--home-surface); border:1px solid var(--home-border); border-left:3px solid var(--home-accent); border-radius:18px; box-shadow:var(--h-shadow); }
.home-moment-copy { display:grid; grid-template-columns:38px minmax(0,1fr); align-items:start; gap:14px; }
.home-moment-symbol { display:grid; place-items:center; width:38px; height:38px; margin-top:23px; color:var(--home-accent); background:var(--home-soft); border-radius:12px; }
.home-moment-symbol .home-icon { width:18px; height:18px; }
.home-moment h3 { margin:5px 0 6px; }
.home-moment-description { color:var(--home-muted); font-size:14px; line-height:1.65; }
.home-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.home-moment .home-actions { margin-top:18px; justify-content:flex-end; }
.home-v2 :is(.home-primary-action,.home-secondary-action,.home-text-action) { display:inline-flex; align-items:center; justify-content:center; gap:7px; align-self:flex-start; min-height:44px; padding:9px 13px; border-radius:12px; font-size:13px; line-height:1.4; font-weight:500; text-decoration:none; }
.home-v2 .home-primary-action { background:var(--home-accent); color:var(--h-bg); font-weight:600; }
.home-primary-action .home-icon { color:inherit; }
.home-v2 .home-secondary-action { background:var(--home-soft); border:1px solid transparent; }
.home-secondary-action[aria-pressed="true"] { border-color:var(--home-accent); }
.home-v2 .home-text-action { color:var(--home-accent); padding-inline:4px; }
.home-actions .home-icon { width:16px; height:16px; }
.home-inline-feedback { font-size:13px; color:var(--home-muted); margin-top:12px!important; }
.home-icon { color:var(--home-accent); flex-shrink:0; }
.home-icon-action { display:inline-grid; place-items:center; flex:0 0 44px; width:44px; height:44px; min-height:44px; padding:0; border-radius:12px; }
.home-icon-action .home-icon { width:19px; height:19px; }
.home-quick-access { min-width:0; }
.home-quick-access h2 { margin-bottom:12px; font:600 15px/1.4 var(--font-inter,Inter,sans-serif); letter-spacing:0; }
.home-shortcuts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.home-shortcuts button { display:flex; flex-direction:column; align-items:flex-start; gap:10px; min-width:0; min-height:120px; padding:14px 12px; background:var(--home-surface); border:1px solid var(--home-border); border-radius:16px; transition:background .18s,border-color .18s; }
.home-shortcuts button:hover { border-color:color-mix(in srgb,var(--home-accent) 45%,var(--home-border)); background:var(--h-raised); }
.home-shortcuts button>.home-icon { width:32px; height:32px; padding:7px; border-radius:10px; background:var(--home-soft); }
.home-shortcuts button>span { display:grid; gap:4px; }
.home-shortcuts strong { font-size:13px; line-height:1.4; font-weight:600; }
.home-shortcuts small { font-size:13px; line-height:1.45; }
.home-inline-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.home-inline-heading p { color:var(--home-muted); font-size:13px; }
.home-checkin .home-block-heading+.home-block-body { margin-top:4px; }
.home-checkin .home-block-body>.home-text-action { padding-left:0; }
.home-mood-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.home-mood-options button { min-height:48px; padding:10px 8px; border:1px solid var(--home-border); border-radius:12px; font-size:13px; text-align:center; line-height:1.4; }
.home-mood-options button:hover,.home-mood-options button[aria-pressed="true"] { background:var(--home-soft); border-color:var(--home-accent); }
.home-week-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.home-week-list button { min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:10px; padding:16px 14px; background:var(--home-surface); border:1px solid var(--home-border); border-radius:16px; min-height:134px; }
.home-week-list button>.home-icon { width:19px; height:19px; }
.home-week-list button>span { display:flex; flex-direction:column; gap:5px; }
.home-week-list strong { font-weight:600; font-size:14px; line-height:1.4; }
.home-week-list small { font-size:13px; line-height:1.45; }
.home-sintonia-row { display:flex; align-items:flex-start; gap:10px; }
.home-sintonia-row>img { width:32px; height:32px; object-fit:cover; border-radius:50%; margin-top:8px; background:var(--home-soft); }
.home-sintonia { display:flex; flex-direction:column; align-items:flex-start; gap:6px; flex:1; min-width:0; padding:16px!important; border:1px solid var(--home-border)!important; border-radius:7px 17px 17px 17px; background:var(--home-surface)!important; }
.home-sintonia strong { font-weight:600; font-size:13px; }
.home-sintonia span { display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; font-size:14px; }
.home-v2 .home-list-link { display:flex; align-items:center; gap:12px; width:100%; min-height:52px; padding:14px 16px; background:var(--home-surface); border:1px solid var(--home-border); border-radius:15px; text-decoration:none; font-size:14px; }
.home-list-link .home-icon { width:20px; height:20px; }
.home-memory-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; padding:0; }
.home-memory-grid img { width:100%; height:auto; aspect-ratio:1; object-fit:cover; border-radius:10px; background:var(--home-soft); }
.home-block-memory .home-block-heading+.home-block-body { margin-top:8px; }
.home-sticker { display:flex; align-items:center; gap:14px; min-width:0; }
.home-sticker img { width:84px; height:84px; flex-shrink:0; object-fit:contain; }
.home-sticker>div { flex:1; min-width:0; }
.home-sticker p { font-size:14px; }
.home-sticker.is-new strong { color:var(--home-accent); font-size:13px; }
.home-answer-list { display:grid; gap:8px; }
.home-answer-list button { min-height:48px; padding:12px 14px; border:1px solid var(--home-border); border-radius:12px; font-size:14px; line-height:1.5; }
.home-answer-list button:hover { background:var(--home-soft); }
.home-question { font-weight:500; font-size:15px; line-height:1.6; }
.home-exploration { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); align-items:start; gap:32px; padding-top:12px; }
.home-readings { display:grid; gap:0; }
.home-reading { display:flex; align-items:center; gap:14px; min-height:92px; width:100%; padding:14px 0!important; border-bottom:1px solid var(--home-border)!important; }
.home-reading:first-child { padding-top:0!important; }
.home-reading img,.home-reading-placeholder { width:64px; height:64px; flex-shrink:0; object-fit:cover; background:var(--home-soft); border-radius:12px; }
.home-reading-placeholder { display:grid; place-items:center; }
.home-reading>span:not(.home-reading-placeholder) { display:grid; gap:6px; }
.home-reading strong { font-size:15px; line-height:1.5; font-weight:500; }
#home-install-slot { grid-column:1/-1; }
.home-block-skeleton { display:grid; gap:10px; min-height:62px; align-content:start; }
.home-block-skeleton span:not(.sr-only) { display:block; height:12px; width:90%; border-radius:5px; background:color-mix(in srgb,var(--home-muted) 10%,var(--home-surface)); animation:home-pulse 1.5s ease-in-out infinite; }
.home-block-skeleton span:last-child { width:58%; }
.home-block-week .home-block-skeleton { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.home-block-week .home-block-skeleton span:not(.sr-only) { height:134px; width:100%; border-radius:16px; border:1px solid var(--home-border); background:var(--home-surface); }
.home-block-memory .home-block-skeleton { min-height:44px; }
.home-block-invitation .home-block-skeleton { min-height:38px; }
.home-error { display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center; min-height:44px; color:var(--home-muted); font-size:13px; }
.home-cache-note { font-size:13px; color:var(--home-muted); }
.home-v2 [id] { scroll-margin-top:24px; }
.home-v2 .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@keyframes home-pulse { 50% { opacity:.45; } }
@media(min-width:1024px) { .home-v2 .home-eyebrow { font-size:13px; } }
@media(max-width:1279px) and (min-width:1024px) {
    .home-v2 { padding-inline:24px; }
    .home-composition,.home-exploration { gap:24px; }
    .home-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .home-shortcuts button { min-height:100px; }
    .home-week-list { gap:7px; }
    .home-week-list button { padding:13px 10px; }
    .home-moment-copy { grid-template-columns:minmax(0,1fr); }
    .home-moment-symbol { display:none; }
}
@media(max-width:1023px) {
    .home-v2 { max-width:760px; padding:24px 20px 32px; }
    .home-greeting { margin-bottom:24px; gap:16px; min-height:72px; }
    .home-v2 h1 { font-size:28px; }.home-v2 h2 { font-size:24px; }
    .home-greeting p { margin-top:6px; font-size:13px; }
    .home-couple-portrait { width:72px; height:72px; border-radius:20px; }
    .home-couple-portrait img { border-radius:16px; }
    .home-composition { grid-template-columns:minmax(0,1fr); gap:24px; }
    .home-primary-column { display:contents; }
    .home-today { order:1; }.home-checkin { order:2; }.home-couple { order:3; }.home-quick-access { order:4; }.home-discovery { order:5; }.home-exploration { order:6; }
    .home-couple,.home-discovery { gap:24px; }
    .home-exploration { grid-template-columns:minmax(0,1fr); gap:28px; }
    .home-v2 :is(.home-primary-action,.home-secondary-action,.home-text-action,.home-icon-action) { min-height:48px; }
    .home-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .home-shortcuts button { min-height:114px; padding:16px; }
    .home-moment { padding:18px; }
    .home-moment-copy { grid-template-columns:minmax(0,1fr); }
    .home-moment-symbol { display:none; }
    .home-moment-description { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
    .home-moment .home-actions { justify-content:flex-start; gap:4px 8px; margin-top:12px; }
    .home-moment .home-primary-action { flex:1; }.home-moment .home-secondary-action { flex:1; }
    .home-moment .home-text-action { margin-left:auto; }
}
@media(max-width:420px) {
    .home-v2 { padding:20px 16px 28px; }
    .home-v2 h1 { font-size:25px; }.home-v2 h2 { font-size:22px; }
    .home-greeting { align-items:flex-start; gap:12px; }.home-greeting p { max-width:228px; }
    .home-couple-portrait { width:60px; height:60px; }
    .home-avatars :is(img,span) { width:38px; height:38px; }
    .home-moment { padding:16px; }.home-moment h3 { font-size:16px; }
    .home-block:not(.home-block-editorial):not(.home-block-week) { padding:16px; }
    .home-week-list { gap:7px; }.home-week-list button { padding:14px 10px; }.home-week-list small { font-size:12px; }
    .home-mood-options button { font-size:12px; }
    .home-primary-column,.home-couple,.home-discovery { gap:22px; }
}
@media(prefers-reduced-motion:reduce) { .home-block-skeleton span { animation:none!important; } }

.home-moment-heading { grid-template-columns:minmax(0,1fr); grid-template-rows:auto auto; align-items:start; }
.home-sintonia-actions { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:4px 12px; }
.home-sintonia-actions .home-text-action .home-icon { width:18px; height:18px; }

.home-mood-options button { display:flex; align-items:center; justify-content:center; gap:7px; }
.home-mood-dot { width:5px; height:5px; border-radius:50%; background:var(--mood-color); flex:0 0 5px; opacity:.75; }
