/* ============================================================
   secret.css —— 私密空间：换世界过渡 + 深色三个子页
   ============================================================ */

/* 入场过渡：深色遮罩 600ms → 光点 → 淡出，整体 1.2s */
.night-veil{position:fixed;inset:0;z-index:100;background:#14101A;opacity:0;
  transition:opacity .6s;pointer-events:none}
.night-veil.in{opacity:1}
.veil-dot{position:absolute;width:2px;height:2px;border-radius:50%;background:#EDE6F2;
  opacity:0;animation:dotIn 1s var(--ease) forwards}
@keyframes dotIn{40%{opacity:.8}100%{opacity:.25}}
.veil-dot.fade{animation:dotOut .5s forwards}
@keyframes dotOut{to{opacity:0}}

.theme-night .page{padding-top:96px}
.theme-night .nav.scrolled{background:rgba(20,16,26,.72);box-shadow:0 1px 0 rgba(237,230,242,.08)}
.theme-night .nav-brand{color:var(--night-ink)}
.theme-night .nav-links li{color:rgba(237,230,242,.55)}
.theme-night .nav-links li.on{color:var(--night-ink)}
.theme-night .nav-links li.on::after{background:var(--grad-night)}
.theme-night .tabbar{background:rgba(20,16,26,.78);box-shadow:0 -1px 0 rgba(237,230,242,.08)}
.theme-night .tabbar a{color:rgba(237,230,242,.5)}
.theme-night .tabbar a.on{color:var(--night-ink)}
.theme-night .home-foot{color:var(--night-ink2)}
/* 私密空间藏掉常驻发布按钮：它会压在底部输入栏的发送键上，
   而且浅色玻璃圆钮出现在深空色里，本身就破戏（文档 1.4） */
.theme-night .fab{display:none}

/* 子导航：发光线标签 */
.night-sub{display:flex;gap:30px;margin-bottom:44px;position:relative;z-index:2}
.night-tab{font-size:13px;letter-spacing:.15em;color:var(--night-ink);opacity:.4;cursor:pointer;
  position:relative;padding-bottom:8px;transition:opacity .3s}
.night-tab.on{opacity:1}
.night-tab.on::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--grad-night);box-shadow:0 0 8px rgba(200,106,142,.8)}

/* 悄悄话 */
.whisper-wrap{max-width:680px;margin:0 auto;display:flex;flex-direction:column;gap:18px;
  padding-bottom:120px}
.ws-row{display:flex}
.ws-row.me{justify-content:flex-end}
.ws-bubble{max-width:68%;border-radius:16px;padding:12px 16px;font-size:14.5px;line-height:1.8;
  background:rgba(255,255,255,.06);animation:wsIn .24s var(--ease)}
.ws-row.them .ws-bubble{background:rgba(255,255,255,.06)}
.ws-row.me .ws-bubble{background:rgba(200,106,142,.16);border:1px solid rgba(200,106,142,.3)}
.ws-time{font-size:11px;color:var(--night-ink2);margin-bottom:5px}
.ws-row.me .ws-time{text-align:right}
.ws-read{display:inline-block;width:6px;height:6px;border-radius:50%;margin-left:6px;
  background:rgba(237,230,242,.25);vertical-align:middle}
.ws-read.on{background:rgba(200,106,142,.9);box-shadow:0 0 6px rgba(200,106,142,.8)}
.ws-inputbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;gap:12px;
  padding:14px 20px calc(18px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.05);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  box-shadow:0 -1px 0 rgba(237,230,242,.08)}
.ws-inputbar input{flex:1;border:0;background:transparent;color:var(--night-ink);font-size:14.5px;
  border-bottom:1px solid rgba(237,230,242,.15);padding:8px 2px}
.ws-send{width:76px;height:40px;border-radius:999px;border:0;background:var(--grad-night);
  color:#fff;font-size:13px;letter-spacing:.1em}
@keyframes wsIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* 恋爱清单 */
.wish-head{max-width:640px;margin:0 auto 30px}
.wish-count{font-size:12.5px;letter-spacing:.14em;color:var(--night-ink2);margin-bottom:10px}
.wish-bar{height:2px;background:rgba(237,230,242,.12);border-radius:2px;overflow:hidden}
.wish-bar i{display:block;height:100%;background:var(--grad-night);transition:width .5s var(--ease)}
.wish-list{max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.wish{position:relative;display:flex;gap:16px;align-items:flex-start;background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px 18px;overflow:hidden;
  cursor:pointer;transition:opacity .5s}
.wish .ring{width:20px;height:20px;border-radius:50%;border:1.5px solid rgba(237,230,242,.4);
  flex:none;margin-top:3px;position:relative;transition:all .3s}
.wish.done .ring{border-color:transparent;background:var(--grad-night)}
.wish .ring svg{position:absolute;inset:2px;opacity:0}
.wish.done .ring svg{opacity:1}
.wish h5{font-size:16px;font-weight:500}
.wish p{font-size:13px;color:var(--night-ink2);margin-top:2px}
.wish.done{opacity:.45}
.wish.done h5{text-decoration:line-through}
.wish .star{position:absolute;right:14px;top:12px;width:12px;height:12px;opacity:0}
.wish.done .star{opacity:1;filter:drop-shadow(0 0 6px rgba(255,107,157,.8))}
.wish .sweep{position:absolute;top:0;bottom:0;left:0;width:0;
  background:linear-gradient(90deg,transparent,rgba(200,106,142,.35),transparent);pointer-events:none}
.wish.just-done .sweep{animation:sweep .5s var(--ease) forwards}
@keyframes sweep{to{width:100%}}

/* 纪念日 */
.ann-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:900px;margin:0 auto}
.ann-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:12px;
  padding:26px 24px;text-align:center;cursor:pointer}
.ann-card h5{font-size:14px;letter-spacing:.1em;color:var(--night-ink2);font-weight:400}
.ann-num{font-family:var(--serif);font-size:56px;font-variant-numeric:tabular-nums;line-height:1.3;
  color:var(--night-ink)}
.ann-num .u{font-size:16px;color:var(--night-ink2);margin-left:4px}
.ann-sub{font-size:13px;color:var(--night-ink2)}
.ann-star{display:inline-block;width:22px;height:22px;color:#FF6B9D;animation:breathe 2.4s ease-in-out infinite;
  filter:drop-shadow(0 0 8px rgba(255,107,157,.8))}
@media (max-width:768px){.ann-grid{grid-template-columns:1fr}}

/* 深色下的通用输入/空态 */
.theme-night .empty{background:rgba(255,255,255,.03);border-color:rgba(237,230,242,.15)}
.theme-night .empty .t{color:var(--night-ink2)}
.theme-night .skeleton{background:rgba(237,230,242,.08)}
.panel.night-dark .pub-input,.panel.night-dark .pub-area{color:var(--night-ink);
  border-color:rgba(237,230,242,.15);background:transparent}
.panel.night-dark .pub-submit{background:var(--grad-night)}
.panel.night-dark .pub-submit.ink{background:transparent;color:var(--night-ink);border-color:rgba(237,230,242,.4)}
