/* 洋楽リンク集（/links/）：カテゴリーごとにネオンカラー、スタンプ・診断・ミッション・クイズ */
.p-links{--c:var(--hot)}
.c-chart{--c:#e8174f;--c2:#ffe1ea}.c-stream{--c:#0a9fd6;--c2:#dcf3fc}.c-karaoke{--c:#d99100;--c2:#fff1c9}.c-tv{--c:#7b3fe4;--c2:#ece2ff}.c-radio{--c:#12a36b;--c2:#d9f6e9}.c-dig{--c:#ff6a1a;--c2:#ffe6d6}.c-dict{--c:#1c1a21;--c2:#eee}

/* ヒーロー */
.lx-hero{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(115deg,#ff2e63 0%,#ff6a3d 38%,#f5b82e 72%,#ffe08a 100%);color:#1a0710;padding:clamp(40px,6vw,80px) 0 clamp(30px,4vw,52px)}
.lx-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:repeating-radial-gradient(circle at 110% 120%,rgba(0,0,0,.09) 0 2px,transparent 2px 14px)}
.lx-eq{position:absolute;left:0;right:0;bottom:0;height:110px;display:flex;align-items:flex-end;gap:6px;padding:0 10px;z-index:-1;opacity:.28}
.lx-eq i{flex:1;height:var(--h);background:#fff;border-radius:4px 4px 0 0;transform-origin:bottom;animation:lxeq 1.2s ease-in-out var(--d) infinite alternate}
@keyframes lxeq{from{transform:scaleY(.25)}to{transform:scaleY(1)}}
@media(prefers-reduced-motion:reduce){.lx-eq i{animation:none}}
.lx-rk{position:absolute;right:max(10px,calc(50% - 640px));top:22px;width:clamp(120px,20vw,260px);height:auto;filter:drop-shadow(0 18px 30px rgba(80,20,10,.35));animation:lxbob 3.2s ease-in-out infinite}
@keyframes lxbob{50%{transform:translateY(-10px) rotate(-3deg)}}
.lx-hero-in{position:relative}
.lx-k{font:400 clamp(14px,1.6vw,18px)/1 var(--disp);letter-spacing:.24em}
.lx-hero h1{font-size:clamp(42px,8vw,96px);font-weight:900;line-height:1.02;letter-spacing:-.03em;margin:10px 0 16px;max-width:15em;text-shadow:0 3px 0 rgba(255,255,255,.35)}
.lx-hero h1 small{display:block;font-size:clamp(14px,1.7vw,19px);letter-spacing:0;font-weight:700;margin-top:12px;line-height:1.5;max-width:34em}
.lx-lead{max-width:44em;font-size:clamp(14.5px,1.5vw,16.5px);font-weight:500;line-height:1.85}
.lx-lead b{background:rgba(255,255,255,.55);padding:0 4px;border-radius:4px}
@media(max-width:700px){.lx-rk{top:auto;bottom:10px;right:6px;width:96px;opacity:.95}.lx-hero h1{max-width:none}.dig-meter{margin-right:92px}}

/* ディグ・メーター */
.dig-meter{margin-top:22px;max-width:520px;background:#1c1a21;color:#fff;border-radius:16px;padding:14px 18px 12px;box-shadow:0 14px 34px rgba(60,10,10,.3)}
.dm-top{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.dm-rank{font:400 26px/1 var(--disp);letter-spacing:.08em;color:var(--sun)}
.dm-ja{font-weight:900;font-size:14px}
.dm-n{margin-left:auto;font:400 15px/1 var(--disp);letter-spacing:.12em;color:#cfc8d8}.dm-n b{font-size:24px;color:#fff;font-weight:400}
.dm-bar{height:10px;border-radius:99px;background:#3a3542;margin:10px 0 6px;overflow:hidden}
.dm-bar i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#ff2e63,#ff8a3c,#f5b82e);transition:width .8s cubic-bezier(.3,1.4,.5,1)}
.dm-next{font-size:12.5px;color:#cfc8d8}

/* カテゴリーのジャンプ */
.lx-cats{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.lx-cats a{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:99px;background:var(--card);border:1px solid var(--line);font-weight:700;font-size:14px;transition:.2s}
.lx-cats a i{width:10px;height:10px;border-radius:50%;background:var(--c)}
.lx-cats a small{font:400 13px/1 var(--disp);letter-spacing:.08em;color:var(--mut)}
.lx-cats a:hover{background:var(--c);color:#fff;border-color:var(--c);transform:translateY(-2px)}.lx-cats a:hover i{background:#fff}.lx-cats a:hover small{color:#fff}
.lx-intro{color:var(--tx2);max-width:46em;margin:-8px 0 20px}

/* 入口診断 */
.rt-btns{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.rt-btns button{display:flex;align-items:center;gap:12px;text-align:left;padding:14px 16px;border-radius:14px;border:2px solid var(--line);background:var(--card);font-weight:900;font-size:15px;line-height:1.4;transition:.2s}
.rt-btns button span{font-size:26px;flex:none}
.rt-btns button:hover{border-color:var(--hot);transform:translateY(-2px)}
.rt-btns button.on{background:#1c1a21;color:#fff;border-color:#1c1a21}
.rt-out{margin-top:18px;border-radius:18px;padding:22px clamp(18px,3vw,30px);background:linear-gradient(135deg,#1c1a21,#3c1f45);color:#fff;animation:lxpop .45s cubic-bezier(.3,1.5,.5,1)}
@keyframes lxpop{from{opacity:0;transform:translateY(10px) scale(.98)}}
.rt-out h3{font-size:clamp(19px,2.4vw,24px);font-weight:900;margin-bottom:4px}
.rt-out>p{color:#e2dbe8;font-size:14.5px}
.rt-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px;counter-reset:st}
.rt-steps a{position:relative;display:flex;flex-direction:column;gap:4px;padding:16px 16px 16px 58px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);font-weight:900;line-height:1.35;transition:.2s}
.rt-steps a::before{counter-increment:st;content:counter(st);position:absolute;left:14px;top:14px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--sun);color:#000;font:400 20px/1 var(--disp)}
.rt-steps a small{font:400 12px/1 var(--disp);letter-spacing:.16em;color:var(--sun)}
.rt-steps a:hover{background:rgba(255,255,255,.16);transform:translateY(-2px)}
.rt-steps a.dug::after{content:"DUG!";position:absolute;right:10px;top:10px;font:400 13px/1 var(--disp);letter-spacing:.1em;color:#1c1a21;background:var(--sun);padding:3px 6px;border-radius:4px;transform:rotate(8deg)}
@media(max-width:760px){.rt-steps{grid-template-columns:1fr}}

/* 今日のミッション・スタンプカード */
.lx-daily{display:grid;grid-template-columns:1fr 1.15fr;gap:18px}
@media(max-width:900px){.lx-daily{grid-template-columns:1fr}}
.ms,.sc{position:relative;border-radius:20px;padding:24px clamp(18px,2.6vw,28px);overflow:hidden}
.ms{background:linear-gradient(135deg,#0a9fd6,#5b5cf0);color:#fff}
.ms-rk{position:absolute;right:-6px;top:-4px;width:110px;height:auto;opacity:.95}
.ms-k{font:400 14px/1 var(--disp);letter-spacing:.22em;opacity:.9}
.ms h2,.sc h2{font-size:clamp(22px,2.6vw,28px);font-weight:900;line-height:1.3;margin:6px 0 12px}
.ms h2{padding-right:110px}
.ms-t{font-size:17px;font-weight:700;line-height:1.7;background:rgba(255,255,255,.14);border-radius:12px;padding:14px 16px;min-height:4.4em}
.ms-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.ms .btn:not(.gold){background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.4)}
.ms .btn.done{background:#fff;color:#0a6f99}
.ms-week{display:flex;gap:6px;margin-top:16px}
.ms-week span{flex:1;text-align:center;font:400 12px/1 var(--disp);letter-spacing:.06em;padding:8px 0 6px;border-radius:8px;background:rgba(255,255,255,.12)}
.ms-week span b{display:block;font-size:18px;margin-top:4px;font-weight:400}
.ms-week span.on{background:var(--sun);color:#1c1a21}
.ms-week span.today{outline:2px solid #fff;outline-offset:1px}
.ms-streak{margin-top:10px;font-weight:700;font-size:14px}
.sc{background:var(--card);border:2px dashed var(--line)}
.sc .ms-k{color:var(--gold)}
.sc-t{color:var(--tx2);font-size:14px;margin:-4px 0 14px}
.sc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:8px}
.sc-grid a{position:relative;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;text-align:center;padding:8px;border:2px dashed color-mix(in srgb,var(--c) 45%,transparent);color:color-mix(in srgb,var(--c) 70%,#999);font-size:10.5px;font-weight:700;line-height:1.2;transition:.25s;word-break:break-word}
.sc-grid a:hover{transform:scale(1.06)}
.sc-grid a.on{border:3px solid var(--c);background:var(--c);color:#fff;transform:rotate(-8deg);box-shadow:inset 0 0 0 4px rgba(255,255,255,.35)}
.sc-grid a.on.pop{animation:lxstamp .5s cubic-bezier(.3,1.8,.5,1)}
@keyframes lxstamp{from{transform:scale(1.8) rotate(-30deg);opacity:0}}
.sc-reset{margin-top:12px;font-size:12px;color:var(--mut);text-decoration:underline}

/* カテゴリー見出し */
.lx-cat{scroll-margin-top:80px}
.lx-ch{position:relative;z-index:0;overflow:hidden;margin-bottom:22px;padding:22px 24px 20px;border-radius:18px;background:var(--c2)}
.lx-ch::after{content:"";position:absolute;z-index:-1;inset:0 0 0 40%;background:radial-gradient(circle,var(--c) 1.7px,transparent 2.3px) 0 0/14px 14px;opacity:.28;-webkit-mask:linear-gradient(90deg,transparent,#000 75%);mask:linear-gradient(90deg,transparent,#000 75%);pointer-events:none}
.lx-ch p{font:400 clamp(15px,1.6vw,18px)/1 var(--disp);letter-spacing:.22em;color:var(--c)}
.lx-ch h2{font-size:clamp(26px,3.6vw,42px);font-weight:900;line-height:1.2;margin:6px 0 8px}
.lx-ch h2 small{font:400 .42em/1 var(--disp);letter-spacing:.14em;color:#fff;background:var(--c);border-radius:99px;padding:5px 10px 4px;vertical-align:middle;margin-left:10px}
.lx-ch span{display:block;color:var(--tx2);max-width:48em;font-size:14.5px}

/* リンクのカード */
.lks{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
@media(max-width:420px){.lks{grid-template-columns:1fr}}
.lk{position:relative;display:flex;flex-direction:column;gap:10px;padding:20px 20px 18px;border-radius:16px;background:radial-gradient(circle at 100% 0,color-mix(in srgb,var(--c) 16%,transparent) 0 60px,transparent 61px),var(--card);border:1px solid var(--line);transition:transform .25s,box-shadow .25s;scroll-margin-top:90px}
.lk:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(60,45,20,.14)}
.lk:target{box-shadow:0 0 0 3px var(--c)}
.lk-h{display:flex;align-items:flex-start;gap:10px}
.lk-h h3{font-size:20px;font-weight:900;line-height:1.3;flex:1}
.lk-h h3 a{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.lk-h h3 a svg{font-size:15px;color:var(--c)}
.lk-h h3 a:hover{color:var(--c)}
.lk-done{display:none;flex:none;font:400 15px/1 var(--disp);letter-spacing:.1em;color:#fff;background:var(--c);padding:6px 8px 5px;border-radius:6px;transform:rotate(8deg);box-shadow:0 4px 10px rgba(0,0,0,.15)}
.lk.dug .lk-done{display:block}
.lk-ja{margin-top:-8px;font-size:13px;color:var(--mut);font-weight:700}
.lk-tags{display:flex;flex-wrap:wrap;gap:5px}
.lk-tags li{font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:99px;background:var(--c2);color:color-mix(in srgb,var(--c) 80%,#000)}
.lk-tags li.jp{background:#1c1a21;color:#fff}
.lk-tags li.warn{background:#fff;border:1px solid var(--line);color:var(--mut)}
.lk-what{font-size:14.5px;line-height:1.8}
.lk-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;font-size:13.5px;color:var(--tx2);line-height:1.75}
.lk-k{font-size:11.5px;font-weight:900;color:var(--c);border:1.5px solid var(--c);border-radius:6px;padding:1px 7px;margin-top:3px;white-space:nowrap}
.lk-k.en{font:400 12.5px/1.4 var(--disp);letter-spacing:.1em}
.lk-en{display:flex;flex-wrap:wrap;gap:6px}
.lk-en li{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 10px;border-radius:99px;background:var(--bg2)}
.lk-en li b{font-size:13.5px}
.lk-en li small{font-size:11.5px;color:var(--mut);margin-right:6px}
.lk-en .say.sm{width:26px;height:26px}
.lk-hook{font-size:13.5px;line-height:1.75;background:linear-gradient(90deg,var(--c2),transparent);border-radius:10px;padding:10px 12px}
.lk-hook b{display:inline-block;font-size:11.5px;color:#fff;background:var(--c);border-radius:6px;padding:1px 8px;margin-right:8px}
.lk-btns{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:auto;padding-top:4px}
.lk-more{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;padding:6px 11px;border-radius:99px;border:1px solid var(--line);background:var(--bg2)}
.lk-more:hover{border-color:var(--c);color:var(--c)}
.lk-btns .tlink{font-size:13px}

/* Billboard の読み方・今週の TOP10 */
.lx-split{display:grid;grid-template-columns:1.25fr 1fr;gap:16px;margin-bottom:18px}
@media(max-width:900px){.lx-split{grid-template-columns:1fr}}
.anat{border-radius:18px;background:#1c1a21;color:#fff;padding:22px clamp(16px,2.4vw,26px)}
.anat-cap{font:400 13px/1 var(--disp);letter-spacing:.2em;color:var(--sun);margin-bottom:12px}
.anat-row{display:grid;grid-template-columns:60px 28px 1fr repeat(3,64px);align-items:center;gap:6px;background:#fff;color:#1c1a21;border-radius:12px;padding:12px 12px;font:400 30px/1 var(--disp)}
.anat-row>span{position:relative}
.a-rank{font-size:46px;text-align:center}
.a-move{color:#12a36b;font-size:20px;text-align:center}
.a-title b{display:block;font:900 16px/1.3 var(--jp)}.a-title small{display:block;font:700 12px/1.3 var(--jp);color:var(--mut)}
.a-col{text-align:center;font-size:24px}.a-col small{display:block;font-size:10.5px;letter-spacing:.08em;color:var(--mut);margin-bottom:3px}
.a-n{position:absolute;top:-18px;right:-4px;width:22px;height:22px;border-radius:50%;background:var(--hot);color:#fff;display:grid;place-items:center;font:400 14px/1 var(--disp);font-style:normal;box-shadow:0 0 0 2px #1c1a21}
.a-title .a-n{right:auto;left:-6px}
@media(max-width:560px){.anat-row{grid-template-columns:44px 1fr repeat(3,46px);font-size:22px}.a-move{display:none}.a-rank{font-size:34px}.a-col{font-size:18px}.a-col small{font-size:8.5px}.a-title b{font-size:13px}}
.anat-list{counter-reset:an;margin-top:18px;display:grid;gap:9px}
.anat-list li{position:relative;padding-left:34px;font-size:13.5px;line-height:1.7;color:#e2dbe8}
.anat-list li::before{counter-increment:an;content:counter(an);position:absolute;left:0;top:2px;width:22px;height:22px;border-radius:50%;background:var(--hot);color:#fff;display:grid;place-items:center;font:400 14px/1 var(--disp)}
.anat-list b{display:block;color:#fff;font-size:14.5px}
.anat-note{margin-top:14px;font-size:13px;color:#cfc8d8;border-top:1px solid #3a3542;padding-top:12px}
.anat-note b{color:var(--sun)}
.lx-now{border-radius:18px;background:var(--card);border:1px solid var(--line);padding:20px}
.lx-now.wide{margin-bottom:18px}
.lx-now-h{font-weight:900;font-size:17px;line-height:1.4;margin-bottom:10px}
.lx-now-h small{display:block;font:400 12.5px/1.2 var(--disp);letter-spacing:.16em;color:var(--c);margin-bottom:4px}
.lx-mini{display:grid;gap:2px}
.lx-now.wide .lx-mini{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));column-gap:20px}
.lx-mini li{display:flex;align-items:center;gap:12px;padding:7px 4px;border-bottom:1px solid var(--line)}
.lx-r{flex:none;width:30px;font:400 24px/1 var(--disp);color:var(--c);text-align:center}
.lx-mini li:nth-child(-n+3) .lx-r{font-size:30px}
.lx-mini a,.lx-t{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;line-height:1.35}
.lx-mini b{font-size:14.5px}.lx-mini small{font-size:12px;color:var(--mut)}
.lx-mini em{font-style:normal;font-size:11px;font-weight:700;color:#fff;background:var(--c);border-radius:99px;padding:1px 8px;margin-left:auto}
.lx-mini a:hover b{color:var(--c)}
.lx-src{font-size:12px;color:var(--mut);margin-top:10px}.lx-src a{text-decoration:underline;display:inline-flex;align-items:center;gap:3px}
.lx-foot{margin-top:24px}

/* 1週間の洋楽カレンダー */
.wk{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;padding:12px 2px 10px}
@media(min-width:1180px){.wk{grid-template-columns:repeat(7,1fr)}}
.wk li{position:relative;display:flex;flex-direction:column;gap:6px;padding:16px 14px;border-radius:16px;background:var(--card);border:1px solid var(--line);font-size:13px;color:var(--tx2);line-height:1.65}
.wk li.today{background:#1c1a21;color:#e2dbe8;border-color:#1c1a21;box-shadow:0 14px 34px rgba(28,26,33,.25)}
.wk li.today h3{color:#fff}
.wk li.today::after{content:"TODAY";position:absolute;top:-9px;right:10px;font:400 13px/1 var(--disp);letter-spacing:.14em;background:var(--hot);color:#fff;padding:4px 8px 3px;border-radius:6px}
.wk-d{display:flex;align-items:baseline;gap:6px;font-weight:900;color:var(--hot)}
.wk-d b{font:400 26px/1 var(--disp);letter-spacing:.06em}
.wk h3{font-size:15px;font-weight:900;color:var(--tx);line-height:1.4}
.wk .tlink{margin-top:auto;font-size:12.5px}
.yr{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding:14px 16px;border-radius:14px;background:var(--bg2)}
.yr>b{font:400 16px/1 var(--disp);letter-spacing:.2em;color:var(--gold);margin-right:6px}
.yr a{display:inline-flex;flex-direction:column;padding:8px 14px;border-radius:12px;background:var(--card);border:1px solid var(--line);font-weight:900;font-size:13.5px;line-height:1.35}
.yr a small{font-size:11px;color:var(--mut);font-weight:700}
.yr a:hover{border-color:var(--gold)}

/* チャート英語辞典・クイズ */
.dict{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin-top:20px}
.dict li{padding:14px 16px;border-radius:14px;background:var(--card);border:1px solid var(--line)}
.d-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.d-h b{font-size:18px}
.d-h span{font-weight:900;font-size:13.5px;color:var(--hot);margin-left:4px}
.d-n{font-size:12.5px;color:var(--tx2);margin:6px 0;line-height:1.7}
.d-x{font-size:13px;background:var(--bg2);border-radius:10px;padding:8px 10px;line-height:1.6}
.d-x span{font-weight:700}
.d-x small{display:block;color:var(--mut);font-size:12px}
.d-x .say.sm{vertical-align:middle;margin-left:4px}
.dq{border-radius:20px;background:linear-gradient(135deg,#1c1a21,#4a2240);color:#fff;padding:26px clamp(18px,3vw,32px);text-align:center}
.dq-k{font:400 14px/1 var(--disp);letter-spacing:.24em;color:var(--sun)}
.dq-t{font-size:clamp(22px,3vw,30px);font-weight:900;margin:8px 0 16px}
.dq-q{font:400 clamp(40px,7vw,64px)/1.05 var(--disp);letter-spacing:.03em;margin:6px 0 4px;color:#fff}
.dq-p{font:400 15px/1 var(--disp);letter-spacing:.2em;color:#cfc8d8}
.dq-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:640px;margin:18px auto 0}
@media(max-width:520px){.dq-opts{grid-template-columns:1fr}}
.dq-opts button{padding:14px 12px;border-radius:12px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);font-weight:900;font-size:15px;transition:.15s}
.dq-opts button:hover:not(:disabled){background:rgba(255,255,255,.2)}
.dq-opts button.ok{background:#12a36b;border-color:#12a36b}
.dq-opts button.ng{background:#e8174f;border-color:#e8174f}
.dq-opts button:disabled{cursor:default}
.dq-res{font-size:clamp(28px,4vw,40px);font-weight:900;margin:8px 0}
.dq-res+p{color:#e2dbe8;margin-bottom:16px}

/* トースト */
.lx-toast{position:fixed;left:50%;bottom:92px;z-index:70;display:flex;align-items:center;gap:12px;padding:12px 20px 12px 12px;border-radius:18px;background:#1c1a21;color:#fff;box-shadow:0 20px 50px rgba(0,0,0,.35);transform:translateX(-50%);animation:lxtoast .5s cubic-bezier(.3,1.6,.5,1)}
.lx-toast img{width:60px;height:60px}
.lx-toast small{display:block;font:400 14px/1 var(--disp);letter-spacing:.2em;color:var(--sun)}
.lx-toast b{font-size:17px;font-weight:900}
@keyframes lxtoast{from{opacity:0;transform:translate(-50%,20px) scale(.9)}}
