.app-shell{min-height:100dvh;background:var(--bg)}.boot-shell{display:grid;min-height:100dvh;place-items:center;padding:1rem;background:var(--bg)}.boot-shell .state-card{width:min(100%,26rem)}.mobile-topbar{position:sticky;z-index:20;top:0;display:flex;min-height:3.6rem;align-items:center;justify-content:space-between;gap:.75rem;border-bottom:1px solid var(--hairline);padding:.45rem .9rem;background:rgb(13 14 21/86%);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.mobile-topbar__title{display:flex;min-width:0;flex:1 1;align-items:center;justify-content:center;flex-direction:column;gap:.12rem}.mobile-topbar__title strong{overflow:hidden;max-width:14rem;font-family:var(--font-display);font-size:1.02rem;letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap}.mobile-topbar .connection-status svg{flex:none}.mobile-topbar .connection-status{justify-content:center;max-width:100%;font-size:9px;gap:4px}.mobile-topbar .connection-status svg{width:11px;height:11px}.mobile-topbar .connection-status span{display:block;overflow:hidden;max-width:185px;text-overflow:ellipsis;white-space:nowrap}.mobile-topbar__logout{display:grid;width:2.75rem;height:2.75rem;place-items:center;border:1px solid var(--hairline);border-radius:var(--radius-input);color:var(--text-muted);background:transparent;cursor:pointer;transition:color .18s ease,border-color .18s ease}.mobile-topbar__logout:hover{color:var(--text);border-color:var(--text-muted)}.page-container{width:min(100%,74rem);margin:0 auto;padding:1.1rem 1rem 5.6rem}.bottom-nav{position:fixed;z-index:30;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));min-height:calc(3.9rem + env(safe-area-inset-bottom));border-top:1px solid var(--hairline);padding:.3rem max(.35rem,env(safe-area-inset-right)) max(.35rem,env(safe-area-inset-bottom)) max(.35rem,env(safe-area-inset-left));background:rgb(13 14 21/92%);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.bottom-nav__link{display:flex;min-width:0;min-height:3.3rem;align-items:center;justify-content:center;flex-direction:column;gap:.18rem;border-radius:var(--radius-input);color:var(--text-muted);font-size:.7rem;letter-spacing:.04em;text-decoration:none;transition:color .2s ease,background-color .2s ease}.bottom-nav__link svg{transition:transform .2s var(--ease-out)}.bottom-nav__link.is-active{color:var(--accent);background:var(--accent-soft)}.shell-toast{position:fixed;z-index:60;right:1rem;bottom:calc(4.6rem + env(safe-area-inset-bottom));left:1rem}.shell-toast .status-message{box-shadow:var(--shadow-float)}.side-rail{display:none}.brand-mark{display:inline-grid;flex:none;width:2.4rem;height:2.4rem;place-items:center;border:1px solid rgb(210 196 232/32%);border-radius:var(--radius-pill);color:var(--accent);background:transparent}.brand-mark svg{width:1.6rem;height:1.6rem}.brand-mark--compact{width:2.1rem;height:2.1rem}.public-brand{position:absolute;z-index:2;top:1.2rem;left:1.2rem;display:flex;align-items:center;gap:.65rem}.public-brand>span{display:grid;color:var(--text);font-family:var(--font-display);font-size:1.28rem;letter-spacing:.06em;line-height:1.3}.public-brand small{color:var(--text-muted);font-family:var(--font-body);font-size:.62rem;letter-spacing:.28em}.page-header{display:flex;flex-direction:column;gap:.9rem;margin:.6rem 0 1.4rem}.page-header__copy{min-width:0}.page-header h1{font-family:var(--font-display);overflow-wrap:anywhere;margin:.3rem 0 0;font-size:clamp(1.9rem,5vw,2.6rem);letter-spacing:.01em;line-height:1.2}.page-header p:not(.eyebrow){max-width:44rem;margin:.5rem 0 0;color:var(--text-muted)}.page-header__action .button{width:100%}.eyebrow{margin:0;color:var(--accent);font-size:.72rem;font-weight:650;letter-spacing:.2em}.back-link{display:inline-flex;align-items:center;gap:.32rem;color:var(--text-muted);font-size:.88rem;text-decoration:none;transition:color .18s ease}.back-link:hover{color:var(--text)}.section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.85rem}.conflict-card h2,.detail-card h2,.empty-card h2,.section-title h2,.surface-card h2{margin:0;font-size:1.22rem;letter-spacing:.01em}.section-link{flex:none;color:var(--accent);font-size:.85rem;text-decoration:none;transition:color .18s ease}.section-link:hover{color:var(--accent-strong)}.button,.icon-button,.quiet-button,.segmented-button,.setting-action{border:0;font:inherit;cursor:pointer}.button{display:inline-flex;min-height:2.75rem;align-items:center;justify-content:center;gap:.45rem;border-radius:var(--radius-pill);padding:.65rem 1.25rem;color:var(--bg);background:var(--accent);font-weight:650;text-decoration:none;transition:transform .12s ease,background-color .18s ease,opacity .18s ease}@media (hover:hover){.button:hover{background:var(--accent-strong)}}.button:active{transform:scale(.98)}.button:disabled{cursor:wait;opacity:.55;transform:none}.button--secondary{color:var(--accent);border:1px solid rgb(210 196 232/38%);background:var(--accent-soft)}.button--danger{color:var(--danger);border:1px solid rgb(248 144 124/38%);background:var(--danger-soft)}.button--wide{width:100%}.button-row{display:flex;flex-wrap:wrap;gap:.7rem}.button-row>*{flex:1 1 10rem}.quiet-button{display:inline-flex;min-height:2.6rem;align-items:center;gap:.42rem;border-radius:var(--radius-input);padding:.48rem .62rem;color:var(--text-muted);background:transparent;font-size:.9rem;transition:color .18s ease,background-color .18s ease}.quiet-button:hover{color:var(--text);background:rgb(255 255 255/5%)}.icon-button{display:grid;flex:none;width:2.4rem;height:2.4rem;place-items:center;border:1px solid var(--hairline);border-radius:var(--radius-pill);color:var(--text-muted);background:transparent;transition:color .18s ease,border-color .18s ease}.icon-button:hover{color:var(--text);border-color:var(--text-muted)}.form-stack{display:grid;gap:1.05rem}.field{display:grid;gap:.4rem}.field label,.field-label{color:var(--text);font-size:.88rem;font-weight:600}.field input,.field select,.field textarea,.search-input{width:100%;min-height:3.15rem;border:1px solid var(--hairline);border-radius:var(--radius-input);padding:.75rem .9rem;color:var(--text);background:rgb(255 255 255/4%);transition:border-color .16s ease,box-shadow .16s ease}.field textarea{min-height:8.5rem;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.search-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px rgb(210 196 232/18%)}.field input::placeholder,.field textarea::placeholder,.search-input::placeholder{color:rgb(170 167 184/60%)}.field-error,.field-help{margin:0;font-size:.82rem}.card-copy,.empty-card p,.field-help,.muted-copy{color:var(--text-muted)}.field-error{color:var(--danger);font-weight:600}.checkbox-field{display:flex;align-items:flex-start;gap:.65rem;border:1px solid var(--hairline);border-radius:var(--radius-card);padding:.8rem;background:rgb(255 255 255/3%)}.checkbox-field input{width:1.6rem;height:1.6rem;margin-top:.18rem;accent-color:var(--accent)}.status-message{margin:0;border:1px solid var(--hairline);border-radius:var(--radius-input);padding:.65rem .8rem;color:var(--text-muted);background:rgb(255 255 255/4%);font-size:.88rem}.status-message--success{color:var(--success);border-color:rgb(143 212 184/30%);background:var(--success-soft)}.status-message--error{color:var(--danger);border-color:rgb(248 144 124/30%);background:var(--danger-soft)}.together-strip{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem;margin:1.1rem 0;border:1px solid var(--hairline);border-radius:var(--radius-card);padding:.9rem 1rem;background:var(--surface)}.together-symbol{display:grid;flex:none;width:2.5rem;height:2.5rem;place-items:center;border:1px solid rgb(210 196 232/26%);border-radius:var(--radius-pill);color:var(--accent);background:var(--accent-soft)}.together-strip>div{flex:1 1;min-width:0}.together-strip strong{font-size:.88rem}.together-strip p{margin:.25rem 0 0;color:var(--text-muted);font-size:.76rem}.together-strip .button{flex:none;font-size:.8rem;padding:.55rem .8rem;white-space:nowrap}.detail-heading>svg,.list-card__top svg,.photo-heading>svg{flex:none;color:var(--text-muted)}.todo-status{flex:none;color:var(--accent)}.todo-status.is-done{color:var(--success)}.conflict-card,.detail-card,.empty-card,.form-card,.list-card,.state-card,.summary-card,.surface-card{border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface)}.conflict-card,.detail-card,.form-card,.surface-card{padding:clamp(1.05rem,3.5vw,1.5rem)}.form-card{width:min(100%,44rem)}.form-card--wide{width:100%}.card-grid{display:grid;gap:.8rem}.card-grid--summary{grid-template-columns:1fr}.summary-card{position:relative;min-height:8rem;padding:1.05rem}.summary-card__icon{display:grid;width:2.2rem;height:2.2rem;place-items:center;border:1px solid var(--hairline);border-radius:var(--radius-input);color:var(--accent);background:var(--accent-soft)}.summary-card strong{display:block;overflow-wrap:anywhere;margin-top:.8rem;color:var(--text);font-family:var(--font-display);font-weight:600;font-size:1.5rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.25}.summary-card small{display:block;margin-top:.25rem;color:var(--text-muted);font-size:.8rem}a.summary-card{color:inherit;text-decoration:none;transition:border-color .2s ease}a.summary-card:hover{border-color:rgb(210 196 232/42%)}.list-stack{display:grid;gap:.7rem}.list-card{display:block;padding:1rem;color:inherit;text-decoration:none;transition:border-color .2s ease,background-color .2s ease}.list-card:hover{border-color:rgb(210 196 232/40%);background:rgb(255 255 255/2.5%)}.detail-heading,.list-card__top,.photo-heading,.settings-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.list-card h2,.list-card h3{margin:0;overflow-wrap:anywhere;font-size:1.02rem;line-height:1.4}.list-card p{margin:.4rem 0 0;color:var(--text-muted);white-space:pre-wrap}.chip-row,.meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:.42rem;margin-top:.65rem}.meta-chip,.status-chip,.version-chip{display:inline-flex;align-items:center;gap:.3rem;border-radius:var(--radius-pill);padding:.24rem .58rem;color:var(--text-muted);background:rgb(255 255 255/6%);font-size:.74rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.status-chip--done{color:var(--success);background:var(--success-soft)}.status-chip--open{color:var(--accent);background:var(--accent-soft)}.list-card--completed .card-copy,.list-card--completed h2{opacity:.6}.list-card--completed h2{text-decoration:line-through}.empty-card,.state-card{display:grid;min-height:13rem;place-items:center;align-content:center;gap:.55rem;padding:2rem 1.2rem;text-align:center}.empty-card h2,.empty-card p,.state-card p{margin:0}.state-card--error{color:var(--danger);border-color:rgb(248 144 124/26%);background:rgb(248 144 124/6%)}.filter-row{display:flex;gap:.42rem;margin-bottom:1rem;overflow-x:auto;scrollbar-width:none}.segmented-button{flex:none;min-height:2.5rem;border-radius:var(--radius-pill);padding:.42rem .85rem;color:var(--text-muted);background:rgb(255 255 255/5%);transition:color .2s ease,background-color .2s ease}.segmented-button.is-active{color:var(--bg);background:var(--accent)}.dashboard-grid,.detail-stack,.settings-grid{display:grid;gap:1rem}.detail-heading h2{overflow-wrap:anywhere;font-size:clamp(1.4rem,5vw,1.9rem)}.detail-body{margin-top:1.1rem;color:var(--text);line-height:1.8;white-space:pre-wrap}.detail-body:empty:before{color:var(--text-muted);content:"没有补充内容"}.audit-line{margin:1.1rem 0 0;color:var(--text-muted);font-size:.78rem;line-height:1.65}.conflict-card{margin-top:1rem;border-color:rgb(248 144 124/36%);background:rgb(248 144 124/5%)}.conflict-card__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.conflict-card .eyebrow{color:var(--danger)}.conflict-card .muted-copy{margin:.6rem 0 1rem}.conflict-columns{display:grid;gap:.7rem;margin-bottom:1rem}.conflict-columns>div{min-width:0;border:1px solid var(--hairline);border-radius:var(--radius-card);padding:.85rem;background:rgb(255 255 255/3%)}.conflict-columns h3{margin:0 0 .6rem;font-size:.9rem}.conflict-columns dd,.conflict-columns dl{margin:0}.conflict-columns dl{display:grid;gap:.6rem}.conflict-columns dt{color:var(--text-muted);font-size:.72rem}.conflict-columns dd{overflow-wrap:anywhere;white-space:pre-wrap}.connection-status{display:inline-flex;align-items:center;gap:.35rem;color:var(--text-muted);font-size:.72rem}.connection-status--live{color:var(--success)}.connection-status--offline{color:var(--danger)}.calendar-layout{display:grid;gap:1rem}.calendar-card{min-width:0}.calendar-toolbar{display:grid;grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;align-items:center;gap:.5rem;margin-bottom:1rem}.calendar-toolbar h2{margin:0;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.calendar-arrow{color:var(--text-muted);background:rgb(255 255 255/4%)}.calendar-arrow:hover{color:var(--accent)}.calendar-arrow:disabled,.calendar-day:disabled{cursor:default;opacity:.38}.calendar-grid,.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{color:var(--text-muted);font-size:.68rem;text-align:center}.calendar-weekdays span{min-width:0;padding:.32rem 0}.calendar-grid{overflow:hidden;border:1px solid var(--hairline);border-radius:var(--radius-card)}.calendar-day{position:relative;display:flex;min-width:0;min-height:3.6rem;align-items:flex-start;flex-direction:column;gap:.2rem;border:0;border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);padding:.32rem .14rem;color:var(--text);background:transparent;cursor:pointer;transition:background-color .18s ease}.calendar-day:nth-child(7n){border-right:0}.calendar-day:hover{background:rgb(255 255 255/3%)}.calendar-day.is-outside{color:rgb(170 167 184/42%)}.calendar-day.is-selected{background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent)}.calendar-day.is-today .calendar-day__number{color:var(--bg);background:var(--accent)}.calendar-day__number{display:grid;width:1.5rem;height:1.5rem;place-items:center;border-radius:var(--radius-pill);font-size:.76rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.calendar-day__events{display:grid;width:100%;gap:.12rem}.calendar-day__events i{overflow:hidden;border-radius:4px;padding:.06rem .14rem;color:var(--accent);background:rgb(210 196 232/14%);font-size:.56rem;font-style:normal;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.calendar-agenda{min-width:0}.calendar-event-card p{display:flex;align-items:flex-start;gap:.35rem}.calendar-event-card p svg{flex:none;margin-top:.14rem}.calendar-time-fields{display:grid;gap:1rem}.home-calendar-list{display:grid;gap:.7rem}.moment-group{margin-bottom:1.6rem}.moment-group__date{margin:0 0 .7rem;color:var(--text-muted);font-size:.86rem;font-weight:500;letter-spacing:.14em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.moment-group__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.moment-tile{position:relative;display:flex;align-items:flex-end;overflow:hidden;aspect-ratio:1;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--overlay);color:inherit;text-decoration:none}.moment-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .3s var(--ease-out)}.moment-tile__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgb(13 14 21/0) 45%,rgb(13 14 21/78%))}.moment-tile__copy{position:relative;display:grid;gap:.15rem;padding:.7rem .8rem}.moment-tile__copy strong{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--text);font-family:var(--font-display);font-size:.98rem;line-height:1.35}.moment-tile__copy small{display:inline-flex;align-items:center;gap:.28rem;color:rgb(242 243 245/72%);font-size:.72rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.moment-tile--text{grid-column:1/-1;aspect-ratio:auto;flex-direction:column;align-items:stretch;justify-content:space-between;gap:.5rem;padding:1rem;background:var(--surface)}.moment-tile--text strong{font-family:var(--font-display);font-size:1.05rem;line-height:1.4}.moment-tile--text p{margin:0;color:var(--text-muted);font-size:.84rem;line-height:1.7}.moment-tile--text small{display:inline-flex;align-items:center;gap:.28rem;color:var(--text-muted);font-size:.72rem}@media (hover:hover){.moment-tile:hover img{transform:scale(1.025)}.moment-tile--text:hover{border-color:rgb(210 196 232/40%)}}.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-top:1rem}.photo-card{position:relative;overflow:hidden;aspect-ratio:1;margin:0;border-radius:var(--radius-card);background:var(--overlay)}.photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .3s var(--ease-out)}@media (hover:hover){.moment-cover:hover,.photo-card:hover img{transform:scale(1.025)}}.photo-card__delete{position:absolute;top:.4rem;right:.4rem;display:grid;width:2.35rem;height:2.35rem;place-items:center;border:0;border-radius:var(--radius-pill);color:#fff;background:rgb(5 7 10/68%);cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.photo-card--lead{grid-column:1/-1;aspect-ratio:16/10}.photo-card__broken{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:.4rem;padding:.8rem;color:var(--text-muted);text-align:center}.photo-card__broken p{margin:0;font-size:.8rem}.photo-card__broken .button{min-height:2.2rem;padding:.35rem .7rem;font-size:.8rem}.moment-cover{display:block;width:calc(100% + 2rem);max-width:calc(100% + 2rem);aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-card) var(--radius-card) 0 0;margin:-1rem 0 .9rem;transition:transform .3s var(--ease-out)}.upload-zone{display:grid;gap:.65rem;margin-top:1rem}.upload-picker{position:relative;display:grid;min-height:7rem;place-items:center;border:1px dashed rgb(210 196 232/40%);border-radius:var(--radius-card);padding:.8rem;background:var(--accent-soft);transition:background-color .2s ease}.upload-picker:hover{background:rgb(210 196 232/18%)}.upload-picker:focus-within{border-color:var(--accent);outline:none}.upload-picker:has(input:disabled){opacity:.6}.upload-picker input[type=file]{position:absolute;z-index:2;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-picker input[type=file]:disabled{cursor:wait}.upload-picker label{display:flex;flex-direction:column;align-items:center;gap:.28rem;color:var(--accent);pointer-events:none}.upload-picker label strong{color:var(--text);font-size:.92rem}.upload-picker label span{color:var(--text-muted);font-size:.74rem}.photo-heading h2,.settings-heading h2{margin:0}.relationship-card{margin-bottom:1rem;padding:1.3rem}.relationship-card .section-title h2{margin:.25rem 0 0;font-size:1.5rem}.pairing-badge{display:inline-flex;flex:none;align-items:center;gap:.32rem;border-radius:var(--radius-pill);padding:.34rem .68rem;color:var(--text-muted);background:rgb(255 255 255/6%);font-size:.74rem}.pairing-badge.is-paired{color:var(--success);background:var(--success-soft)}.couple-members{display:grid;grid-template-columns:minmax(0,1fr) 2rem minmax(0,1fr);align-items:center;gap:.6rem;margin:1.2rem 0}.person-card{min-width:0;padding:1rem .6rem;text-align:center}.person-avatar{display:grid;width:3.6rem;height:3.6rem;margin:0 auto .7rem;place-items:center;border:1px solid rgb(210 196 232/30%);border-radius:var(--radius-pill);color:var(--accent-strong);background:var(--accent-soft);font-family:var(--font-display);font-size:1.4rem}.person-avatar--partner{border-color:rgb(143 212 184/30%);color:var(--success);background:var(--success-soft)}.person-role{color:var(--text-muted);font-size:.68rem;letter-spacing:.12em}.person-card h3{overflow-wrap:anywhere;margin:.35rem 0;font-size:1.05rem}.person-card p{overflow-wrap:anywhere;margin:.4rem 0 .8rem;color:var(--text-muted);font-size:.72rem}.person-card .quiet-button{font-size:.8rem}.person-card.is-waiting .person-avatar{border:1px dashed var(--hairline);color:var(--text-muted);background:transparent}.pair-connector{display:grid;color:var(--text-muted);place-items:center}.relationship-note{display:flex;align-items:center;justify-content:center;gap:.35rem;margin:0;color:var(--text-muted);font-size:.72rem;text-align:center}.settings-summary-grid{display:grid;gap:1rem}.settings-summary{display:flex;flex-direction:column}.settings-summary .settings-heading{justify-content:flex-start;gap:.75rem}.setting-icon{display:grid;flex:none;width:2.6rem;height:2.6rem;place-items:center;border:1px solid var(--hairline);border-radius:var(--radius-input);color:var(--accent);background:var(--accent-soft)}.settings-summary h2{margin:0;font-size:1.15rem}.settings-summary dl{margin:1.1rem 0}.settings-summary dl>div{display:flex;justify-content:space-between;gap:1rem;margin:.6rem 0;font-size:.86rem}.settings-summary dt{flex:none;color:var(--text-muted)}.settings-summary dd{margin:0;overflow-wrap:anywhere;text-align:right}.setting-action{display:flex;width:100%;align-items:center;justify-content:space-between;gap:1rem;margin-top:auto;border-top:1px solid var(--hairline);padding:.85rem 0 0;color:var(--accent);text-align:left;font-size:.86rem;transition:color .18s ease}.setting-action:hover{color:var(--accent-strong)}.invite-box{display:grid;gap:.65rem;margin-top:1rem;border:1px solid var(--hairline);border-radius:var(--radius-card);padding:.85rem;background:rgb(255 255 255/3%)}.invite-link{overflow-wrap:anywhere;color:var(--accent);font-size:.85rem}.pairing-steps{margin:0 0 1rem;padding-left:1.3rem;color:var(--text-muted);line-height:1.8}.entry-actions{margin:1rem 0}.home-modal{width:min(34rem,calc(100% - 2rem));max-height:calc(100dvh - 2rem);margin:auto;border:1px solid var(--hairline);border-radius:var(--radius-card);padding:1.5rem;overflow-y:auto;color:var(--text);background:var(--overlay);box-shadow:var(--shadow-float);animation:modal-enter .26s var(--ease-out)}.home-modal::backdrop{background:var(--scrim);animation:backdrop-enter .22s ease}.home-modal.is-closing{animation:modal-exit .18s ease forwards}.home-modal.is-closing::backdrop{animation:backdrop-exit .18s ease forwards}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.modal-heading h2{margin:.4rem 0 0;font-size:1.55rem}.modal-heading .eyebrow{font-size:.62rem}.modal-description{margin:.3rem 0 1.3rem;color:var(--text-muted);font-size:.86rem}.modal-content .conflict-card{margin-top:1rem;padding:1rem}.modal-footer{margin-top:1rem;text-align:center}.spin{animation:home-spin .9s linear infinite}.page-header{animation:page-arrive .38s var(--ease-out) backwards}@keyframes page-arrive{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-arrive{0%{opacity:0}to{opacity:1}}@keyframes modal-enter{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modal-exit{to{opacity:0;transform:translateY(8px) scale(.99)}}@keyframes backdrop-enter{0%{opacity:0}to{opacity:1}}@keyframes backdrop-exit{to{opacity:0}}@keyframes home-spin{to{transform:rotate(1turn)}}@media (min-width:48rem){.page-container{padding:1.6rem 1.8rem 3rem}.page-header{align-items:flex-end;flex-direction:row;justify-content:space-between}.page-header__action .button{width:auto}.card-grid--summary,.conflict-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-time-fields,.home-calendar-list{grid-template-columns:repeat(2,minmax(0,1fr))}.moment-group__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.settings-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shell-toast{bottom:1.5rem}}@media (min-width:68.75rem){.app-shell{display:grid;grid-template-columns:14rem minmax(0,1fr);grid-template-areas:"rail main"}.app-main{grid-area:main;min-width:0}.side-rail{grid-area:rail;position:sticky;top:0;display:flex;height:100dvh;flex-direction:column;border-right:1px solid rgb(255 255 255/6%);background:linear-gradient(180deg,#12131d,var(--bg) 72%);padding:2rem 1.15rem 1.2rem}.side-brand{display:flex;align-items:center;gap:.7rem;margin-bottom:2.4rem;color:inherit;text-decoration:none}.side-brand>span{display:grid;min-width:0}.side-brand small,.side-brand strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-brand strong{font-family:var(--font-display);font-size:1.2rem;letter-spacing:.02em}.side-brand small{margin-top:.15rem;color:var(--text-muted);font-size:.72rem}.side-rail nav{display:grid;gap:.25rem}.nav-link{display:flex;min-height:3.2rem;align-items:center;gap:.65rem;border-radius:var(--radius-input);padding:.55rem .75rem;color:var(--text-muted);text-decoration:none;transition:color .2s ease,background-color .2s ease}.nav-link:hover{color:var(--text);background:rgb(255 255 255/4%)}.nav-link.is-active{color:var(--accent);background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.side-rail__foot{display:grid;gap:.5rem;margin-top:auto;padding-top:1rem}.bottom-nav,.mobile-topbar{display:none}.page-container{padding:2.4rem clamp(2rem,4vw,4rem) 4rem}.shell-toast{right:1.5rem;bottom:1.5rem;left:auto;width:min(24rem,calc(100vw - 3rem))}.dashboard-grid{grid-template-columns:minmax(0,1.15fr) minmax(18rem,.85fr)}.calendar-layout{grid-template-columns:minmax(0,1.55fr) minmax(18rem,.7fr);align-items:start}.calendar-day{min-height:5.6rem}.calendar-day__events i{font-size:.66rem}.card-grid--summary{grid-template-columns:repeat(4,minmax(0,1fr))}.settings-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.moment-group__grid,.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.side-rail__caption{margin:0 0 1rem .75rem;color:#797588;font-size:.59rem;letter-spacing:.2em}.side-brand__tag{display:inline-block;margin-left:.5rem;color:var(--text-muted);font-family:var(--font-body);font-size:.58rem;letter-spacing:.08em;font-weight:400}.form-card{max-width:44rem;padding:clamp(1.3rem,4vw,2.6rem);background:linear-gradient(145deg,rgb(210 196 232/4%),transparent 48%),var(--surface)}.form-card .button-row{margin-top:.8rem;padding-top:1.4rem;border-top:1px solid var(--hairline)}.field select option{color:var(--text);background:var(--surface)}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--danger)}@media (hover:hover){.bottom-nav__link:hover svg,.nav-link:hover svg{transform:translateY(-2px)}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.button:active,.moment-cover:hover,.photo-card:hover img{transform:none}}.public-shell{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,440px);gap:8%;min-height:100dvh;align-items:center;isolation:isolate;overflow:hidden;padding:100px 7% 60px;background:var(--bg)}.public-scene{z-index:-2}.public-shell .public-scene .space-scene__art{object-position:70% center;opacity:.85}.public-shell:after{position:absolute;z-index:-1;inset:0;content:"";background:linear-gradient(90deg,rgb(13 14 21/12%) 10%,rgb(13 14 21/6%) 40%,rgb(13 14 21/86%));pointer-events:none}.public-brand{top:34px;left:7%;gap:12px}.public-brand>span{font-size:23px}.public-brand small{font-size:9px;letter-spacing:.14em;margin-top:6px}.public-intro{position:relative;align-self:center;padding-bottom:130px}.public-intro .eyebrow{color:#c5bbd5;font-size:10px;letter-spacing:.25em}.public-intro h2{font-size:clamp(48px,5vw,76px);font-weight:400;line-height:1.26;letter-spacing:.02em;margin:28px 0 24px}.public-intro>p:not(.eyebrow){font-size:14px;color:#c3bdd0;line-height:2}.public-intro__note{display:block;margin-top:56px;color:#aaa1b8;font-size:9px;letter-spacing:.17em}.public-shell .auth-card{width:100%;position:relative;padding:36px;background:rgb(22 22 32/78%);border:1px solid rgb(222 207 246/12%);border-radius:22px;box-shadow:0 30px 90px rgb(0 0 0/22%);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);animation:public-arrive .65s var(--ease-out) backwards}.auth-card .eyebrow{color:var(--text-muted);font-size:11px;letter-spacing:.13em}.auth-card h1{font-size:28px;font-weight:400;line-height:1.4;margin:12px 0 0}.auth-card__intro{font-size:12px;color:var(--text-muted);line-height:1.9;margin:13px 0 26px}.auth-card .form-stack{gap:17px}.auth-card .field label{font-size:12px;font-weight:400;color:#cbc5d5}.auth-card .field input{background:rgb(255 255 255/2%);border-color:rgb(222 207 246/15%)}.auth-card .button--wide{margin-top:7px;min-height:48px}.auth-card .field-help{font-size:11px;line-height:1.8}.auth-card .field-help svg{vertical-align:middle;margin-right:4px}.public-shell .entry-guide{margin-top:27px;border-top:1px solid rgb(222 207 246/12%);padding-top:23px}.entry-guide h2{font-family:var(--font-body);font-size:12px;font-weight:500;margin:0 0 10px;color:#d8d0e2}.entry-guide p{font-size:11px;color:#b2aabd;line-height:1.9;margin:7px 0 0}.entry-guide strong{color:#d2c8df;font-weight:500}.invite-closed{display:grid;justify-items:start;gap:7px}.invite-closed>svg{color:var(--accent);margin-bottom:10px}.invite-closed .button{margin-top:18px}@keyframes public-arrive{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1099px) and (min-width:768px){.public-shell{gap:4%;padding:90px 5% 40px;grid-template-columns:minmax(0,1fr) minmax(330px,400px)}.public-brand{left:5%}.public-intro h2{font-size:48px}}@media (max-width:767px){.public-shell{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:100px 20px 36px;overflow:hidden}.public-brand{top:25px;left:24px}.public-intro{align-self:stretch;padding:20px 8px 26px}.public-intro .eyebrow{font-size:8px}.public-intro h2{font-size:36px;line-height:1.25;margin:14px 0 12px}.public-intro h2 br{display:none}.public-intro>p:not(.eyebrow){font-size:12px;margin:0;line-height:1.8}.public-intro__note{display:none}.public-shell .auth-card{padding:26px 23px;background:rgb(22 22 32/90%)}.auth-card h1{font-size:24px}.auth-card__intro{margin-bottom:22px}.public-scene{position:absolute;height:680px}.public-shell .public-scene .space-scene__art{object-position:64% center;opacity:.62}.public-shell:after{background:linear-gradient(180deg,transparent 0,rgb(13 14 21/25%) 300px,var(--bg) 660px)}}@media (max-width:350px){.public-shell{padding-left:12px;padding-right:12px}.public-intro h2{font-size:31px}.public-shell .auth-card{padding:24px 18px}}@media (prefers-reduced-motion:reduce){.public-shell .auth-card{animation:none}}