/* =====================================================================
   英語大全 — ポップ×太枠。絵を大きく、見出しは丸ゴシックの極太、枠は墨の太線＋ずらし影。
   色：夜の藍（ヒーロー）× ライム × 朱 × 空色。新しいページはこれだけで描く。旧ページは legacy CSS の上に重ねる
   ===================================================================== */
:root{
  --t-bg:#f4f5fb; --t-bg2:#e9ecf8; --t-card:#ffffff; --t-ink:#15172e; --t-sub:#565b78; --t-faint:#8a8fa8; --t-edge:#15172e; --t-line:#d9dcec;
  --t-lime:#c4f03c; --t-lime-bg:#effbd0; --t-red:#ff4d2e; --t-red2:#e23a1c; --t-red-bg:#ffe5de; --t-blue:#3d6bff; --t-blue-bg:#e3eaff; --t-violet:#7b5cff; --t-violet-bg:#ece7ff; --t-sun:#ffc93c; --t-sun-bg:#fff4d1; --t-mint:#1fc7a0; --t-mint-bg:#dcf7ef;
  --t-night:#0d1236; --t-night2:#1a2370;
  --t-disp:"M PLUS Rounded 1c","Zen Kaku Gothic New",system-ui,sans-serif;
  --t-jp:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic UI","Meiryo",system-ui,sans-serif;
  --t-en:"Bricolage Grotesque","M PLUS Rounded 1c",system-ui,sans-serif;
  --t-bd:2.5px solid var(--t-edge); --t-sh:4px 4px 0 var(--t-edge); --t-sh-s:3px 3px 0 var(--t-edge); --t-sh-h:7px 7px 0 var(--t-edge);
  --t-r:18px; --t-r-s:12px; --t-w:1200px; --t-ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:light;
}
:root[data-theme=dark]{--t-bg:#0e1124;--t-bg2:#161a33;--t-card:#1a1f3c;--t-ink:#f1f2fb;--t-sub:#b7bbd3;--t-faint:#80869f;--t-edge:#05060f;--t-line:#2a3056;--t-lime-bg:#26300f;--t-red-bg:#3b1a14;--t-blue-bg:#18224d;--t-violet-bg:#241d4a;--t-sun-bg:#3a2f12;--t-mint-bg:#0f3129;color-scheme:dark}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--t-bg:#0e1124;--t-bg2:#161a33;--t-card:#1a1f3c;--t-ink:#f1f2fb;--t-sub:#b7bbd3;--t-faint:#80869f;--t-edge:#05060f;--t-line:#2a3056;--t-lime-bg:#26300f;--t-red-bg:#3b1a14;--t-blue-bg:#18224d;--t-violet-bg:#241d4a;--t-sun-bg:#3a2f12;--t-mint-bg:#0f3129;color-scheme:dark}}

*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:120px;-webkit-text-size-adjust:100%}
body.tz{margin:0;background:var(--t-bg);color:var(--t-ink);font-family:var(--t-jp);font-size:16px;line-height:1.8;font-weight:500;overflow-x:clip;-webkit-font-smoothing:antialiased}
body.tz::before{display:none}
.tz img{max-width:100%;height:auto}
.tz a{color:inherit}
.tz h1,.tz h2,.tz h3,.tz h4{font-family:var(--t-disp);font-weight:900;letter-spacing:.01em;line-height:1.35;margin:0}
.tz p{margin:0}
.tz ::selection{background:var(--t-lime);color:#15172e}
.tz :focus-visible{outline:3px solid var(--t-blue);outline-offset:3px;border-radius:8px}
.tz .skip{position:absolute;left:-999px}.tz .skip:focus{left:12px;top:12px;z-index:99;background:var(--t-ink);color:var(--t-bg);padding:8px 14px;border-radius:8px}
.t-wrap{max-width:var(--t-w);margin:0 auto;padding:0 24px}
@media (max-width:560px){.t-wrap{padding:0 16px}}

/* ---------- ヘッダー ---------- */
.tz-hd{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--t-bg) 94%,transparent);backdrop-filter:saturate(1.5) blur(12px);-webkit-backdrop-filter:saturate(1.5) blur(12px);border-bottom:var(--t-bd)}
.tz-hd-in{max-width:1440px;margin:0 auto;padding:0 24px;height:64px;display:flex;align-items:center;gap:16px}
.tz-brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.tz-logo{width:40px;height:40px;border-radius:12px;background:var(--t-red);color:#fff;display:grid;place-items:center;font:900 22px/1 var(--t-disp);border:var(--t-bd);box-shadow:var(--t-sh-s);transform:rotate(-4deg)}
.tz-brand-t{display:flex;flex-direction:column;line-height:1.05}
.tz-brand-t small{font-size:10.5px;color:var(--t-sub);font-weight:800;letter-spacing:.06em}
.tz-brand-t b{font:900 22px/1.1 var(--t-disp);letter-spacing:.03em}
.tz-brand-t i{font-style:normal;font:800 10.5px/1 var(--t-jp);background:var(--t-ink);color:var(--t-bg);padding:3px 7px;border-radius:999px;margin-left:6px;vertical-align:3px;letter-spacing:.04em}
.tz-nav{display:flex;gap:2px;margin-left:6px;min-width:0;flex:0 1 auto;overflow:hidden}
.tz-nav::-webkit-scrollbar{display:none}
.tz-nav a{flex:none;display:flex;align-items:center;gap:6px;text-decoration:none;font-weight:900;font-size:13.5px;padding:6px 10px;border-radius:999px;white-space:nowrap;border:2px solid transparent;transition:background .15s}
.tz-nav a i{width:10px;height:10px;border-radius:50%;background:var(--c,var(--t-blue));border:2px solid var(--t-edge);flex:none}
.tz-nav a[hidden]{display:none}
.tz-nav a:hover{background:var(--t-card);border-color:var(--t-edge)}
.tz-nav a[aria-current]{background:var(--t-lime);border-color:var(--t-edge);color:#15172e}
.tz-sp{flex:1}
.tz-ic{width:42px;height:42px;border-radius:50%;border:var(--t-bd);background:var(--t-card);color:var(--t-ink);display:grid;place-items:center;cursor:pointer;position:relative;text-decoration:none;flex:none;box-shadow:2px 2px 0 var(--t-edge);transition:transform .15s,box-shadow .15s}
.tz-ic:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--t-edge)}
.tz-ic .fav-count{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;border-radius:10px;background:var(--t-red);color:#fff;font:800 11px/15px var(--t-en);font-style:normal;text-align:center;padding:0 5px;border:2px solid var(--t-edge)}
@media (max-width:1300px){.tz-brand-t i{display:none}}
@media (max-width:1040px){.tz-nav{display:none}}
@media (max-width:560px){.tz-hd-in{padding:0 12px;gap:8px;height:58px}.tz-brand-t b{font-size:19px}.tz-brand-t i{display:none}.tz-logo{width:36px;height:36px;font-size:19px}.tz-ic{width:38px;height:38px}}
/* 章のバー（丸い絵つき） */
.tz-cbar{border-top:1px solid var(--t-line);background:var(--t-bg)}
.tz-cbar-in{max-width:var(--t-w);margin:0 auto;padding:7px 20px;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.tz-cbar-in::-webkit-scrollbar{display:none}
.tz-cbar a{flex:none;display:flex;align-items:center;gap:7px;text-decoration:none;font-weight:800;font-size:13px;padding:3px 12px 3px 3px;border-radius:999px;border:2px solid transparent;white-space:nowrap}
.tz-cbar a img{width:26px;height:26px;border-radius:50%;object-fit:cover;border:2px solid var(--t-edge);display:block}
.tz-cbar a:hover{background:var(--t-card);border-color:var(--t-edge)}
.tz-cbar a[aria-current]{background:var(--t-red-bg);border-color:var(--t-red)}
/* LIVE ティッカー */
.tz-tick{background:var(--t-card);border-bottom:var(--t-bd);display:flex;align-items:stretch;overflow:hidden;font-size:13px;font-weight:800}
.tz-tick-l{flex:none;background:var(--t-red);color:#fff;display:flex;align-items:center;gap:7px;padding:0 14px;font:900 12.5px/1 var(--t-en);letter-spacing:.1em;border-right:var(--t-bd)}
.tz-tick-l i{width:8px;height:8px;border-radius:50%;background:#fff;animation:tping 1.6s infinite}
.tz-tick-m{flex:1;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
.tz-tick .ticker-track{display:flex;gap:34px;width:max-content;padding:9px 0;animation:tmarq 140s linear infinite}
.tz-tick .ticker-track:hover{animation-play-state:paused}
.tz-tick .ticker-track a{text-decoration:none;white-space:nowrap;color:var(--t-ink)}
.tz-tick .ticker-track a b{color:var(--t-blue);margin-right:6px}
@keyframes tmarq{to{transform:translateX(-50%)}}
@keyframes tping{0%{box-shadow:0 0 0 0 #ffffffaa}80%,100%{box-shadow:0 0 0 8px #fff0}}
.tz-prog{position:fixed;left:0;top:0;height:4px;width:100%;transform-origin:0 50%;transform:scaleX(var(--p,0));background:linear-gradient(90deg,var(--t-lime),var(--t-blue),var(--t-red));z-index:60;pointer-events:none}

/* ---------- 共通の部品 ---------- */
.t-k{display:inline-flex;align-items:center;gap:8px;font:900 12.5px/1.4 var(--t-en);letter-spacing:.14em;text-transform:uppercase;color:var(--t-red)}
.t-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 26px;border-radius:999px;font:900 16px var(--t-disp);text-decoration:none;border:var(--t-bd);background:var(--t-card);color:var(--t-ink);cursor:pointer;box-shadow:var(--t-sh);transition:transform .15s var(--t-ease),box-shadow .15s}
.t-btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--t-edge)}
.t-btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--t-edge)}
.t-btn.lime{background:var(--t-lime);color:#15172e}
.t-btn.red{background:var(--t-red);color:#fff}
.t-btn.ghost{background:transparent;color:#fff;border-color:#fff;box-shadow:none}
.t-btn.ghost:hover{background:#ffffff14}
.t-sec{padding:72px 0}
.t-sec.tight{padding:40px 0}
.t-sec.alt{background:var(--t-bg2);border-top:var(--t-bd);border-bottom:var(--t-bd)}
.t-sec.dark{background:radial-gradient(900px 500px at 90% 0,#2b3fd0 0%,transparent 60%),var(--t-night);color:#fff;border-top:var(--t-bd);border-bottom:var(--t-bd)}
.t-sec-hd{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:28px;flex-wrap:wrap}
.t-sec-hd h2{font-size:clamp(26px,3.6vw,38px);line-height:1.3}
.t-sec-hd h2 em{font-style:normal;color:var(--t-red)}
.t-sec-hd h2 small{font:800 13px var(--t-jp);color:var(--t-sub);margin-left:12px;vertical-align:middle}
.t-sec-hd p{color:var(--t-sub);margin-top:10px;max-width:640px;font-weight:700}
.t-sec.dark .t-sec-hd p{color:#c9cde6}
.t-more{font-weight:900;text-decoration:none;display:inline-flex;align-items:center;gap:6px;padding:4px 0;border-bottom:3px solid var(--t-lime);white-space:nowrap}
.t-more:hover{color:var(--t-red)}
@media (max-width:560px){.t-sec{padding:52px 0}.t-sec-hd{margin-bottom:22px}}
.t-grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.t-grid.g4{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr))}
.t-crumb{font-size:13px;color:var(--t-sub);padding:16px 0 0;display:flex;flex-wrap:wrap;gap:6px;font-weight:700}
.t-crumb a{text-decoration:none;font-weight:800}.t-crumb a:hover{color:var(--t-red)}
.t-pill{display:inline-flex;align-items:center;gap:6px;font:800 12.5px/1.2 var(--t-jp);padding:5px 11px;border-radius:999px;background:var(--t-card);color:var(--t-ink);border:2px solid var(--t-edge);white-space:nowrap;text-decoration:none}
.t-pill.red{background:var(--t-red-bg);border-color:var(--t-red);color:var(--t-red2)}
.t-pill.lime{background:var(--t-lime);color:#15172e}
.t-pill.blue{background:var(--t-blue-bg);border-color:var(--t-blue);color:var(--t-blue)}
.t-pill.ink{background:var(--t-ink);color:var(--t-bg)}
.t-pill img{width:20px;height:20px;border-radius:50%;object-fit:cover;margin-left:-6px;border:1.5px solid var(--t-edge)}
.t-badge{position:absolute;top:12px;left:12px;z-index:2;background:var(--t-red);color:#fff;font:900 11.5px/1 var(--t-en);letter-spacing:.08em;padding:6px 9px;border-radius:8px;border:2px solid var(--t-edge);transform:rotate(-4deg)}
.t-badge.hot{background:var(--t-sun);color:#15172e}

/* ---------- カード（太枠＋ずらし影） ---------- */
.t-card{display:flex;flex-direction:column;text-decoration:none;background:var(--t-card);border:var(--t-bd);border-radius:var(--t-r);overflow:hidden;box-shadow:var(--t-sh);transition:transform .18s var(--t-ease),box-shadow .18s;position:relative}
.t-card:hover{transform:translate(-3px,-3px);box-shadow:var(--t-sh-h)}
.t-card[hidden]{display:none}
.t-card-img{aspect-ratio:3/2;overflow:hidden;background:var(--t-bg2);border-bottom:var(--t-bd);position:relative}
.t-card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--t-ease)}
.t-card:hover .t-card-img img{transform:scale(1.06)}
.t-card-b{padding:16px 18px 18px;display:flex;flex-direction:column;gap:9px;flex:1}
.t-card-k{align-self:flex-start;font:800 12px/1.2 var(--t-jp);padding:4px 10px;border-radius:999px;border:2px solid var(--c,var(--t-red));color:var(--c,var(--t-red2));background:color-mix(in srgb,var(--c,var(--t-red)) 12%,var(--t-card))}
.t-card h3{font-size:18px;line-height:1.5}
.t-card small{color:var(--t-sub);font-size:13px;font-weight:700;line-height:1.6}
.t-card-ft{margin-top:auto;display:flex;justify-content:space-between;gap:8px;font:800 12px var(--t-jp);color:var(--t-faint);padding-top:4px}
.t-card.big h3{font-size:clamp(20px,2.4vw,27px)}
.t-card.noimg .t-card-b{padding:22px}
.t-card .t-no{position:absolute;top:12px;left:12px;z-index:2;background:var(--t-lime);color:#15172e;font:900 14px/1 var(--t-en);padding:7px 11px;border-radius:10px;border:2px solid var(--t-edge);transform:rotate(-4deg)}
/* 部の色（章のチップ） */
.p0{--c:#565b78}.p1{--c:#7b5cff}.p2{--c:#119a79}.p3{--c:#3d6bff}.p4{--c:#ff4d2e}.p5{--c:#c27d00}.p6{--c:#d6336c}.p7{--c:#565b78}

/* ---------- ホーム：ヒーロー（夜の藍＋浮かぶ英語） ---------- */
.h-hero{position:relative;overflow:hidden;background:radial-gradient(1000px 560px at 88% 0%,#3248e0 0%,transparent 60%),radial-gradient(800px 520px at 0% 110%,#6a2fd8 0%,transparent 60%),var(--t-night);color:#fff;border-bottom:var(--t-bd)}
.h-hero canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.h-hero-in{position:relative;max-width:var(--t-w);margin:0 auto;padding:58px 24px 64px;display:grid;grid-template-columns:1.12fr 1fr;gap:44px;align-items:center}
.h-kick{display:inline-flex;align-items:center;gap:8px;font:900 14px var(--t-disp);color:var(--t-lime);border-bottom:3px solid var(--t-lime);padding-bottom:3px}
.h-h1{font:900 clamp(40px,6.2vw,78px)/1.12 var(--t-disp);margin-top:20px;letter-spacing:.01em}
.h-h1 span{display:block}
.h-h1 .s{font-size:.4em;color:#c9cdf5;margin-bottom:.45em;letter-spacing:.04em}
.h-h1 .g{background:linear-gradient(95deg,var(--t-lime) 0%,#7df0c8 40%,#7fb2ff 75%,#ff8a6e 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:tgrad 6s ease-in-out infinite alternate}
@keyframes tgrad{to{background-position:100% 0}}
.h-lead{font-size:16.5px;line-height:2;margin-top:22px;color:#dde0f7;max-width:560px;font-weight:700}
.h-lead mark{background:none;color:var(--t-lime);font-weight:900}
.h-stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;list-style:none;padding:0}
.h-stats li{border:2px solid #ffffff38;background:#ffffff0d;border-radius:14px;padding:10px 14px 8px;min-width:96px}
.h-stats b{display:block;font:900 30px/1 var(--t-en);color:var(--t-lime)}
.h-stats span{font-size:12px;font-weight:800;color:#c9cdf5}
.h-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
.h-art{position:relative}
.h-art img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;border-radius:22px;border:3px solid #fff;box-shadow:8px 8px 0 #05071a;transform:rotate(1.5deg)}
.h-art .t-pill{position:absolute;left:-12px;top:-14px;transform:rotate(-5deg);background:var(--t-lime);color:#15172e;font-size:14px;padding:8px 14px;box-shadow:var(--t-sh-s);z-index:2}
.h-art .h-art-q{position:absolute;right:-10px;bottom:-18px;z-index:2;max-width:78%;background:#fff;color:#15172e;border:var(--t-bd);border-radius:16px;padding:12px 16px;box-shadow:var(--t-sh);font:900 15px/1.5 var(--t-disp);transform:rotate(-1.5deg);text-decoration:none}
.h-art .h-art-q small{display:block;font:900 11px var(--t-en);letter-spacing:.1em;color:var(--t-red)}
@media (max-width:900px){.h-hero-in{grid-template-columns:1fr;gap:34px;padding:36px 20px 52px}.h-art{max-width:560px}}
@media (max-width:560px){.h-hero-in{padding:28px 16px 48px}.h-stats li{min-width:0;flex:1 1 40%;padding:8px 10px}.h-stats b{font-size:24px}.h-cta .t-btn{flex:1;padding:0 10px;font-size:14.5px;white-space:nowrap}.h-art .h-art-q{right:6px;font-size:13.5px}}

/* 3ステップ */
.h-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.h-step{background:var(--t-card);border:var(--t-bd);border-radius:var(--t-r);box-shadow:var(--t-sh);padding:20px;display:flex;flex-direction:column;gap:10px}
.h-step .t-pill{align-self:flex-start;background:var(--t-ink);color:var(--t-bg);font:900 11.5px var(--t-en);letter-spacing:.1em}
.h-step h3{font-size:21px}
.h-step p{color:var(--t-sub);font-weight:700;font-size:14.5px}
.h-step a{margin-top:auto;display:flex;align-items:center;gap:8px;background:var(--t-lime);border:2px solid var(--t-edge);border-radius:12px;padding:10px 14px;font:900 14px var(--t-disp);text-decoration:none;color:#15172e;transition:transform .12s}
.h-step a:hover{transform:translateX(3px)}
.h-step a::before{content:"GO ▶";font:900 12px var(--t-en);letter-spacing:.06em}
@media (max-width:820px){.h-steps{grid-template-columns:1fr}}
/* 目的ボタン */
.h-goals{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.h-goal{display:flex;align-items:center;gap:12px;background:var(--t-card);border:var(--t-bd);border-radius:16px;box-shadow:var(--t-sh-s);padding:10px 14px 10px 10px;text-decoration:none;transition:transform .15s,box-shadow .15s}
.h-goal:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--t-edge)}
.h-goal img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--t-edge);flex:none}
.h-goal b{display:block;font:900 15px/1.35 var(--t-disp)}
.h-goal small{display:block;color:var(--t-sub);font-size:12px;font-weight:700;line-height:1.4;margin-top:2px}
@media (max-width:980px){.h-goals{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.h-goals{grid-template-columns:1fr}}
/* 今日の1節 */
.h-today{display:grid;grid-template-columns:1.35fr 1fr;gap:22px}
.h-today-main{display:block;text-decoration:none;border:var(--t-bd);border-radius:22px;overflow:hidden;position:relative;background:var(--t-night);color:#fff;box-shadow:var(--t-sh);min-height:420px;transition:transform .18s,box-shadow .18s}
.h-today-main:hover{transform:translate(-3px,-3px);box-shadow:var(--t-sh-h)}
.h-today-main img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--t-ease)}
.h-today-main:hover img{transform:scale(1.04)}
.h-today-main::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0000 35%,#0b0f2ae8 100%)}
.h-today-main div{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:24px 26px}
.h-today-main .t-pill{background:var(--t-lime);color:#15172e}
.h-today-main h3{font-size:clamp(21px,2.8vw,30px);margin-top:12px;line-height:1.4}
.h-today-main p{margin-top:6px;color:#dfe2f6;font-weight:800;font-size:14px}
.h-today-side{display:flex;flex-direction:column;gap:16px}
.h-uroko{background:var(--t-sun-bg);border:var(--t-bd);border-radius:20px;box-shadow:var(--t-sh);padding:20px 22px;display:flex;flex-direction:column;gap:10px}
.h-uroko .t-k{color:#a86d00}
.h-uroko h3{font-size:19px}
.h-uroko p{font-weight:700;font-size:14.5px}
.h-uroko a{font-weight:900;text-decoration:none;border-bottom:3px solid var(--t-sun);align-self:flex-start}
.h-mini{display:grid;grid-template-columns:116px 1fr;gap:14px;align-items:center;text-decoration:none;background:var(--t-card);border:var(--t-bd);border-radius:16px;box-shadow:var(--t-sh-s);padding:10px;transition:transform .15s,box-shadow .15s}
.h-mini:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--t-edge)}
.h-mini img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:10px;display:block;border:2px solid var(--t-edge)}
.h-mini small{display:inline-block;font:800 11.5px var(--t-jp);color:var(--t-red2);background:var(--t-red-bg);border-radius:999px;padding:2px 8px}
.h-mini b{display:block;font:900 14.5px/1.5 var(--t-disp);margin-top:4px}
.h-lesson{display:flex;flex-direction:column;gap:8px;text-decoration:none;background:var(--t-lime-bg);border:var(--t-bd);border-radius:20px;box-shadow:var(--t-sh);padding:18px 20px}
.h-lesson b{font:900 18px/1.45 var(--t-disp)}
.h-lesson small{color:var(--t-sub);font-weight:700}
@media (max-width:900px){.h-today{grid-template-columns:1fr}.h-today-main{min-height:330px}}
/* 目から鱗ガチャ */
.h-gacha{display:grid;grid-template-columns:300px 1fr;gap:30px;align-items:center;background:var(--t-violet-bg);border:var(--t-bd);border-radius:26px;box-shadow:var(--t-sh-h);padding:28px}
.h-gacha-m{position:relative;aspect-ratio:1;display:grid;place-items:center}
.h-gacha-m button{width:100%;height:100%;border-radius:50%;border:3px solid var(--t-edge);background:radial-gradient(circle at 35% 30%,#fff 0 8%,transparent 9%),conic-gradient(from 0deg,var(--t-lime),var(--t-sun),var(--t-red),var(--t-violet),var(--t-blue),var(--t-mint),var(--t-lime));box-shadow:var(--t-sh-h);cursor:pointer;font:900 26px/1.3 var(--t-disp);color:#15172e;transition:transform .2s}
.h-gacha-m button span{display:inline-block;background:#fff;border:var(--t-bd);border-radius:999px;padding:10px 20px;box-shadow:var(--t-sh-s)}
.h-gacha-m button:hover{transform:rotate(-8deg) scale(1.03)}
.h-gacha-m button.spin{animation:tspin .9s cubic-bezier(.3,.1,.2,1)}
@keyframes tspin{to{transform:rotate(720deg)}}
.h-gacha-c{background:var(--t-card);border:var(--t-bd);border-radius:20px;box-shadow:var(--t-sh);padding:24px;min-height:220px;display:flex;flex-direction:column;gap:12px}
.h-gacha-c.pop{animation:tpop .5s var(--t-ease)}
@keyframes tpop{0%{transform:scale(.85) rotate(-3deg);opacity:0}60%{transform:scale(1.03) rotate(1deg);opacity:1}to{transform:none}}
.h-gacha-c .t-pill{align-self:flex-start}
.h-gacha-c h3{font-size:clamp(19px,2.4vw,24px)}
.h-gacha-c p{font-weight:700;line-height:1.9}
.h-gacha-c a{font-weight:900;align-self:flex-start;text-decoration:none;border-bottom:3px solid var(--t-violet)}
.h-gacha-n{font:900 12px var(--t-en);color:var(--t-sub);letter-spacing:.06em}
@media (max-width:760px){.h-gacha{grid-template-columns:1fr;padding:20px}.h-gacha-m{max-width:220px;margin:0 auto;width:100%}}
/* What's New（LIVE の新着リスト） */
.h-news{background:var(--t-card);border:var(--t-bd);border-radius:20px;box-shadow:var(--t-sh);padding:6px 22px}
.tz .h-news .feed{display:block}
.tz .h-news .fi{display:block;padding:12px 0;border:0;border-bottom:1.5px dashed var(--t-line);background:none;border-radius:0;box-shadow:none;margin:0}
.tz .h-news .fi:last-child{border-bottom:0}
.tz .h-news .fi-img,.tz .h-news .fi-x{display:none}
.tz .h-news .fi-top{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:800;color:var(--t-sub);flex-wrap:wrap}
.tz .h-news .fi-k{background:var(--t-red);color:#fff;border-radius:6px;padding:2px 7px}
.tz .h-news .fi-lv{background:var(--t-bg2);border-radius:6px;padding:2px 7px}
.tz .h-news .fi-new{background:var(--t-lime);color:#15172e;border-radius:6px;padding:1px 7px;border:1.5px solid var(--t-edge)}
.tz .h-news .fi-t{display:block;font:800 15px/1.5 var(--t-jp);text-decoration:none;margin-top:4px}
.tz .h-news .fi-t:hover{color:var(--t-red)}
.tz .h-news .fi-ft{display:flex;gap:12px;font-size:12px;color:var(--t-faint);font-weight:700;margin-top:2px}
.tz .h-news .fi-ft a{color:var(--t-blue);text-decoration:none}
/* タブ＋カードの一覧 */
.h-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}
.h-tabs button,.p-tabs button,.p-tabs a{font:900 14px var(--t-disp);padding:9px 16px;border-radius:999px;border:var(--t-bd);background:var(--t-card);color:var(--t-ink);cursor:pointer;box-shadow:2px 2px 0 var(--t-edge);text-decoration:none;transition:transform .12s}
.h-tabs button:hover,.p-tabs button:hover{transform:translate(-1px,-1px)}
.h-tabs button[aria-pressed=true],.p-tabs [aria-pressed=true],.p-tabs [aria-current]{background:var(--t-ink);color:var(--t-bg)}
.h-more{text-align:center;margin-top:34px}
/* ホント？ウソ？ */
.h-quiz{position:relative;background:var(--t-lime);color:#15172e;border:var(--t-bd);border-radius:26px;box-shadow:var(--t-sh-h);padding:40px 28px;text-align:center;overflow:hidden}
.h-quiz::before,.h-quiz::after{content:"?";position:absolute;font:900 220px/1 var(--t-disp);color:#15172e14;pointer-events:none}
.h-quiz::before{left:20px;top:-30px;transform:rotate(-12deg)}.h-quiz::after{right:24px;bottom:-60px;transform:rotate(14deg)}
.h-quiz .t-pill{background:#15172e;color:var(--t-lime);border-color:#15172e}
.h-quiz h2{font-size:clamp(26px,4vw,42px);margin-top:12px}
.h-quiz-q{position:relative;font:900 clamp(19px,2.6vw,25px)/1.6 var(--t-disp);max-width:760px;margin:18px auto 0}
.h-quiz-b{position:relative;display:flex;justify-content:center;gap:14px;margin-top:24px;flex-wrap:wrap}
.h-quiz-b button{min-width:160px;font-size:18px}
.h-quiz-b .t{background:#fff}.h-quiz-b .f{background:#15172e;color:#fff}
.h-quiz-a{position:relative;max-width:700px;margin:22px auto 0;background:#fff;border:var(--t-bd);border-radius:18px;padding:18px 20px;text-align:left;font-weight:700;color:#15172e;box-shadow:var(--t-sh-s);animation:tpop .45s var(--t-ease)}
.h-quiz-a b{display:block;font:900 22px var(--t-disp);margin-bottom:6px}
.h-quiz-a b.ok{color:#0f9b6e}.h-quiz-a b.ng{color:var(--t-red2)}
.h-quiz-a a{display:inline-block;margin-top:10px;font-weight:900;color:#15172e}
.h-quiz-a[hidden]{display:none}
.h-quiz-nx{margin-top:14px;background:none;border:0;font:900 14px var(--t-disp);text-decoration:underline;cursor:pointer;color:#15172e;position:relative}
.h-quiz-sc{position:relative;font:900 13px var(--t-en);margin-top:12px;letter-spacing:.06em}
/* 段階 */
.h-stages{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,160px),1fr));gap:16px}
.h-stage{text-decoration:none;border-radius:18px;overflow:hidden;background:var(--t-card);border:var(--t-bd);box-shadow:var(--t-sh-s);transition:transform .15s,box-shadow .15s}
.h-stage:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--t-edge)}
.h-stage img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;border-bottom:var(--t-bd)}
.h-stage b{display:block;padding:10px 12px 12px;font:900 15.5px/1.4 var(--t-disp)}
.h-stage b small{display:block;font:700 11.5px/1.5 var(--t-jp);color:var(--t-sub);margin-top:3px}
/* AI の帯 */
.h-ai{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center}
.h-ai > a img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;border-radius:22px;border:3px solid #fff;box-shadow:8px 8px 0 #05071a;transform:rotate(-1.2deg)}
.h-ai h2{font-size:clamp(26px,3.8vw,40px);margin-top:10px}
.h-ai ol{list-style:none;counter-reset:a;margin:20px 0 0;padding:0;display:grid;gap:2px}
.h-ai li a{display:flex;gap:14px;align-items:baseline;text-decoration:none;padding:9px 0;border-bottom:1.5px dashed #ffffff30;font-weight:800}
.h-ai li a::before{counter-increment:a;content:counter(a,decimal-leading-zero);font:900 13px/1 var(--t-en);color:var(--t-lime)}
.h-ai li a:hover{color:var(--t-lime)}
@media (max-width:900px){.h-ai{grid-template-columns:1fr}}

/* ---------- ライブの壁（Worker が差しこむ .lw） ---------- */
.t-dot{width:9px;height:9px;border-radius:50%;background:var(--t-red);display:inline-block;animation:tping2 1.8s ease-out infinite}
@keyframes tping2{0%{box-shadow:0 0 0 0 #ff4d2e99}80%,100%{box-shadow:0 0 0 10px #ff4d2e00}}
.tz .x-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:20px}
.tz .lw{background:var(--t-card);border:var(--t-bd);border-radius:16px;overflow:hidden;box-shadow:var(--t-sh-s);display:flex;flex-direction:column}
.tz .lw[hidden]{display:none}
.tz .lw-img{display:block;aspect-ratio:16/9;background:var(--t-bg2);position:relative;overflow:hidden;border-bottom:var(--t-bd)}
.tz .lw-img img{width:100%;height:100%;object-fit:cover;display:block}
.tz .lw-ph{position:absolute;inset:0;display:grid;place-items:center;background:var(--t-blue-bg);color:var(--t-blue);font:900 40px var(--t-en)}
.tz .lw-img > span:not(.lw-ph){position:absolute;top:8px;left:8px;background:var(--t-red);color:#fff;font:900 11px/1 var(--t-en);padding:5px 8px;border-radius:6px;letter-spacing:.06em;border:2px solid var(--t-edge)}
.tz .lw-b{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.tz .lw-src{font-size:12px;font-weight:800;color:var(--t-sub);display:flex;gap:8px;align-items:center}
.tz .lw-src i{font-style:normal;background:var(--t-bg2);padding:1px 7px;border-radius:5px;font-size:11px}
.tz .lw-t{font-weight:800;text-decoration:none;line-height:1.5;font-size:14.5px}
.tz .lw-t:hover{color:var(--t-red)}
.tz .lw-x{font-size:12.5px;color:var(--t-sub);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tz .lw-ft{margin-top:auto;display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--t-faint);font-weight:700}
.tz .lw-ft a{color:var(--t-red);text-decoration:none}
.tz .empty{color:var(--t-sub);font-weight:700}

/* ---------- 章扉 ---------- */
.c-door{position:relative;min-height:min(74vh,680px);display:grid;align-items:end;color:#fff;overflow:hidden;background:var(--t-night);border-bottom:var(--t-bd)}
.c-door > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.c-door::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0b0f2a10 20%,#0b0f2ad0 74%,#0b0f2af2 100%)}
.c-door-in{position:relative;z-index:1;max-width:var(--t-w);width:100%;margin:0 auto;padding:0 24px 52px}
.c-no{display:inline-block;font:900 clamp(18px,2vw,22px)/1 var(--t-en);background:var(--t-lime);color:#15172e;border:var(--t-bd);border-radius:12px;padding:10px 16px;box-shadow:var(--t-sh-s);transform:rotate(-3deg)}
.c-label{font:900 14px var(--t-disp);letter-spacing:.06em;color:var(--t-lime);margin-top:16px;display:block}
.c-door h1{font-size:clamp(40px,6.4vw,80px);margin-top:4px;line-height:1.12;text-shadow:0 4px 24px #0008}
.c-buzz{font:900 clamp(18px,2.4vw,26px)/1.55 var(--t-disp);margin-top:14px;max-width:860px}
.c-obi{display:inline-block;margin-top:20px;background:var(--t-red);color:#fff;font:900 15px var(--t-disp);padding:8px 16px;border-radius:10px;border:2px solid #fff;letter-spacing:.03em;transform:rotate(-1deg)}
.c-door .t-crumb{position:absolute;top:0;left:0;right:0;z-index:2;max-width:var(--t-w);margin:0 auto;padding:16px 24px;color:#ffffffd0}
@media (max-width:560px){.c-door{min-height:500px}.c-door-in{padding:0 16px 34px}}
.c-intro{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:start}
.c-intro > div > p{font-size:17px;line-height:2.05;margin-top:14px}
.c-points{background:var(--t-card);border:var(--t-bd);border-radius:20px;box-shadow:var(--t-sh);padding:22px 24px}
.c-points h2{font-size:17px;display:flex;align-items:center;gap:8px}
.c-points h2::before{content:"";width:12px;height:12px;border-radius:4px;background:var(--t-red);border:2px solid var(--t-edge)}
.c-points ul{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.c-points li{padding-left:26px;position:relative;font-weight:800}
.c-points li::before{content:"✓";position:absolute;left:0;top:0;color:var(--t-mint);font-weight:900}
@media (max-width:860px){.c-intro{grid-template-columns:1fr;gap:26px}}
.c-pager{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:40px}
.c-pager a{display:flex;flex-direction:column;gap:4px;text-decoration:none;background:var(--t-card);border:var(--t-bd);border-radius:16px;padding:16px 18px;box-shadow:var(--t-sh-s);transition:transform .15s,box-shadow .15s}
.c-pager a:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--t-edge)}
.c-pager a small{color:var(--t-sub);font-weight:800;font-size:12.5px}
.c-pager a b{font:900 16px/1.45 var(--t-disp)}
.c-pager a.next{text-align:right}
@media (max-width:560px){.c-pager{grid-template-columns:1fr}}

/* ---------- 節のページ（記事） ---------- */
.a-hd{max-width:860px;margin:0 auto;padding:0 24px}
.a-kick{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:18px}
.a-title{margin-top:16px}
.a-title .a-t{display:inline-block;font:900 clamp(14px,1.6vw,16px)/1.4 var(--t-disp);background:var(--t-ink);color:var(--t-bg);padding:5px 12px;border-radius:8px}
.a-title .a-b{display:block;font:900 clamp(27px,4.2vw,44px)/1.38 var(--t-disp);margin-top:14px}
.a-meta{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;font:800 13px var(--t-jp);color:var(--t-sub)}
.a-hero{max-width:1000px;margin:26px auto 0;padding:0 24px}
.a-hero img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:22px;display:block;background:var(--t-bg2);border:var(--t-bd);box-shadow:6px 6px 0 var(--t-edge)}
@media (max-width:560px){.a-hd,.a-hero{padding:0 16px}.a-hero img{border-radius:16px;box-shadow:4px 4px 0 var(--t-edge)}}
.a-body{max-width:780px;margin:0 auto;padding:0 24px}
@media (max-width:560px){.a-body{padding:0 16px}}
.a-3s{position:relative;margin-top:44px;background:var(--t-card);border:var(--t-bd);border-radius:20px;box-shadow:var(--t-sh);padding:28px 24px 20px}
.a-3s > b{position:absolute;top:-15px;left:20px;background:var(--t-red);color:#fff;font:900 13px/1 var(--t-disp);padding:8px 14px;border-radius:999px;border:2px solid var(--t-edge)}
.a-3s p{font:900 clamp(17px,2.1vw,20px)/1.7 var(--t-disp)}
.a-3s p.l{font:700 15px/1.9 var(--t-jp);color:var(--t-sub);margin-top:10px;padding-top:12px;border-top:1.5px dashed var(--t-line)}
.a-share{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;align-items:center}
.a-share a,.a-share button{font:900 13px var(--t-disp);text-decoration:none;padding:8px 14px;border-radius:999px;border:2px solid var(--t-edge);background:var(--t-card);color:var(--t-ink);cursor:pointer;box-shadow:2px 2px 0 var(--t-edge)}
.a-share .x{background:#15172e;color:#fff}
.a-share .line{background:#06c755;color:#fff}
.a-share .hb{background:#00a4de;color:#fff}
.a-toc{background:var(--t-sun-bg);border:var(--t-bd);border-radius:18px;padding:16px 22px;margin:30px 0 0;box-shadow:var(--t-sh-s)}
.a-toc b{font:900 15px var(--t-disp)}
.a-toc ol{margin:8px 0 0;padding-left:1.4em;display:grid;gap:2px}
.a-toc a{text-decoration:none;font-weight:800;font-size:15px}
.a-toc a:hover{color:var(--t-red)}
/* 目から鱗（タップでひらく） */
.a-uroko{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}
.a-uroko details{background:var(--t-card);border:var(--t-bd);border-radius:18px;padding:18px;cursor:pointer;box-shadow:var(--t-sh-s);transition:transform .15s}
.a-uroko details:hover{transform:translate(-2px,-2px)}
.a-uroko details[open]{background:var(--t-sun-bg)}
.a-uroko summary{list-style:none;font:900 16px/1.55 var(--t-disp)}
.a-uroko summary::-webkit-details-marker{display:none}
.a-uroko summary small{display:inline-block;font:900 11.5px/1 var(--t-en);letter-spacing:.1em;background:var(--t-sun);border:2px solid var(--t-edge);border-radius:6px;padding:4px 7px;margin-bottom:10px;color:#15172e}
.a-uroko summary::after{content:"タップで答え ▼";display:block;margin-top:10px;font:800 12px var(--t-jp);color:var(--t-red2)}
.a-uroko details[open] summary::after{content:none}
.a-uroko details p{margin-top:10px;font-size:14.5px;line-height:1.85;font-weight:700}
@media (max-width:860px){.a-uroko{grid-template-columns:1fr}}
/* 本文 */
.md{font-size:17px;line-height:2.05}
.md h2{font:900 clamp(22px,2.8vw,28px)/1.45 var(--t-disp);margin:60px 0 0;display:flex;gap:12px;align-items:flex-start}
.md h2 .n{flex:none;font:900 15px/1 var(--t-en);background:var(--t-lime);color:#15172e;border:2px solid var(--t-edge);border-radius:10px;padding:8px 10px;margin-top:2px;box-shadow:2px 2px 0 var(--t-edge)}
.md h3{font:900 19.5px/1.5 var(--t-disp);margin:34px 0 0;padding-left:14px;border-left:6px solid var(--t-red)}
.md p{margin:18px 0 0}
.md ul,.md ol{margin:16px 0 0;padding-left:1.4em}
.md li{margin:8px 0}
.md li::marker{color:var(--t-red);font-weight:900}
.md strong{font-weight:900;background:linear-gradient(transparent 62%,var(--t-lime) 62%)}
.md blockquote{margin:24px 0 0;background:var(--t-blue-bg);border:var(--t-bd);border-radius:16px;padding:16px 20px;font-weight:800;box-shadow:var(--t-sh-s)}
.md blockquote p{margin:0}
.md table{width:100%;border-collapse:separate;border-spacing:0;margin:22px 0 0;font-size:15px;display:block;overflow-x:auto;border:var(--t-bd);border-radius:14px}
.md th,.md td{border-bottom:1.5px solid var(--t-line);padding:10px 12px;text-align:left;vertical-align:top;min-width:100px}
.md tr:last-child td{border-bottom:0}
.md th{background:var(--t-ink);color:var(--t-bg);font-weight:900}
.md code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.88em;background:var(--t-bg2);padding:2px 6px;border-radius:6px}
.md pre{background:var(--t-card);border:var(--t-bd);padding:16px;border-radius:14px;overflow-x:auto;font-size:14px;line-height:1.7;white-space:pre-wrap}
.md pre code{background:none;padding:0}
/* 本文のあとのブロック */
.a-blk{margin-top:60px}
.a-blk > h2{font:900 clamp(21px,2.6vw,26px)/1.4 var(--t-disp);display:flex;align-items:center;gap:10px}
.a-blk > h2::before{content:"";width:14px;height:14px;border-radius:5px;background:var(--t-red);border:2px solid var(--t-edge);flex:none}
.a-steps{list-style:none;counter-reset:s;margin:18px 0 0;padding:0;display:grid;gap:12px}
.a-steps li{counter-increment:s;display:grid;grid-template-columns:42px 1fr;gap:14px;align-items:center;background:var(--t-card);border:var(--t-bd);border-radius:16px;padding:12px 16px;font-weight:800;box-shadow:var(--t-sh-s)}
.a-steps li::before{content:counter(s);width:42px;height:42px;border-radius:12px;background:var(--t-lime);border:2px solid var(--t-edge);color:#15172e;display:grid;place-items:center;font:900 19px var(--t-en)}
.a-levels{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}
.a-levels div{border:var(--t-bd);border-radius:16px;padding:16px;background:var(--t-card);box-shadow:var(--t-sh-s)}
.a-levels b{display:inline-block;font:900 12.5px var(--t-disp);padding:4px 10px;border-radius:999px;margin-bottom:8px;border:2px solid var(--t-edge)}
.a-levels div:nth-child(1) b{background:var(--t-mint-bg)}
.a-levels div:nth-child(2) b{background:var(--t-blue-bg)}
.a-levels div:nth-child(3) b{background:var(--t-red-bg)}
.a-levels p{font-size:14.5px;line-height:1.85;font-weight:700}
@media (max-width:760px){.a-levels{grid-template-columns:1fr}}
.a-miss{display:grid;gap:12px;margin-top:18px}
.a-miss div{border:var(--t-bd);border-radius:16px;padding:14px 18px;background:var(--t-card);box-shadow:var(--t-sh-s)}
.a-miss b{display:block;font:900 16px var(--t-disp);color:var(--t-red2)}
.a-miss b::before{content:"NG";font:900 11px var(--t-en);background:var(--t-red);color:#fff;border-radius:5px;padding:2px 6px;margin-right:8px;vertical-align:2px}
.a-miss p{margin-top:6px;font-weight:700;font-size:15px}
.a-books-note{margin-top:10px;font-size:13px;color:var(--t-sub);font-weight:700}
.a-books{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:16px}
.a-books div{border:var(--t-bd);border-radius:16px;padding:16px 18px;background:var(--t-card);box-shadow:var(--t-sh-s);display:flex;flex-direction:column;gap:6px}
.a-books .k{font:900 11px var(--t-en);letter-spacing:.06em;color:var(--t-red2)}
.a-books b{font:900 16px/1.45 var(--t-disp)}
.a-books .by{font-size:12.5px;color:var(--t-sub);font-weight:700}
.a-books p{font-size:14.5px;font-weight:700;line-height:1.7}
.a-books .for span{display:inline-block;font-size:11px;font-weight:900;background:var(--t-blue-bg);color:var(--t-blue);border-radius:5px;padding:1px 6px;margin-right:6px}
.a-books a{margin-top:auto;color:var(--t-blue);font-weight:900;font-size:13px}
.a-ev{display:grid;gap:12px;margin-top:18px}
.a-ev div{border:var(--t-bd);border-radius:16px;padding:16px 18px;background:var(--t-blue-bg);box-shadow:var(--t-sh-s)}
.a-ev p{font-weight:800}
.a-ev cite{display:block;font-style:normal;font-size:12.5px;color:var(--t-sub);margin-top:8px;line-height:1.6;font-family:var(--t-en)}
.a-ev a{color:var(--t-blue);font-weight:900;font-size:13px}
.a-act{margin-top:56px;background:var(--t-lime);color:#15172e;border:var(--t-bd);border-radius:22px;box-shadow:var(--t-sh-h);padding:26px;display:flex;gap:18px;align-items:center}
.a-act b{flex:none;font:900 13px/1.25 var(--t-en);letter-spacing:.1em;background:#15172e;color:var(--t-lime);border-radius:14px;padding:12px 14px;text-align:center}
.a-act p{font:900 clamp(18px,2.3vw,22px)/1.55 var(--t-disp)}
@media (max-width:560px){.a-act{flex-direction:column;align-items:flex-start;padding:22px}}
.a-faq{margin-top:18px;display:grid;gap:10px}
.a-faq details{border:var(--t-bd);border-radius:14px;padding:14px 18px;background:var(--t-card)}
.a-faq summary{font:900 16px/1.5 var(--t-disp);cursor:pointer}
.a-faq summary::before{content:"Q. ";color:var(--t-red)}
.a-faq p{margin-top:8px;font-weight:700;color:var(--t-sub);line-height:1.9}
.a-sites{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:12px;margin-top:18px}
.a-site{display:flex;gap:12px;align-items:flex-start;text-decoration:none;background:var(--t-card);border:var(--t-bd);border-radius:14px;padding:12px;box-shadow:var(--t-sh-s);transition:transform .15s}
.a-site:hover{transform:translate(-2px,-2px)}
.a-site img{width:28px;height:28px;border-radius:7px;flex:none}
.a-site b{display:block;font:900 15px/1.35 var(--t-disp)}
.a-site small{display:block;color:var(--t-sub);font-size:12.5px;font-weight:700;line-height:1.5;margin-top:3px}
.a-vids{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:18px;margin-top:18px}
.yt{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#000;cursor:pointer;display:block;width:100%;border:var(--t-bd);padding:0;box-shadow:var(--t-sh-s)}
.yt img{width:100%;height:100%;object-fit:cover;display:block;opacity:.92;transition:opacity .2s}
.yt:hover img{opacity:1}
.yt::after{content:"";position:absolute;left:50%;top:50%;width:62px;height:44px;margin:-22px 0 0 -31px;border-radius:12px;border:2px solid #15172e;background:var(--t-red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z' fill='white'/%3E%3C/svg%3E") center/26px no-repeat}
.yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.yt.on::after{display:none}
.a-vid b{display:block;font:900 14.5px/1.5 var(--t-disp);margin-top:10px}
.a-vid small{display:block;color:var(--t-sub);font-size:12px;font-weight:700;margin-top:2px}
.a-cols{display:grid;gap:0;margin-top:16px;background:var(--t-card);border:var(--t-bd);border-radius:16px;padding:4px 18px;box-shadow:var(--t-sh-s)}
.a-cols a{display:flex;gap:10px;align-items:baseline;text-decoration:none;padding:11px 0;border-bottom:1.5px dashed var(--t-line);font-weight:800}
.a-cols a:last-child{border-bottom:0}
.a-cols a::before{content:"▶";color:var(--t-red);flex:none;font-size:11px}
.a-cols a:hover{color:var(--t-red)}
.a-cols a[hidden]{display:none}
.a-tools{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}

/* ---------- 一覧ページの頭 ---------- */
.p-hd{padding:34px 0 8px}
.p-hd h1{font:900 clamp(32px,5vw,54px)/1.2 var(--t-disp);margin-top:10px}
.p-hd p{color:var(--t-sub);font-size:16.5px;margin-top:12px;max-width:740px;font-weight:700}
.p-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0}
.p-search{display:flex;gap:10px;margin-top:22px;max-width:640px}
.p-search input{flex:1;font:800 16px var(--t-jp);padding:14px 20px;border-radius:999px;border:var(--t-bd);background:var(--t-card);color:var(--t-ink);box-shadow:var(--t-sh-s)}
.p-n{color:var(--t-sub);font-weight:800;font-size:14px;margin-top:14px}
/* 目次ページ */
.toc-part{margin-top:56px}
.toc-part > h2{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font:900 clamp(22px,3vw,30px) var(--t-disp)}
.toc-part > h2 small{font:900 12.5px/1 var(--t-en);letter-spacing:.14em;background:var(--t-ink);color:var(--t-bg);padding:7px 10px;border-radius:8px}
.toc-part[hidden]{display:none}
.toc-ch{display:grid;grid-template-columns:280px 1fr;gap:28px;margin-top:24px;align-items:start;background:var(--t-card);border:var(--t-bd);border-radius:20px;box-shadow:var(--t-sh);padding:18px}
.toc-ch > a img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:12px;display:block;border:2px solid var(--t-edge)}
.toc-ch h3{font-size:clamp(20px,2.4vw,25px)}
.toc-ch h3 a{text-decoration:none}
.toc-ch h3 small{display:inline-block;font:900 12px/1 var(--t-disp);background:var(--t-lime);border:2px solid var(--t-edge);border-radius:8px;padding:5px 9px;margin-right:10px;vertical-align:4px;color:#15172e}
.toc-ch > div > p{color:var(--t-sub);font-weight:700;margin-top:6px}
.toc-ch ol{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:0}
.toc-ch li a{display:flex;gap:12px;text-decoration:none;padding:7px 0;border-bottom:1.5px dashed var(--t-line);font-weight:800}
.toc-ch li a span{font:900 13px/1.9 var(--t-en);color:var(--t-red);flex:none;min-width:40px}
.toc-ch li a:hover{color:var(--t-red)}
@media (max-width:760px){.toc-ch{grid-template-columns:1fr;gap:14px}}
/* コラムのページ */
.col-hd{background:var(--t-bg2);border-bottom:var(--t-bd);padding:6px 0 40px}
.col-todo{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px}
.col-todo li label{display:flex;gap:12px;align-items:flex-start;background:var(--t-card);border:var(--t-bd);border-radius:14px;padding:12px 16px;font-weight:800;cursor:pointer;box-shadow:var(--t-sh-s)}
.col-todo input{width:20px;height:20px;accent-color:var(--t-red);flex:none;margin-top:5px}
/* 動画ライブラリ */
.v-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:22px;margin-top:26px}
.v-card b{display:block;font:900 15px/1.5 var(--t-disp);margin-top:10px}
.v-card small{display:block;color:var(--t-sub);font-size:12px;font-weight:700;margin-top:4px}
.v-card p{font-size:13px;color:var(--t-sub);margin-top:6px;line-height:1.7}
/* 今日のミニレッスン */
.l-box{background:var(--t-card);border:var(--t-bd);border-radius:20px;box-shadow:var(--t-sh);padding:22px;margin-top:24px}

/* ---------- フッター ---------- */
.tz-ft{background:var(--t-night);color:#d9dcef;margin-top:90px;border-top:var(--t-bd)}
.tz-ft-in{max-width:var(--t-w);margin:0 auto;padding:56px 24px 36px;display:grid;grid-template-columns:1.3fr repeat(4,1fr);gap:28px}
.tz-ft b.ft-logo{font:900 28px var(--t-disp);color:#fff}
.tz-ft p{font-size:13.5px;line-height:1.9;margin-top:12px;color:#aeb3cc}
.tz-ft h4{color:var(--t-lime);font:900 14px var(--t-disp);letter-spacing:.06em;margin-bottom:10px}
.tz-ft a{display:block;text-decoration:none;font-size:14px;padding:4px 0;color:#d9dcef;font-weight:700}
.tz-ft a:hover{color:var(--t-lime)}
.tz-ft-bt{border-top:1px solid #ffffff1f;text-align:center;font-size:12.5px;color:#8f95b3;padding:18px}
.tz-ft .ft-me{margin-top:22px;padding:18px 18px 14px;border:1px solid #ffffff2e;border-radius:14px;background:#ffffff0a}
.tz-ft .ft-me h4{margin-bottom:0}
.tz-ft .ft-me p{margin-top:8px}
.tz-ft .ft-me-l{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.tz-ft .ft-me-l a{display:inline-block;padding:6px 12px;border:1px solid #ffffff3d;border-radius:999px;font-size:13px}
.tz-ft .ft-me-l a:hover{border-color:var(--t-lime)}
.tz-ft-bt a{display:inline;padding:0;font-size:inherit;color:#c4c9e3}
@media (max-width:860px){.tz-ft-in{grid-template-columns:1fr 1fr}.tz-ft-in>div:first-child{grid-column:1/-1}}
@media (max-width:520px){.tz-ft-in{grid-template-columns:1fr;padding:44px 16px 26px}}
.tz .totop{position:fixed;right:18px;bottom:18px;width:52px;height:52px;border-radius:50%;background:var(--t-lime);color:#15172e;display:grid;place-items:center;border:var(--t-bd);box-shadow:var(--t-sh-s);opacity:0;pointer-events:none;transition:opacity .3s;z-index:40}
.tz .totop.show{opacity:1;pointer-events:auto}

/* ---------- メニュー・検索・お知らせ（app.js が出す） ---------- */
.tz .drawer{position:fixed;inset:0;z-index:70}
.tz .drawer-bg{position:absolute;inset:0;background:#0b0f2aa8}
.tz .drawer-in{position:absolute;right:0;top:0;bottom:0;width:min(340px,88vw);background:var(--t-bg);overflow-y:auto;padding:8px 0 28px;border-left:var(--t-bd);animation:tslin .22s var(--t-ease)}
@keyframes tslin{from{transform:translateX(30px);opacity:0}}
.tz .drawer-hd{display:flex;align-items:center;justify-content:space-between;padding:8px 10px 10px 22px;border-bottom:var(--t-bd)}
.tz .drawer-hd b{font:900 21px var(--t-disp)}
.tz .drawer-hd .ic-btn{width:42px;height:42px;border:2px solid var(--t-edge);background:var(--t-card);color:var(--t-ink);font-size:18px;cursor:pointer;border-radius:50%}
.tz .drawer-in > a{display:block;padding:9px 22px;font-weight:800;text-decoration:none}
.tz .drawer-in > a:hover{background:var(--t-lime);color:#15172e}
.tz .drawer-in h4{font:900 12px/1 var(--t-en);color:var(--t-red);padding:20px 22px 6px;letter-spacing:.16em}
.tz .drawer-set{margin:18px 18px 0;padding:12px;border:var(--t-bd);border-radius:12px;display:flex;gap:8px;align-items:center;font-weight:800;font-size:14px;flex-wrap:wrap;background:var(--t-card)}
.tz .drawer-set button{border:2px solid var(--t-edge);background:var(--t-bg);color:var(--t-ink);border-radius:8px;padding:4px 12px;font-weight:800;cursor:pointer;font-family:var(--t-jp)}
.tz .sov{position:fixed;inset:0;z-index:80;background:#0b0f2ac0;display:flex;justify-content:center;padding:72px 12px 12px;backdrop-filter:blur(4px)}
.tz .sov-in{width:min(700px,100%);max-height:calc(100vh - 90px);overflow:auto;background:var(--t-bg);border:var(--t-bd);border-radius:20px;box-shadow:var(--t-sh-h);padding:16px}
.tz .sov input{width:100%;height:56px;border:var(--t-bd);border-radius:14px;padding:0 18px;font:800 17px var(--t-jp);background:var(--t-card);color:var(--t-ink)}
.tz .sres{margin-top:12px;display:grid;gap:2px}
.tz .sres a{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;text-decoration:none}
.tz .sres a:hover,.tz .sres a:focus{background:var(--t-lime-bg)}
.tz .sres img{width:24px;height:24px;border-radius:6px;flex-shrink:0}
.tz .sres b{display:block;font-size:15px;line-height:1.4}
.tz .sres small{color:var(--t-sub);font-size:12.5px;line-height:1.5;display:block;font-weight:700}
.tz .sres .k{flex-shrink:0;font-size:11px;font-weight:900;color:var(--t-red2);background:var(--t-red-bg);border:1.5px solid var(--t-red);border-radius:6px;padding:3px 7px;margin-left:auto}
.tz .toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--t-ink);color:var(--t-bg);padding:12px 20px;border-radius:999px;font-weight:800;z-index:90;border:2px solid var(--t-edge)}

/* ---------- 旧ページ（サイト図鑑など）とのつなぎ ---------- */
.tz.legacy main{animation:none}

/* ---------- 動き ---------- */
.t-rv{opacity:0;transform:translateY(16px);transition:opacity .6s var(--t-ease),transform .6s var(--t-ease)}
.t-rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.t-rv{opacity:1;transform:none;transition:none}.t-card,.t-card-img img{transition:none}.tz-tick .ticker-track,.h-h1 .g{animation:none}}

/* 原田英語の姉妹サイト */
.t-sis-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:14px;margin-top:18px}
.t-sis{position:relative;display:flex;flex-direction:column;gap:6px;text-decoration:none;background:var(--t-card);border:var(--t-bd);border-radius:16px;padding:16px 16px 14px 18px;box-shadow:var(--t-sh-s);transition:transform .15s,box-shadow .15s;overflow:hidden}
.t-sis::before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:linear-gradient(180deg,var(--t-red),var(--t-sun))}
.t-sis:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--t-edge)}
.t-sis b{font:900 16px/1.4 var(--t-disp)}
.t-sis small{color:var(--t-sub);font-size:13px;font-weight:700;line-height:1.6}
.t-sis i{font-style:normal;margin-top:auto;font:900 12.5px var(--t-disp);color:var(--t-red2)}

/* ---------- 英文法大全 ---------- */
.bp-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.bp-md h2 small{vertical-align:4px;margin-left:6px}
.bp-md mark,.bp-box mark{background:linear-gradient(transparent 55%,var(--t-lime) 55%);color:inherit}
.bp-ex{list-style:none;padding:0!important;margin:16px 0 0}
.bp-ex li{background:var(--t-card);border:2px solid var(--t-edge);border-radius:14px;padding:10px 14px;margin:8px 0;line-height:1.7}
.bp-ex .en{font:800 17px var(--t-en)}
.bp-ex small{color:var(--t-sub);font-weight:700}
.bp-box{background:var(--t-card);border:var(--t-bd);border-radius:16px;padding:14px 18px;margin:16px 0 0;box-shadow:var(--t-sh-s);line-height:1.85}
.bp-box > b{display:block;font:900 16px/1.5 var(--t-disp)}
.bp-box p{margin:6px 0 0}
.bp-box .why{color:var(--t-sub);font-size:14.5px}
.bp-box.tech{background:var(--t-blue-bg)}
.bp-box.goro{background:var(--t-sun-bg)}
.bp-box.goro > b{font-size:20px}
.bp-box.goro small{display:block;color:var(--t-sub);font-weight:800}
.bp-box.warn{background:var(--t-red-bg)}
.bp-box.col{background:var(--t-violet-bg)}
.bp-box .en{font:800 15.5px var(--t-en)}
.bp-box .ng{color:var(--t-red2)}.bp-box .ok{color:#0f9b6e}
.bp-goro{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:12px}
.bp-cmp{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.bp-cmp > div{background:var(--t-card);border:var(--t-bd);border-radius:14px;padding:12px 14px}
.bp-cmp b{font:900 15px var(--t-disp)}
.bp-cmp p{margin:6px 0 0;font-size:15px}
@media (max-width:560px){.bp-cmp{grid-template-columns:1fr}}
.bp-chat{margin-top:16px;display:grid;gap:8px}
.bp-chat p{display:flex;gap:10px;align-items:flex-start;margin:0}
.bp-chat i{flex:none;font:900 11.5px/1 var(--t-disp);font-style:normal;border:2px solid var(--t-edge);border-radius:999px;padding:6px 8px;background:var(--t-card)}
.bp-chat .t i{background:var(--t-lime)}
.bp-chat span{background:var(--t-card);border:2px solid var(--t-edge);border-radius:14px;padding:8px 12px;font-size:15.5px;line-height:1.7}
.bp-chat .s{flex-direction:row-reverse}
.bp-chat .s span{background:var(--t-blue-bg)}
.bp-q{background:var(--t-card);border:var(--t-bd);border-radius:16px;padding:14px 16px;margin-top:16px;box-shadow:var(--t-sh-s)}
.bp-q .h-tabs{margin:10px 0 0}
.bp-q [data-bw]{margin-top:10px;font-weight:700}
.bp-struct{margin-top:16px;background:var(--t-card);border:var(--t-bd);border-radius:16px;padding:14px 16px}
.bp-struct p{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.bp-struct .r{display:inline-flex;flex-direction:column;align-items:center;border:2px solid var(--t-edge);border-radius:10px;padding:4px 8px;background:var(--t-bg2)}
.bp-struct .r b{font:800 15px var(--t-en)}
.bp-struct .r i{font:900 11px var(--t-en);font-style:normal;color:var(--t-sub)}
.bp-struct .rS{background:#e3eaff}.bp-struct .rV{background:#ffe5de}.bp-struct .rO{background:#dcf7ef}.bp-struct .rC{background:#fff4d1}.bp-struct .rM{background:#ece7ff}
.bp-struct small{display:block;margin-top:8px;color:var(--t-sub);font-weight:700}
.bp-fig{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;text-decoration:none;margin-top:16px;background:var(--t-night);color:#fff;border:var(--t-bd);border-radius:16px;padding:14px 18px;box-shadow:var(--t-sh-s)}
.bp-fig b{font:900 15px var(--t-disp);color:var(--t-lime)}
.bp-fig span{font-size:14px;font-weight:700;color:#d5d9f3}
.bp-fig i{margin-left:auto;font:900 13px var(--t-disp);font-style:normal;background:var(--t-lime);color:#15172e;border-radius:999px;padding:6px 12px}
.bp-inst{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px;margin-top:16px}
.bp-card{text-align:left;font:inherit;color:inherit;background:var(--t-card);border:var(--t-bd);border-radius:16px;padding:16px;box-shadow:var(--t-sh-s);cursor:pointer;display:flex;flex-direction:column;gap:6px;transition:transform .15s}
.bp-card:hover{transform:translate(-2px,-2px)}
.bp-card .ja{font:900 16.5px/1.55 var(--t-disp)}
.bp-card .hint{font-size:12.5px;font-weight:800;color:var(--t-red2)}
.bp-card .en{display:none;font:800 16.5px/1.6 var(--t-en);border-top:1.5px dashed var(--t-line);padding-top:8px}
.bp-card .en small{display:block;font:700 13px/1.6 var(--t-jp);color:var(--t-sub);margin-top:4px}
.bp-card.open{background:var(--t-lime-bg)}
.bp-card.open .en{display:block}
.bp-card:not(.open)::after{content:"タップで答え";font:800 12px var(--t-jp);color:var(--t-faint)}
.bp-colx{background:var(--t-card);border:var(--t-bd);border-radius:16px;padding:14px 18px;margin-top:12px}
.bp-colx summary{cursor:pointer}
.bp-colx summary b{font:900 17px var(--t-disp)}
.bp-colx summary small{display:block;color:var(--t-sub);font-weight:700}
.md .cap{font-size:13px;color:var(--t-sub)}
.a-vid-how{margin-top:8px;font-size:14px;font-weight:700;line-height:1.8;background:var(--t-blue-bg);border:1.5px solid var(--t-line);border-radius:10px;padding:8px 12px}
.md a{color:var(--t-red);font-weight:900;text-decoration:underline;text-underline-offset:3px}
.md .a-vids{margin-top:22px}
/* ヘッダーを1段に（2026-10-09）：スマホでは5つの入口をロゴの下に1列で。章の帯と LIVE の帯はなくした */
@media (max-width:1040px){
  .tz-hd-in{flex-wrap:wrap;height:auto;padding-top:9px;padding-bottom:0;row-gap:4px}
  .tz-nav{display:flex;order:9;flex:1 0 100%;margin:0 -6px;justify-content:flex-start;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px 0 8px}
  .tz-nav a{padding:6px 9px}
}
@media (max-width:560px){.tz-hd-in{height:auto}.tz-nav{justify-content:space-between;gap:0}.tz-nav a{font-size:12.5px;padding:6px 7px;gap:5px}.tz-nav a i{width:8px;height:8px}}
.tz .drawer-q{display:block;width:calc(100% - 36px);margin:16px 18px 2px;text-align:left;padding:12px 16px;border:var(--t-bd);border-radius:999px;background:var(--t-card);color:var(--t-sub);font:800 15px var(--t-jp);cursor:pointer;box-shadow:var(--t-sh-s)}

/* シンプルなホーム（2026-10-09） */
.h-simple .h-hero-in{padding:44px 24px 52px}
.h-simple .h-h1{font-size:clamp(36px,5.4vw,66px)}
.h-q{display:flex;align-items:center;gap:12px;width:100%;max-width:600px;margin-top:26px;padding:16px 20px;border:3px solid #fff;border-radius:999px;background:#fff;color:#4b5072;font:800 16px/1.4 var(--t-jp);text-align:left;cursor:pointer;box-shadow:6px 6px 0 #05071a;transition:transform .15s,box-shadow .15s}
.h-q:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 #05071a}
.h-q svg{flex:none;color:#15172e}
.h-chips,.tz .h-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:26px}
.h-chips small{color:#c9cdf5;font-weight:800;font-size:13px;margin-right:2px}
.h-chips a{color:#fff;text-decoration:none;font-weight:800;font-size:13.5px;padding:6px 12px;border:2px solid #ffffff66;border-radius:999px}
.h-chips a:hover{background:#fff;color:#15172e;border-color:#fff}
.h-today1 .h-today-main{min-height:320px}
.h-doors{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.h-door{display:block;text-decoration:none;background:var(--t-card);border:var(--t-bd);border-radius:16px;padding:18px 20px;box-shadow:var(--t-sh-s);transition:transform .15s,box-shadow .15s}
.h-door:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--t-edge)}
.h-door b{display:block;font:900 18px/1.4 var(--t-disp)}
.h-door b::after{content:" ▶";color:var(--t-red);font-size:.75em}
.h-door small{display:block;color:var(--t-sub);font-weight:700;font-size:13.5px;line-height:1.6;margin-top:4px}
@media (max-width:900px){.h-doors{grid-template-columns:1fr 1fr}.h-simple .h-art{display:none}.h-simple .h-hero-in{grid-template-columns:1fr}}
@media (max-width:560px){.h-doors{grid-template-columns:1fr}.h-q{font-size:14px;padding:14px 16px}.h-simple .h-hero-in{padding:30px 16px 36px}}
@media (max-width:560px){.tz-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin:0;overflow:visible}.tz-nav a{justify-content:center;padding:6px 2px;font-size:12.5px}.tz-nav a i{display:none}}

/* ===== 遊べる仕掛け（2026-10-10「勉強法が分かりづらく面白くない」「サイト全体がたいくつ」）：site/fun.js ===== */
@keyframes fpop{0%{transform:scale(.96);opacity:.2}60%{transform:scale(1.01);opacity:1}to{transform:none}}
@keyframes fshake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
@keyframes fglow{0%{box-shadow:var(--t-sh),0 0 0 0 #c4f03ccc}to{box-shadow:var(--t-sh),0 0 0 18px #c4f03c00}}
@keyframes fwig{0%,86%,100%{transform:rotate(0)}89%{transform:rotate(-12deg)}93%{transform:rotate(10deg)}96%{transform:rotate(-5deg)}}
@keyframes fcf{0%{transform:translate(0,0) rotate(0);opacity:1}to{transform:translate(calc(var(--x)*160px),340px) rotate(var(--r));opacity:0}}
.pop{animation:fpop .42s var(--t-ease)}
.cf{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:inherit}
.cf i{position:absolute;top:-10px;width:9px;height:14px;border-radius:2px;animation:fcf 1.8s var(--d) cubic-bezier(.2,.7,.4,1) forwards}

/* 勉強法のヒーロー（左に見出し、右に10問チャレンジ） */
.m-hero .m-hero-in{grid-template-columns:1fr 1.08fr;align-items:center}
.m-h1{font-size:clamp(34px,5vw,62px)}
.m-quiz{position:relative}
@media (max-width:900px){.m-hero .m-hero-in{grid-template-columns:1fr}}

/* ホント？ウソ？ */
.qz{position:relative;background:var(--t-card);color:var(--t-ink);border:var(--t-bd);border-radius:24px;box-shadow:var(--t-sh);padding:22px 22px 24px;overflow:hidden}
.qz.flash-ok{animation:fglow .7s ease-out}
.qz.flash-ng{animation:fshake .38s}
.qz-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.qz-k{font:900 13px/1 var(--t-disp);background:var(--t-red);color:#fff;padding:7px 12px;border-radius:999px;border:2px solid var(--t-edge);transform:rotate(-2deg)}
.qz-p{font:900 15px/1 var(--t-en);letter-spacing:.06em;color:var(--t-sub)}
.qz-bar{height:9px;border-radius:9px;background:var(--t-bg2);border:2px solid var(--t-edge);margin-top:14px;overflow:hidden}
.qz-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--t-lime),var(--t-mint));transition:width .4s var(--t-ease)}
.qz-q{font:900 clamp(20px,2.4vw,25px)/1.55 var(--t-disp);margin-top:20px;min-height:3.1em}
.qz-btns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.qz-btns button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:70px;border-radius:18px;border:var(--t-bd);box-shadow:var(--t-sh-s);font:900 21px var(--t-disp);cursor:pointer;color:#15172e;transition:transform .12s,box-shadow .12s,opacity .2s}
.qz-btns button span{font:900 30px/1 var(--t-en)}
.qz-o{background:var(--t-lime)}
.qz-x{background:#ffb3a3}
.qz-btns button:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--t-edge)}
.qz-btns button:active:not(:disabled){transform:translate(2px,2px);box-shadow:none}
.qz-btns button:disabled{cursor:default;opacity:.35}
.qz-btns button.is-a{opacity:1;outline:4px solid var(--t-mint);outline-offset:2px}
.qz-btns button.is-ng{opacity:.6;text-decoration:line-through}
.qz-ans{margin-top:16px;background:var(--t-bg2);border:2px solid var(--t-edge);border-radius:16px;padding:14px 16px}
.qz-ans b{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font:900 22px var(--t-disp)}
.qz-ans b.ok{color:#0f9b6e}.qz-ans b.ng{color:var(--t-red2)}
.qz-ans b small{font:800 13.5px var(--t-jp);color:var(--t-ink)}
.qz-ans p{margin-top:6px;font-weight:700;font-size:14.5px;line-height:1.85}
.qz-ft{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:10px!important}
.qz-ft a{font-weight:900;font-size:13.5px}
.qz-ft .t-btn{min-height:46px;padding:0 20px;font-size:15px}
.qz-res{text-align:center;padding-top:10px}
.qz-sc{display:flex;justify-content:center;align-items:baseline;gap:8px}
.qz-sc b{font:900 clamp(64px,9vw,92px)/1 var(--t-en);color:var(--t-red)}
.qz-sc span{font:900 18px var(--t-disp)}
.qz-rank{display:inline-block;margin-top:12px;font:900 clamp(20px,2.6vw,26px) var(--t-disp);background:var(--t-lime);color:#15172e;border:var(--t-bd);border-radius:14px;padding:6px 16px;box-shadow:var(--t-sh-s);transform:rotate(-1.5deg)}
.qz-cm{margin-top:14px;font-weight:800;font-size:15px}
.qz-share{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px}
.qz-share a,.qz-share button{font:900 14px var(--t-disp);text-decoration:none;padding:11px 16px;border-radius:999px;border:2px solid var(--t-edge);background:var(--t-card);color:var(--t-ink);cursor:pointer;box-shadow:2px 2px 0 var(--t-edge)}
.qz-share .x{background:#15172e;color:#fff}.qz-share .line{background:#06c755;color:#fff}
.qz-miss{text-align:left;margin-top:20px;border-top:2px dashed var(--t-line);padding-top:14px}
.qz-miss b{font:900 15px var(--t-disp)}
.qz-miss ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.qz-miss a{display:block;text-decoration:none;font-weight:900;font-size:14.5px;background:var(--t-bg2);border-radius:12px;padding:9px 12px}
.qz-miss a small{display:block;font-weight:700;color:var(--t-sub);font-size:12.5px}
.qz-miss a:hover{color:var(--t-red)}
.qz-best{margin-top:12px;font-size:13px;color:var(--t-sub);font-weight:800}
@media (max-width:560px){.qz{padding:18px 16px 20px}.qz-btns button{min-height:62px;font-size:19px}}

/* 悩み別 */
.m-worry{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.m-w{display:flex;flex-direction:column;gap:10px;text-decoration:none;background:var(--t-card);border:var(--t-bd);border-radius:20px;box-shadow:var(--t-sh);padding:18px;transition:transform .15s,box-shadow .15s}
.m-w:hover{transform:translate(-3px,-3px);box-shadow:var(--t-sh-h)}
.m-w-q{font:900 16px/1.4 var(--t-disp)}
.m-w-q i{display:block;font:900 11px/1 var(--t-en);font-style:normal;letter-spacing:.12em;color:var(--t-red);margin-bottom:6px}
.m-w b{font:900 15.5px/1.6 var(--t-disp);background:var(--t-sun-bg);border-radius:12px;padding:10px 12px;border:2px solid var(--t-edge)}
.m-w small{color:var(--t-sub);font-weight:700;font-size:13px;line-height:1.6}
.m-w-go{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font-weight:900;font-size:14px;color:var(--t-red2)}
@media (max-width:1000px){.m-worry{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.m-worry{grid-template-columns:1fr}}

/* 衝撃の10本 */
.m-rank{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.m-rank li{grid-column:span 3}
.m-rank li.top{grid-column:span 2}
.m-rank li:not(.top):nth-child(even):last-child{grid-column:span 6}
.m-rank a{position:relative;display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:center;height:100%;text-decoration:none;background:var(--t-card);border:var(--t-bd);border-radius:18px;box-shadow:var(--t-sh-s);padding:10px;transition:transform .15s,box-shadow .15s}
.m-rank a:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--t-edge)}
.m-rank img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:12px;border:2px solid var(--t-edge);display:block}
.m-rank li.top a{grid-template-columns:1fr;align-items:start;padding:0 0 14px;overflow:hidden}
.m-rank li.top img{border:0;border-bottom:var(--t-bd);border-radius:0}
.m-rank li.top .m-rt{padding:0 16px}
.m-rk{position:absolute;top:-10px;left:-10px;z-index:2;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--t-ink);color:var(--t-bg);font:900 19px/1 var(--t-en);border:2px solid var(--t-edge)}
.m-rank li.top .m-rk{width:58px;height:58px;font-size:28px;top:10px;left:10px;background:var(--t-red);color:#fff;transform:rotate(-6deg)}
.m-rank li.top:first-child .m-rk{background:var(--t-sun);color:#15172e}
.m-rt small{display:block;font:800 12px var(--t-jp);color:var(--t-red2)}
.m-rt b{display:block;font:900 15.5px/1.55 var(--t-disp);margin-top:4px}
.m-rank li.top .m-rt b{font-size:17px}
@media (max-width:900px){.m-rank li,.m-rank li.top{grid-column:span 6}}
@media (max-width:560px){.m-rank a{grid-template-columns:110px 1fr}.m-rank li.top a{grid-template-columns:1fr}}

/* 目から鱗ガチャ */
.ug{display:grid;grid-template-columns:220px 1fr;gap:26px;align-items:center}
.ug-m{text-align:center}
.ug-go{width:180px;height:180px;border-radius:50%;border:var(--t-bd);background:radial-gradient(circle at 35% 30%,#e6ff8f,var(--t-lime) 55%,#9ccc1f);box-shadow:0 8px 0 var(--t-edge);cursor:pointer;font:900 26px var(--t-disp);color:#15172e;transition:transform .12s,box-shadow .12s}
.ug-go:hover{transform:translateY(-3px);box-shadow:0 11px 0 var(--t-edge)}
.ug-go:active{transform:translateY(6px);box-shadow:0 2px 0 var(--t-edge)}
.ug-go.spin span{display:inline-block;animation:tspin .6s var(--t-ease)}
.ug-n{margin-top:14px;font-weight:800;font-size:13px;color:#c9cde6}
.ug-c{background:var(--t-card);color:var(--t-ink);border:var(--t-bd);border-radius:22px;box-shadow:var(--t-sh);padding:22px;min-height:200px}
.ug-c h3{font:900 clamp(18px,2.2vw,22px)/1.6 var(--t-disp);margin-top:12px}
.ug-ph{font-weight:800;color:var(--t-sub);line-height:1.9}
.ug-cnt{margin-top:14px;font:900 12px var(--t-en);letter-spacing:.12em;color:var(--t-faint)}
.ug-rv{margin-top:14px;font:900 14px var(--t-disp);padding:10px 18px;border-radius:999px;border:2px solid var(--t-edge);background:var(--t-sun);color:#15172e;cursor:pointer;box-shadow:2px 2px 0 var(--t-edge)}
.ug-a p{margin-top:12px;font-weight:700;line-height:1.9}
.u-ft{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-top:12px!important}
.u-ft a{font-weight:900;font-size:13.5px}
.u-ft .u-x{text-decoration:none;font:900 12.5px var(--t-disp);background:#15172e;color:#fff;padding:6px 12px;border-radius:999px}
:root[data-theme=dark] .u-ft .u-x{background:#000;outline:1.5px solid #fff3}
.m-gacha-l{margin-top:30px;background:var(--t-night);border:var(--t-bd);border-radius:24px;padding:24px;box-shadow:var(--t-sh)}
@media (max-width:700px){.ug{grid-template-columns:1fr}.ug-go{width:140px;height:140px;font-size:22px}}

/* 今日の寄り道 */
.m-today{display:grid;grid-template-columns:1fr 1.2fr;gap:20px;align-items:start}
.m-today-l{display:grid;gap:14px}
.m-news{background:var(--t-card);border:var(--t-bd);border-radius:18px;box-shadow:var(--t-sh-s);padding:6px 18px 10px}
.m-news-k{font:900 13px var(--t-disp);color:var(--t-red2);padding-top:12px}
.m-sub{font:900 20px var(--t-disp);margin-top:34px}
@media (max-width:900px){.m-today{grid-template-columns:1fr}}

/* 全章 */
.m-part{margin-top:34px}
.m-part:first-of-type{margin-top:0}
.m-part h3{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font:900 21px var(--t-disp)}
.m-part h3 small{font:900 11.5px/1 var(--t-en);letter-spacing:.14em;background:var(--t-ink);color:var(--t-bg);padding:6px 9px;border-radius:7px}
.m-chs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:16px;margin-top:14px}
.m-ch{background:var(--t-card);border:var(--t-bd);border-radius:18px;box-shadow:var(--t-sh-s);overflow:hidden;display:flex;flex-direction:column}
.m-ch-hd{position:relative;display:block;text-decoration:none;color:#fff}
.m-ch-hd img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;border-bottom:var(--t-bd)}
.m-ch-hd span{display:block;padding:12px 14px 0;color:var(--t-ink)}
.m-ch-hd small{display:block;font:900 11.5px var(--t-jp);letter-spacing:.06em;color:var(--t-red2)}
.m-ch-hd b{font:900 19px/1.3 var(--t-disp)}
.m-ch-hd:hover b{color:var(--t-red)}
.m-ch > p{padding:6px 14px 0;color:var(--t-sub);font-weight:800;font-size:13.5px;line-height:1.65}
.m-ch details{padding:8px 14px 14px;margin-top:auto}
.m-ch summary{cursor:pointer;font:900 13.5px var(--t-disp);color:var(--t-red2);list-style:none}
.m-ch summary::-webkit-details-marker{display:none}
.m-ch summary::after{content:" ▼";font-size:.8em}
.m-ch details[open] summary::after{content:" ▲"}
.m-ch ol{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.m-ch ol a{display:flex;gap:8px;text-decoration:none;font-weight:800;font-size:13.5px;line-height:1.55}
.m-ch ol a span{flex:none;font:900 11.5px/1.9 var(--t-en);color:var(--t-faint)}
.m-ch ol a:hover{color:var(--t-red)}

/* 章扉の5問 */
.m-chq-in{display:grid;grid-template-columns:1fr 1.15fr;gap:36px;align-items:center}
.m-chq h2{font-size:clamp(26px,3.4vw,36px);line-height:1.35;margin-top:10px}
.m-chq-in > div:first-child p:last-child{margin-top:14px;color:#c9cde6;font-weight:700}
@media (max-width:900px){.m-chq-in{grid-template-columns:1fr;gap:22px}}

/* 読了ボーナス */
.bonus{margin-top:44px;background:var(--t-lime-bg);border:var(--t-bd);border-radius:24px;box-shadow:var(--t-sh);padding:24px;text-align:center}
.bonus-k{display:inline-block;font:900 12.5px var(--t-en);letter-spacing:.14em;background:var(--t-red);color:#fff;padding:5px 11px;border-radius:8px;border:2px solid var(--t-edge);transform:rotate(-3deg)}
.bonus h2{font:900 clamp(19px,2.4vw,24px)/1.5 var(--t-disp);margin-top:12px}
.bonus-c{margin-top:16px;display:grid;gap:14px;justify-items:center}
.bonus-card{width:100%;text-align:left;background:var(--t-card);border:var(--t-bd);border-radius:18px;padding:18px;box-shadow:var(--t-sh-s)}
.bonus-card h3{font:900 18px/1.6 var(--t-disp)}
.bonus-more{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px;margin-top:16px;font-weight:900;font-size:14px}

/* 寄り道ガチャ（左下のボタン） */
.fab{position:fixed;left:max(14px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom));z-index:55;display:inline-flex;align-items:center;gap:7px;padding:9px 16px 9px 10px;border-radius:999px;border:var(--t-bd);background:var(--t-lime);color:#15172e;font:900 14.5px var(--t-disp);box-shadow:var(--t-sh-s);cursor:pointer;transition:transform .15s,box-shadow .15s}
.fab svg{animation:fwig 6s ease-in-out infinite}
.fab:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--t-edge)}
.yr{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:16px}
.yr[hidden]{display:none}
.yr-bg{position:absolute;inset:0;background:#0b0f2acc}
.yr-in{position:relative;width:min(560px,100%);max-height:calc(100dvh - 32px);overflow:auto;background:var(--t-bg);color:var(--t-ink);border:var(--t-bd);border-radius:24px;box-shadow:var(--t-sh-h);padding:18px}
.yr-hd{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.yr-hd b{font:900 21px var(--t-disp)}
.yr-hd span{font-weight:800;font-size:13px;color:var(--t-sub);flex:1}
.yr-hd .ic-btn{width:40px;height:40px;border:2px solid var(--t-edge);background:var(--t-card);color:var(--t-ink);font-size:17px;cursor:pointer;border-radius:50%}
.yr-b{display:grid;gap:10px;margin-top:14px}
.yr-c{display:block;background:var(--t-card);border:2px solid var(--t-edge);border-radius:16px;padding:12px 14px;text-decoration:none;box-shadow:2px 2px 0 var(--t-edge)}
.yr-c small{display:inline-block;font:800 11.5px var(--t-jp);color:var(--t-red2);background:var(--t-red-bg);border-radius:999px;padding:2px 9px}
.yr-u h3{font:900 16.5px/1.6 var(--t-disp);margin-top:6px}
.yr-u .ug-rv{margin-top:8px;padding:7px 14px;font-size:13px}
.yr-m{display:grid;grid-template-columns:112px 1fr;gap:12px;align-items:center}
.yr-m img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:10px;border:2px solid var(--t-edge);display:block}
.yr-m b{display:block;font:900 14px/1.5 var(--t-disp);margin-top:4px}
.yr-m:hover b{color:var(--t-red)}
.yr-ft{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.yr-ft .t-btn{min-height:48px;font-size:15px;flex:1}
@media (max-width:560px){.fab{padding:8px 13px 8px 9px;font-size:13.5px}.yr{place-items:end center;padding:8px}.yr-in{border-radius:22px 22px 16px 16px}}
.h-chips a.hot{background:var(--t-lime);color:#15172e;border-color:var(--t-lime)}
@media (prefers-reduced-motion:reduce){.fab svg,.qz.flash-ok,.qz.flash-ng{animation:none}}
.ug-from{display:block;margin-top:10px;font:800 12px var(--t-jp);color:var(--t-sub)}
.ug-from + h3{margin-top:2px!important}

/* ---------- 特集ページ（tools/pages-special.mjs）：夜の藍のヒーローに大きな絵、ルールカード・判定・今のあなたへの置きかえ ---------- */
.sp-hero{position:relative;overflow:hidden;background:radial-gradient(900px 520px at 92% 10%,#3248e0 0%,transparent 60%),radial-gradient(760px 500px at 0% 110%,#6a2fd8 0%,transparent 62%),var(--t-night);color:#fff;border-bottom:var(--t-bd)}
.sp-hero-in{max-width:var(--t-w);margin:0 auto;padding:10px 24px 56px;display:grid;grid-template-columns:1fr 1.05fr;gap:40px;align-items:center}
.sp-hero .t-crumb{color:#c9cdf5}
.sp-kick{display:inline-block;margin-top:22px;font:900 14px var(--t-disp);color:var(--t-lime);border-bottom:3px solid var(--t-lime);padding-bottom:3px}
.sp-hero h1{margin-top:16px}
.sp-h1a{display:block;font:900 clamp(34px,5vw,62px)/1.15 var(--t-disp)}
.sp-h1a span{display:inline-block}
.sp-h1b{display:block;margin-top:14px;font:900 clamp(18px,2.2vw,24px)/1.55 var(--t-disp);background:linear-gradient(95deg,var(--t-lime) 0%,#7df0c8 45%,#7fb2ff 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.sp-lead{margin-top:18px;font-size:16px;line-height:2;color:#dde0f7;font-weight:700;max-width:560px}
.sp-stats{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 0;padding:0;list-style:none}
.sp-stats li{flex:1 1 0;border:2px solid #ffffff38;background:#ffffff0d;border-radius:14px;padding:10px 14px 8px;min-width:96px}
.sp-stats b{display:block;font:900 26px/1.1 var(--t-disp);color:var(--t-lime)}
.sp-stats span{font-size:12px;font-weight:800;color:#c9cdf5}
.sp-hero-img{margin-top:30px}
.sp-hero-img img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:22px;border:3px solid #05060f;box-shadow:8px 8px 0 var(--t-lime);transform:rotate(1.2deg)}
@media (max-width:900px){.sp-hero-in{grid-template-columns:1fr;gap:6px;padding:8px 20px 44px}.sp-hero-img{order:-1;margin-top:18px}.sp-hero-img img{transform:none;box-shadow:6px 6px 0 var(--t-lime)}}
@media (max-width:560px){.sp-hero-in{padding:6px 16px 40px}.sp-stats li{flex:1 1 40%;min-width:0;padding:8px 10px}.sp-stats b{font-size:21px}}
.sp-fig{margin:26px 0 0}
.sp-fig img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:20px;border:var(--t-bd);box-shadow:var(--t-sh)}
.sp-ref{font:800 12px var(--t-en);text-decoration:none;color:var(--t-blue);margin-left:3px;vertical-align:2px}
/* ルール */
.md .sp-rules{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:18px}
.md .sp-rules li{margin:0;background:var(--t-card);border:var(--t-bd);border-radius:20px;padding:20px 22px;box-shadow:var(--t-sh)}
.sp-rule-hd{display:flex;gap:12px;align-items:center}
.sp-no{flex:none;font:900 22px/1 var(--t-en);background:var(--t-red);color:#fff;border:2px solid var(--t-edge);border-radius:12px;padding:8px 10px;box-shadow:2px 2px 0 var(--t-edge)}
.md .sp-rules h3{margin:0;padding:0;border:0;font:900 clamp(18px,2.2vw,21px)/1.45 var(--t-disp)}
.md .sp-en{margin-top:14px;font:700 16px/1.6 var(--t-en);background:var(--t-blue-bg);border-left:5px solid var(--t-blue);border-radius:0 12px 12px 0;padding:10px 14px}
.sp-en small{display:block;font:700 12px var(--t-jp);color:var(--t-sub);margin-top:4px}
.md .sp-rules p{margin-top:12px}
.md .sp-today{background:var(--t-lime-bg);border:2px dashed var(--t-edge);border-radius:14px;padding:12px 14px;font-weight:700}
.sp-today b{display:inline-block;font:900 12px/1 var(--t-disp);background:var(--t-ink);color:var(--t-bg);border-radius:999px;padding:6px 10px;margin-right:8px;vertical-align:1px}
/* 年表 */
.md .sp-tl{list-style:none;padding:0 0 0 22px;margin:22px 0 0;border-left:4px solid var(--t-ink)}
.md .sp-tl li{position:relative;margin:0 0 18px;padding-left:6px}
.sp-tl li::before{content:"";position:absolute;left:-35px;top:6px;width:18px;height:18px;border-radius:50%;background:var(--t-sun);border:3px solid var(--t-edge)}
.sp-tl b{font:900 15px var(--t-disp);color:var(--t-red2)}
.md .sp-tl p{margin:2px 0 0}
/* 判定 */
.sp-verd{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:22px}
.sp-v{position:relative;background:var(--t-card);border:var(--t-bd);border-radius:18px;padding:18px 18px 16px;box-shadow:var(--t-sh-s)}
.sp-v-b{display:inline-block;font:900 13px/1 var(--t-disp);border:2px solid var(--t-edge);border-radius:999px;padding:7px 12px}
.sp-v.ok .sp-v-b{background:var(--t-lime);color:#15172e}.sp-v.half .sp-v-b{background:var(--t-sun);color:#15172e}.sp-v.ng .sp-v-b{background:var(--t-red);color:#fff}
.sp-v b{display:block;margin-top:10px;font:900 17px/1.5 var(--t-disp)}
.md .sp-v p{margin-top:8px;font-size:14.5px;line-height:1.85}
@media (max-width:640px){.sp-verd{grid-template-columns:1fr}}
/* 今のあなたに当てはめると（超絶まとめ） */
.sp-map{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:24px}
.sp-m{position:relative;background:var(--t-card);border:var(--t-bd);border-radius:20px;overflow:hidden;box-shadow:var(--t-sh)}
.sp-m-then{background:var(--t-night);color:#fff;padding:16px 18px 18px}
.sp-m-then small,.sp-m-now small{display:block;font:900 11.5px var(--t-disp);letter-spacing:.06em}
.sp-m-then small{color:var(--t-lime)}
.sp-m-then b{display:block;font:900 17px/1.5 var(--t-disp);margin-top:4px;padding-right:34px}
.sp-m-arrow{font-size:12px;line-height:1;margin:-12px auto 0;position:relative;width:30px;height:24px;display:grid;place-items:center;background:var(--t-lime);border:2px solid var(--t-edge);border-radius:999px;color:#15172e}
.sp-m-now{padding:8px 18px 18px}
.sp-m-now small{color:var(--t-red2)}
.sp-m-now b{display:block;font:900 18px/1.5 var(--t-disp);margin-top:4px}
.md .sp-m-now p{margin-top:8px;font-size:14.5px;line-height:1.85}
.md .sp-m-tools{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.sp-m-tools a{font:800 12.5px/1.2 var(--t-jp);padding:6px 10px;border-radius:999px;border:2px solid var(--t-edge);background:var(--t-sun-bg);text-decoration:none}
.sp-m-tools a:hover{background:var(--t-lime);color:#15172e}
.md .sp-m-time{font:800 13px var(--t-jp);color:var(--t-sub)}
.sp-m-no{position:absolute;top:10px;right:14px;font:900 34px/1 var(--t-en);color:#ffffff40}
@media (max-width:700px){.sp-map{grid-template-columns:1fr}}
/* サイクル */
.md .sp-cycle{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.md .sp-cycle li{margin:0;position:relative;background:var(--t-card);border:var(--t-bd);border-radius:16px;padding:14px 12px;box-shadow:var(--t-sh-s)}
.sp-cycle li:not(:last-child)::after{content:"▶";position:absolute;right:-12px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--t-red);z-index:1}
.sp-cycle span{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--t-lime);border:2px solid var(--t-edge);font:900 14px var(--t-en);color:#15172e}
.sp-cycle b{display:block;margin-top:8px;font:900 15.5px/1.45 var(--t-disp)}
.md .sp-cycle p{margin-top:6px;font-size:13.5px;line-height:1.75}
@media (max-width:860px){.md .sp-cycle{grid-template-columns:1fr}.sp-cycle li:not(:last-child)::after{content:"▼";right:auto;left:22px;top:auto;bottom:-14px;transform:none}}
/* レベル別 */
.sp-lv{display:grid;gap:12px;margin-top:22px}
.sp-lv details{background:var(--t-card);border:var(--t-bd);border-radius:18px;box-shadow:var(--t-sh-s)}
.sp-lv summary{cursor:pointer;list-style:none;padding:16px 20px;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
.sp-lv summary::-webkit-details-marker{display:none}
.sp-lv summary::after{content:"＋";margin-left:auto;font:900 18px var(--t-en)}
.sp-lv details[open] summary::after{content:"−"}
.sp-lv summary b{font:900 18px var(--t-disp)}
.sp-lv summary small{font:700 13.5px var(--t-jp);color:var(--t-sub)}
.sp-lv details > :not(summary){margin-left:20px;margin-right:20px}
.sp-lv details > :last-child{margin-bottom:18px}
.sp-lv details[open]{background:var(--t-bg2)}
/* 1週間 */
.sp-week{display:grid;gap:8px;margin-top:20px}
.sp-week div{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:start;background:var(--t-card);border:2px solid var(--t-edge);border-radius:14px;padding:12px 14px}
.sp-week b{font:900 14px var(--t-disp);background:var(--t-sun);border:2px solid var(--t-edge);border-radius:10px;text-align:center;padding:4px 6px;color:#15172e}
.md .sp-week p{margin:0;font-size:15px}
@media (max-width:520px){.sp-week div{grid-template-columns:1fr}.sp-week b{justify-self:start}}
.sp-caution b::before{content:"注意"}
/* 体験コーナー */
.sp-try{margin-top:24px;background:var(--t-night);color:#fff;border:var(--t-bd);border-radius:22px;padding:20px;box-shadow:6px 6px 0 var(--t-lime)}
.sp-try-steps{display:flex;flex-wrap:wrap;gap:8px}
.sp-try-steps button{font:900 14px var(--t-disp);padding:9px 14px;border-radius:999px;border:2px solid #ffffff60;background:transparent;color:#fff;cursor:pointer}
.sp-try-steps button[aria-pressed=true]{background:var(--t-lime);color:#15172e;border-color:var(--t-lime)}
.md .sp-try-tip{margin-top:14px;font-weight:800;color:var(--t-lime);font-size:15px}
.md .sp-try-text{margin:14px 0 0;padding-left:1.4em}
.md .sp-try-text li{margin:10px 0}
.sp-try-text li::marker{color:var(--t-lime)}
.sp-try-en{font:700 18px/1.6 var(--t-en);transition:filter .3s,opacity .3s;cursor:pointer}
.sp-try-text small{display:block;font:700 13px var(--t-jp);color:#c9cdf5}
.sp-try .t-pill{font-size:12px;padding:3px 9px;vertical-align:2px}
.sp-try[data-step="1"] .sp-try-text small{display:none}
.sp-try[data-step="1"] .sp-try-en{opacity:.35}
.sp-try[data-step="2"] .sp-try-en{filter:blur(7px);opacity:.6}
.sp-try .sp-try-en.peek{filter:none;opacity:1}
.sp-try-ft{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:16px}
.sp-try-ft small{color:#c9cdf5;font-size:13px;font-weight:700}
/* 関係する節に置く特集カード */
.sp-card{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center;margin-top:18px;background:var(--t-card);border:var(--t-bd);border-radius:18px;padding:12px;box-shadow:var(--t-sh);text-decoration:none;transition:transform .15s}
.sp-card:hover{transform:translate(-2px,-2px)}
.sp-card img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:12px;border:2px solid var(--t-edge)}
.sp-card small{display:inline-block;font:900 11.5px/1 var(--t-disp);background:var(--t-red);color:#fff;border-radius:999px;padding:5px 10px}
.sp-card b{display:block;margin-top:8px;font:900 16.5px/1.45 var(--t-disp)}
.sp-card i{display:block;font-style:normal;font-size:13.5px;color:var(--t-sub);margin-top:4px;font-weight:700}
@media (max-width:520px){.sp-card{grid-template-columns:1fr}}

/* ===== トップの動き（site/motion.js）。.mo はホームの先頭の小さなスクリプトが付ける ===== */
@property --sh{syntax:"<percentage>";inherits:true;initial-value:-30%}
@property --gk{syntax:"<number>";inherits:true;initial-value:0}
.mo-sr,.h-h1 .mo-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.mc,.h-h1 .mc{display:inline-block;will-change:transform}
.mo:not(.mo-ready) .h-h1,
.mo .h-hero canvas:not(.mo-in),.mo .h-kick:not(.mo-in),.mo .h-lead:not(.mo-in),.mo .h-q:not(.mo-in),.mo .h-chips>:not(.mo-in),.mo .h-art:not(.mo-in),
.mo .t-sec-hd .t-k:not(.mo-in),.mo .t-sec-hd p:not(.mo-in),.mo .t-more:not(.mo-in),.mo .mc:not(.mo-in),
.mo .h-goal:not(.mo-in),.mo .h-stage:not(.mo-in),.mo .h-today-main:not(.mo-in),.mo .h-door:not(.mo-in){opacity:0}
/* 見出し2行目：1字ずつに同じグラデーションをずらして貼り、光の帯を通す */
.h-h1 .g.mo-g{background:none;animation:none;color:#fff;--sh:-30%;--gk:0;animation:mo-gk 6s ease-in-out infinite alternate}
.mo-g .mc{background-image:linear-gradient(100deg,#fff0 calc(var(--sh) - 7%),#ffffffee var(--sh),#fff0 calc(var(--sh) + 7%)),linear-gradient(95deg,var(--t-lime) 0%,#7df0c8 40%,#7fb2ff 75%,#ff8a6e 100%);background-size:var(--cw,100%) 100%;background-position:var(--cx,0) 0,calc(var(--cx,0px) - var(--gk) * var(--cw,0px) / 2) 0;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;color:transparent}
.mo-g.mo-shine{animation:mo-gk 6s ease-in-out infinite alternate,mo-sh 1.3s cubic-bezier(.5,0,.3,1) both}
@keyframes mo-gk{to{--gk:1}}
@keyframes mo-sh{from{--sh:-30%}to{--sh:80%}}
/* ヒーロー：マウスのスポットライト・絵の傾きと映りこみ・ゆっくり浮かぶ */
.mo-spot{position:absolute;inset:0;pointer-events:none;background:radial-gradient(520px circle at var(--mx,70%) var(--my,30%),rgba(196,240,60,.13),rgba(127,178,255,.07) 40%,transparent 70%);transition:background .2s}
.mo .h-art{transform:translateY(var(--py,0px)) perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-style:preserve-3d}
.mo .h-art.mo-float{animation:mo-float 6s ease-in-out infinite}
@keyframes mo-float{50%{translate:0 -12px}}
.mo-glare{position:absolute;inset:0;border-radius:22px;transform:rotate(1.5deg);pointer-events:none;background:radial-gradient(circle at var(--gx,30%) var(--gy,20%),rgba(255,255,255,.42),rgba(255,255,255,0) 52%);mix-blend-mode:soft-light}
/* 検索：例のタイプ表示と、呼吸する光の輪 */
.mo-type{color:#15172e;font-weight:900}
.mo-caret{display:inline-block;width:2px;height:1.15em;margin-left:2px;vertical-align:-.2em;background:var(--t-red);animation:mo-blink 1s steps(1) infinite}
@keyframes mo-blink{50%{opacity:0}}
.mo-ok .h-q{animation:mo-ring 2.8s 2.6s ease-out infinite}
.mo-ok .h-q:hover{animation:none}
@keyframes mo-ring{0%{box-shadow:6px 6px 0 #05071a,0 0 0 0 rgba(196,240,60,.75)}70%,100%{box-shadow:6px 6px 0 #05071a,0 0 0 10px rgba(196,240,60,0)}}
/* カード：マウスで3Dに傾く（ふだんの「浮く」動きはそのまま） */
.mo .h-goal,.mo .h-stage,.mo .h-door{transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s var(--t-ease),box-shadow .15s}
.mo .h-goal:hover,.mo .h-stage:hover,.mo .h-door:hover{transform:perspective(800px) translate(-2px,-2px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}
.mo .h-today-main{transform:perspective(1200px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .3s var(--t-ease),box-shadow .18s}
.mo .h-today-main:hover{transform:perspective(1200px) translate(-3px,-3px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}
.mo .h-door{transform-origin:50% 0}
.mo .h-goal:hover img{animation:mo-wob .6s ease}
@keyframes mo-wob{30%{rotate:-14deg;scale:1.12}60%{rotate:9deg}100%{rotate:0deg;scale:1}}
.mo .h-door b::after{display:inline-block;transition:translate .25s var(--t-ease)}
.mo .h-door:hover b::after{translate:6px 0}
.mo .h-stage img{transition:scale .6s var(--t-ease)}
.mo .h-stage:hover img{scale:1.06}
.mo .h-stage{isolation:isolate}
@media (prefers-reduced-motion:reduce){.mo-g .mc,.mo-g.mo-shine,.mo .h-art.mo-float,.mo-ok .h-q,.mo-caret{animation:none}}

/* ---------- 英検アプリ ぜんぶガイド（/eiken-apps/。tools/pages-eikenapps.mjs・site/eikenapps.js） ---------- */
.ea-hero-img img{display:block;width:100%;border:var(--t-bd);border-radius:var(--t-r);box-shadow:6px 6px 0 #05060f;transform:rotate(1.2deg)}
.ea-pick{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 22px}
.ea-pick span{font:900 14px var(--t-disp);margin-right:4px}
.ea-pick button{font:900 15px var(--t-disp);min-height:44px;padding:0 18px;border-radius:999px;border:var(--t-bd);background:var(--t-card);color:var(--t-ink);cursor:pointer;box-shadow:2px 2px 0 var(--t-edge)}
.ea-pick button[aria-pressed=true]{background:var(--t-ink);color:var(--t-bg)}
.ea-pick.dark{margin:26px 0 0}
.ea-pick.dark span{color:#fff}
.ea-pick.dark button{border-color:#fff;background:#ffffff14;color:#fff;box-shadow:none}
.ea-pick.dark button[aria-pressed=true]{background:var(--t-lime);color:#15172e;border-color:var(--t-lime)}
/* 級（英検）・科目（共通テスト）でしぼる：data-lv が選んだ値をふくまないものは隠す */
.ea[data-lv="2"] [data-lv]:not([data-lv~="2"]),.ea[data-lv="p1"] [data-lv]:not([data-lv~="p1"]),.ea[data-lv="1"] [data-lv]:not([data-lv~="1"]),.ea[data-lv="r"] [data-lv]:not([data-lv~="r"]),.ea[data-lv="l"] [data-lv]:not([data-lv~="l"]){display:none}

.ea-scenes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:28px}
.ea-scenes button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:14px 16px;border-radius:var(--t-r-s);border:var(--t-bd);background:var(--t-card);color:var(--t-ink);cursor:pointer;box-shadow:var(--t-sh-s);transition:transform .12s var(--t-ease)}
.ea-scenes button:hover{transform:translate(-2px,-2px)}
.ea-scenes button span{font-size:26px;line-height:1.2}
.ea-scenes button b{font:900 16px/1.35 var(--t-disp)}
.ea-scenes button small{font-size:12px;font-weight:800;color:var(--t-sub)}
.ea-scenes button[aria-pressed=true]{background:var(--t-lime);color:#15172e}
.ea-scenes button[aria-pressed=true] small{color:#3d4a12}
.ea:not(.ea-js) .ea-scenes button[aria-pressed=true]{background:var(--t-card);color:var(--t-ink)}
.ea-panels{display:grid;gap:22px}
.ea-panel{border:var(--t-bd);border-radius:var(--t-r);background:var(--t-card);box-shadow:var(--t-sh);padding:26px 26px 22px;scroll-margin-top:90px}
.ea-panel-hd{display:flex;align-items:center;gap:14px}
.ea-panel-ic{font-size:40px;line-height:1}
.ea-when{font:900 12.5px var(--t-jp);color:var(--t-red);letter-spacing:.04em}
.ea-panel h3{font-size:clamp(22px,3vw,28px)}
.ea-lead{margin-top:12px;font-weight:700;color:var(--t-sub);line-height:1.9}
.ea-steps{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px;counter-reset:ea}
.ea-step{counter-increment:ea;display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:12px;padding:12px 14px;border:2px solid var(--t-line);border-radius:14px;background:var(--t-bg)}
.ea-step::before{content:counter(ea);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--t-ink);color:var(--t-bg);font:900 15px var(--t-en)}
.ea-step-ic{font-size:26px;line-height:1}
.ea-step b{font:900 15.5px/1.4 var(--t-disp)}
.ea-step p{font-size:14.5px;font-weight:700;color:var(--t-sub);line-height:1.7;margin-top:2px}
.ea-go{white-space:nowrap;font:900 14px var(--t-disp);text-decoration:none;padding:9px 14px;border-radius:999px;border:var(--t-bd);background:var(--t-lime);color:#15172e;box-shadow:2px 2px 0 var(--t-edge)}
.ea-go:hover{transform:translate(-1px,-1px)}
.ea-reads{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;padding-top:14px;border-top:2px dashed var(--t-line)}
.ea-reads b{font:900 13px var(--t-disp);margin-right:4px}
.ea-reads a{font-size:13.5px;font-weight:800;text-decoration:none;border-bottom:2px solid var(--t-blue);color:var(--t-ink)}
.ea-reads a:hover{color:var(--t-blue)}

.ea-tl{list-style:none;padding:0;margin:0;display:grid;gap:0;border-left:4px solid var(--t-ink);margin-left:10px}
.ea-tl li{position:relative;padding:4px 0 22px 26px}
.ea-tl li::before{content:"";position:absolute;left:-12px;top:8px;width:20px;height:20px;border-radius:50%;background:var(--t-lime);border:var(--t-bd)}
.ea-tl b{font:900 18px/1.4 var(--t-disp)}
.ea-tl p{font-weight:700;color:var(--t-sub);margin-top:2px}
.ea-tl span{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ea-tl span a{font:800 13px/1.2 var(--t-jp);padding:6px 11px;border-radius:999px;border:2px solid var(--t-edge);background:var(--t-card);text-decoration:none}
.ea-tl span a:hover{background:var(--t-lime);color:#15172e}

.ea-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:22px}
.ea-card{display:flex;flex-direction:column;border:var(--t-bd);border-radius:var(--t-r);background:var(--t-card);box-shadow:var(--t-sh);padding:22px 22px 20px;scroll-margin-top:90px}
.ea-card:target{outline:4px solid var(--t-lime);outline-offset:3px}
.ea-card-hd{display:flex;gap:14px;align-items:flex-start}
.ea-card-ic{flex:none;width:56px;height:56px;border-radius:16px;display:grid;place-items:center;font-size:30px;background:var(--t-bg2);border:var(--t-bd)}
.ea-tag{display:inline-block;font:900 11.5px var(--t-jp);color:var(--t-red);letter-spacing:.05em}
.ea-card h3{font-size:19px;line-height:1.4}
.ea-lvs{display:flex;gap:5px;margin-top:6px}
.ea-lv{font:900 11.5px/1 var(--t-jp);padding:4px 8px;border-radius:999px;border:2px solid currentColor}
.ea-lv.l2{color:var(--t-blue)}.ea-lv.lp1{color:var(--t-red2)}.ea-lv.l1{color:var(--t-violet)}.ea-lv.lr{color:var(--t-blue)}.ea-lv.ll{color:var(--t-red2)}
.ea-what{margin-top:14px;font-size:14.5px;font-weight:700;line-height:1.85}
.ea-how{margin-top:14px;padding:12px 14px;border-radius:12px;background:var(--t-lime-bg)}
.ea-how b{font:900 13.5px var(--t-disp)}
.ea-how ol{margin:6px 0 0;padding-left:1.3em;font-size:14px;font-weight:700;line-height:1.75}
.ea-how li+li{margin-top:4px}
.ea-sub{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.ea-sub a{font:800 12.5px/1.2 var(--t-jp);padding:6px 10px;border-radius:999px;border:2px solid var(--t-edge);text-decoration:none}
.ea-sub a:hover{background:var(--t-lime);color:#15172e}
.ea-btns{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:auto;padding-top:18px}
.ea-btns .t-btn{min-height:48px;padding:0 20px;font-size:15px}
.ea-guide{font-weight:900;font-size:14px;text-decoration:none;border-bottom:3px solid var(--t-lime)}
.ea-note{margin-top:22px;font-size:14px;font-weight:700;color:var(--t-sub)}
.ea-note a{border-bottom:2px solid var(--t-blue);text-decoration:none}
@media (max-width:900px){.ea-hero-img{max-width:520px}}
@media (max-width:560px){
  .ea-scenes{grid-template-columns:1fr 1fr;gap:10px}
  .ea-scenes button{padding:12px}
  .ea-panel{padding:20px 16px 18px}
  .ea-step{grid-template-columns:auto 1fr;gap:8px 10px}
  .ea-step-ic{display:none}
  .ea-step .ea-go{grid-column:2;justify-self:start}
  .ea-grid{grid-template-columns:1fr}
  .ea-card{padding:18px 16px}
  .ea-pick button{padding:0 14px}
}

/* ホームの「まず30秒、あそんでから読む」（10問チャレンジ＋目から鱗ガチャ） */
.h-play-g{display:grid;grid-template-columns:1.25fr 1fr;gap:24px;align-items:start}
.h-play-k{font:900 15px var(--t-disp);color:var(--t-lime);margin-bottom:10px}
.ug.v{grid-template-columns:1fr;gap:16px}
.ug.v .ug-m{display:flex;align-items:center;gap:16px;text-align:left}
.ug.v .ug-go{width:112px;height:112px;font-size:20px;flex:none}
.ug.v .ug-n{margin-top:0}
.ug.v .ug-c{min-height:150px}
@media (max-width:900px){.h-play-g{grid-template-columns:1fr}}
/* ヘッダーの「英文法・英語構文」：スマホの5列では「文法・構文」（2026-10-10） */
.tz-nav .ns{display:none}
@media (max-width:560px){.tz-nav .nl{display:none}.tz-nav .ns{display:inline}}
/* 特集：クイズ（data/special の kind: "quiz"） */
.sp-quiz{display:grid;gap:16px;margin-top:22px}
.sp-q{background:var(--t-card);border:var(--t-bd);border-radius:18px;padding:18px 18px 14px;box-shadow:var(--t-sh-s)}
.sp-q-no{font:900 14px var(--t-disp);color:var(--t-red2)}
.sp-q-no small{margin-left:10px;font:800 12.5px var(--t-jp);color:var(--t-sub)}
.sp-q-en{margin-top:6px;font:800 18px/1.6 var(--t-en)}
.sp-q-ch{display:grid;gap:8px;margin-top:12px}
.sp-q-ch button{text-align:left;font:800 15px/1.6 var(--t-jp);padding:10px 14px;border-radius:12px;border:2px solid var(--t-edge);background:var(--t-bg);color:var(--t-ink);cursor:pointer}
.sp-q-ch button:hover{background:var(--t-sun-bg)}
.sp-q-ch button.ok{background:var(--t-lime);color:#15172e}
.sp-q-ch button.ng{background:var(--t-red);color:#fff}
.sp-q.done .sp-q-ch button{cursor:default}
.sp-q-ans{margin-top:10px}
.sp-q-ans summary{cursor:pointer;font:900 13px var(--t-disp);color:var(--t-sub)}
.sp-q-ans p{margin-top:8px;line-height:1.9}
.sp-q-score{font:900 18px/1.6 var(--t-disp);background:var(--t-night);color:#fff;border:var(--t-bd);border-radius:16px;padding:14px 18px;box-shadow:5px 5px 0 var(--t-lime)}
.sp-q-score a{display:inline-block;margin-left:10px;font:900 14px var(--t-disp);color:#15172e;background:var(--t-lime);border:2px solid #05060f;border-radius:999px;padding:6px 14px;text-decoration:none}

/* ===== 読み物にする（2026-10-10「大和書房から本の依頼が来るレベル」「寝るのを忘れて読み進める」「入口はシンプルに」）：pages-book.mjs ===== */
/* ホーム：日がわりの「えっ」1本 → 答えを読む */
.h-hook .h-kick{font-size:13px}
.h-hook .h-h1{font-size:clamp(34px,5vw,62px)}
.h-hook .h-lead{font-size:clamp(16px,1.6vw,18.5px);line-height:1.95;max-width:600px}
.h-cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:26px}
.h-go{min-height:60px;padding:0 28px;font-size:18px}
.h-go small{font:800 12.5px var(--t-jp);background:#15172e;color:var(--t-lime);border-radius:999px;padding:3px 9px}
.h-more{color:#fff;font-weight:900;font-size:15px;text-decoration:none;border-bottom:2px solid #ffffff66;padding-bottom:2px}
.h-more:hover{border-color:var(--t-lime);color:var(--t-lime)}
.h-hook .h-q{margin-top:30px;max-width:520px;padding:12px 18px;font-size:14.5px;box-shadow:4px 4px 0 #05071a}
@media (max-width:900px){.h-simple.h-hook .h-art{display:block;max-width:none;order:-1}.h-hook .h-art img{aspect-ratio:16/9;transform:none;border-radius:16px}.h-hook .h-hero-in{gap:22px}}
@media (max-width:560px){.h-go{flex:1 1 100%;font-size:17px}.h-hook .h-hero-in{padding:22px 16px 34px}.h-hook .h-h1{margin-top:14px}}

/* 節：謎の書き出し → 本文 → 答え → つづき */
.a-open{margin-top:40px;font:700 clamp(17px,1.9vw,19px)/2.05 var(--t-jp);color:var(--t-ink);letter-spacing:.01em}
.a-open{border-left:6px solid var(--t-lime);padding-left:18px}
details.a-toc{padding:12px 20px}
details.a-toc summary{cursor:pointer;font:900 15px var(--t-disp);list-style:none}
details.a-toc summary::-webkit-details-marker{display:none}
details.a-toc summary::after{content:" ＋";color:var(--t-red)}
details.a-toc[open] summary::after{content:" －"}
.a-ans{position:relative;margin-top:56px;background:var(--t-night);color:#fff;border:var(--t-bd);border-radius:22px;box-shadow:6px 6px 0 var(--t-lime);padding:32px 26px 26px}
.a-ans > b{position:absolute;top:-16px;left:20px;background:var(--t-lime);color:#15172e;font:900 13.5px/1 var(--t-disp);padding:9px 15px;border-radius:999px;border:2px solid var(--t-edge)}
.a-ans p{font:900 clamp(19px,2.4vw,24px)/1.6 var(--t-disp)}
.a-quizme-l{color:var(--t-sub);font-weight:700;font-size:14px;margin-top:6px}
.a-share-end{margin-top:30px}
.a-end{margin-top:56px}
.a-prog{display:flex;align-items:center;gap:12px;font:900 13px var(--t-disp);color:var(--t-sub)}
.a-prog i{flex:1;height:10px;border-radius:99px;background:var(--t-bg2);border:2px solid var(--t-edge);position:relative;overflow:hidden}
.a-prog i::before{content:"";position:absolute;inset:0;width:var(--p);background:var(--t-lime)}
.a-next{display:block;margin-top:14px;text-decoration:none;color:#fff;background:linear-gradient(135deg,var(--t-night),var(--t-night2));border:var(--t-bd);border-radius:24px;box-shadow:var(--t-sh-h);padding:22px;transition:transform .15s var(--t-ease),box-shadow .15s}
.a-next:hover{transform:translate(-3px,-3px);box-shadow:10px 10px 0 var(--t-edge)}
.a-next-k{display:inline-block;font:900 13px var(--t-disp);color:#15172e;background:var(--t-lime);border-radius:999px;padding:6px 13px}
.a-next-in{display:grid;grid-template-columns:200px 1fr;gap:20px;align-items:center;margin-top:16px}
.a-next-in img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:14px;border:2px solid #fff;display:block}
.a-next-in b{color:#fff;display:block;font:900 clamp(19px,2.3vw,24px)/1.5 var(--t-disp)}
.a-next-in small{display:block;margin-top:8px;color:#c9cdf5;font-weight:700;font-size:13.5px}
.a-next-go{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:12px;font:900 16px var(--t-disp);color:var(--t-lime)}
@media (max-width:560px){.a-next-in{grid-template-columns:1fr}.a-next{padding:18px}}
.a-kit{margin-top:72px;padding-top:28px;border-top:3px dashed var(--t-line)}
.a-kit-k{font:900 12px var(--t-en);letter-spacing:.14em;color:var(--t-red)}
.a-kit-h{font:900 clamp(22px,2.8vw,28px)/1.4 var(--t-disp);margin-top:4px}
.a-kit .a-blk:first-of-type{margin-top:22px}
.m-today1{max-width:780px}
.h-hook .h-hero-in > div:first-child{container-type:inline-size;min-width:0}
.h-hook .h-h1{font-size:clamp(28px,8.4cqi,60px);line-height:1.22}

/* ===== ホーム：何のサイトか → 入口8つ（2026-10-11「トップがいきなりわからない」） ===== */
.h-top .h-hero-in{grid-template-columns:1fr;padding:44px 24px 46px;text-align:left}
.h-top .h-h1{font-size:clamp(36px,6vw,72px);margin-top:16px}
.h-top .h-lead{max-width:720px;font-size:clamp(15.5px,1.6vw,18px);margin-top:16px}
.h-top .h-q{max-width:640px;margin-top:22px}
.h-gates-sec{padding-top:40px}
.h-gates{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.h-gate{display:flex;flex-direction:column;background:var(--t-card);border:var(--t-bd);border-radius:18px;box-shadow:var(--t-sh);overflow:hidden;transition:transform .15s,box-shadow .15s}
.h-gate:hover{transform:translate(-2px,-2px);box-shadow:var(--t-sh-h)}
.h-gate-main{display:flex;flex-direction:column;flex:1;text-decoration:none;color:inherit}
.h-gate-img{display:block;aspect-ratio:16/9;overflow:hidden;border-bottom:var(--t-bd);background:var(--c)}
.h-gate-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--t-ease,ease)}
.h-gate:hover .h-gate-img img{transform:scale(1.05)}
.h-gate-b{display:block;padding:14px 16px 16px;border-top:6px solid var(--c);flex:1}
.h-gate-b small{display:block;font:900 12.5px/1.4 var(--t-jp);color:var(--t-sub)}
.h-gate-b b{display:block;font:900 21px/1.35 var(--t-disp);margin-top:2px}
.h-gate-b b::after{content:" ▶";color:var(--t-red);font-size:.7em}
.h-gate-b span{display:block;font-size:13.5px;line-height:1.7;font-weight:700;color:var(--t-sub);margin-top:6px}
.h-gate-sub{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 14px}
.h-gate-sub a{font:800 12.5px/1 var(--t-jp);color:var(--t-ink);text-decoration:none;border:2px solid var(--t-edge);border-radius:999px;padding:6px 10px;background:var(--t-bg)}
.h-gate-sub a:hover{background:var(--t-lime);color:#15172e}
@media (max-width:1000px){.h-gates{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.h-top .h-hero-in{padding:26px 16px 30px}.h-gates{grid-template-columns:1fr 1fr;gap:12px}.h-gate-b{padding:10px 12px 12px}.h-gate-b b{font-size:16.5px}.h-gate-b span{display:none}.h-gate-sub{padding:0 12px 12px}.h-gate-sub a{font-size:11.5px;padding:5px 8px}.h-gates-sec{padding-top:28px}}
@media (prefers-reduced-motion:reduce){.h-gate,.h-gate-img img{transition:none}}
.h-top .h-hero-in{grid-template-columns:1fr 1.05fr;gap:36px;align-items:center}
.h-main4{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.h-m4{display:flex;flex-direction:column;text-decoration:none;color:#15172e;background:#fff;border:3px solid #fff;border-radius:16px;overflow:hidden;box-shadow:6px 6px 0 #05071a;transition:transform .15s,box-shadow .15s}
.h-m4:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 #05071a}
.h-m4 img{width:100%;aspect-ratio:2/1;object-fit:cover;display:block;border-bottom:5px solid var(--c)}
.h-m4 span{display:block;padding:10px 14px 12px}
.h-m4 small{display:block;font:900 11.5px/1.3 var(--t-jp);color:#565b78}
.h-m4 b{display:block;font:900 19px/1.3 var(--t-disp)}
.h-m4 b::after{content:" ▶";color:var(--t-red);font-size:.7em}
.h-m4 i{display:block;font-style:normal;font-size:12.5px;line-height:1.55;font-weight:700;color:#565b78;margin-top:3px}
.h-extra{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
.h-extra a{font:800 13.5px/1 var(--t-jp);color:var(--t-ink);text-decoration:none;border:2px solid var(--t-edge);border-radius:999px;padding:9px 14px;background:var(--t-card);box-shadow:2px 2px 0 var(--t-edge)}
.h-extra a:hover{background:var(--t-lime);color:#15172e}
@media (max-width:900px){.h-top .h-hero-in{grid-template-columns:1fr;gap:24px}}
@media (max-width:560px){.h-main4{gap:10px}.h-m4 span{padding:8px 10px 10px}.h-m4 b{font-size:15.5px}.h-m4 i{display:none}.h-m4 img{aspect-ratio:16/9}.h-top .h-q{margin-top:18px}}
@media (prefers-reduced-motion:reduce){.h-m4{transition:none}}
.h-hero .h-m4 b{color:#15172e}.h-hero .h-m4 small,.h-hero .h-m4 i{color:#565b78}
@media (max-width:560px){.h-top .h-hero-in{padding:20px 16px 26px;gap:18px}.h-top .h-h1{margin-top:12px;font-size:clamp(32px,10vw,44px)}.h-top .h-lead{font-size:14.5px;line-height:1.8;margin-top:12px}}
