/* EDM 超絶特集：フェスの夕焼け（バイオレット→ピンク→オレンジ）＋シアン・ライムのネオン。ヒーローと劇場とマシンだけ濃い色、本文は明るく */
.p-edm{--ev:#7b2cff;--ev2:#4b12b8;--ep:#ff2d87;--eo:#ff8a00;--ec:#00d4ff;--el:#c6ff3d;--en:#160b33}
.p-edm .bc{display:none}
.p-edm .btn.ed-btn-main{color:#fff;border:0;background:linear-gradient(110deg,var(--ev),var(--ep) 55%,var(--eo));box-shadow:0 10px 24px -12px rgba(255,45,135,.8)}
.p-edm .btn.ed-btn-main:hover{color:#fff;filter:brightness(1.08)}
.ed-ghost{background:rgba(255,255,255,.14)!important;color:#fff!important;border-color:rgba(255,255,255,.55)!important;backdrop-filter:blur(4px)}
.ed-ghost:hover{background:rgba(255,255,255,.26)!important}
.ed-sub{max-width:860px;color:var(--tx2);margin:-4px 0 18px}
.ed-sub b{color:var(--ep)}
.ed-tag{display:inline-block;font:400 13px/1 var(--disp);letter-spacing:.22em;padding:6px 10px 5px;border-radius:6px;background:var(--en);color:var(--el);transform:rotate(-2deg)}
.ed-h3{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-size:20px;font-weight:900;margin:34px 0 12px}

/* ---------- HERO ---------- */
.ed-hero{position:relative;overflow:hidden;isolation:isolate;color:#fff;padding:clamp(54px,8vw,104px) 0 clamp(90px,10vw,130px);background:radial-gradient(800px 380px at 85% -10%,rgba(0,212,255,.45),transparent 60%),radial-gradient(700px 420px at 0 110%,rgba(255,138,0,.85),transparent 65%),linear-gradient(165deg,#2a0b6e 0%,var(--ev) 30%,var(--ep) 68%,#ff6a3d 100%)}
.ed-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 64px),repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 64px);mask:linear-gradient(transparent,#000 60%)}
.ed-beams{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.ed-beams i{position:absolute;bottom:-10%;left:50%;width:6px;height:140%;transform-origin:50% 100%;background:linear-gradient(to top,rgba(255,255,255,.9),rgba(0,212,255,.35) 40%,transparent 85%);filter:blur(1.5px);opacity:.55;animation:ed-beam 7s ease-in-out infinite alternate}
.ed-beams i:nth-child(1){left:12%;--a:-28deg;--b:8deg}
.ed-beams i:nth-child(2){left:30%;--a:18deg;--b:-22deg;animation-duration:5.5s;background:linear-gradient(to top,#fff,rgba(198,255,61,.45) 40%,transparent 85%)}
.ed-beams i:nth-child(3){left:50%;--a:-12deg;--b:26deg;animation-duration:8s}
.ed-beams i:nth-child(4){left:68%;--a:24deg;--b:-14deg;animation-duration:6.2s;background:linear-gradient(to top,#fff,rgba(255,45,135,.5) 40%,transparent 85%)}
.ed-beams i:nth-child(5){left:86%;--a:-20deg;--b:16deg;animation-duration:7.4s}
.ed-beams i:nth-child(6){left:42%;--a:32deg;--b:-30deg;animation-duration:9s;background:linear-gradient(to top,#fff,rgba(255,138,0,.5) 40%,transparent 85%)}
@keyframes ed-beam{from{transform:rotate(var(--a))}to{transform:rotate(var(--b))}}
.ed-eq{position:absolute;left:0;right:0;bottom:0;height:110px;z-index:-1;display:flex;align-items:flex-end;gap:3px;padding:0 3px;pointer-events:none;--amp:0}
.ed-eq i{flex:1;height:var(--h);transform-origin:bottom;border-radius:3px 3px 0 0;background:linear-gradient(to top,rgba(255,255,255,.55),rgba(255,255,255,.08));animation:ed-eqb 1.1s var(--d) ease-in-out infinite alternate}
@keyframes ed-eqb{from{transform:scaleY(calc(.15 + var(--amp) * .6))}to{transform:scaleY(calc(.65 + var(--amp) * .35))}}
.ed-hero-in{position:relative;max-width:920px}
.ed-k{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font:400 clamp(15px,1.8vw,19px)/1 var(--disp);letter-spacing:.3em}
.ed-live{font-size:13px;letter-spacing:.18em;padding:5px 9px 4px;border-radius:6px;background:#ff1744;box-shadow:0 0 0 0 rgba(255,23,68,.7);animation:ed-live 1.6s infinite}
@keyframes ed-live{70%{box-shadow:0 0 0 10px rgba(255,23,68,0)}}
.ed-bpm{display:inline-grid;place-items:center;width:58px;height:58px;border-radius:50%;border:2px solid rgba(255,255,255,.8);font-size:22px;letter-spacing:.02em;line-height:.9;animation:ed-pulse .46875s ease-out infinite}
.ed-bpm small{font-size:10px;letter-spacing:.12em}
@keyframes ed-pulse{0%{transform:scale(1.12);box-shadow:0 0 22px rgba(198,255,61,.8)}100%{transform:scale(1);box-shadow:0 0 0 rgba(198,255,61,0)}}
.ed-hero h1{font-size:clamp(46px,9.5vw,118px);font-weight:900;line-height:1;letter-spacing:-.02em;margin:16px 0 18px;text-shadow:0 8px 40px rgba(40,0,80,.45)}
.ed-hero h1 small{display:block;font-size:clamp(13px,1.6vw,17px);font-weight:700;letter-spacing:.04em;margin-bottom:12px;color:#ffe9f4;text-shadow:none;line-height:1.5}
.ed-hero h1 em{font-style:normal;display:inline-block;margin:0 .06em;background:linear-gradient(100deg,var(--el),#fff 30%,var(--ec) 60%,var(--el));background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:ed-shine 2.4s linear infinite;filter:drop-shadow(0 0 18px rgba(198,255,61,.55))}
@keyframes ed-shine{to{background-position:-200% 0}}
.ed-lead{font-size:clamp(15px,1.6vw,17.5px);line-height:1.95;color:#fff3f9;max-width:800px}
.ed-lead b{color:var(--el)}
.ed-hero .hero-btns{margin-top:26px}
.ed-hero .btn.ed-btn-main{background:#fff;color:var(--ev2);box-shadow:0 12px 30px -10px rgba(30,0,60,.6)}
.ed-hero .btn.ed-btn-main:hover{color:var(--ep)}
.ed-stats{display:flex;flex-wrap:wrap;gap:10px 30px;margin-top:30px}
.ed-stats dt{font:400 clamp(30px,4vw,44px)/1 var(--disp);letter-spacing:.03em}
.ed-stats dd{font:400 12px/1 var(--disp);letter-spacing:.22em;color:#ffd6ec;margin-top:4px}
.ed-rk{position:absolute;right:max(16px,calc(50% - 640px));bottom:28px;width:clamp(130px,19vw,240px);height:auto;filter:drop-shadow(0 14px 26px rgba(40,0,80,.45));animation:ed-bob .9375s ease-in-out infinite}
@keyframes ed-bob{50%{transform:translateY(-8px) rotate(-2deg)}}
@media(max-width:760px){.ed-rk{opacity:.4;bottom:auto;top:40px;right:-24px}.ed-bpm{width:48px;height:48px;font-size:18px}}

/* 目次 */
.ed-toc{display:flex;flex-wrap:wrap;gap:8px;padding:18px 0 6px}
.ed-toc a{flex:none;display:flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-weight:700;font-size:14px;transition:.2s}
.ed-toc a b{font:400 15px/1 var(--disp);color:var(--ep);letter-spacing:.06em}
.ed-toc a:hover{border-color:var(--ep);color:var(--ep);transform:translateY(-2px)}

/* ---------- MV シアター ---------- */
.ed-scenes{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-bottom:16px}
.ed-scenes button{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 14px 12px;border-radius:16px;text-align:left;background:radial-gradient(circle at 100% 0,rgba(255,45,135,.16) 0 42px,transparent 43px),var(--card);border:1px solid var(--line);transition:.2s;overflow:hidden}
.ed-scenes button:nth-child(2n){background:radial-gradient(circle at 100% 0,rgba(0,212,255,.18) 0 42px,transparent 43px),var(--card)}
.ed-scenes button:nth-child(3n){background:radial-gradient(circle at 100% 0,rgba(198,255,61,.3) 0 42px,transparent 43px),var(--card)}
.ed-scenes b{font-size:15.5px;font-weight:900}
.ed-scenes small{font-size:12px;color:var(--mut);line-height:1.55}
.ed-scenes span{display:inline-flex;align-items:center;gap:4px;margin-top:auto;font:400 13px/1 var(--disp);letter-spacing:.12em;color:var(--ep)}
.ed-scenes span svg{width:14px;height:14px}
.ed-scenes button:hover{transform:translateY(-3px);box-shadow:0 12px 26px -14px rgba(123,44,255,.5)}
.ed-scenes button[aria-pressed]{background:linear-gradient(130deg,var(--ev),var(--ep));color:#fff;border-color:transparent}
.ed-scenes button[aria-pressed] small,.ed-scenes button[aria-pressed] span{color:#ffe3f1}
.ed-th{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:18px;padding:clamp(12px,2vw,22px);border-radius:26px;background:radial-gradient(600px 260px at 20% 0,rgba(255,45,135,.32),transparent 70%),radial-gradient(500px 260px at 100% 100%,rgba(0,212,255,.22),transparent 70%),linear-gradient(180deg,#1d0f45,var(--en));box-shadow:0 30px 60px -20px rgba(43,12,110,.55),inset 0 0 0 1px rgba(0,212,255,.3)}
.ed-stage{position:relative;min-width:0}
.ed-screen{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#000;box-shadow:0 0 0 2px rgba(0,212,255,.6),0 0 40px rgba(0,212,255,.25),0 0 80px rgba(255,45,135,.2)}
.ed-screen iframe,#ed-player{position:absolute;inset:0;width:100%;height:100%;border:0}
.ed-poster{position:absolute;inset:0;z-index:1;display:grid;place-items:center;align-content:center;gap:8px;background:linear-gradient(rgba(30,0,60,.25),rgba(30,0,60,.55)),var(--img) center/cover;color:#fff}
.ed-poster i{display:grid;place-items:center;width:clamp(64px,9vw,96px);height:clamp(64px,9vw,96px);border-radius:50%;background:linear-gradient(130deg,var(--ev),var(--ep));font-size:clamp(28px,4vw,44px);box-shadow:0 0 0 8px rgba(255,45,135,.3),0 10px 30px rgba(0,0,0,.5);transition:.2s}
.ed-poster i svg{width:.9em;height:.9em}
.ed-poster span{font:400 18px/1 var(--disp);letter-spacing:.4em}
.ed-poster:hover i{transform:scale(1.08);box-shadow:0 0 0 14px rgba(255,45,135,.25),0 10px 30px rgba(0,0,0,.5)}
.ed-poster[hidden]{display:none}
.ed-now{margin-top:16px;padding:16px 18px;border-radius:16px;background:rgba(255,255,255,.06);color:#efeaff;border:1px solid rgba(255,255,255,.1)}
.ed-now.flash{animation:ed-flash .6s}
@keyframes ed-flash{from{background:rgba(0,212,255,.28)}}
.ed-now-k{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font:400 14px/1 var(--disp);letter-spacing:.22em;color:var(--ec)}
.ed-dot{width:9px;height:9px;border-radius:50%;background:#ff1744;box-shadow:0 0 10px #ff1744;animation:ed-live 1.6s infinite}
.ed-scene-l{margin-left:auto;padding:4px 8px 3px;border-radius:6px;background:var(--el);color:var(--en);letter-spacing:.08em;font-family:var(--jp);font-size:12px;font-weight:900}
.ed-now h3{font:900 clamp(24px,2.8vw,34px)/1.15 var(--jp);margin:8px 0 2px;color:#fff;letter-spacing:-.01em}
.ed-now-a{font-size:14px;color:#c9c0e6}
.ed-pts-h{margin-top:12px;font-size:12px;font-weight:900;color:var(--el);letter-spacing:.1em}
.ed-pts li{position:relative;padding-left:22px;margin-top:6px;font-size:14.5px;line-height:1.75}
.ed-pts li::before{content:"";position:absolute;left:2px;top:.62em;width:10px;height:10px;background:var(--ep);clip-path:polygon(0 0,100% 50%,0 100%)}
.ed-now-b{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:12px}
.ed-now-b .tlink{color:var(--ec)}
.ed-now-b [hidden]{display:none}
.ed-pl{display:flex;flex-direction:column;min-width:0;min-height:0}
.ed-ctl{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ed-ctl .btn{padding:9px 16px;font-size:13.5px}
.ed-ctl .btn:not(.ed-btn-main){background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.25)}
.ed-auto{font-size:13px;color:#c9c0e6;display:flex;gap:6px;align-items:center;cursor:pointer}
.ed-auto input{accent-color:var(--ep)}
.ed-cats{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.ed-cats button{padding:5px 12px;border-radius:999px;font-size:12.5px;font-weight:700;color:#e4defa;border:1px solid rgba(255,255,255,.2)}
.ed-cats button[aria-selected=true]{background:var(--ep);border-color:var(--ep);color:#fff;box-shadow:0 0 14px rgba(255,45,135,.6)}
.ed-list{flex:1;overflow:auto;max-height:640px;display:grid;gap:6px;align-content:start;padding-right:4px;scrollbar-width:thin;scrollbar-color:rgba(0,212,255,.4) transparent}
.ed-list li[hidden]{display:none}
.ed-list button{width:100%;display:grid;grid-template-columns:24px 96px 1fr;gap:10px;align-items:center;text-align:left;padding:7px;border-radius:12px;color:#efeaff;transition:.15s}
.ed-list button:hover{background:rgba(255,255,255,.07)}
.ed-list button[aria-current]{background:linear-gradient(90deg,rgba(255,45,135,.5),rgba(123,44,255,.2));box-shadow:0 0 0 1px rgba(255,45,135,.6)}
.ed-n{font:400 17px/1 var(--disp);color:var(--ec);text-align:center}
.ed-list img{width:96px;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:7px}
.ed-li{min-width:0;line-height:1.35}
.ed-li b{display:block;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-li small{display:block;font-size:11.5px;color:#b4abd4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-li em{font-style:normal;font-size:11px;color:var(--el)}
@media(max-width:900px){.ed-th{grid-template-columns:1fr}.ed-list{max-height:420px}}

/* ---------- 爆上げ 4選 ---------- */
.ed-big{padding:clamp(40px,6vw,80px) 0;background:linear-gradient(180deg,transparent,rgba(255,45,135,.06) 15%,rgba(255,138,0,.07) 85%,transparent)}
.ed-memo{position:relative;max-width:820px;margin:0 0 26px;padding:22px 24px 18px;border-radius:6px;background:#fffdf4;box-shadow:0 14px 30px -18px rgba(80,40,0,.35);transform:rotate(-.4deg)}
.ed-memo::before{content:"";position:absolute;top:-12px;left:50%;width:120px;height:26px;transform:translateX(-50%) rotate(2deg);background:repeating-linear-gradient(45deg,rgba(255,45,135,.45) 0 8px,rgba(255,45,135,.3) 8px 16px);opacity:.85}
.ed-memo p{line-height:1.95}
.ed-memo p+p{margin-top:8px}
.ed-memo b{background:linear-gradient(transparent 60%,rgba(198,255,61,.8) 60%)}
.ed-memo-sig{text-align:right;font-weight:700;color:var(--mut)}
.ed-bgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:1100px){.ed-bgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.ed-bgrid{grid-template-columns:1fr}}
.ed-bcard{position:relative;display:flex;flex-direction:column;border-radius:22px;overflow:hidden;background:var(--card);border:1px solid var(--line);box-shadow:0 20px 40px -26px rgba(60,10,80,.45);transition:.25s}
.ed-bcard:hover{transform:translateY(-4px);box-shadow:0 26px 46px -24px rgba(123,44,255,.5)}
.c-gold{--cc:#ffb800}.c-pink{--cc:#ff2d87}.c-cyan{--cc:#00b8e6}.c-violet{--cc:#7b2cff}
.ed-bimg{position:relative;aspect-ratio:16/10;overflow:hidden;background:#000}
.ed-bimg img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.ed-bcard:hover .ed-bimg img{transform:scale(1.05)}
.ed-bn{position:absolute;left:12px;top:6px;font:400 64px/1 var(--disp);color:#fff;-webkit-text-stroke:2px var(--cc);text-shadow:0 0 18px var(--cc)}
.ed-bplay{position:absolute;right:14px;bottom:14px;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--cc);color:#fff;font-size:26px;box-shadow:0 0 0 6px color-mix(in srgb,var(--cc) 35%,transparent);transition:.2s}
.ed-bplay svg{width:26px;height:26px}
.ed-bplay:hover{transform:scale(1.1)}
.ed-btx{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1;background:radial-gradient(circle at 100% 100%,color-mix(in srgb,var(--cc) 14%,transparent) 0 60px,transparent 61px)}
.ed-btx h3 b{display:block;font:900 24px/1.15 var(--jp)}
.ed-btx h3 small{display:block;font-size:12.5px;color:var(--mut);font-weight:700;margin-top:2px}
.ed-btx p{font-size:14.5px;line-height:1.85}
.ed-blinks{display:flex;flex-direction:column;gap:4px;margin-top:auto}
.ed-bset{text-align:center;margin-top:24px}

/* ---------- アヴィーチー ---------- */
.ed-av{scroll-margin-top:84px}
.ed-av-top{display:grid;grid-template-columns:1.3fr 1fr;gap:22px;align-items:start}
.ed-av-lead{padding:26px 28px;border-radius:24px;color:#fff;background:radial-gradient(400px 200px at 100% 0,rgba(0,212,255,.35),transparent 70%),linear-gradient(140deg,#0b2a4a,#123d6b 50%,#1c5a8a);box-shadow:0 24px 50px -28px rgba(10,40,80,.6)}
.ed-av-lead p{line-height:1.95;color:#e6f2ff}
.ed-av-name{font:400 clamp(52px,7vw,84px)/.9 var(--disp)!important;letter-spacing:.08em;color:#fff!important;margin-bottom:14px;text-shadow:0 0 30px rgba(0,212,255,.6)}
.ed-av-name small{display:block;font-size:14px;letter-spacing:.22em;color:var(--ec);margin-top:6px}
.ed-av-wake{padding:20px;border-radius:22px;background:var(--card);border:1px solid var(--line);display:grid;gap:12px}
.ed-ph{padding:10px 12px;border-radius:12px;background:#f5f2ff}
.ed-ph p{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.ed-ph b{font-size:17px;color:var(--ev2)}
.ed-ph span{font-weight:700;font-size:14px}
.ed-ph small{display:block;font-size:12.5px;color:var(--mut);line-height:1.6;margin-top:2px}
.ed-tl{position:relative;margin:30px 0 0;display:grid;gap:14px;padding-left:4px}
.ed-tl::before{content:"";position:absolute;left:47px;top:10px;bottom:10px;width:2px;background:linear-gradient(var(--ec),var(--ev),var(--ep))}
.ed-tl li{position:relative;display:grid;grid-template-columns:88px 1fr;gap:16px;align-items:start}
.ed-tl-y{position:relative;z-index:1;justify-self:center;font:400 17px/1 var(--disp);letter-spacing:.06em;padding:8px 10px 7px;border-radius:999px;background:var(--en);color:var(--ec);box-shadow:0 0 0 4px var(--bg)}
.ed-tl li>div{padding:12px 16px;border-radius:16px;background:var(--card);border:1px solid var(--line)}
.ed-tl h3{font-size:16.5px;font-weight:900}
.ed-tl p{font-size:14.5px;line-height:1.85;color:var(--tx2);margin-top:2px}
.ed-scs{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.ed-sc{position:relative;border-radius:16px;overflow:hidden;background:var(--card);border:1px solid var(--line);transition:.2s}
.ed-sc:hover{transform:translateY(-3px);box-shadow:0 14px 28px -16px rgba(60,10,80,.4)}
.ed-sc-a{display:block}
.ed-sc img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.ed-sc-a span{display:block;padding:10px 12px 12px}
.ed-sc-a b{display:block;font-size:15px;line-height:1.3}
.ed-sc-a small{display:block;font-size:12px;color:var(--mut);margin-top:2px;line-height:1.5}
.ed-sc-p{position:absolute;right:10px;top:10px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgba(22,11,51,.75);color:#fff;backdrop-filter:blur(4px);transition:.2s}
.ed-sc-p svg{width:18px;height:18px}
.ed-sc-p:hover{background:var(--ep)}
.ed-care{margin-top:26px;padding:18px 22px;border-radius:18px;background:#f1f8ff;border:1px solid #cfe4f7}
.ed-care-h{font-weight:900;color:#124e85;margin-bottom:4px}
.ed-care p{font-size:14px;line-height:1.85}
.ed-care-t{margin-top:6px}
.ed-care-t a{color:#124e85;font-weight:700;text-decoration:underline}
@media(max-width:820px){.ed-av-top{grid-template-columns:1fr}.ed-tl::before{left:35px}.ed-tl li{grid-template-columns:70px 1fr;gap:10px}.ed-tl-y{font-size:14px;padding:6px 8px 5px}}

/* ---------- ゲッタ ---------- */
.ed-gu{padding:clamp(40px,6vw,80px) 0;background:linear-gradient(180deg,rgba(123,44,255,.06),rgba(0,212,255,.05) 80%,transparent);scroll-margin-top:84px}
.ed-gu-top{display:grid;grid-template-columns:1fr 1.15fr;gap:22px;align-items:start}
.ed-gu-top>div{padding:26px 28px;border-radius:24px;color:#fff;background:radial-gradient(400px 220px at 0 0,rgba(255,45,135,.4),transparent 70%),linear-gradient(140deg,#16093b,#3b1585 60%,#5b1bb0)}
.ed-gu-top>div p{line-height:1.95;color:#ece4ff}
.ed-gu-name{font:400 clamp(44px,6vw,72px)/.92 var(--disp)!important;letter-spacing:.06em;color:#fff!important;margin-bottom:14px;text-shadow:0 0 30px rgba(255,45,135,.6)}
.ed-gu-name small{display:block;font-size:14px;letter-spacing:.22em;color:var(--el);margin-top:6px}
.ed-gfacts{display:grid;gap:10px}
.ed-gfacts li{display:grid;grid-template-columns:auto 1fr;gap:2px 14px;padding:12px 16px;border-radius:16px;background:var(--card);border:1px solid var(--line)}
.ed-gfacts span{grid-row:span 2;font:400 34px/1 var(--disp);color:transparent;-webkit-text-stroke:1.5px var(--ev)}
.ed-gfacts b{font-size:15.5px}
.ed-gfacts p{font-size:14px;line-height:1.8;color:var(--tx2)}
.ed-ti{margin-top:24px;padding:22px;border-radius:24px;background:linear-gradient(135deg,#eef3f7,#fff 50%,#e9eef3);border:1px solid #d5dee6;box-shadow:inset 0 1px 0 #fff,0 18px 40px -28px rgba(40,60,80,.45)}
.ed-ti-h{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:14px}
.ed-ti-h h3{font:900 26px/1.1 var(--jp);background:linear-gradient(100deg,#5d6b78,#c9d3dc 40%,#58636e 70%,#aab6c1);-webkit-background-clip:text;background-clip:text;color:transparent;margin-right:auto}
.ed-ti-h h3 small{font-size:13px;color:var(--mut);-webkit-text-fill-color:var(--mut);font-weight:700}
.ed-ti-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.ed-ti .ed-ph{background:#fff}
@media(max-width:820px){.ed-gu-top{grid-template-columns:1fr}}

/* ---------- しくみ講座 & ドロップ体験マシン ---------- */
.ed-map{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}
.ed-map li{flex:var(--w) 1 0;min-width:150px;padding:14px 14px 12px;border-radius:14px;color:#fff;display:flex;flex-direction:column;gap:2px}
.ed-map b{font:400 20px/1 var(--disp);letter-spacing:.1em}
.ed-map span{font-weight:900;font-size:14px}
.ed-map small{font-size:12.5px;line-height:1.6;opacity:.95}
.ed-map .m-intro{background:#5a5f80}.ed-map .m-verse{background:#3d7fd6}.ed-map .m-build{background:linear-gradient(90deg,#ff8a00,#ff2d87)}.ed-map .m-drop{background:linear-gradient(130deg,var(--ev),var(--ep));box-shadow:0 0 24px rgba(255,45,135,.5)}.ed-map .m-break{background:#2aa38a}
.ed-mc{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:18px;padding:clamp(12px,2vw,20px);border-radius:26px;background:linear-gradient(180deg,#1d0f45,var(--en));box-shadow:0 30px 60px -20px rgba(43,12,110,.55),inset 0 0 0 1px rgba(198,255,61,.3);color:#fff;--heat:0;transition:box-shadow .3s}
.ed-mc.playing{box-shadow:0 30px 60px -20px rgba(43,12,110,.55),inset 0 0 0 1px rgba(198,255,61,.6),0 0 calc(var(--heat) * 60px) rgba(255,45,135,calc(var(--heat) * .8))}
.ed-mc-scr{position:relative;min-height:280px;border-radius:16px;overflow:hidden;background:radial-gradient(ellipse at 50% 120%,rgba(255,45,135,calc(.15 + var(--heat) * .5)),transparent 70%),#0b0620;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.ed-mc.playing .ed-mc-scr{animation:ed-shakeS .2s infinite paused}
.ed-mc.dropped .ed-mc-scr{animation:ed-drop .46875s ease-out infinite}
@keyframes ed-drop{0%{background-color:#3b0f5e;transform:scale(1.012)}100%{background-color:#0b0620;transform:none}}
#ed-viz{position:absolute;inset:0;width:100%;height:100%}
.ed-mc-ph{position:absolute;left:0;right:0;top:22%;text-align:center;font:400 clamp(40px,7vw,78px)/1 var(--disp);letter-spacing:.12em;text-shadow:0 0 30px rgba(198,255,61,.6)}
.ed-mc.dropped .ed-mc-ph{color:var(--el);animation:ed-pop .46875s ease-out infinite}
@keyframes ed-pop{0%{transform:scale(1.15)}100%{transform:scale(1)}}
.ed-mc-cnt{position:absolute;left:0;right:0;top:52%;text-align:center;font:400 clamp(30px,5vw,54px)/1 var(--disp);color:var(--eo)}
.ed-mc-bar{position:absolute;left:14px;right:14px;bottom:14px;height:6px;border-radius:3px;background:rgba(255,255,255,.12);overflow:hidden}
.ed-mc-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--ec),var(--ep),var(--el))}
.ed-mc-ctl{display:flex;flex-direction:column;gap:14px}
.ed-pre{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ed-pre button{display:flex;flex-direction:column;align-items:flex-start;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.18);color:#fff;text-align:left;transition:.15s}
.ed-pre button b{font-size:14px}
.ed-pre button small{font:400 13px/1.2 var(--disp);letter-spacing:.1em;color:var(--ec)}
.ed-pre button:hover{background:rgba(255,255,255,.08)}
.ed-pre button[aria-checked=true]{background:linear-gradient(130deg,var(--ev),var(--ep));border-color:transparent;box-shadow:0 0 18px rgba(255,45,135,.5)}
.ed-pre button[aria-checked=true] small{color:#fff}
.ed-mc-b{display:flex;flex-wrap:wrap;gap:8px}
.ed-mc-b .btn:not(.ed-btn-main){background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.25)}
.ed-mc-b .btn:disabled{opacity:.45;cursor:default;transform:none}
.ed-mc .note{color:#b4abd4}
@media(max-width:860px){.ed-mc{grid-template-columns:1fr}.ed-mc-scr{min-height:220px}}

/* ---------- ジャンル図鑑 ---------- */
.ed-gen{padding:clamp(40px,6vw,80px) 0;background:linear-gradient(180deg,transparent,rgba(0,212,255,.06) 20%,rgba(198,255,61,.08) 85%,transparent);scroll-margin-top:84px}
.ed-ggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.ed-g{position:relative;display:flex;flex-direction:column;gap:6px;padding:18px 18px 16px;border-radius:20px;background:var(--card);border:1px solid var(--line);overflow:hidden;--gc:var(--ep)}
.ed-g.g1{--gc:var(--ev)}.ed-g.g2{--gc:#00a8d6}.ed-g.g3{--gc:#ff8a00}.ed-g.g4{--gc:#3aa000}
.ed-g::before{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:color-mix(in srgb,var(--gc) 16%,transparent)}
.ed-g-bpm{position:relative;font:400 13px/1 var(--disp);letter-spacing:.12em;color:var(--gc)}
.ed-g-bpm b{font-size:30px;letter-spacing:.02em;margin-right:4px}
.ed-g h3{font-size:18px;font-weight:900;line-height:1.3}
.ed-g h3 small{display:block;font:400 14px/1.2 var(--disp);letter-spacing:.14em;color:var(--mut)}
.ed-g>p{font-size:14px;line-height:1.8;color:var(--tx2)}
.ed-g-s{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-right:50px}
.ed-g-c{display:inline-flex;flex-direction:column;padding:5px 10px;border-radius:10px;background:color-mix(in srgb,var(--gc) 10%,#fff);font-size:13px;font-weight:700;line-height:1.3}
.ed-g-c a{color:var(--tx);text-decoration:underline;text-decoration-color:var(--gc)}
.ed-g-c small{font-size:11px;font-weight:400;color:var(--mut)}
.ed-g-p{position:absolute;right:14px;bottom:14px;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--gc);color:#fff;box-shadow:0 0 0 5px color-mix(in srgb,var(--gc) 25%,transparent);transition:.2s}
.ed-g-p svg{width:20px;height:20px}
.ed-g-p:hover{transform:scale(1.1)}

/* ---------- 英語講座 ---------- */
.ed-lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.ed-l{position:relative;display:flex;flex-direction:column;gap:8px;padding:30px 20px 18px;border-radius:20px;background:var(--card);border:1px solid var(--line);margin-top:12px}
.ed-l-n{position:absolute;top:-13px;left:16px;display:flex;align-items:center;gap:6px;font:400 13px/1 var(--disp);letter-spacing:.2em;padding:7px 12px 6px;border-radius:8px;background:linear-gradient(130deg,var(--ev),var(--ep));color:#fff}
.ed-l-n b{font-size:18px;letter-spacing:.02em}
.ed-l h3{font-size:21px;font-weight:900;color:var(--ev2)}
.ed-l-sub{font-weight:700;color:var(--ep);font-size:14px}
.ed-l-sub span{display:block;font-size:12px;color:var(--mut);font-weight:400}
.ed-l-sub a{color:var(--ev2);text-decoration:underline}
.ed-l>p{font-size:14.5px;line-height:1.85}
.ed-l ul{display:grid;gap:6px}
.ed-l li{padding:8px 12px;border-radius:10px;background:#f5f2ff}
.ed-l li b{font-size:15px}.ed-l li small{display:block;color:var(--mut)}
.ed-l details{margin-top:auto;border-top:1px dashed var(--line);padding-top:10px}
.ed-l summary{cursor:pointer;font-weight:700;color:var(--ev2)}
.ed-l details p{margin-top:6px;padding:8px 12px;border-radius:10px;background:#f2ffd9;font-weight:700}
.ed-words{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.ed-w{display:flex!important;flex-direction:column;align-items:flex-start;width:auto!important;height:auto!important;padding:10px 14px!important;border-radius:12px!important;background:var(--card)!important;border:1px solid var(--line)!important;text-align:left;color:var(--tx)!important}
.ed-w b{font-size:16px}.ed-w span{font-size:12.5px;color:var(--mut)}
.ed-w:hover,.ed-w.on{border-color:var(--ep)!important;background:#fff0f7!important}

/* ---------- ゲーム ---------- */
.ed-games{padding:clamp(40px,6vw,80px) 0;background:linear-gradient(180deg,rgba(123,44,255,.07),transparent)}
.ed-ggrid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:start}
.ed-gm{min-height:320px;width:100%;border-color:#e2d6fb;background:radial-gradient(circle at 50% 0,rgba(123,44,255,.1),transparent 65%),var(--card)}
.ed-gm .q-n{color:var(--ep)}
.ed-catch,.ed-tap{background:radial-gradient(circle at 50% 0,rgba(255,45,135,.22),transparent 65%),linear-gradient(180deg,#1d0f45,var(--en));color:#fff;border-color:transparent}
.ed-catch .note,.ed-tap .note{color:#cfc6ee}
.ed-catch .q-t,.ed-tap .q-t{color:#fff}
.ed-catch-in{display:grid;place-items:center;gap:8px;min-height:150px;width:100%}
.ed-c-k{font:400 15px/1 var(--disp);letter-spacing:.22em;color:var(--ec)}
.ed-c-btn{display:grid;place-items:center;gap:2px;width:min(240px,100%);aspect-ratio:1.8;border-radius:22px;background:linear-gradient(130deg,var(--ev),var(--ep) 55%,var(--eo));color:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.12),0 0 40px rgba(255,45,135,.5);transition:transform .08s}
.ed-c-btn b{font:400 44px/1 var(--disp);letter-spacing:.1em}
.ed-c-btn small{font-size:12px}
.ed-c-btn:active{transform:scale(.96)}
.ed-c-h{font-size:13px;color:#cfc6ee}
.ed-c-r{font:400 clamp(44px,7vw,64px)/1 var(--disp);letter-spacing:.08em}
.r-perfect{color:var(--el);text-shadow:0 0 24px rgba(198,255,61,.7)}.r-great{color:var(--ec)}.r-good{color:#ffd166}.r-ok{color:var(--eo)}.r-miss{color:#ff6b8b}
.ed-c-ms{font-weight:700}
.ed-c-sc{font:400 22px/1 var(--disp);color:var(--el)}
.ed-c-list{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:6px 0}
.ed-c-list span{display:flex;flex-direction:column;align-items:center;padding:6px 10px;border-radius:10px;background:rgba(255,255,255,.08);font:400 18px/1 var(--disp);letter-spacing:.06em}
.ed-c-list small{font-size:11px;font-family:var(--jp);color:#cfc6ee;margin-top:3px}
.ed-best{font-size:13px;color:var(--el);margin-top:6px}
.ed-catch .q-score{color:#fff}
.ed-pad{display:grid;place-items:center;align-content:center;width:min(220px,100%);aspect-ratio:1;border-radius:28px;margin:6px auto;background:radial-gradient(circle,rgba(0,212,255,.35),rgba(123,44,255,.25) 60%,transparent),#120936;box-shadow:0 0 0 2px rgba(0,212,255,.6),inset 0 0 40px rgba(0,212,255,.25);color:#fff;touch-action:manipulation;user-select:none}
.ed-pad b{font:400 64px/1 var(--disp);letter-spacing:.04em}
.ed-pad small{font-size:12.5px;color:#cfc6ee}
.ed-pad.hit{animation:ed-hit .18s ease-out}
@keyframes ed-hit{0%{transform:scale(.94);box-shadow:0 0 0 2px var(--el),0 0 50px rgba(198,255,61,.7),inset 0 0 40px rgba(198,255,61,.5)}}
.ed-tap-r{min-height:3.2em;font-size:14px;line-height:1.7;color:#efeaff}
.ed-tap-r b{color:var(--el);font-size:16px}
.ed-tap-r .tlink{color:var(--ec)}
.ed-tap .btn{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.25)}
.ed-qt{font-size:clamp(17px,2vw,21px)!important}
.ed-why{font-size:14px;color:var(--tx2);margin-bottom:10px;text-align:left;padding:10px 14px;border-radius:10px;background:#f5f2ff}
.ed-gm .q-after{width:100%}
.ed-mvo{grid-template-columns:1fr 1fr}
.ed-mvo button{padding:8px!important;display:flex;flex-direction:column;gap:2px;font-size:13px!important;text-align:left}
.ed-mvo img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:8px;margin-bottom:4px}
.ed-mvo small{color:var(--mut);font-weight:400}
.ed-mvo .ok small,.ed-mvo .ng small{color:#fff}

@media(prefers-reduced-motion:reduce){.ed-beams i,.ed-eq i,.ed-live,.ed-bpm,.ed-hero h1 em,.ed-rk,.ed-dot,.ed-mc.dropped .ed-mc-scr,.ed-mc.dropped .ed-mc-ph{animation:none}}
