/* ============================================================
   黛烟 · 藏阁 — 古风简约主题
   配色取自角色：月白 / 黛蓝 / 墨 / 金 / 朱
   ============================================================ */

:root{
  --ink:#111413;
  --ink-2:#191d1b;
  --paper:#f6f2e9;
  --paper-2:#ece4d4;
  --paper-3:#e2d8c4;
  --dai:#2b4157;
  --dai-2:#4a6a85;
  --dai-3:#7d94a8;
  --smoke:#93a1a0;
  --gold:#b8965a;
  --gold-2:#d8bd85;
  --seal:#a23b32;
  --text:#23261f;
  --text-2:#5d5f56;
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  --kai:"Kaiti SC","STKaiti","KaiTi","楷体",serif;
  --maxw:1200px;
  --ease:cubic-bezier(.22,.68,.16,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{width:100%;max-width:100%;overflow-x:hidden;
  margin:0;
  background:var(--paper);
  color:var(--text);
  font-family:var(--serif);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;}
::selection{background:rgba(184,150,90,.28);}

/* ---------- 纹理与光效 ---------- */
.grain{
  position:fixed;inset:0;z-index:60;pointer-events:none;
  opacity:.055;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}
.spotlight{
  position:fixed;top:0;left:0;width:640px;height:640px;z-index:55;
  pointer-events:none;opacity:0;transition:opacity .6s;
  background:radial-gradient(circle,rgba(216,189,133,.20),rgba(74,106,133,.10) 42%,transparent 68%);
  mix-blend-mode:soft-light;
  will-change:transform;
}
body.has-pointer .spotlight{opacity:1;}
#petals{position:fixed;inset:0;z-index:1;pointer-events:none;}

/* ---------- 导航 ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:26px 52px;color:var(--paper);
  transition:background .5s var(--ease),color .5s var(--ease),padding .5s var(--ease),border-color .5s;
  border-bottom:1px solid transparent;
}
.nav.solid{
  padding:16px 52px;color:var(--ink);
  background:rgba(246,242,233,.74);
  -webkit-backdrop-filter:blur(18px) saturate(150%);
  backdrop-filter:blur(18px) saturate(150%);
  border-bottom-color:rgba(43,65,87,.12);
}
.brand{display:flex;align-items:center;gap:12px;letter-spacing:.3em;}
.brand-seal{
  width:34px;height:34px;display:grid;place-items:center;
  background:var(--seal);color:var(--paper);
  font-size:18px;border-radius:3px;transform:rotate(-3deg);
  box-shadow:0 4px 14px -6px rgba(162,59,50,.7);
}
.brand-name{font-size:17px;}
.links{display:flex;gap:44px;}
.links a{
  position:relative;font-size:14px;letter-spacing:.3em;opacity:.82;
  transition:opacity .3s;
}
.links a::after{
  content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;
  background:currentColor;opacity:.5;transition:right .45s var(--ease);
}
.links a:hover{opacity:1;}
.links a:hover::after{right:0;}
.nav-note{font-size:11px;letter-spacing:.5em;opacity:.5;}

/* ---------- HERO ---------- */
.hero{
  position:relative;min-height:100vh;
  display:flex;align-items:center;
  padding:130px 52px 90px;
  color:var(--paper);overflow:hidden;
  background:
    radial-gradient(90% 80% at 78% 42%,#24313b 0%,#161b1a 48%,#0c0e0d 100%);
}
.hero-ink{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(46% 58% at 82% 46%,rgba(74,106,133,.38),transparent 70%),
    radial-gradient(38% 46% at 14% 18%,rgba(184,150,90,.14),transparent 72%),
    radial-gradient(30% 40% at 46% 92%,rgba(162,59,50,.07),transparent 70%);
}
.hero-ink::after{
  content:"";position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.012 0.03' numOctaves='3'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23m)' opacity='0.55'/%3E%3C/svg%3E");
  opacity:.07;mix-blend-mode:screen;
}
.hero-inner{
  position:relative;z-index:3;width:100%;max-width:1280px;margin:0 auto;
  display:grid;grid-template-columns:1.02fr .98fr;gap:30px;align-items:center;
}
.hero-copy{padding-left:8px;}
.kicker{
  margin:0;font-size:12px;letter-spacing:.55em;color:var(--gold-2);opacity:.92;
}
.hero-title{
  margin:26px 0 26px;display:flex;flex-direction:column;
  font-size:clamp(92px,11.5vw,158px);line-height:1.03;font-weight:600;
  letter-spacing:.04em;color:#f4efe3;
  text-shadow:0 0 60px rgba(216,189,133,.16),0 2px 0 rgba(0,0,0,.15);
}
.hero-title span{display:block;animation:titleIn 1.6s var(--ease) both;}
.hero-title span:nth-child(2){animation-delay:.14s;}
@keyframes titleIn{from{opacity:0;transform:translateY(40px);filter:blur(8px);}to{opacity:1;transform:none;filter:none;}}
.hero-meta{display:flex;align-items:center;gap:20px;}
.seal{
  width:44px;height:44px;display:grid;place-items:center;
  background:var(--seal);color:#f4efe3;font-size:23px;border-radius:3px;
  transform:rotate(-4deg);box-shadow:0 6px 20px -8px rgba(162,59,50,.8);
}
.hero-meta .sub{
  margin:0;font-family:var(--kai);font-size:19px;letter-spacing:.32em;
  color:rgba(244,239,227,.86);
}
.hero-desc{
  margin:28px 0 0;font-size:14.5px;line-height:2.1;letter-spacing:.14em;
  color:rgba(244,239,227,.58);
}
.hero-actions{display:flex;gap:16px;margin-top:42px;}
.btn{
  position:relative;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:center;
  padding:15px 36px;font-size:13.5px;letter-spacing:.3em;
  border:1px solid transparent;transition:color .4s,border-color .4s,background .4s,transform .4s var(--ease);
}
.btn::before{
  content:"";position:absolute;inset:0;transform:translateX(-101%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);
  transition:transform .7s var(--ease);
}
.btn:hover::before{transform:translateX(101%);}
.btn-solid{background:#f4efe3;color:var(--ink);border-color:#f4efe3;}
.btn-solid:hover{background:var(--gold-2);border-color:var(--gold-2);}
.btn-ghost{color:rgba(244,239,227,.86);border-color:rgba(244,239,227,.3);}
.btn-ghost:hover{border-color:var(--gold-2);color:var(--gold-2);}
.hero-figure{position:relative;display:flex;justify-content:center;align-items:flex-end;}
.figure-aura{
  position:absolute;width:min(520px,86%);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(216,189,133,.16),rgba(74,106,133,.12) 45%,transparent 70%);
  filter:blur(24px);z-index:-1;
}
.hero-figure img{
  width:min(560px,100%);height:auto;
  -webkit-mask-image:linear-gradient(to bottom,#000 70%,transparent 99%);
  mask-image:linear-gradient(to bottom,#000 70%,transparent 99%);
  filter:saturate(1.02) contrast(1.03);
}
.hero-scroll{
  position:absolute;bottom:34px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:14px;
  font-size:10.5px;letter-spacing:.55em;color:rgba(244,239,227,.34);
}
.hero-scroll i{
  width:1px;height:56px;
  background:linear-gradient(to bottom,rgba(244,239,227,.42),transparent);
  animation:scrollLine 2.6s ease-in-out infinite;
}
@keyframes scrollLine{0%,100%{transform:scaleY(.5);opacity:.3;}50%{transform:scaleY(1);opacity:.8;}}

/* ---------- 通用区块 ---------- */
.section{position:relative;padding:124px 52px;background:var(--paper);}
.section-inner{position:relative;max-width:var(--maxw);margin:0 auto;padding-left:86px;}
.v-label{
  position:absolute;top:132px;left:max(22px,calc(50% - 640px));
  writing-mode:vertical-rl;font-size:13px;letter-spacing:.7em;
  color:var(--dai);opacity:.38;user-select:none;
}
.eyebrow{margin:0 0 16px;font-size:11px;letter-spacing:.5em;color:var(--gold);}
.section-title{
  position:relative;margin:0;padding-left:22px;
  font-size:clamp(34px,3.4vw,50px);font-weight:600;letter-spacing:.16em;color:var(--ink);
}
.section-title::before{
  content:"";position:absolute;left:0;top:12px;bottom:8px;width:2px;
  background:linear-gradient(to bottom,var(--gold),transparent);
}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:58px;}
.quote{
  margin:0 0 34px;font-family:var(--kai);
  font-size:clamp(23px,2.5vw,35px);line-height:1.7;letter-spacing:.14em;color:var(--dai);
}
.body{width:100%;max-width:100%;overflow-x:hidden;
  margin:0 0 20px;max-width:720px;
  font-size:15.5px;line-height:2.25;letter-spacing:.07em;color:var(--text-2);
}

/* ---------- 序 ---------- */
.preface{background:var(--paper);}
.preface::before{
  content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(43,65,87,.18),transparent);
}
.stats{
  display:flex;gap:70px;margin-top:56px;padding-top:36px;
  border-top:1px solid rgba(43,65,87,.14);
}
.stat b{display:block;font-size:30px;font-weight:600;letter-spacing:.08em;color:var(--dai);}
.stat span{display:block;margin-top:6px;font-size:11.5px;letter-spacing:.24em;color:var(--text-2);}

/* ---------- 藏品 ---------- */
.collection{background:linear-gradient(to bottom,var(--paper) 0%,var(--paper-2) 34%,var(--paper) 100%);}
.filters{display:flex;gap:8px;}
.filter{
  padding:9px 22px;background:transparent;cursor:pointer;
  border:1px solid rgba(43,65,87,.2);
  font-size:13px;letter-spacing:.22em;color:var(--text-2);
  transition:all .35s var(--ease);
}
.filter:hover{border-color:rgba(43,65,87,.45);color:var(--dai);}
.filter.is-active{background:var(--dai);border-color:var(--dai);color:var(--paper);}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:34px;}
.card{
  position:relative;background:rgba(255,255,255,.5);
  border:1px solid rgba(43,65,87,.10);
  transition:transform .55s var(--ease),box-shadow .55s var(--ease),border-color .55s;
  will-change:transform;
}
.card.is-hidden{display:none;}
.card:hover{
  transform:translateY(-7px);
  border-color:rgba(184,150,90,.5);
  box-shadow:0 30px 60px -34px rgba(17,20,19,.45);
}
.card-visual{
  position:relative;aspect-ratio:4/5;overflow:hidden;
  background-size:cover;background-position:center;background-repeat:no-repeat;
}
.card-visual::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(17,20,19,.28),transparent 52%,rgba(74,106,133,.10));
  transition:opacity .5s;
}
.card:hover .card-visual::after{opacity:.82;}
.v1{background-image:url("../img/card-1.jpg");}
.v2{background-image:url("../img/card-2.jpg");}
.v3{background-image:url("../img/card-3.jpg");}
.v4{background-image:url("../img/card-4.jpg");}
.v5{background-image:url("../img/card-5.jpg");}
.v6{background-image:url("../img/card-6.jpg");}
.card-no{
  position:absolute;z-index:2;top:14px;left:14px;
  padding:4px 9px;font-size:10.5px;letter-spacing:.28em;
  color:rgba(246,242,233,.9);background:rgba(17,20,19,.42);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
}
.card-body{width:100%;max-width:100%;overflow-x:hidden;padding:22px 22px 20px;}
.card-top{display:flex;align-items:center;justify-content:space-between;}
.tag{font-size:11px;letter-spacing:.2em;padding:3px 10px;border:1px solid;}
.tag-official{color:var(--gold);border-color:rgba(184,150,90,.55);background:rgba(184,150,90,.07);}
.tag-doujin{color:var(--dai-2);border-color:rgba(74,106,133,.45);background:rgba(74,106,133,.06);}
.status{font-size:11px;letter-spacing:.2em;color:var(--text-2);}
.status.is-sold{color:var(--seal);}
.card h3{margin:16px 0 8px;font-size:20px;font-weight:600;letter-spacing:.1em;color:var(--ink);}
.card-desc{margin:0;font-size:12.5px;line-height:1.95;letter-spacing:.05em;color:var(--text-2);min-height:48px;}
.card-foot{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:18px;padding-top:15px;border-top:1px dashed rgba(43,65,87,.2);
}
.price{font-family:var(--kai);font-size:16px;letter-spacing:.14em;color:var(--dai);}
.price.is-sold{color:var(--seal);opacity:.85;}
.more{font-size:11.5px;letter-spacing:.2em;color:var(--text-2);transition:transform .4s var(--ease),color .4s;}
.card:hover .more{transform:translateX(4px);color:var(--gold);}
.grid-note{
  margin:54px 0 0;text-align:center;
  font-size:12px;letter-spacing:.3em;color:var(--text-2);opacity:.8;
}

/* ---------- 角色 ---------- */
.character{background:var(--paper-2);}
.character-inner{display:grid;grid-template-columns:.92fr 1.08fr;gap:80px;align-items:center;}
.portrait{margin:0;}
.portrait-frame{
  position:relative;padding:14px;background:rgba(255,255,255,.45);
  border:1px solid rgba(43,65,87,.18);
}
.portrait-frame img{width:100%;filter:saturate(.95) contrast(1.02);}
.corner{position:absolute;width:16px;height:16px;border-color:var(--gold);border-style:solid;}
.corner.tl{top:-1px;left:-1px;border-width:1px 0 0 1px;}
.corner.tr{top:-1px;right:-1px;border-width:1px 1px 0 0;}
.corner.bl{bottom:-1px;left:-1px;border-width:0 0 1px 1px;}
.corner.br{bottom:-1px;right:-1px;border-width:0 1px 1px 0;}
.portrait figcaption{
  margin-top:16px;text-align:center;
  font-family:var(--kai);font-size:13px;letter-spacing:.32em;color:var(--text-2);
}
.facts{
  display:grid;grid-template-columns:1fr 1fr;gap:20px 34px;
  margin:34px 0 30px;padding:26px 0;
  border-top:1px solid rgba(43,65,87,.14);border-bottom:1px solid rgba(43,65,87,.14);
}
.facts div{margin:0;}
.facts dt{font-size:10.5px;letter-spacing:.3em;color:var(--gold);margin-bottom:7px;}
.facts dd{margin:0;font-size:16.5px;letter-spacing:.08em;color:var(--ink);}
.palette{display:flex;gap:12px;margin-top:34px;}
.chip{
  width:74px;height:74px;display:grid;place-items:end center;padding-bottom:8px;
  background:var(--c);border:1px solid rgba(0,0,0,.07);
  font-size:10.5px;letter-spacing:.2em;color:var(--ink);
  transition:transform .4s var(--ease);
}
.chip:hover{transform:translateY(-4px);}
.chip:nth-child(2),.chip:nth-child(3){color:#f6f2e9;}
.chip:nth-child(5){color:#f6f2e9;}

/* ---------- 联络 ---------- */
.contact{background:var(--paper);}
.contact-note{
  margin:0;max-width:none;text-align:right;white-space:nowrap;
  font-family:var(--kai);font-size:14px;line-height:1.9;letter-spacing:.1em;color:var(--text-2);
}
.contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.contact-card{
  padding:38px 28px;text-align:center;
  background:rgba(255,255,255,.42);
  border:1px solid rgba(43,65,87,.14);
  transition:border-color .4s,transform .5s var(--ease),box-shadow .5s;
}
.contact-card:hover{
  border-color:rgba(184,150,90,.5);transform:translateY(-5px);
  box-shadow:0 24px 48px -30px rgba(17,20,19,.35);
}
.contact-label{font-size:11px;letter-spacing:.42em;color:var(--gold);}
.contact-value{margin:16px 0 10px;font-family:var(--kai);font-size:23px;letter-spacing:.2em;color:var(--ink);}
.contact-hint{margin:0;font-size:11.5px;letter-spacing:.1em;color:var(--text-2);}

/* ---------- 页脚 ---------- */
.footer{
  padding:74px 52px 66px;text-align:center;
  background:var(--ink);color:rgba(244,239,227,.66);
}
.footer-seal{
  width:46px;height:46px;margin:0 auto 20px;display:grid;place-items:center;
  background:var(--seal);color:#f4efe3;font-size:23px;border-radius:3px;transform:rotate(-3deg);
}
.footer p{margin:0;font-size:14px;letter-spacing:.24em;}
.footer-line{margin-top:12px !important;font-family:var(--kai);font-size:13px;opacity:.7;}
.footer-fine{margin-top:26px !important;font-size:10.5px;letter-spacing:.16em;opacity:.4;}

/* ---------- 入场动效 ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.reveal.is-in{opacity:1;transform:none;}
.reveal[data-delay="1"]{transition-delay:.12s;}
.reveal[data-delay="2"]{transition-delay:.24s;}
.reveal[data-delay="3"]{transition-delay:.36s;}
.reveal[data-delay="4"]{transition-delay:.48s;}

/* ---------- 响应式 ---------- */
@media (max-width:1080px), (max-device-width:1080px){
  .nav{padding:20px 28px;}
  .nav.solid{padding:14px 28px;}
  .links{gap:28px;}
  .hero{padding:120px 28px 80px;}
  .hero-inner{grid-template-columns:1fr;gap:10px;}
  .hero-figure{order:-1;}
  .hero-figure img{width:min(380px,72%);}
  .hero-title{font-size:clamp(76px,14vw,120px);}
  .section{padding:96px 28px;}
  .section-inner{padding-left:56px;}
  .v-label{display:none;}
  .character-inner{grid-template-columns:1fr;gap:48px;}
  .contact-grid{grid-template-columns:1fr;}
  .contact-note{text-align:left;max-width:none;white-space:normal;}
  .stats{gap:40px;flex-wrap:wrap;}
}
@media (max-width:640px), (max-device-width:640px){
  .nav-note{display:none;}
  .links{gap:20px;}
  .links a{font-size:12.5px;letter-spacing:.2em;}
  .brand-name{font-size:15px;}
  .hero{padding:104px 20px 70px;}
  .hero-desc br{display:none;}
  .hero-actions{flex-wrap:wrap;}
  .btn{padding:13px 26px;}
  .section{padding:76px 20px;}
  .section-inner{padding-left:0;}
  .section-head{flex-direction:column;align-items:flex-start;gap:22px;}
  .grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:20px;}
  .facts{grid-template-columns:1fr;}
  .stats{gap:28px;}
  .footer{padding:56px 24px;}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;}
  .reveal{opacity:1;transform:none;}
  html{scroll-behavior:auto;}
}

/* ---------- 逐字入场与滚动细节 ---------- */
.quote .char{
  display:inline-block;opacity:0;transform:translateY(.45em) rotate(1.5deg);
  transition:opacity .7s var(--ease),transform .7s var(--ease);
}
.quote.is-in .char{opacity:1;transform:none;}
section[id]{scroll-margin-top:78px;}
.hero-figure{transition:transform .12s linear,opacity .12s linear;}
.portrait-frame img{transition:transform .15s linear;will-change:transform;}

/* ---------- 首屏入场（基础可见，动画仅增强） ---------- */
@keyframes fadeUp{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}
.anim{animation:fadeUp 1.1s var(--ease) both;}
.anim[data-delay="1"]{animation-delay:.12s;}
.anim[data-delay="2"]{animation-delay:.26s;}
.anim[data-delay="3"]{animation-delay:.4s;}
.anim[data-delay="4"]{animation-delay:.54s;}

/* ---------- 立绘融入背景 ---------- */
.hero-ink::after{display:none !important;}
.hero-figure img{
  filter:contrast(1.04) saturate(1.05) brightness(1.05);
}

/* 整页截图模式 */
html.flat .hero{min-height:auto;padding:110px 52px 70px;}
html.flat .hero-figure img{width:min(460px,100%);}
html.flat .hero-scroll{display:none;}
/* ---------- 真实商品卡 ---------- */
.card-link{
  display:block;width:100%;padding:0;border:0;background:none;
  text-align:left;color:inherit;font-family:inherit;cursor:pointer;
}
.card-visual{background:#e7dfcf;aspect-ratio:3/4;}
.card-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s var(--ease);}
.card:hover .card-img{transform:scale(1.04);}
.card-visual::after{opacity:.55;}
.card:hover .card-visual::after{opacity:.4;}

/* ---------- 加载更多 ---------- */
.grid-more{text-align:center;margin-top:46px;}
.load-more{
  padding:14px 42px;background:transparent;cursor:pointer;
  border:1px solid rgba(43,65,87,.32);
  font-family:var(--serif);font-size:13px;letter-spacing:.32em;color:var(--dai);
  transition:all .4s var(--ease);
}
.load-more:hover{background:var(--dai);border-color:var(--dai);color:var(--paper);}
.load-more[hidden]{display:none;}

/* ---------- Q 版贴纸彩蛋 ---------- */
.stickers{position:absolute;inset:0;pointer-events:none;z-index:2;}
.sticker{
  position:absolute;width:136px;pointer-events:auto;cursor:pointer;
  filter:drop-shadow(0 14px 22px rgba(17,20,19,.28));
  transition:transform .5s var(--ease);
}
.sticker.s1{right:7%;top:12%;transform:rotate(-9deg);}
.sticker.s2{right:15%;bottom:10%;width:104px;transform:rotate(8deg);}
.sticker:hover{transform:rotate(0deg) scale(1.08);}
.sticker.s2:hover{transform:rotate(0deg) scale(1.1);}

/* ---------- 细览弹层 ---------- */
.modal{position:fixed;inset:0;z-index:300;display:none;}
.modal.is-open{display:flex;align-items:center;justify-content:center;padding:28px;}
.modal-backdrop{position:absolute;inset:0;background:rgba(10,12,11,.74);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);}
.modal-panel{
  position:relative;z-index:1;display:grid;grid-template-columns:1fr 340px;
  width:100%;max-width:1040px;max-height:88vh;overflow:auto;
  background:var(--paper);border:1px solid rgba(184,150,90,.42);
  box-shadow:0 40px 90px -40px rgba(0,0,0,.7);
}
.modal-gallery{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--paper-2);}
.modal-gallery img{width:100%;height:100%;object-fit:cover;display:block;min-height:220px;}
.modal-info{padding:42px 34px;display:flex;flex-direction:column;}
.modal-info h3{margin:16px 0 10px;font-size:24px;font-weight:600;letter-spacing:.1em;color:var(--ink);}
.modal-desc{margin:0;font-size:13px;line-height:2;letter-spacing:.08em;color:var(--text-2);}
.modal-price{margin:24px 0 8px;font-family:var(--kai);font-size:20px;letter-spacing:.16em;color:var(--dai);}
.modal-hint{margin:0;font-size:11.5px;line-height:1.9;letter-spacing:.1em;color:var(--text-2);opacity:.8;}
.modal-close{
  position:absolute;top:10px;right:12px;z-index:2;
  width:36px;height:36px;border:0;background:transparent;cursor:pointer;
  font-size:16px;color:var(--text-2);transition:color .3s,transform .3s;
}
.modal-close:hover{color:var(--seal);transform:rotate(90deg);}

@media (max-width:900px){
  .sticker.s1{right:3%;top:6%;width:104px;}
  .sticker.s2{right:8%;bottom:4%;width:82px;}
  .modal-panel{grid-template-columns:1fr;}
  .modal-gallery img{min-height:0;aspect-ratio:3/4;}
  .modal-info{padding:28px 24px;}
}
@media (max-width:640px), (max-device-width:640px){
  .stickers{display:none;}
}

.grid-empty{
  grid-column:1/-1;text-align:center;padding:70px 0;
  font-family:var(--kai);font-size:15px;letter-spacing:.24em;color:var(--text-2);
}

.modal-info .tag{align-self:flex-start;}

/* 透明立绘：去掉白框，只留四角 */
.portrait-frame{background:transparent;border:0;padding:0;}
.portrait-frame img{
  filter:drop-shadow(0 18px 30px rgba(17,20,19,.18));
  transform-origin:center;
}

/* 弹层视频 */
.modal-gallery video{
  grid-column:1/-1;width:100%;max-height:320px;object-fit:contain;
  background:#0d0f0e;display:block;
}
.modal-gallery video:not([src]){display:none;}

.card-video{
  position:absolute;right:12px;bottom:12px;z-index:2;
  padding:4px 9px;font-size:10.5px;letter-spacing:.18em;
  color:rgba(246,242,233,.92);background:rgba(17,20,19,.5);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
}

/* ---------- 水墨梨花枝 ---------- */
.pear{position:absolute;pointer-events:none;user-select:none;z-index:1;height:auto;}
.pear-hero-a{left:-160px;bottom:-190px;width:min(500px,48vw);opacity:.55;transform:rotate(-3deg);}
.pear-hero-b{right:-130px;top:-130px;width:min(320px,30vw);opacity:.3;transform:rotate(186deg) scaleX(-1);}
.pear-preface{display:none;}
.pear-char{right:1%;top:6%;width:min(340px,30vw);opacity:.3;transform:rotate(-5deg);}
.pear-coll{display:none;}
.section-inner{position:relative;z-index:2;}
@media (max-width:1080px), (max-device-width:1080px){
  .pear-hero-a{width:70vw;opacity:.4;}
  .pear-hero-b{width:46vw;opacity:.26;}
  .pear-preface,.pear-coll{display:none;}
  .pear-char{width:38vw;opacity:.22;}
}
@media (max-width:640px), (max-device-width:640px){
  .pear-char{display:none;}
}

/* 花嫁水墨像：淡淡墨晕托底 */
.portrait-frame::before{
  content:"";position:absolute;inset:-4% -9%;z-index:-1;
  background:radial-gradient(ellipse at 50% 46%, rgba(43,65,87,.10), rgba(43,65,87,.04) 45%, transparent 70%);
  filter:blur(10px);
}
.portrait-frame img{filter:drop-shadow(0 16px 26px rgba(17,20,19,.14));}


.modal-gallery img{max-height:340px;object-fit:cover;}
.modal-gallery img.wide{grid-column:1/-1;max-height:300px;object-fit:cover;}


/* ---------- 全屏图片查看器 ---------- */
.modal-gallery img{cursor:zoom-in;}
.lightbox{position:fixed;inset:0;z-index:500;display:none;align-items:center;justify-content:center;
  background:rgba(8,10,9,.94);}
.lightbox.is-open{display:flex;}
.lightbox img{max-width:92vw;max-height:86vh;object-fit:contain;user-select:none;
  box-shadow:0 30px 80px -30px rgba(0,0,0,.8);}
.lb-btn{position:absolute;z-index:2;width:46px;height:46px;border:1px solid rgba(246,242,233,.35);
  background:rgba(20,24,22,.5);color:#f6f2e9;font-size:22px;line-height:1;cursor:pointer;
  display:grid;place-items:center;transition:background .3s,border-color .3s;}
.lb-btn:hover{background:rgba(246,242,233,.16);border-color:rgba(246,242,233,.7);}
.lb-close{top:22px;right:22px;}
.lb-prev{left:22px;top:50%;transform:translateY(-50%);}
.lb-next{right:22px;top:50%;transform:translateY(-50%);}
.lb-count{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);
  color:rgba(246,242,233,.75);font-size:12px;letter-spacing:.2em;}
@media (max-width:640px), (max-device-width:640px){
  .lb-prev{left:8px;width:38px;height:38px;}
  .lb-next{right:8px;width:38px;height:38px;}
  .lb-close{top:10px;right:10px;}
}
