:root {
  --red:    #E8192C;
  --orange: #F97316;
  --yellow: #FBBF24;
  --green:  #22C55E;
  --blue:   #0EA5E9;
  --indigo: #6366F1;
  --purple: #A855F7;
  --dark:   #0F172A;
  --body:   #334155;
  --muted:  #64748B;
  --border: #E2E8F0;
  --white:  #FFFFFF;
  --offwhite: #F8FAFC;
  --cream:  #FFFBF0;
}
*,*::before,*::after{
  box-sizing:border-box;
  margin:0;
  padding:0
}
html{
    scroll-behavior:smooth
}
body{font-family:'Nunito',sans-serif;background:var(--white);color:var(--dark);overflow-x:hidden}
/* ── TICKER ── */
.ticker-wrap{
  background:linear-gradient(90deg,var(--red),var(--orange),var(--yellow),var(--green),var(--blue),var(--indigo),var(--purple),var(--red));
  background-size:400% 100%;
  animation:rainbowShift 8s linear infinite;
  color:white;padding:8px 0;overflow:hidden;white-space:nowrap;
}
@keyframes rainbowShift{0%{background-position:0% 50%}100%{background-position:100% 50%}}
.ticker-inner{display:inline-block;animation:tick 30s linear infinite;font-size:12.5px;font-weight:700;letter-spacing:.04em}
.ticker-inner span{margin:0 40px}
.ticker-inner span::before{content:'★  '}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ── HERO ── */
.hero{
  min-height:92vh;
  font-family:Arial, Helvetica, sans-serif;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:80px 48px 60px;
  position:relative;overflow:hidden;
  background:var(--offwhite);
}
/* Confetti dots BG */
.hero::before{
  content:'';position:absolute;inset:0;
  background-image:
    radial-gradient(circle,var(--red) 2px,transparent 2px),
    radial-gradient(circle,var(--blue) 2px,transparent 2px),
    radial-gradient(circle,var(--yellow) 2px,transparent 2px),
    radial-gradient(circle,var(--green) 2px,transparent 2px),
    radial-gradient(circle,var(--purple) 2px,transparent 2px);
  background-size:80px 80px,120px 120px,100px 100px,90px 90px,110px 110px;
  background-position:10px 10px,40px 60px,70px 20px,25px 80px,60px 45px;
  opacity:.15;pointer-events:none;
}
.hero-edition{
  display:inline-flex;
  align-items:center;gap:8px;
  background:white;
  border:1.5px solid var(--border);
  border-radius:30px;
  padding:7px 18px;
  font-size:13px;
  font-weight:700;color:var(--body);
  box-shadow:0 2px 12px rgba(0,0,0,.06);
}
.hero-edition .dot{width:8px;height:8px;border-radius:50%;background:var(--green);animation:pulse 1.5s infinite}
@keyframes pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.6}}
.hero h1{
  font-size:clamp(48px,8vw,100px);font-weight:900;line-height:1;
  letter-spacing:-.03em;margin-bottom:8px;
}

.hero h1 .yr{color:var(--blue)}
.hero-zh-title{
  font-family:'Noto Serif TC',serif;
  font-size:clamp(20px,3vw,36px);font-weight:900;
  color:var(--dark);margin-bottom:6px;
}
.hero-sub{
  font-family:'Noto Sans TC',sans-serif;
  font-size:clamp(20px,1.8vw,18px);color:var(--muted);font-weight:500;margin-bottom:32px;
}
.hero-meta{
  display:flex;align-items:center;justify-content:center;gap:28px;
  flex-wrap:wrap;margin-bottom:40px;
}
.hero-meta-item{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:15px;
  font-weight:700;
  font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
  color:var(--dark);
  background:rgba(255, 255, 255, 0);
  padding:10px 20px;
  border-radius:30px;
  border:1.5px solid var(--border);
  box-shadow:0 2px 12px rgba(0,0,0,.06);
}
.hero-meta-item .ico{
  font-size:18px
}
.hero-btns{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  justify-content:center;
  margin-bottom:56px
}
.btn{
  display:inline-block;
  text-decoration:none;
  border:none;
  cursor:pointer;
  font-family:inherit;
  transition:all .2s;
  border-radius:30px;
  font-weight:800;
  letter-spacing:.01em;
  font-size:15px
}
.btn-red{background:var(--red);color:white;padding:14px 32px}
.btn-red:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(232,25,44,.35)}
.btn-outline{background:white;color:var(--dark);padding:13px 30px;border:2px solid var(--border)}
.btn-outline:hover{border-color:var(--dark);transform:translateY(-1px)}