@font-face{font-family:CommerceSans;src:url(assets/commerce-sans-regular.woff2) format('woff2');font-weight:400 500;font-display:swap}
@font-face{font-family:CommerceSans;src:url(assets/commerce-sans-semibold.woff2) format('woff2');font-weight:600 900;font-display:swap}
@font-face{font-family:CommerceDisplay;src:url(assets/studio-bold.ttf);font-weight:600 900;font-display:swap}

:root{
  --bg:#F6F6F9; --card:#FFFFFF; --ink:#141418; --ink-2:#5E6068; --line:#E4E4EA;
  --hot:#FF2B4E; --hot-deep:#E0163A; --sticker:#FFE03D; --night:#15151A;
  --r-lg:28px; --r-md:18px;
  --font:"CommerceDisplay","CommerceSans","PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
a{color:inherit}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
img,video{display:block;max-width:100%}
.wrap{max-width:1280px;margin:0 auto;padding:0 32px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 12px;z-index:50}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:58px;padding:0 34px;border-radius:999px;
  font-weight:900;font-size:18px;text-decoration:none;white-space:nowrap;transition:transform .15s,background-color .2s,box-shadow .2s}
.btn:active{transform:scale(.97)}
.btn-hot{background:var(--hot);color:#fff;box-shadow:0 10px 24px -10px rgba(255,43,78,.7)}
.btn-hot:hover{background:var(--hot-deep);box-shadow:0 14px 30px -10px rgba(255,43,78,.8)}
.btn-ghost{background:#fff;color:var(--ink);border:2px solid var(--ink)}
.btn-ghost:hover{background:var(--ink);color:#fff}
.sticker{display:inline-block;background:var(--sticker);color:var(--ink);font-weight:900;font-size:15px;padding:6px 14px;border-radius:10px;transform:rotate(-3deg);box-shadow:0 2px 0 var(--ink)}

/* ---------- nav ---------- */
header{position:sticky;top:0;z-index:30;background:rgba(246,246,249,.9);backdrop-filter:blur(12px)}
.nav{height:72px;display:flex;align-items:center;gap:36px}
.brand{text-decoration:none;font-weight:900;font-size:24px;letter-spacing:-.02em;font-stretch:115%}
.brand i{font-style:normal;color:var(--hot)}
.nav nav{display:flex;gap:28px}
.nav nav a{text-decoration:none;font-weight:500;color:var(--ink-2)}
.nav nav a:hover{color:var(--ink)}
.nav .right{margin-left:auto;display:flex;gap:12px;align-items:center}
.nav .login{text-decoration:none;font-weight:700;padding:0 14px}
.nav .btn{height:44px;font-size:15px;padding:0 22px}

/* ---------- hero ---------- */
.hero{padding:56px 0 96px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.hero h1{margin:22px 0 0;font-weight:900;font-size:clamp(46px,6.4vw,92px);line-height:1.12;letter-spacing:-.01em}
.hero h1 .mark{position:relative;white-space:nowrap}
.hero h1 .mark::after{content:"";position:absolute;left:-2%;right:-2%;bottom:.08em;height:.32em;background:var(--sticker);z-index:-1;border-radius:4px;transform:skewX(-8deg)}
.hero h1 .hot{color:var(--hot)}
.lede{font-size:19px;line-height:1.8;color:var(--ink-2);max-width:25em;margin:28px 0 36px}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap}
.fit{display:flex;gap:8px 10px;flex-wrap:wrap;margin-top:40px;padding-top:24px;border-top:1px solid var(--line);align-items:center;color:var(--ink-2);font-size:14px}
.fit b{font-weight:700;color:var(--ink)}
.chip{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:4px 14px;font-size:14px;font-weight:500;color:var(--ink)}

/* phone collage */
.collage{position:relative;height:680px}
.phone{position:absolute;left:57%;top:10px;width:300px;height:620px;margin-left:-150px;border-radius:44px;background:var(--night);padding:12px;
  box-shadow:0 40px 80px -30px rgba(20,20,24,.55);transform:rotate(3deg);z-index:3}
.phone .scr{position:relative;width:100%;height:100%;border-radius:34px;overflow:hidden;background:#000}
.phone video{width:100%;height:100%;object-fit:cover}
.live{position:absolute;top:18px;left:14px;display:flex;align-items:center;gap:6px;background:var(--hot);color:#fff;font-size:12px;font-weight:900;padding:4px 10px;border-radius:999px}
.live::before{content:"";width:7px;height:7px;border-radius:50%;background:#fff;animation:blink 1.2s infinite}
.bubbles{position:absolute;left:12px;bottom:128px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.bubbles span{background:rgba(0,0,0,.45);color:#fff;font-size:12px;padding:4px 10px;border-radius:12px;backdrop-filter:blur(4px)}
.bubbles span b{color:#FFD7DE;font-weight:500;margin-right:4px}
.pcard{position:absolute;left:10px;right:10px;bottom:12px;background:#fff;border-radius:16px;padding:10px;display:flex;gap:10px;align-items:center}
.pcard img{width:64px;height:64px;border-radius:10px;object-fit:cover}
.pcard b{display:block;font-size:14px;line-height:1.35}
.pcard .buy{margin-left:auto;background:var(--hot);color:#fff;font-weight:900;font-size:13px;padding:8px 12px;border-radius:999px;white-space:nowrap}
.hearts{position:absolute;right:12px;bottom:120px;width:40px;height:240px;pointer-events:none}
.hearts i{position:absolute;bottom:0;left:10px;width:20px;height:20px;background:var(--hot);transform:rotate(45deg);border-radius:4px 0 4px 4px;opacity:0;animation:float 3s infinite}
.hearts i::before,.hearts i::after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:inherit}
.hearts i::before{left:-10px;top:0}.hearts i::after{left:0;top:-10px}
.hearts i:nth-child(2){animation-delay:.8s;background:var(--sticker);left:0}
.hearts i:nth-child(3){animation-delay:1.6s;left:16px}
.hearts i:nth-child(4){animation-delay:2.3s;background:#fff}
.side{position:absolute;border-radius:var(--r-md);overflow:hidden;box-shadow:0 30px 60px -30px rgba(20,20,24,.45);background:#222}
.side img,.side video{width:100%;height:100%;object-fit:cover}
.side.a{width:230px;height:300px;left:-8px;top:70px;transform:rotate(-7deg);z-index:2}
.side.b{width:190px;height:240px;right:-12px;bottom:40px;transform:rotate(6deg);z-index:2}
.collage .sticker{position:absolute;z-index:4}
.collage .s1{left:4px;top:34px}
.collage .s2{right:-4px;bottom:292px;transform:rotate(4deg)}
.ref{position:absolute;bottom:-4px;left:0;right:0;margin:0;text-align:center;font-size:12px;color:var(--ink-2);z-index:5}

.shots{position:absolute;left:12px;right:12px;bottom:118px;display:flex;gap:6px;flex-wrap:wrap}
.shots span{background:rgba(0,0,0,.5);color:#fff;font-size:11px;padding:3px 9px;border-radius:999px;backdrop-filter:blur(4px)}
.shots span.on{background:#fff;color:var(--ink);font-weight:700}
.spec{position:absolute;left:10px;right:10px;bottom:12px;background:#fff;border-radius:16px;padding:10px 12px;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:6px}
.spec small{display:block;font-size:11px;color:var(--ink-2);line-height:1.3}
.spec b{display:block;white-space:nowrap;font-size:12.5px;line-height:1.35;color:var(--ink)}
.opt{display:flex;flex-direction:column;gap:8px}
.opt small{font-size:13px;font-weight:700;color:rgba(255,255,255,.6)}
.t1 .chip{font-size:13px;padding:3px 12px}
.tile .fine{font-size:13px}
/* ---------- marquee ---------- */
.band{background:var(--hot);color:#fff;overflow:hidden;transform:none;margin:0;box-shadow:0 2px 0 var(--ink)}
.band .row{display:flex;gap:48px;white-space:nowrap;padding:16px 0;font-weight:900;font-size:24px;width:max-content;animation:slide 26s linear infinite}
.band .row span::after{content:"";display:inline-block;width:10px;height:10px;background:var(--sticker);border-radius:50%;margin-left:48px;vertical-align:middle}

/* ---------- tools bento ---------- */
.tools{padding:112px 0 0}
.sec-h{margin-bottom:48px;max-width:40em}
.sec-h h2{margin:0;font-weight:900;font-size:clamp(34px,4.4vw,60px);line-height:1.15}
.sec-h p{margin:16px 0 0;font-size:18px;color:var(--ink-2)}
.bento{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(0,auto);gap:20px}
.tile{position:relative;border-radius:var(--r-lg);overflow:hidden;text-decoration:none;color:var(--ink);background:var(--card);border:1.5px solid var(--line);
  display:flex;flex-direction:column;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s}
.tile:hover{transform:translateY(-4px);box-shadow:0 24px 40px -24px rgba(20,20,24,.35)}
.tile .media{position:relative;overflow:hidden;background:#111}
.tile .media video,.tile .media img{width:100%;height:100%;object-fit:cover}
.tile .body{padding:28px 32px 30px;display:flex;flex-direction:column;gap:12px;flex:1}
.tile h3{margin:0;font-size:30px;font-weight:900;line-height:1.25}
.tile p{margin:0;color:var(--ink-2)}
.tile .chips{display:flex;gap:8px;flex-wrap:wrap}
.tile .go{margin-top:auto;padding-top:8px;font-weight:900;color:var(--hot)}
.tile .ref-tag{position:absolute;left:14px;top:14px;background:rgba(0,0,0,.5);color:#fff;font-size:12px;padding:3px 10px;border-radius:999px}
.t1{grid-column:span 7;grid-row:span 2;background:var(--night);color:#fff;border-color:var(--night)}
.t1 .media{flex:1;min-height:380px}
.t1 .body{flex:none;padding:32px 36px 34px}
.t1 p{color:rgba(255,255,255,.75)}
.t1 .chip{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
.t1 h3{font-size:clamp(34px,3.4vw,46px)}
.t2{grid-column:span 5}
.t2 .media{height:210px}
.t3{grid-column:span 5;background:var(--sticker);border-color:var(--ink)}
.t3 .media{height:210px}
.t3 p{color:#3A3A2A}
.t4{grid-column:span 12;flex-direction:row;background:#fff}
.t4 .media{flex:0 0 42%;min-height:340px}
.tile .media > video,.tile .media > img{position:absolute;inset:0}
.t4 .body{justify-content:center;padding:40px 48px;gap:14px}
.t4 .go{margin-top:6px}
.t4 .steps-mini{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-weight:700}
.t4 .steps-mini span{background:var(--bg);border-radius:12px;padding:8px 14px}

/* ---------- wall ---------- */
.wall{padding:112px 0 0;overflow:hidden}
.wall .sec-h{padding:0 32px;max-width:1280px;margin:0 auto 48px}
.wall .sec-h > *{max-width:40em}
.strip{display:flex;gap:18px;width:max-content;animation:slide 48s linear infinite}
.strip:hover{animation-play-state:paused}
.shot{position:relative;width:220px;height:390px;border-radius:22px;overflow:hidden;background:#111;flex:none}
.shot video,.shot img{width:100%;height:100%;object-fit:cover}
.shot span{position:absolute;left:10px;bottom:10px;background:#fff;color:var(--ink);font-size:13px;font-weight:700;padding:3px 10px;border-radius:999px}
.wall .note{max-width:1280px;margin:20px auto 0;padding:0 32px;font-size:13px;color:var(--ink-2)}

/* ---------- steps ---------- */
.how{padding:112px 0}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:n}
.card{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-lg);padding:34px 34px 38px;counter-increment:n;position:relative;display:flex;flex-direction:column}
.card::before{content:"0" counter(n);display:block;font-family:"CommerceDisplay","CommerceSans",sans-serif;font-weight:900;font-stretch:125%;font-size:56px;line-height:1;color:var(--hot);margin-bottom:28px}
.card h3{position:relative;margin:0 0 8px;font-size:26px;font-weight:900}
.card p{position:relative;margin:0;color:var(--ink-2)}
.card:nth-child(3){background:var(--night);color:#fff;border-color:var(--night)}
.card:nth-child(3)::before{color:var(--sticker)}
.card:nth-child(3) p{color:rgba(255,255,255,.72)}
.card .sticker{position:relative;margin-top:auto;align-self:flex-start;transform:rotate(-3deg) translateY(12px)}

/* ---------- final ---------- */
.final{background:var(--hot);color:#fff;padding:112px 0;position:relative;overflow:hidden}
.final .wrap{display:grid;grid-template-columns:1.35fr .65fr;gap:48px;align-items:center}
.final-art{position:relative;height:420px}
.final-art img{position:absolute;width:250px;height:330px;object-fit:cover;border-radius:22px;box-shadow:0 30px 60px -24px rgba(0,0,0,.45);border:6px solid #fff}
.final-art img:first-child{right:120px;top:0;transform:rotate(-6deg);object-position:center 40%}
.final-art img:last-child{right:0;top:70px;transform:rotate(5deg)}
.final h2{margin:0;font-weight:900;font-size:clamp(44px,6.2vw,100px);line-height:1.1}
.final p{font-size:19px;color:rgba(255,255,255,.88);margin:24px 0 36px;max-width:26em}
.final .btn{background:#fff;color:var(--hot);height:64px;font-size:20px}
.final .btn:hover{background:var(--sticker);color:var(--ink)}
footer{background:var(--night);color:#9A9CA5;font-size:13px}
.foot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:28px 32px 36px;max-width:1280px;margin:0 auto}
footer a{color:inherit}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
.mbar{display:none}

/* ---------- motion ---------- */
@keyframes slide{to{transform:translateX(-50%)}}
@keyframes float{0%{opacity:0;transform:translateY(0) rotate(45deg) scale(.6)}15%{opacity:1}100%{opacity:0;transform:translateY(-220px) rotate(45deg) scale(1.1)}}
@keyframes blink{50%{opacity:.3}}
@media (prefers-reduced-motion:no-preference){
  .hero-copy > *{animation:up .8s cubic-bezier(.16,1,.3,1) both}
  .hero-copy > *:nth-child(2){animation-delay:.08s}
  .hero-copy > *:nth-child(3){animation-delay:.16s}
  .hero-copy > *:nth-child(4){animation-delay:.24s}
  .phone{animation:pop 1s .2s cubic-bezier(.34,1.3,.64,1) both}
  .side.a{animation:inl 1s .35s cubic-bezier(.16,1,.3,1) both}
  .side.b{animation:inr 1s .45s cubic-bezier(.16,1,.3,1) both}
  @keyframes up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
  @keyframes pop{from{opacity:0;transform:rotate(3deg) translateY(60px) scale(.92)}to{opacity:1;transform:rotate(3deg)}}
  @keyframes inl{from{opacity:0;transform:rotate(-14deg) translateX(-40px)}to{opacity:1;transform:rotate(-7deg)}}
  @keyframes inr{from{opacity:0;transform:rotate(12deg) translateX(40px)}to{opacity:1;transform:rotate(6deg)}}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.hearts{display:none}}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .wrap{padding:0 16px}
  .nav{height:60px}.nav nav{display:none}.nav .btn{display:none}
  .hero{padding:24px 0 56px}
  .hero-grid{grid-template-columns:1fr;gap:28px}
  .lede{font-size:17px;margin:18px 0 26px}
  .hero-actions .btn{flex:1}
  .collage{height:520px;margin:0 -16px}
  .phone{width:250px;height:510px;margin-left:-125px;left:50%;border-radius:38px}
  .side.a{width:140px;height:190px;left:6px;top:40px}
  .side.b{width:140px;height:180px;right:6px;bottom:40px}
  .band .row{font-size:18px;padding:12px 0}
  .tools,.wall{padding-top:80px}.how{padding:80px 0}
  .sec-h{margin-bottom:32px}.sec-h p{font-size:16px}
  .final .wrap{grid-template-columns:1fr}.final-art{display:none}
  .t1 .media{min-height:280px;flex:none;height:300px}.t1 .body{padding:24px}
  .t4 .body{padding:26px 24px}
  .card::before{font-size:44px;margin-bottom:18px}
  .collage .s2{bottom:250px}
  .collage{height:560px}.ref{bottom:0;padding:0 16px}
  .bento{grid-template-columns:1fr;gap:14px}
  .t1,.t2,.t3,.t4{grid-column:auto;grid-row:auto}
  .t4{flex-direction:column}.t4 .media{flex:none;height:240px}
  .tile .body{padding:22px}
  .tile h3{font-size:26px}
  .wall .sec-h,.wall .note{padding:0 16px}
  .shot{width:170px;height:300px}
  .cards3{grid-template-columns:1fr}
  .final{padding:80px 0 120px}
  .foot{padding:24px 16px 96px}
  .mbar{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:40}
  .mbar .btn{flex:1;height:54px}
}

/* Production behavior: keep the reference composition, accessible actions and complete product framing. */
html{scroll-padding-top:96px}
.btn-hot,.band,.final,.live{background:var(--hot-deep)}
.tile .go{color:var(--hot-deep)}
.t1 .go{color:#ff879b}
.hero h1 .mark{isolation:isolate}
.phone video,.t1 .media video,.shot video{object-fit:contain;background:#15151a}
.phone{overflow:hidden}
button{font:inherit;cursor:pointer}
.motion-control{border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 16px;border-radius:999px;font-size:13px;min-height:44px}
.motion-control:hover{background:var(--ink);color:#fff}
.wall-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:20px auto 0;padding:0 32px;max-width:1280px}
.wall-controls .note{margin:0;padding:0}
.motion-paused .band .row,.motion-paused .strip{animation-play-state:paused}
.band:hover .row,.band:focus-within .row,.strip:focus-within{animation-play-state:paused}
.shot{display:block;text-decoration:none}
.shot:focus-visible{outline-offset:-4px;outline-color:var(--sticker)}
.strip:hover video{opacity:1}
.media-unavailable::after{content:'暂用封面展示';position:absolute;bottom:12px;right:12px;padding:3px 9px;border-radius:8px;background:#15151ae6;color:white;font-size:12px;pointer-events:none}
@media(max-width:640px){.hero h1{font-size:clamp(38px,10.7vw,60px)}.hero-actions{gap:10px}.hero-actions .btn{padding:0 15px;font-size:16px}.nav{gap:12px}.nav .login{font-size:14px}.wall-controls{padding:0 16px;align-items:flex-start;flex-direction:column}.phone{width:240px;margin-left:-120px}.collage .s2{right:14px}.side.b{right:4px}.final h2{font-size:clamp(38px,11vw,64px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.strip{width:100%;overflow:auto;padding:0 16px;scroll-snap-type:x mandatory}.shot{scroll-snap-align:start}.shot[aria-hidden=true]{display:none}}

/* Keep the supplied art direction while preserving readable type and usable mobile navigation. */
body{font-family:"CommerceSans","PingFang SC","Microsoft YaHei",sans-serif}
h1,h2,h3,.brand,.btn,.sticker{font-family:"CommerceDisplay","CommerceSans","PingFang SC",sans-serif}
.phone .scr > img{width:100%;height:100%;object-fit:contain;background:var(--night)}
.t1 .media > img{object-fit:contain}
.nav .login,.nav nav a{min-height:44px;display:inline-flex;align-items:center}
.tile:focus-visible{outline-color:var(--hot-deep);outline-offset:4px}
.t1:focus-visible{outline-color:var(--hot-deep)}
.motion-paused .live::before{animation-play-state:paused}
@media(max-width:960px){.nav{height:auto;min-height:64px;flex-wrap:wrap;padding-top:8px;padding-bottom:10px;gap:4px 16px}.nav nav{display:flex;order:3;width:100%;justify-content:space-between;gap:8px;font-size:13px;border-top:1px solid var(--line);padding-top:4px}.nav .right{margin-left:auto}.nav .login{padding:0}.hero{padding-top:32px}.phone .scr > img{object-fit:contain}.spec{grid-template-columns:1.3fr 1fr}.spec>div:last-child{display:none}}
@media(max-width:400px){.sticker{font-size:12px}.hero h1{font-size:clamp(36px,10.7vw,43px)}.fit{margin-top:28px}.tile .body{padding:24px}.tile h3{font-size:28px}.steps-mini{font-size:13px}.t4 .steps-mini span{padding:6px 8px}.wall .sec-h{padding:0 16px}.sec-h h2{font-size:32px}}
