:root{--bg-white: #FFFFFF;--bg-soft: #F9F9F8;--bg-paper: #FAF7F2;--border-subtle: #EAE6DF;--border-mid: #DCD7CE;--text-primary: #2C2C2C;--text-secondary: #666666;--text-muted: #999999;--accent-olive: #8F9779;--accent-olive-dark: #737B5F;--accent-slate: #708090;--danger-muted: #9E5852;--font-sans: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Serif SC", "Songti SC", serif, sans-serif;--font-serif: "Noto Serif SC", "Songti SC", "STSong", "SimSun", "PingFang SC", serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;background-color:var(--bg-soft);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);line-height:1.8;letter-spacing:.05em;background-color:var(--bg-soft);color:var(--text-primary);overflow-x:hidden}a{color:inherit;text-decoration:none;transition:color .25s ease}button,input,select,textarea{font-family:inherit;letter-spacing:inherit;color:inherit}img{max-width:100%;display:block}.site-wrapper{min-height:100vh;display:flex;flex-direction:column;background-color:var(--bg-soft)}.site-main{flex:1;width:100%}.page-container{max-width:1320px;margin:0 auto;padding:3.5rem 2.5rem 5rem}.site-header{background-color:var(--bg-white);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:40}.header-inner{max-width:1320px;margin:0 auto;padding:1.5rem 2.5rem;display:flex;align-items:center;justify-content:space-between}.brand-block{display:flex;flex-direction:column;gap:.15rem}.brand-link{display:inline-flex;align-items:baseline;gap:.55rem}.site-title{font-family:var(--font-serif);font-size:1.55rem;font-weight:500;letter-spacing:.14em;color:var(--text-primary)}.site-subtitle-divider{color:var(--text-muted);font-weight:300}.site-subtitle{font-family:var(--font-serif);font-size:.92rem;color:var(--text-secondary);letter-spacing:.1em}.site-english-subtitle{font-family:var(--font-serif);font-size:.72rem;color:var(--text-muted);letter-spacing:.16em;line-height:1.2}.site-nav{display:flex;align-items:center;gap:2.2rem}.nav-link{font-size:.9rem;color:var(--text-secondary);padding:.25rem 0;position:relative;letter-spacing:.08em}.nav-link:hover{color:var(--text-primary)}.nav-link.active{color:var(--text-primary);font-weight:500}.nav-link.active:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.5px;background-color:var(--accent-olive)}.nav-link-admin{color:var(--accent-slate)}.mobile-menu-toggle{display:none;background:none;border:1px solid var(--border-subtle);padding:.45rem;cursor:pointer;color:var(--text-primary)}.hero-intro-section{background-color:var(--bg-paper);border:1px solid var(--border-subtle);padding:2.6rem 2.8rem;margin-bottom:3rem}.hero-intro-inner{max-width:780px;margin:0 auto;text-align:center}.hero-quote-mark{font-family:var(--font-serif);font-size:.85rem;color:var(--accent-olive-dark);letter-spacing:.18em;margin-bottom:.9rem}.hero-intro-text{font-family:var(--font-serif);font-size:.96rem;color:var(--text-secondary);line-height:2}.filter-section{margin-bottom:2.6rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:.9rem}.category-filter-bar,.tag-filter-bar{display:flex;align-items:baseline;flex-wrap:wrap;gap:.65rem}.filter-group-label{font-size:.8rem;color:var(--text-muted);min-width:5rem}.category-chip-list,.tag-chip-list{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.filter-chip{background-color:var(--bg-white);border:1px solid var(--border-subtle);padding:.28rem .85rem;font-size:.82rem;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.4rem}.filter-chip:hover{border-color:var(--accent-olive);color:var(--text-primary)}.filter-chip.active{background-color:var(--accent-olive);border-color:var(--accent-olive);color:var(--bg-white)}.filter-chip-count{font-size:.72rem;opacity:.75}.tag-filter-chip{background:transparent;border:none;padding:.15rem .45rem;font-size:.78rem;color:var(--text-muted);cursor:pointer;transition:color .2s ease}.tag-filter-chip:hover{color:var(--text-primary)}.tag-filter-chip.active{color:var(--accent-olive-dark);text-decoration:underline;text-underline-offset:4px;font-weight:500}.reset-filter-btn{background:none;border:1px dashed var(--border-mid);padding:.15rem .6rem;font-size:.75rem;color:var(--text-secondary);cursor:pointer;margin-left:.35rem}.reset-filter-btn:hover{border-color:var(--text-primary);color:var(--text-primary)}.active-filter-summary{margin-bottom:1.6rem;font-size:.82rem;color:var(--text-secondary)}.masonry-grid{display:grid;gap:2.2rem;align-items:start}.masonry-column{display:flex;flex-direction:column;gap:2.4rem}.photo-card{background-color:var(--bg-white);border:1px solid var(--border-subtle);transition:border-color .3s ease}.photo-card:hover{border-color:var(--border-mid)}.photo-card-media{position:relative;overflow:hidden;background-color:var(--bg-paper);cursor:pointer}.photo-card-img{width:100%;height:auto;display:block;transition:transform .65s cubic-bezier(.22,1,.36,1),filter .45s ease}.photo-card-media:hover .photo-card-img{transform:scale(1.025);filter:brightness(.76)}.photo-film-badge{position:absolute;top:.75rem;right:.75rem;background-color:#2c2c2cb8;color:#faf7f2;font-size:.7rem;padding:.15rem .5rem;display:inline-flex;align-items:center;gap:.25rem;letter-spacing:.08em;pointer-events:none}.photo-hover-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:flex-end;padding:1.25rem;background:linear-gradient(to top,rgba(28,28,28,.68) 0%,rgba(28,28,28,.18) 55%,transparent 100%);opacity:0;transition:opacity .35s ease;pointer-events:none}.photo-card-media:hover .photo-hover-overlay,.photo-card-media:focus-visible .photo-hover-overlay{opacity:1}.photo-hover-meta{color:#faf7f2;font-size:.78rem;line-height:1.65}.hover-camera-line{font-weight:400;letter-spacing:.04em}.hover-location-line,.hover-film-line{color:#faf7f2d9;font-size:.74rem}.photo-card-body{padding:1.1rem 1.25rem 1.2rem}.photo-card-header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.55rem}.photo-card-title{font-family:var(--font-serif);font-size:1rem;font-weight:500;color:var(--text-primary);cursor:pointer}.photo-card-title:hover{color:var(--accent-olive-dark)}.photo-card-date{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.photo-mobile-meta{display:none;flex-direction:column;gap:.2rem;margin-bottom:.65rem;padding:.45rem .6rem;background-color:var(--bg-paper);font-size:.74rem;color:var(--text-secondary)}.mobile-meta-item{display:inline-flex;align-items:center;gap:.35rem}.photo-card-tags{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.card-category-chip{background-color:var(--bg-paper);border:1px solid var(--border-subtle);padding:.1rem .5rem;font-size:.72rem;color:var(--text-secondary);cursor:pointer}.card-category-chip:hover{border-color:var(--accent-olive);color:var(--text-primary)}.card-tag-chip{background:none;border:none;font-size:.72rem;color:var(--text-muted);cursor:pointer;padding:.1rem .15rem}.card-tag-chip:hover{color:var(--accent-slate)}.section-page-header{max-width:720px;margin:0 auto 3.2rem;text-align:center}.film-header-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.2rem .75rem;background-color:var(--bg-paper);border:1px solid var(--border-subtle);color:var(--accent-olive-dark);font-size:.76rem;margin-bottom:.85rem}.section-page-title{font-family:var(--font-serif);font-size:1.65rem;font-weight:500;color:var(--text-primary);letter-spacing:.12em;margin-bottom:.75rem}.section-page-subtitle{font-size:.9rem;color:var(--text-secondary);line-height:1.9}.albums-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem}.album-card{background-color:var(--bg-white);border:1px solid var(--border-subtle);display:flex;flex-direction:column;transition:border-color .3s ease}.album-card:hover{border-color:var(--accent-olive)}.album-card-cover-wrap{position:relative;aspect-ratio:16 / 10;overflow:hidden;background-color:var(--bg-paper)}.album-card-cover{width:100%;height:100%;object-fit:cover;transition:transform .65s ease}.album-card:hover .album-card-cover{transform:scale(1.03)}.album-photo-count-badge{position:absolute;bottom:.85rem;right:.85rem;background-color:#2c2c2cc7;color:#faf7f2;font-size:.74rem;padding:.22rem .65rem;display:inline-flex;align-items:center;gap:.35rem}.album-card-content{padding:1.6rem 1.8rem 1.75rem;display:flex;flex-direction:column;flex:1}.album-card-top-meta{display:flex;flex-wrap:wrap;gap:1rem;font-size:.76rem;color:var(--text-muted);margin-bottom:.55rem}.album-period,.album-location{display:inline-flex;align-items:center;gap:.3rem}.album-card-title{font-family:var(--font-serif);font-size:1.25rem;font-weight:500;color:var(--text-primary);margin-bottom:.7rem}.album-card-description{font-size:.88rem;color:var(--text-secondary);line-height:1.85;flex:1;margin-bottom:1.2rem}.album-card-footer{border-top:1px solid var(--border-subtle);padding-top:.9rem}.album-enter-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--accent-olive-dark)}.album-detail-nav{margin-bottom:1.8rem}.back-to-albums-link{display:inline-flex;align-items:center;gap:.45rem;font-size:.85rem;color:var(--text-secondary);padding:.35rem .8rem;border:1px solid var(--border-subtle);background-color:var(--bg-white)}.back-to-albums-link:hover{border-color:var(--text-primary);color:var(--text-primary)}.album-detail-header{background-color:var(--bg-paper);border:1px solid var(--border-subtle);padding:2.4rem 2.6rem;margin-bottom:3rem;text-align:center}.album-detail-title{font-family:var(--font-serif);font-size:1.6rem;font-weight:500;margin-bottom:.85rem}.album-detail-meta{display:flex;justify-content:center;flex-wrap:wrap;gap:1.5rem;font-size:.8rem;color:var(--text-muted);margin-bottom:1.1rem}.album-meta-item{display:inline-flex;align-items:center;gap:.35rem}.album-detail-description{max-width:720px;margin:0 auto;font-size:.92rem;color:var(--text-secondary)}.about-article{max-width:780px;margin:0 auto;background-color:var(--bg-white);border:1px solid var(--border-subtle);padding:3.5rem 3.8rem}.about-header{text-align:center;margin-bottom:2.2rem}.about-seal{display:inline-block;border:1px solid var(--accent-olive);color:var(--accent-olive-dark);font-family:var(--font-serif);font-size:.8rem;padding:.25rem .65rem;letter-spacing:.2em;margin-bottom:.9rem}.about-name{font-family:var(--font-serif);font-size:1.65rem;font-weight:500;letter-spacing:.14em;margin-bottom:.45rem}.about-location{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;color:var(--text-muted);margin-bottom:.65rem}.about-archive-summary{font-size:.82rem;color:var(--text-secondary)}.about-divider{height:1px;background-color:var(--border-subtle);margin:2.2rem 0}.about-section{margin-bottom:2.5rem}.about-section-title{font-family:var(--font-serif);font-size:1.05rem;font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.about-prose p{font-size:.92rem;color:var(--text-secondary);line-height:2;margin-bottom:.9rem;text-align:justify}.about-gear-card{background-color:var(--bg-paper);border:1px solid var(--border-subtle);padding:1.35rem 1.6rem}.gear-line{font-size:.86rem;color:var(--text-secondary);line-height:1.95}.about-contact-note{font-size:.88rem;color:var(--text-secondary);margin-bottom:1.35rem}.about-contact-grid{display:flex;align-items:center;justify-content:space-between;gap:2rem;background-color:var(--bg-paper);border:1px solid var(--border-subtle);padding:1.5rem 1.8rem}.contact-info-list{display:flex;flex-direction:column;gap:.65rem}.contact-info-row{display:flex;align-items:center;gap:.45rem;font-size:.86rem}.contact-label{color:var(--text-muted)}.contact-value-link{color:var(--accent-slate);border-bottom:1px solid transparent}.contact-value-link:hover{border-bottom-color:var(--accent-slate)}.about-qr-card{display:flex;flex-direction:column;align-items:center;gap:.4rem}.about-qr-img{width:112px;height:112px;object-fit:contain;border:1px solid var(--border-subtle);background-color:var(--bg-white);padding:.25rem}.about-qr-caption{font-size:.72rem;color:var(--text-muted)}.lightbox-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background-color:#181817eb;display:flex;align-items:center;justify-content:center;padding:2rem}.lightbox-close-btn{position:fixed;top:1.4rem;right:1.6rem;z-index:110;background-color:#ffffff14;border:1px solid rgba(255,255,255,.2);color:#faf7f2;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer}.lightbox-close-btn:hover{background-color:#ffffff2e}.lightbox-nav-btn{position:fixed;top:50%;transform:translateY(-50%);z-index:110;background-color:#ffffff14;border:1px solid rgba(255,255,255,.18);color:#faf7f2;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer}.lightbox-nav-btn:hover{background-color:#fff3}.lightbox-prev-btn{left:1.4rem}.lightbox-next-btn{right:1.4rem}.lightbox-container{max-width:1180px;width:100%;max-height:88vh;background-color:var(--bg-white);display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.95fr);overflow:hidden;border:1px solid var(--border-mid)}.lightbox-image-stage{background-color:#161615;display:flex;align-items:center;justify-content:center;padding:1.5rem;max-height:88vh;overflow:hidden}.lightbox-image{max-width:100%;max-height:calc(88vh - 3rem);width:auto;height:auto;object-fit:contain}.lightbox-sidebar{background-color:var(--bg-paper);border-left:1px solid var(--border-subtle);overflow-y:auto;max-height:88vh}.lightbox-sidebar-inner{padding:2.2rem 2rem;display:flex;flex-direction:column;gap:1.25rem}.lightbox-index-indicator{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;color:var(--text-muted)}.lightbox-category-label{background-color:var(--bg-white);border:1px solid var(--border-subtle);padding:.1rem .55rem;color:var(--text-secondary)}.lightbox-title{font-family:var(--font-serif);font-size:1.35rem;font-weight:500;color:var(--text-primary)}.lightbox-meta-list{display:flex;flex-direction:column;gap:.45rem;padding:.9rem 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}.lightbox-meta-row{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--text-secondary)}.lightbox-reflection-box{padding:.4rem 0}.lightbox-reflection-label{font-size:.75rem;color:var(--text-muted);margin-bottom:.4rem}.lightbox-reflection-text{font-family:var(--font-serif);font-size:.92rem;color:var(--text-primary);line-height:1.95}.lightbox-album-info{font-size:.78rem;color:var(--accent-olive-dark)}.lightbox-tags{display:flex;flex-wrap:wrap;gap:.45rem}.lightbox-tag{font-size:.75rem;color:var(--text-muted)}.site-footer{background-color:var(--bg-white);border-top:1px solid var(--border-subtle);padding:2.2rem 2.5rem;margin-top:auto}.footer-inner{max-width:1320px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.2rem;font-size:.78rem;color:var(--text-muted)}.footer-left,.footer-right{display:flex;flex-direction:column;gap:.3rem}.footer-right{align-items:flex-end}.footer-sep{margin:0 .45rem}.footer-powered{font-size:.74rem;color:var(--text-muted)}.footer-actions{position:relative;display:flex;align-items:center;gap:.85rem;margin-top:.2rem}.wechat-popover-trigger{background-color:var(--bg-paper);border:1px solid var(--border-subtle);padding:.2rem .65rem;font-size:.74rem;color:var(--text-secondary);display:inline-flex;align-items:center;gap:.35rem;cursor:pointer}.wechat-popover-trigger:hover{border-color:var(--accent-olive);color:var(--text-primary)}.wechat-popover{position:absolute;bottom:calc(100% + 10px);right:0;width:220px;background-color:var(--bg-white);border:1px solid var(--border-mid);padding:.9rem;z-index:60;text-align:center;box-shadow:0 6px 20px #0000000f}.wechat-popover-header{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;color:var(--text-secondary);margin-bottom:.55rem}.wechat-popover-close{background:none;border:none;cursor:pointer;color:var(--text-muted)}.wechat-qr-box{background-color:var(--bg-paper);padding:.4rem;margin-bottom:.45rem}.wechat-qr-box img{width:160px;height:160px;margin:0 auto;object-fit:contain}.wechat-id-text{font-size:.76rem;color:var(--text-primary)}.wechat-note-text{font-size:.7rem;color:var(--text-muted)}.admin-lock-link{color:var(--text-muted);padding:.2rem;display:inline-flex;align-items:center;opacity:.65}.admin-lock-link:hover{color:var(--text-primary);opacity:1}.admin-login-page{display:flex;justify-content:center;align-items:center;min-height:68vh}.admin-auth-card{width:100%;max-width:440px;background-color:var(--bg-white);border:1px solid var(--border-subtle);padding:2.5rem 2.4rem}.admin-auth-header{text-align:center;margin-bottom:1.8rem}.admin-lock-badge{width:40px;height:40px;margin:0 auto .85rem;border:1px solid var(--border-mid);background-color:var(--bg-paper);display:flex;align-items:center;justify-content:center;color:var(--accent-olive-dark)}.admin-auth-title{font-family:var(--font-serif);font-size:1.3rem;font-weight:500;margin-bottom:.5rem}.admin-auth-subtitle{font-size:.8rem;color:var(--text-secondary);line-height:1.75}.admin-error-banner{background-color:#fdf6f5;border:1px solid #E6C5C2;color:var(--danger-muted);padding:.65rem .85rem;font-size:.8rem;display:flex;align-items:center;gap:.45rem;margin-bottom:1.2rem}.admin-auth-form{display:flex;flex-direction:column;gap:1.1rem}.form-field{display:flex;flex-direction:column;gap:.35rem}.form-field label{font-size:.8rem;color:var(--text-secondary)}.form-field input,.form-field select,.form-field textarea{background-color:var(--bg-soft);border:1px solid var(--border-mid);padding:.55rem .75rem;font-size:.86rem;color:var(--text-primary);outline:none}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent-olive);background-color:var(--bg-white)}.primary-btn{background-color:var(--text-primary);border:1px solid var(--text-primary);color:var(--bg-white);padding:.55rem 1.2rem;font-size:.84rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;transition:background-color .2s ease}.primary-btn:hover:not(:disabled){background-color:var(--accent-olive-dark);border-color:var(--accent-olive-dark)}.primary-btn:disabled{opacity:.55;cursor:not-allowed}.secondary-btn{background-color:var(--bg-white);border:1px solid var(--border-mid);color:var(--text-secondary);padding:.55rem 1.1rem;font-size:.84rem;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem}.secondary-btn:hover{border-color:var(--text-primary);color:var(--text-primary)}.danger-btn{background-color:var(--danger-muted);border:1px solid var(--danger-muted);color:var(--bg-white);padding:.55rem 1.15rem;font-size:.84rem;cursor:pointer}.full-width-btn{width:100%;margin-top:.4rem}.admin-mode-footnote{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-subtle);font-size:.73rem;color:var(--text-muted);text-align:center}.admin-dashboard-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.2rem;padding-bottom:1.6rem;border-bottom:1px solid var(--border-subtle);margin-bottom:1.8rem}.admin-dashboard-title{font-family:var(--font-serif);font-size:1.45rem;font-weight:500}.admin-dashboard-meta{font-size:.8rem;color:var(--text-muted);margin-top:.25rem}.admin-header-actions{display:flex;gap:.75rem}.admin-tabs-bar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;border-bottom:1px solid var(--border-subtle);padding-bottom:.8rem}.admin-tab-btn{background-color:var(--bg-white);border:1px solid var(--border-subtle);padding:.5rem 1.05rem;font-size:.84rem;color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;gap:.45rem}.admin-tab-btn.active{background-color:var(--bg-paper);border-color:var(--accent-olive);color:var(--text-primary);font-weight:500}.admin-toolbar{margin-bottom:1.4rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.8rem}.admin-photo-table-wrap{background-color:var(--bg-white);border:1px solid var(--border-subtle);overflow-x:auto}.admin-photo-table{width:100%;border-collapse:collapse;font-size:.83rem}.admin-photo-table th,.admin-photo-table td{padding:.95rem 1rem;text-align:left;border-bottom:1px solid var(--border-subtle);vertical-align:middle}.admin-photo-table th{background-color:var(--bg-paper);font-weight:500;color:var(--text-secondary);font-size:.78rem}.admin-table-thumb{width:72px;height:54px;object-fit:cover;border:1px solid var(--border-subtle)}.admin-row-title{font-family:var(--font-serif);font-weight:500;color:var(--text-primary)}.admin-row-desc{font-size:.76rem;color:var(--text-secondary);max-width:310px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.admin-row-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.25rem;font-size:.72rem;color:var(--text-muted)}.admin-row-sub{color:var(--text-primary);font-size:.8rem}.admin-row-muted{color:var(--text-muted);font-size:.75rem}.admin-cat-pill{display:inline-block;background-color:var(--bg-paper);border:1px solid var(--border-subtle);padding:.1rem .5rem;font-size:.74rem}.visibility-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;font-size:.74rem;cursor:pointer;border:1px solid var(--border-mid);background-color:var(--bg-white)}.visibility-badge.is-public{color:var(--accent-olive-dark);border-color:var(--accent-olive)}.visibility-badge.is-private{color:var(--text-muted)}.admin-row-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.icon-action-btn{background-color:var(--bg-paper);border:1px solid var(--border-subtle);padding:.28rem .6rem;font-size:.75rem;color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;gap:.28rem}.icon-action-btn:hover{border-color:var(--text-primary);color:var(--text-primary)}.icon-action-btn.danger:hover{border-color:var(--danger-muted);color:var(--danger-muted)}.admin-albums-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem}.admin-album-card{background-color:var(--bg-white);border:1px solid var(--border-subtle);display:grid;grid-template-columns:180px 1fr}.admin-album-cover{width:100%;height:100%;object-fit:cover}.admin-album-body{padding:1.2rem 1.4rem;display:flex;flex-direction:column;gap:.45rem}.admin-album-header{display:flex;justify-content:space-between;align-items:baseline}.admin-album-header h3{font-family:var(--font-serif);font-size:1.05rem}.admin-album-header span{font-size:.75rem;color:var(--text-muted)}.admin-album-desc{font-size:.8rem;color:var(--text-secondary);margin-bottom:.5rem}.admin-two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.admin-subcard{background-color:var(--bg-white);border:1px solid var(--border-subtle);padding:1.6rem 1.8rem}.admin-subcard-title{font-family:var(--font-serif);font-size:1.1rem;margin-bottom:.35rem}.admin-subcard-desc{font-size:.8rem;color:var(--text-muted);margin-bottom:1.2rem}.admin-inline-form{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.4rem}.admin-inline-form input{flex:1;min-width:150px;border:1px solid var(--border-mid);padding:.45rem .65rem;font-size:.82rem}.admin-category-list{list-style:none;display:flex;flex-direction:column;gap:.65rem}.admin-category-item{display:flex;justify-content:space-between;align-items:center;padding:.65rem .8rem;background-color:var(--bg-paper);border:1px solid var(--border-subtle);font-size:.84rem}.admin-cat-count{font-size:.76rem;color:var(--text-muted);margin-left:.35rem}.admin-tags-cloud{display:flex;flex-direction:column;gap:.55rem}.admin-tag-manage-item{display:flex;justify-content:space-between;align-items:center;padding:.45rem .75rem;background-color:var(--bg-paper);border:1px solid var(--border-subtle);font-size:.82rem}.admin-tag-name em{font-style:normal;color:var(--text-muted);font-size:.74rem}.admin-tag-edit-inline{display:flex;align-items:center;gap:.4rem;width:100%}.admin-tag-edit-inline input{flex:1;padding:.25rem .5rem;border:1px solid var(--border-mid);font-size:.8rem}.admin-settings-form{background-color:var(--bg-white);border:1px solid var(--border-subtle);padding:2rem 2.2rem;display:flex;flex-direction:column;gap:1.25rem}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.4rem}.inline-triple-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background-color:#1e1e1ca6;display:flex;align-items:center;justify-content:center;padding:1.5rem}.modal-card{width:100%;max-width:760px;max-height:90vh;overflow-y:auto;background-color:var(--bg-white);border:1px solid var(--border-mid);padding:1.8rem 2rem}.confirm-dialog-card{width:100%;max-width:440px;background-color:var(--bg-white);border:1px solid var(--border-mid);padding:1.8rem 2rem}.confirm-dialog-card h3{font-family:var(--font-serif);font-size:1.15rem;margin-bottom:.75rem}.confirm-dialog-card p{font-size:.86rem;color:var(--text-secondary);margin-bottom:1.4rem}.modal-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:1rem;border-bottom:1px solid var(--border-subtle);margin-bottom:1.25rem}.modal-header h2{font-family:var(--font-serif);font-size:1.2rem;font-weight:500}.modal-close-btn{background:none;border:none;cursor:pointer;color:var(--text-muted)}.modal-form{display:flex;flex-direction:column;gap:1.1rem}.upload-dropzone{background-color:var(--bg-paper);border:1px dashed var(--accent-olive);padding:1.2rem}.upload-dropzone-label{display:flex;flex-direction:column;align-items:center;gap:.5rem;cursor:pointer;font-size:.82rem;color:var(--text-secondary);text-align:center}.upload-dropzone-label input{display:none}.upload-progress-wrap{margin-top:.85rem}.upload-progress-bar{height:6px;background-color:var(--border-subtle);overflow:hidden;margin-bottom:.35rem}.upload-progress-fill{height:100%;background-color:var(--accent-olive);transition:width .25s ease}.upload-progress-text{font-size:.76rem;color:var(--text-secondary)}.upload-preview-row{display:flex;align-items:center;gap:1rem;margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--border-subtle)}.upload-preview-thumb{width:88px;height:66px;object-fit:cover;border:1px solid var(--border-mid)}.upload-preview-meta{flex:1;font-size:.78rem;color:var(--text-secondary);display:flex;flex-direction:column;gap:.35rem}.upload-preview-meta input{padding:.35rem .6rem;border:1px solid var(--border-mid);font-size:.78rem}.form-checkbox-row{display:flex;flex-wrap:wrap;gap:1.5rem;padding:.4rem 0}.checkbox-label{display:inline-flex;align-items:center;gap:.45rem;font-size:.82rem;color:var(--text-secondary);cursor:pointer}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-subtle)}.toast-notification{position:fixed;top:5.2rem;right:2rem;z-index:120;background-color:var(--text-primary);color:#faf7f2;padding:.65rem 1.2rem;font-size:.82rem;border-left:3px solid var(--accent-olive);box-shadow:0 4px 16px #0000001f}.toast-error{border-left-color:var(--danger-muted)}.empty-gallery-state,.loading-state{text-align:center;padding:4.5rem 1.5rem;background-color:var(--bg-paper);border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:.9rem}.empty-gallery-text{margin-bottom:1rem}@media (max-width: 980px){.page-container{padding:2.5rem 1.5rem 4rem}.header-inner{padding:1.2rem 1.5rem}.albums-grid,.admin-albums-grid,.admin-two-col{grid-template-columns:1fr}.lightbox-container{grid-template-columns:1fr;max-height:92vh;overflow-y:auto}.lightbox-image-stage{max-height:54vh}.lightbox-image{max-height:50vh}.lightbox-sidebar{max-height:none;border-left:none;border-top:1px solid var(--border-subtle)}}@media (hover: none),(max-width: 768px){.photo-mobile-meta{display:flex}.photo-hover-overlay{display:none}}@media (max-width: 768px){.mobile-menu-toggle{display:inline-flex;align-items:center;justify-content:center}.site-nav{display:none;position:absolute;top:100%;left:0;right:0;background-color:var(--bg-white);border-bottom:1px solid var(--border-mid);flex-direction:column;align-items:flex-start;padding:1rem 1.5rem 1.4rem;gap:.85rem}.site-nav.is-open{display:flex}.hero-intro-section{padding:1.8rem 1.4rem}.about-article{padding:2.2rem 1.5rem}.about-contact-grid{flex-direction:column;align-items:flex-start}.admin-form-grid,.admin-album-card{grid-template-columns:1fr}.footer-inner{flex-direction:column;align-items:flex-start}.footer-right{align-items:flex-start}.wechat-popover{left:0;right:auto}.lightbox-backdrop{padding:.75rem}.lightbox-prev-btn{left:.5rem}.lightbox-next-btn{right:.5rem}}
