/* ============================================================
   情侣空间 · 全站样式
   配色：玫瑰 #b5645c / 米白 #fdf8f4 / 墨 #3d2f2a
   ============================================================ */
:root{
  --rose:#b5645c; --rose-deep:#8f4a44; --rose-soft:#f4e3de;
  --cream:#fdf8f4; --card:#fffdfb; --paper:#fdf8f4;
  --ink:#3d2f2a; --ink-2:#6d5a52; --ink-3:#9c877d;
  --line:#e8d9d2; --red:#bd5347; --blue:#4a6b8a; --amber:#b9812f;
  --r-md:12px; --r-sm:8px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  font-size:15px;line-height:1.78;color:var(--ink);
  background:var(--paper);min-height:100vh;padding:0 22px 64px;
  background-image:
    radial-gradient(900px 500px at 12% -10%, #fbeae3 0%, transparent 62%),
    radial-gradient(700px 420px at 92% 110%, #f3e7ea 0%, transparent 58%);
  background-repeat:no-repeat;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--rose);text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:860px;margin:0 auto}

/* ---------- 导航 ---------- */
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.nav .brand{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:14px;letter-spacing:.06em}
.nav .brand i{font-style:normal;color:var(--rose);margin:0 2px}
.nav .brand .dot{width:6px;height:6px;border-radius:50%;background:var(--rose);box-shadow:0 0 0 3px var(--rose-soft)}
.nav .links{display:flex;gap:2px;flex-wrap:wrap}
.nav .links a{font-size:13.5px;color:var(--ink-2);padding:5px 10px;border-radius:20px;transition:background .18s var(--ease),color .18s}
.nav .links a:hover{background:#f7ece6;color:var(--rose)}
.nav .links a.on{color:var(--rose);background:var(--rose-soft)}
.nav .links a.ext{color:var(--ink-3)}
.nav .links a.adm{color:var(--rose);border:1px solid var(--line);border-radius:20px;padding:4px 11px;font-size:12.5px}
.nav .links a.who{color:var(--ink-3);border:1px dotted var(--line);border-radius:20px;padding:3px 10px;font-size:12.5px}
.nav .links a.who:hover{color:var(--rose);border-color:var(--rose)}

/* ---------- 首页 ---------- */
.hero{text-align:center;padding:70px 0 90px;position:relative}
.hearts{display:flex;gap:6px;justify-content:center;margin-bottom:22px}
.hearts span{width:5px;height:5px;border-radius:50%;background:var(--rose);opacity:.5}
.hearts span:nth-child(2){opacity:.9}
.hero h1{font-size:clamp(26px,6.6vw,36px);font-weight:600;letter-spacing:.02em}
.hero .sub{margin-top:10px;font-size:13.5px;color:var(--ink-3);letter-spacing:.14em}
.counter{margin:44px 0 0}
.counter .num{font-size:clamp(52px,15vw,72px);font-weight:300;color:var(--rose);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.counter .unit{font-size:13px;color:var(--ink-3);letter-spacing:.3em;margin-top:6px}
.counter .since{margin-top:14px;font-size:12.5px;color:var(--ink-3)}
.quote{margin:42px auto 0;max-width:420px;font-size:14.5px;color:var(--ink-2);line-height:2;position:relative;padding:0 24px}
.quote::before,.quote::after{content:"";position:absolute;top:12px;width:14px;height:1px;background:var(--line)}
.quote::before{left:0}.quote::after{right:0}
.scroll{display:inline-block;margin-top:52px;color:var(--ink-3);font-size:16px;animation:bob 2.4s var(--ease) infinite}
@keyframes bob{0%,100%{transform:translateY(0);opacity:.55}50%{transform:translateY(6px);opacity:1}}

.entries{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 10px}
.entry{display:grid;gap:6px;padding:20px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);transition:border-color .2s var(--ease),transform .2s var(--ease)}
.entry:hover{border-color:var(--rose);transform:translateY(-2px)}
.entry .ico{font-size:24px;line-height:1}
.entry b{font-size:15px;font-weight:600;margin-top:4px}
.entry .d{font-size:12.5px;color:var(--ink-3)}
.entry .go{font-size:12px;color:var(--rose);margin-top:6px;opacity:.85}

.block{margin:44px 0 0;border-top:1px solid var(--line);padding-top:22px}
.bh{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.bh b{font-size:13px;letter-spacing:.16em;color:var(--ink-3);font-weight:600}
.bh a{font-size:12.5px}
.recent{list-style:none;display:grid;gap:2px}
.recent li{display:flex;gap:14px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:14px}
.recent .rd{color:var(--ink-3);font-size:12.5px;min-width:52px;font-variant-numeric:tabular-nums;padding-top:2px}
.tailnote{margin:36px 0 0;font-size:13px;color:var(--ink-3);text-align:center}

/* ---------- 页头 ---------- */
.page-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:40px 0 22px;border-bottom:1px solid var(--line);margin-bottom:26px}
.page-head h1{font-size:22px;font-weight:600;letter-spacing:.02em}
.ph-meta{font-size:12.5px;color:var(--ink-3);letter-spacing:.06em}

/* ---------- 相册 ---------- */
.albums{display:grid;gap:34px}
.album{display:grid;gap:14px}
.acover{position:relative;border:0;padding:0;background:none;cursor:pointer;border-radius:var(--r-md);overflow:hidden;display:block;width:100%}
.acover img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .5s var(--ease)}
.acover:hover img{transform:scale(1.015)}
.acover.nocover{aspect-ratio:16/10;background:#f7ece6;display:flex;align-items:center;justify-content:center}
.acover .noph{font-size:12.5px;color:var(--ink-3)}
.acover .cnt{position:absolute;right:10px;bottom:10px;background:rgba(61,47,42,.62);color:#fff;font-size:11.5px;padding:2px 9px;border-radius:20px;backdrop-filter:blur(4px)}
.ameta h2{font-size:17px;font-weight:600;margin-bottom:4px}
.adate{font-size:12.5px;color:var(--ink-3);letter-spacing:.04em}
.anote{margin-top:8px;font-size:14px;color:var(--ink-2);max-width:640px}
.aopen{display:inline-block;margin-top:10px;font-size:12.5px;color:var(--rose);cursor:pointer}
.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}
.ph{margin:0;background:var(--card);border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--line)}
.ph button{border:0;padding:0;background:none;cursor:zoom-in;display:block;width:100%}
.ph img{width:100%;aspect-ratio:1;object-fit:cover}
.ph figcaption{font-size:11.5px;color:var(--ink-2);padding:5px 7px;line-height:1.5}

/* ---------- 灯箱 ---------- */
.lightbox{position:fixed;inset:0;background:rgba(28,22,20,.94);z-index:80;display:flex;align-items:center;justify-content:center}
.lightbox[hidden]{display:none}
.lightbox img{max-width:min(94vw,1200px);max-height:80vh;object-fit:contain;border-radius:4px}
.lightbox button{position:absolute;background:none;border:0;color:#e8d9d2;font-size:34px;line-height:1;cursor:pointer;padding:10px;opacity:.7}
.lightbox button:hover{opacity:1}
.lbx{top:18px;right:22px;font-size:30px}
.lbl{left:14px;top:50%;transform:translateY(-50%)}
.lbr{right:14px;top:50%;transform:translateY(-50%)}
.lbcap{position:absolute;bottom:52px;left:0;right:0;text-align:center;color:#e8d9d2;font-size:13.5px;padding:0 24px}
.lbnum{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:#8d7c74;font-size:12px;letter-spacing:.14em}

/* ---------- 纪念日 ---------- */
.bigday{text-align:center;padding:34px 0 44px;border-bottom:1px solid var(--line);margin-bottom:26px}
.bigday .bl{font-size:13px;color:var(--ink-3);letter-spacing:.22em}
.bigday .bn{font-size:clamp(56px,16vw,78px);font-weight:300;color:var(--rose);line-height:1.05;font-variant-numeric:tabular-nums;margin-top:8px}
.bigday .bu{font-size:12.5px;color:var(--ink-3);letter-spacing:.3em}
.bigday .bs{margin-top:12px;font-size:12.5px;color:var(--ink-3)}
.mgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:16px 18px}
.mcard.hot{border-color:var(--rose);background:linear-gradient(180deg,var(--rose-soft),#fffdfb 70%)}
.mcard.past{opacity:.62}
.mh{display:flex;justify-content:space-between;align-items:center;gap:8px}
.mh b{font-size:14.5px;font-weight:600}
.mtag{font-size:10.5px;color:var(--rose-deep);background:var(--rose-soft);border:1px solid #e2c4bd;border-radius:20px;padding:0 7px;white-space:nowrap}
.mn{margin-top:10px;font-size:19px;color:var(--ink);font-variant-numeric:tabular-nums}
.mcard.hot .mn{color:var(--rose-deep)}
.ms{margin-top:4px;font-size:12px;color:var(--ink-3)}
.mnote{margin-top:8px;font-size:12.5px;color:var(--ink-2);border-top:1px dashed var(--line);padding-top:8px}

/* ---------- 时光轴 ---------- */
.tl{position:relative;padding:10px 0 20px}
.tl::before{content:"";position:absolute;left:24px;top:0;bottom:0;width:1px;background:var(--line)}
.tyear{position:relative;padding:26px 0 10px 52px}
.tyear span{font-size:34px;color:var(--rose-soft);font-weight:600;letter-spacing:.02em}
.titem{position:relative;padding:0 0 26px 52px}
.tdot{position:absolute;left:19px;top:8px;width:11px;height:11px;border-radius:50%;background:var(--card);border:2px solid var(--rose)}
.tcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:15px 18px}
.tdate{font-size:11.5px;color:var(--ink-3);letter-spacing:.12em}
.tcard h3{font-size:15.5px;font-weight:600;margin:4px 0 6px}
.tcard p{font-size:14px;color:var(--ink-2)}
.tph{display:block;margin-top:10px;border-radius:var(--r-sm);overflow:hidden;cursor:zoom-in}
.tph img{width:100%;aspect-ratio:16/9;object-fit:cover}

/* ---------- 愿望 ---------- */
.bar{height:5px;background:#f2e2db;border-radius:20px;overflow:hidden;margin:4px 0 24px}
.bar i{display:block;height:100%;background:var(--rose);border-radius:20px;transition:width .4s var(--ease)}
.wishlist{list-style:none;display:grid;gap:0}
.wishlist li{display:flex;align-items:center;gap:10px;padding:11px 2px;border-bottom:1px dashed var(--line);flex-wrap:wrap}
.wishlist .box{width:17px;height:17px;border:1.5px solid var(--line);border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:var(--rose);flex:none}
.wishlist li.done{opacity:.55}
.wishlist li.done .wt{text-decoration:line-through}
.wt{font-size:14.5px}
.wo{font-size:11.5px;color:var(--rose-deep);background:var(--rose-soft);border-radius:20px;padding:0 8px}
.wd{font-size:11.5px;color:var(--ink-3)}
.wn{font-size:12px;color:var(--ink-3);flex-basis:100%;padding-left:27px}

/* ---------- 悄悄话 ---------- */
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.colh{font-size:12.5px;color:var(--ink-3);letter-spacing:.18em;padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:14px}
.colempty{font-size:12.5px;color:var(--ink-3)}
.note{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--rose);border-radius:var(--r-sm);padding:13px 15px;margin-bottom:12px}
.note .nh{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-3);margin-bottom:6px}
.note .nm{color:var(--rose-deep)}
.note .nb{font-size:14px;color:var(--ink)}
.note.mood-miss{border-left-color:var(--blue)}
.note.mood-sulk{border-left-color:var(--amber)}
.note.mood-calm{border-left-color:var(--ink-3)}

/* ---------- 空状态 ---------- */
.empty{text-align:center;padding:70px 20px;border:1px dashed var(--line);border-radius:var(--r-md);background:#fffdfb}
.empty .ei{font-size:34px;margin-bottom:14px;opacity:.7}
.empty b{display:block;font-size:15px;font-weight:600;margin-bottom:8px}
.empty p{font-size:13px;color:var(--ink-3);max-width:340px;margin:0 auto}

/* ---------- 页脚 ---------- */
.icp-line{margin:0;padding:2px 0 26px;text-align:center;font-size:12px;line-height:1.7}
.icp-line a{color:var(--ink-3);text-decoration:none}
.icp-line a:hover{color:var(--rose)}
.foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:64px;padding-top:20px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-3);letter-spacing:.06em}

/* ---------- 登录 ---------- */
.login-body{display:flex;align-items:center;justify-content:center;padding:40px 22px}
.login{width:100%;max-width:330px;text-align:center;display:grid;gap:12px}
.login .lheart{font-size:20px;color:var(--rose);opacity:.8}
.login h1{font-size:22px;font-weight:600}
.login .lh{font-size:12.5px;color:var(--ink-3);letter-spacing:.14em;margin-bottom:12px}
/* 口令框与按钮：同宽同高（46px），文字一律零字距 + 绝对居中，确保「口令」和「开门！」在一条中线上 */
.login input.pw{box-sizing:border-box;width:100%;height:46px;
  font:inherit;font-size:15px;line-height:1;text-align:center;letter-spacing:0;
  padding:0 14px;border:1px solid var(--line);border-radius:10px;
  background:var(--card);color:var(--ink)}
.login input.pw::placeholder{color:var(--ink-3);letter-spacing:0;text-align:center;opacity:1}
.login input.pw:focus{outline:2px solid var(--rose-soft);border-color:var(--rose)}
.login button{box-sizing:border-box;width:100%;height:46px;
  display:flex;align-items:center;justify-content:center;
  font:inherit;font-size:15px;line-height:1;font-weight:500;letter-spacing:0;
  border:1px solid var(--rose);border-radius:10px;
  background:var(--rose);color:#fff;cursor:pointer;
  transition:background .18s var(--ease)}
.login button:hover{background:var(--rose-deep);border-color:var(--rose-deep)}
.login button:active{transform:translateY(1px)}
.lerr{font-size:12.5px;color:var(--red)}

/* ---------- 响应式 ---------- */
@media (max-width:700px){
  body{padding:0 16px 48px;font-size:14.5px}
  .entries{grid-template-columns:1fr}
  .mgrid,.twocol{grid-template-columns:1fr}
  .thumbs{grid-template-columns:repeat(2,1fr)}
  .hero{padding:44px 0 60px}
  .tl::before{left:9px}
  .titem,.tyear{padding-left:32px}
  .tdot{left:4px}
  .nav{padding:16px 0}
  .nav .links a{padding:5px 7px;font-size:13px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}
