:root{
  --bg:#1d1440;
  --bg2:#251b52;
  --card:#2c2160;
  --card2:#332772;
  --ink:#f6f2ff;
  --muted:#b7aee0;
  --yellow:#ffd93b;
  --yellow-deep:#f5b800;
  --yellow-ink:#3a2a00;
  --line:rgba(255,255,255,.1);
  --radius:20px;
  --shadow:0 18px 40px -18px rgba(0,0,0,.55);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Plus Jakarta Sans',system-ui,sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
  overflow-x:hidden;
}
::selection{background:var(--yellow);color:var(--yellow-ink)}
img{display:block;max-width:100%}
a{color:inherit}

/* film grain */
.grain{
  position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
}

/* marquee */
.marquee{
  background:var(--yellow);color:var(--yellow-ink);
  overflow:hidden;white-space:nowrap;
  font-weight:800;font-size:.8rem;letter-spacing:.12em;
  padding:.55rem 0;transform:rotate(-1deg) scale(1.02);
  border-top:2px solid var(--yellow-ink);border-bottom:2px solid var(--yellow-ink);
}
.marquee-track{display:inline-block;animation:scroll 22s linear infinite}
.marquee .dot{margin:0 .9rem}
@keyframes scroll{to{transform:translateX(-50%)}}

/* topbar */
.topbar{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;gap:1rem;
  padding:.7rem clamp(1rem,4vw,2.5rem);
  background:rgba(29,20,64,.82);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:800;font-size:1.05rem;text-decoration:none}
.brand img{border-radius:50%;border:2px solid var(--yellow)}
.topnav{display:flex;gap:1.2rem;margin-left:auto}
.topnav a{text-decoration:none;color:var(--muted);font-weight:600;font-size:.92rem}
.topnav a:hover{color:var(--yellow)}
.btn{
  display:inline-block;background:var(--yellow);color:var(--yellow-ink);
  font-weight:800;text-decoration:none;border-radius:999px;
  padding:.7rem 1.6rem;border:2px solid var(--yellow-ink);
  box-shadow:3px 3px 0 var(--yellow-ink);
  transition:transform .15s,box-shadow .15s;
}
.btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--yellow-ink)}
.btn:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--yellow-ink)}
.btn-small{padding:.45rem 1.1rem;font-size:.85rem}

/* hero */
.hero{
  text-align:center;padding:clamp(2.5rem,7vw,4.5rem) 1.2rem 3rem;
  background:
    radial-gradient(600px 300px at 50% -40px,rgba(255,217,59,.14),transparent 70%),
    radial-gradient(500px 260px at 85% 20%,rgba(150,110,255,.12),transparent 70%),
    var(--bg);
}
.hero-logo img{
  margin:0 auto 1.2rem;border-radius:50%;
  border:4px solid var(--yellow);
  box-shadow:0 0 0 8px rgba(255,217,59,.12),0 0 60px rgba(255,217,59,.25),var(--shadow);
  animation:float 5s ease-in-out infinite;
}
@keyframes float{50%{transform:translateY(-8px)}}
.kicker{
  display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.22em;
  color:var(--yellow);border:1px dashed rgba(255,217,59,.55);
  padding:.35rem .9rem;border-radius:999px;margin-bottom:1rem;
}
.hero h1{font-size:clamp(2.6rem,9vw,4.6rem);font-weight:800;line-height:1.05;letter-spacing:-.02em}
.hero h1 span{color:var(--yellow)}
.tagline{font-size:clamp(1.05rem,3.4vw,1.35rem);font-style:italic;font-weight:600;color:var(--muted);margin:.6rem 0 1rem}
.hero-desc{max-width:34rem;margin:0 auto;color:var(--muted)}
.hero-desc strong{color:var(--ink)}
.socials{display:flex;gap:.8rem;justify-content:center;margin:1.6rem 0}
.socials a{
  width:48px;height:48px;display:grid;place-items:center;border-radius:16px;
  background:var(--card);border:1px solid var(--line);transition:.2s;
}
.socials a:hover{background:var(--yellow);transform:translateY(-3px) rotate(-4deg)}
.socials svg{width:22px;height:22px;fill:var(--ink)}
.socials a:hover svg{fill:var(--yellow-ink)}
.hero-stats{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:.4rem}
.stat{
  background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:.8rem 1.6rem;min-width:7.5rem;
}
.stat strong{display:block;font-size:1.4rem;color:var(--yellow)}
.stat span{font-size:.78rem;color:var(--muted)}

/* sections */
.section{padding:clamp(2.5rem,6vw,4rem) clamp(1rem,4vw,2.5rem);max-width:72rem;margin:0 auto}
.section-head{text-align:center;margin-bottom:2rem}
.section-head h2{font-size:clamp(1.7rem,5vw,2.4rem);font-weight:800;letter-spacing:-.01em}
.section-head h2 em{font-style:normal;color:var(--yellow);position:relative}
.section-head h2 em::after{
  content:"";position:absolute;left:0;right:0;bottom:2px;height:8px;z-index:-1;
  background:rgba(255,217,59,.28);transform:rotate(-1deg);
}
.section-head p{color:var(--muted);margin-top:.4rem}

/* tools */
.tools{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.8rem}
.search{
  display:flex;align-items:center;gap:.7rem;background:var(--card);
  border:1px solid var(--line);border-radius:999px;padding:.7rem 1.2rem;max-width:30rem;margin:0 auto;width:100%;
}
.search svg{width:18px;height:18px;fill:var(--muted);flex:none}
.search input{
  background:none;border:none;outline:none;color:var(--ink);width:100%;
  font:inherit;font-size:.95rem;
}
.search input::placeholder{color:var(--muted)}
.chips{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap}
.chip{
  background:transparent;color:var(--muted);border:1px solid var(--line);
  border-radius:999px;padding:.45rem 1.1rem;font:inherit;font-weight:700;font-size:.85rem;cursor:pointer;
  transition:.18s;
}
.chip:hover{border-color:var(--yellow);color:var(--yellow)}
.chip.active{background:var(--yellow);color:var(--yellow-ink);border-color:var(--yellow-ink)}

/* product grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16.5rem,1fr));gap:1.4rem}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow);position:relative;
  transition:transform .22s,box-shadow .22s;
  display:flex;flex-direction:column;
}
.card:hover{transform:translateY(-6px);box-shadow:0 26px 50px -18px rgba(0,0,0,.6)}
.cardlink{text-decoration:none;color:inherit;display:block}
.cardlink:hover h3{color:var(--yellow)}
.thumb{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--bg2)}
.thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.card:hover .thumb img{transform:scale(1.05)}
.thumb-ph{
  width:100%;height:100%;display:flex;flex-direction:column;gap:.6rem;
  align-items:center;justify-content:center;color:var(--muted);font-weight:700;
  background:
    radial-gradient(circle at 50% 35%,rgba(255,217,59,.16),transparent 60%),
    repeating-linear-gradient(-45deg,transparent 0 14px,rgba(255,255,255,.03) 14px 28px),
    var(--bg2);
}
.thumb-ph img{width:84px;height:84px;border-radius:50%;border:3px solid var(--yellow);opacity:.9}
.sticker{
  position:absolute;top:.9rem;left:-.4rem;z-index:2;
  background:var(--yellow);color:var(--yellow-ink);
  font-weight:800;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;
  padding:.4rem .9rem .4rem 1.1rem;border-radius:6px;
  transform:rotate(-6deg);box-shadow:2px 2px 0 rgba(0,0,0,.35);
}
.card-body{padding:1.2rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
.cat{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow)}
.card h3{font-size:1.08rem;font-weight:800;line-height:1.35}
.card .desc{font-size:.88rem;color:var(--muted);flex:1}
.code-row{display:flex;align-items:center;gap:.6rem;background:rgba(0,0,0,.28);border:1px dashed rgba(255,217,59,.5);border-radius:12px;padding:.55rem .8rem}
.code-row code{font-family:ui-monospace,monospace;font-weight:700;letter-spacing:.08em;color:var(--yellow);font-size:.9rem}
.copy-btn{
  margin-left:auto;background:var(--yellow);color:var(--yellow-ink);border:none;cursor:pointer;
  font:inherit;font-weight:800;font-size:.78rem;border-radius:8px;padding:.4rem .8rem;
  display:flex;align-items:center;gap:.35rem;transition:.15s;
}
.copy-btn:hover{background:#fff}
.copy-btn svg{width:13px;height:13px;fill:currentColor}
.buy-btn{
  display:block;text-align:center;background:var(--yellow);color:var(--yellow-ink);
  font-weight:800;text-decoration:none;border-radius:14px;padding:.85rem;
  border:2px solid var(--yellow-ink);box-shadow:3px 3px 0 var(--yellow-ink);
  transition:transform .15s,box-shadow .15s;
}
.buy-btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--yellow-ink)}
.buy-btn:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--yellow-ink)}
.detail-btn{
  display:block;text-align:center;margin-top:.6rem;color:var(--yellow);
  font-weight:700;text-decoration:none;border-radius:14px;padding:.7rem;
  border:2px dashed var(--yellow);
}
.detail-btn:hover{background:rgba(255,217,59,.12)}
.empty{text-align:center;color:var(--muted);padding:2rem}

/* howto */
.howto{background:var(--bg2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.howto .section{padding-top:clamp(2.5rem,6vw,4rem)}
.steps{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.2rem;max-width:60rem;margin:0 auto}
.steps li{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.4rem;display:flex;gap:1rem;align-items:flex-start;
}
.num{
  flex:none;width:2.6rem;height:2.6rem;border-radius:50%;
  background:var(--yellow);color:var(--yellow-ink);
  display:grid;place-items:center;font-weight:800;font-size:1.2rem;
  box-shadow:2px 2px 0 var(--yellow-ink);
}
.steps strong{display:block;margin-bottom:.25rem}
.steps p{font-size:.88rem;color:var(--muted)}

/* reels */
.reels-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1.2rem}
.reel-ph{
  border:2px dashed rgba(255,217,59,.4);border-radius:var(--radius);
  padding:3rem 1.5rem;text-align:center;color:var(--muted);
  background:rgba(255,217,59,.04);
}
.reel-ph img{width:72px;height:72px;border-radius:50%;margin:0 auto 1rem;border:3px solid var(--yellow)}
.reel-ph strong{color:var(--ink);display:block;margin-bottom:.3rem}
.reel-card iframe{width:100%;border-radius:var(--radius);border:1px solid var(--line);min-height:480px;background:var(--card)}

/* disclaimer */
.disclaimer p{
  max-width:44rem;margin:0 auto;text-align:center;font-size:.9rem;color:var(--muted);
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem 1.8rem;
}
.disclaimer strong{color:var(--yellow)}

/* footer */
footer{text-align:center;padding:2.5rem 1rem 3rem;border-top:1px solid var(--line);color:var(--muted)}
footer img{margin:0 auto 1rem;border-radius:50%;border:2px solid var(--yellow)}
footer strong{color:var(--ink)}
.foot-small{font-size:.8rem;margin-top:.4rem}

/* toast */
.toast{
  position:fixed;bottom:1.4rem;left:50%;transform:translateX(-50%) translateY(120px);
  background:var(--yellow);color:var(--yellow-ink);font-weight:800;
  padding:.8rem 1.5rem;border-radius:999px;border:2px solid var(--yellow-ink);
  box-shadow:3px 3px 0 var(--yellow-ink);z-index:70;transition:transform .3s;
  max-width:90vw;text-align:center;
}
.toast.show{transform:translateX(-50%) translateY(0)}

/* reveal */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .6s,transform .6s}
.reveal.in{opacity:1;transform:none}

@media(max-width:640px){
  .topnav{display:none}
  .hero-stats{gap:.6rem}
  .stat{min-width:6.5rem;padding:.7rem 1rem}
}
