/* 英語の歴史（tools/pages-history.mjs・site/history.js）。色と線は taizen.css の変数を使う */
.hx-body{--oe:#1fc7a0;--me:#ff4d2e;--em:#7b5cff;--mo:#3d6bff;
  --cG:#3d6bff;--cN:#1fc7a0;--cF:#ff4d2e;--cL:#7b5cff;--cK:#ffb000;--cW:#c4f03c;--cX:#b9bdd0}
.hx-body .c-oe{--c:var(--oe)}.hx-body .c-me{--c:var(--me)}.hx-body .c-em{--c:var(--em)}.hx-body .c-mo{--c:var(--mo)}
.hx-body .cat-G{--c:var(--cG)}.hx-body .cat-N{--c:var(--cN)}.hx-body .cat-F{--c:var(--cF)}.hx-body .cat-L{--c:var(--cL)}.hx-body .cat-K{--c:var(--cK)}.hx-body .cat-W{--c:var(--cW)}.hx-body .cat-X{--c:var(--cX)}
.hx-on .hx-rv{opacity:0}
@media print{.hx-on .hx-rv{opacity:1!important;transform:none!important}}

/* ヒーロー：浮かぶ古い文字 */
.hx-hero .hx-float{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hx-hero .hx-float span{position:absolute;left:var(--x);top:var(--y);font:900 clamp(18px,2.6vw,34px)/1 var(--t-en);color:#fff;opacity:.09;animation:hxFloat 9s ease-in-out var(--d) infinite;white-space:nowrap}
.hx-hero .hx-float span:nth-child(3n){font-size:clamp(28px,4vw,56px);opacity:.07}
.hx-hero .sp-hero-in{position:relative}
@keyframes hxFloat{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-18px) rotate(3deg)}}
@media (prefers-reduced-motion:reduce){.hx-hero .hx-float span{animation:none}}
.hx-go{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.hx-go .t-btn:not(.lime){background:transparent;color:#fff;border-color:#ffffffb0;box-shadow:none}
.hx-go .t-btn:not(.lime):hover{background:#ffffff18;box-shadow:none}

/* 見出し・目次 */
.hx-sec{scroll-margin-top:90px}
.hx-sec > h2{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.hx-era{display:inline-block;font:900 12px/1 var(--t-jp);padding:6px 10px;border-radius:999px;background:var(--c);color:#fff;border:2px solid var(--t-edge);letter-spacing:.04em}
.hx-era.c-oe,.hx-body .hx-era.c-oe{color:#0b2a22}
.hx-toc i{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--c);border:2px solid var(--t-edge);margin-right:7px;vertical-align:0}
.hx-h3{margin-top:34px!important}
.hx-fig{margin-top:22px}

/* 01 タイムマシン */
.hx-tm{margin-top:20px;border:var(--t-bd);border-radius:22px;box-shadow:var(--t-sh);background:var(--t-card);overflow:hidden}
.hx-tm-bar{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:var(--t-bd)}
.hx-tm-bar button{appearance:none;border:0;border-right:2px solid var(--t-edge);background:var(--t-bg2);color:var(--t-ink);padding:12px 6px;cursor:pointer;font:900 15px/1.25 var(--t-disp);display:flex;flex-direction:column;align-items:center;gap:3px;transition:background .2s}
.hx-tm-bar button:last-child{border-right:0}
.hx-tm-bar button small{font:800 11px var(--t-jp);color:var(--t-sub)}
.hx-tm-bar button[aria-pressed=true]{background:var(--c);color:#fff}
.hx-tm-bar button[aria-pressed=true] small{color:#fff}
.hx-tm-bar button.c-oe[aria-pressed=true]{color:#0b2a22}.hx-tm-bar button.c-oe[aria-pressed=true] small{color:#0b2a22}
.hx-tm-screen{padding:24px 22px 20px;background:radial-gradient(600px 220px at 50% 0%,color-mix(in srgb,var(--c) 22%,transparent),transparent 70%)}
.hx-tm-y{font:800 13px var(--t-jp);color:var(--t-sub)}
.hx-tm-y b{display:inline-block;background:var(--c);color:#fff;border:2px solid var(--t-edge);border-radius:8px;padding:2px 9px;margin-right:8px;font:900 14px var(--t-disp)}
.c-oe .hx-tm-y b{color:#0b2a22}
.hx-tm-words{display:flex;flex-wrap:wrap;gap:10px 8px;margin-top:16px;min-height:96px;align-content:flex-start}
.hx-w{display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--t-bg);border:2px solid var(--t-edge);border-radius:12px;padding:8px 11px 6px;box-shadow:2px 2px 0 var(--t-edge)}
.hx-w b{font:700 clamp(19px,2.6vw,26px)/1.1 Georgia,"Times New Roman",serif}
.hx-w small{font:800 11px/1.3 var(--t-jp);color:var(--t-sub);white-space:nowrap}
.hx-tm-note{margin-top:16px!important;font-size:14.5px;font-weight:700;line-height:1.85;padding-top:12px;border-top:1.5px dashed var(--t-line)}
.hx-tm-ft{padding:0 22px 20px}
@media (max-width:560px){.hx-tm-bar button{font-size:13px;padding:10px 2px}.hx-tm-screen{padding:18px 14px}.hx-tm-ft{padding:0 14px 16px}}

/* 02 年表 */
.hx-eras{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}
.hx-era-c{border:var(--t-bd);border-radius:16px;padding:14px 14px 12px;background:var(--t-card);box-shadow:var(--t-sh-s);border-top:8px solid var(--c)}
.hx-era-c b{display:block;font:900 17px var(--t-disp)}
.hx-era-c i{display:block;font:800 11.5px var(--t-en);font-style:normal;color:var(--t-sub)}
.hx-era-c span{display:inline-block;margin-top:6px;font:900 12px var(--t-jp);background:color-mix(in srgb,var(--c) 22%,var(--t-card));border-radius:6px;padding:2px 7px}
.hx-era-c p{margin-top:8px!important;font-size:13px;line-height:1.7;font-weight:700;color:var(--t-sub)}
@media (max-width:760px){.hx-eras{grid-template-columns:1fr 1fr}}
.hx-tl{list-style:none;margin:30px 0 0;padding:0 0 0 34px;position:relative}
.hx-tl-line{position:absolute;left:11px;top:6px;bottom:6px;width:5px;border-radius:5px;background:var(--t-line)}
.hx-tl-line i{position:absolute;inset:0;border-radius:5px;background:linear-gradient(var(--oe),var(--oe) 22%,var(--me) 26%,var(--me) 47%,var(--em) 52%,var(--em) 76%,var(--mo) 80%);transform-origin:top}
.hx-tl-i{position:relative;margin:0 0 16px;background:var(--t-card);border:var(--t-bd);border-radius:16px;padding:14px 18px 14px;box-shadow:var(--t-sh-s)}
.hx-tl-dot{position:absolute;left:-31px;top:18px;width:18px;height:18px;border-radius:50%;background:var(--c);border:3px solid var(--t-edge)}
.hx-tl-y{display:inline-block;font:900 13px var(--t-en);background:var(--c);color:#fff;border:2px solid var(--t-edge);padding:3px 9px;border-radius:8px}
.hx-tl-i.c-oe .hx-tl-y{color:#0b2a22}
.hx-tl-i h3{font-size:17.5px!important;margin:8px 0 4px!important}
.hx-tl-i p{font-size:14.5px;line-height:1.85;font-weight:600}
.hx-tl-i.big{background:color-mix(in srgb,var(--c) 12%,var(--t-card));box-shadow:var(--t-sh)}
.hx-tl-i.big h3{font-size:21px!important}
.hx-tl-i.big .hx-tl-dot{width:24px;height:24px;left:-34px;top:15px}

/* 03 家系図・グリム */
.hx-tree{margin-top:20px;border:var(--t-bd);border-radius:20px;padding:20px;background:var(--t-card);box-shadow:var(--t-sh)}
.hx-root{text-align:center;font:900 18px var(--t-disp);background:var(--t-night);color:#fff;border-radius:14px;padding:12px;border:var(--t-bd)}
.hx-root small{display:block;font:700 12px var(--t-jp);color:#c9cdf5;margin-top:4px}
.hx-brs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px;position:relative}
.hx-brs::before{content:"";position:absolute;left:8%;right:8%;top:-12px;height:2px;background:var(--t-edge)}
.hx-br{border:2px solid var(--t-edge);border-radius:14px;padding:12px;background:var(--t-bg)}
.hx-br.g{grid-column:span 3;background:var(--t-blue-bg)}
.hx-br > b{font:900 15px var(--t-disp)}
.hx-br ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.hx-br.g ul{grid-template-columns:repeat(3,1fr)}
.hx-br li{font-size:13.5px;line-height:1.6;font-weight:700;background:var(--t-card);border:1.5px solid var(--t-line);border-radius:10px;padding:7px 9px}
.hx-br li i{font-style:normal;display:inline-block;font:900 11px var(--t-jp);background:var(--t-ink);color:var(--t-bg);border-radius:5px;padding:1px 6px;margin-right:6px}
.hx-br li.donor{border:2px solid var(--t-red);background:var(--t-red-bg)}
.hx-br li.me{border:2.5px solid var(--t-edge);background:var(--t-lime);color:#15172e}
.hx-br li.me i{background:#15172e;color:#fff}
.hx-tree-lg{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px!important;font:800 12.5px var(--t-jp)}
.hx-tree-lg span::before{content:"";display:inline-block;width:14px;height:14px;border-radius:4px;margin-right:6px;vertical-align:-2px;border:2px solid var(--t-edge)}
.hx-tree-lg .me::before{background:var(--t-lime)}.hx-tree-lg .donor::before{background:var(--t-red-bg);border-color:var(--t-red)}
@media (max-width:760px){.hx-brs{grid-template-columns:1fr 1fr}.hx-br.g{grid-column:span 2}.hx-br.g ul{grid-template-columns:1fr}}
@media (max-width:460px){.hx-brs{grid-template-columns:1fr}.hx-br.g{grid-column:auto}.hx-tree{padding:14px}}
.hx-cog{margin-top:18px;border:var(--t-bd);border-radius:16px;padding:14px 16px;background:var(--t-sun-bg)}
.hx-cog > b{font:900 15px var(--t-disp)}
.hx-cog ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.hx-cog li{background:var(--t-card);border:2px solid var(--t-edge);border-radius:10px;padding:5px 10px;display:flex;flex-direction:column;align-items:center}
.hx-cog li b{font:700 18px Georgia,serif}.hx-cog li small{font:800 11px var(--t-jp);color:var(--t-sub)}
.hx-grimm{margin-top:16px;border:var(--t-bd);border-radius:20px;background:var(--t-night);color:#fff;padding:18px;box-shadow:var(--t-sh)}
.hx-g-btns,.hx-ld-btns,.hx-vs-btns,.hx-wr-btns,.hx-co-samples{display:flex;flex-wrap:wrap;gap:8px}
.hx-g-btns button,.hx-ld-btns button,.hx-vs-btns button,.hx-wr-btns button,.hx-co-samples button{appearance:none;cursor:pointer;border:2px solid var(--t-edge);background:var(--t-card);color:var(--t-ink);border-radius:999px;padding:7px 13px;font:900 13.5px/1.2 var(--t-jp);box-shadow:2px 2px 0 var(--t-edge);transition:transform .12s}
.hx-g-btns button small{margin-left:5px;font-weight:700;color:var(--t-sub)}
.hx-g-btns button[aria-pressed=true],.hx-ld-btns button[aria-pressed=true],.hx-vs-btns button[aria-pressed=true],.hx-wr-btns button[aria-pressed=true],.hx-co-samples button[aria-pressed=true]{background:var(--t-lime);color:#15172e}
.hx-g-btns button[aria-pressed=true] small{color:#15172e}
.hx-g-btns button:active,.hx-ld-btns button:active,.hx-vs-btns button:active,.hx-wr-btns button:active,.hx-co-samples button:active{transform:translate(1px,1px)}
.hx-g-stage{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:22px}
.hx-g-side{text-align:center;background:#ffffff12;border:2px solid #ffffff40;border-radius:16px;padding:14px 8px}
.hx-g-side small{display:block;font:800 12px var(--t-jp);color:#c9cdf5}
.hx-g-side b{display:inline-block;font:700 clamp(26px,5vw,44px)/1.2 Georgia,serif;margin-top:4px}
.hx-g-side mark{background:var(--t-sun);color:#15172e;border-radius:6px;padding:0 3px;display:inline-block}
.hx-g-side.en mark{background:var(--t-lime)}
.hx-g-mid{display:flex;flex-direction:column;align-items:center;gap:2px}
.hx-g-mid span{font:900 16px var(--t-en);background:var(--t-red);border:2px solid #fff;border-radius:10px;padding:3px 10px;white-space:nowrap}
.hx-g-mid i{font-style:normal;font-size:28px;font-weight:900}
.hx-g-hint{margin-top:14px!important;font-size:14px;font-weight:700;color:#e6e8ff;line-height:1.8}
@media (max-width:520px){.hx-g-stage{grid-template-columns:1fr;gap:6px}.hx-g-mid i{transform:rotate(90deg)}}

/* 04 古英語 */
.hx-case{margin-top:18px;border:var(--t-bd);border-radius:20px;padding:18px;background:var(--t-card);box-shadow:var(--t-sh)}
.hx-case-row{display:flex;flex-wrap:wrap;gap:10px}
.hx-case-row.mod{margin-top:18px;padding-top:18px;border-top:1.5px dashed var(--t-line)}
.hx-chip{display:flex;flex-direction:column;align-items:center;border:2.5px solid var(--t-edge);border-radius:14px;padding:9px 14px 7px;background:var(--k-bg);box-shadow:3px 3px 0 var(--t-edge)}
.hx-chip b{font:700 clamp(18px,2.6vw,24px)/1.15 Georgia,serif}
.hx-chip small{font:900 12px var(--t-jp);margin-top:3px}
.hx-chip.r-s{--k-bg:var(--t-blue-bg)}.hx-chip.r-v{--k-bg:var(--t-sun-bg)}.hx-chip.r-o{--k-bg:var(--t-red-bg)}
.hx-case-ja{margin-top:10px!important;font-size:14.5px;font-weight:700}
.hx-letters{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}
.hx-letter{border:var(--t-bd);border-radius:16px;background:var(--t-card);padding:14px;box-shadow:var(--t-sh-s);text-align:center}
.hx-letter > b{display:block;font:700 54px/1 Georgia,serif;color:var(--oe);-webkit-text-stroke:1px var(--t-edge)}
.hx-letter h4{font-size:14px!important;margin:8px 0 4px!important}
.hx-letter p{font-size:13px;line-height:1.7;font-weight:600;text-align:left}
@media (max-width:760px){.hx-letters{grid-template-columns:1fr 1fr}}
.hx-native{margin-top:18px!important;background:var(--t-mint-bg);border:2px solid var(--t-edge);border-radius:14px;padding:12px 14px;font-weight:700;font-size:14.5px}

/* 05 ヴァイキング */
.hx-words{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr));gap:10px;margin-top:16px}
.hx-wd{border:2px solid var(--t-edge);border-left:8px solid var(--c);border-radius:12px;background:var(--t-card);padding:9px 12px;box-shadow:2px 2px 0 var(--t-edge)}
.hx-wd b{display:block;font:700 19px/1.2 Georgia,serif}
.hx-wd small{font:700 12.5px/1.5 var(--t-jp);color:var(--t-sub)}
.hx-pairs{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.hx-pair{display:flex;align-items:center;gap:8px;border:2px solid var(--t-edge);border-radius:14px;padding:8px 12px;background:var(--t-card)}
.hx-pair span{display:flex;flex-direction:column;align-items:center;font:700 20px/1.1 Georgia,serif;padding:4px 10px;border-radius:10px;background:color-mix(in srgb,var(--c) 22%,var(--t-card))}
.hx-pair span small{font:800 10.5px var(--t-jp);color:var(--t-sub);margin-top:3px}
.hx-pair i{font-style:normal;font-weight:900;color:var(--t-faint)}
.hx-quote{margin:14px 0 0!important;border-left:6px solid var(--oe)!important;background:var(--t-card);border-radius:0 14px 14px 0;padding:14px 16px!important}
.hx-quote p{font:italic 600 17px/1.6 Georgia,serif!important}
.hx-quote small{display:block;margin-top:6px;font:700 13px/1.7 var(--t-jp);color:var(--t-sub)}

/* 06 ノルマン */
.hx-meat{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:14px}
.hx-mt{appearance:none;cursor:pointer;position:relative;height:150px;border:0;background:none;padding:0;perspective:700px;color:var(--t-ink)}
.hx-mt > span{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:var(--t-bd);border-radius:16px;box-shadow:var(--t-sh-s);backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .6s cubic-bezier(.3,1.4,.5,1);padding:8px}
.hx-mt .f{background:var(--t-mint-bg)}
.hx-mt .b{background:var(--t-red-bg);transform:rotateY(180deg)}
.hx-mt[aria-pressed=true] .f{transform:rotateY(-180deg)}
.hx-mt[aria-pressed=true] .b{transform:rotateY(0)}
.hx-mt small{font:900 11px var(--t-jp);color:var(--t-sub)}
.hx-mt b{font:700 24px/1.1 Georgia,serif}
.hx-mt i{font-style:normal;font:700 11.5px/1.4 var(--t-jp);text-align:center}
@media (max-width:760px){.hx-meat{grid-template-columns:repeat(3,1fr)}}
@media (max-width:460px){.hx-meat{grid-template-columns:1fr 1fr}.hx-mt{height:140px}}
.hx-verd{margin-top:16px;border:var(--t-bd);border-radius:16px;padding:14px 16px;background:var(--t-sun-bg);box-shadow:var(--t-sh-s)}
.hx-verd > b{display:inline-block;font:900 13px var(--t-disp);background:var(--t-sun);color:#15172e;border:2px solid var(--t-edge);border-radius:8px;padding:3px 10px;margin-bottom:6px}
.hx-verd p{font-size:14.5px;line-height:1.85;font-weight:600}
.hx-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.hx-fields > div{border:2px solid var(--t-edge);border-top:7px solid var(--me);border-radius:12px;padding:10px 12px;background:var(--t-card)}
.hx-fields b{font:900 14px var(--t-disp)}
.hx-fields p{font:600 14.5px/1.6 Georgia,serif;margin-top:4px!important}
@media (max-width:760px){.hx-fields{grid-template-columns:1fr 1fr}}
@media (max-width:460px){.hx-fields{grid-template-columns:1fr}}

/* 07 3段ばしご */
.hx-ladder{margin-top:16px;border:var(--t-bd);border-radius:20px;padding:18px;background:var(--t-card);box-shadow:var(--t-sh)}
.hx-ld-steps{display:grid;grid-template-columns:repeat(3,1fr);align-items:end;gap:10px;margin-top:20px;min-height:230px}
.hx-ld-s{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;text-align:center;gap:4px;border:var(--t-bd);border-radius:16px 16px 6px 6px;padding:14px 8px;background:color-mix(in srgb,var(--c) 18%,var(--t-card));box-shadow:var(--t-sh-s);transform-origin:bottom}
.hx-ld-s.s1{height:130px}.hx-ld-s.s2{height:180px}.hx-ld-s.s3{height:230px}
.hx-ld-s b{font:700 clamp(20px,3vw,28px)/1.15 Georgia,serif;word-break:break-word}
.hx-ld-s span{font:900 12px var(--t-jp);background:var(--c);color:#fff;border:2px solid var(--t-edge);border-radius:999px;padding:2px 9px}
.hx-ld-s small{font:700 12px/1.5 var(--t-jp);color:var(--t-sub)}
.hx-ld-meter{display:flex;align-items:center;gap:10px;margin-top:12px!important;font:900 12px var(--t-jp);color:var(--t-sub)}
.hx-ld-meter i{flex:1;height:8px;border-radius:8px;background:linear-gradient(90deg,var(--cG),var(--cF),var(--cL));border:2px solid var(--t-edge)}
@media (max-width:460px){.hx-ld-s small{display:none}.hx-ld-s.s1{height:110px}.hx-ld-s.s2{height:150px}.hx-ld-s.s3{height:190px}.hx-ld-steps{min-height:190px}.hx-ladder{padding:14px}}

/* 08 チョーサー */
.hx-lines{display:grid;gap:12px;margin-top:14px}
.hx-line{border:var(--t-bd);border-left:10px solid var(--me);border-radius:14px;background:var(--t-card);padding:14px 16px;box-shadow:var(--t-sh-s)}
.hx-line p[lang]{font:italic 600 clamp(18px,2.4vw,22px)/1.5 Georgia,serif}
.hx-line .ja{font-weight:900;margin-top:4px!important}
.hx-line small{display:block;margin-top:6px;font:700 13px/1.7 var(--t-jp);color:var(--t-sub)}

/* 09 大母音推移 */
.hx-vs{margin-top:18px;display:grid;grid-template-columns:1.1fr 1fr;gap:16px;border:var(--t-bd);border-radius:20px;padding:16px;background:var(--t-card);box-shadow:var(--t-sh)}
.hx-vs-chart svg{width:100%;height:auto;display:block}
.hx-vs-chart .tz{fill:var(--t-bg2);stroke:var(--t-edge);stroke-width:2.5}
.hx-vs-chart .ax{font:800 11px var(--t-jp);fill:var(--t-sub)}
.hx-vs-chart .vp circle{fill:var(--t-card);stroke:var(--t-edge);stroke-width:2}
.hx-vs-chart .vp text{font:700 13px Georgia,serif;fill:var(--t-ink)}
.hx-vs-chart .vp.on circle{fill:var(--t-sun)}
.hx-vs-chart .vp.on text{fill:#15172e}
.hx-vs-chart .vp.a2 circle{stroke-dasharray:3 3}
.hx-vs-chart .vs-path{fill:none;stroke:var(--em);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.hx-vs-chart .vs-glide{fill:none;stroke:var(--t-red);stroke-width:4;stroke-linecap:round}
.hx-vs-chart .vs-dot{fill:var(--t-red);stroke:var(--t-edge);stroke-width:2.5}
.hx-vs-panel{display:flex;flex-direction:column;gap:14px}
.hx-vs-btns button{font-family:Georgia,serif;font-size:15px}
.hx-vs-btns button.all{background:var(--t-night);color:#fff;font-family:var(--t-jp)}
.hx-vs-btns button.all:disabled{opacity:.5;cursor:wait}
.hx-vs-card{border:2px solid var(--t-edge);border-radius:16px;padding:14px;background:var(--t-violet-bg)}
.hx-vs-card > b{display:block;font:700 40px/1 Georgia,serif}
.hx-vs-card p{display:flex;align-items:center;gap:10px;margin:10px 0!important;flex-wrap:wrap}
.hx-vs-card p > span{display:flex;flex-direction:column}
.hx-vs-card small{font:800 11px var(--t-jp);color:var(--t-sub)}
.hx-vs-card i{font:700 22px "Charis SIL","Doulos SIL","Gentium Plus",Georgia,serif;font-style:normal}
.hx-vs-card em{font:900 14px var(--t-disp);font-style:normal;color:var(--t-red2)}
.hx-vs-card .arr{font-size:24px;font-weight:900}
@media (max-width:760px){.hx-vs{grid-template-columns:1fr}}

/* 10 綴り */
.hx-spell{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.hx-sp{border:var(--t-bd);border-radius:16px;background:var(--t-card);box-shadow:var(--t-sh-s);padding:14px 16px;cursor:pointer}
.hx-sp[open]{background:var(--t-violet-bg)}
.hx-sp summary{list-style:none;display:flex;flex-direction:column;gap:2px}
.hx-sp summary::-webkit-details-marker{display:none}
.hx-sp summary b{font:700 26px/1.1 Georgia,serif}
.hx-sp summary span{font:900 14px var(--t-disp)}
.hx-sp summary::after{content:"タップで答え ▼";font:800 12px var(--t-jp);color:var(--t-red2);margin-top:4px}
.hx-sp[open] summary::after{content:none}
.hx-sp p{margin-top:10px!important;font-size:14px;line-height:1.85;font-weight:600}
@media (max-width:620px){.hx-spell{grid-template-columns:1fr}}

/* 11 ルネサンス */
.hx-ink{display:grid;gap:10px;margin-top:14px}
.hx-ink p{border:2px solid var(--t-edge);border-radius:12px;padding:10px 14px;font-weight:700;font-size:14.5px}
.hx-ink .ok{background:var(--t-mint-bg)}.hx-ink .ng{background:var(--t-red-bg)}
.hx-gram{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
.hx-gram > div{border:var(--t-bd);border-top:8px solid var(--em);border-radius:14px;background:var(--t-card);padding:12px 14px;box-shadow:var(--t-sh-s)}
.hx-gram b{font:900 15px var(--t-disp)}
.hx-gram p{font-size:13.5px;line-height:1.8;font-weight:600;margin-top:6px!important}
@media (max-width:760px){.hx-gram{grid-template-columns:1fr}}

/* 12 辞書 */
.hx-dict{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.hx-dict > div{border:var(--t-bd);border-radius:14px;background:var(--t-card);padding:12px;box-shadow:var(--t-sh-s)}
.hx-dict span{display:inline-block;font:900 13px var(--t-en);background:var(--mo);color:#fff;border:2px solid var(--t-edge);border-radius:7px;padding:2px 8px}
.hx-dict b{display:block;font:900 17px var(--t-disp);margin-top:6px}
.hx-dict i{display:block;font:italic 600 12.5px/1.4 Georgia,serif;color:var(--t-sub)}
.hx-dict p{font-size:13px;line-height:1.7;font-weight:600;margin-top:6px!important}
@media (max-width:760px){.hx-dict{grid-template-columns:1fr 1fr}}

/* 13 世界の借用語 */
.hx-world{margin-top:16px;border:var(--t-bd);border-radius:20px;padding:18px;background:var(--t-card);box-shadow:var(--t-sh)}
.hx-wr-btns button small{display:inline-block;margin-left:5px;font:900 11px var(--t-en);background:var(--t-ink);color:var(--t-bg);border-radius:999px;padding:1px 6px}
.hx-wr-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:10px;margin-top:16px;min-height:120px}
.hx-wc{display:flex;flex-direction:column;border:2px solid var(--t-edge);border-radius:14px;padding:10px 12px;background:var(--t-lime-bg);box-shadow:2px 2px 0 var(--t-edge)}
.hx-wc b{font:700 21px/1.15 Georgia,serif}
.hx-wc small{font:700 12.5px/1.5 var(--t-jp);color:var(--t-sub);margin-top:2px}

/* 14 語源で色分け */
.hx-color{margin-top:16px;border:var(--t-bd);border-radius:20px;padding:18px;background:var(--t-card);box-shadow:var(--t-sh)}
.hx-co-in{display:block;margin-top:14px}
.hx-co-in span{display:block;font:800 12.5px var(--t-jp);color:var(--t-sub);margin-bottom:4px}
.hx-co-in textarea{width:100%;font:500 16px/1.6 Georgia,serif;border:2px solid var(--t-edge);border-radius:12px;padding:10px 12px;background:var(--t-bg);color:var(--t-ink);resize:vertical}
.hx-co-out{margin-top:14px;font:500 clamp(18px,2.4vw,22px)/2.2 Georgia,serif;padding:12px 14px;border-radius:14px;background:var(--t-bg);border:2px dashed var(--t-line);min-height:70px}
.hx-co-out .cw{display:inline-block;padding:0 5px;border-radius:7px;background:color-mix(in srgb,var(--c) 30%,var(--t-card));border-bottom:3px solid var(--c);line-height:1.5}
.hx-co-out .cw.cat-X{background:transparent;border-bottom-style:dotted;color:var(--t-sub)}
.hx-co-bar{display:flex;height:22px;margin-top:14px;border:2px solid var(--t-edge);border-radius:999px;overflow:hidden;background:var(--t-bg2)}
.hx-co-bar i{display:block;height:100%;background:var(--c);transform-origin:left;transition:width .4s var(--t-ease)}
.hx-co-lg{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:8px}
.hx-co-lg li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 8px;border:1.5px solid var(--t-line);border-radius:10px;padding:7px 10px;background:var(--t-bg)}
.hx-co-lg li i{width:14px;height:14px;border-radius:4px;background:var(--c);border:2px solid var(--t-edge)}
.hx-co-lg li b{font:900 13px var(--t-jp)}
.hx-co-lg li span{font:900 15px var(--t-en)}
.hx-co-lg li small{grid-column:2 / 4;font:700 11.5px var(--t-jp);color:var(--t-sub)}
.hx-co-note{margin-top:12px!important;font-size:12.5px;line-height:1.75;color:var(--t-sub);font-weight:600}

/* 15 3つの円 */
.hx-circ{margin-top:16px;display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:center}
.hx-circ svg{width:100%;height:auto}
.hx-circ circle{stroke:var(--t-edge);stroke-width:2.5}
.hx-circ circle.ex{fill:var(--t-lime-bg)}.hx-circ circle.out{fill:var(--t-sun-bg)}.hx-circ circle.in{fill:var(--t-blue-bg)}
.hx-circ text{font:900 13px var(--t-jp);fill:var(--t-ink)}
.hx-circ text.jp{font-size:12px;fill:var(--t-red2)}
.hx-circ-l{display:grid;gap:10px}
.hx-circ-l > div{border:2px solid var(--t-edge);border-radius:14px;padding:10px 14px;background:var(--t-card);box-shadow:2px 2px 0 var(--t-edge)}
.hx-circ-l .c-in{border-left:8px solid var(--mo)}.hx-circ-l .c-out{border-left:8px solid var(--t-sun)}.hx-circ-l .c-ex{border-left:8px solid var(--t-lime)}
.hx-circ-l b{font:900 15px var(--t-disp)}
.hx-circ-l b i{font:italic 600 12px Georgia,serif;color:var(--t-sub);margin-left:8px}
.hx-circ-l p{font-size:13.5px;font-weight:700;margin-top:2px!important}
.hx-circ-l small{font:600 12.5px/1.6 var(--t-jp);color:var(--t-sub)}
@media (max-width:700px){.hx-circ{grid-template-columns:1fr}.hx-circ svg{max-width:280px;margin:0 auto;display:block}}

/* 16 勉強に生かす */
.hx-tips{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:12px}
.hx-tips li{position:relative;border:var(--t-bd);border-radius:16px;background:var(--t-card);padding:14px 16px 14px 62px;box-shadow:var(--t-sh-s)}
.hx-tips li > span{position:absolute;left:14px;top:14px;width:36px;height:36px;border-radius:50%;background:var(--t-lime);border:2px solid var(--t-edge);display:grid;place-items:center;font:900 17px var(--t-en);color:#15172e}
.hx-tips b{font:900 16px var(--t-disp)}
.hx-tips p{font-size:14.5px;line-height:1.85;font-weight:600;margin-top:4px!important}
.hx-tips p.ex{font:600 14px/1.7 Georgia,serif;background:var(--t-bg);border-radius:10px;padding:6px 10px;margin-top:8px!important}

/* 17 クイズ */
.hx-quiz{display:grid;gap:12px;margin-top:14px}
.hx-qz{border:var(--t-bd);border-radius:16px;background:var(--t-card);padding:14px 16px;box-shadow:var(--t-sh-s)}
.hx-qz > p:first-child{font-weight:800;font-size:15.5px;line-height:1.7}
.hx-qz > p:first-child b{display:inline-block;margin-right:8px;font:900 13px var(--t-en);background:var(--t-ink);color:var(--t-bg);border-radius:7px;padding:2px 8px}
.hx-gw{font:700 22px Georgia,serif;margin-right:4px}
.hx-qz-o{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.hx-qz-o button{appearance:none;cursor:pointer;border:2px solid var(--t-edge);background:var(--t-bg);color:var(--t-ink);border-radius:12px;padding:8px 14px;font:900 14px var(--t-jp);box-shadow:2px 2px 0 var(--t-edge)}
.hx-qz-o button:disabled{cursor:default;opacity:.55}
.hx-qz-o button.ok{background:var(--t-mint);color:#0b2a22;opacity:1}
.hx-qz-o button.ng{background:var(--t-red);color:#fff;opacity:1}
.hx-qz-a{margin-top:10px!important;font-size:14px;line-height:1.85;font-weight:600;background:var(--t-sun-bg);border-radius:12px;padding:10px 12px}
.hx-qz-a b{margin-right:8px;font:900 13px var(--t-disp)}
.hx-score{text-align:center;border:var(--t-bd);border-radius:16px;background:var(--t-night);color:#fff;padding:16px;font:900 17px var(--t-disp)}
.hx-score b{font-size:30px;color:var(--t-lime)}
.hx-score .t-btn{margin-top:10px;color:var(--t-ink)}
p.hx-score:empty{display:none}

/* 教材 */
.hx-res{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.hx-res a{display:block;text-decoration:none;border:var(--t-bd);border-radius:16px;background:var(--t-card);padding:14px 16px;box-shadow:var(--t-sh-s);transition:transform .15s}
.hx-res a:hover{transform:translate(-2px,-2px)}
.hx-res b{font:900 15.5px var(--t-disp)}
.hx-res p{font-size:13.5px;line-height:1.8;font-weight:600;margin-top:6px!important;color:var(--t-sub)}
@media (max-width:620px){.hx-res{grid-template-columns:1fr}}
.hx-say{margin-top:4px}
.hx-say[hidden]{display:none!important}
