:root{
  --main:#f472b6;
  --accent:#fbbf24;
  --bg:#fff5f7;
  --ink:#4a2530;
  --line:#4a2530;
  --soft:#fde3ec;
  --shadow:6px 6px 0 var(--ink);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:"Inter","Source Han Sans SC","Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  margin:0;
  overflow-x:hidden;
}
h1,h2,h3,h4,.serif{
  font-family:"Source Han Serif SC","Noto Serif SC","Songti SC",serif;
  font-weight:900;
  letter-spacing:-.5px;
}
a{color:inherit;text-decoration:none;}
/* ===== NAV ===== */
.top-nav{
  background:var(--bg);
  border-bottom:4px solid var(--line);
  position:sticky;top:0;z-index:1000;
}
.brand-lock{
  font-family:"Source Han Serif SC",serif;
  font-weight:900;
  font-size:1.5rem;
  color:var(--ink);
  border:3px solid var(--line);
  padding:.25rem .7rem;
  box-shadow:4px 4px 0 var(--main);
  display:inline-block;
  letter-spacing:1px;
}
.nav-link-hard{
  font-weight:600;
  color:var(--ink)!important;
  padding:.5rem .8rem;
  border:2px solid transparent;
  font-size:.95rem;
}
.nav-link-hard:hover{
  border:2px solid var(--line);
  background:var(--soft);
  box-shadow:3px 3px 0 var(--main);
}
.navbar-toggler{
  border:3px solid var(--line);
  border-radius:0;
}
.navbar-toggler:focus{box-shadow:4px 4px 0 var(--main);}
/* ===== HERO ===== */
.hero{
  position:relative;
  overflow:hidden;
  border-bottom:6px solid var(--line);
  background:
    radial-gradient(circle at 85% 15%, rgba(251,191,36,.35), transparent 45%),
    radial-gradient(circle at 10% 80%, rgba(244,114,182,.35), transparent 50%),
    var(--bg);
  padding:4.5rem 0 4rem;
}
.hero-bg-word{
  position:absolute;
  top:-1.5rem;left:-1rem;
  font-family:"Source Han Serif SC",serif;
  font-weight:900;
  font-size:clamp(6rem,20vw,17rem);
  color:rgba(244,114,182,.12);
  white-space:nowrap;
  pointer-events:none;
  user-select:none;
  z-index:0;
}
.hero-inner{position:relative;z-index:2;}
.hero-title{
  font-size:clamp(2.6rem,7vw,4.2rem);
  line-height:1.02;
  background:linear-gradient(92deg,var(--main) 0%,var(--accent) 55%,var(--main) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}
.hero-sub{
  font-size:1.05rem;
  max-width:34rem;
  line-height:1.85;
  color:#6b3b48;
  font-weight:400;
}
.hero-float{
  position:absolute;
  border:3px solid var(--line);
  background:var(--bg);
  box-shadow:var(--shadow);
  padding:.5rem .8rem;
  font-weight:700;
  font-size:.85rem;
  z-index:3;
  animation:floaty 5s ease-in-out infinite;
}
.hero-float.f1{top:8%;right:6%;animation-delay:.2s;color:var(--main);}
.hero-float.f2{bottom:12%;right:22%;animation-delay:1.4s;color:#b45309;}
.hero-float.f3{bottom:26%;left:52%;animation-delay:2.6s;color:var(--main);}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.stage{
  border:5px solid var(--line);
  box-shadow:10px 10px 0 var(--main);
  position:relative;
  overflow:hidden;
  background:#fff;
}
.stage img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/10;display:block;}
.stage-cap{
  position:absolute;left:0;bottom:0;
  background:var(--line);color:#fff;
  font-weight:700;padding:.4rem .9rem;font-size:.85rem;
}
.hero-stat{
  border:3px solid var(--line);
  background:#fff;
  box-shadow:5px 5px 0 var(--accent);
  padding:.9rem 1rem;
}
.hero-stat b{
  display:block;font-size:1.7rem;font-family:"Source Han Serif SC",serif;
  color:var(--main);line-height:1;
}
.hero-stat span{font-size:.78rem;font-weight:600;color:#7a4a56;letter-spacing:.5px;}
/* ===== SECTION ===== */
.hard-section{padding:3.6rem 0;border-bottom:4px solid var(--line);}
.sec-head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:2rem;}
.sec-title{
  font-size:clamp(1.8rem,4vw,2.6rem);
  margin:0;
  position:relative;
  padding-left:1rem;
}
.sec-title::before{
  content:"";position:absolute;left:0;top:.12em;bottom:.12em;width:.42rem;
  background:linear-gradient(var(--main),var(--accent));
  border:2px solid var(--line);
}
.sec-note{font-size:.9rem;color:#7a4a56;font-weight:500;margin:0;}
.chip{
  display:inline-block;
  border:3px solid var(--line);
  background:#fff;
  padding:.32rem .85rem;
  font-weight:700;
  font-size:.82rem;
  box-shadow:3px 3px 0 var(--accent);
  border-radius:0;
  margin-right:.4rem;
  margin-bottom:.5rem;
  transition:.18s;
}
.chip:hover{background:var(--soft);box-shadow:5px 5px 0 var(--main);transform:translate(-1px,-1px);}
/* ===== POSTER GRID ===== */
.poster-grid{
  display:grid;
  gap:1.3rem;
  grid-template-columns:repeat(2,minmax(0,1fr));
  width:100%;
}
@media(min-width:576px){.poster-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(min-width:992px){.poster-grid{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media(min-width:1400px){.poster-grid{grid-template-columns:repeat(6,minmax(0,1fr));}}
.card-hard{
  border:4px solid var(--line);
  background:#fff;
  box-shadow:6px 6px 0 var(--main);
  transition:.2s;
  display:flex;flex-direction:column;
  cursor:pointer;
}
.card-hard:hover{transform:translate(-3px,-3px);box-shadow:10px 10px 0 var(--accent);}
.poster-wrap{position:relative;width:100%;aspect-ratio:2/3;overflow:hidden;background:var(--soft);}
.poster-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:.35s;}
.card-hard:hover .poster-wrap img{transform:scale(1.05);}
.tag-corner{
  position:absolute;top:0;left:0;
  background:var(--main);color:#fff;
  font-size:.7rem;font-weight:800;
  padding:.18rem .5rem;border-right:3px solid var(--line);border-bottom:3px solid var(--line);
}
.card-meta{padding:.65rem .7rem .8rem;border-top:3px solid var(--line);flex:1;display:flex;flex-direction:column;gap:.3rem;}
.card-meta h3{font-size:.96rem;margin:0;line-height:1.35;font-weight:800;}
.card-meta p{margin:0;font-size:.76rem;color:#7a4a56;font-weight:500;}
.score-line{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;font-weight:700;color:var(--main);}
/* ===== TABLE ===== */
.table-hard{
  border:4px solid var(--line);
  background:#fff;
  box-shadow:8px 8px 0 var(--main);
  width:100%;
  overflow:hidden;
}
.table-hard table{width:100%;border-collapse:collapse;margin:0;}
.table-hard th{
  background:var(--line);color:#fff;font-weight:800;
  padding:.85rem .9rem;font-size:.88rem;text-align:left;
}
.table-hard td{
  padding:.85rem .9rem;border-top:2px solid var(--soft);
  font-size:.88rem;font-weight:500;
}
.table-hard tbody tr:nth-child(even){background:var(--bg);}
.table-hard tbody tr:hover{background:var(--soft);}
/* ===== RANK LIST ===== */
.rank-item{
  display:flex;align-items:center;gap:1rem;
  border:4px solid var(--line);background:#fff;
  padding:.7rem .9rem;margin-bottom:.85rem;
  box-shadow:5px 5px 0 var(--main);
  transition:.18s;
}
.rank-item:hover{transform:translateX(4px);box-shadow:7px 7px 0 var(--accent);}
.rank-no{
  width:2.6rem;height:2.6rem;flex:0 0 2.6rem;
  display:flex;align-items:center;justify-content:center;
  font-family:"Source Han Serif SC",serif;font-weight:900;font-size:1.2rem;
  border:3px solid var(--line);background:var(--soft);color:var(--ink);
}
.rank-item.gold .rank-no{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;}
.rank-item.silver .rank-no{background:linear-gradient(135deg,#e5e7eb,#9ca3af);color:#fff;}
.rank-item.bronze .rank-no{background:linear-gradient(135deg,#f0b27a,#c2703f);color:#fff;}
.rank-body{min-width:0;flex:1;}
.rank-body h3{font-size:1rem;margin:0 0 .15rem;font-weight:800;}
.rank-body p{margin:0;font-size:.78rem;color:#7a4a56;font-weight:500;}
.rank-score{font-weight:900;color:var(--main);font-family:"Source Han Serif SC",serif;font-size:1.1rem;}
/* ===== STEPS ===== */
.step-list{counter-reset:step;list-style:none;padding:0;margin:0;}
.step-list li{
  counter-increment:step;
  position:relative;
  border:3px solid var(--line);
  background:#fff;
  padding:1rem 1rem 1rem 3.6rem;
  margin-bottom:.9rem;
  box-shadow:5px 5px 0 var(--soft);
  font-size:.92rem;line-height:1.7;
}
.step-list li::before{
  content:counter(step,decimal-leading-zero);
  position:absolute;left:.7rem;top:.85rem;
  font-family:"Source Han Serif SC",serif;font-weight:900;
  color:var(--main);font-size:1.15rem;
}
.step-list li b{color:var(--ink);}
/* ===== BTN ===== */
.btn-glow{
  position:relative;overflow:hidden;
  display:inline-block;
  border:4px solid var(--line);
  background:linear-gradient(90deg,var(--main),var(--accent),var(--main));
  background-size:200% 100%;
  color:#fff;font-weight:800;
  padding:.75rem 1.6rem;
  box-shadow:6px 6px 0 var(--line);
  transition:.25s;
  border-radius:0;
  font-size:.95rem;
}
.btn-glow::after{
  content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);
  transform:skewX(-22deg);transition:.6s;
}
.btn-glow:hover{background-position:100% 0;color:#fff;transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--line);}
.btn-glow:hover::after{left:130%;}
.btn-line{
  display:inline-block;border:4px solid var(--line);background:#fff;color:var(--ink);
  font-weight:800;padding:.75rem 1.6rem;box-shadow:6px 6px 0 var(--main);transition:.2s;border-radius:0;
}
.btn-line:hover{background:var(--soft);color:var(--ink);transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--accent);}
/* ===== FAQ ===== */
.faq-item{border:3px solid var(--line);background:#fff;margin-bottom:.85rem;box-shadow:5px 5px 0 var(--soft);}
.faq-q{
  width:100%;text-align:left;background:transparent;border:0;
  font-weight:800;font-size:.98rem;padding:1rem 1.1rem;color:var(--ink);
  display:flex;justify-content:space-between;gap:1rem;align-items:center;
}
.faq-q i{color:var(--main);transition:.25s;}
.faq-a{padding:0 1.1rem 1rem;font-size:.9rem;line-height:1.8;color:#6b3b48;display:none;}
.faq-item.open .faq-a{display:block;}
.faq-item.open .faq-q i{transform:rotate(45deg);}
/* ===== FOOTER ===== */
footer{background:var(--ink);color:#ffe9f1;border-top:6px solid var(--main);padding:3.2rem 0 1.6rem;}
footer h4{color:#fff;font-size:1.05rem;margin-bottom:1rem;}
footer a{color:#ffd6e5;font-size:.88rem;display:block;margin-bottom:.5rem;font-weight:500;}
footer a:hover{color:var(--accent);}
.foot-brand{
  font-family:"Source Han Serif SC",serif;font-weight:900;font-size:1.4rem;color:#fff;
  border:3px solid var(--main);display:inline-block;padding:.3rem .8rem;box-shadow:4px 4px 0 var(--main);
}
.foot-bottom{border-top:2px solid rgba(255,255,255,.18);margin-top:2rem;padding-top:1.2rem;font-size:.82rem;color:#e9b8cb;}
.friend-links{
  border:4px dashed var(--line);
  background:#fff;
  padding:1.4rem 1.4rem .9rem;
  box-shadow:6px 6px 0 var(--accent);
}
.friend-links .fl-title{
  font-family:"Source Han Serif SC",serif;font-weight:900;font-size:1.15rem;margin-bottom:.8rem;
}
.friend-links .fl-body{font-size:.9rem;line-height:2;color:#7a4a56;font-weight:500;}
/* ===== REVEAL ===== */
.reveal{opacity:0;transform:translateY(38px);transition:opacity .7s cubic-bezier(.2,.7,.3,1),transform .7s cubic-bezier(.2,.7,.3,1);}
.reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}.hero-float{animation:none;}}
@media(max-width:575px){
  .hero{padding:3rem 0 2.6rem;}
  .hero-float{display:none;}
}