:root{
  --ink:#1a1220;
  --paper:#fff7f0;
  --wine:#5a1230;
  --rose:#e0245e;
  --amber:#ffb23e;
  --violet:#3b1e57;
  --mint:#0f5c4e;
  --sky:#123a63;
  --line:rgba(26,18,32,.14);
  --soft:#6c5a66;
  --radius:18px;
  --max:1180px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  background:var(--paper);color:var(--ink);line-height:1.75;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(26,18,32,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(255,255,255,.1);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0}
.brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:17px;white-space:nowrap}
.brand img{height:34px;width:34px;border-radius:9px;object-fit:cover}
.nav-toggle{
  display:none;background:transparent;border:1px solid rgba(255,255,255,.4);
  color:#fff;border-radius:10px;padding:7px 12px;font-size:14px;cursor:pointer;
}
.main-nav ul{display:flex;flex-wrap:wrap;gap:4px;list-style:none}
.main-nav a{
  display:block;color:rgba(255,255,255,.82);font-size:14px;
  padding:6px 10px;border-radius:9px;transition:.2s;
}
.main-nav a:hover{background:rgba(255,255,255,.12);color:#fff}

/* ---------- hero ---------- */
.hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(1000px 460px at 88% -10%,rgba(224,36,94,.55),transparent 60%),
    radial-gradient(760px 420px at 6% 10%,rgba(255,178,62,.34),transparent 62%),
    linear-gradient(155deg,#231029 0%,#3b1e57 46%,#122a44 100%);
  color:#fff;padding:52px 0 0;
}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:34px;align-items:center}
.hero-kicker{
  display:inline-block;font-size:13px;letter-spacing:.14em;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);
  padding:5px 14px;border-radius:999px;margin-bottom:16px;
}
.hero h1{font-size:clamp(26px,4vw,44px);line-height:1.28;letter-spacing:.01em}
.hero h1 em{
  font-style:normal;
  background:linear-gradient(92deg,#ffd166,#ff5c8a 52%,#8f7bff);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero-sub{margin-top:16px;color:rgba(255,255,255,.86);font-size:16px;max-width:46ch}
.hero-points{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 26px;list-style:none}
.hero-points li{
  font-size:13px;padding:6px 13px;border-radius:999px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);
}
.hero-dl{display:flex;flex-wrap:wrap;gap:12px}
.btn-dl{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 22px;border-radius:14px;font-size:15px;font-weight:600;
  background:linear-gradient(120deg,#ffcf4d,#e0245e);color:#fff;
  box-shadow:0 10px 26px rgba(224,36,94,.42);transition:transform .2s;
}
.btn-dl:hover{transform:translateY(-2px)}
.btn-ghost{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 22px;border-radius:14px;font-size:15px;
  border:1px solid rgba(255,255,255,.42);color:#fff;background:rgba(255,255,255,.06);transition:.2s;
}
.btn-ghost:hover{background:rgba(255,255,255,.16)}

.hero-stage{position:relative;min-height:420px}
.stage-item{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  opacity:0;transform:scale(.94) rotate(-1.4deg);transition:opacity .7s ease,transform .7s ease;
  pointer-events:none;
}
.stage-item.is-on{opacity:1;transform:scale(1) rotate(0);pointer-events:auto}
.stage-item img{
  width:auto;max-height:420px;border-radius:16px;
  box-shadow:0 24px 60px rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.24);
}
.stage-caption{
  position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);
  font-size:13px;padding:5px 14px;border-radius:999px;
  background:rgba(20,12,26,.78);border:1px solid rgba(255,255,255,.26);white-space:nowrap;
}

/* marquee */
.marquee{
  margin-top:44px;border-top:1px solid rgba(255,255,255,.18);
  background:rgba(12,8,16,.55);overflow:hidden;padding:12px 0;
}
.marquee-track{display:flex;gap:38px;width:max-content;animation:slide 34s linear infinite}
.marquee span{
  font-size:15px;font-weight:600;white-space:nowrap;
  background:linear-gradient(90deg,#ffd166,#ff5c8a,#8f7bff,#4ed6d0);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- section base ---------- */
section{padding:56px 0}
.sec-head{margin-bottom:28px}
.sec-head .tag{
  display:inline-block;font-size:12px;letter-spacing:.16em;font-weight:700;
  padding:4px 12px;border-radius:999px;margin-bottom:12px;
}
.sec-head h2{font-size:clamp(22px,3vw,30px);line-height:1.35}
.sec-head p{margin-top:10px;color:var(--soft);font-size:15px;max-width:62ch}

/* new today */
.sec-new{background:#fdf1e4}
.sec-new .tag{background:#ffe0c2;color:#a5480f}
.poster-rail{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(180px,1fr);
  gap:18px;overflow-x:auto;padding-bottom:12px;scroll-snap-type:x mandatory;
}
.poster-rail::-webkit-scrollbar{height:6px}
.poster-rail::-webkit-scrollbar-thumb{background:rgba(165,72,15,.3);border-radius:99px}
.rail-card{scroll-snap-align:start}
.rail-card img{
  width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:14px;
  border:2px solid #fff;box-shadow:0 10px 24px rgba(120,60,20,.18);
}
.rail-card h3{font-size:14px;margin-top:10px}
.rail-card small{display:block;color:#9a6a45;font-size:12px}

/* midnight */
.sec-night{background:#141021;color:#eee7f5}
.sec-night .tag{background:rgba(140,110,255,.22);color:#c9b8ff}
.sec-night .sec-head p{color:rgba(238,231,245,.72)}
.timeline{position:relative;margin-top:8px;padding-left:66px}
.timeline::before{
  content:"";position:absolute;left:22px;top:6px;bottom:6px;width:2px;
  background:linear-gradient(#8f7bff,#4ed6d0,#ff5c8a);
}
.tl-item{position:relative;padding:12px 0 20px}
.tl-item::before{
  content:"";position:absolute;left:-52px;top:20px;width:12px;height:12px;
  border-radius:50%;background:#141021;border:2px solid #8f7bff;
}
.tl-time{
  font-size:13px;font-weight:700;letter-spacing:.08em;color:#9fe6e0;
}
.tl-item strong{display:block;margin:4px 0 2px;font-size:16px}
.tl-item p{font-size:14px;color:rgba(238,231,245,.72)}

/* library */
.sec-lib{background:#eef6f2}
.sec-lib .tag{background:#cdeade;color:#0f5c4e}
.lib-layout{display:grid;grid-template-columns:.78fr 1.22fr;gap:30px;align-items:start}
.lib-side img{
  width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--radius);
  box-shadow:0 16px 40px rgba(15,92,78,.22);
}
.lib-side figcaption{font-size:13px;color:#4f7a6f;margin-top:10px}
.lib-list{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.lib-item{
  background:#fff;border-radius:14px;padding:14px 16px;
  border-left:4px solid #0f5c4e;
}
.lib-item h3{font-size:15px;margin-bottom:4px}
.lib-item p{font-size:13.5px;color:#557a70}

/* workshop */
.sec-work{background:#fff2f6}
.sec-work .tag{background:#ffd7e5;color:#a81544}
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.work-card{
  background:#fff;border-radius:var(--radius);overflow:hidden;
  box-shadow:0 8px 22px rgba(168,21,68,.12);
}
.work-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.work-card div{padding:14px 16px 18px}
.work-card h3{font-size:15px;margin-bottom:6px}
.work-card p{font-size:13.5px;color:#8a5364}

/* reviews */
.sec-review{background:#122a44;color:#e6eff8}
.sec-review .tag{background:rgba(120,190,255,.2);color:#a9d6ff}
.sec-review .sec-head p{color:rgba(230,239,248,.72)}
.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.review-item{
  display:flex;gap:12px;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:14px;
}
.review-item img{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:0 0 40px}
.review-item b{font-size:14px;color:#a9d6ff;display:block;margin-bottom:2px}
.review-item p{font-size:13.5px;color:rgba(230,239,248,.85)}

/* quotes */
.sec-quote{background:#fff8e6}
.sec-quote .tag{background:#ffe6a8;color:#8a5a00}
.quote-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.quote-item{
  background:#fff;border-radius:14px;padding:16px 18px;
  border:1px dashed #e2bd6a;position:relative;
}
.quote-item p{font-size:14.5px}
.quote-item span{display:block;margin-top:8px;font-size:12px;color:#a8813a}

/* privacy faq download */
.sec-safe{background:#f3f1f8}
.sec-safe .tag{background:#ded6f0;color:#4b3196}
.safe-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.safe-item{background:#fff;border-radius:14px;padding:16px 18px;box-shadow:0 6px 18px rgba(75,49,150,.08)}
.safe-item h3{font-size:15px;margin-bottom:6px;color:#4b3196}
.safe-item p{font-size:13.5px;color:#6b6280}

.faq-list{display:grid;gap:12px;max-width:820px}
.faq-item{background:#fff;border-radius:14px;padding:16px 20px;border:1px solid var(--line)}
.faq-item h3{font-size:15px;color:#4b3196;margin-bottom:4px}
.faq-item p{font-size:14px;color:#5a5170}

/* download */
.sec-download{
  background:
    radial-gradient(700px 340px at 86% 0%,rgba(255,178,62,.45),transparent 62%),
    linear-gradient(140deg,#5a1230,#3b1e57 62%,#123a63);
  color:#fff;
}
.sec-download .tag{background:rgba(255,255,255,.18);color:#ffe2b8}
.sec-download .sec-head p{color:rgba(255,255,255,.8)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:32px}
.step{
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);
  border-radius:14px;padding:16px;
}
.step b{display:block;font-size:22px;color:#ffcf4d;line-height:1;margin-bottom:8px}
.step span{font-size:13.5px;color:rgba(255,255,255,.86)}
.dl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.dl-card{
  display:block;text-align:center;padding:18px 14px;border-radius:16px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.26);
  transition:.2s;
}
.dl-card:hover{background:rgba(255,255,255,.22);transform:translateY(-2px)}
.dl-card strong{display:block;font-size:17px;margin-bottom:4px}
.dl-card small{font-size:12.5px;color:rgba(255,255,255,.78)}

/* floating */
.float-dl{
  position:fixed;left:50%;bottom:16px;transform:translateX(-50%);
  z-index:80;display:flex;align-items:center;gap:10px;
  padding:9px 18px 9px 9px;border-radius:999px;
  background:linear-gradient(120deg,#ffcf4d,#e0245e);
  box-shadow:0 12px 30px rgba(224,36,94,.45);
  color:#fff;font-size:14px;font-weight:600;white-space:nowrap;
}
.float-dl img{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.7)}

/* modal */
.copy-modal{
  position:fixed;inset:0;z-index:120;display:none;
  align-items:center;justify-content:center;padding:20px;
  background:rgba(12,8,16,.68);
}
.copy-modal.is-open{display:flex}
.copy-box{
  width:100%;max-width:380px;background:#fff;color:var(--ink);
  border-radius:18px;padding:22px;
}
.copy-box p{font-size:14.5px;margin-bottom:14px}
.copy-box code{
  display:block;font-size:13px;word-break:break-all;
  background:#f4f0f6;border-radius:10px;padding:10px 12px;margin-bottom:14px;
}
.copy-box button{
  width:100%;border:0;border-radius:12px;padding:12px;cursor:pointer;
  background:linear-gradient(120deg,#ffcf4d,#e0245e);color:#fff;font-size:15px;font-weight:600;
}
.copy-box .close-tip{margin-top:10px;text-align:center;font-size:12.5px;color:#8a8098}

/* footer */
.site-footer{background:#191219;color:rgba(255,255,255,.5);font-size:12.5px;padding:30px 0 72px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:24px;margin-bottom:20px}
.site-footer strong{color:rgba(255,255,255,.8);font-size:13px;display:block;margin-bottom:8px}
.site-footer ul{list-style:none}
.site-footer li{margin-bottom:4px}
.site-footer a{color:rgba(255,255,255,.55)}
.site-footer a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:14px;line-height:2}
.footer-bottom time{display:inline-block}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .hero-grid{grid-template-columns:1fr;gap:26px}
  .hero-stage{min-height:360px;order:-1}
  .stage-item img{max-height:340px}
  .work-grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .dl-grid{grid-template-columns:repeat(2,1fr)}
  .lib-layout{grid-template-columns:1fr}
  .lib-side{max-width:340px;margin:0 auto}
}
@media (max-width:768px){
  section{padding:40px 0}
  .nav-toggle{display:block}
  .main-nav{
    display:none;position:absolute;left:0;right:0;top:100%;
    background:rgba(26,18,32,.98);border-bottom:1px solid rgba(255,255,255,.12);
    padding:10px 16px 16px;
  }
  .main-nav.is-open{display:block}
  .main-nav ul{flex-direction:column;gap:2px}
  .main-nav a{padding:10px 8px;font-size:15px}
  .header-inner{position:relative}
  .hero{padding-top:36px}
  .hero h1{font-size:26px}
  .hero-sub{font-size:15px}
  .btn-dl,.btn-ghost{flex:1 1 46%;justify-content:center;padding:13px 14px;font-size:14px}
  .hero-stage{min-height:300px}
  .stage-item img{max-height:290px}
  .lib-list,.review-grid,.quote-grid,.safe-grid{grid-template-columns:1fr}
  .work-grid{grid-template-columns:1fr}
  .steps,.dl-grid{grid-template-columns:1fr 1fr}
  .timeline{padding-left:56px}
  .timeline::before{left:16px}
  .tl-item::before{left:-46px}
  .footer-grid{grid-template-columns:1fr;gap:18px}
  .float-dl{bottom:12px;font-size:13px;padding:8px 15px 8px 8px}
}