/* ============================================
   十二风物套卡礼盒 · 详情页样式
   风格：水墨山川 · 简约高级 · 古色古韵
   ============================================ */

*{margin:0;padding:0;box-sizing:border-box;}

:root{
  --gold:#C8A96E;
  --gold-d:#A8823E;
  --gold-soft:rgba(200,169,110,0.55);
  --paper:#F4EFE2;
  --paper2:#EDE7D4;
  --paper3:#E6DFCA;
  --paper4:#DED7BE;
  --paper5:#D5CEB3;
  --box:#1A2E28;
  --box-d:#0C1810;
  --ink:#1C1A14;
  --ink-light:rgba(255,255,255,0.45);
  --ink-muted:rgba(255,255,255,0.28);
}

html,body{
  width:100%;min-height:100vh;
  background:radial-gradient(ellipse at 50% 0%,#1a2820 0%,#0a1210 50%,#050a07 100%);
  font-family:'Noto Sans SC',sans-serif;
  color:var(--paper);
  overflow-x:hidden;
}

/* ── PAGE LAYOUT ── */
.page{
  display:flex;flex-direction:column;align-items:center;
  padding:48px 20px 100px;
  max-width:1100px;
  margin:0 auto;
}

/* ── BACK LINK ── */
.back-link{
  position:fixed;top:24px;left:28px;z-index:200;
  font-family:'Noto Serif SC',serif;
  font-size:12px;letter-spacing:2px;
  color:rgba(200,169,110,0.4);
  text-decoration:none;
  transition:color 0.3s;
  display:flex;align-items:center;gap:6px;
}
.back-link:hover{color:var(--gold);}
.back-link svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.5;}

/* ── HEADER ── */
.hd{text-align:center;margin-bottom:36px;position:relative;}
.hd::after{
  content:'';display:block;
  width:80px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(200,169,110,0.3),transparent);
  margin:18px auto 0;
}
.hd-main{
  font-family:'Noto Serif SC',serif;
  font-size:32px;font-weight:300;
  color:var(--gold);letter-spacing:12px;
  text-shadow:0 0 80px rgba(200,169,110,0.15);
}
.hd-sub{
  font-size:11px;color:rgba(200,169,110,0.3);
  letter-spacing:5px;margin-top:10px;
}

/* ── CONTROLS ── */
.ctrls{
  display:flex;gap:12px;margin-bottom:36px;
  flex-wrap:wrap;justify-content:center;
  position:relative;z-index:100;
}
.cb{
  padding:10px 28px;
  font-family:'Noto Serif SC',serif;
  font-size:11px;letter-spacing:4px;
  border:1px solid rgba(200,169,110,0.2);
  background:rgba(10,20,14,0.6);
  color:rgba(200,169,110,0.45);
  cursor:pointer;transition:all .3s ease;
  border-radius:2px;
  backdrop-filter:blur(8px);
}
.cb:hover{
  border-color:rgba(200,169,110,0.5);
  color:var(--gold);
  background:rgba(200,169,110,0.04);
}
.cb.on{
  background:rgba(200,169,110,0.12);
  color:var(--gold);
  border-color:var(--gold);
}

/* ── SCENE WRAPPER ── */
.scene-outer{
  perspective:1100px;
  perspective-origin:50% 18%;
  width:100%;max-width:860px;
  position:relative;
}

/* ── BOX ASSEMBLY ── */
.box-asm{
  width:720px;
  margin:0 auto;
  transform-style:preserve-3d;
  transform:rotateX(24deg) rotateY(-10deg);
  position:relative;
}

/* ── BOX INTERIOR ── */
.box-int{
  width:720px;height:400px;
  background:
    radial-gradient(ellipse at 50% 0%,rgba(44,80,60,0.35) 0%,transparent 70%),
    linear-gradient(165deg,#1a2e28 0%,#0c1a12 100%);
  border:1px solid rgba(200,169,110,0.15);
  position:relative;
  transform-style:preserve-3d;
  overflow:visible;
}

/* ── BOX EXTERIOR WALLS ── */
.box-wr{
  position:absolute;top:0;left:720px;
  width:70px;height:400px;
  transform-origin:left center;
  transform:rotateY(90deg);
  background:linear-gradient(90deg,#182820,#0c1810);
  border-right:1px solid rgba(200,169,110,0.08);
  border-top:1px solid rgba(200,169,110,0.08);
}
.box-wb{
  position:absolute;top:400px;left:0;
  width:720px;height:70px;
  transform-origin:top center;
  transform:rotateX(-90deg);
  background:linear-gradient(180deg,#182820,#0c1810);
  border-bottom:1px solid rgba(200,169,110,0.08);
}
.box-wbr{
  position:absolute;top:400px;left:720px;
  width:70px;height:70px;
  transform-origin:top left;
  transform:rotateX(-90deg) rotateY(90deg);
  background:#0c1810;
}

/* ── LID ── */
.lid{
  position:absolute;
  top:0;left:-4px;
  width:728px;
  transform-style:preserve-3d;
  transform-origin:top center;
  transform:rotateX(0deg);
  transition:transform 1.4s cubic-bezier(.42,0,.18,1);
  z-index:30;
}
.lid.open{transform:rotateX(-168deg);}

.lid-face{
  width:728px;height:408px;
  background:linear-gradient(160deg,#243d35 0%,#1a2e28 55%,#0e1e16 100%);
  border:1px solid rgba(200,169,110,0.22);
  position:relative;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:12px;
  overflow:hidden;
}
.lid-face::before{content:'';position:absolute;inset:14px;border:0.5px solid rgba(200,169,110,0.08);}
.lid-face::after{content:'';position:absolute;inset:22px;border:0.5px solid rgba(200,169,110,0.04);}
.lid-mtn-bg{position:absolute;bottom:0;left:0;right:0;opacity:0.06;pointer-events:none;}

.lid-corner{position:absolute;width:22px;height:22px;}
.lid-corner.tl{top:10px;left:10px;border-top:1px solid rgba(200,169,110,0.45);border-left:1px solid rgba(200,169,110,0.45);}
.lid-corner.tr{top:10px;right:10px;border-top:1px solid rgba(200,169,110,0.45);border-right:1px solid rgba(200,169,110,0.45);}
.lid-corner.bl{bottom:10px;left:10px;border-bottom:1px solid rgba(200,169,110,0.45);border-left:1px solid rgba(200,169,110,0.45);}
.lid-corner.br{bottom:10px;right:10px;border-bottom:1px solid rgba(200,169,110,0.45);border-right:1px solid rgba(200,169,110,0.45);}

.lid-title{
  font-family:'Noto Serif SC',serif;
  font-size:38px;font-weight:300;
  color:var(--gold);letter-spacing:16px;
  position:relative;z-index:1;
  text-shadow:0 0 50px rgba(200,169,110,0.2);
}
.lid-rule{
  width:120px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(200,169,110,0.5),transparent);
  position:relative;z-index:1;
}
.lid-sub{font-size:10px;color:rgba(200,169,110,0.32);letter-spacing:5px;position:relative;z-index:1;}
.lid-seal{
  width:52px;height:52px;border-radius:50%;
  border:1px solid rgba(200,169,110,0.35);
  display:flex;align-items:center;justify-content:center;
  position:relative;z-index:1;
}
.lid-seal span{font-family:'Noto Serif SC',serif;font-size:18px;color:var(--gold);}

.lid-inner{
  position:absolute;inset:0;
  transform:rotateX(180deg) translateZ(3px);
  background:linear-gradient(165deg,#1a2e28,#0e1e16);
  border:1px solid rgba(200,169,110,0.1);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.lid-inner-mtn{position:absolute;bottom:0;left:0;right:0;opacity:0.08;}
.lid-inner-txt{
  font-family:'Noto Serif SC',serif;
  font-size:14px;color:rgba(200,169,110,0.32);
  letter-spacing:5px;text-align:center;line-height:2.6;
  position:relative;z-index:1;
}

.lid-edge{
  position:absolute;bottom:-14px;left:0;width:728px;height:14px;
  transform-origin:top center;transform:rotateX(-90deg);
  background:linear-gradient(180deg,#1e3530,#0e1e16);
  border-bottom:0.5px solid rgba(200,169,110,0.15);
}

/* ── PAPER DIORAMA LAYERS ── */
.diorama{
  position:absolute;
  bottom:0;left:0;width:100%;height:100%;
  transform-style:preserve-3d;
}

.pl{
  position:absolute;
  bottom:0;
  transform-origin:bottom center;
  transform:translateZ(var(--z)) scaleY(0.02);
  opacity:0;
  transition:
    transform 0.8s cubic-bezier(.34,1.4,.64,1),
    opacity 0.5s ease;
  filter:drop-shadow(0 -8px 20px rgba(0,0,0,0.6));
}
.pl.up{
  transform:translateZ(var(--z)) scaleY(1);
  opacity:1;
}
.pl:nth-child(1){transition-delay:.04s;}
.pl:nth-child(2){transition-delay:.14s;}
.pl:nth-child(3){transition-delay:.24s;}
.pl:nth-child(4){transition-delay:.34s;}
.pl:nth-child(5){transition-delay:.44s;}

/* ── GIFT CARDS ── */
.gc{
  position:absolute;
  bottom:0;
  width:36px;height:116px;
  border-radius:3px;
  transform-origin:bottom center;
  transform:translateZ(var(--cz)) scaleY(0.02);
  opacity:0;
  transition:
    transform .6s cubic-bezier(.34,1.4,.64,1),
    opacity .4s ease;
  cursor:pointer;
  filter:drop-shadow(2px 4px 14px rgba(0,0,0,0.75));
  border:0.5px solid rgba(200,169,110,0.25);
  overflow:hidden;
}
.gc.up{transform:translateZ(var(--cz)) scaleY(1);opacity:1;}
.gc:hover.up{
  transform:translateZ(var(--cz)) scaleY(1) translateY(-22px) scale(1.1) !important;
  z-index:50;
  filter:drop-shadow(2px 12px 28px rgba(0,0,0,0.9)) brightness(1.1);
}
.gc-face{
  width:100%;height:100%;
  display:flex;flex-direction:column;
  align-items:center;justify-content:space-between;
  padding:7px 4px 6px;
  position:relative;overflow:hidden;
}
.gc-face::before{
  content:'';position:absolute;inset:0;
  background:repeating-linear-gradient(
    110deg,transparent,transparent 4px,
    rgba(255,255,255,0.02) 4px,rgba(255,255,255,0.02) 5px
  );
  pointer-events:none;z-index:2;
}
.gc-face::after{
  content:'';position:absolute;
  top:-30%;left:-20%;width:60%;height:60%;
  background:radial-gradient(ellipse,rgba(255,255,255,0.06) 0%,transparent 70%);
  pointer-events:none;z-index:2;
  animation:cg 6s ease-in-out infinite;
}
@keyframes cg{
  0%,100%{transform:translate(0,0);opacity:.4;}
  50%{transform:translate(90%,70%);opacity:.8;}
}
.gc-logo{font-family:'Noto Serif SC',serif;font-size:6px;color:rgba(200,169,110,0.8);letter-spacing:1px;z-index:3;position:relative;text-align:center;}
.gc-art{z-index:3;position:relative;flex:1;display:flex;align-items:center;justify-content:center;}
.gc-bot{z-index:3;position:relative;text-align:center;}
.gc-mn{font-family:'Noto Serif SC',serif;font-size:6px;color:rgba(200,169,110,0.75);letter-spacing:1px;display:block;}
.gc-fr{font-size:5px;color:var(--ink-muted);display:block;margin-top:1px;}

/* ── GROUND STRIP ── */
.box-ground{
  position:absolute;bottom:0;left:0;right:0;
  height:18px;
  background:linear-gradient(0deg,rgba(6,14,10,0.95),rgba(12,24,18,0.65));
  z-index:1;
  display:flex;align-items:center;justify-content:center;
}
.box-ground span{font-size:7px;color:rgba(200,169,110,0.18);letter-spacing:5px;font-family:'Noto Serif SC',serif;}

/* ── ATMOSPHERE ── */
.box-atm{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(ellipse at 50% 100%,rgba(30,60,40,0.25) 0%,transparent 60%),
    radial-gradient(ellipse at 50% 0%,rgba(200,169,110,0.02) 0%,transparent 50%);
}

/* ── HINT TEXT ── */
.hint{
  text-align:center;font-size:11px;
  color:rgba(200,169,110,0.2);letter-spacing:4px;
  margin-top:18px;transition:opacity .5s;
  font-family:'Noto Serif SC',serif;
}

/* ── LAYER 2 SECTION ── */
.l2wrap{
  width:100%;max-width:760px;
  margin-top:56px;
  opacity:0;transform:translateY(28px);
  transition:opacity .8s ease,transform .8s ease;
  pointer-events:none;
}
.l2wrap.show{opacity:1;transform:translateY(0);pointer-events:all;}
.l2-head{
  display:flex;align-items:center;gap:16px;margin-bottom:24px;
}
.l2-hl{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(200,169,110,0.25));}
.l2-hr{flex:1;height:1px;background:linear-gradient(90deg,rgba(200,169,110,0.25),transparent);}
.l2-ht{
  font-family:'Noto Serif SC',serif;
  font-size:12px;color:rgba(200,169,110,0.4);
  letter-spacing:5px;white-space:nowrap;
}
.l2-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;}
.l2-item{
  border:0.5px solid rgba(200,169,110,0.12);
  background:rgba(255,255,255,0.02);
  overflow:hidden;cursor:pointer;
  transition:all .35s ease;border-radius:3px;
}
.l2-item:hover{
  background:rgba(200,169,110,0.04);
  border-color:rgba(200,169,110,0.3);
  transform:translateY(-4px);
}
.l2-vis{height:130px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}
.l2-info{padding:14px 16px;border-top:0.5px solid rgba(200,169,110,0.08);}
.l2-name{font-family:'Noto Serif SC',serif;font-size:13px;color:var(--gold);letter-spacing:3px;margin-bottom:5px;}
.l2-desc{font-size:10px;color:rgba(255,255,255,0.25);line-height:1.9;letter-spacing:.5px;}
.l2-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
.l2-tag{
  padding:4px 12px;
  border:0.5px solid rgba(200,169,110,0.12);
  font-size:9px;color:rgba(200,169,110,0.35);
  letter-spacing:1px;border-radius:2px;
}

/* ── MODAL ── */
.modal-bg{
  position:fixed;inset:0;
  background:rgba(0,0,0,0.9);
  backdrop-filter:blur(12px);
  display:flex;align-items:center;justify-content:center;
  z-index:1000;
  opacity:0;pointer-events:none;transition:opacity .35s;
}
.modal-bg.open{opacity:1;pointer-events:all;}
.modal-box{
  width:720px;max-width:94vw;
  background:linear-gradient(165deg,#1a2e28 0%,#0e1810 100%);
  border:0.5px solid rgba(200,169,110,0.2);
  padding:0;position:relative;
  transform:scale(0.96) translateY(10px);
  transition:transform .35s;
  max-height:90vh;overflow-y:auto;
  border-radius:3px;
}
.modal-bg.open .modal-box{transform:scale(1) translateY(0);}
.modal-x{
  position:absolute;top:16px;right:20px;
  font-size:16px;color:rgba(200,169,110,0.3);
  background:none;border:none;cursor:pointer;
  transition:color .25s;z-index:10;
}
.modal-x:hover{color:var(--gold);}

/* Modal Header */
.modal-header{
  padding:28px 32px 20px;
  border-bottom:0.5px solid rgba(200,169,110,0.1);
}
.m-title{
  font-family:'Noto Serif SC',serif;
  font-size:18px;color:var(--gold);
  letter-spacing:3px;margin-bottom:12px;
}
.mnav{display:flex;flex-wrap:wrap;gap:4px;}
.mnb{
  width:38px;height:26px;
  border:0.5px solid rgba(200,169,110,0.15);
  background:transparent;
  font-family:'Noto Serif SC',serif;
  font-size:9px;color:rgba(200,169,110,0.38);
  cursor:pointer;border-radius:2px;transition:all .2s;
}
.mnb:hover,.mnb.on{
  background:rgba(200,169,110,0.12);
  color:var(--gold);border-color:rgba(200,169,110,0.4);
}

/* Modal Body - Card + Info side by side */
.modal-body{
  display:flex;gap:0;align-items:stretch;
}

/* Card Preview Column */
.modal-cards-col{
  display:flex;gap:20px;
  flex-shrink:0;
  padding:28px;
  background:rgba(0,0,0,0.15);
  border-right:0.5px solid rgba(200,169,110,0.08);
  align-items:center;
}
.mc-wrap{display:flex;flex-direction:column;align-items:center;gap:8px;}
.mc-lbl{font-size:9px;color:rgba(200,169,110,0.3);letter-spacing:3px;}
.mc-front{
  width:108px;height:180px;border-radius:5px;
  display:flex;flex-direction:column;align-items:center;justify-content:space-between;
  padding:12px 9px 10px;position:relative;overflow:hidden;
  border:0.5px solid rgba(200,169,110,0.3);
  box-shadow:0 10px 40px rgba(0,0,0,0.5);
}
.mc-front::before{
  content:'';position:absolute;inset:0;
  background:repeating-linear-gradient(
    115deg,transparent,transparent 3px,
    rgba(255,255,255,0.02) 3px,rgba(255,255,255,0.02) 4px
  );
  animation:holo 8s linear infinite;
}
@keyframes holo{0%{background-position:0 0;}100%{background-position:240px 240px;}}
.mc-glow{
  position:absolute;inset:0;
  background:radial-gradient(ellipse at 30% 20%,rgba(200,169,110,0.08),transparent 60%);
  animation:mcg 7s ease-in-out infinite;
}
@keyframes mcg{0%,100%{opacity:.4;transform:translate(0,0);}50%{opacity:.8;transform:translate(25px,18px);}}
.mc-back{
  width:108px;height:180px;border-radius:5px;
  background:linear-gradient(160deg,#f5f0e8,#ede8de);
  display:flex;flex-direction:column;align-items:center;justify-content:space-between;
  padding:11px 9px;
  border:0.5px solid rgba(200,169,110,0.22);
  box-shadow:0 10px 40px rgba(0,0,0,0.25);
}
.mc-back-top{width:100%;height:2px;background:#2C4A3E;}
.mc-back-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:6px 0;}
.mc-coord{font-size:7px;color:#8A8478;letter-spacing:.8px;text-align:center;}
.mc-tip{font-family:'Noto Serif SC',serif;font-size:8px;color:#2C4A3E;text-align:center;line-height:1.9;}
.mc-qr{width:40px;height:40px;background:#1C1A16;display:flex;align-items:center;justify-content:center;border-radius:1px;}
.mc-code{font-size:6px;color:#8A8478;letter-spacing:.8px;}

/* Info Panel - 重新设计的布局 */
.modal-info{
  flex:1;
  padding:28px 32px;
  display:flex;flex-direction:column;gap:0;
}

/* Info Grid - 将信息分组展示 */
.m-info-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-bottom:20px;
}

.m-info-item{
  padding:16px;
  background:rgba(255,255,255,0.02);
  border:0.5px solid rgba(200,169,110,0.08);
  border-radius:3px;
}
.m-info-item--full{
  grid-column:1 / -1;
}

.m-info-label{
  font-size:9px;
  color:rgba(200,169,110,0.4);
  letter-spacing:2px;
  margin-bottom:8px;
  text-transform:uppercase;
}
.m-info-value{
  font-size:12px;
  color:var(--ink-light);
  line-height:1.8;
  letter-spacing:0.5px;
}
.m-info-value strong{
  color:rgba(200,169,110,0.75);
  font-weight:400;
}

.m-tag{
  display:inline-block;
  background:rgba(44,74,62,0.35);
  border:0.5px solid rgba(200,169,110,0.15);
  color:rgba(200,169,110,0.5);
  font-size:8px;padding:3px 8px;
  letter-spacing:1px;margin-top:6px;
  border-radius:2px;
}

.m-cost{
  padding:14px 16px;
  background:rgba(200,169,110,0.03);
  border:0.5px solid rgba(200,169,110,0.1);
  font-size:10px;color:rgba(200,169,110,0.4);
  line-height:2;
  border-radius:3px;
  display:flex;gap:20px;
  align-items:center;
}
.m-cost strong{color:rgba(200,169,110,0.7);}
.m-cost-item{display:flex;align-items:center;gap:6px;}
.m-cost-dot{width:3px;height:3px;background:rgba(200,169,110,0.3);border-radius:50%;flex-shrink:0;}

/* ── RESPONSIVE ── */
@media(max-width:700px){
  .box-asm{
    transform:rotateX(18deg) rotateY(-6deg) scale(.6);
    transform-origin:top center;
  }
  .modal-body{flex-direction:column;}
  .modal-cards-col{
    border-right:none;
    border-bottom:0.5px solid rgba(200,169,110,0.08);
    justify-content:center;
  }
  .m-info-grid{grid-template-columns:1fr;}
  .l2-grid{grid-template-columns:1fr;}
  .back-link{top:12px;left:14px;}
  .hd-main{font-size:24px;letter-spacing:8px;}
  .m-cost{flex-direction:column;gap:8px;}
}
