:root{--bg:#151326;--panel:#211d37;--panel2:#2b2441;--text:#fff8ef;--muted:#bdb4cb;--amber:#ffc16b;--amber2:#e99a43;--mist:#a997dc;--line:rgba(255,255,255,.1);--shadow:0 16px 44px rgba(4,3,14,.28)}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-height:100vh;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Microsoft YaHei",sans-serif;background:radial-gradient(circle at 12% 0,rgba(169,151,220,.2),transparent 28%),linear-gradient(160deg,#151326,#1d1931 58%,#171629)}button,input,textarea{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}.app-shell{width:min(760px,100%);margin:auto;padding:10px 12px 102px}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:10px;padding:8px 0;background:linear-gradient(180deg,rgba(21,19,38,.96),rgba(21,19,38,.72),transparent);backdrop-filter:blur(14px)}.logo{width:42px;height:42px;border-radius:14px;object-fit:cover;box-shadow:0 8px 22px rgba(0,0,0,.25)}.brand{flex:1;min-width:0}.brand strong{display:block;font-size:16px}.brand span{display:block;margin-top:2px;color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quiet-button{width:38px;height:38px;border:1px solid var(--line);border-radius:13px;color:var(--muted);background:rgba(255,255,255,.055)}.quiet-button.small{width:32px;height:32px;border-radius:11px;font-size:11px}.page{display:none;animation:page-in .22s ease}.page.active{display:block}@keyframes page-in{from{opacity:.25;transform:translateY(4px)}to{opacity:1;transform:none}}
.welcome-card{position:relative;overflow:hidden;display:grid;grid-template-columns:42% 1fr;min-height:218px;border:1px solid var(--line);border-radius:25px;background:linear-gradient(145deg,rgba(59,47,80,.92),rgba(28,25,50,.98));box-shadow:var(--shadow)}.family-photo{width:100%;height:100%;object-fit:cover;object-position:center}.welcome-copy{display:flex;flex-direction:column;justify-content:center;padding:20px 18px}.eyebrow{color:var(--amber);font-size:11px;letter-spacing:.08em}.welcome-card h1{margin:7px 0 5px;font-size:clamp(24px,7vw,34px);line-height:1.08}.welcome-card p{margin:0;color:#ded5e6;font-size:12px;line-height:1.6}.primary-button,.secondary-button{border-radius:14px;padding:11px 15px;font-weight:760}.primary-button{border:0;color:#3b250e;background:linear-gradient(135deg,var(--amber2),var(--amber));box-shadow:0 9px 24px rgba(233,154,67,.22)}.secondary-button{border:1px solid var(--line);color:var(--text);background:rgba(255,255,255,.06)}.continue-button{align-self:flex-start;margin-top:13px;padding:10px 16px}.home-stack{display:grid;gap:10px;margin-top:11px}.conversation-card,.memory-preview,.light-links button,.quiet-status,.door-note,.panel{border:1px solid var(--line);background:linear-gradient(145deg,rgba(38,33,62,.9),rgba(45,37,67,.78));box-shadow:0 10px 30px rgba(0,0,0,.14)}.conversation-card{width:100%;display:flex;align-items:center;gap:12px;padding:15px;border-radius:19px;color:var(--text);text-align:left}.crystal-mark{width:34px;height:34px;flex:0 0 auto;transform:rotate(45deg);border:1px solid rgba(219,208,255,.7);border-radius:9px 2px 9px 2px;background:linear-gradient(145deg,rgba(255,255,255,.34),rgba(155,133,213,.2));box-shadow:inset 0 0 13px rgba(255,255,255,.15),0 0 18px rgba(169,151,220,.18)}.card-copy{display:block;flex:1;min-width:0}.card-copy small,.memory-preview small,.quiet-status small,.door-note small{display:block;color:var(--amber);font-size:10px;letter-spacing:.08em}.card-copy strong{display:block;margin:3px 0;font-size:15px}.card-copy>span{display:block;color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arrow{color:var(--mist);font-size:26px}.memory-preview{padding:16px;border-radius:19px}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.card-heading h2{margin:4px 0 0;font-size:17px}.text-button{border:0;color:var(--mist);background:transparent;font-size:12px}.memory-preview p{margin:12px 0 0;color:#eee6f2;font-size:13px;line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.light-links{display:grid;grid-template-columns:1fr 1fr;gap:9px}.light-links button{display:flex;align-items:center;gap:10px;padding:13px;border-radius:17px;color:var(--text);text-align:left}.light-links strong,.light-links small{display:block}.light-links strong{font-size:13px}.light-links small{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.35}.line-icon{position:relative;width:26px;height:26px;flex:0 0 auto}.line-icon.butterfly:before,.line-icon.butterfly:after{content:"";position:absolute;top:5px;width:11px;height:15px;border:1px solid var(--mist);border-radius:70% 30% 65% 35%}.line-icon.butterfly:before{left:1px;transform:rotate(-22deg)}.line-icon.butterfly:after{right:1px;transform:rotate(22deg)}.line-icon.book{border:1px solid var(--amber);border-radius:3px}.line-icon.book:after{content:"";position:absolute;left:50%;top:2px;bottom:2px;border-left:1px solid var(--amber)}.quiet-status{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:center;margin-top:10px;padding:13px 14px;border-radius:18px}.quiet-status strong{display:block;margin:3px 0;font-size:19px}.quiet-status>div>span:not(.energy-track){display:block;color:var(--muted);font-size:10px}.quiet-status button{border:1px solid rgba(255,193,107,.28);border-radius:12px;padding:9px 10px;color:var(--amber);background:rgba(255,193,107,.07);font-size:11px}.energy-track{display:block;width:75px;height:5px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.08)}.energy-track i{display:block;width:62%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--mist),var(--amber));transition:width .3s}.door-note{margin-top:10px;padding:15px;border-radius:19px}blockquote{margin:9px 0 0;color:#f6edf7;font-size:14px;line-height:1.65}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:10px 2px 13px}.section-heading h2{margin:2px 0 0;font-size:25px}.section-heading>span{color:var(--muted);font-size:11px}.section-kicker{color:var(--amber);font-size:10px;letter-spacing:.16em;font-weight:800}.panel{padding:16px;border-radius:20px}.chat-panel{min-height:calc(100vh - 175px);display:flex;flex-direction:column}.messages{display:flex;flex:1;flex-direction:column;gap:10px;padding-bottom:15px}.message{max-width:84%;padding:11px 13px;border-radius:17px;font-size:13px;line-height:1.58}.message.assistant{align-self:flex-start;border:1px solid var(--line);border-bottom-left-radius:6px;background:rgba(255,255,255,.065)}.message.user{align-self:flex-end;border-bottom-right-radius:6px;background:linear-gradient(135deg,#806dad,#a979a4)}.composer{position:sticky;bottom:82px;display:flex;gap:7px;padding:7px;border:1px solid var(--line);border-radius:18px;background:rgba(20,18,37,.9);backdrop-filter:blur(18px)}.composer input{min-width:0;flex:1;border:0;outline:0;padding:9px;color:var(--text);background:transparent}.composer button{border:0;border-radius:12px;padding:0 15px;color:#3b260f;background:var(--amber);font-weight:780}.album-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.album-card{margin:0;overflow:hidden;border:1px solid var(--line);border-radius:19px;background:var(--panel)}.album-card-wide{grid-column:1/-1}.album-card img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}.album-card-wide img{aspect-ratio:4/3}.album-card figcaption{padding:10px 12px;color:var(--muted);font-size:11px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:13px 0}.form-grid label span,.memory-label{display:block;margin-bottom:5px;color:var(--muted);font-size:11px}.form-grid input,textarea{width:100%;border:1px solid var(--line);border-radius:13px;outline:0;padding:11px;color:var(--text);background:rgba(255,255,255,.06)}.sleep-result{margin:11px 0 14px;color:var(--amber);font-size:29px;font-weight:820}.timeline-panel{margin-top:11px}details{padding:12px 0;border-top:1px solid var(--line)}summary{font-weight:720;cursor:pointer}details p{color:var(--muted);font-size:12px}textarea{min-height:96px;resize:vertical}.button-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:13px}.memory-list{display:grid;gap:9px;margin-top:11px}.memory-card{padding:13px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.055)}.memory-card time{display:block;margin-bottom:5px;color:var(--amber);font-size:10px}.memory-card p{margin:0;white-space:pre-wrap;color:#f6eef9;font-size:13px;line-height:1.6}.empty-state{padding:26px 9px;color:var(--muted);text-align:center}.bottom-nav{position:fixed;left:50%;bottom:max(10px,env(safe-area-inset-bottom));z-index:20;display:grid;width:min(520px,calc(100% - 20px));grid-template-columns:repeat(5,1fr);transform:translateX(-50%);padding:6px;border:1px solid var(--line);border-radius:20px;background:rgba(24,21,41,.93);box-shadow:0 13px 40px rgba(0,0,0,.35);backdrop-filter:blur(20px)}.bottom-nav button{border:0;border-radius:14px;padding:7px 2px;color:#9990a8;background:transparent;font-size:10px}.bottom-nav button span{display:block;margin-bottom:1px;font-size:17px;line-height:1.1}.bottom-nav button.active{color:#fff3df;background:rgba(255,255,255,.09)}.toast{position:fixed;left:50%;bottom:96px;z-index:30;max-width:calc(100% - 34px);padding:10px 14px;border-radius:999px;opacity:0;transform:translate(-50%,16px);pointer-events:none;color:#402c19;background:#fff4df;font-weight:740;font-size:12px;transition:.25s}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(max-width:430px){.welcome-card{grid-template-columns:41% 1fr;min-height:204px}.welcome-copy{padding:16px 14px}.welcome-card h1{font-size:25px}.welcome-card p{font-size:11px}.family-photo{object-position:53% center}.light-links small{display:none}.quiet-status{gap:8px;padding:12px}.quiet-status button{padding:8px}.form-grid{grid-template-columns:1fr}}
@media(min-width:700px){.app-shell{padding-top:16px}.welcome-card{grid-template-columns:320px 1fr;min-height:280px}.welcome-copy{padding:34px}.home-stack{grid-template-columns:1.15fr .85fr}.conversation-card{grid-column:1}.memory-preview{grid-column:2;grid-row:1/3}.light-links{grid-column:1}.quiet-status,.door-note{margin-top:12px}.family-photo{max-height:320px}.bottom-nav{width:500px}}

.reading-room{position:relative;overflow:hidden;padding:24px 18px 18px;margin-bottom:12px;border:1px solid rgba(210,193,255,.2);border-radius:24px;background:radial-gradient(circle at 88% 8%,rgba(170,145,224,.18),transparent 26%),linear-gradient(155deg,rgba(22,21,34,.98),rgba(43,37,52,.94));box-shadow:0 18px 48px rgba(0,0,0,.22)}
.reading-room:before,.reading-room:after{content:"";position:absolute;pointer-events:none;border:1px solid rgba(213,198,240,.13);border-radius:40% 60% 55% 45%}
.reading-room:before{width:180px;height:220px;right:-100px;top:-110px;transform:rotate(28deg)}
.reading-room:after{width:120px;height:160px;left:-72px;bottom:22px;transform:rotate(-20deg)}
.reading-room h3{position:relative;max-width:360px;margin:10px 0 18px;font-family:"Songti SC","STSong",serif;font-size:27px;font-weight:500;line-height:1.38;letter-spacing:.03em;color:#fff5eb}
.reading-progress{position:relative;display:flex;align-items:end;gap:12px}.reading-progress small{display:block;color:var(--muted);font-size:10px}.reading-progress strong{display:block;margin-top:2px;font-family:Georgia,serif;font-size:29px;font-weight:400;color:#f4d7bd}.reading-track{display:block;width:min(190px,48%);height:7px;margin-bottom:8px;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(0,0,0,.25)}.reading-track i{display:block;width:68%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#d8b184,#f4d6b1);box-shadow:0 0 12px rgba(244,214,177,.35)}
.reading-button{position:relative;width:100%;margin:14px 0 20px;padding:13px;border:1px solid rgba(217,202,244,.28);border-radius:999px;color:#fff8f0;background:linear-gradient(135deg,rgba(116,93,146,.58),rgba(89,73,107,.48));box-shadow:inset 0 0 20px rgba(255,255,255,.06),0 0 18px rgba(169,151,220,.12);font-family:"Songti SC","STSong",serif;font-size:17px}
.reading-dialogue{position:relative;display:grid;gap:12px}.reading-message{max-width:88%}.reading-message small{display:block;margin:0 8px 5px;font-size:11px}.reading-message p{margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:17px;line-height:1.65;font-size:13px}.reading-message.lulu{justify-self:start}.reading-message.lulu small{color:#d8cfea}.reading-message.lulu p{border-bottom-left-radius:4px;background:rgba(91,84,109,.45)}.reading-message.amber{justify-self:end}.reading-message.amber small{text-align:right;color:#e4ad68}.reading-message.amber p{border-color:rgba(229,173,104,.25);border-bottom-right-radius:4px;background:rgba(113,78,53,.34)}
.reading-composer{position:relative;display:flex;align-items:center;gap:8px;margin-top:17px;padding:7px 8px 7px 12px;border:1px solid rgba(213,198,240,.2);border-radius:999px;background:rgba(255,255,255,.045)}.reading-composer>span{color:#f4dfc9}.reading-composer input{min-width:0;flex:1;border:0;outline:0;padding:8px 2px;color:var(--text);background:transparent}.reading-composer button{width:36px;height:36px;border:1px solid rgba(201,178,241,.35);border-radius:50%;color:#fff;background:rgba(136,111,177,.45)}.subsection-title{display:flex;align-items:center;justify-content:space-between;margin:20px 2px 10px}.subsection-title span{font-size:17px;font-weight:760}.subsection-title small{color:var(--muted);font-size:10px}
@media(min-width:700px){.reading-room{padding:32px}.reading-room h3{font-size:32px}.reading-dialogue{padding:0 30px}.reading-composer{margin-left:30px;margin-right:30px}}
