:root{color-scheme:light;--bg: #f8f4ef;--bg-warm: #f3ebe3;--surface: rgba(255, 255, 255, .72);--surface-strong: #fffaf6;--app-bg: #f8f4ef;--bg-elevated: rgba(255, 252, 248, .9);--surface-primary: rgba(255, 250, 246, .76);--surface-secondary: rgba(248, 237, 231, .68);--surface-interactive: rgba(255, 250, 246, .84);--surface-selected: rgba(240, 216, 212, .68);--text: #2f211c;--muted: #806f67;--soft: #a8958d;--text-primary: #2f211c;--text-secondary: #6f5f58;--text-muted: #9a8580;--rose: #cf7f84;--rose-dark: #a85d64;--accent: #b96c75;--accent-hover: #a85d64;--accent-pressed: #914d55;--accent-contrast: #fffaf6;--blush: #f0d8d4;--lavender: #ddd4ea;--champagne: #ead7bd;--taupe: #b9a59a;--success: #758f69;--error: #a85d64;--warning: #b8864f;--focus-ring: rgba(207, 127, 132, .34);--border: rgba(86, 61, 51, .12);--border-subtle: rgba(86, 61, 51, .1);--border-strong: rgba(86, 61, 51, .2);--shadow: 0 24px 70px rgba(92, 65, 54, .14);--shadow-strong: 0 34px 90px rgba(92, 65, 54, .2);--shadow-soft: 0 12px 34px rgba(92, 65, 54, .1);--shadow-card: 0 18px 50px rgba(92, 65, 54, .13);--radius: 28px;--radius-sm: 18px;--radius-md: 24px;--radius-card: 26px;--radius-control: 18px;--space-1: 6px;--space-2: 10px;--space-3: 14px;--space-4: 18px;--space-5: 24px;--duration: .22s;--ease-out: cubic-bezier(.2, .8, .2, 1);--nav-height: 82px;--safe-bottom: max(96px, env(safe-area-inset-bottom));font-family:DM Sans,Manrope,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{color-scheme:dark;--bg: #211617;--bg-warm: #2a1c1f;--surface: rgba(52, 36, 39, .78);--surface-strong: #342428;--app-bg: #211617;--bg-elevated: rgba(58, 39, 43, .9);--surface-primary: rgba(52, 35, 39, .78);--surface-secondary: rgba(65, 43, 48, .62);--surface-interactive: rgba(72, 47, 52, .68);--surface-selected: rgba(122, 72, 82, .44);--text: #fff2eb;--muted: #d5bcb8;--soft: #bfa6a3;--text-primary: #fff2eb;--text-secondary: #d5bcb8;--text-muted: #b99f9c;--rose: #d58c94;--rose-dark: #f0a8ae;--accent: #d58c94;--accent-hover: #e5a0a7;--accent-pressed: #bd767f;--accent-contrast: #211617;--blush: #6a454b;--lavender: #62506d;--champagne: #c3a376;--taupe: #9b8580;--success: #aac08f;--error: #f0a1a8;--warning: #d2aa72;--focus-ring: rgba(240, 168, 174, .36);--border: rgba(255, 231, 220, .13);--border-subtle: rgba(255, 231, 220, .11);--border-strong: rgba(255, 231, 220, .22);--shadow: 0 24px 70px rgba(4, 0, 2, .34);--shadow-strong: 0 34px 90px rgba(4, 0, 2, .46);--shadow-soft: 0 12px 34px rgba(4, 0, 2, .25);--shadow-card: 0 18px 52px rgba(4, 0, 2, .32)}:root[data-theme=light]{color-scheme:light}*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{min-height:100vh;margin:0;color:var(--text);background:radial-gradient(circle at 14% 8%,rgba(240,216,212,.68),transparent 25rem),radial-gradient(circle at 86% 12%,rgba(234,215,189,.58),transparent 28rem),radial-gradient(circle at 52% 96%,rgba(207,127,132,.14),transparent 28rem),linear-gradient(145deg,#fbf7f2 0%,var(--bg) 48%,var(--bg-warm) 100%);overflow-x:hidden;text-rendering:optimizeLegibility}button,input,textarea,select{font:inherit}button{min-height:46px;border:0;border-radius:999px;color:inherit;cursor:pointer;transition:transform var(--duration) ease,box-shadow var(--duration) ease,background var(--duration) ease,border-color var(--duration) ease,opacity var(--duration) ease}button:hover{transform:translateY(-2px)}button:active{transform:translateY(1px) scale(.99)}button:disabled{cursor:not-allowed;opacity:.62;transform:none}button:disabled:hover{transform:none}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid rgba(207,127,132,.28);outline-offset:3px}input,textarea,select{width:100%;min-height:52px;border:1px solid var(--border);border-radius:18px;padding:0 16px;color:var(--text);background:#fffaf6eb;box-shadow:inset 0 1px #ffffffe6}textarea{min-height:116px;padding:14px 16px;resize:vertical;line-height:1.55}select{appearance:none;padding-right:42px;background:linear-gradient(45deg,transparent 50%,var(--rose-dark) 50%) calc(100% - 23px) 50% / 7px 7px no-repeat,linear-gradient(135deg,#ffffffe6,#fffaf6ad)}.screen{min-height:100vh;position:relative;padding:max(18px,env(safe-area-inset-top)) 16px var(--safe-bottom)}.shell{width:min(1180px,100%);margin:0 auto;position:relative;z-index:1}.ambient-bg{position:fixed;inset:0;pointer-events:none;overflow:hidden}.ambient-bg:before,.ambient-bg:after{content:"";position:absolute;border-radius:999px;filter:blur(56px);opacity:.68}.ambient-bg:before{width:22rem;height:22rem;left:-6rem;top:10rem;background:#cf7f8433}.ambient-bg:after{width:28rem;height:28rem;right:-9rem;top:5rem;background:#ead7bd8f}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 26px}.brand{min-height:48px;display:inline-flex;align-items:center;gap:10px;padding:6px 16px 6px 8px;border:1px solid rgba(86,61,51,.1);background:#fffaf6b8;box-shadow:0 12px 30px #5c413614;backdrop-filter:blur(18px);font-weight:780;letter-spacing:0}.logo-image{width:100%;height:100%;object-fit:contain;object-position:center;display:block}.brand-logo-frame{width:36px;height:36px;border-radius:12px;overflow:hidden;flex:0 0 36px}.network{min-height:40px;display:inline-flex;align-items:center;gap:8px;padding:0 14px;border:1px solid rgba(86,61,51,.1);border-radius:999px;background:#fffaf69e;color:var(--muted);box-shadow:0 12px 30px #5c413612;backdrop-filter:blur(18px);font-size:.9rem}.network:before{content:"";width:7px;height:7px;border-radius:999px;background:#8dae7b;box-shadow:0 0 0 5px #8dae7b24}.network.offline:before{background:#c79b62;box-shadow:0 0 0 5px #c79b6229}.glass{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(145deg,#ffffffd1,#fffaf68f),#ffffff94;box-shadow:var(--shadow);backdrop-filter:blur(22px);padding:clamp(22px,4vw,44px)}.welcome-card{min-height:min(76vh,760px);display:grid;grid-template-columns:minmax(0,1.02fr) minmax(360px,.98fr);align-items:center;gap:clamp(28px,6vw,78px);padding:clamp(24px,5vw,56px);overflow:hidden;position:relative}.welcome-card:before{content:"";position:absolute;inset:18px;border-radius:calc(var(--radius) - 10px);border:1px solid rgba(255,255,255,.54);pointer-events:none}.hero-copy{max-width:560px;position:relative;z-index:1}.status-pill{width:fit-content;display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 13px;border:1px solid rgba(168,93,100,.16);border-radius:999px;background:#f0d8d475;color:var(--rose-dark);font-size:.84rem;font-weight:760}.status-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--rose)}h1{max-width:11.5ch;margin:16px 0;font-size:clamp(2.75rem,6.4vw,5.9rem);line-height:.92;letter-spacing:-.035em;font-weight:820}h2{margin:0 0 14px;color:var(--text);font-size:1.05rem;font-weight:760}h3{margin:0;color:var(--text);font-size:.98rem;font-weight:760}p{color:var(--muted);line-height:1.68}.lede{max-width:34rem;margin:0 0 24px;font-size:clamp(1.04rem,1.8vw,1.22rem);color:var(--muted)}.notice,.form-status{color:var(--rose-dark)}.form-status{min-height:1.4em}.actions-row,.split-actions{display:flex;gap:12px;flex-wrap:wrap;width:100%;margin:0 0 24px}.primary,.secondary,.ghost,.danger{padding:0 22px;font-weight:760;letter-spacing:-.01em}.primary{color:#fffaf6;background:linear-gradient(180deg,rgba(255,255,255,.2),transparent),linear-gradient(135deg,var(--rose),var(--rose-dark));box-shadow:0 16px 34px #a85d643d,inset 0 1px #ffffff47}.primary:hover{box-shadow:0 20px 44px #a85d644d,inset 0 1px #ffffff4d}.secondary{color:var(--rose-dark);border:1px solid rgba(168,93,100,.16);background:linear-gradient(145deg,#f0d8d485,#fffaf6c7);box-shadow:0 12px 28px #5c413614,inset 0 1px #ffffffbf}.ghost{color:var(--text);border:1px solid rgba(86,61,51,.13);background:#fffaf6c7;box-shadow:0 12px 28px #5c413614,inset 0 1px #ffffffbf}.danger{color:var(--rose-dark);border:1px solid rgba(168,93,100,.18);background:#fff5f4d6}.icon,.nav-icon,.stat-icon{width:20px;height:20px;flex:0 0 auto}.feature-strip{display:flex;flex-wrap:wrap;gap:10px}.feature-card{min-height:42px;display:inline-flex;align-items:center;gap:8px;padding:0 14px;border:1px solid rgba(86,61,51,.1);border-radius:999px;background:#fffaf69e;color:var(--text);box-shadow:0 10px 24px #5c413612;font-size:.92rem}.feature-card span{color:var(--rose);font-size:.88rem}.hero-art{min-height:560px;position:relative;display:grid;place-items:center}.hero-art:before,.hero-art:after{content:"";position:absolute;border-radius:999px;filter:blur(24px)}.hero-art:before{width:82%;aspect-ratio:1;background:radial-gradient(circle,rgba(240,216,212,.74),rgba(234,215,189,.28) 58%,transparent 72%);animation:breathe 4.8s ease-in-out infinite}.hero-art:after{width:56%;aspect-ratio:1;background:#ffffff80}.welcome-logo{position:relative;z-index:2;width:min(470px,92%);aspect-ratio:1;height:auto;border-radius:34px;box-shadow:var(--shadow-strong);overflow:hidden;background:#fffaf66b}.logo-orbit{position:absolute;z-index:1;width:min(520px,98%);aspect-ratio:1;border-radius:42px;border:1px solid rgba(86,61,51,.1);background:linear-gradient(145deg,#ffffff9e,#ffffff2e);box-shadow:inset 0 1px #ffffffb8,var(--shadow)}.logo-orbit span{position:absolute;width:62px;height:62px;border-radius:50%;background:#f0d8d49e;filter:blur(2px)}.logo-orbit span:first-child{left:28px;top:58px}.logo-orbit span:last-child{right:34px;bottom:72px;background:#ead7bdb3}.float-heart{position:absolute;z-index:3;color:var(--rose);font-size:1.25rem;opacity:.68;animation:floatSoft 4.2s ease-in-out infinite}.heart-one{right:7%;top:20%}.heart-two{left:10%;bottom:24%;animation-delay:1s}.connection-visual{position:absolute;z-index:3;left:50%;bottom:10px;transform:translate(-50%);display:flex;align-items:center;gap:8px;min-height:38px;padding:0 12px;border:1px solid rgba(86,61,51,.1);border-radius:999px;background:#fffaf6c2;box-shadow:0 16px 34px #5c41361f}.connection-visual span{width:11px;height:11px;border-radius:50%;background:var(--rose);box-shadow:0 0 0 6px #cf7f841f}.connection-visual i{width:54px;height:1px;background:linear-gradient(90deg,var(--rose),var(--champagne),var(--rose))}.auth-heading{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;margin-bottom:18px}.panel-logo{width:104px;height:104px;border-radius:24px;box-shadow:0 18px 40px #5c413621;overflow:hidden;background:#fffaf670}.stack{display:grid;gap:14px;width:min(420px,100%)}.auth-form,.password-settings-form{width:100%}.auth-helper{margin:0;color:var(--muted);font-size:.92rem;line-height:1.45}.field{display:grid;gap:8px;color:var(--muted);font-weight:720}.password-field{position:relative}.password-field input{padding-right:86px}.inline-field-action{position:absolute;right:7px;top:50%;min-height:38px;padding:0 13px;transform:translateY(-50%);box-shadow:none}.inline-field-action:hover{transform:translateY(calc(-50% - 1px))}.inline-field-action:active{transform:translateY(-50%) scale(.98)}.form-status[data-tone=success]{color:var(--success)}.form-status[data-tone=error]{color:var(--error)}.room-page{display:grid;gap:clamp(14px,3vw,20px)}.home-greeting{padding:2px 4px 0}.home-greeting h1{max-width:none;margin-top:6px;font-size:clamp(2.1rem,5vw,4.2rem)}.home-greeting p{margin:4px 0}.eyebrow{color:var(--rose-dark);text-transform:uppercase;letter-spacing:.11em;font-size:.76rem;font-weight:820}.profiles{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:12px}.profile-heart{min-width:0;padding:18px 12px;border-radius:24px;background:#fffaf68a;box-shadow:inset 0 1px #ffffffb8;text-align:center}.heart-avatar{width:clamp(72px,12vw,108px);aspect-ratio:1;margin:0 auto 10px;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:linear-gradient(145deg,#ffffffe6,#f0d8d48f);box-shadow:0 16px 34px #5c41361f,inset 0 1px #ffffffe6}.avatar-logo-frame{width:84%;height:84%;display:block}.heart-avatar span{color:var(--rose-dark);font-weight:820}.profile-heart h2{margin:0 0 2px;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-heart p{margin:0;font-size:.9rem}.connection{width:clamp(46px,8vw,86px);height:1px;align-self:center;background:linear-gradient(90deg,transparent,var(--rose),var(--champagne),var(--rose),transparent);position:relative}.connection span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--rose);animation:pulse 2.2s ease-in-out infinite}.room-meta{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:16px}.room-meta span,.action-chip,.mood-grid button,.stat-card{border:1px solid rgba(86,61,51,.1);background:#fffaf694;border-radius:20px;padding:10px 12px;box-shadow:inset 0 1px #fff9}.love-button{position:relative;width:min(560px,100%);min-height:168px;justify-self:center;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;text-align:left;color:var(--text);border:1px solid rgba(168,93,100,.16);border-radius:30px;padding:18px;background:radial-gradient(circle at 0% 0%,rgba(240,216,212,.78),transparent 12rem),linear-gradient(145deg,#ffffffe0,#fffaf6ad);box-shadow:0 22px 58px #5c413624,inset 0 1px #ffffffc2}.love-button.is-saving{filter:saturate(.92)}.love-button.selected{border-color:#a85d6447;box-shadow:0 28px 68px #a85d642e,inset 0 1px #ffffffc7}.love-button.empty{border-style:dashed;background:radial-gradient(circle at 0% 0%,rgba(240,216,212,.46),transparent 12rem),linear-gradient(145deg,#ffffffb8,#fffaf68f)}.love-button:hover{box-shadow:0 28px 68px #5c41362e,inset 0 1px #ffffffc7}.love-button .love-emoji{grid-row:1 / span 2;width:clamp(66px,18vw,92px);aspect-ratio:1;display:grid;place-items:center;border-radius:24px;background:linear-gradient(145deg,#cf7f842e,#ddd4ea38);box-shadow:inset 0 1px #ffffffb8;font-size:clamp(2rem,8vw,3.2rem);line-height:1}.love-copy{grid-column:2;display:grid;gap:6px;max-width:24rem}.love-copy strong{font-size:clamp(1.05rem,4.6vw,1.45rem);line-height:1.18}.love-copy small{color:var(--muted);font-size:.88rem}.save-moment-button{grid-column:2;justify-self:start;min-width:9.5rem;margin-top:2px}.quick-card{display:grid;gap:6px}.last-touch{margin-top:0}.section-heading{display:grid;gap:8px;max-width:42rem}.section-heading h1,.section-heading h2,.section-heading p{margin:0}.section-heading h1{max-width:none;font-size:clamp(2rem,6vw,3.5rem);line-height:1}.moment-card,.partner-status-card{overflow:hidden}.moment-card{position:relative;background:radial-gradient(circle at 100% 0%,rgba(221,212,234,.46),transparent 14rem),linear-gradient(145deg,#ffffffe0,#fffaf69e)}.moment-card:after{content:"♥";position:absolute;right:22px;top:20px;color:#cf7f8433;font-size:1.4rem;pointer-events:none}.moment-row{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:12px;border-radius:20px;background:#fffaf694;box-shadow:inset 0 1px #ffffffad}.moment-row.latest{animation:momentIn .26s ease both}.moment-row.compact{margin-top:10px}.moment-row strong{display:block;line-height:1.28;overflow-wrap:anywhere}.moment-row p{margin:3px 0 0;line-height:1.45}.moment-row small{display:block;margin-top:3px;color:var(--soft);line-height:1.35}.moment-emoji{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:#f0d8d48a;font-size:1.55rem;box-shadow:inset 0 1px #ffffffbd}.compact-link{width:fit-content;min-height:40px;margin-top:4px;padding:0 16px;font-size:.92rem}.reaction-wrap{display:grid;gap:6px}.reaction-bar{display:flex;flex-wrap:wrap;gap:8px}.reaction-button{min-height:42px;min-width:50px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 12px;border:1px solid rgba(86,61,51,.1);border-radius:999px;background:#fffaf6b3;box-shadow:0 8px 18px #5c413612,inset 0 1px #ffffffbd;color:var(--text)}.reaction-button.selected{border-color:#a85d643d;background:linear-gradient(145deg,#f0d8d4b8,#fffaf6d1);color:var(--rose-dark);box-shadow:0 12px 26px #a85d641f,inset 0 1px #ffffffc7}.reaction-button small{min-width:1.25em;color:var(--muted);font-size:.78rem;font-weight:760}.reaction-status{margin:0;color:var(--muted);font-size:.86rem}.reaction-status.error{color:var(--error)}.history-reactions{margin:12px 0 0 52px}.send-panel{justify-items:center;gap:18px;background:radial-gradient(circle at 12% 8%,rgba(240,216,212,.54),transparent 16rem),radial-gradient(circle at 86% 22%,rgba(221,212,234,.32),transparent 15rem),linear-gradient(145deg,#ffffffd1,#fffaf694)}.send-panel .section-heading{justify-items:center;text-align:center}.save-status{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:0;padding:8px 14px;border-radius:999px;background:#fffaf6ad;color:var(--muted);font-size:.92rem;text-align:center}.save-status:before{content:"";width:7px;height:7px;border-radius:999px;background:var(--champagne)}.save-status.saving:before{width:13px;height:13px;border:2px solid rgba(168,93,100,.22);border-top-color:var(--rose-dark);background:transparent;animation:spin .8s linear infinite}.save-status.success{color:#536d49;background:#758f691f}.save-status.success:before{background:var(--success)}.save-status.error{color:var(--error);background:#a85d641a}.save-status.error:before{background:var(--error)}.selected-moment-preview{width:min(560px,100%);display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:12px 14px;border:1px solid rgba(168,93,100,.14);border-radius:22px;background:radial-gradient(circle at 0% 0%,rgba(240,216,212,.5),transparent 9rem),#fffaf6ad;box-shadow:inset 0 1px #ffffffb3}.selected-moment-preview.empty-preview{grid-template-columns:1fr;color:var(--muted);text-align:center}.selected-moment-preview .preview-emoji{width:44px;height:44px;display:grid;place-items:center;border-radius:16px;background:#f0d8d49e;font-size:1.45rem}.selected-moment-preview small{display:block;color:var(--soft);font-size:.78rem;font-weight:760;text-transform:uppercase;letter-spacing:.06em}.selected-moment-preview strong{display:block;line-height:1.3;overflow-wrap:anywhere}.schedule-panel{width:min(560px,100%);display:grid;gap:14px;padding:16px;border:1px solid rgba(86,61,51,.1);border-radius:26px;background:radial-gradient(circle at 100% 0%,rgba(240,216,212,.42),transparent 12rem),#fffaf69e;box-shadow:inset 0 1px #ffffffb8}.schedule-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.schedule-field{color:var(--text)}.schedule-time-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.schedule-recipient,.schedule-hint{margin:0;color:var(--muted);font-size:.92rem}.scheduled-card{gap:16px}.scheduled-title{align-items:start}.scheduled-list{display:grid;gap:10px}.scheduled-item{display:grid;gap:12px;padding:14px;border:1px solid rgba(86,61,51,.1);border-radius:22px;background:#fffaf694;box-shadow:inset 0 1px #ffffffa8}.scheduled-main{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start}.scheduled-main p,.scheduled-main small{margin:2px 0 0}.scheduled-main small{display:block;color:var(--soft);font-size:.82rem}.schedule-retry-note{color:var(--rose-dark)!important}.schedule-status{justify-self:start;padding:7px 11px;border-radius:999px;color:var(--rose-dark);background:#f0d8d48a;font-size:.78rem;font-weight:820}.schedule-status.delivered{color:#536d49;background:#758f691f}.schedule-status.failed{color:var(--error);background:#a85d641a}.schedule-status.cancelled{color:var(--muted);background:#b8a69a29}.scheduled-actions{display:flex;gap:10px;flex-wrap:wrap}.button-spinner{position:absolute;top:18px;right:18px;width:28px;height:28px;border:3px solid rgba(255,250,246,.34);border-top-color:#fffaf6;border-radius:999px;animation:spin .8s linear infinite}.quick-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px}.memories-page{display:grid;gap:18px}.memory-hero h1{max-width:760px}.memory-latest{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) minmax(92px,150px);gap:16px;align-items:center;text-align:left;padding:18px;border:1px solid rgba(168,93,100,.14);border-radius:28px;background:radial-gradient(circle at 6% 12%,rgba(240,216,212,.7),transparent 14rem),linear-gradient(145deg,#ffffffdb,#fffaf69e);box-shadow:0 20px 52px #5c41361f,inset 0 1px #ffffffb8}.memory-latest.empty-memory{border-style:dashed}.memory-latest img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:22px;box-shadow:0 12px 30px #5c413624}.memory-latest small,.memory-card small{color:var(--rose-dark);font-size:.76rem;font-weight:820;text-transform:uppercase;letter-spacing:.06em}.memory-latest h2{margin:2px 0 4px}.memory-latest p,.memory-card p{margin:0;display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.memory-mark,.memory-card-emoji{width:56px;height:56px;display:grid;place-items:center;border-radius:20px;background:#f0d8d4ad;font-size:1.7rem}.memory-form,.memory-section,.memory-detail{display:grid;gap:14px;padding:18px;border:1px solid rgba(86,61,51,.09);border-radius:26px;background:#fffaf67a;box-shadow:inset 0 1px #ffffffb3}.memory-note,.memory-meta{margin:0;color:var(--muted);font-size:.92rem}.memory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.memory-card{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;text-align:left;padding:14px;border:1px solid rgba(86,61,51,.1);border-radius:22px;background:#fffaf69e;box-shadow:inset 0 1px #ffffffa8}.memory-card img{width:66px;aspect-ratio:1;object-fit:cover;border-radius:18px}.memory-card strong{display:block;margin:2px 0;line-height:1.25;overflow-wrap:anywhere}.memory-countdown{display:inline-flex;width:fit-content;margin-top:8px;padding:6px 10px;border-radius:999px;color:var(--rose-dark);background:#f0d8d494;font-size:.78rem;font-weight:820}.memory-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px}.memory-photo-grid figure{display:grid;gap:8px;margin:0}.memory-photo-grid img,.memory-photo-fallback{width:100%;aspect-ratio:1;border-radius:20px;object-fit:cover;background:#f0d8d46b}.memory-photo-fallback{display:grid;place-items:center;color:var(--muted);padding:12px}.memory-description{margin:0;color:var(--text);white-space:pre-wrap}.invite-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:clamp(18px,4vw,26px);border:1px solid rgba(86,61,51,.1);border-radius:24px;background:radial-gradient(circle at 12% 0%,rgba(240,216,212,.6),transparent 14rem),#fffaf6ad;box-shadow:0 18px 48px #5c41361f,inset 0 1px #ffffffb8}.invite-copy h2{margin-bottom:6px}.invite-copy p{margin:0}.invite-code{justify-self:end;min-width:9ch;padding:14px 18px;border-radius:18px;color:var(--rose-dark);background:#ffffffb8;box-shadow:inset 0 0 0 1px #a85d6424;font-size:clamp(1.45rem,5vw,2.15rem);font-weight:820;letter-spacing:.12em;text-align:center}.invite-actions{grid-column:1 / -1;display:flex;gap:10px;flex-wrap:wrap}.action-grid,.mood-grid,.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(136px,1fr));gap:10px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.action-chip{display:grid;gap:7px;justify-items:center;align-content:center;min-height:104px;color:var(--text);border-color:color-mix(in srgb,var(--accent),transparent 72%)}.action-chip:hover,.action-chip:focus-visible{background:radial-gradient(circle at 20% 0%,color-mix(in srgb,var(--accent),transparent 78%),transparent 6rem),#fffaf6c2}.action-chip.selected{border-color:color-mix(in srgb,var(--accent),transparent 44%);background:radial-gradient(circle at 50% 0%,color-mix(in srgb,var(--accent),transparent 68%),transparent 8rem),#fffaf6d6;box-shadow:0 14px 30px #5c41361a,inset 0 1px #ffffffc7}.action-chip span{font-size:1.7rem}.mood-grid button.active{background:#f0d8d49e;border-color:#cf7f8438}.bottom-nav{position:fixed;z-index:5;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(440px,calc(100% - 28px));display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:7px;border:1px solid rgba(86,61,51,.1);border-radius:26px;background:#fffaf6db;box-shadow:0 18px 46px #5c413629;backdrop-filter:blur(22px)}.bottom-nav button{min-height:54px;display:grid;place-items:center;gap:3px;border-radius:20px;background:transparent;color:var(--muted);font-size:.95rem}.bottom-nav button.active{color:var(--text);background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.64),transparent 70%),#f0d8d494;box-shadow:inset 0 1px #ffffffc2,0 8px 18px #5c413614}.bottom-nav button.active .nav-icon{color:var(--rose-dark);fill:#cf7f8424}.bottom-nav button:disabled,.bottom-nav button.disabled{cursor:not-allowed;opacity:.42;transform:none}.bottom-nav small{font-size:.72rem}.timeline{display:grid;gap:12px}.event-card{border:1px solid rgba(86,61,51,.1);border-radius:22px;padding:14px;background:#fffaf69e;box-shadow:0 12px 30px #5c413612}.event-card:nth-child(odd){background:radial-gradient(circle at 0% 0%,rgba(240,216,212,.3),transparent 10rem),#fffaf69e}.event-card summary,.event-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px}.event-card time{color:var(--soft);font-size:.9rem}.event-message{margin:12px 0 7px 52px;color:var(--text);font-weight:760;line-height:1.42;overflow-wrap:anywhere}.event-meta{display:grid;gap:2px;margin-left:52px;color:var(--soft);font-size:.88rem;line-height:1.35}.event-meta time{font-size:inherit}.event-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#f0d8d48a}.direction-pill{min-height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0 10px;border-radius:999px;font-size:.78rem;font-weight:760;color:var(--rose-dark);background:#f0d8d480}.direction-pill.received{color:#6d5b82;background:#ddd4ea80}.empty{margin:0;padding:18px;border-radius:20px;background:#fffaf694}.error-state{color:var(--error);background:#a85d6414}.settings-section{display:grid;gap:12px;margin-top:18px;padding:18px;border:1px solid rgba(86,61,51,.09);border-radius:24px;background:#fffaf66b;box-shadow:inset 0 1px #ffffffb3}.settings-section h2{margin-bottom:0}.settings-section.danger-zone{background:#fff5f48f}.stat-card{min-height:118px;display:grid;gap:8px;align-content:center;position:relative;overflow:hidden}.stats-page{display:grid;gap:18px}.stats-heading h1{max-width:720px}.stats-overview-card{display:grid;gap:14px;padding:clamp(18px,4vw,26px);border:1px solid rgba(168,93,100,.13);border-radius:28px;background:radial-gradient(circle at 10% 0%,rgba(240,216,212,.72),transparent 16rem),radial-gradient(circle at 100% 20%,rgba(234,215,189,.58),transparent 13rem),linear-gradient(145deg,#ffffffdb,#fffaf69e);box-shadow:0 22px 58px #5c413621,inset 0 1px #ffffffb8}.overview-main{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center}.overview-main .stat-icon{width:34px;height:34px}.overview-main span,.compact-stat span,.stat-insight span{color:var(--muted);font-size:.86rem;font-weight:780}.overview-main strong{display:block;color:var(--text);font-size:clamp(2.6rem,12vw,5.1rem);line-height:.95;letter-spacing:-.04em}.overview-main p{margin:6px 0 0}.stats-share-bar{height:12px;overflow:hidden;border-radius:999px;background:#b8a69a2e;box-shadow:inset 0 1px 2px #5c41361f}.stats-share-bar i{display:block;width:var(--sent-share);min-width:0;max-width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--rose),var(--rose-dark))}.stats-share-labels{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:.8rem;font-weight:760}.stats-grid{margin-top:0}.compact-stat{min-height:126px}.compact-stat strong{font-size:clamp(1.75rem,7vw,2.9rem)}.stats-insights{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.stat-insight{margin:0}.stat-insight strong{font-size:clamp(1rem,4vw,1.32rem)}.stat-insight p{margin:0;font-size:.9rem}.stats-distribution{display:grid;gap:12px;padding:18px;border:1px solid rgba(86,61,51,.09);border-radius:24px;background:#fffaf66b;box-shadow:inset 0 1px #ffffffb3}.stats-distribution h2{margin:0}.stats-bars{display:grid;gap:12px}.stats-bar-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(86px,180px) 3ch;gap:12px;align-items:center}.stats-bar-row span{overflow-wrap:anywhere}.stats-bar{height:12px;overflow:hidden;border-radius:999px;background:#f0d8d473}.stats-bar i{display:block;width:var(--bar);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--rose),var(--rose-dark))}.stats-empty{margin:0}.skeleton-card{pointer-events:none}.skeleton-line,.skeleton-dot{display:block;overflow:hidden;position:relative;border-radius:999px;background:#b8a69a2e}.skeleton-line{width:100%;height:14px}.skeleton-line.short{width:42%}.skeleton-line.title{width:68%;height:34px}.skeleton-dot{width:32px;height:32px}.skeleton-line:after,.skeleton-dot:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.48),transparent);animation:shimmer 1.4s ease-in-out infinite}.stat-card.featured{min-height:150px;margin:18px 0 12px;background:radial-gradient(circle at 100% 0%,rgba(221,212,234,.42),transparent 12rem),linear-gradient(145deg,#ffffffdb,#fffaf69e)}.stat-card.soft-feature{margin:10px 0 18px}.stat-card.soft-feature strong{font-size:clamp(1rem,3.8vw,1.28rem);line-height:1.25}.stat-icon{color:var(--rose-dark);opacity:.78}.stat-card strong{font-size:clamp(1.6rem,5vw,2.6rem);letter-spacing:-.03em;line-height:1.08}.bar-row{display:grid;grid-template-columns:1fr minmax(90px,190px) 2ch;gap:12px;align-items:center;margin:10px 0}meter{width:100%;height:13px}meter::-webkit-meter-bar{border:0;border-radius:999px;background:#f0d8d48c}meter::-webkit-meter-optimum-value{border-radius:999px;background:linear-gradient(90deg,var(--rose),var(--rose-dark))}.toggle{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid rgba(86,61,51,.09)}.toggle input{appearance:none;width:52px;min-height:30px;border:1px solid rgba(86,61,51,.12);border-radius:999px;background:#b8a69a38;box-shadow:inset 0 1px 2px #5c41361f;position:relative;transition:background var(--duration) ease,border-color var(--duration) ease}.toggle input:before{content:"";position:absolute;width:24px;height:24px;left:2px;top:2px;border-radius:999px;background:#fffaf6;box-shadow:0 4px 12px #5c41362e;transition:transform var(--duration) ease}.toggle input:checked{border-color:#a85d6438;background:linear-gradient(135deg,var(--rose),var(--rose-dark))}.toggle input:checked:before{transform:translate(22px)}.preference-row{display:grid;gap:10px;padding:4px 0 12px;border-bottom:1px solid rgba(86,61,51,.09)}.preference-row:last-child{border-bottom:0;padding-bottom:0}.preference-row.disabled{opacity:.68}.preference-toggle{border-bottom:0}.preference-copy{display:grid;gap:4px;min-width:0}.preference-copy strong{color:var(--text);font-size:.98rem;line-height:1.25}.preference-copy small{color:var(--muted);font-size:.84rem;line-height:1.35}.segmented-control{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:min(340px,100%);padding:6px;border:1px solid rgba(86,61,51,.1);border-radius:999px;background:#fffaf69e}.segmented-control button{min-height:38px;border-radius:999px;background:transparent;color:var(--muted);box-shadow:none;font-size:.9rem;font-weight:780}.segmented-control button.active{color:var(--text);background:#f0d8d4b8;box-shadow:0 8px 20px #5c41361a,inset 0 1px #ffffffc7}.settings-note{margin-top:-6px;padding:13px 15px;border-radius:18px;background:#fffaf694}.notification-settings{display:grid;gap:12px}.notification-copy{margin:0;color:var(--text)}.notification-state{justify-self:start;margin:0;padding:8px 12px;border-radius:999px;color:var(--rose-dark);font-size:.82rem;font-weight:800;background:#f0d8d48f}.notification-state.enabled,.notification-state.registering{color:#6f5b34;background:#f0e0bcb8}.notification-state.permission-denied,.notification-state.registration-failed{color:var(--error);background:#a85d641a}.notification-state.unavailable-in-browser,.notification-state.requires-https,.notification-state.requires-home-screen-install{color:var(--muted);background:#b8a69a2e}.notification-actions{display:flex;gap:10px;flex-wrap:wrap}.toast-host{position:fixed;z-index:10;inset:auto 16px max(94px,env(safe-area-inset-bottom)) 16px;display:grid;gap:8px;pointer-events:none}.toast{justify-self:center;max-width:min(420px,100%);padding:12px 16px;border:1px solid rgba(86,61,51,.1);border-radius:18px;background:#fffaf6eb;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);transition:opacity .24s ease,transform .24s ease}.toast.visible{opacity:1;transform:translateY(0)}.toast.error{border-color:#a85d6447}.touch-orb,.particle{position:fixed;z-index:4;left:50%;top:44%;pointer-events:none}.touch-orb{font-size:4rem;animation:fly 1.2s ease both;filter:drop-shadow(0 0 18px var(--action-accent, var(--rose)))}.particle{color:var(--accent);animation:float 1.45s ease-out both;animation-delay:var(--delay)}.loader{width:42px;aspect-ratio:1;border-radius:50%;border:3px solid rgba(86,61,51,.13);border-top-color:var(--rose-dark);animation:spin 1s linear infinite}@keyframes breathe{0%,to{transform:scale(.985);opacity:.66}50%{transform:scale(1.035);opacity:.92}}@keyframes floatSoft{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes pulse{50%{transform:translate(-50%,-50%) scale(1.24)}}@keyframes fly{0%{transform:translate(-38vw,20px) scale(.6);opacity:0}30%{opacity:1}to{transform:translate(34vw,-12px) scale(1.2);opacity:0}}@keyframes float{to{transform:translate(var(--x),-130px) rotate(34deg);opacity:0}}@keyframes momentIn{0%{opacity:.72;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{transform:translate(100%)}}@media(min-width:900px){.bottom-nav{width:340px;bottom:22px}.bottom-nav button{min-height:44px}}@media(max-width:860px){.screen{padding-left:14px;padding-right:14px}.welcome-card{grid-template-columns:1fr;min-height:auto;gap:22px;text-align:center}.hero-copy{margin:0 auto;display:grid;justify-items:center;order:2}.hero-art{min-height:310px;order:1}.logo-orbit{width:min(328px,92%);border-radius:30px}.welcome-logo{width:min(300px,86%);border-radius:28px}h1{max-width:10.8ch;margin-top:14px;font-size:clamp(2.45rem,11vw,4.2rem)}.lede{max-width:31rem;margin-bottom:20px}.actions-row,.feature-strip{justify-content:center}.profiles{grid-template-columns:1fr}.connection{width:1px;height:36px;justify-self:center}.connection span{transform:translate(-50%,-50%) rotate(90deg)}.quick-links{grid-template-columns:1fr}.stats-bar-row{grid-template-columns:1fr auto}.stats-bar-row .stats-bar{grid-column:1 / -1;order:3}.invite-card{grid-template-columns:1fr}.invite-code{justify-self:stretch}}@media(max-width:520px){.screen{padding-left:10px;padding-right:10px}.topbar{margin-bottom:16px}.brand{padding-right:12px}.network{padding:0 11px}.glass{border-radius:24px;padding:20px}.welcome-card{padding:20px}.hero-art{min-height:278px}.actions-row{display:grid;grid-template-columns:1fr}.feature-strip{display:grid;grid-template-columns:1fr;width:100%}.feature-card{justify-content:center}.invite-actions{display:grid;grid-template-columns:1fr}.auth-heading{grid-template-columns:1fr;justify-items:start}.panel-logo{width:84px;height:84px}.event-card summary,.event-summary{grid-template-columns:auto 1fr auto}.event-card time{grid-column:2 / -1}.direction-pill{grid-column:3}.event-message,.event-meta,.history-reactions{margin-left:0}.bar-row{grid-template-columns:1fr}.send-panel{gap:14px}.schedule-time-grid{grid-template-columns:1fr}.memory-latest{grid-template-columns:auto minmax(0,1fr)}.memory-latest img{grid-column:1 / -1;max-height:220px}.memory-grid{grid-template-columns:1fr}.memory-form,.memory-section,.memory-detail{padding:14px;border-radius:22px}.save-status{width:100%}}html[data-theme=dark],:root[data-theme=dark] body{background:var(--bg)}:root[data-theme=dark] body{background:radial-gradient(circle at 14% 8%,rgba(122,72,82,.35),transparent 25rem),radial-gradient(circle at 86% 12%,rgba(112,83,54,.22),transparent 28rem),radial-gradient(circle at 52% 96%,rgba(213,140,148,.12),transparent 28rem),linear-gradient(145deg,#1d1214 0%,var(--bg) 50%,var(--bg-warm) 100%)}:root[data-theme=dark] .ambient-bg:before{background:#d58c9421}:root[data-theme=dark] .ambient-bg:after{background:#c3a3761f}:root[data-theme=dark] input,:root[data-theme=dark] textarea,:root[data-theme=dark] select{color:var(--text);background:#2b1d20eb;border-color:var(--border);box-shadow:inset 0 1px #ffffff0f}:root[data-theme=dark] select{background:linear-gradient(45deg,transparent 50%,var(--rose-dark) 50%) calc(100% - 23px) 50% / 7px 7px no-repeat,linear-gradient(135deg,#3d2a2ef0,#2b1d20c7)}:root[data-theme=dark] input::placeholder,:root[data-theme=dark] textarea::placeholder{color:#d5bcb8b8}:root[data-theme=dark] .brand,:root[data-theme=dark] .network,:root[data-theme=dark] .glass,:root[data-theme=dark] .auth-card,:root[data-theme=dark] .feature-card,:root[data-theme=dark] .profile-heart,:root[data-theme=dark] .settings-section,:root[data-theme=dark] .stats-distribution,:root[data-theme=dark] .memory-form,:root[data-theme=dark] .memory-section,:root[data-theme=dark] .memory-detail,:root[data-theme=dark] .invite-card,:root[data-theme=dark] .scheduled-item,:root[data-theme=dark] .event-card,:root[data-theme=dark] .bottom-nav{background:linear-gradient(145deg,#3a272bdb,#27191cb3),#27191cad;border-color:var(--border);box-shadow:var(--shadow),inset 0 1px #ffffff0d}:root[data-theme=dark] .welcome-card:before{border-color:#ffe7dc14}:root[data-theme=dark] .status-pill,:root[data-theme=dark] .direction-pill,:root[data-theme=dark] .notification-state,:root[data-theme=dark] .settings-note,:root[data-theme=dark] .empty,:root[data-theme=dark] .schedule-panel,:root[data-theme=dark] .scheduled-error,:root[data-theme=dark] .memory-photo-fallback{color:var(--muted);background:#482f348f;border-color:var(--border)}:root[data-theme=dark] .status-pill,:root[data-theme=dark] .direction-pill{color:var(--rose-dark)}:root[data-theme=dark] .primary{color:#211617;box-shadow:0 16px 34px #05000252,inset 0 1px #fff3}:root[data-theme=dark] .secondary,:root[data-theme=dark] .ghost{color:var(--text);background:#482f3480;box-shadow:0 12px 28px #05000238,inset 0 1px #ffffff0d}:root[data-theme=dark] .danger{color:#ffd8d8;background:#82374261}:root[data-theme=dark] .room-meta span,:root[data-theme=dark] .action-chip,:root[data-theme=dark] .mood-grid button,:root[data-theme=dark] .stat-card,:root[data-theme=dark] .compact-stat,:root[data-theme=dark] .stat-insight{background:#3a272ba8;border-color:var(--border);box-shadow:inset 0 1px #ffffff0d}:root[data-theme=dark] .heart-avatar,:root[data-theme=dark] .love-button,:root[data-theme=dark] .stats-overview-card,:root[data-theme=dark] .stat-card.featured,:root[data-theme=dark] .memory-latest,:root[data-theme=dark] .memory-card,:root[data-theme=dark] .memory-item{background:radial-gradient(circle at 0% 0%,rgba(122,72,82,.34),transparent 12rem),linear-gradient(145deg,#442d32e6,#2a1b1fb8);border-color:var(--border);box-shadow:var(--shadow),inset 0 1px #ffffff0f}:root[data-theme=dark] .love-button.empty{background:radial-gradient(circle at 0% 0%,rgba(122,72,82,.22),transparent 12rem),linear-gradient(145deg,#3a272bc7,#27191ca8)}:root[data-theme=dark] .love-button .love-emoji,:root[data-theme=dark] .event-icon,:root[data-theme=dark] .moment-emoji{background:linear-gradient(145deg,#d58c9433,#62506d2e);box-shadow:inset 0 1px #ffffff0f}:root[data-theme=dark] .action-chip:hover,:root[data-theme=dark] .action-chip:focus-visible,:root[data-theme=dark] .action-chip.selected{background:radial-gradient(circle at 50% 0%,color-mix(in srgb,var(--accent),transparent 74%),transparent 8rem),#482f34c2;box-shadow:0 14px 30px #05000238,inset 0 1px #ffffff0f}:root[data-theme=dark] .save-status{background:#3a272bbd;color:var(--muted)}:root[data-theme=dark] .save-status.success,:root[data-theme=dark] .notification-state.enabled,:root[data-theme=dark] .notification-state.registering{color:#dfeac9;background:#60744e33}:root[data-theme=dark] .save-status.error,:root[data-theme=dark] .error-state,:root[data-theme=dark] .notification-state.permission-denied,:root[data-theme=dark] .notification-state.registration-failed{color:#ffc9cc;background:#a0424c33}:root[data-theme=dark] .bottom-nav{background:#27191ce6}:root[data-theme=dark] .bottom-nav button{color:var(--muted)}:root[data-theme=dark] .bottom-nav button.active{color:var(--text);background:radial-gradient(circle at 50% 0%,rgba(255,231,220,.08),transparent 70%),#7a485257;box-shadow:inset 0 1px #ffffff12,0 8px 18px #05000233}:root[data-theme=dark] .bottom-nav button.active .nav-icon,:root[data-theme=dark] .stat-icon{color:var(--rose-dark)}:root[data-theme=dark] .toggle{border-bottom-color:var(--border)}:root[data-theme=dark] .toggle input{border-color:var(--border);background:#180f11c2;box-shadow:inset 0 1px 2px #0500025c}:root[data-theme=dark] .toggle input:before{background:#f6ded6;box-shadow:0 4px 12px #05000266}:root[data-theme=dark] .segmented-control{background:#24171ab3;border-color:var(--border)}:root[data-theme=dark] .segmented-control button.active{color:var(--text);background:#7a48527a;box-shadow:0 8px 20px #05000242,inset 0 1px #ffffff12}:root[data-theme=dark] .event-card:nth-child(odd){background:radial-gradient(circle at 0% 0%,rgba(122,72,82,.22),transparent 10rem),#3a272ba8}:root[data-theme=dark] .skeleton-line,:root[data-theme=dark] .skeleton-dot,:root[data-theme=dark] .stats-share-bar,:root[data-theme=dark] .stats-bar,:root[data-theme=dark] meter::-webkit-meter-bar{background:#ffe7dc1f}:root[data-theme=dark] .skeleton-line:after,:root[data-theme=dark] .skeleton-dot:after{background:linear-gradient(90deg,transparent,rgba(255,231,220,.12),transparent)}:root[data-theme=dark] .toast{color:var(--text);background:#2c1d21f5;border-color:var(--border)}:root[data-theme=dark] .memory-photo-grid img,:root[data-theme=dark] .memory-photo-fallback{background:#482f3494}:root[data-theme=dark] .invite-code{color:var(--rose-dark);background:#27191cb3;box-shadow:inset 0 0 0 1px var(--border)}body{color:var(--text-primary);background:radial-gradient(circle at 8% 0%,color-mix(in srgb,var(--blush),transparent 42%),transparent 24rem),radial-gradient(circle at 96% 8%,color-mix(in srgb,var(--champagne),transparent 58%),transparent 28rem),linear-gradient(145deg,var(--app-bg) 0%,var(--bg-warm) 100%)}.screen{padding:max(14px,env(safe-area-inset-top)) clamp(12px,3vw,22px) calc(var(--nav-height) + max(26px,env(safe-area-inset-bottom)))}.shell{width:min(760px,100%)}.welcome-card{width:min(1120px,100%);margin-inline:auto}.topbar{margin-bottom:clamp(16px,4vw,24px)}.brand,.network{border-color:var(--border-subtle);background:color-mix(in srgb,var(--surface-primary),transparent 12%);box-shadow:var(--shadow-soft)}.brand{min-height:44px;font-size:.95rem}.network{min-height:38px;font-size:.82rem}.glass{border-color:var(--border-subtle);border-radius:var(--radius-card);background:linear-gradient(145deg,color-mix(in srgb,var(--bg-elevated),white 3%),var(--surface-primary)),var(--surface-primary);box-shadow:var(--shadow-card),inset 0 1px color-mix(in srgb,white,transparent 72%);padding:clamp(18px,4.5vw,34px)}h1{max-width:14ch;color:var(--text-primary);letter-spacing:-.025em}h2,h3,strong,b{color:var(--text-primary)}p,small,.lede,.section-heading p,.last-touch,.event-meta,.memory-note,.memory-meta{color:var(--text-secondary)}.section-heading{gap:7px}.section-heading h1{font-size:clamp(2rem,8vw,3.35rem)}.section-heading h2{font-size:clamp(1.25rem,4.8vw,1.8rem)}.status-pill{border-color:color-mix(in srgb,var(--accent),transparent 76%);background:color-mix(in srgb,var(--surface-selected),transparent 18%);color:var(--accent-hover);letter-spacing:.01em}button{min-height:48px;transition:transform .16s var(--ease-out),box-shadow var(--duration) var(--ease-out),background var(--duration) var(--ease-out),border-color var(--duration) var(--ease-out),opacity var(--duration) var(--ease-out)}button:hover{transform:translateY(-1px)}button:active{transform:translateY(1px) scale(.985)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.primary,.secondary,.ghost,.danger{min-height:48px;border-radius:var(--radius-control);padding-inline:18px}.primary{color:var(--accent-contrast);background:linear-gradient(135deg,var(--accent),var(--accent-hover));box-shadow:0 14px 30px color-mix(in srgb,var(--accent),transparent 72%),inset 0 1px #ffffff2e}.primary:hover{background:linear-gradient(135deg,var(--accent-hover),var(--accent))}.secondary,.ghost{color:var(--text-primary);border:1px solid var(--border-subtle);background:var(--surface-interactive);box-shadow:var(--shadow-soft),inset 0 1px color-mix(in srgb,white,transparent 82%)}.danger{color:var(--error);border:1px solid color-mix(in srgb,var(--error),transparent 72%);background:color-mix(in srgb,var(--error),transparent 90%)}input,textarea,select{border-color:var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-interactive);color:var(--text-primary)}.home-greeting{margin-bottom:12px}.home-greeting h1{max-width:none;margin-bottom:4px;font-size:clamp(1.85rem,8vw,3rem);line-height:1.02}.home-greeting p{max-width:36rem}.room-card{padding:clamp(16px,4vw,24px)}.profiles{gap:10px}.profile-heart{border-color:var(--border-subtle);border-radius:22px;background:var(--surface-secondary)}.room-meta span{min-height:34px;display:inline-flex;align-items:center;border-color:var(--border-subtle);background:var(--surface-secondary);color:var(--text-secondary);font-size:.82rem}.send-panel{gap:20px;background:radial-gradient(circle at 20% 0%,color-mix(in srgb,var(--surface-selected),transparent 12%),transparent 16rem),linear-gradient(145deg,var(--bg-elevated),var(--surface-primary))}.send-panel .section-heading{max-width:34rem}.love-button{width:min(600px,100%);min-height:154px;border-radius:28px;border-color:color-mix(in srgb,var(--accent),transparent 72%);background:radial-gradient(circle at 0% 0%,color-mix(in srgb,var(--surface-selected),transparent 20%),transparent 14rem),linear-gradient(145deg,var(--bg-elevated),var(--surface-primary));box-shadow:var(--shadow-card),inset 0 1px color-mix(in srgb,white,transparent 78%)}.love-button.empty{border-style:solid;background:var(--surface-secondary);box-shadow:none}.love-button.selected{border-color:color-mix(in srgb,var(--accent),transparent 42%);box-shadow:0 22px 58px color-mix(in srgb,var(--accent),transparent 80%),inset 0 1px color-mix(in srgb,white,transparent 76%)}.love-button .love-emoji{border-radius:20px;background:color-mix(in srgb,var(--surface-selected),transparent 12%)}.love-copy{gap:5px}.selection-label{color:var(--accent-hover);font-size:.76rem;font-weight:820;letter-spacing:.06em;text-transform:uppercase}.save-moment-button{min-width:10.5rem}.save-feedback{display:inline-flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.save-status{min-height:38px;background:var(--surface-secondary);color:var(--text-secondary)}.save-status.success{color:var(--success);background:color-mix(in srgb,var(--success),transparent 88%)}.save-status.error{color:var(--error);background:color-mix(in srgb,var(--error),transparent 90%)}.send-more-block{width:100%;display:grid;gap:12px}.send-more-block h3{margin:0;font-size:.95rem;color:var(--text-secondary)}.action-grid,.mood-grid,.stat-grid{gap:12px}.action-chip{position:relative;min-height:124px;justify-items:start;align-content:start;gap:10px;padding:15px;text-align:left;border:1px solid var(--border-subtle);border-radius:22px;background:var(--surface-interactive);box-shadow:var(--shadow-soft),inset 0 1px color-mix(in srgb,white,transparent 84%);overflow:hidden}.action-chip:after{content:"";position:absolute;right:12px;top:12px;width:18px;height:18px;border:1px solid var(--border-strong);border-radius:999px;background:color-mix(in srgb,var(--surface-primary),transparent 22%)}.action-chip.selected:after{border-color:var(--accent);background:radial-gradient(circle at center,var(--accent) 0 38%,transparent 42%),color-mix(in srgb,var(--surface-selected),transparent 10%)}.action-chip span{display:grid;place-items:center;width:2.35rem;height:2.35rem;border-radius:14px;background:color-mix(in srgb,var(--surface-selected),transparent 18%);font-size:1.35rem}.action-chip b{max-width:100%;padding-right:22px;font-size:.92rem;line-height:1.32;overflow-wrap:anywhere}.action-chip:hover,.action-chip:focus-visible{border-color:color-mix(in srgb,var(--accent),transparent 50%);background:color-mix(in srgb,var(--surface-interactive),var(--surface-selected) 18%)}.action-chip.selected{border-color:color-mix(in srgb,var(--accent),transparent 30%);background:color-mix(in srgb,var(--surface-selected),var(--surface-interactive) 44%);box-shadow:0 16px 38px color-mix(in srgb,var(--accent),transparent 86%),inset 0 1px color-mix(in srgb,white,transparent 82%)}.bottom-nav{width:min(420px,calc(100% - 24px));min-height:var(--nav-height);bottom:max(10px,env(safe-area-inset-bottom));padding:8px;border-color:var(--border-subtle);border-radius:28px;background:color-mix(in srgb,var(--bg-elevated),transparent 8%);box-shadow:var(--shadow-card)}.bottom-nav button{min-height:56px;border-radius:21px;color:var(--text-muted);font-size:.9rem}.bottom-nav .nav-icon{width:19px;height:19px}.bottom-nav small{color:inherit;font-size:.71rem;font-weight:740}.bottom-nav button.active{color:var(--text-primary);background:var(--surface-selected);box-shadow:inset 0 1px color-mix(in srgb,white,transparent 78%),0 9px 20px color-mix(in srgb,var(--accent),transparent 86%)}.timeline{gap:14px}.event-card{position:relative;border-color:var(--border-subtle);border-radius:24px;background:var(--surface-primary);box-shadow:var(--shadow-soft)}.event-card.sent{border-left:3px solid color-mix(in srgb,var(--accent),transparent 24%)}.event-card.received{border-left:3px solid color-mix(in srgb,var(--lavender),transparent 16%)}.event-summary{grid-template-columns:auto minmax(0,1fr) auto}.event-summary time{grid-column:2 / -1;justify-self:start;margin-top:-4px}.direction-pill{min-height:27px;background:var(--surface-selected);color:var(--accent-hover)}.event-message{margin:14px 0 8px 52px;font-size:1rem;line-height:1.5}.event-meta,.history-reactions{margin-left:52px}.stats-overview-card,.stats-distribution,.settings-section,.memory-section,.memory-form,.memory-detail,.invite-card{border-color:var(--border-subtle);background:var(--surface-primary);box-shadow:var(--shadow-soft)}.stats-overview-card{border-radius:28px}.compact-stat{border-radius:22px;background:var(--surface-interactive)}.compact-stat strong{color:var(--text-primary)}.stats-bar,.stats-share-bar{background:color-mix(in srgb,var(--surface-selected),transparent 30%)}.stats-bar i,.stats-share-bar i{background:linear-gradient(90deg,var(--accent),var(--accent-hover))}.settings-section{gap:0;padding:4px 18px;overflow:hidden}.settings-section h2{padding:14px 0 10px;font-size:.9rem;color:var(--text-secondary);letter-spacing:.02em}.preference-row,.toggle{border-bottom-color:var(--border-subtle)}.preference-row{padding:12px 0}.toggle{min-height:54px}.toggle input{width:48px;min-height:28px;border-color:var(--border-subtle);background:color-mix(in srgb,var(--surface-secondary),transparent 8%)}.toggle input:before{width:22px;height:22px}.toggle input:checked:before{transform:translate(20px)}.segmented-control{border-color:var(--border-subtle);background:color-mix(in srgb,var(--surface-secondary),transparent 8%)}.segmented-control button{min-height:40px;color:var(--text-secondary)}.segmented-control button.active{color:var(--text-primary);background:var(--surface-selected)}.notification-settings{gap:10px;padding-bottom:12px}.notification-state{background:var(--surface-selected);color:var(--accent-hover)}.empty,.settings-note{background:var(--surface-secondary);color:var(--text-secondary)}.toast{border-color:var(--border-subtle);background:var(--bg-elevated);color:var(--text-primary)}:root[data-theme=dark] .glass,:root[data-theme=dark] .brand,:root[data-theme=dark] .network,:root[data-theme=dark] .bottom-nav,:root[data-theme=dark] .event-card,:root[data-theme=dark] .settings-section,:root[data-theme=dark] .stats-overview-card,:root[data-theme=dark] .stats-distribution,:root[data-theme=dark] .memory-section,:root[data-theme=dark] .memory-form,:root[data-theme=dark] .memory-detail,:root[data-theme=dark] .invite-card{box-shadow:var(--shadow-card),inset 0 1px #ffffff0a}:root[data-theme=dark] .primary{color:var(--accent-contrast)}:root[data-theme=dark] .secondary,:root[data-theme=dark] .ghost,:root[data-theme=dark] .action-chip,:root[data-theme=dark] .compact-stat{box-shadow:var(--shadow-soft),inset 0 1px #ffffff0a}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}:root[data-animations=disabled] .touch-orb,:root[data-animations=disabled] .particle,:root[data-reduced-motion=enabled] .touch-orb,:root[data-reduced-motion=enabled] .particle{animation:none!important}
