:root{
  --night:#2a1b5e; --night2:#1b1140; --ink:#2b1d4a; --paper:#fffaf0; --paper2:#fff3d6;
  --yellow:#ffd23f; --pink:#ff4fa3; --cyan:#3ec9ff; --green:#5fd35f; --orange:#ff8a3d;
  --flame:#b44dff; --text:#2b1d4a; --muted:#6b5f86;
  --head:"Dela Gothic One",system-ui,sans-serif;
  --body:"M PLUS Rounded 1c",system-ui,sans-serif;
  --hand:"Yusei Magic","M PLUS Rounded 1c",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;font-family:var(--body);font-weight:500;color:var(--text);background:var(--paper);line-height:1.8;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
b{font-weight:800}
.wrap{width:min(1120px,100% - 32px);margin-inline:auto}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--head);font-size:1.05rem;letter-spacing:.02em;text-decoration:none;padding:.85em 1.6em;border-radius:999px;border:3px solid var(--ink);box-shadow:0 5px 0 var(--ink);transition:transform .12s,box-shadow .12s;cursor:pointer}
.btn:hover{transform:translateY(2px);box-shadow:0 3px 0 var(--ink)}
.btn:active{transform:translateY(5px);box-shadow:0 0 0 var(--ink)}
.btn svg{width:1.4em;height:1.4em}
.btn-steam{background:var(--yellow);color:var(--ink)}
.btn-ghost{background:#fff;color:var(--ink)}
.btn-sm{font-size:.85rem;padding:.5em 1.1em;box-shadow:0 3px 0 var(--ink);border-width:2px}
.btn-wide{width:100%;justify-content:center}

/* ---------- nav ---------- */
.nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;gap:20px;padding:10px 20px;transition:background .25s,box-shadow .25s,transform .25s}
.nav.solid{background:rgba(27,17,64,.92);backdrop-filter:blur(8px);box-shadow:0 2px 0 rgba(0,0,0,.25)}
.nav-logo img{height:40px;width:auto;opacity:0;transition:opacity .25s}
.nav.solid .nav-logo img{opacity:1}
.nav-links{display:flex;gap:22px;margin-left:auto}
.nav-links a{color:#fff;text-decoration:none;font-weight:800;font-size:.92rem;text-shadow:0 2px 0 rgba(0,0,0,.35)}
.nav-links a:hover{color:var(--yellow)}

/* ---------- hero ---------- */
.hero{position:relative;min-height:min(100svh,960px);display:grid;place-items:center;overflow:hidden;background:var(--night)}
.hero-bg{position:absolute;inset:-6% 0 0;will-change:transform}
.hero-bg img{width:100%;height:112%;object-fit:cover;object-position:50% 35%}
.hero-shade{position:absolute;inset:0;background:radial-gradient(ellipse 60% 55% at 50% 52%,rgba(27,17,64,.62),rgba(27,17,64,.15) 70%,transparent),linear-gradient(to bottom,rgba(27,17,64,.35),transparent 25%,transparent 70%,rgba(27,17,64,.8))}
.hero-inner{position:relative;z-index:2;text-align:center;padding:110px 16px 90px;color:#fff}
.hero-logo{width:min(640px,88vw);margin:0 auto;filter:drop-shadow(0 8px 0 rgba(27,17,64,.55))}
.hero-copy{font-family:var(--head);font-size:clamp(1.7rem,4.6vw,3.2rem);line-height:1.35;margin:.5em 0 .2em;text-shadow:0 4px 0 var(--ink),3px 0 0 var(--ink),-3px 0 0 var(--ink),0 -3px 0 var(--ink)}
.marker{position:relative;z-index:0;display:inline-block;padding:0 .12em}
.marker::before{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.42em;background:var(--pink);border-radius:.2em;z-index:-1;transform-origin:left;transform:scaleX(0) rotate(-1.5deg);animation:mark .7s .9s cubic-bezier(.6,0,.2,1) forwards}
.marker.m2::before{background:var(--cyan);animation-delay:1.25s}
@keyframes mark{to{transform:scaleX(1) rotate(-1.5deg)}}
.hero-sub{font-family:var(--hand);font-size:clamp(1rem,2.2vw,1.35rem);margin:.2em 0 1.2em;text-shadow:0 2px 0 var(--ink)}
.hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.hero-meta{margin-top:1.2em;font-size:.88rem;font-weight:700;opacity:.92;text-shadow:0 2px 0 var(--ink)}
.hero-badge{position:absolute;z-index:3;right:clamp(14px,4vw,56px);bottom:clamp(70px,12vh,130px);width:150px;height:150px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#7a3bd6,#2b0f4f);border:4px solid var(--yellow);box-shadow:0 0 0 4px var(--ink),0 0 34px rgba(180,77,255,.8);color:#fff;text-decoration:none;display:grid;place-content:center;text-align:center;line-height:1.15;transform:rotate(8deg);animation:bob 3s ease-in-out infinite}
.hero-badge small{font-family:var(--head);color:var(--yellow);font-size:.75rem;letter-spacing:.15em}
.hero-badge b{font-family:var(--head);font-size:1.6rem}
.hero-badge span{font-weight:800;font-size:.82rem}
@keyframes bob{50%{transform:rotate(8deg) translateY(-8px)}}
.scroll-hint{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:#fff;font-family:var(--head);font-size:.7rem;letter-spacing:.3em;z-index:2;opacity:.8}
.scroll-hint::after{content:"";display:block;width:2px;height:28px;margin:6px auto 0;background:#fff;animation:drip 1.6s ease-in-out infinite;transform-origin:top}
@keyframes drip{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.pop-in{opacity:0;transform:translateY(18px) scale(.96);animation:pop .7s cubic-bezier(.2,1.4,.4,1) forwards}
.d1{animation-delay:.2s}.d2{animation-delay:.4s}.d3{animation-delay:.55s}.d4{animation-delay:.7s}
@keyframes pop{to{opacity:1;transform:none}}
.hero-badge.pop-in{animation:pop .7s .55s cubic-bezier(.2,1.4,.4,1) forwards,bob 3s 1.3s ease-in-out infinite}

/* ---------- marquee ---------- */
.marquee{background:var(--yellow);border-block:4px solid var(--ink);overflow:hidden;padding:10px 0}
.marquee-track{display:flex;gap:26px;width:max-content;animation:scroll 60s linear infinite}
.marquee-track img{height:86px;width:auto;filter:drop-shadow(0 3px 0 rgba(43,29,74,.25))}
.marquee-track img:nth-child(odd){transform:rotate(-6deg)}
.marquee-track img:nth-child(even){transform:rotate(5deg) translateY(4px)}
@keyframes scroll{to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
.sec{padding:clamp(70px,10vw,120px) 0;position:relative}
.paper{background-color:var(--paper2);background-image:linear-gradient(rgba(62,201,255,.18) 1px,transparent 1px);background-size:100% 34px}
.paper::before{content:"";position:absolute;top:0;bottom:0;left:clamp(10px,4vw,60px);width:2px;background:rgba(255,79,163,.35)}
.tape{position:relative;display:inline-block;font-family:var(--head);font-weight:400;font-size:clamp(1.6rem,3.6vw,2.4rem);margin:0 0 .9em;padding:.15em .7em .2em;background:var(--yellow);border:3px solid var(--ink);border-radius:6px;box-shadow:5px 5px 0 var(--ink);transform:rotate(-2deg)}
.tape span{display:block;font-size:.4em;letter-spacing:.3em;color:var(--pink);line-height:1.4}
.tape.t2{background:var(--cyan)}.tape.t2 span{color:#fff}
.tape.t3{background:var(--green);transform:rotate(1.5deg)}.tape.t3 span{color:#fff}
.tape.t4{background:var(--pink);color:#fff}.tape.t4 span{color:var(--yellow)}
.tape.t5{background:var(--orange);color:#fff;transform:rotate(1.5deg)}.tape.t5 span{color:var(--yellow)}
.tape.t6{background:#fff}
.lead{font-size:clamp(1.02rem,1.9vw,1.2rem);max-width:760px;margin:0 0 2.4em}

/* news */
.news{list-style:none;margin:0;padding:0;background:#fff;border:3px solid var(--ink);border-radius:14px;box-shadow:6px 6px 0 var(--ink)}
.news li{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:16px 22px;border-bottom:2px dashed rgba(43,29,74,.2)}
.news li:last-child{border-bottom:0}
.news time{font-family:var(--head);font-size:.85rem;color:var(--muted)}
.news a,.news span{flex:1 1 380px}
.news a{text-decoration:none;font-weight:700}
.news a:hover{color:var(--pink)}
.tag{font-style:normal;font-size:.72rem;font-weight:800;padding:.15em .8em;border-radius:999px;color:#fff;border:2px solid var(--ink)}
.t-up{background:var(--pink)}.t-mov{background:var(--cyan)}.t-info{background:var(--green)}

/* steps */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,3vw,36px)}
.step{position:relative;text-align:center}
.step-no{position:absolute;z-index:2;top:-18px;left:-10px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-family:var(--head);font-size:1.5rem;background:var(--pink);color:#fff;border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink)}
.step:nth-child(2) .step-no{background:var(--cyan)}
.step:nth-child(3) .step-no{background:var(--orange)}
.shot{margin:0;border:4px solid var(--ink);border-radius:12px;overflow:hidden;box-shadow:6px 6px 0 var(--ink);background:#fff}
.tilt-l{transform:rotate(-1.5deg)}.tilt-r{transform:rotate(1.5deg)}
.step h3{font-family:var(--head);font-weight:400;font-size:1.7rem;margin:.6em 0 .1em}
.step p{margin:0;font-size:.97rem}
.facts{margin-top:clamp(40px,6vw,70px);display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.fact{background:#fff;border:3px solid var(--ink);border-radius:16px;padding:18px 12px;text-align:center;box-shadow:0 5px 0 var(--ink)}
.fact b{display:block;font-family:var(--head);font-weight:400;font-size:clamp(2.2rem,5vw,3.2rem);line-height:1.1;color:var(--pink)}
.fact:nth-child(2) b{color:var(--cyan)}.fact:nth-child(3) b{color:var(--orange)}.fact:nth-child(4) b{color:var(--green)}
.fact span{display:block;font-weight:800}
.fact small{color:var(--muted);font-size:.78rem}

/* ---------- mega ---------- */
.mega{position:relative;overflow:hidden;color:#fff;padding:clamp(80px,11vw,140px) 0;background:#120a26}
.mega-bg{position:absolute;inset:-10% 0;will-change:transform}
.mega-bg img{width:100%;height:100%;object-fit:cover;opacity:.55}
.mega-shade{position:absolute;inset:0;background:linear-gradient(to bottom,#1b1140 0%,rgba(18,10,38,.55) 30%,rgba(18,10,38,.85) 70%,#120a26 100%),radial-gradient(ellipse at 50% 20%,rgba(180,77,255,.35),transparent 60%)}
.embers{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(2px 2px at 10% 80%,#d58cff,transparent),radial-gradient(3px 3px at 30% 90%,#ff7ad9,transparent),radial-gradient(2px 2px at 55% 85%,#c27bff,transparent),radial-gradient(3px 3px at 75% 95%,#ff8af0,transparent),radial-gradient(2px 2px at 90% 75%,#b44dff,transparent);background-size:100% 100%;animation:rise 7s linear infinite;opacity:.8}
@keyframes rise{from{transform:translateY(20%)}to{transform:translateY(-80%)}}
.mega-inner{position:relative;z-index:2;text-align:center}
.mega-eyebrow{display:inline-block;font-family:var(--head);font-size:.85rem;letter-spacing:.2em;color:var(--yellow);border:2px solid var(--yellow);border-radius:999px;padding:.3em 1.2em;margin:0}
.mega-title{width:min(760px,94%);margin:18px auto 6px;filter:drop-shadow(0 0 28px rgba(180,77,255,.7))}
.mega-copy{font-size:clamp(1.02rem,2vw,1.25rem);margin:0 0 2.4em;text-shadow:0 2px 6px rgba(0,0,0,.6)}
.boss{display:grid;grid-template-columns:1.35fr 1fr;gap:28px;align-items:center;text-align:left;margin-bottom:46px}
.boss-shot{margin:0;border-radius:14px;overflow:hidden;border:3px solid #b44dff;box-shadow:0 0 0 3px #000,0 0 40px rgba(180,77,255,.55)}
.boss-card{background:rgba(30,14,60,.78);border:2px solid rgba(213,140,255,.6);border-radius:16px;padding:24px 26px;backdrop-filter:blur(6px)}
.boss-kicker{margin:0;color:var(--yellow);font-weight:800;font-size:.85rem;letter-spacing:.15em}
.boss-card h3{font-family:var(--head);font-weight:400;font-size:clamp(1.6rem,3vw,2.2rem);margin:.1em 0 .5em;background:linear-gradient(180deg,#fff 30%,#e6b8ff);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 #3a0d63)}
.boss-card dl{margin:0 0 .8em}
.boss-card dl div{display:flex;gap:12px;align-items:center;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.15)}
.boss-card dt{width:3em;color:#d9c6ff;font-weight:800;font-size:.9rem}
.boss-card dd{margin:0;font-size:.92rem}
.boss-card p{margin:0;font-size:.93rem;color:#e7dcff}
.el{display:inline-block;font-family:var(--head);font-size:.85rem;padding:.05em .7em;border-radius:6px;margin-right:6px}
.el-dark{background:#3a1466;color:#e1b3ff;border:2px solid #b44dff}
.el-light{background:#fff7c2;color:#8a6200;border:2px solid #ffd23f}
.mega-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:left}
.mcard{background:rgba(30,14,60,.72);border:2px solid rgba(213,140,255,.4);border-radius:14px;overflow:hidden;transition:transform .2s,border-color .2s}
.mcard:hover{transform:translateY(-4px);border-color:#e1a8ff}
.mcard img{aspect-ratio:16/9;object-fit:cover;width:100%}
.mcard h4{font-family:var(--head);font-weight:400;font-size:1.12rem;margin:14px 16px 4px;color:var(--yellow)}
.mcard p{margin:0 16px 16px;font-size:.88rem;color:#e7dcff;line-height:1.7}

/* modes */
.modes{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.mode{background:#fff;border:3px solid var(--ink);border-radius:16px;overflow:hidden;box-shadow:6px 6px 0 var(--ink);display:grid;grid-template-rows:auto 1fr}
.mode img{aspect-ratio:16/8;object-fit:cover;width:100%;border-bottom:3px solid var(--ink)}
.mode div{padding:14px 20px 18px}
.mode h4{font-family:var(--head);font-weight:400;font-size:1.3rem;margin:0 0 .2em}
.mode p{margin:0;font-size:.94rem}

/* video */
.video{position:relative;aspect-ratio:16/9;border:4px solid var(--ink);border-radius:16px;overflow:hidden;box-shadow:8px 8px 0 var(--ink);background:#000}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-poster{all:unset;position:absolute;inset:0;cursor:pointer}
.video-poster img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.video-poster:hover img{transform:scale(1.03)}
.play{position:absolute;left:50%;top:50%;width:96px;height:96px;margin:-48px 0 0 -48px;border-radius:50%;background:var(--pink);border:4px solid #fff;box-shadow:0 0 0 4px var(--ink),0 8px 0 var(--ink)}
.play::after{content:"";position:absolute;left:38px;top:28px;border-left:30px solid #fff;border-block:20px solid transparent}
.video-cap{position:absolute;left:0;right:0;bottom:0;padding:40px 20px 16px;background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff;font-family:var(--head);font-size:clamp(.9rem,2vw,1.2rem)}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.g{display:block;border:3px solid var(--ink);border-radius:12px;overflow:hidden;box-shadow:4px 4px 0 var(--ink);transition:transform .15s}
.g:nth-child(odd){transform:rotate(-1deg)}.g:nth-child(even){transform:rotate(1deg)}
.g:hover{transform:rotate(0) scale(1.03);z-index:2;position:relative}
.g img{aspect-ratio:16/9;object-fit:cover;width:100%}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(18,10,38,.9);display:grid;place-items:center;padding:16px;cursor:zoom-out}
.lightbox[hidden]{display:none}
.lightbox img{max-height:90vh;border:4px solid #fff;border-radius:10px}

/* spec */
.spec-wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:start}
.spec dl{margin:0;background:#fff;border:3px solid var(--ink);border-radius:14px;box-shadow:6px 6px 0 var(--ink);overflow:hidden}
.spec dl div{display:grid;grid-template-columns:7.5em 1fr;border-bottom:2px dashed rgba(43,29,74,.18)}
.spec dl div:last-child{border-bottom:0}
.spec dt{padding:12px 16px;font-weight:800;background:var(--paper2);font-size:.9rem}
.spec dd{margin:0;padding:12px 16px;font-size:.93rem}
.buy{padding-top:clamp(0px,6vw,86px)}
.buy iframe{width:100%;max-width:646px;height:190px;border-radius:8px;margin-bottom:16px}
.wish{font-size:.88rem;color:var(--muted);text-align:center}

/* footer */
.foot{background:var(--night2);color:#d9d0f5;text-align:center;padding:56px 16px 40px}
.foot-logo{width:240px;margin:0 auto 18px}
.sns{display:flex;gap:14px;justify-content:center;margin-bottom:18px}
.sns a{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--night2);transition:transform .15s,background .15s}
.sns a:hover{transform:translateY(-3px);background:var(--yellow)}
.sns svg{width:24px;height:24px}
.contact{font-size:.88rem}
.contact a{color:var(--yellow)}
.copy{font-size:.75rem;opacity:.7;margin:.5em 0 0}

/* reveal */
.rise{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.9,.3,1)}
.rise.in{opacity:1;transform:none}
.tilt-l.in,.tilt-r.in{transform:none}
.step.rise.in .tilt-l{transform:rotate(-1.5deg)}
.step.rise.in .tilt-r{transform:rotate(1.5deg)}
.g.rise.in:nth-child(odd){transform:rotate(-1deg)}
.g.rise.in:nth-child(even){transform:rotate(1deg)}
.g.rise.in:hover{transform:rotate(0) scale(1.03)}

/* responsive */
@media (max-width:900px){
  .nav-links{display:none}
  .nav{justify-content:space-between}
  .steps,.mega-grid{grid-template-columns:1fr 1fr}
  .steps .step:last-child{grid-column:1/-1;max-width:520px;justify-self:center}
  .boss,.spec-wrap{grid-template-columns:1fr}
  .facts{grid-template-columns:repeat(2,1fr)}
  .gallery{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .steps,.mega-grid,.modes,.gallery{grid-template-columns:1fr}
  .hero-badge{width:112px;height:112px;bottom:auto;top:78px;right:12px}
  .hero-badge b{font-size:1.2rem}.hero-badge span{font-size:.68rem}
  .hero-inner{padding-top:140px}
  .btn{font-size:.95rem}
  .marquee-track img{height:64px}
  .spec dl div{grid-template-columns:6.2em 1fr}
  .paper::before{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .rise,.pop-in{opacity:1;transform:none}
  .marker::before{transform:scaleX(1) rotate(-1.5deg)}
}
