/* =========================================================
   layout-night.css —— 星空夜宴布局（深空发光 + 编号玻璃卡）
   ========================================================= */

html[data-theme="night"] body{
  background-color:#0d1228;
  background-image:
    radial-gradient(1.5px 1.5px at 15% 22%, rgba(255,255,255,.85) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 28% 65%, rgba(255,255,255,.6) 50%, transparent 51%),
    radial-gradient(2px 2px at 55% 12%, rgba(255,255,255,.8) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 70% 40%, rgba(255,255,255,.5) 50%, transparent 51%),
    radial-gradient(2px 2px at 82% 75%, rgba(255,255,255,.75) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 40% 85%, rgba(255,255,255,.55) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 90% 20%, rgba(255,255,255,.5) 50%, transparent 51%),
    radial-gradient(ellipse 90% 55% at 50% -15%, rgba(78,86,132,.55), transparent 70%),
    radial-gradient(ellipse 50% 35% at 85% 100%, rgba(127,179,217,.18), transparent 70%);
}

/* 封面：深空发光 */
.night-hero{
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:calc(2.5rem + env(safe-area-inset-top)) 1.2rem 3.5rem;
  text-align:center;
  position:relative;
}
.night-kicker{
  font-size:.8rem;
  letter-spacing:.6em;
  text-indent:.6em;
  color:var(--ink-soft);
  text-transform:uppercase;
  margin-bottom:1.6rem;
}
.night-names{
  font-family:var(--font-display);
  font-size:clamp(2.4rem,10vw,4.6rem);
  font-weight:700;
  letter-spacing:.08em;
  display:flex;
  align-items:center;
  gap:.5em;
  color:var(--ink);
  text-shadow:0 0 24px rgba(229,192,123,.45);
}
.night-star{
  font-style:normal;
  color:var(--gold);
  font-size:.85em;
  animation:twinkle 2.4s ease-in-out infinite;
}
@keyframes twinkle{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.35;transform:scale(.8);}}
.night-date{
  margin-top:1.2rem;
  font-size:.95rem;
  letter-spacing:.4em;
  text-indent:.4em;
  color:var(--ink-soft);
}
.night-countdown{display:flex;gap:.7rem;margin-top:2.4rem;}
.night-countdown .cd-item{
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.14);
  border-radius:14px;
  padding:.65rem .9rem;
  min-width:3.6rem;
  display:flex;flex-direction:column;align-items:center;
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
}
.night-countdown .cd-num{
  font-size:1.55rem;
  font-weight:700;
  color:var(--gold);
  line-height:1.1;
  text-shadow:0 0 12px rgba(229,192,123,.5);
}
.night-countdown .cd-lab{font-size:.66rem;color:var(--ink-soft);letter-spacing:.2em;}
.night-scroll{
  position:absolute;
  bottom:calc(1.8rem + env(safe-area-inset-bottom));
  font-size:.78rem;
  letter-spacing:.3em;
  color:var(--ink-soft);
  animation:bounce 2s infinite;
}
@keyframes bounce{0%,100%{transform:translateY(0);}50%{transform:translateY(8px);}}

/* 编号玻璃卡 */
.night-main{max-width:860px;margin:0 auto;padding:3.5rem 1.2rem calc(6rem + env(safe-area-inset-bottom));}
.night-title{
  font-family:var(--font-display);
  font-size:1.6rem;
  font-weight:700;
  letter-spacing:.4em;
  text-indent:.4em;
  text-align:center;
  color:var(--gold);
  text-shadow:0 0 18px rgba(229,192,123,.35);
  margin:2.6rem 0 2rem;
}
.night-cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.1rem;
  max-width:760px;
  margin:0 auto;
}
.night-card{
  position:relative;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.16);
  border-radius:18px 6px 18px 6px;
  padding:1.6rem 1.2rem 1.3rem;
  text-align:center;
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  box-shadow:0 8px 30px rgba(0,0,0,.35);
}
.night-no{
  position:absolute;
  top:-.9rem;left:50%;
  transform:translateX(-50%);
  background:linear-gradient(135deg,var(--gold),#c9a24f);
  color:#1a2038;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.1em;
  border-radius:20px;
  padding:.18rem .8rem;
  box-shadow:0 3px 10px rgba(229,192,123,.35);
}
.night-tag{
  display:block;
  font-size:.68rem;
  letter-spacing:.2em;
  color:#9cc9e8;
  margin-bottom:.6rem;
}
.night-card h3{
  font-family:var(--font-display);
  font-size:1.6rem;
  color:var(--ink);
  letter-spacing:.2em;
  margin-bottom:.5rem;
}
.night-addr{
  font-size:.78rem;
  color:var(--ink-soft);
  line-height:1.7;
  margin-bottom:1rem;
}
.night-card .sub-nav{
  background:linear-gradient(135deg,var(--gold),#c9a24f);
  color:#1a2038;
  border:none;
  border-radius:20px;
  font-family:inherit;
  font-size:.74rem;
  letter-spacing:.15em;
  padding:.42rem 1.2rem;
  cursor:pointer;
}
.night-card .sub-nav:active{opacity:.8;}
.night-note{text-align:center;color:var(--ink-soft);font-size:.76rem;margin-top:1.8rem;}

/* 留言 */
.night-form{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  border-radius:16px;
  padding:1.2rem;
  margin-bottom:1.5rem;
  display:flex;
  flex-direction:column;
  gap:.8rem;
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
}
.night-form .gb-input{
  border:1px solid rgba(255,255,255,.3);
  border-radius:10px;
  background:rgba(255,255,255,.06);
  padding:.7rem .9rem;
  font-family:inherit;
  font-size:1rem;
  color:var(--ink);
  outline:none;
}
.night-form .gb-input::placeholder{color:var(--ink-soft);}
.night-form .gb-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(229,192,123,.18);}
.night-form .gb-submit{
  align-self:center;
  background:linear-gradient(135deg,var(--gold),#c9a24f);
  color:#1a2038;
  border:none;
  border-radius:22px;
  padding:.6rem 2.4rem;
  font-family:inherit;
  font-size:.95rem;
  letter-spacing:.2em;
  cursor:pointer;
  box-shadow:0 4px 14px rgba(229,192,123,.3);
}
.night-list{display:flex;flex-direction:column;gap:.8rem;}
.night-list .gb-item{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  border-left:3px solid var(--gold);
  border-radius:12px;
  padding:1rem 1.1rem;
}
.night-list .gb-item:nth-child(even){border-left-color:var(--green);}
.night-list .gb-item-name{color:var(--gold);font-weight:bold;}
.night-list .gb-item:nth-child(even) .gb-item-name{color:#9cc9e8;}
.night-list .gb-item-time{font-size:.7rem;color:var(--ink-soft);}
.night-list .gb-item-msg{font-size:.92rem;line-height:1.7;word-break:break-word;}
.night-list .like-btn{
  background:none;border:1px solid rgba(255,255,255,.25);
  border-radius:14px;
  font-family:inherit;font-size:.72rem;
  color:var(--ink-soft);
  padding:.25rem .6rem;margin-top:.5rem;
  cursor:pointer;
}
.night-list .like-btn.liked{background:rgba(229,192,123,.15);border-color:var(--gold);color:var(--gold);}

/* 移动端 */
@media (max-width:700px){
  .night-cards{grid-template-columns:1fr;max-width:420px;}
}

/* ===== 主宴突出 + 女方/男方地址（女方 --side-f，男方 --side-m） ===== */
@media (min-width:701px){
  .night-cards{grid-template-columns:1fr 1fr;max-width:640px;}
  .night-card.main-feast{grid-column:1/-1;}
}
.night-card.main-feast{order:-1;background:rgba(127,179,217,.12);border-color:rgba(127,179,217,.45);padding:2.1rem 1.5rem 1.7rem;}
.night-card.main-feast .night-no{background:linear-gradient(135deg,var(--side-m),#5e97c2);}
.night-card.main-feast h3{font-size:2rem;}
.night-card.main-feast .night-addr{font-size:.92rem;}
.night-card.main-feast .sub-nav{font-size:.95rem;padding:.6rem 1.7rem;}
.night-card .sub-nav{font-size:.85rem;padding:.5rem 1.35rem;}
.night-card .side-tag{display:inline-block;font-size:.62rem;letter-spacing:.12em;color:#1a2038;border-radius:10px;padding:.03rem .5rem;margin-right:.3rem;vertical-align:1px;}
.night-card .side-tag.side-f{background:var(--side-f);}
.night-card .side-tag.side-m{background:var(--side-m);}
.night-card .addr-copy{background:none;border:none;padding:0;font-family:inherit;font-size:inherit;color:var(--side-f);border-bottom:1px dashed currentColor;cursor:pointer;}
.night-card .addr-copy.side-m{color:var(--side-m);}
.night-card .addr-copy.copied{border-bottom-style:solid;}
.night-card .addr-copy.copied::after{content:' ✓已复制';font-size:.9em;}
.night-card .addr-copy.copy-fail::after{content:' 未复制，长按文字';font-size:.9em;}
.night-card .evt-note{font-size:.7rem;color:var(--ink-soft);margin:.5rem 0 .2rem;}
.night-cards .feast-divider{grid-column:1/-1;text-align:center;color:var(--ink-soft);font-size:.7rem;letter-spacing:.5em;text-indent:.5em;margin:.5rem 0;}
.night-cards .feast-divider::before,.night-cards .feast-divider::after{content:'';display:inline-block;width:30px;height:1px;background:rgba(255,255,255,.28);vertical-align:middle;margin:0 .6em;}
.night-card:not(.main-feast){padding:1.05rem 1rem .95rem;}
.night-card:not(.main-feast) .night-no{top:-.7rem;font-size:.64rem;padding:.14rem .7rem;}
.night-card:not(.main-feast) .night-tag{font-size:.62rem;margin-bottom:.4rem;}
.night-card:not(.main-feast) h3{font-size:1.2rem;}
.night-card:not(.main-feast) .night-addr{font-size:.7rem;margin-bottom:.7rem;}
.night-card:not(.main-feast) .sub-nav{font-size:.72rem;padding:.38rem 1rem;}
.night-card.side-f{background:linear-gradient(rgba(214,51,108,.1),rgba(214,51,108,.1)) var(--paper);}
.night-card.side-m{background:var(--paper);}
.night-card.main-feast{background:rgba(255,255,255,.1);}
.night-card.side-f .sub-nav{background:linear-gradient(135deg,#d6336c,#b02456);color:#fff;}
.night-card.side-m .sub-nav{background:linear-gradient(135deg,#2e86c9,#1e78c8);color:#fff;}
.night-card.side-f .night-tag{color:#e58fa8;}
.night-card.side-m .night-tag{color:#9cc9e8;}
