:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif:"Noto Serif SC", "Playfair Display", "Ma Shan Zheng", Georgia, serif;--transition-fast:.2s cubic-bezier(.4, 0, .2, 1);--transition-normal:.3s cubic-bezier(.4, 0, .2, 1);--transition-slow:.6s cubic-bezier(.4, 0, .2, 1);--transition-spring:.55s cubic-bezier(.175, .885, .32, 1.2);--bg-base:#fdfaf6;--bg-surface:#fff;--bg-surface-elevated:#fffcf9;--border-color:#f6efe8;--border-hover:#ebdcd0;--text-primary:#3d2b1f;--text-secondary:#705b4e;--text-tertiary:#a28b7b;--accent:#f07b65;--accent-hover:#d95f48;--accent-light:#fff2ed;--accent-rgb:240, 123, 101;--glass-bg:#fdfaf6d9;--glass-border:#f6efe899;--shadow-sm:0 4px 12px #f07b650a;--shadow-md:0 16px 36px #f07b6514;--shadow-lg:0 24px 60px #f07b6529;--color-heart:#ff4d6d;--radius-sm:10px;--radius-md:20px;--radius-lg:28px}body.dark-mode{--bg-base:#171412;--bg-surface:#221d1a;--bg-surface-elevated:#2d2622;--border-color:#3d322c;--border-hover:#54443b;--text-primary:#f5eae1;--text-secondary:#c2b0a3;--text-tertiary:#8f7d71;--accent:#f59682;--accent-hover:#ffa896;--accent-light:#372a23;--accent-rgb:245, 150, 130;--glass-bg:#171412d9;--glass-border:#3d322c99;--shadow-sm:0 4px 12px #0000004d;--shadow-md:0 16px 36px #00000080;--shadow-lg:0 24px 60px #000000b3}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-base);background-image:radial-gradient(var(--border-color) 1.5px, transparent 1.5px), radial-gradient(var(--border-color) 1.5px, transparent 1.5px);color:var(--text-primary);-webkit-font-smoothing:antialiased;transition:background-color var(--transition-normal), color var(--transition-normal);background-position:0 0,14px 14px;background-size:28px 28px;line-height:1.6;position:relative;overflow-x:hidden}body:before{content:"";z-index:-1;pointer-events:none;filter:blur(80px);background:radial-gradient(circle,#ffb6c140 0%,#fff0 70%);width:45vw;height:45vw;animation:20s cubic-bezier(.4,0,.2,1) infinite alternate floatSlow;position:fixed;top:-10%;left:-5%}body:after{content:"";z-index:-1;pointer-events:none;filter:blur(100px);background:radial-gradient(circle,#ffdead4d 0%,#fff0 70%);width:50vw;height:50vw;animation:25s cubic-bezier(.4,0,.2,1) infinite alternate floatSlowReverse;position:fixed;bottom:-10%;right:-5%}@keyframes floatSlow{0%{transform:translate(0)scale(1)}to{transform:translate(10vw,5vw)scale(1.15)}}@keyframes floatSlowReverse{0%{transform:translate(0)scale(1)}to{transform:translate(-8vw,-5vw)scale(1.15)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-sm);border:2px solid var(--bg-base)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.app-container{flex-direction:column;width:100%;min-height:100vh;display:flex}.main-content{flex:1;width:100%;max-width:1300px;margin:0 auto;padding:100px 24px 60px}.serif-title{font-family:var(--font-serif);font-weight:700}.italic-subtitle{font-family:var(--font-serif);font-style:italic;font-weight:400}.hero-header{text-align:center;animation:fadeInDown var(--transition-slow);padding:40px 0 20px}.hero-title{font-family:"Ma Shan Zheng", "Noto Serif SC", var(--font-serif);color:var(--text-primary);letter-spacing:0;background:linear-gradient(135deg, var(--text-primary) 0%, var(--accent) 100%);-webkit-text-fill-color:transparent;text-shadow:0 4px 10px rgba(var(--accent-rgb), .05);-webkit-background-clip:text;margin-bottom:12px;font-size:4rem;display:inline-block;position:relative}.hero-title:after{content:"🌸";font-size:1.6rem;animation:12s linear infinite spinSlow;position:absolute;top:1rem;right:-2.8rem}.hero-title:before{content:"✨";font-size:1.4rem;animation:4s ease-in-out infinite alternate floatBounce;position:absolute;top:.8rem;left:-2.6rem}@keyframes spinSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes floatBounce{0%{transform:translateY(0)}to{transform:translateY(-10px)}}.hero-subtitle{color:var(--text-secondary);max-width:600px;font-size:1.2rem;line-height:1.8;font-family:"Noto Serif SC", var(--font-serif);opacity:.95;margin:0 auto 30px;font-style:italic}.navbar{background-color:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--glass-border);z-index:1000;height:72px;transition:background-color var(--transition-normal), border-bottom var(--transition-normal);justify-content:space-between;align-items:center;padding:0 40px;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{color:var(--text-primary);cursor:pointer;align-items:center;gap:10px;font-size:1.4rem;text-decoration:none;display:flex}.nav-actions{align-items:center;gap:20px;display:flex}.nav-user{background-color:var(--bg-surface-elevated);border-radius:var(--radius-full);border:1px solid var(--border-color);cursor:pointer;transition:transform var(--transition-fast), border-color var(--transition-fast);align-items:center;gap:12px;padding:6px 14px;font-size:.95rem;font-weight:500;display:flex}.nav-user:hover{border-color:var(--border-hover);transform:translateY(-1px)}.user-avatar{background-color:var(--accent-light);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:1.1rem;display:flex}.btn{border-radius:var(--radius-full);font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:.95rem;font-weight:500;display:inline-flex}.btn-primary{background-color:var(--accent);color:#fff}.btn-primary:hover{background-color:var(--accent-hover);box-shadow:0 4px 12px rgba(var(--accent-rgb), .2);transform:translateY(-1px)}.btn-secondary{background-color:var(--bg-surface-elevated);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background-color:var(--bg-surface);border-color:var(--border-hover)}.btn-icon-only{background-color:var(--bg-surface-elevated);border:1px solid var(--border-color);width:40px;height:40px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex}.btn-icon-only:hover{border-color:var(--border-hover);background-color:var(--bg-surface);transform:scale(1.05)}.filter-container{animation:fadeInUp var(--transition-normal);flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-bottom:40px;display:flex}.filter-btn{background-color:var(--bg-surface);border:2px dashed var(--border-color);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-spring);border-radius:6px;padding:10px 22px;font-size:.9rem;font-weight:600;position:relative;box-shadow:0 4px 10px #00000005}.filter-btn:before{content:"";border:1px solid var(--border-color);pointer-events:none;border-radius:8px;position:absolute;inset:-4px}.filter-btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.filter-btn.active{background:linear-gradient(135deg, var(--accent) 0%, #ff9680 100%);color:#fff;box-shadow:0 8px 24px rgba(var(--accent-rgb), .25);border-color:#0000;transform:translateY(-3px)scale(1.05)}.filter-btn.active:before{border-color:var(--accent)}.gallery-grid{animation:fadeInUp var(--transition-slow);grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:30px;display:grid}.no-results{text-align:center;color:var(--text-secondary);background-color:var(--bg-surface);border-radius:var(--radius-md);border:1px dashed var(--border-color);flex-direction:column;grid-column:1/-1;align-items:center;gap:16px;padding:80px 20px;display:flex}.photo-card{background-color:var(--bg-surface);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);cursor:pointer;transition:all var(--transition-spring);border-radius:4px;flex-direction:column;padding:14px 14px 18px;display:flex;position:relative;overflow:visible}.gallery-grid .photo-card:nth-child(2n){transform:rotate(1.2deg)}.gallery-grid .photo-card:nth-child(odd){transform:rotate(-1.2deg)}.photo-card:hover{box-shadow:var(--shadow-lg);border-color:var(--accent);z-index:10;transform:translateY(-12px)scale(1.03)rotate(0)!important}.card-image-wrapper{background-color:var(--bg-surface-elevated);border:1px solid #0000000a;border-radius:2px;width:100%;padding-top:75%;position:relative;overflow:hidden}.card-image{object-fit:cover;width:100%;height:100%;transition:transform var(--transition-slow);position:absolute;top:0;left:0}.photo-card:hover .card-image{transform:scale(1.05)}.card-badge{background-color:var(--accent);color:#fff;border-radius:var(--radius-full);box-shadow:0 4px 10px rgba(var(--accent-rgb), .2);letter-spacing:.5px;z-index:10;padding:6px 14px;font-size:.75rem;font-weight:600;position:absolute;top:16px;left:16px}.card-info{flex-direction:column;flex-grow:1;padding:24px;display:flex}.card-title{color:var(--text-primary);margin-bottom:12px;font-size:1.3rem;line-height:1.3}.card-story-preview{color:var(--text-secondary);-webkit-line-clamp:3;text-overflow:ellipsis;-webkit-box-orient:vertical;margin-bottom:20px;font-size:.9rem;line-height:1.6;display:-webkit-box;overflow:hidden}.card-footer{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-top:auto;padding-top:16px;display:flex}.uploader-info{align-items:center;gap:8px;display:flex}.uploader-avatar-circle{background-color:var(--accent-light);border:1px solid var(--border-color);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.1rem;display:flex}.uploader-name{color:var(--text-primary);font-size:.85rem;font-weight:600}.uploader-role{color:var(--text-tertiary);font-size:.75rem;display:block}.card-stats{color:var(--text-tertiary);align-items:center;gap:12px;font-size:.8rem;display:flex}.stat-item{align-items:center;gap:4px;display:flex}.stat-item svg{width:14px;height:14px}.modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:2000;animation:fadeIn var(--transition-fast);background-color:#110f0e99;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background-color:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-color);width:100%;max-width:1000px;max-height:90vh;animation:modalScaleUp var(--transition-spring);flex-direction:column;display:flex;position:relative;overflow:hidden}.modal-close-btn{width:36px;height:36px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);z-index:10;background-color:#2d29250d;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:16px;right:16px}.modal-close-btn:hover{background-color:#2d29251a;transform:scale(1.05)}.detail-modal-layout{height:100%;max-height:90vh;display:flex}.detail-photo-pane{background-color:#000;flex:1.2;justify-content:center;align-items:center;min-height:400px;display:flex;position:relative}.detail-image{object-fit:contain;width:100%;height:100%;max-height:90vh}.detail-story-pane{border-left:1px solid var(--border-color);flex-direction:column;flex:1;padding:40px;display:flex;overflow-y:auto}.detail-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.detail-meta{color:var(--text-tertiary);align-items:center;gap:8px;font-size:.85rem;display:flex}.detail-category{border-radius:var(--radius-full);background-color:var(--accent-light);color:var(--accent);padding:3px 10px;font-size:.75rem;font-weight:600}.detail-title{color:var(--text-primary);margin-bottom:20px;font-size:1.8rem;line-height:1.3}.detail-story-text{color:var(--text-secondary);white-space:pre-wrap;margin-bottom:30px;font-size:1rem;line-height:1.8}.detail-actions-row{border-bottom:1px solid var(--border-color);align-items:center;gap:16px;margin-bottom:24px;padding-bottom:24px;display:flex}.like-button{border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;align-items:center;gap:8px;padding:8px 16px;font-size:.9rem;display:flex}.like-button:hover{background-color:var(--accent-light);border-color:var(--accent);color:var(--accent)}.like-button.liked{border-color:var(--color-heart);color:var(--color-heart);background-color:#e639460d}.like-button.liked svg{fill:var(--color-heart);color:var(--color-heart)}.comments-section{flex-grow:1}.comments-title{color:var(--text-primary);margin-bottom:16px;font-size:1.1rem;font-weight:600}.comment-list{flex-direction:column;gap:16px;margin-bottom:24px;display:flex}.comment-item{animation:popIn var(--transition-normal) cubic-bezier(.175, .885, .32, 1.275) forwards;gap:12px;display:flex}@keyframes popIn{0%{opacity:0;transform:scale(.9)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.comment-content{background-color:var(--accent-light);border-radius:var(--radius-md);border:1px solid rgba(var(--accent-rgb), .1);box-shadow:0 4px 12px rgba(var(--accent-rgb), .03);border-top-left-radius:4px;flex-grow:1;padding:12px 16px;font-size:.9rem}.comment-meta{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.commenter-name{color:var(--text-primary);font-weight:600}.commenter-role{color:var(--text-tertiary);margin-left:6px;font-size:.75rem}.comment-date{color:var(--text-tertiary);font-size:.75rem}.comment-text{color:var(--text-secondary);white-space:pre-wrap;line-height:1.5}.comment-form{gap:12px;margin-top:12px;display:flex}.comment-input{border:1px solid var(--border-color);background-color:var(--bg-surface);border-radius:var(--radius-full);font-family:var(--font-sans);color:var(--text-primary);transition:border-color var(--transition-fast);flex-grow:1;padding:10px 20px;font-size:.9rem}.comment-input:focus{border-color:var(--accent);outline:none}.modal-title{text-align:center;color:var(--text-primary);margin-bottom:24px;font-size:1.5rem}.form-group{margin-bottom:20px}.form-label{color:var(--text-secondary);margin-bottom:8px;font-size:.85rem;font-weight:600;display:block}.form-input{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;font-family:var(--font-sans);color:var(--text-primary);transition:all var(--transition-fast);padding:12px 16px;font-size:.95rem}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb), .1);outline:none}.form-select{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;font-family:var(--font-sans);color:var(--text-primary);transition:border-color var(--transition-fast);cursor:pointer;padding:12px 16px;font-size:.95rem}.form-select:focus{border-color:var(--accent);outline:none}.role-avatar-selector{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;display:grid}.role-avatar-option{border:1px solid var(--border-color);border-radius:var(--radius-md);text-align:center;cursor:pointer;background-color:var(--bg-surface);transition:all var(--transition-fast);flex-direction:column;align-items:center;gap:6px;padding:12px 8px;display:flex}.role-avatar-option:hover{border-color:var(--border-hover);background-color:var(--bg-surface-elevated)}.role-avatar-option.selected{border-color:var(--accent);background-color:var(--accent-light);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.role-avatar-icon{font-size:1.6rem}.role-avatar-name{color:var(--text-primary);font-size:.8rem;font-weight:500}.auth-switch{color:var(--text-secondary);text-align:center;margin-top:16px;font-size:.85rem}.auth-switch span{color:var(--accent);cursor:pointer;font-weight:600;text-decoration:underline}.auth-modal-body{max-height:calc(90vh - 80px);padding:40px;overflow-y:auto}.quick-login-divider{text-align:center;color:var(--text-tertiary);align-items:center;margin:20px 0;font-size:.8rem;display:flex}.quick-login-divider:before,.quick-login-divider:after{content:"";border-bottom:1px solid var(--border-color);flex:1}.quick-login-divider:not(:empty):before{margin-right:.5em}.quick-login-divider:not(:empty):after{margin-left:.5em}.quick-users-list{flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:10px;display:flex}.quick-user-btn{border-radius:var(--radius-full);border:1px solid var(--border-color);background-color:var(--bg-surface);cursor:pointer;transition:all var(--transition-fast);color:var(--text-secondary);align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;display:flex}.quick-user-btn:hover{border-color:var(--accent);background-color:var(--accent-light);color:var(--text-primary)}.upload-modal-body{max-height:80vh;padding:30px 40px;overflow-y:auto}.image-upload-zone{border:2px dashed var(--border-color);border-radius:var(--radius-md);text-align:center;cursor:pointer;background-color:var(--bg-surface-elevated);transition:all var(--transition-normal);flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:220px;padding:40px 20px;display:flex;position:relative}.image-upload-zone:hover{border-color:var(--accent);background-color:var(--accent-light)}.image-upload-icon{color:var(--text-tertiary)}.image-upload-zone:hover .image-upload-icon{color:var(--accent);transition:transform var(--transition-fast);transform:translateY(-4px)}.image-preview-container{border-radius:var(--radius-md);width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.image-preview{object-fit:cover;width:100%;height:100%}.change-image-btn{-webkit-backdrop-filter:blur(4px);color:#fff;border-radius:var(--radius-full);cursor:pointer;background-color:#2d2925bf;border:none;padding:6px 14px;font-size:.8rem;font-weight:500;position:absolute;bottom:12px;right:12px}.change-image-btn:hover{background-color:#2d2925e6}.form-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.profile-container{max-width:900px;animation:fadeInUp var(--transition-normal);margin:0 auto}.profile-card{background-color:var(--bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-md);justify-content:space-between;align-items:center;gap:30px;margin-bottom:40px;padding:40px;display:flex}.profile-header{align-items:center;gap:24px;display:flex}.profile-avatar-large{background-color:var(--accent-light);border:2px solid var(--border-color);width:80px;height:80px;box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;font-size:2.8rem;display:flex}.profile-name{color:var(--text-primary);margin-bottom:4px;font-size:1.8rem;font-weight:700}.profile-badge{border-radius:var(--radius-full);background-color:var(--bg-surface-elevated);border:1px solid var(--border-color);color:var(--text-secondary);padding:3px 12px;font-size:.8rem;font-weight:500;display:inline-block}.profile-stats-panel{gap:30px;display:flex}.profile-stat-box{text-align:center}.profile-stat-val{color:var(--accent);font-size:2rem;font-weight:700;line-height:1.2}.profile-stat-lbl{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;font-size:.8rem}.profile-stories-title{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:24px;font-size:1.4rem;font-weight:600;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes modalScaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (width<=900px){.main-content{padding:90px 16px 40px}.navbar{padding:0 20px}.hero-title{font-size:2.5rem}.gallery-grid{grid-template-columns:1fr;gap:20px}.detail-modal-layout{flex-direction:column;overflow-y:auto}.detail-photo-pane{flex:none;height:300px;min-height:auto}.detail-image{max-height:300px}.detail-story-pane{border-left:none;border-top:1px solid var(--border-color);padding:24px}.form-grid{grid-template-columns:1fr;gap:0}.profile-card{flex-direction:column;align-items:flex-start;gap:20px;padding:24px}}@media (width<=600px){.navbar{height:60px;padding:0 16px}.nav-logo{gap:6px;font-size:1.15rem}.nav-logo span[style*=font-size]{display:none!important}.nav-actions{gap:8px}.btn-text{display:none!important}.btn{height:36px;padding:8px 12px;font-size:.85rem}.btn-icon-only{width:36px;height:36px}.nav-user{background-color:#0000;border:none;padding:4px}.nav-user-name,.nav-user-role{display:none!important}.user-avatar{background-color:var(--bg-surface-elevated);border:1px solid var(--border-color);width:34px;height:34px;font-size:1.3rem}.hero-header{padding:15px 0 10px}.hero-title{letter-spacing:-.5px;font-size:2.2rem}.hero-subtitle{margin-bottom:20px;font-size:.95rem}.filter-container{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;justify-content:flex-start;gap:8px;margin-bottom:24px;padding:4px 4px 12px;overflow-x:auto}.filter-container::-webkit-scrollbar{display:none}.filter-btn{flex-shrink:0;padding:6px 14px;font-size:.85rem}.gallery-grid{grid-template-columns:1fr;gap:20px}.photo-card{border-radius:var(--radius-md)}.card-info{padding:16px}.card-title{margin-bottom:8px;font-size:1.15rem}.card-story-preview{-webkit-line-clamp:2;margin-bottom:16px;font-size:.85rem}.modal-overlay{padding:0}.modal-content{border:none;border-radius:0;height:100%;max-height:100vh}.modal-close-btn{color:#fff;background-color:#2d292566;top:12px;right:12px;box-shadow:0 2px 8px #0003}.modal-close-btn:hover{background-color:#2d292599}.detail-modal-layout{flex-direction:column;height:100%;overflow-y:auto}.detail-photo-pane{height:280px;min-height:280px}.detail-image{max-height:280px}.detail-story-pane{border-left:none;border-top:1px solid var(--border-color);padding:20px 16px;overflow-y:visible}.detail-title{margin-bottom:12px;font-size:1.4rem}.detail-story-text{color:var(--text-secondary);margin-bottom:20px;font-size:.95rem;line-height:1.7}.comment-form{gap:8px}.comment-input{padding:8px 16px;font-size:.85rem}.upload-modal-body{max-height:calc(100vh - 60px);padding:24px 16px;overflow-y:auto}.auth-modal-body{max-height:calc(100vh - 60px);padding:30px 20px;overflow-y:auto}.image-upload-zone{min-height:160px;padding:20px 10px}.form-grid{grid-template-columns:1fr;gap:0}.role-avatar-selector{grid-template-columns:repeat(3,1fr);gap:8px}.profile-card{padding:20px 16px}.profile-avatar-large{width:64px;height:64px;font-size:2.2rem}.profile-name{font-size:1.4rem}.profile-stats-panel{gap:20px}.profile-stat-val{font-size:1.5rem}}.home-content{flex:1;width:100%;margin:0;padding:0}.navbar.navbar-home{box-shadow:none;background-color:#0000;border-bottom:1px solid #0000}.navbar.navbar-home.navbar-scrolled{background-color:var(--glass-bg);border-bottom:1px solid var(--glass-border);box-shadow:var(--shadow-sm)}.navbar-home:not(.navbar-scrolled) .nav-logo,.navbar-home:not(.navbar-scrolled) .nav-logo span{color:#fff!important}.navbar-home:not(.navbar-scrolled) .nav-logo span:last-child{color:#fff!important;background-color:#fff3!important;border:1px solid #ffffff59!important}.navbar-home:not(.navbar-scrolled) .nav-link{color:#ffffffd9}.navbar-home:not(.navbar-scrolled) .nav-link:hover,.navbar-home:not(.navbar-scrolled) .nav-link.active{color:#fff}.navbar-home:not(.navbar-scrolled) .nav-link:after{background-color:#fff}.navbar-home:not(.navbar-scrolled) .btn-icon-only{color:#fff;background-color:#ffffff1f;border-color:#fff3}.navbar-home:not(.navbar-scrolled) .btn-icon-only:hover{background-color:#ffffff38;border-color:#ffffff59;transform:scale(1.05)}.navbar-home:not(.navbar-scrolled) .btn-secondary{color:#fff;background-color:#ffffff1f;border-color:#fff3}.navbar-home:not(.navbar-scrolled) .btn-secondary:hover{background-color:#ffffff38;border-color:#ffffff59}.nav-links{align-items:center;gap:32px;display:flex}.nav-link{color:var(--text-secondary);font-family:var(--font-sans);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;padding:8px 12px;font-size:.95rem;font-weight:600;position:relative}.nav-link:hover{color:var(--accent)}.nav-link:after{content:"";background-color:var(--accent);height:2px;transition:transform var(--transition-fast);position:absolute;bottom:0;left:12px;right:12px;transform:scaleX(0)}.nav-link.active{color:var(--accent)}.nav-link.active:after{transform:scaleX(1)}.home-hero{justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}.hero-slide{opacity:0;z-index:1;width:100%;height:100%;transition:opacity 1.5s ease-in-out;position:absolute;top:0;left:0}.hero-slide.active{opacity:1;z-index:2}.hero-slide-img{background-position:50%;background-size:cover;width:100%;height:100%;position:absolute;top:0;left:0}.hero-slide.active .hero-slide-img{animation:8s ease-in-out forwards kenburns}.hero-slide-overlay{background:linear-gradient(to bottom, #0000008c 0%,  #00000026 40%, #0000 70%, var(--bg-base) 100%);width:100%;height:100%;position:absolute;top:0;left:0}.hero-content{z-index:10;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:0 24px;display:flex;position:relative}.modern-branding-logo{animation:fadeInDown var(--transition-slow);flex-direction:column;justify-content:center;align-items:center;padding:20px 40px;display:flex}.branding-sub{font-family:"Playfair Display", var(--font-serif);letter-spacing:.4em;color:#ffffffa6;text-transform:uppercase;margin-bottom:20px;font-size:.72rem;font-weight:400}.branding-title-row{justify-content:center;align-items:center;gap:16px;margin-bottom:20px;display:flex}.branding-main-text{font-family:var(--font-sans);letter-spacing:.18em;color:#fff;text-shadow:0 4px 20px #00000040;font-size:4.8rem;font-weight:200}.branding-main-text-accent{font-family:var(--font-sans);letter-spacing:.18em;color:#fff;text-shadow:0 4px 20px #00000040;font-size:4.8rem;font-weight:400}.branding-divider{color:var(--accent);opacity:.85;font-size:3.5rem;font-weight:100;transform:translateY(-.06em)}.branding-eng{font-family:var(--font-sans);letter-spacing:.45em;color:#ffffffd9;text-align:center;border-top:1px solid #ffffff40;width:100%;margin-left:.45em;padding-top:14px;font-size:.72rem;font-weight:500}.hero-scroll-btn{color:#fff;cursor:pointer;z-index:10;width:40px;height:40px;transition:background var(--transition-fast), border-color var(--transition-fast);background:#ffffff1a;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;animation:2s infinite bounce;display:flex;position:absolute;bottom:40px;left:calc(50% - 20px)}.hero-scroll-btn:hover{background:#fff3;border-color:#fff6}.home-greeting-section{max-width:1200px;margin:0 auto;padding:140px 24px}.greeting-grid{grid-template-columns:1.25fr .75fr;align-items:center;gap:80px;display:grid}.greeting-text-block{flex-direction:column;align-items:flex-start;display:flex}.greeting-h2{color:var(--text-primary);margin-bottom:28px;font-size:2.8rem;font-weight:400;line-height:1.4}.greeting-p{font-family:"Noto Serif SC", var(--font-serif);color:var(--text-secondary);flex-direction:column;gap:16px;font-size:1.05rem;font-weight:300;line-height:1.9;display:flex}.family-signatures{border-top:1px solid var(--border-color);width:100%;margin-top:40px;padding-top:24px}.signature-title{color:var(--text-tertiary);letter-spacing:.5px;margin-bottom:14px;font-size:.88rem;font-weight:500}.signatures-flex{flex-wrap:wrap;gap:12px;display:flex}.sig-item{font-family:"Noto Serif SC", var(--font-serif);color:var(--text-primary);background-color:var(--bg-surface);border-radius:var(--radius-sm);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast), border-color var(--transition-fast);padding:6px 16px;font-size:1.05rem;font-style:italic}.sig-item:hover{border-color:var(--accent);transform:translateY(-2px)}.greeting-image-block{justify-content:center;align-items:center;display:flex}.polaroid-stack{width:300px;height:380px;position:relative}.polaroid-card{width:230px;transition:transform var(--transition-normal), box-shadow var(--transition-normal), z-index .1s;cursor:pointer;background-color:#fff;border:1px solid #00000005;padding:12px 12px 24px;position:absolute;box-shadow:0 10px 30px #0000000d}.polaroid-card img{object-fit:cover;border-radius:2px;width:100%;height:200px}.polaroid-caption{font-family:"Ma Shan Zheng", "Noto Serif SC", var(--font-serif);color:#3d2b1f;text-align:center;margin-top:12px;font-size:1.15rem}body.dark-mode .polaroid-card{border-color:var(--border-color);background-color:#27201c;box-shadow:0 10px 35px #00000059}body.dark-mode .polaroid-caption{color:#f5eae1}.polaroid-card.p-1{z-index:3;top:0;left:0;transform:rotate(-6deg)}.polaroid-card.p-2{z-index:2;top:35px;right:0;transform:rotate(5deg)}.polaroid-card.p-3{z-index:1;bottom:0;left:30px;transform:rotate(-2deg)}.polaroid-card:hover{box-shadow:0 18px 45px #0000001f;z-index:10!important;transform:scale(1.08)rotate(0)!important}body.dark-mode .polaroid-card:hover{box-shadow:0 18px 45px #0000008c}.home-photowall-section{border-top:1px solid var(--border-color);max-width:1200px;margin:0 auto;padding:120px 24px}.section-title-center{color:var(--text-primary);margin-top:8px;margin-bottom:12px;font-size:2.8rem;font-weight:400}.section-desc-center{font-family:"Noto Serif SC", var(--font-serif);color:var(--text-secondary);font-size:1.08rem;font-style:italic;font-weight:300}.masonry-collage{grid-template-columns:repeat(2,1fr);gap:60px;padding:40px 0;display:grid}.collage-item{cursor:pointer;transition:transform .45s cubic-bezier(.165,.84,.44,1),z-index .1s;position:relative}.collage-card-inner{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:border-color .3s,box-shadow .3s;overflow:hidden}.collage-img-wrapper{aspect-ratio:3/2;position:relative;overflow:hidden}.collage-img-wrapper img{object-fit:cover;width:100%;height:100%;transition:transform 1.2s cubic-bezier(.165,.84,.44,1)}.collage-cat-tag{color:#3d2b1f;border-radius:var(--radius-full);background-color:#ffffffe6;padding:4px 14px;font-size:.75rem;font-weight:600;position:absolute;top:16px;right:16px;box-shadow:0 2px 8px #0000000d}body.dark-mode .collage-cat-tag{color:#f5eae1;background-color:#2d2622e6}.collage-info{padding:28px}.collage-title{color:var(--text-primary);margin-bottom:8px;font-size:1.38rem;font-weight:500}.collage-date{color:var(--text-tertiary);margin-bottom:12px;font-size:.8rem}.collage-excerpt{font-family:"Noto Serif SC", var(--font-serif);color:var(--text-secondary);font-size:.92rem;font-weight:300;line-height:1.75}.collage-item:hover{z-index:5;transform:translateY(-10px)rotate(0)!important}.collage-item:hover .collage-card-inner{border-color:var(--accent);box-shadow:var(--shadow-lg)}.collage-item:hover img{transform:scale(1.06)}.collage-item.style-2{margin-top:70px}.collage-item.style-3{margin-top:-70px}.home-cta-section{text-align:center;background-color:var(--bg-surface-elevated);border-top:1px solid var(--border-color);justify-content:center;align-items:center;padding:130px 24px;display:flex;position:relative;overflow:hidden}.cta-content-wrapper{z-index:10;max-width:680px;margin:0 auto;position:relative}.cta-heading{color:var(--text-primary);margin-bottom:22px;font-size:2.8rem;font-weight:400;line-height:1.45}.cta-subheading{color:var(--text-secondary);font-size:1.05rem;font-family:"Noto Serif SC", var(--font-serif);margin-bottom:44px;font-weight:300;line-height:1.8}.btn-cta-enter{background:linear-gradient(135deg, var(--accent) 0%, #ff8970 100%);color:#fff;border-radius:var(--radius-full);cursor:pointer;box-shadow:0 10px 30px rgba(var(--accent-rgb), .28);letter-spacing:.8px;border:none;justify-content:center;align-items:center;gap:12px;padding:16px 40px;font-size:.98rem;font-weight:600;transition:all .45s cubic-bezier(.165,.84,.44,1);display:inline-flex}.btn-cta-enter:hover{box-shadow:0 16px 40px rgba(var(--accent-rgb), .45);background:linear-gradient(135deg, var(--accent-hover) 0%, var(--accent) 100%);transform:translateY(-4px)}.btn-cta-enter:active{transform:translateY(-1px)}.cta-floating-blobs .blob{pointer-events:none;filter:blur(60px);opacity:.12;z-index:1;border-radius:50%;position:absolute}.cta-floating-blobs .blob-1{background-color:var(--accent);width:300px;height:300px;animation:15s infinite alternate floatSlow;top:-50px;left:-50px}.cta-floating-blobs .blob-2{background-color:#ffc896cc;width:250px;height:250px;animation:18s infinite alternate floatSlowReverse;bottom:-40px;right:-40px}@keyframes kenburns{0%{transform:scale(1.02)}to{transform:scale(1.1)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@media (width<=768px){.hero-left-editorial{display:none}.home-greeting-section,.home-photowall-section,.home-cta-section{padding:60px 16px}.modern-branding-logo{padding:10px 20px}.branding-sub{letter-spacing:.3em;margin-bottom:12px;font-size:.6rem}.branding-title-row{gap:8px;margin-bottom:12px}.branding-main-text,.branding-main-text-accent{letter-spacing:.12em;font-size:2rem}.branding-divider{font-size:1.8rem}.branding-eng{letter-spacing:.3em;padding-top:10px;font-size:.6rem}.nav-links{gap:16px}.nav-link{padding:6px 8px;font-size:.85rem}.nav-link:after{left:8px;right:8px}.greeting-grid{grid-template-columns:1fr;gap:50px}.greeting-h2{margin-bottom:20px;font-size:2.1rem}.greeting-image-block{order:-1;margin-bottom:20px}.polaroid-stack{width:260px;height:330px;margin:0 auto}.polaroid-card{width:190px}.polaroid-card img{height:160px}.section-title-center{font-size:2.1rem}.masonry-collage{grid-template-columns:1fr;gap:30px}.collage-item.style-2,.collage-item.style-3{margin-top:0}.collage-info{padding:20px}.collage-title{font-size:1.25rem}.cta-heading{font-size:2.1rem}.btn-cta-enter{padding:14px 28px;font-size:.9rem}}.washi-tape{z-index:10;width:90px;height:22px;transition:transform var(--transition-normal);pointer-events:none;background-color:#f07b6538;border-left:2px dashed #fff6;border-right:2px dashed #fff6;position:absolute;top:-12px;left:50%;transform:translate(-50%)rotate(-2deg);box-shadow:0 1px 3px #0000000d}.photo-card:nth-child(2n) .washi-tape{background-color:#a28b7b40;transform:translate(-50%)rotate(3deg)}.photo-card:nth-child(3n) .washi-tape{background-color:#ffd4804d;transform:translate(-50%)rotate(-1deg)}.photo-card:hover .washi-tape{transform:translate(-50%)rotate(0)scale(1.05)}.card-pin{z-index:12;filter:drop-shadow(0 2px 3px #0000001f);transition:transform var(--transition-normal);pointer-events:none;font-size:1.4rem;position:absolute;top:-14px;left:12px;transform:rotate(-15deg)}.photo-card:hover .card-pin{transform:rotate(5deg)scale(1.15)}.greeting-p p:first-of-type:first-letter{font-family:"Ma Shan Zheng", var(--font-serif);float:left;color:var(--accent);text-shadow:2px 2px 4px rgba(var(--accent-rgb), .1);margin-top:4px;margin-right:12px;font-size:3.8rem;line-height:1}.greeting-h2:after{content:"";background:linear-gradient(to right, var(--accent), transparent);border-radius:var(--radius-full);width:70px;height:3px;margin-top:18px;display:block}@keyframes floatDoodle1{0%{transform:rotate(-15deg)translateY(0)}to{transform:rotate(-12deg)translateY(-8px)}}@keyframes floatDoodle2{0%{transform:rotate(20deg)translateY(0)}to{transform:rotate(18deg)translateY(-10px)}}@keyframes floatDoodle3{0%{transform:rotate(12deg)translateY(0)}to{transform:rotate(15deg)translateY(-8px)}}@keyframes floatDoodle4{0%{transform:rotate(-10deg)translateY(0)}to{transform:rotate(-7deg)translateY(-10px)}}@media (width>=1300px){.gallery-grid{position:relative}.gallery-grid:before{content:"📷";opacity:.35;pointer-events:none;font-size:2.6rem;animation:4s ease-in-out infinite alternate floatDoodle1;position:absolute;top:60px;left:-70px}.gallery-grid:after{content:"🌿";opacity:.35;pointer-events:none;font-size:2.8rem;animation:5s ease-in-out infinite alternate-reverse floatDoodle2;position:absolute;bottom:120px;right:-80px}.main-content{position:relative}.main-content:before{content:"☕";opacity:.3;pointer-events:none;font-size:2.4rem;animation:4.5s ease-in-out infinite alternate floatDoodle3;position:absolute;bottom:150px;left:-50px}.main-content:after{content:"🌸";opacity:.3;pointer-events:none;font-size:2.4rem;animation:3.8s ease-in-out infinite alternate-reverse floatDoodle4;position:absolute;top:220px;right:-60px}}.view-large-btn{-webkit-backdrop-filter:blur(8px);color:#ffffffbf;cursor:pointer;width:36px;height:36px;transition:all var(--transition-fast);z-index:10;background-color:#00000059;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;bottom:20px;right:20px}.view-large-btn:hover{color:#fff;background-color:#000000a6;border-color:#ffffff59;transform:scale(1.05)}.view-large-btn svg{vertical-align:middle;display:inline-block}.lightbox-overlay{-webkit-backdrop-filter:blur(16px);z-index:3000;animation:fadeIn var(--transition-fast);cursor:zoom-out;background-color:#0a0807f5;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.lightbox-image{object-fit:contain;max-width:90vw;max-height:82vh;animation:modalScaleUp var(--transition-spring);cursor:default;border-radius:6px;box-shadow:0 24px 64px #0009}.lightbox-close-btn{color:#fff;cursor:pointer;width:48px;height:48px;transition:all var(--transition-fast);z-index:3010;background-color:#ffffff1a;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:24px;right:24px}.lightbox-close-btn:hover{background-color:#fff3;border-color:#ffffff4d;transform:scale(1.05)}.lightbox-caption{color:#fff;text-align:center;z-index:3010;border-radius:var(--radius-md);-webkit-backdrop-filter:blur(8px);background-color:#0006;border:1px solid #ffffff14;flex-direction:column;align-items:center;gap:8px;padding:12px 24px;display:flex;position:absolute;bottom:32px}.lightbox-caption h3{font-family:var(--font-serif);margin:0;font-size:1.15rem;font-weight:500}.lightbox-download-link{color:var(--accent);transition:color var(--transition-fast);font-size:.85rem;font-weight:600;text-decoration:none}.lightbox-download-link:hover{color:var(--accent-hover);text-decoration:underline}@media (width<=600px){.lightbox-image{max-width:95vw;max-height:70vh}.lightbox-close-btn{width:40px;height:40px;top:16px;right:16px}.lightbox-caption{box-sizing:border-box;width:calc(100% - 32px);margin:0 16px;bottom:20px}}@media (width<=480px){.nav-logo .serif-title{font-size:1.05rem!important}.nav-logo svg{width:20px!important;height:20px!important}.branding-main-text,.branding-main-text-accent{letter-spacing:.1em;font-size:1.6rem}.branding-divider{font-size:1.4rem}.branding-sub{letter-spacing:.2em;margin-bottom:8px;font-size:.55rem}.branding-eng{letter-spacing:.25em;padding-top:8px;font-size:.55rem}.signatures-flex{justify-content:center;gap:8px}.sig-item{padding:4px 10px;font-size:.9rem}.home-greeting-section,.home-photowall-section,.home-cta-section{padding:40px 12px}.polaroid-stack{width:230px;height:290px}.polaroid-card{width:160px}.polaroid-card img{height:130px}}
