:root{color-scheme:light;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;line-height:1.5;font-weight:400;color:#352337;background:linear-gradient(180deg,#fff9f6,#fff4f7 48%,#fff8ff);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top left,rgba(255,214,227,.72),transparent 30%),radial-gradient(circle at 85% 10%,rgba(255,239,208,.78),transparent 26%),linear-gradient(180deg,#fff9f6,#fff4f7 48%,#fff8ff)}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit}img{max-width:100%;display:block}#app{min-height:100vh}.app-shell{min-height:100vh;background-color:#fff8fb;background-position:center;background-size:cover}.deferred-media-section{content-visibility:auto;contain-intrinsic-size:960px}.reveal-on-scroll{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal-on-scroll.is-visible{opacity:1;transform:translateY(0)}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:24px;background:#170c15d6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.lightbox-dialog{position:relative;width:min(1000px,100%);max-height:92vh;padding:18px 18px 12px;border-radius:26px;background:#fffffff2;box-shadow:0 32px 80px #00000047}.lightbox-close{position:absolute;top:14px;right:14px;min-height:40px;padding:0 14px;border:none;border-radius:999px;background:#fff4f8f5;color:#844f69}.lightbox-counter{position:absolute;top:14px;left:14px;min-height:40px;padding:0 14px;display:inline-flex;align-items:center;border-radius:999px;background:#fff4f8f5;color:#844f69;font-weight:600}.lightbox-nav{position:absolute;top:50%;min-height:44px;padding:0 14px;border:none;border-radius:999px;transform:translateY(-50%);background:#ffffffe6;color:#7a495f}.lightbox-nav-left{left:14px}.lightbox-nav-right{right:14px}.lightbox-image{width:100%;max-height:calc(92vh - 88px);object-fit:contain;border-radius:18px}.lightbox-caption{margin:0;color:#6d5665}.lightbox-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 4px 0}.lightbox-download{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border-radius:999px;background:#fff4f8f5;color:#844f69;text-decoration:none}.page{width:min(1240px,calc(100% - 28px));margin:0 auto;padding:20px 0 64px}.glass-card{position:relative;overflow:hidden;margin-bottom:18px;padding:24px;border-radius:28px;background:#fffc;border:1px solid rgba(255,255,255,.92);box-shadow:0 28px 56px #bf7a971f;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.glass-card:after{content:"";position:absolute;right:-60px;bottom:-70px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,#ffd5e4c2,#ffd5e400);pointer-events:none}.eyebrow{margin:0 0 8px;color:#b96388;font-size:.84rem;letter-spacing:.14em;text-transform:uppercase}.topbar,.anchor-nav{display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar h1,.hero h2,.section-head h2,.section-title h2,.qa-detail-head h3,.task-board h2,.auth-card h1{margin:0;font-family:STKaiti,Kaiti SC,KaiTi,serif;color:#2b1730}.topbar h1{font-size:clamp(2rem,4vw,3rem)}.topbar-title{display:grid;gap:6px}.topbar-note{margin:0;color:#7f6876;font-size:.96rem}.topbar-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.role-badge{display:inline-flex;align-items:center;justify-content:center;min-width:78px;min-height:34px;padding:0 14px;border-radius:999px;font-size:.88rem}.role-admin{color:#fff;background:linear-gradient(135deg,#ff7ba6,#ff9f82)}.role-guest{color:#83556c;background:#fff3f8f5}.admin-door{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border-radius:999px;color:#8a5870;text-decoration:none;background:#fff6faeb;border:1px solid rgba(203,120,155,.12)}.anchor-nav{flex-wrap:wrap}.anchor-nav a{padding:10px 14px;border-radius:999px;text-decoration:none;background:#fff4f8eb;transition:transform .18s ease}.anchor-nav a:hover,.primary-button:hover,.ghost-button:hover,.tiny-button:hover,.file-button:hover{transform:translateY(-1px)}.status-banner{margin:0 0 14px;padding:12px 14px;border-radius:16px}.status-banner.success{background:#ebfff1e0;color:#326947}.status-banner.error,.error-text{background:#ffeef2eb;color:#9b405f}.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;align-items:center}.hero h2{font-size:clamp(2.4rem,5vw,4.6rem);line-height:1.06}.hero-copy p{color:#6e5967;line-height:1.85}.hero-lead{max-width:38rem;font-size:1.08rem}.hero-stats,.anniversary-grid,.song-grid{display:grid;gap:12px}.hero-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin:22px 0}.hero-stats article,.mini-panel,.song-card,.qa-card,.task-card,.qa-post,.calendar-day,.showcase-card,.wallpaper-card,.hero-floating-card,.auth-grid article{border-radius:20px;background:#ffffffc2;box-shadow:inset 0 1px #fffc}.hero-stats article,.mini-panel{padding:16px 18px}.hero-stats span,.mini-panel span,.song-card span,.qa-card span,.qa-post-meta span,.qa-post-meta time,.calendar-day small,.task-card p,.hero-floating-card span,.auth-grid p,.auth-copy,.auth-footnote,.section-title p,.section-head p,.empty-text{color:#7b6674}.hero-stats strong,.mini-panel strong,.hero-floating-card strong{display:block;margin-top:6px;color:#b05076}.music-player{display:grid;gap:14px}.upgraded-player{grid-template-columns:1.15fr .85fr;align-items:start}.player-stage,.playlist-panel,.admin-module{display:grid;gap:14px;padding:18px;border-radius:24px;background:#ffffffad;box-shadow:inset 0 1px #ffffffdb}.player-now strong{display:block;margin-top:6px;font-size:clamp(1.7rem,3vw,2.4rem);color:#2f1831}.player-now p,.playlist-head strong,.admin-module-head p,.admin-row span,.module-hint{color:#7a6371}.player-kicker{display:inline-flex;padding:7px 12px;border-radius:999px;background:#fff1f6f5;color:#b15b82;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}.player-progress{display:grid;gap:8px}.player-progress input[type=range]{width:100%;accent-color:#ff7ca7}.player-time{display:flex;justify-content:space-between;font-size:.9rem;color:#8a7381}.player-controls{display:flex;align-items:center;gap:10px}.control-button{min-height:44px;padding:0 16px;border-radius:999px;border:1px solid rgba(203,120,155,.16);color:#8b4f6d;background:#ffffffd6}.player-toggle{min-width:140px}.playlist-head{display:flex;align-items:end;justify-content:space-between;gap:12px}.playlist-list,.admin-list{display:grid;gap:10px;max-height:360px;overflow:auto;padding-right:4px}.music-header,.section-head,.section-head.compact,.calendar-header,.qa-post-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.song-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.song-card,.qa-card,.calendar-day,.tiny-button,.ghost-button,.primary-button,.file-button{border:none}.song-card{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;padding:14px;text-align:left;transition:transform .18s ease,box-shadow .18s ease}.song-card em{color:#b96b8a;font-style:normal;font-size:.86rem}.song-card strong,.qa-card strong,.task-card strong{display:block;color:#3f2840}.song-card.is-active,.qa-card.is-active,.tiny-button.is-active{background:linear-gradient(145deg,#fff2f7,#fff8eb);box-shadow:0 14px 24px #d47b9d24}.upload-inline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.admin-panel{display:grid;gap:18px}.admin-summary,.admin-grid{display:grid;gap:14px}.admin-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-grid{grid-template-columns:.8fr 1.2fr}.admin-module-head h3{margin:0 0 6px;font-family:STKaiti,Kaiti SC,KaiTi,serif;font-size:1.5rem;color:#311933}.admin-song-form{grid-template-columns:1fr 1fr auto}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:18px;background:#fff9fbeb}.admin-row.is-active{background:linear-gradient(145deg,#fff2f7,#fff8eb)}.admin-image-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.admin-image-card{overflow:hidden;border-radius:22px;background:#fff8fbeb}.admin-image-card.is-hero{box-shadow:0 0 0 2px #ff7ca759}.admin-image-card img{width:100%;aspect-ratio:1 / 1;object-fit:cover}.admin-image-meta{padding:14px}.module-hint{display:inline-block;margin-top:8px;font-size:.9rem}.hero-visual{position:relative;min-height:420px}.hero-image{width:100%;height:420px;object-fit:cover;border-radius:28px}.hero-postcard{position:absolute;left:-10px;bottom:26px;width:min(260px,70%);padding:16px 18px;border-radius:20px;background:#fff9f6e6;box-shadow:0 16px 32px #be7c982e;transform:rotate(-4deg)}.hero-postcard span{display:block;margin-bottom:6px;color:#b35f84;font-size:.76rem;letter-spacing:.16em}.hero-postcard p{margin:0;color:#5f495a;line-height:1.7}.hero-floating-card{position:absolute;right:20px;bottom:20px;padding:16px 18px}.primary-button,.ghost-button,.file-button,.tiny-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:999px;text-decoration:none;transition:transform .18s ease,opacity .18s ease}.primary-button{color:#fff;background:linear-gradient(135deg,#ff7ca7,#ff9e80);box-shadow:0 18px 30px #ff7ca73d}.ghost-button,.tiny-button,.file-button{background:#ffffffdb;color:#8b4f6d;border:1px solid rgba(203,120,155,.16)}.tiny-button{min-height:34px;padding:0 12px;font-size:.88rem}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.section-grid,.diary-layout,.qa-layout{display:grid;gap:16px}.section-title,.section-head{margin-bottom:8px}.anniversary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mini-panel p,.task-card p,.qa-post p,.auth-copy,.auth-footnote,.calendar-day small{margin:8px 0 0}.showcase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.photo-wall{display:block;column-count:3;column-gap:14px}.showcase-card{overflow:hidden;transition:transform .22s ease,box-shadow .22s ease}.photo-wall .showcase-card{display:inline-block;width:100%;margin:0 0 14px;border-radius:24px;background:#fffbfcf0;transform:rotate(var(--photo-tilt, 0deg))}.photo-wall .showcase-card:hover,.admin-image-card:hover,.wallpaper-card:hover,.task-card:hover{transform:translateY(-4px) rotate(var(--photo-tilt, 0deg));box-shadow:0 18px 34px #bb769329}.photo-wall .showcase-card:nth-child(3n+1){--photo-tilt: -1.2deg}.photo-wall .showcase-card:nth-child(3n+2){--photo-tilt: 1deg}.photo-wall .showcase-card:nth-child(3n){--photo-tilt: -.4deg}.image-zoom-button{display:block;width:100%;padding:0;border:none;background:transparent}.hero-image-button{border-radius:28px;overflow:hidden}.showcase-card img{width:100%;aspect-ratio:1 / 1;object-fit:cover}.photo-wall .showcase-card img{aspect-ratio:auto;height:auto}.showcase-card figcaption,.wallpaper-card>div{padding:14px}.card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.wallpaper-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.wallpaper-card{display:grid;grid-template-columns:120px 1fr;gap:12px;overflow:hidden}.wallpaper-card img{width:120px;height:120px;object-fit:cover}.wallpaper-card.is-hero{background:linear-gradient(150deg,#fff4f9f5,#fff7ebf5)}.calendar-panel,.diary-editor,.qa-list,.qa-detail,.task-board{display:grid;gap:14px}.diary-sheet{position:relative;padding:18px;border-radius:26px;background:linear-gradient(180deg,#fffbf4eb,#fff8fbf0);box-shadow:inset 0 1px #ffffffe0}.diary-sheet:before{content:"";position:absolute;top:18px;bottom:18px;left:26px;width:2px;background:linear-gradient(180deg,#ffb6d28c,#ffb6d200);pointer-events:none}.diary-heading{display:grid;gap:8px}.diary-meta{display:flex;flex-wrap:wrap;gap:8px}.diary-meta span{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:999px;color:#856877;background:#fffc}.diary-layout{grid-template-columns:.9fr 1.1fr}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-weekdays span{text-align:center;color:#8d7181}.calendar-day{min-height:84px;padding:10px 8px;display:grid;align-content:space-between;justify-items:start;text-align:left}.calendar-day span{font-weight:700}.calendar-day.is-muted{opacity:.45}.calendar-day.is-selected{background:linear-gradient(145deg,#fff1f7,#fff8eb)}.calendar-day.has-entry{border:1px solid rgba(207,104,147,.18)}.text-input,.text-area{width:100%;border-radius:18px;border:1px solid rgba(197,111,150,.18);padding:14px 16px;background:#ffffffe6;color:#39253b}.text-input:focus,.text-area:focus{outline:2px solid rgba(255,122,171,.16);border-color:#c56f9652}.entry-image-grid,.proof-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.image-stack-card{display:grid;gap:8px}.image-remove-button{min-height:34px;padding:0 12px;border:none;border-radius:999px;background:#ffeef2f5;color:#a14a68}.entry-image-grid img,.proof-grid img{width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:18px}.dual-section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.task-form,.task-list,.qa-thread,.qa-reply-box,.add-card,.auth-form{display:grid;gap:12px}.task-columns,.qa-shell{display:grid;grid-template-columns:.92fr 1.08fr;gap:16px}.task-list{align-content:start}.task-card{padding:16px}.task-edit-box{display:grid;gap:10px}.file-button.inline{width:fit-content}.qa-card{display:grid;grid-template-columns:1fr auto;align-items:start;gap:10px;padding:12px}.qa-card-main{width:100%;padding:4px;border:none;background:transparent;text-align:left}.qa-edit-box{display:grid;gap:10px}.qa-card-actions{display:grid;gap:8px}.qa-edit-button{min-height:34px;padding:0 12px;border:none;border-radius:999px;background:#fff6eaf5;color:#956538;white-space:nowrap}.qa-delete-button{min-height:34px;padding:0 12px;border:none;border-radius:999px;background:#ffeef2f5;color:#a14a68;white-space:nowrap}.qa-post{padding:16px;background:linear-gradient(145deg,#fffaf4eb,#fff7fcf5)}.qa-focus-card{padding:18px;border-radius:24px;background:linear-gradient(145deg,#fff3f8eb,#fffaeef5);box-shadow:inset 0 1px #ffffffe0}.qa-post-meta{flex-wrap:wrap}.qa-post-meta-text{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.reply-kind{display:flex;gap:8px}.auth-shell,.screen-state{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:min(760px,100%);padding:40px 32px;border-radius:34px;background:radial-gradient(circle at top right,#fff1d6e6,#fff1d600 28%),radial-gradient(circle at bottom left,#ffe0ebeb,#ffe0eb00 32%),#ffffffe0;border:1px solid rgba(255,255,255,.92);box-shadow:0 30px 56px #bc789424}.auth-card h1{font-size:clamp(2.2rem,5vw,4rem)}.auth-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.auth-grid article{padding:16px}.screen-state{color:#7f5f71;font-size:1.1rem}@media (max-width: 980px){.topbar,.anchor-nav,.hero,.upgraded-player,.admin-grid,.admin-summary,.diary-layout,.task-columns,.qa-shell,.dual-section,.showcase-grid,.anniversary-grid{grid-template-columns:1fr}.topbar,.anchor-nav,.music-header,.section-head,.calendar-header{flex-direction:column;align-items:flex-start}.hero-stats,.song-grid,.wallpaper-strip,.upload-inline,.admin-song-form,.auth-grid{grid-template-columns:1fr}.photo-wall{column-count:2}.hero-visual{min-height:auto}.hero-image{height:320px}.hero-postcard{left:14px;bottom:14px;transform:none}}@media (max-width: 720px){.page{width:min(100% - 18px,100%);padding-top:16px}.glass-card,.auth-card{padding:18px;border-radius:22px}.hero h2{font-size:2.2rem}.topbar h1{font-size:2rem}.topbar-note{font-size:.9rem}.wallpaper-card{grid-template-columns:1fr}.wallpaper-card img{width:100%;height:220px}.player-controls{flex-direction:column;align-items:stretch}.admin-image-grid{grid-template-columns:1fr}.entry-image-grid,.proof-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-wall{column-count:1}.diary-sheet:before{display:none}.lightbox-overlay{padding:14px}.lightbox-dialog{padding:14px 14px 10px;border-radius:20px}.lightbox-footer{flex-direction:column;align-items:stretch}.lightbox-nav{top:auto;bottom:18px;transform:none}.lightbox-nav-left{left:14px}.lightbox-nav-right{right:14px}}
