@keyframes heartPagePulse{0%,to{opacity:var(--base-opacity, 0.7);transform:translateY(0)}50%{opacity:1;transform:translateY(-1px)}}@keyframes heartGlowPulse{0%,to{opacity:.4;r:12}50%{opacity:.8;r:16}}@keyframes sparkFloat{0%{opacity:0;transform:translateY(8px) scale(.5)}20%{opacity:.9}80%{opacity:.6}to{opacity:0;transform:translateY(-20px) scale(.2)}}@keyframes drift{0%{transform:translateY(100vh) rotate(0deg);opacity:0}10%,90%{opacity:.3}to{transform:translateY(-10vh) rotate(360deg);opacity:0}}@keyframes fadeUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes slideIn{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes filmFade{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes filmZoom{0%{transform:scale(1)}to{transform:scale(1.08)}}@keyframes modalSlide{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes ringPulse{0%,to{transform:scale(1);opacity:.3}50%{transform:scale(1.08);opacity:.6}}@keyframes polaroidDrop{0%{opacity:0;transform:rotate(-2deg) translateY(-40px) scale(.9)}to{opacity:1;transform:rotate(-2deg) translateY(0) scale(1)}}@keyframes notifSlide{0%{opacity:0;transform:translateX(-50%) translateY(-20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes hintFade{0%,70%{opacity:1}to{opacity:0}}@keyframes rotateHint{0%,to{transform:rotate(0deg)}50%{transform:rotate(90deg)}}@keyframes mapPulse{0%{width:12px;height:12px;opacity:.4}to{width:40px;height:40px;opacity:0}}@keyframes spinnerRotate{to{transform:rotate(360deg)}}@keyframes checkmarkCircleDraw{to{stroke-dashoffset:0}}@keyframes checkmarkDraw{to{stroke-dashoffset:0}}@keyframes successPop{0%{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}@keyframes duoSlideUp{0%{transform:translateY(60px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes checkPop{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes duoCameraPulse{0%,to{transform:scale(1);opacity:.4}50%{transform:scale(1.15);opacity:.7}}@keyframes duoPulse{0%,to{opacity:.3;transform:scale(.95)}50%{opacity:.8;transform:scale(1.05)}}@keyframes duoReveal{0%{filter:blur(20px);transform:scale(1.1)}to{filter:blur(0);transform:scale(1)}}@keyframes timerBlink{0%,to{opacity:1}50%{opacity:.4}}@keyframes skeletonShimmer{0%{background-position:-200%0}to{background-position:200%0}}@keyframes cardAppear{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideDown{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes iconBounce{0%,to{transform:scale(1)}40%{transform:scale(.85)}70%{transform:scale(1.1)}}@keyframes slideInFromTop{0%{transform:translateX(-50%) translateY(-100%)}to{transform:translateX(-50%) translateY(0)}}@keyframes slideUpTip{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.password-gate{position:fixed;inset:0;z-index:10000;background:#0a0a0f;display:flex;align-items:center;justify-content:center}.password-gate.hidden{display:none}.password-gate-content{text-align:center}:root,[data-theme=classic]{--bg:#0a0a0f;--bg-card:#13131a;--bg-card-hover:#1a1a24;--bg-modal:#111118;--text:#f0f0f5;--text-secondary:#8888a0;--text-muted:#55556a;--accent:#c9a96e;--accent-light:#e2c992;--accent-glow:rgba(var(--accent-rgb, 201, 169, 110), 0.15);--gold:#f0c850;--gold-glow:rgba(240, 200, 80, 0.15);--warm:#f07c6e;--green:#6ef0a0;--blue:#6ec0f0;--radius:16px;--radius-sm:10px;--shadow:0 8px 32px rgba(0,0,0,0.4);--transition:0.3s cubic-bezier(0.4, 0, 0.2, 1);--splash-gradient:linear-gradient(135deg, #0a0a1a 0%, #1a1408 30%, #1a1008 60%, #0a0a1a 100%);--capture-ring-from:#c9a96e;--capture-ring-to:#a68744;--nav-active-color:var(--accent);--accent-rgb:201, 169, 110;--accent-dark:#b8860b;--accent-text-end:#F5DEB3}[data-theme=vintage]{--bg:#0F0E0C;--bg-card:#1A1714;--bg-card-hover:#221F1A;--bg-modal:#15120F;--text:#F5E6C8;--text-secondary:#A89880;--text-muted:#6B5E4E;--accent:#D4A574;--accent-light:#E8C4A0;--accent-glow:rgba(212, 165, 116, 0.15);--gold:#D4A574;--gold-glow:rgba(212, 165, 116, 0.15);--warm:#C47A6E;--green:#7AB88A;--blue:#4A7B7C;--splash-gradient:linear-gradient(135deg, #0F0E0C 0%, #1A1408 30%, #201510 60%, #0F0E0C 100%);--capture-ring-from:#D4A574;--capture-ring-to:#A67C52;--nav-active-color:#D4A574;--accent-rgb:212, 165, 116;--accent-dark:#8B6340;--accent-text-end:#F5E6C8}[data-theme=vintage],[data-theme=vintage] .surface-elevated{--surface-elevated:rgba(212, 165, 116, 0.05);--surface-hover:rgba(212, 165, 116, 0.08);--surface-active:rgba(212, 165, 116, 0.12);--border-subtle:rgba(212, 165, 116, 0.08);--border-accent:rgba(212, 165, 116, 0.2);--border-accent-strong:rgba(212, 165, 116, 0.5)}[data-theme=journal]{--bg:#12100E;--bg-card:#1C1816;--bg-card-hover:#24201C;--bg-modal:#161210;--text:#EDE4D4;--text-secondary:#9A8E7E;--text-muted:#635848;--accent:#6366F1;--accent-light:#818CF8;--accent-glow:rgba(99, 102, 241, 0.15);--gold:#92400E;--gold-glow:rgba(146, 64, 14, 0.15);--warm:#C2775E;--green:#6ABF7B;--blue:#6366F1;--splash-gradient:linear-gradient(135deg, #12100E 0%, #1A1510 30%, #181218 60%, #12100E 100%);--capture-ring-from:#6366F1;--capture-ring-to:#4F46E5;--nav-active-color:#6366F1;--accent-rgb:99, 102, 241;--accent-dark:#4F46E5;--accent-text-end:#C7D2FE;--surface-elevated:rgba(99, 102, 241, 0.05);--surface-hover:rgba(99, 102, 241, 0.08);--surface-active:rgba(99, 102, 241, 0.12);--border-subtle:rgba(99, 102, 241, 0.06);--border-accent:rgba(99, 102, 241, 0.2);--border-accent-strong:rgba(99, 102, 241, 0.5)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{font-family:"Inter",-apple-system,sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden;-webkit-font-smoothing:antialiased}.hidden{display:none!important}.splash{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--splash-gradient);z-index:1000;transition:opacity .8s ease,transform .8s ease}.splash.fade-out{opacity:0;transform:scale(1.1);pointer-events:none}.splash-content{text-align:center;z-index:2;animation:fadeUp 1s ease forwards}.splash-icon{width:80px;height:80px;margin:0 auto 24px;animation:float 3s ease-in-out infinite}.splash-icon.book-heart-icon{width:180px;height:150px;margin:0 auto 32px;animation:float 4s ease-in-out infinite}.splash-icon svg{width:100%;height:100%;filter:drop-shadow(0 0 20px rgba(var(--accent-rgb, 201, 169, 110),.4))}.book-heart-icon svg{filter:drop-shadow(0 0 30px rgba(240,200,80,.35)) drop-shadow(0 0 60px rgba(232,160,64,.15))}.heart-page{animation:heartPagePulse 3s ease-in-out infinite}.hp-l1,.hp-r1{animation-delay:0s}.hp-l2,.hp-r2{animation-delay:.15s}.hp-l3,.hp-r3{animation-delay:.3s}.hp-l4,.hp-r4{animation-delay:.45s}.hp-l5,.hp-r5{animation-delay:.6s}.hp-l1,.hp-r1{--base-opacity:0.5}.hp-l2,.hp-r2{--base-opacity:0.6}.hp-l3,.hp-r3{--base-opacity:0.7}.hp-l4,.hp-r4{--base-opacity:0.85}.hp-l5,.hp-r5{--base-opacity:1}.heart-glow{animation:heartGlowPulse 2.5s ease-in-out infinite}.book-spark{animation:sparkFloat 3s ease-in-out infinite}.s1{animation-delay:0s;animation-duration:3.5s}.s2{animation-delay:.4s;animation-duration:2.8s}.s3{animation-delay:.8s;animation-duration:4s}.s4{animation-delay:1.2s;animation-duration:3.2s}.s5{animation-delay:.6s;animation-duration:3.8s}.s6{animation-delay:1.5s;animation-duration:2.6s}.s7{animation-delay:.2s;animation-duration:4.2s}.s8{animation-delay:1s;animation-duration:3s}.splash-title{font-family:"Playfair Display",serif;font-size:48px;font-weight:700;letter-spacing:2px;margin-bottom:8px;background:linear-gradient(135deg,var(--text),var(--accent-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.splash-subtitle{font-size:16px;color:var(--text-secondary);margin-bottom:48px;font-weight:300;letter-spacing:4px;text-transform:uppercase}.splash-btn{background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;border:0;padding:16px 48px;font-size:16px;font-family:"Inter",sans-serif;font-weight:500;border-radius:50px;transition:var(--transition);letter-spacing:1px}.splash-btn:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(var(--accent-rgb, 201, 169, 110),.4)}.splash-particles{position:absolute;inset:0;overflow:hidden}.particle{position:absolute;width:4px;height:4px;background:var(--gold);border-radius:50%;opacity:.25;animation:drift linear infinite}.particle:nth-child(odd){background:#e8a040}.particle:nth-child(3n){background:var(--accent-light);opacity:.15}.top-header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(10,10,15,.88);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.06);padding:0 16px;padding-top:env(safe-area-inset-top);display:flex;align-items:center;justify-content:space-between;height:48px}.top-header-title{letter-spacing:-.2px}.top-header-logo,.top-header-title{font-family:"Inter",sans-serif;font-size:17px;font-weight:600;color:var(--text)}.top-header-right{display:flex;align-items:center;gap:12px}.streak-badge{background:rgba(240,200,80,.15);color:var(--gold);font-size:13px;font-weight:600;padding:4px 10px;border-radius:20px;border:1px solid rgba(240,200,80,.2)}.profile-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-dark));display:flex;align-items:center;justify-content:center;transition:var(--transition);font-size:14px;font-weight:600;color:#fff}.profile-avatar:active{transform:scale(.92)}.profile-card{position:fixed;top:62px;right:16px;z-index:200;background:var(--bg-card);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);padding:20px;width:260px;box-shadow:var(--shadow);animation:fadeIn .2s ease}.profile-card-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.profile-card-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-dark));display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;color:#fff}.profile-card-name{font-weight:600;font-size:15px}.profile-card-email{font-size:12px;color:var(--text-muted);margin-top:2px}.profile-card-stats{display:flex;justify-content:space-between;padding:12px 0;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:12px}.profile-card-stat{text-align:center}.profile-card-stat strong{display:block;font-size:16px;color:var(--accent-light)}.profile-card-stat span{font-size:11px;color:var(--text-muted)}.profile-card-logout{width:100%;padding:8px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:var(--transition)}.profile-card-logout:hover{background:rgba(255,255,255,.08)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:100;background:rgba(10,10,15,.95);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-top:1px solid rgba(255,255,255,.06);display:flex;justify-content:space-around;align-items:stretch;height:50px;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav-icon,.bottom-nav-item{display:flex;align-items:center;justify-content:center}.bottom-nav-item{flex-direction:column;gap:1px;flex:1;min-height:44px;padding:4px 0 2px;background:0 0;border:0;color:rgba(245,240,232,.35);font-family:"Inter",sans-serif;cursor:pointer;transition:color .2s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;position:relative}.bottom-nav-icon{font-size:20px;line-height:1}.bottom-nav-label{font-size:9px;font-weight:500;letter-spacing:.2px;opacity:.9}.bottom-nav-item:active{transform:scale(.92);transition:transform .05s ease}.bottom-nav-item.active{color:var(--accent)}.bottom-nav-item.active .bottom-nav-icon{transform:none}.more-menu-overlay{position:fixed;inset:0;z-index:150;background:0 0;transition:background .3s ease}.more-menu-overlay.open{background:rgba(0,0,0,.5)}.more-menu{position:fixed;bottom:0;left:0;right:0;z-index:160;background:var(--bg-card);border-top-left-radius:20px;border-top-right-radius:20px;padding:12px 20px;padding-bottom:calc(60px + env(safe-area-inset-bottom));transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:0-8px 32px rgba(0,0,0,.5)}.more-menu.open{transform:translateY(0)}.more-menu-handle{width:36px;height:4px;background:rgba(255,255,255,.2);border-radius:2px;margin:0 auto 16px}.more-menu-item{display:flex;align-items:center;gap:14px;width:100%;padding:14px 16px;background:0 0;border:0;color:var(--text-secondary);font-family:"Inter",sans-serif;font-size:15px;font-weight:500;border-radius:var(--radius-sm);transition:var(--transition);-webkit-tap-highlight-color:transparent}.more-menu-item:active{transform:scale(.97);background:rgba(255,255,255,.04)}.more-menu-item.active,.nav-tab.active{color:var(--gold)}.more-menu-icon{font-size:22px;width:28px;text-align:center}.nav-tab{transition:var(--transition)}.tab-content{display:none;padding:60px 16px 70px;max-width:900px;margin:0 auto;animation:fadeIn .4s ease}.tab-content.active{display:block}.section-header{margin-bottom:32px}.section-header h2{font-family:"Playfair Display",serif;font-size:28px;font-weight:600;margin-bottom:4px;letter-spacing:-.3px}.section-sub{color:var(--text-secondary);font-size:13px;font-weight:400;line-height:1.5;letter-spacing:.1px}.year-selector{display:flex;gap:8px;margin-bottom:32px}.year-btn{padding:8px 20px;background:var(--bg-card);border:1px solid rgba(255,255,255,.06);color:var(--text-secondary);font-family:"Inter",sans-serif;font-size:13px;font-weight:500;border-radius:50px;transition:var(--transition)}.year-btn:hover{border-color:rgba(var(--accent-rgb, 201, 169, 110),.3)}.year-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.timeline{position:relative;padding-left:40px}.timeline::before{content:"";position:absolute;left:15px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--accent),rgba(var(--accent-rgb, 201, 169, 110),.1));border-radius:2px}.timeline-item{position:relative;margin-bottom:32px;animation:slideIn .5s ease forwards;opacity:0}.timeline-dot{position:absolute;left:-33px;top:20px;width:12px;height:12px;background:var(--accent);border-radius:50%;border:3px solid var(--bg);box-shadow:0 0 12px rgba(var(--accent-rgb, 201, 169, 110),.4);z-index:1}.timeline-card{background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.timeline-card:hover{border-color:rgba(var(--accent-rgb, 201, 169, 110),.15);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.3)}.timeline-card:active{transform:scale(.98);transition:transform .1s ease}.timeline-photo{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}.timeline-photo-placeholder{width:100%;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;font-size:64px;background:linear-gradient(135deg,rgba(var(--accent-rgb, 201, 169, 110),.06),rgba(240,124,110,.04))}.timeline-info{padding:16px 20px 20px}.timeline-date{font-size:11px;color:var(--accent-light, var(--text-muted));font-weight:500;letter-spacing:1px;text-transform:uppercase;margin-bottom:4px;opacity:.7}.timeline-title{font-family:"Playfair Display",serif;font-size:17px;font-weight:600;margin-bottom:8px;line-height:1.35;color:var(--text)}.timeline-friends{display:flex;gap:6px;flex-wrap:wrap}.timeline-friend-tag{padding:4px 12px;background:rgba(var(--accent-rgb, 201, 169, 110),.1);color:var(--accent-light);font-size:12px;border-radius:50px;font-weight:500}.timeline-category{display:inline-block;padding:3px 10px;font-size:11px;font-weight:500;border-radius:50px;margin-top:10px;letter-spacing:.5px;text-transform:uppercase}.cat-reise{background:rgba(110,192,240,.15);color:var(--blue)}.cat-feier{background:rgba(240,200,80,.15);color:var(--gold)}.cat-abenteuer{background:rgba(240,124,110,.15);color:var(--warm)}.cat-alltag{background:rgba(110,240,160,.15);color:var(--green)}.cat-meilenstein{background:rgba(var(--accent-rgb, 201, 169, 110),.15);color:var(--accent-light)}.friends-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.friend-avatar,.friend-card{display:flex;align-items:center;overflow:hidden}.friend-card{background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);padding:16px;transition:var(--transition);position:relative;flex-direction:column;text-align:center}.friend-card:active{background:rgba(255,255,255,.03)}.friend-card:hover{border-color:rgba(var(--accent-rgb, 201, 169, 110),.15)}.friend-avatar{width:52px;height:52px;border-radius:50%;justify-content:center;background:rgba(201,169,110,.08);margin-bottom:8px;flex-shrink:0}.achievement-icon img,.friend-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.friend-name{font-family:"Inter",sans-serif;font-size:15px;font-weight:600;margin-bottom:2px;color:var(--text)}.friend-since{font-size:11px;color:var(--text-muted);margin-bottom:8px}.friend-stats{display:flex;gap:12px;margin-top:4px}.friend-stat{text-align:center}.friend-stat-num{font-size:15px;font-weight:600;color:var(--accent-light)}.friend-stat-label{font-size:10px;color:var(--text-muted);letter-spacing:.3px}.friend-flame{position:absolute;top:10px;right:10px;font-size:13px;display:flex;align-items:center;gap:3px;color:#f0c850;font-weight:600}.achievements-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}.stat-card{background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);padding:24px;text-align:center}.stat-number{font-family:"Playfair Display",serif;font-size:36px;font-weight:700;background:linear-gradient(135deg,var(--accent-light),var(--gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.stat-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-top:4px}.achievements-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.achievement-card{background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);padding:24px;text-align:center;transition:var(--transition);position:relative}.achievement-card.locked{opacity:.4}.achievement-card:not(.locked):hover{transform:translateY(-4px);border-color:rgba(240,200,80,.3);box-shadow:0 8px 32px rgba(240,200,80,.1)}.achievement-icon{font-size:40px;margin-bottom:12px;display:block;width:56px;height:56px;border-radius:50%;overflow:hidden;margin-left:auto;margin-right:auto}.achievement-title{font-family:"Playfair Display",serif;font-size:16px;font-weight:600;margin-bottom:6px}.achievement-desc{font-size:12px;color:var(--text-secondary);line-height:1.5}.achievement-badge{position:absolute;top:-8px;right:-8px;background:var(--gold);color:#1a1a24;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;box-shadow:0 4px 12px rgba(240,200,80,.4)}.achievement-progress{margin-top:12px;height:4px;background:rgba(255,255,255,.06);border-radius:4px;overflow:hidden}.achievement-progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--gold));border-radius:4px;transition:width 1s ease}.book-preview{display:flex;flex-direction:column;gap:24px}.book-cover{background:linear-gradient(135deg,#1a1508,#2a2010,#1a1508);border:1px solid rgba(var(--accent-rgb, 201, 169, 110),.2);border-radius:var(--radius);padding:60px 40px;text-align:center;position:relative;overflow:hidden}.book-cover::before{content:"";position:absolute;inset:8px;border:1px solid rgba(240,200,80,.2);border-radius:12px;pointer-events:none}.book-cover-title{font-family:"Playfair Display",serif;font-size:36px;font-weight:700;margin-bottom:8px;background:linear-gradient(135deg,var(--gold),#f0e0a0);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.book-cover-subtitle{font-family:"Caveat",cursive;font-size:22px;color:var(--text-secondary);margin-bottom:32px}.book-cover-years{font-size:14px;color:var(--text-muted);letter-spacing:4px}.book-chapter{background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);overflow:hidden}.book-chapter-header{padding:24px;border-bottom:1px solid rgba(255,255,255,.06);display:flex;align-items:center;justify-content:space-between}.book-chapter-title{font-family:"Playfair Display",serif;font-size:22px;font-weight:600}.book-chapter-count{font-size:13px;color:var(--text-muted)}.book-moments{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:2px}.book-moment{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:32px;background:linear-gradient(135deg,rgba(var(--accent-rgb, 201, 169, 110),.05),rgba(240,124,110,.05));cursor:pointer;transition:var(--transition);position:relative}.book-moment:hover{background:linear-gradient(135deg,rgba(var(--accent-rgb, 201, 169, 110),.15),rgba(240,124,110,.15));transform:scale(1.02);z-index:1}.book-moment-label{position:absolute;bottom:8px;left:8px;right:8px;font-size:10px;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.7);text-align:center;opacity:0;transition:var(--transition)}.book-moment:hover .book-moment-label{opacity:1}.book-actions{display:flex;gap:12px;margin-top:8px}.book-action-btn{flex:1;padding:16px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.06);background:var(--bg-card);color:var(--text);font-family:"Inter",sans-serif;font-size:14px;font-weight:500;cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center;gap:10px}.book-action-btn:hover{border-color:rgba(var(--accent-rgb, 201, 169, 110),.3);background:var(--bg-card-hover)}.book-action-btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent-dark));border-color:transparent}.book-action-btn.primary:hover{box-shadow:0 8px 32px rgba(var(--accent-rgb, 201, 169, 110),.3);transform:translateY(-2px)}.book-action-btn svg{width:20px;height:20px}.film-container{text-align:center;padding:40px 20px}.film-slide{display:none;animation:filmFade .8s ease}.film-slide.active{display:block}.film-emoji,.film-photo{margin-bottom:24px;animation:float 3s ease-in-out infinite}.film-emoji{font-size:80px;display:block}.film-photo{width:160px;height:160px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.15);box-shadow:0 8px 32px rgba(0,0,0,.3)}.film-fullbleed{padding:0!important;position:relative}.film-fullbleed .film-slide{position:relative;min-height:360px;overflow:hidden;border-radius:var(--radius)}.film-fullbleed-bg{position:absolute;inset:0;background-size:cover;background-position:center;animation:filmZoom 6s ease-in-out infinite alternate}.film-fullbleed-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.7)0,rgba(0,0,0,.1) 50%,rgba(0,0,0,.3) 100%)}.film-fullbleed-content{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;min-height:360px;padding:32px 24px}.film-fullbleed .film-text{font-size:28px;text-shadow:0 2px 12px rgba(0,0,0,.5)}.film-fullbleed .film-subtext{text-shadow:0 1px 8px rgba(0,0,0,.5)}.film-fullbleed .film-nav,.film-fullbleed .film-progress{padding:0 24px;position:relative;z-index:2}.film-text{font-family:"Playfair Display",serif;font-size:28px;font-weight:600;margin-bottom:12px;line-height:1.4}.film-subtext,.form-group label{font-size:16px;color:var(--text-secondary);font-weight:300;margin-bottom:32px}.film-progress{display:flex;gap:6px;justify-content:center;margin-top:32px}.film-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.15);transition:var(--transition)}.film-dot.active{background:var(--accent);box-shadow:0 0 8px rgba(var(--accent-rgb, 201, 169, 110),.5)}.film-nav{display:flex;justify-content:center;gap:16px;margin-top:24px}.film-nav-btn{padding:10px 28px;border-radius:50px;border:1px solid rgba(255,255,255,.1);background:0 0;color:var(--text);font-family:"Inter",sans-serif;font-size:14px;cursor:pointer;transition:var(--transition)}.film-nav-btn:hover{background:rgba(255,255,255,.05)}.film-nav-btn.primary{background:var(--accent);border-color:var(--accent)}.modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:fadeIn .3s ease}.modal-content{background:var(--bg-modal);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);width:90%;max-width:600px;max-height:85vh;overflow-y:auto;position:relative;animation:modalSlide .4s ease}.modal-close{position:absolute;top:16px;right:16px;background:rgba(255,255,255,.06);border:0;color:var(--text-secondary);width:36px;height:36px;border-radius:50%;font-size:20px;cursor:pointer;transition:var(--transition);z-index:10;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:rgba(255,255,255,.1);color:var(--text)}.modal-film{max-width:500px;min-height:400px}.friend-detail-header{padding:40px 32px 24px;text-align:center;border-bottom:1px solid rgba(255,255,255,.06)}.friend-detail-avatar{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden}.friend-detail-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;font-size:36px;margin:0 auto 16px;background:linear-gradient(135deg,var(--accent-glow),rgba(240,124,110,.1));border:2px solid rgba(var(--accent-rgb, 201, 169, 110),.3)}.friend-detail-name,.friend-detail-timeline h4,.modal-form h3{font-family:"Playfair Display",serif}.friend-detail-name{font-size:28px;font-weight:600;margin-bottom:4px}.friend-detail-since,.novel-card-info p{font-size:13px;color:var(--text-muted)}.friend-detail-stats{display:flex;justify-content:center;gap:32px;padding:20px}.friend-detail-timeline{padding:24px 32px}.friend-detail-timeline h4{font-size:18px;margin-bottom:16px;color:var(--text-secondary)}.friend-event{display:flex;gap:16px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.04);align-items:center}.friend-event-emoji{font-size:28px;flex-shrink:0;width:40px;height:40px;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center}.friend-event-emoji img{width:100%;height:100%;object-fit:cover;border-radius:8px}.friend-event-info{flex:1}.friend-event-title{font-size:14px;font-weight:500;margin-bottom:2px}.friend-event-date{font-size:12px;color:var(--text-muted)}.friend-detail-actions{padding:24px 32px;display:flex;gap:12px}.form-group input[type=date],.form-group input[type=text],.friend-action-btn{border:1px solid rgba(255,255,255,.08);font-family:"Inter",sans-serif;transition:var(--transition)}.friend-action-btn{flex:1;background:var(--bg-card);font-weight:500;text-align:center}.friend-action-btn:hover{background:var(--bg-card-hover);border-color:rgba(var(--accent-rgb, 201, 169, 110),.2)}.friend-action-btn.primary{background:var(--accent);border-color:transparent;color:#fff}.modal-form{padding:32px}.modal-form h3{font-size:24px;margin-bottom:24px}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:13px;font-weight:500;margin-bottom:8px}.form-group input[type=date],.form-group input[type=text]{width:100%;padding:12px 16px;background:rgba(255,255,255,.04);border-radius:var(--radius-sm);color:var(--text);font-size:14px}.form-group input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.friend-select{display:flex;flex-wrap:wrap;gap:8px}.friend-chip{padding:6px 14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:50px;font-size:13px;cursor:pointer;transition:var(--transition)}.friend-chip:hover{border-color:rgba(var(--accent-rgb, 201, 169, 110),.3)}.friend-chip.selected{background:var(--accent-glow);border-color:var(--accent);color:var(--accent-light)}.category-select{display:flex;flex-wrap:wrap;gap:8px}.capture-friend-picker label,.cat-btn{font-size:13px;color:var(--text-secondary)}.cat-btn,.photo-upload{transition:var(--transition)}.cat-btn{padding:6px 14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:50px}.cat-btn:hover{border-color:rgba(var(--accent-rgb, 201, 169, 110),.3)}.cat-btn.active{background:var(--accent-glow);border-color:var(--accent);color:var(--accent-light)}.photo-upload{display:flex;align-items:center;justify-content:center;gap:12px;padding:32px;border:2px dashed rgba(255,255,255,.08);border-radius:var(--radius);cursor:pointer;color:var(--text-muted)}.photo-upload:hover{border-color:rgba(var(--accent-rgb, 201, 169, 110),.3);color:var(--text-secondary)}.fab,.submit-btn{background:linear-gradient(135deg,var(--accent),var(--accent-dark));border:0;color:#fff;transition:var(--transition)}.submit-btn{width:100%;padding:14px;border-radius:var(--radius-sm);font-family:"Inter",sans-serif;font-size:15px;font-weight:500}.submit-btn:hover{box-shadow:0 8px 24px rgba(var(--accent-rgb, 201, 169, 110),.3);transform:translateY(-1px)}.fab{position:fixed;bottom:32px;right:32px;width:56px;height:56px;border-radius:50%;box-shadow:0 8px 24px rgba(var(--accent-rgb, 201, 169, 110),.4);display:flex;align-items:center;justify-content:center;z-index:50}.fab:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 12px 36px rgba(var(--accent-rgb, 201, 169, 110),.5)}.fab svg{width:24px;height:24px}.capture-hero{text-align:center;padding:40px 0}.capture-timer{font-family:"Caveat",cursive;font-size:18px;color:var(--warm);margin-bottom:24px;animation:pulse 2s ease-in-out infinite}.capture-circle,.capture-circle-inner{border-radius:50%;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.capture-circle{width:180px;height:180px;margin:0 auto 32px;cursor:pointer;position:relative}.capture-circle-inner{width:160px;height:160px;background:linear-gradient(135deg,var(--capture-ring-from),var(--capture-ring-to))}.capture-circle:hover .capture-circle-inner{transform:scale(1.05);box-shadow:0 0 40px rgba(var(--accent-rgb),.5)}.capture-circle-ring{position:absolute;inset:0;border-radius:50%;border:3px solid rgba(var(--accent-rgb, 201, 169, 110),.3);animation:ringPulse 3s ease-in-out infinite}.capture-circle svg{width:48px;height:48px;color:#fff}.capture-label{font-family:"Playfair Display",serif;font-size:22px;font-weight:600;margin-bottom:8px}.capture-sublabel{font-size:14px;color:var(--text-muted)}.capture-friend-picker{margin-top:32px;text-align:center}.capture-friend-picker label{display:block;margin-bottom:12px;font-weight:500}.capture-friend-row{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.capture-friend-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 16px;background:var(--bg-card);border:2px solid rgba(255,255,255,.06);border-radius:var(--radius);cursor:pointer;transition:var(--transition);min-width:72px}.capture-friend-btn:hover{border-color:rgba(var(--accent-rgb, 201, 169, 110),.3)}.capture-friend-btn.selected{border-color:var(--accent);background:var(--accent-glow)}.capture-friend-btn .emoji{font-size:28px;width:36px;height:36px;display:flex;align-items:center;justify-content:center}.capture-friend-btn .emoji img,.chip-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover}.chip-avatar{width:20px;height:20px;vertical-align:middle;margin-right:2px}.capture-friend-btn .name{font-size:11px;color:var(--text-secondary);font-weight:500}.capture-done{text-align:center;padding:32px 0}.capture-done-polaroid{width:240px;margin:0 auto 24px;background:#f5f5f0;padding:16px 16px 48px;border-radius:4px;box-shadow:0 8px 32px rgba(0,0,0,.3);transform:rotate(-2deg);animation:polaroidDrop .6s ease}.capture-done-img{width:100%;aspect-ratio:1;background:linear-gradient(135deg,rgba(var(--accent-rgb, 201, 169, 110),.2),rgba(240,124,110,.2));display:flex;align-items:center;justify-content:center;overflow:hidden}.capture-done-img img{width:100%;height:100%;object-fit:cover;font-size:56px;border-radius:2px}.capture-done-caption{font-family:"Caveat",cursive;font-size:18px;color:#333;margin-top:12px;text-align:center}.capture-done-meta{margin-top:24px}.capture-done-title,.daily-history h3{font-family:"Playfair Display",serif;font-size:22px;font-weight:600;margin-bottom:6px}.capture-done-date,.shared-books-header p{font-size:13px;color:var(--text-muted);margin-bottom:16px}.capture-streak{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;background:rgba(240,124,110,.1);border-radius:50px;font-size:14px;font-weight:500;color:var(--warm)}.daily-history{margin-top:40px}.daily-history h3{font-size:20px;margin-bottom:16px}.daily-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}.daily-card{background:#f5f5f0;padding:10px 10px 32px;border-radius:4px;box-shadow:0 4px 16px rgba(0,0,0,.2);cursor:pointer;transition:var(--transition)}.daily-card:hover{transform:translateY(-4px) rotate(-1deg);box-shadow:0 8px 24px rgba(0,0,0,.3)}.daily-card:nth-child(even){transform:rotate(1deg)}.daily-card:nth-child(even):hover{transform:translateY(-4px) rotate(2deg)}.daily-card-img{width:100%;aspect-ratio:1;background:linear-gradient(135deg,rgba(var(--accent-rgb, 201, 169, 110),.15),rgba(240,124,110,.15));display:flex;align-items:center;justify-content:center;overflow:hidden}.daily-card-img img{width:100%;height:100%;object-fit:cover;font-size:40px;border-radius:2px}.daily-card-text{font-family:"Caveat",cursive;font-size:14px;color:#555;margin-top:8px;text-align:center}.trips-active-section,.trips-past-section{margin-bottom:32px}.trip-card-info h4,.trips-section-title{font-family:"Playfair Display",serif;font-size:20px;font-weight:600}.trips-section-title{margin-bottom:16px;display:flex;align-items:center;gap:10px}.trips-section-title .live-dot{width:10px;height:10px;background:var(--green);border-radius:50%;animation:pulse 1.5s ease-in-out infinite;box-shadow:0 0 8px rgba(110,240,160,.5)}.trip-card,.trip-photo img{transition:var(--transition)}.trip-card{background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);overflow:hidden;margin-bottom:20px}.trip-card:hover{border-color:rgba(var(--accent-rgb, 201, 169, 110),.2);box-shadow:var(--shadow)}.trip-card.active{border-color:rgba(110,240,160,.3)}.trip-card-header{padding:20px 24px;display:flex;justify-content:space-between;align-items:flex-start}.trip-card-info h4{margin-bottom:4px}.trip-card-meta{font-size:13px;color:var(--text-muted);display:flex;gap:16px;margin-top:6px}.trip-card-status{padding:4px 12px;border-radius:50px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.trip-card-status.live{background:rgba(110,240,160,.15);color:var(--green)}.trip-card-status.ended{background:rgba(136,136,160,.15);color:var(--text-secondary)}.trip-card-status.upcoming{background:rgba(110,192,240,.15);color:var(--blue)}.trip-card-friends{padding:0 24px 16px;display:flex;gap:6px;flex-wrap:wrap}.trip-photos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}.trip-photo{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:28px;background:linear-gradient(135deg,rgba(var(--accent-rgb, 201, 169, 110),.05),rgba(240,124,110,.05));overflow:hidden}.trip-photo img{width:100%;height:100%;object-fit:cover;cursor:pointer}.trip-photo:hover{background:linear-gradient(135deg,rgba(var(--accent-rgb, 201, 169, 110),.15),rgba(240,124,110,.15))}.trip-card-actions{padding:16px 24px;display:flex;gap:10px;border-top:1px solid rgba(255,255,255,.04)}.trip-action,.trip-add-photo{cursor:pointer;transition:var(--transition);font-size:12px}.trip-action{padding:8px 16px;border-radius:50px;border:1px solid rgba(255,255,255,.08);background:0 0;color:var(--text-secondary);font-family:"Inter",sans-serif;font-weight:500}.trip-action:hover{background:rgba(255,255,255,.04);color:var(--text)}.trip-action.primary{background:var(--accent);color:#fff;border-color:transparent}.trip-add-photo{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:rgba(var(--accent-rgb, 201, 169, 110),.08);border:2px dashed rgba(var(--accent-rgb, 201, 169, 110),.2);color:var(--accent-light)}.trip-add-photo:hover{background:rgba(var(--accent-rgb, 201, 169, 110),.15);border-color:var(--accent)}.trip-add-photo svg{width:24px;height:24px}.capture-notification{position:fixed;top:80px;left:50%;transform:translateX(-50%) translateY(-20px);z-index:300;animation:notifSlide .4s ease forwards}.capture-notification.hidden{display:none}.capture-notif-content{background:rgba(20,20,30,.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(110,240,160,.3);border-radius:var(--radius);padding:16px 32px;text-align:center;box-shadow:0 8px 32px rgba(0,0,0,.4)}.capture-notif-icon{font-size:32px;margin-bottom:4px}.capture-notif-text{font-family:"Playfair Display",serif;font-size:18px;font-weight:600;color:var(--green)}.capture-notif-sub{font-size:12px;color:var(--text-muted);margin-top:2px}.mode-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:10px;font-weight:600;border-radius:50px;text-transform:uppercase;letter-spacing:.5px;margin-left:8px;margin-top:8px;vertical-align:middle}.mode-badge svg{flex-shrink:0}.mode-daily{background:rgba(240,200,80,.15);color:var(--gold)}.mode-trip{background:rgba(110,192,240,.15);color:var(--blue)}.legacy-settings{background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);padding:32px;margin-bottom:24px}.legacy-settings h3,.novel-card-info h4,.novel-reader-cover h2{font-family:"Playfair Display",serif;font-size:22px;font-weight:600;margin-bottom:8px}.legacy-settings-sub{font-size:13px;color:var(--text-muted);margin-bottom:24px;line-height:1.6}.legacy-heirs{display:flex;flex-direction:column;gap:12px}.legacy-heir{display:flex;align-items:center;justify-content:space-between;padding:16px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.04);border-radius:var(--radius-sm);transition:var(--transition)}.legacy-heir:hover{border-color:rgba(var(--accent-rgb, 201, 169, 110),.2)}.legacy-heir-info{display:flex;align-items:center;gap:14px}.legacy-heir-avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;background:linear-gradient(135deg,var(--accent-glow),rgba(240,124,110,.1));border:2px solid rgba(var(--accent-rgb, 201, 169, 110),.2)}.legacy-heir-name{font-weight:500;font-size:14px}.legacy-heir-relation{font-size:12px;color:var(--text-muted)}.legacy-toggle{position:relative;width:48px;height:26px;background:rgba(255,255,255,.08);border-radius:13px;cursor:pointer;transition:var(--transition);border:0}.legacy-toggle.active{background:var(--accent)}.legacy-toggle::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:var(--transition)}.legacy-toggle.active::after{left:25px}.novel-section{margin-bottom:24px}.novel-section-title{font-family:"Playfair Display",serif;font-size:20px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:10px}.novel-card{background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:var(--transition);margin-bottom:16px}.novel-card:hover{border-color:rgba(240,200,80,.3);transform:translateY(-2px);box-shadow:0 8px 32px rgba(240,200,80,.1)}.novel-card-header{padding:24px;display:flex;align-items:center;gap:16px}.novel-card-avatar{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;background:linear-gradient(135deg,var(--accent-glow),rgba(240,200,80,.1));border:2px solid rgba(240,200,80,.2);flex-shrink:0}.novel-card-info h4,.novel-reader-cover h2{font-size:18px;margin-bottom:4px}.novel-card-preview,.novel-card-stats{border-top:1px solid rgba(255,255,255,.04)}.novel-card-preview{font-family:"Caveat",cursive;font-size:17px;color:var(--text-secondary);line-height:1.6;font-style:italic;padding:16px 24px 24px;margin:0 24px}.novel-card-stats{padding:16px 24px;display:flex;gap:20px;font-size:12px;color:var(--text-muted)}.modal-novel{max-width:700px;max-height:90vh}.novel-reader{padding:40px}.novel-reader-cover{text-align:center;padding:48px 32px;margin-bottom:32px;background:linear-gradient(135deg,#1a1508,#2a2010);border-radius:var(--radius);position:relative;overflow:hidden}.novel-reader-cover::before{content:"";position:absolute;inset:6px;border:1px solid rgba(240,200,80,.15);border-radius:12px;pointer-events:none}.novel-reader-cover .avatar{font-size:56px;margin-bottom:16px;display:block}.novel-reader-cover h2{font-size:28px;font-weight:700;background:linear-gradient(135deg,var(--gold),#f0e0a0);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.novel-reader-cover .subtitle{font-family:"Caveat",cursive;font-size:18px;color:var(--text-secondary);margin-bottom:24px}.novel-reader-cover .years{font-size:13px;color:var(--text-muted);letter-spacing:3px}.novel-chapter{margin-bottom:40px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.04)}.cross-connection-item:last-child,.novel-chapter:last-child{border-bottom:none}.cross-connections h3,.novel-chapter-title{font-family:"Playfair Display",serif;font-weight:600}.novel-chapter-title{font-size:22px;margin-bottom:6px;color:var(--gold)}.novel-chapter-date{font-size:12px;color:var(--text-muted);margin-bottom:16px;letter-spacing:1px;text-transform:uppercase}.novel-chapter-emoji{font-size:48px;margin-bottom:16px;display:block}.novel-chapter-photo{width:100%;max-width:400px;aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius-sm);margin-bottom:16px;box-shadow:0 4px 20px rgba(0,0,0,.3)}.novel-chapter-text{font-family:"Caveat",cursive;font-size:20px;color:var(--text-secondary);line-height:1.7;margin-bottom:12px}.novel-chapter-comment{background:rgba(240,200,80,.06);border-left:3px solid rgba(240,200,80,.3);padding:16px 20px;border-radius:0 var(--radius-sm) var(--radius-sm)0;margin-top:16px}.novel-chapter-comment-label{font-size:11px;color:var(--gold);text-transform:uppercase;letter-spacing:1px;font-weight:600;margin-bottom:6px}.novel-chapter-comment-text{font-family:"Caveat",cursive;font-size:18px;color:var(--text-secondary);line-height:1.5}.novel-chapter-friends{margin-top:12px;display:flex;gap:6px;flex-wrap:wrap}.cross-connections{background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);padding:24px;margin-bottom:24px}.cross-connections h3{font-size:18px;margin-bottom:16px}.cross-connection-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.04)}.cross-avatars{display:flex}.cross-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;background:var(--bg-card-hover);border:2px solid var(--bg);margin-left:-8px}.cross-avatar:first-child{margin-left:0}.cross-info{flex:1}.cross-info-title{font-size:13px;font-weight:500}.cross-info-sub{font-size:11px;color:var(--text-muted)}.cross-info-count{font-size:13px;color:var(--accent-light);font-weight:600}#book-viewer-modal{z-index:1000;background:0 0;backdrop-filter:none;-webkit-backdrop-filter:none}.book-viewer-wrapper{position:fixed;inset:0;flex-direction:column;background:radial-gradient(ellipse at center,#1a1508 0,#0a0a14 70%);z-index:1001}.book-viewer-close,.book-viewer-scene,.book-viewer-wrapper{display:flex;align-items:center;justify-content:center}.book-viewer-close{position:fixed;top:20px;right:20px;z-index:1010;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);color:#fff;width:44px;height:44px;border-radius:50%;font-size:24px;cursor:pointer;transition:var(--transition);backdrop-filter:blur(10px)}.book-viewer-close:hover{background:rgba(255,255,255,.15);transform:scale(1.1)}.book-viewer-scene{perspective:2200px;width:92vw;height:80vh}.book-3d{position:relative;width:90vw;max-width:1200px;height:75vh;transform-style:preserve-3d;transform:rotateX(5deg)}.book-3d::before{content:"";position:absolute;left:50%;top:10px;bottom:10px;width:4px;background:rgba(0,0,0,.5);transform:translateX(-50%);z-index:100;box-shadow:0 0 20px 8px rgba(0,0,0,.3);border-radius:2px}.book-page,.book-page-front{position:absolute;height:100%}.book-page{width:50%;top:0;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.645,.045,.355,1);transform-origin:left center;right:0;left:auto;z-index:1}.book-page.flipped{transform:rotateY(-180deg)}.book-page-front{backface-visibility:hidden;border-radius:0 8px 8px 0;overflow-y:auto;overflow-x:hidden;flex-direction:column;justify-content:flex-start;padding:32px 28px}.book-page-back,.book-page-front,div.book-polaroid-img{width:100%;display:flex;align-items:center}.book-page-back{position:absolute;height:100%;backface-visibility:hidden;overflow-y:auto;overflow-x:hidden;flex-direction:column;justify-content:flex-start;padding:32px 28px}.book-page-front{background:linear-gradient(135deg,#f8f5f0 0,#f0ebe3 50%,#e8e3db 100%);box-shadow:inset -4px 0 12px rgba(0,0,0,.08),2px 0 8px rgba(0,0,0,.15)}.book-left-page,.book-page-back{background:linear-gradient(225deg,#f8f5f0 0,#f0ebe3 50%,#e8e3db 100%);border-radius:8px 0 0 8px;box-shadow:inset 4px 0 12px rgba(0,0,0,.08),-2px 0 8px rgba(0,0,0,.15)}.book-page-back{transform:rotateY(180deg)}.book-left-page{position:absolute;width:50%;height:100%;top:0;left:0;z-index:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:32px 28px;overflow-y:auto;overflow-x:hidden}.book-left-page::after,.book-page-back::after,.book-page-front::after{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none}.book-page-number{position:absolute;bottom:16px;font-family:"Caveat",cursive;font-size:14px;color:#999}.book-page-front .book-page-number{right:20px}.book-left-page .book-page-number,.book-page-back .book-page-number{left:20px}.book-polaroid{background:#fff;padding:12px 12px 40px;box-shadow:0 4px 16px rgba(0,0,0,.12),0 1px 4px rgba(0,0,0,.08);max-width:280px;width:85%;margin-bottom:16px;transform:rotate(var(--rot, -1.5deg));transition:transform .3s ease}.book-polaroid:hover{transform:rotate(0deg) scale(1.03)}img.book-polaroid-img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:2px;display:block}div.book-polaroid-img{aspect-ratio:1;background:linear-gradient(135deg,rgba(var(--accent-rgb, 201, 169, 110),.12),rgba(240,124,110,.12));justify-content:center;font-size:52px;border-radius:2px}.book-polaroid-caption{font-family:"Caveat",cursive;font-size:15px;color:#555;text-align:center;margin-top:8px;line-height:1.3}.book-page-title{font-family:"Playfair Display",serif;font-size:20px;font-weight:600;color:#2a2a3a;margin-bottom:8px;text-align:center}.book-page-date{font-size:12px;color:#999;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:16px;text-align:center}.book-page-text{font-family:"Caveat",cursive;font-size:19px;color:#444;line-height:1.6;text-align:center;max-width:320px}.book-page-friends{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;margin-top:10px}.book-page-friend-tag{padding:2px 10px;border-radius:50px;font-size:11px;background:rgba(var(--accent-rgb, 201, 169, 110),.1);color:var(--accent);font-weight:500}.book-cover-page{text-align:center}.book-cover-page .cover-logo{font-size:72px;margin-bottom:16px}.book-cover-page .cover-title{font-family:"Playfair Display",serif;font-size:32px;font-weight:700;color:#2a2a3a;margin-bottom:8px}.book-cover-page .cover-subtitle{font-family:"Caveat",cursive;font-size:22px;color:#888;margin-bottom:24px}.book-cover-page .cover-years{font-size:13px;color:#aaa;letter-spacing:4px}.book-cover-page .cover-ornament{width:80px;height:1px;background:linear-gradient(90deg,transparent,#ccc,transparent);margin:16px auto}.book-page-comment{background:rgba(240,200,80,.08);border-left:2px solid rgba(200,170,60,.4);padding:10px 14px;border-radius:0 6px 6px 0;margin-top:10px;max-width:250px}.book-page-comment-label{font-size:9px;color:#b8a040;text-transform:uppercase;letter-spacing:1px;font-weight:600;margin-bottom:4px}.book-page-comment-text{font-family:"Caveat",cursive;font-size:15px;color:#666;line-height:1.4}.book-viewer-controls{display:flex;align-items:center;gap:32px;margin-top:20px}.book-nav-btn{width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:#fff;display:flex;align-items:center;justify-content:center;transition:var(--transition);backdrop-filter:blur(10px)}.book-nav-btn:hover:not(:disabled){background:rgba(var(--accent-rgb, 201, 169, 110),.3);border-color:var(--accent);transform:scale(1.1)}.book-nav-btn:disabled{opacity:.2;cursor:default}.book-nav-btn svg{width:22px;height:22px}.book-page-indicator{font-family:"Caveat",cursive;font-size:18px;color:var(--text-secondary);min-width:100px;text-align:center}.book-3d::after{content:"";position:absolute;bottom:-30px;left:10%;width:80%;height:30px;background:radial-gradient(ellipse,rgba(0,0,0,.35)0,transparent 70%);filter:blur(8px)}.book-open-viewer-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:20px;margin-top:24px;background:linear-gradient(135deg,rgba(var(--accent-rgb, 201, 169, 110),.1),rgba(240,200,80,.08));border:1px solid rgba(var(--accent-rgb, 201, 169, 110),.2);border-radius:var(--radius);color:var(--text);font-family:"Playfair Display",serif;font-size:18px;font-weight:600;cursor:pointer;transition:var(--transition)}.book-open-viewer-btn:hover{background:linear-gradient(135deg,rgba(var(--accent-rgb, 201, 169, 110),.2),rgba(240,200,80,.15));border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 32px rgba(var(--accent-rgb, 201, 169, 110),.15)}.book-open-viewer-btn svg{width:28px;height:28px;stroke:var(--accent-light)}.book-page.flipping{z-index:10}@media (max-width:768px) and (orientation:portrait){#book-viewer-modal .book-viewer-wrapper{transform:rotate(90deg);transform-origin:center center;width:100vh;height:100vw;position:fixed;top:50%;left:50%;margin-top:-50vw;margin-left:-50vh}#book-viewer-modal .book-viewer-scene{perspective:1400px;width:90vh;height:70vw}#book-viewer-modal .book-3d{width:85vh;max-width:none;height:65vw;transform:rotateX(4deg)}#book-viewer-modal .book-viewer-close{top:12px;right:12px}}@media (max-width:768px) and (orientation:landscape){.book-viewer-scene{perspective:1400px;width:92vw;height:80vh}.book-3d{width:88vw;max-width:none;height:75vh;transform:rotateX(4deg)}}@media (max-width:768px){.book-left-page,.book-page-back,.book-page-front{padding:20px 16px}.book-polaroid{max-width:180px;padding:8px 8px 28px}.book-polaroid-img{font-size:36px}.book-page-title{font-size:15px}.book-page-text{font-size:14px;max-width:180px}}#capture-preview-modal.hidden,.landscape-hint{display:none}@media (max-width:768px) and (orientation:portrait){.landscape-hint{display:flex;position:fixed;bottom:20px;left:50%;transform:translateX(-50%) rotate(90deg);background:rgba(0,0,0,.7);color:#fff;padding:10px 20px;border-radius:20px;font-size:13px;gap:8px;align-items:center;z-index:1002;backdrop-filter:blur(10px);white-space:nowrap;pointer-events:none;animation:hintFade 4s ease-in-out forwards}.landscape-hint svg{width:20px;height:20px;animation:rotateHint 2s ease-in-out infinite}}.friend-detail-bio{font-family:"Caveat",cursive;font-size:18px;color:var(--text-secondary);margin:8px 0 4px;line-height:1.4}.friend-sharing-section{margin-top:24px;padding:20px;background:var(--bg-card);border-radius:var(--radius);border:1px solid rgba(255,255,255,.06)}.friend-sharing-section h4{font-size:16px;margin-bottom:6px;color:var(--text)}.sharing-info{font-size:13px;color:var(--text-muted);margin-bottom:16px;line-height:1.5}.sharing-controls{display:flex;flex-direction:column;gap:12px}.sharing-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:rgba(255,255,255,.03);border-radius:var(--radius-sm)}.sharing-row-title{font-size:14px;font-weight:500;color:var(--text)}.sharing-row-sub{font-size:12px;color:var(--text-muted);margin-top:2px}.sharing-toggle{width:48px;height:26px;border-radius:13px;border:0;background:rgba(255,255,255,.1);position:relative;cursor:pointer;transition:background var(--transition);flex-shrink:0}.sharing-toggle::after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;top:3px;left:3px;transition:transform var(--transition)}.sharing-toggle.active{background:var(--accent)}.sharing-toggle.active::after{transform:translateX(22px)}.friend-shared-books{margin-top:20px}.friend-shared-books h4{font-size:16px;margin-bottom:12px}.shared-book-card{display:flex;gap:14px;padding:14px;background:var(--bg-card);border-radius:var(--radius);border:1px solid rgba(255,255,255,.06);margin-bottom:10px;cursor:pointer;transition:background var(--transition)}.shared-book-card:hover{background:var(--bg-card-hover)}.shared-book-cover{width:64px;height:64px;border-radius:var(--radius-sm);background-size:cover;background-position:center;flex-shrink:0}.shared-book-info{flex:1;min-width:0}.shared-book-title{font-size:15px;font-weight:600;margin-bottom:4px}.shared-book-desc{font-size:13px;color:var(--text-secondary);margin-bottom:4px;line-height:1.4}.shared-book-meta,.shared-books-empty{font-size:12px;color:var(--text-muted)}.shared-books-empty{text-align:center;padding:24px;font-size:14px}.create-shared-book-btn{margin-top:12px;padding:10px 20px;background:var(--accent);color:#fff;border:0;border-radius:var(--radius-sm);font-size:14px;cursor:pointer;transition:background var(--transition)}.create-shared-book-btn:hover{background:var(--accent-light)}.shared-books-section{margin-top:32px;margin-bottom:24px}.shared-books-header h3{font-family:"Playfair Display",serif;font-size:22px;margin-bottom:6px}.shared-books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}.shared-book-tile{border-radius:var(--radius);overflow:hidden;background:var(--bg-card);border:1px solid rgba(255,255,255,.06);cursor:pointer;transition:transform var(--transition),box-shadow var(--transition)}.shared-book-tile:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,.3)}.shared-book-tile-cover{height:120px;background-size:cover;background-position:center;position:relative}.shared-book-tile-overlay{position:absolute;bottom:0;left:0;right:0;padding:8px 10px;background:linear-gradient(transparent,rgba(0,0,0,.6));display:flex;align-items:flex-end}.shared-book-tile-members{display:flex;gap:-4px}.shared-book-member-avatar{width:28px;height:28px;border-radius:50%;border:2px solid var(--bg-card);object-fit:cover;margin-left:-6px}.shared-book-member-avatar:first-child{margin-left:0}.shared-book-tile-info{padding:12px}.shared-book-tile-title{font-size:14px;font-weight:600;margin-bottom:4px}.shared-book-tile-meta{font-size:12px;color:var(--text-muted)}.shared-book-tile-add .shared-book-add-cover{display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.03);border:2px dashed rgba(255,255,255,.1)}.shared-book-tile-add .shared-book-add-cover svg{stroke:var(--text-muted)}.modal-collage{max-width:680px;max-height:90vh;overflow-y:auto}.collage-subtitle{font-size:14px;color:var(--text-muted);margin-bottom:16px}.collage-layout-picker{display:flex;gap:8px;margin-bottom:20px}.collage-layout-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;transition:all var(--transition)}.collage-layout-btn:hover{background:rgba(255,255,255,.08)}.collage-layout-btn.active{background:var(--accent-glow);border-color:var(--accent);color:var(--accent-light)}.collage-canvas{min-height:200px;background:rgba(0,0,0,.3);border-radius:var(--radius);overflow:hidden;margin-bottom:20px}.collage-empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-muted);font-size:14px}.collage-grid{display:grid;gap:4px}.collage-cols-2{grid-template-columns:1fr 1fr}.collage-cols-3{grid-template-columns:1fr 1fr 1fr}.collage-item{background-size:cover;background-position:center;aspect-ratio:1;min-height:100px}.collage-featured,.collage-masonry{display:grid;grid-template-columns:1fr 1fr;gap:4px}.collage-masonry .collage-masonry-0{aspect-ratio:1}.collage-masonry .collage-masonry-1{aspect-ratio:3/4}.collage-masonry .collage-masonry-2{aspect-ratio:4/3}.collage-featured{grid-template-columns:2fr 1fr;min-height:280px}.collage-featured-main{background-size:cover;background-position:center;border-radius:0}.collage-featured-side{display:grid;gap:4px}.collage-featured-side .collage-item{aspect-ratio:auto;min-height:60px}.collage-photo-picker{margin-bottom:16px}.collage-picker-label{font-size:13px;color:var(--text-secondary);margin-bottom:10px}.collage-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px}.collage-picker-item{width:100%;aspect-ratio:1;border-radius:8px;background-size:cover;background-position:center;cursor:pointer;position:relative;border:2px solid transparent;transition:border-color var(--transition),transform var(--transition)}.collage-picker-item:hover{transform:scale(1.05)}.collage-picker-item.selected{border-color:var(--accent)}.collage-picker-check{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition)}.collage-picker-item.selected .collage-picker-check,.map-pin:hover .map-pin-label,.memory-card:hover .memory-card-play{opacity:1}.collage-actions{display:flex;justify-content:flex-end}.collage-save-btn{padding:12px 28px;background:var(--accent);color:#fff;border:0;border-radius:var(--radius-sm);font-size:15px;font-weight:500;cursor:pointer;transition:background var(--transition)}.collage-save-btn:hover{background:var(--accent-light)}.modal-shared-book{max-width:640px;max-height:90vh;overflow-y:auto;padding:0}.dual-book-header{position:relative;margin-bottom:24px}.dual-book-cover,.dual-book-cover-overlay{border-radius:var(--radius) var(--radius)0 0}.dual-book-cover{width:100%;height:200px;background-size:cover;background-position:center;position:relative}.dual-book-cover-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.8),rgba(0,0,0,.2));display:flex;flex-direction:column;justify-content:flex-end;padding:24px}.dual-book-cover-overlay h2{font-family:"Playfair Display",serif;font-size:24px;margin-bottom:4px}.dual-book-cover-overlay p{margin:0}.dual-perspective-label{display:flex;justify-content:space-between;padding:0 24px;margin-bottom:20px}.dual-book-cover-overlay p,.dual-label{font-size:13px;color:var(--text-secondary)}.dual-label{display:flex;align-items:center;gap:8px;font-weight:600}.dual-label-dot{width:10px;height:10px;border-radius:50%}.dual-label-dot.me{background:var(--accent)}.dual-label-dot.them{background:#f0c040}.dual-moment{padding:0 24px;margin-bottom:28px}.dual-moment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.dual-moment-title{font-size:16px;font-weight:600;color:var(--text-primary)}.dual-book-footer p,.dual-moment-date{font-size:12px;color:var(--text-muted)}.dual-photos{display:flex;gap:0;align-items:stretch}.dual-photo-side{flex:1;min-width:0}.dual-photo{width:100%;aspect-ratio:3/4;background-size:cover;background-position:center;border-radius:var(--radius-sm);margin-bottom:10px}.dual-mine .dual-photo{border:2px solid rgba(201,169,110,.3)}.dual-theirs .dual-photo{border:2px solid rgba(240,192,64,.3)}.dual-caption{font-size:13px;color:var(--text-secondary);line-height:1.4;font-style:italic}.dual-author{display:block;font-size:11px;font-weight:600;font-style:normal;color:var(--text-muted);margin-bottom:2px;text-transform:uppercase;letter-spacing:.5px}.dual-mine .dual-author{color:var(--accent-light)}.dual-theirs .dual-author{color:#f0c040}.dual-divider{width:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dual-divider-line{width:1px;height:80%;background:rgba(255,255,255,.08)}.dual-empty{padding:40px 24px;text-align:center;color:var(--text-muted);font-size:14px}.dual-book-footer{padding:20px 24px 28px;text-align:center;border-top:1px solid rgba(255,255,255,.06);margin-top:8px}.dual-book-footer p{font-size:13px;font-style:italic;margin:0}.achievement-categories{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.ach-cat-btn{padding:8px 16px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:20px;color:var(--text-secondary);font-size:13px;transition:all var(--transition)}.ach-cat-btn:hover{background:rgba(255,255,255,.08)}.ach-cat-btn.active{background:var(--accent-glow);border-color:var(--accent);color:var(--accent-light)}.achievement-shared{display:flex;align-items:center;gap:4px;margin-top:8px}.achievement-shared-label{font-size:11px;color:var(--text-muted);margin-right:2px}.achievement-shared-avatar{width:22px;height:22px;border-radius:50%;object-fit:cover;border:1.5px solid var(--bg);margin-left:-4px}.achievement-shared-avatar:first-of-type{margin-left:0}.achievement-shared-name{font-size:11px;color:var(--text-muted)}.life-map-section{margin-top:40px;padding-top:32px;border-top:1px solid rgba(255,255,255,.06)}.life-map-section h3,.memories-section h3{font-size:20px;font-weight:600;margin-bottom:4px}.life-map-sub{font-size:14px;color:var(--text-muted);margin-bottom:20px}.life-map-container{position:relative;margin-bottom:20px}.life-map-world{position:relative;width:100%;aspect-ratio:2/1;border-radius:var(--radius);overflow:hidden;background:rgba(201,169,110,.02);border:1px solid rgba(255,255,255,.06)}.life-map-svg{width:100%;height:100%}.map-pin{position:absolute;transform:translate(-50%,-50%);cursor:pointer;z-index:2}.map-pin-dot{width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid rgba(255,255,255,.9);box-shadow:0 0 12px rgba(201,169,110,.5);position:relative;z-index:2}.map-pin-label{position:absolute;top:-24px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11px;font-weight:600;color:var(--text-primary);background:var(--card-bg);padding:2px 8px;border-radius:8px;border:1px solid rgba(255,255,255,.1);opacity:0;transition:opacity var(--transition);pointer-events:none}.map-pin-pulse{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;background:var(--accent);opacity:.4;animation:mapPulse 2s ease-out infinite;z-index:1}.life-map-pins{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.map-pin-card{background:var(--card-bg);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm);padding:14px;transition:all var(--transition)}.map-pin-card:hover{border-color:rgba(201,169,110,.3);transform:translateY(-2px)}.map-pin-card-name{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.map-pin-card-year{font-size:12px;color:var(--accent-light);margin-bottom:6px}.map-pin-card-events{font-size:12px;color:var(--text-secondary);margin-bottom:4px}.map-pin-card-friends{font-size:11px;color:var(--text-muted)}.map-pin-card-friends span{margin-right:4px}.memories-section{margin-top:40px;padding-top:32px;border-top:1px solid rgba(255,255,255,.06)}.memories-sub{font-size:14px;color:var(--text-muted);margin-bottom:20px}.memories-carousel{display:flex;gap:16px;overflow-x:auto;padding-bottom:12px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.memories-carousel::-webkit-scrollbar{height:4px}.memories-carousel::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:2px}.memory-card{min-width:240px;max-width:240px;scroll-snap-align:start;border-radius:var(--radius);overflow:hidden;background:var(--card-bg);border:1px solid rgba(255,255,255,.06);cursor:pointer;transition:all var(--transition)}.memory-card:hover{transform:translateY(-4px);border-color:rgba(201,169,110,.3);box-shadow:0 8px 24px rgba(0,0,0,.3)}.memory-card-cover{width:100%;height:140px;background-size:cover;background-position:center;position:relative}.memory-card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.6),transparent);display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:12px}.memory-card-type{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--accent-light);background:rgba(201,169,110,.2);padding:3px 8px;border-radius:10px}.memory-card-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.2);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;opacity:0;transition:opacity var(--transition)}.memory-card-info{padding:14px}.memory-card-title{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.memory-card-sub{font-size:12px;color:var(--text-muted);margin-bottom:8px}.memory-card-friends{display:flex;gap:0}.memory-friend-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover;border:2px solid var(--card-bg);margin-left:-6px}.memory-friend-avatar:first-child{margin-left:0}.child-album-section{margin-top:32px;padding-top:28px;border-top:1px solid rgba(255,255,255,.06)}.child-album-header{display:flex;align-items:flex-start;gap:14px;margin-bottom:20px;padding:16px;background:rgba(255,200,50,.04);border:1px solid rgba(255,200,50,.12);border-radius:var(--radius)}.child-album-header-icon{flex-shrink:0;width:44px;height:44px;border-radius:12px;background:rgba(255,200,50,.1);display:flex;align-items:center;justify-content:center;color:#f0c040}.child-album-header h3{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.child-album-header p,.retro-scan-info p{font-size:13px;color:var(--text-muted);margin:0}.child-album-card{display:flex;gap:16px;background:var(--card-bg);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);padding:16px;margin-bottom:12px;transition:all var(--transition)}.child-album-add:hover,.child-album-card:hover{border-color:rgba(255,200,50,.2)}.child-album-cover{width:80px;height:80px;border-radius:12px;background-size:cover;background-position:center;flex-shrink:0;position:relative}.child-album-lock{position:absolute;bottom:-4px;right:-4px;width:28px;height:28px;border-radius:50%;background:#f0c040;display:flex;align-items:center;justify-content:center;color:#1a1a2e;box-shadow:0 2px 8px rgba(0,0,0,.3)}.child-album-info{flex:1;min-width:0}.child-album-name{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.child-album-meta{font-size:12px;color:var(--text-muted);margin-bottom:8px}.child-album-milestones{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.child-milestone{font-size:11px;padding:3px 10px;background:rgba(255,200,50,.08);border:1px solid rgba(255,200,50,.15);border-radius:12px;color:#f0c040}.child-album-add,.child-album-protection{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--green)}.child-album-add{width:100%;padding:16px;background:rgba(255,255,255,.02);border:2px dashed rgba(255,255,255,.08);border-radius:var(--radius);color:var(--text-muted);font-size:14px;cursor:pointer;justify-content:center;gap:8px;transition:all var(--transition);margin-top:8px}.child-album-add:hover{background:rgba(255,255,255,.04);color:var(--text-secondary)}.retro-scan-section{margin-top:32px;padding-top:24px;border-top:1px solid rgba(255,255,255,.06)}.retro-scan-card{display:flex;gap:16px;align-items:flex-start;padding:18px;background:var(--card-bg);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);margin-bottom:16px}.retro-scan-icon{flex-shrink:0;width:48px;height:48px;border-radius:14px;background:var(--accent-glow);display:flex;align-items:center;justify-content:center;color:var(--accent-light)}.retro-scan-info h4{font-size:15px;font-weight:600;margin-bottom:6px}.retro-scan-info p{line-height:1.5}.retro-scan-actions{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.retro-scan-btn{display:flex;align-items:center;gap:8px;padding:12px 18px;background:var(--accent);color:#fff;border:0;border-radius:var(--radius-sm);font-size:13px;font-weight:500;transition:all var(--transition)}.retro-scan-btn:hover{background:var(--accent-light);transform:translateY(-1px)}.retro-scan-btn.secondary{background:rgba(255,255,255,.06);color:var(--text-secondary);border:1px solid rgba(255,255,255,.1)}.retro-scan-btn.secondary:hover{background:rgba(255,255,255,.1)}.retro-progress{padding:14px;background:var(--card-bg);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm)}.retro-progress-label{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px}.retro-progress-bar-bg{width:100%;height:6px;border-radius:3px;background:rgba(255,255,255,.06);overflow:hidden;margin-bottom:6px}.retro-progress-bar{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent),var(--accent-light));transition:width .6s ease}.retro-progress-text{font-size:11px;color:var(--text-muted)}.friendship-reminder{display:flex;align-items:center;gap:12px;padding:14px 16px;background:rgba(201,169,110,.04);border:1px solid rgba(201,169,110,.12);border-radius:var(--radius);margin-top:16px}.friendship-reminder-icon{font-size:20px;flex-shrink:0}.friendship-reminder-text{font-size:13px;color:var(--text-secondary);line-height:1.4}.friendship-reminder-text strong,.retro-scan-info h4{color:var(--text-primary)}.friendship-reminder-dismiss{flex-shrink:0;background:0 0;border:0;color:var(--text-muted);cursor:pointer;font-size:16px;padding:4px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.2)}@media (max-width:768px){.tab-content{padding:56px 14px 64px}.achievements-stats,.book-moments{grid-template-columns:repeat(2,1fr)}.splash-title{font-size:36px}.friend-detail-stats{gap:20px}.book-actions{flex-direction:column}}#capture-preview-modal{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:fadeIn .3s ease}.capture-preview-content{position:relative;width:90%;max-width:420px;background:linear-gradient(145deg,#1a1a24,#13131a);border:1px solid rgba(var(--accent-rgb, 201, 169, 110),.2);border-radius:20px;padding:24px;display:flex;flex-direction:column;align-items:center;gap:16px;max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.capture-preview-content .modal-close{position:absolute;top:12px;right:12px;background:rgba(255,255,255,.08);border:0;color:#f0f0f5;font-size:22px;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;transition:background .2s}.capture-preview-content .modal-close:hover{background:rgba(255,255,255,.15)}#capture-preview-img{width:100%;max-height:50vh;object-fit:cover;border-radius:14px;border:1px solid rgba(255,255,255,.06)}#capture-caption{width:100%;padding:14px 16px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:12px;color:#f0f0f5;font-size:15px;font-family:"Inter",sans-serif;outline:0;transition:border-color .2s;box-sizing:border-box}#capture-caption:focus{border-color:rgba(var(--accent-rgb, 201, 169, 110),.5)}#capture-caption::placeholder{color:rgba(240,240,245,.35)}.mood-picker-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;width:100%}#capture-save-btn,.btn-gold,.mood-btn{border-radius:14px;transition:all .2s ease}.mood-btn{width:48px;height:48px;border:2px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);font-size:24px;display:flex;align-items:center;justify-content:center}.mood-btn:hover{background:rgba(var(--accent-rgb, 201, 169, 110),.1);border-color:rgba(var(--accent-rgb, 201, 169, 110),.3)}.mood-btn.selected{background:rgba(var(--accent-rgb, 201, 169, 110),.2);border-color:var(--accent);transform:scale(1.1);box-shadow:0 0 12px rgba(var(--accent-rgb, 201, 169, 110),.3)}#capture-save-btn,.btn-gold{width:100%;padding:14px 24px;background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;border:0;font-size:16px;font-weight:600;font-family:"Inter",sans-serif;cursor:pointer;letter-spacing:.3px}#capture-save-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px rgba(var(--accent-rgb, 201, 169, 110),.35)}#capture-save-btn:disabled{opacity:.5;cursor:not-allowed}.capture-spinner{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 0;color:rgba(240,240,245,.6);font-size:14px}.capture-spinner.hidden,.duo-wait-theirs.duo-arrived .duo-wait-blur-placeholder{display:none}.spinner-ring{width:36px;height:36px;border:3px solid rgba(var(--accent-rgb, 201, 169, 110),.15);border-top-color:var(--accent);border-radius:50%;animation:spinnerRotate .8s linear infinite}.capture-success-overlay{position:fixed;inset:0;z-index:10001;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .4s ease;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.capture-success-overlay.visible{opacity:1}.capture-success-checkmark{text-align:center;animation:successPop .5s cubic-bezier(.175,.885,.32,1.275)}.capture-success-checkmark svg{filter:drop-shadow(0 0 16px rgba(var(--accent-rgb, 201, 169, 110),.5))}.checkmark-circle{stroke-dasharray:157;stroke-dashoffset:157;animation:checkmarkCircleDraw .6s ease forwards}.checkmark-check{stroke-dasharray:50;stroke-dashoffset:50;animation:checkmarkDraw .4s .4s ease forwards}.capture-success-text,.duo-wait-header h2{font-family:"Playfair Display",serif;color:var(--accent)}.capture-success-text{font-size:18px;margin-top:16px;font-weight:600}#duo-wait-modal{z-index:10000}.duo-wait-content{position:relative;background:linear-gradient(145deg,#1a1a2e 0,#0f0f1a 100%);border-radius:24px;padding:32px 24px;max-width:400px;margin:auto;text-align:center;border:1px solid rgba(201,169,110,.15);box-shadow:0 24px 80px rgba(0,0,0,.6);animation:duoSlideUp .5s cubic-bezier(.34,1.56,.64,1)}.duo-wait-header h2{font-size:22px;margin:8px 0 4px}.duo-wait-subtitle{color:rgba(245,240,232,.5);font-size:14px;margin:0}.duo-wait-photos{display:flex;align-items:center;justify-content:center;gap:12px;margin:28px 0}.duo-wait-photo{position:relative;width:140px;height:180px;border-radius:16px;overflow:hidden;background:rgba(255,255,255,.03);border:2px solid rgba(201,169,110,.2)}.duo-wait-mine,.duo-wait-theirs.duo-arrived{border-color:rgba(201,169,110,.5)}.duo-wait-mine img,.duo-wait-theirs.duo-arrived img{width:100%;height:100%;object-fit:cover}.duo-wait-check{position:absolute;top:8px;right:8px;width:24px;height:24px;background:var(--accent);color:#0f0f1a;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;animation:checkPop .4s cubic-bezier(.34,1.56,.64,1) .3s both}.duo-wait-label{position:absolute;bottom:0;left:0;right:0;padding:8px;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#f5f0e8;font-size:12px;font-weight:500}.duo-wait-divider{display:flex;align-items:center;justify-content:center}.duo-wait-vs{background:rgba(201,169,110,.15);color:var(--accent);font-weight:700;font-size:12px;padding:6px 10px;border-radius:20px;letter-spacing:1px}.duo-wait-blur-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(201,169,110,.08)0,rgba(201,169,110,.03) 100%);position:relative;overflow:hidden}.duo-wait-blur-placeholder span{font-size:36px;opacity:.4;animation:duoCameraPulse 2s ease-in-out infinite}.duo-wait-pulse{position:absolute;inset:0;background:radial-gradient(circle,rgba(201,169,110,.1)0,transparent 70%);animation:duoPulse 2s ease-in-out infinite}.duo-wait-timer{position:relative;width:100px;height:100px;margin:0 auto 16px}.duo-timer-ring{width:100%;height:100%}#duo-timer-progress{transition:stroke-dashoffset 1s linear}.duo-timer-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:var(--accent);font-family:"Playfair Display",serif}.duo-wait-status{color:rgba(245,240,232,.5);font-size:13px;font-style:italic}.duo-wait-theirs.duo-arrived img{animation:duoReveal .8s cubic-bezier(.34,1.56,.64,1)}.duo-timer-warning #duo-timer-progress{stroke:#e67e22}.duo-timer-warning .duo-timer-text{color:#e67e22}.duo-timer-danger #duo-timer-progress{stroke:#e74c3c}.duo-timer-danger .duo-timer-text{color:#e74c3c;animation:timerBlink .5s ease-in-out infinite}.skeleton{background:linear-gradient(90deg,rgba(255,255,255,.03) 25%,rgba(255,255,255,.08) 50%,rgba(255,255,255,.03) 75%);background-size:200% 100%;animation:skeletonShimmer 1.5s ease-in-out infinite;border-radius:8px}.skeleton-circle{border-radius:50%}.skeleton-text{height:14px;margin-bottom:8px}.skeleton-text-sm{height:10px;margin-bottom:6px}.skeleton-card{background:var(--bg-card, #13131a);border:1px solid rgba(255,255,255,.04);border-radius:16px;padding:16px;margin-bottom:12px}:root{--space-2:2px;--space-4:4px;--space-6:6px;--space-8:8px;--space-10:10px;--space-12:12px;--space-14:14px;--space-16:16px;--space-20:20px;--space-24:24px;--space-28:28px;--space-32:32px;--space-40:40px;--space-48:48px;--text-xs:0.6875rem;--text-sm:0.8125rem;--text-base:0.875rem;--text-md:0.9375rem;--text-lg:1rem;--text-xl:1.125rem;--text-2xl:1.375rem;--text-3xl:1.5rem;--text-4xl:2rem;--font-display:'Playfair Display', serif;--font-body:'Inter', -apple-system, sans-serif;--font-handwriting:'Caveat', cursive;--surface-elevated:rgba(255,255,255,0.06);--surface-hover:rgba(255,255,255,0.08);--surface-active:rgba(255,255,255,0.12);--border-subtle:rgba(255,255,255,0.06);--border-accent:rgba(201,169,110,0.2);--border-accent-strong:rgba(201,169,110,0.5);--overlay-bg:rgba(0,0,0,0.7);--overlay-blur:blur(12px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8);font-family:var(--font-body);font-weight:600;border:0;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent;min-height:44px;border-radius:var(--radius-sm, 10px);font-size:var(--text-base);padding:var(--space-12) var(--space-20);text-decoration:none;line-height:1.2}.btn:active{transform:scale(.96)}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;box-shadow:0 4px 16px rgba(201,169,110,.3)}.btn-primary:active{box-shadow:0 2px 8px rgba(201,169,110,.2)}.btn-secondary{background:var(--surface-elevated);border:1px solid var(--border-subtle);color:var(--text-secondary, rgba(245,240,232,0.7))}.btn-secondary:active{background:var(--surface-hover)}.btn-accent{background:rgba(201,169,110,.12);border:1px solid var(--border-accent);color:var(--accent)}.btn-danger{background:rgba(255,69,69,.15);border:1px solid rgba(255,69,69,.3);color:#ff6b6b}.btn-sm{min-height:36px;padding:var(--space-6) var(--space-12);font-size:var(--text-sm)}.btn-xs{min-height:28px;padding:var(--space-4) var(--space-8);font-size:var(--text-xs)}.btn-block{width:100%}.btn-round{border-radius:50%;padding:var(--space-10);width:44px;height:44px}.card{background:var(--bg-card, #13131a);border:1px solid var(--border-subtle);border-radius:var(--radius, 16px);padding:var(--space-20);transition:transform .2s ease,box-shadow .2s ease}.card:active{transform:scale(.98)}.card-accent,.card-glow{border-color:var(--border-accent)}.card-glow{box-shadow:0 0 20px rgba(201,169,110,.08)}.card-compact{padding:var(--space-16);border-radius:var(--radius-sm, 10px)}.card-flat{background:rgba(255,255,255,.02);border:0}.card-header,.card-icon{display:flex;align-items:center}.card-header{gap:var(--space-12);margin-bottom:var(--space-12)}.card-icon{width:40px;height:40px;border-radius:var(--radius-sm, 10px);background:linear-gradient(135deg,var(--accent),var(--accent-dark));justify-content:center;font-size:18px;flex-shrink:0}.card-title{color:var(--text, #f5f0e8);font-weight:600;font-size:var(--text-md)}.card-subtitle{color:var(--text-muted, rgba(245,240,232,0.4));font-size:var(--text-xs);margin-top:2px}.heading-lg,.heading-md{font-family:var(--font-display);font-weight:700}.heading-lg{font-size:clamp(1.25rem,5vw,1.5rem);color:var(--text, #f5f0e8)}.heading-md{font-size:clamp(1rem,4vw,1.25rem)}.body-text,.heading-md,.heading-sm{color:var(--text, #f5f0e8)}.heading-sm{font-family:var(--font-display);font-size:var(--text-md);font-weight:600}.body-text{font-size:var(--text-base);line-height:1.5}.caption{font-size:var(--text-sm);color:var(--text-secondary, rgba(245,240,232,0.7));line-height:1.4}.label{font-size:var(--text-xs);font-weight:500;color:var(--text-muted);letter-spacing:.3px;text-transform:uppercase}.text-gradient-gold{background:linear-gradient(135deg,var(--accent),var(--accent-text-end));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.handwriting{font-family:var(--font-handwriting);font-style:italic}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.gap-10{gap:var(--space-10)}.gap-12{gap:var(--space-12)}.gap-16{gap:var(--space-16)}.gap-20{gap:var(--space-20)}.gap-24{gap:var(--space-24)}.p-8{padding:var(--space-8)}.p-12{padding:var(--space-12)}.p-16{padding:var(--space-16)}.p-20{padding:var(--space-20)}.p-24{padding:var(--space-24)}.mb-4{margin-bottom:var(--space-4)}.mb-8{margin-bottom:var(--space-8)}.mb-12{margin-bottom:var(--space-12)}.mb-16{margin-bottom:var(--space-16)}.mb-20{margin-bottom:var(--space-20)}.mb-24{margin-bottom:var(--space-24)}.text-center{text-align:center}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.touchable{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.tap-active:active{opacity:.88;transition:transform .08s ease,opacity .08s ease}input,select,textarea{font-size:16px!important}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x proximity;-ms-overflow-style:none}.scroll-x::-webkit-scrollbar,.scroll-y::-webkit-scrollbar{display:none}.scroll-y{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;scrollbar-width:none}.anim-card{animation:cardAppear .35s ease forwards;opacity:0}.anim-card:nth-child(1){animation-delay:0s}.anim-card:nth-child(2),.anim-card:nth-child(3){animation-delay:.06s}.anim-card:nth-child(4){animation-delay:.12s}.anim-card:nth-child(5){animation-delay:.18s}.anim-card:nth-child(6){animation-delay:.24s}.anim-fade{animation:fadeIn .3s ease}.anim-slide-up{animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}.anim-scale{animation:scaleIn .25s ease}.liora-modal-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:flex-end;justify-content:center;background:var(--overlay-bg);backdrop-filter:var(--overlay-blur);-webkit-backdrop-filter:var(--overlay-blur);animation:fadeIn .2s ease}@media (min-width:481px){.liora-modal-overlay{align-items:center;padding:var(--space-20)}}.liora-modal-card{width:100%;max-width:420px;max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:rgba(15,15,25,.98);border:1px solid var(--border-subtle);border-radius:20px 20px 0 0;animation:slideUp .3s cubic-bezier(.34,1.56,.64,1);padding-bottom:max(env(safe-area-inset-bottom),24px)}@media (min-width:481px){.liora-modal-card{border-radius:20px;animation:scaleIn .25s ease}}.liora-modal-handle{width:36px;height:4px;background:rgba(255,255,255,.2);border-radius:2px;margin:8px auto 0}@media (min-width:481px){.liora-modal-handle{display:none}}.liora-modal-header{padding:var(--space-20) var(--space-24) var(--space-16);border-bottom:1px solid rgba(255,255,255,.06)}.liora-modal-body{padding:var(--space-20) var(--space-24)}.liora-modal-field{margin-bottom:16px}.liora-modal-body label,.liora-modal-label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary, rgba(245,240,232,0.7));margin-bottom:6px}.liora-input,.liora-modal-body input[type=date],.liora-modal-body input[type=email],.liora-modal-body input[type=number],.liora-modal-body input[type=text],.liora-modal-body input[type=url],.liora-modal-body select,.liora-modal-body textarea{width:100%;padding:12px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.06);color:var(--text, #f5f0e8);font-size:15px!important;font-family:var(--font-body, 'Inter', sans-serif);outline:0;transition:border-color .2s ease;box-sizing:border-box}.liora-input:focus,.liora-modal-body input:focus,.liora-modal-body select:focus,.liora-modal-body textarea:focus{border-color:rgba(201,169,110,.4)}.liora-input::placeholder,.liora-modal-body input::placeholder,.liora-modal-body textarea::placeholder{color:rgba(245,240,232,.3)}.liora-modal-body select,.liora-modal-select,select.liora-input{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238888a0' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-color:rgba(255,255,255,.06);padding-right:36px;cursor:pointer}.liora-modal-body select option,.liora-modal-select option,select.liora-input option{background:#1a1a24;color:#f5f0e8}.liora-modal-body textarea,textarea.liora-input{resize:vertical;min-height:70px;line-height:1.5}.liora-modal-body input[type=range],input[type=range].liora-input{width:100%;accent-color:var(--accent);padding:0;border:0;background:0 0}.liora-modal-range-row{display:flex;align-items:center;gap:10px}.liora-modal-range-value{font-size:14px;font-weight:600;color:var(--accent);min-width:24px;text-align:center}.liora-modal-range-suffix{font-size:13px;color:var(--text-muted)}.liora-modal-footer{padding:var(--space-16) var(--space-24) var(--space-20);display:flex;gap:var(--space-12)}body.modal-open{overflow:hidden;position:fixed;width:100%}@media (max-width:375px){.tab-content{padding-left:12px!important;padding-right:12px!important}.friends-grid{grid-template-columns:1fr!important;gap:10px!important}.achievements-stats{grid-template-columns:repeat(2,1fr)!important}.card{padding:var(--space-14)}.btn{padding:var(--space-10) var(--space-16);font-size:var(--text-sm)}.heading-lg{font-size:1.2rem}}@media (max-width:428px){.friends-grid{grid-template-columns:repeat(2,1fr)!important;gap:8px!important}.profile-card{left:12px!important;right:12px!important;width:auto!important}.achievements-stats{grid-template-columns:repeat(2,1fr)!important}}@media (max-height:500px) and (orientation:landscape){.bottom-nav{height:48px!important}.top-header{height:44px!important}.tab-content{padding-top:52px!important;padding-bottom:56px!important}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:.01ms!important;transition-duration:.01ms!important}}.nav-icon{width:22px;height:22px}.menu-icon,.nav-icon,.notif-icon,.streak-icon{stroke-width:1.8!important}.menu-icon{width:20px;height:20px}.streak-icon{width:16px;height:16px;color:var(--gold);vertical-align:-2px}.notif-icon{width:28px;height:28px;color:var(--green, #6ef0a0)}.bottom-nav-item .nav-icon{color:var(--text-muted, #55556a);transition:color .2s ease}.bottom-nav-item.active .nav-icon{color:var(--gold)}.ach-cat-btn,.book-nav-btn,.card,.cat-btn,.collage-layout-btn,.fab,.friend-card,.mood-btn,.more-menu-item,.nav-tab,.profile-avatar,.retro-scan-btn,.splash-btn,.streak-badge,.submit-btn,.timeline-card,.touchable,.trip-card,.year-btn,[onclick],a,button{cursor:pointer}.tap-active{transition:transform .12s ease,box-shadow .12s ease;-webkit-tap-highlight-color:transparent}.tap-active:active{transform:scale(.97);box-shadow:0 2px 8px rgba(0,0,0,.2)}.friend-card,.trip-card{transition:transform .15s ease,border-color .2s ease,box-shadow .2s ease}.friend-card:active,.trip-card:active{transform:scale(.98)}.friend-card:hover,.timeline-card:hover,.trip-card:hover{box-shadow:0 4px 20px rgba(var(--accent-rgb),.08),0 8px 24px rgba(0,0,0,.25)}#timeline-view-toggle{display:flex;gap:6px;justify-content:flex-end;margin-bottom:12px;padding:0 4px}.lightbox-overlay,.timeline-view-btn{display:flex;align-items:center;justify-content:center}.timeline-view-btn{padding:6px 12px;border:1px solid rgba(var(--accent-rgb),.15);border-radius:8px;background:rgba(255,255,255,.03);color:var(--text-muted);font-size:13px;cursor:pointer;transition:all .15s ease}.timeline-view-btn:active{transform:scale(.93)}.timeline-view-btn.active{border-color:rgba(var(--accent-rgb),.5);background:rgba(var(--accent-rgb),.15);color:var(--accent)}.lightbox-overlay{position:fixed;inset:0;z-index:10001;background:rgba(0,0,0,.95);flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);animation:fadeIn .2s ease}.lightbox-img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:4px;animation:scaleIn .3s ease}.lightbox-close{position:absolute;top:max(16px,env(safe-area-inset-top));right:16px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.1);border:0;color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center}.lightbox-info{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:0;right:0;text-align:center;padding:0 var(--space-24)}.theme-switcher{display:flex;align-items:center;justify-content:space-between;padding:12px 0;margin:4px 0 8px;border-top:1px solid var(--border-subtle)}.theme-switcher-label{font-size:13px;color:var(--text-secondary);font-weight:500}.theme-switcher-options{display:flex;gap:10px}.theme-btn{width:36px;height:36px;border-radius:50%;border:2px solid transparent;background:var(--bg-card);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:border-color .2s ease,transform .15s ease}.theme-btn:active{transform:scale(.9)}.theme-btn.active{border-color:var(--text)}.theme-dot{width:24px;height:24px;border-radius:50%;display:block}[data-theme=vintage] .submit-btn,[data-theme=vintage] [style*="linear-gradient(135deg, #c9a96e"],[data-theme=vintage] [style*="linear-gradient(135deg,#c9a96e"]{background:linear-gradient(135deg,#d4a574,#8b6340)!important}[data-theme=vintage] [style*="color: #c9a96e"],[data-theme=vintage] [style*="color:#c9a96e"]{color:#d4a574!important}[data-theme=vintage] [style*="stroke:#c9a96e"],[data-theme=vintage] [style*='stroke="#c9a96e"']{stroke:#d4a574}[data-theme=vintage] [style*="border-color:#c9a96e"],[data-theme=vintage] [style*="border-top-color:#c9a96e"]{border-color:#d4a574!important}[data-theme=vintage] [style*="fill:#f0c850"],[data-theme=vintage] [style*='fill="#f0c850"']{fill:#d4a574}[data-theme=vintage] [style*="accent-color:#c9a96e"]{accent-color:#d4a574!important}[data-theme=vintage] [style*="background:linear-gradient(90deg,#c9a96e"]{background:linear-gradient(90deg,#d4a574,#8b6340)!important}[data-theme=journal] .submit-btn,[data-theme=journal] [style*="linear-gradient(135deg, #c9a96e"],[data-theme=journal] [style*="linear-gradient(135deg,#c9a96e"]{background:linear-gradient(135deg,#6366f1,#4f46e5)!important}[data-theme=journal] [style*="color: #c9a96e"],[data-theme=journal] [style*="color:#c9a96e"]{color:#818cf8!important}[data-theme=journal] [style*="stroke:#c9a96e"],[data-theme=journal] [style*='stroke="#c9a96e"']{stroke:#818cf8}[data-theme=journal] [style*="border-color:#c9a96e"],[data-theme=journal] [style*="border-top-color:#c9a96e"]{border-color:#6366f1!important}[data-theme=journal] [style*="fill:#f0c850"],[data-theme=journal] [style*='fill="#f0c850"']{fill:#818cf8}[data-theme=journal] [style*="accent-color:#c9a96e"]{accent-color:#6366f1!important}[data-theme=journal] [style*="background:linear-gradient(90deg,#c9a96e"]{background:linear-gradient(90deg,#6366f1,#4f46e5)!important}[data-theme=journal] [style*="border: 2px solid #c9a96e"],[data-theme=journal] [style*="border:2px solid #c9a96e"]{border-color:#6366f1!important}[data-theme=journal] .checkmark-circle,[data-theme=journal] svg[style*="stroke:#c9a96e"] circle,[data-theme=journal] svg[style*="stroke:#c9a96e"] path{stroke:#6366f1!important}.friend-action-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid rgba(var(--accent-rgb),.15);background:rgba(var(--accent-rgb),.06);color:var(--accent);font-size:13px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.friend-action-btn:active{transform:scale(.96)}.friend-action-btn:hover{background:rgba(var(--accent-rgb),.12);border-color:rgba(var(--accent-rgb),.25)}.friend-action-btn svg{opacity:.8}.legal-content h4{font-family:"Playfair Display",serif;font-size:15px;font-weight:600}.legal-content ul{list-style:disc}.legal-content li{margin-bottom:4px}.legal-content p{margin-bottom:8px}.legal-content a{color:var(--accent);text-decoration:underline}