/* =========================================================
   layout-ink.css —— 水墨新中式布局（竖排卷轴 + 时间线）
   ========================================================= */

html[data-theme="ink"] body{
  background-image:
    radial-gradient(ellipse 60% 40% at 18% 12%, rgba(176,72,60,.05), transparent 65%),
    radial-gradient(ellipse 50% 35% at 85% 85%, rgba(79,125,110,.06), transparent 65%),
    repeating-linear-gradient(0deg, rgba(110,100,85,.03) 0 1px, transparent 1px 4px);
}

/* 封面：水墨卷轴 */
.ink-cover{
  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;
  background-image:
    radial-gradient(ellipse 85% 55% at 50% -25%, rgba(51,48,43,.13), transparent 70%),
    radial-gradient(ellipse 45% 35% at 80% 80%, rgba(79,125,110,.09), transparent 70%);
}
.ink-seal{
  display:inline-flex;align-items:center;justify-content:center;
  width:3rem;height:3rem;
  background:var(--pink);
  color:#faf5e8;
  border:1.5px solid var(--pink-deep);
  outline:1px solid rgba(176,72,60,.5);
  outline-offset:4px;
  border-radius:3px;
  font-family:var(--font-display);
  font-size:1.5rem;
  line-height:1;
  box-shadow:0 2px 8px rgba(176,72,60,.25);
  transform:rotate(-3deg);
  animation:seal-in .8s .15s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes seal-in{
  from{opacity:0;transform:rotate(-12deg) scale(.55);}
  to{opacity:1;transform:rotate(-3deg) scale(1);}
}
.ink-names{
  display:flex;
  align-items:baseline;
  gap:.5em;
  margin:1.6rem 0 .4rem;
  font-family:var(--font-display);
  font-size:clamp(2.6rem,10vw,4.4rem);
  font-weight:bold;
  letter-spacing:.18em;
}
.ink-amp{color:var(--pink);font-size:.7em;letter-spacing:0;}
.ink-line{
  font-family:var(--font-display);
  font-size:1.05rem;
  color:var(--ink-soft);
  letter-spacing:.4em;
  border-top:1px solid rgba(51,48,43,.2);
  border-bottom:1px solid rgba(51,48,43,.2);
  padding:.5em 1.2em;
  margin-bottom:1.8rem;
}
.ink-countdown{display:flex;gap:.6rem;margin-bottom:2.2rem;}
.ink-countdown .cd-item{
  background:transparent;
  border:1px solid rgba(51,48,43,.35);
  border-radius:2px;
  padding:.5rem .8rem;
  min-width:3.2rem;
  display:flex;flex-direction:column;align-items:center;
}
.ink-countdown .cd-num{
  font-family:var(--font-display);
  font-size:1.5rem;
  font-weight:bold;
  color:var(--ink);
  line-height:1.1;
}
.ink-countdown .cd-lab{font-size:.68rem;color:var(--ink-soft);}
.ink-scroll{
  position:absolute;
  bottom:calc(1.8rem + env(safe-area-inset-bottom));
  font-family:var(--font-display);
  font-size:.9rem;
  color:var(--ink-soft);
  letter-spacing:.5em;
  writing-mode:vertical-rl;
  animation:bounce 2s infinite;
}
@keyframes bounce{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}

/* 时间线 */
.ink-main{max-width:640px;margin:0 auto;padding:3rem 1.2rem calc(6rem + env(safe-area-inset-bottom));}
.ink-title{
  font-family:var(--font-display);
  font-size:1.7rem;
  font-weight:bold;
  letter-spacing:.5em;
  text-indent:.5em;
  text-align:center;
  color:var(--ink);
  margin:2.6rem 0 2rem;
}
.ink-title::after{
  content:'';
  display:block;
  width:56px;height:1px;
  background:var(--pink);
  margin:.8rem auto 0;
}
.ink-tl{list-style:none;position:relative;}
.ink-tl::before{
  content:'';
  position:absolute;
  top:0;bottom:0;left:7.5rem;
  width:1px;
  background:rgba(51,48,43,.18);
}
.ink-tl-item{
  position:relative;
  display:grid;
  grid-template-columns:7.5rem 1fr;
  gap:1.2rem;
  padding:0 0 2.2rem;
}
.ink-tl-item:last-child{padding-bottom:0;}
.ink-date{
  position:relative;
  z-index:1;
  text-align:right;
  padding-top:.4rem;
}
.ink-date b{
  display:block;
  font-family:var(--font-display);
  font-size:1.15rem;
  letter-spacing:.15em;
  color:var(--ink);
  background:var(--bg);
  display:inline-block;
  padding:0 .4rem;
}
.ink-date i{
  display:block;
  font-style:normal;
  font-size:.7rem;
  color:var(--pink);
  letter-spacing:.3em;
  margin-top:.2rem;
}
.ink-tl-item::before{
  content:'';
  position:absolute;
  left:7.15rem;top:.7rem;
  width:9px;height:9px;
  background:var(--pink);
  border:2px solid var(--bg);
  border-radius:50%;
  z-index:2;
}
.ink-card{
  background:var(--paper);
  border:1px solid rgba(51,48,43,.18);
  border-radius:2px;
  padding:1rem 1.1rem .9rem;
}
.ink-tag{
  display:inline-block;
  font-size:.66rem;
  letter-spacing:.3em;
  color:var(--pink);
  border:1px solid rgba(176,72,60,.45);
  border-radius:2px;
  padding:.1rem .55rem;
  margin-bottom:.5rem;
}
.ink-card h3{
  font-family:var(--font-display);
  font-size:1.35rem;
  font-weight:bold;
  letter-spacing:.3em;
  color:var(--ink);
  margin-bottom:.25rem;
}
.ink-card p{font-size:.82rem;color:var(--ink-soft);line-height:1.6;margin-bottom:.6rem;}
.ink-card .sub-nav{
  background:var(--ink);
  color:#f5efe1;
  border:none;
  border-radius:2px;
  font-family:inherit;
  font-size:.72rem;
  letter-spacing:.15em;
  padding:.4rem .95rem;
  cursor:pointer;
}
.ink-card .sub-nav:active{opacity:.7;}
.ink-note{text-align:center;color:var(--ink-soft);font-size:.76rem;margin-top:1.6rem;letter-spacing:.15em;}

/* 留言 */
.ink-form{
  background:var(--paper);
  border:1px solid rgba(51,48,43,.18);
  border-radius:2px;
  padding:1.2rem;
  margin-bottom:1.5rem;
  display:flex;
  flex-direction:column;
  gap:.8rem;
}
.ink-form .gb-input{
  border:1px solid rgba(51,48,43,.35);
  border-radius:2px;
  background:rgba(250,245,232,.6);
  padding:.7rem .9rem;
  font-family:inherit;
  font-size:1rem;
  color:var(--ink);
  outline:none;
}
.ink-form .gb-input:focus{border-color:var(--ink);}
.ink-form .gb-submit{
  align-self:center;
  background:var(--ink);
  color:#f5efe1;
  border:none;
  border-radius:2px;
  padding:.6rem 2.4rem;
  font-family:inherit;
  font-size:.95rem;
  letter-spacing:.4em;
  text-indent:.4em;
  cursor:pointer;
}
.ink-form .gb-submit:active{opacity:.8;}
.ink-list{display:flex;flex-direction:column;gap:.8rem;}
.ink-list .gb-item{
  background:var(--paper);
  border:1px solid rgba(51,48,43,.15);
  border-left:3px solid var(--pink);
  border-radius:2px;
  padding:1rem 1.1rem;
}
.ink-list .gb-item:nth-child(even){border-left-color:var(--green);}
.ink-list .gb-item-name{color:var(--pink);font-weight:bold;}
.ink-list .gb-item:nth-child(even) .gb-item-name{color:var(--green);}
.ink-list .gb-item-time{font-size:.7rem;color:var(--ink-soft);}
.ink-list .gb-item-msg{font-size:.92rem;line-height:1.7;word-break:break-word;}
.ink-list .like-btn{
  background:none;border:1px solid rgba(51,48,43,.25);
  border-radius:2px;
  font-family:inherit;font-size:.72rem;
  color:var(--ink-soft);
  padding:.25rem .6rem;margin-top:.5rem;
  cursor:pointer;
}
.ink-list .like-btn.liked{background:rgba(176,72,60,.08);border-color:var(--pink);color:var(--pink);}

/* 移动端 */
@media (max-width:560px){
  .ink-tl::before{left:5.2rem;}
  .ink-tl-item{grid-template-columns:5.2rem 1fr;gap:.9rem;}
  .ink-tl-item::before{left:4.85rem;}
  .ink-date b{font-size:1rem;}
}

/* ===== 主宴突出 + 女方/男方地址（女方 --side-f，男方 --side-m） ===== */
.ink-card.main-feast{border-color:rgba(176,72,60,.55);box-shadow:0 4px 18px rgba(63,56,47,.16);padding:1.3rem 1.3rem 1.1rem;}
.ink-card.main-feast h3{font-size:1.7rem;}
.ink-card.main-feast p{font-size:.95rem;}
.ink-card.main-feast .ink-tag{color:var(--side-m);border-color:var(--side-m);}
.ink-card.main-feast .sub-nav{font-size:.95rem;padding:.55rem 1.5rem;}
.ink-card .sub-nav{font-size:.82rem;padding:.5rem 1.2rem;}
.ink-card .side-tag{display:inline-block;font-size:.6rem;letter-spacing:.15em;color:#faf5e8;border-radius:2px;padding:.05rem .5rem;margin-right:.4rem;vertical-align:1px;}
.ink-card .side-tag.side-f{background:var(--side-f);}
.ink-card .side-tag.side-m{background:var(--side-m);}
.ink-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;}
.ink-card .addr-copy.side-m{color:var(--side-m);}
.ink-card .addr-copy.copied{border-bottom-style:solid;}
.ink-card .addr-copy.copied::after{content:' ✓已复制';font-size:.9em;}
.ink-card .addr-copy.copy-fail::after{content:' 未复制，长按文字';font-size:.9em;}
.ink-card .evt-note{font-size:.68rem;color:var(--ink-soft);letter-spacing:.12em;margin:-.35rem 0 .6rem;}
.ink-tl .feast-divider{list-style:none;margin-left:7.5rem;text-align:center;color:var(--ink-soft);font-size:.7rem;letter-spacing:.5em;text-indent:.5em;padding:.15rem 0 1.4rem;}
.ink-tl .feast-divider::before,.ink-tl .feast-divider::after{content:'';display:inline-block;width:30px;height:1px;background:rgba(51,48,43,.25);vertical-align:middle;margin:0 .6em;}
.ink-card:not(.main-feast){padding:.8rem .95rem .7rem;}
.ink-card:not(.main-feast) .ink-tag{font-size:.6rem;margin-bottom:.35rem;}
.ink-card:not(.main-feast) h3{font-size:1.05rem;}
.ink-card:not(.main-feast) p{font-size:.72rem;}
.ink-card:not(.main-feast) .sub-nav{font-size:.7rem;padding:.36rem .9rem;}
@media (max-width:560px){.ink-tl .feast-divider{margin-left:5.2rem;}}
.ink-card.side-f{background:linear-gradient(rgba(214,51,108,.035),rgba(214,51,108,.035)) var(--paper);}
.ink-card.side-m,
.ink-card.main-feast{background:var(--paper);}
.ink-card.side-f .sub-nav{background:#d6336c;color:#fff;}
.ink-card.side-m .sub-nav{background:#1e78c8;color:#fff;}
