:root { --edu-part-color: #b5c95e; }
body.edu-site, body.edu-part { background: #040910; color: #e8e6df; }
.edu-site { font-family: "Noto Sans JP", sans-serif; }
.edu-site a, .edu-part a { color: inherit; }
.edu-kicker, .edu-page__label { color: #d7be8b; font: 600 11px/1.6 Inter, sans-serif; letter-spacing: .22em; }
.edu-mark { display: inline-block; margin-left: 1em; padding: 3px 8px; border: 1px solid #d7be8b88; border-radius: 3px; color: #d7be8b; font: 600 10px/1.3 Inter, sans-serif; letter-spacing: .12em; vertical-align: middle; }
.edu-hero { position: relative; display: grid; min-height: min(780px, calc(100svh - 78px)); align-items: center; overflow: hidden; background: radial-gradient(ellipse at 78% 66%, #b5c95e2a, transparent 36%), radial-gradient(ellipse at 20% 25%, #8495a81d, transparent 40%), linear-gradient(150deg, #091422, #040910 70%); }
.edu-hero::after { position: absolute; inset: 0; pointer-events: none; content: ""; background-image: radial-gradient(#e6d5ac99 .7px, transparent 1px); background-size: 47px 43px; opacity: .23; }
.edu-hero__inner { z-index: 1; width: min(1180px, 100%); margin: auto; padding: clamp(72px, 9vw, 136px) clamp(24px, 6vw, 72px); }
.edu-hero__eyebrow { margin: 48px 0 12px; color: #b5c95e; font-family: "Zen Old Mincho", serif; font-size: 15px; letter-spacing: .25em; }
.edu-hero h1 { margin: 0; color: #fffdf9; font: 500 clamp(42px, 6vw, 82px)/1.45 "Zen Old Mincho", serif; letter-spacing: .05em; }
.edu-hero__question { margin: 34px 0 0; color: #e5dfd1; font: 400 clamp(18px, 2.3vw, 29px)/1.8 "Zen Old Mincho", serif; }
.edu-hero__copy { max-width: 640px; margin: 24px 0 32px; color: #a6b2c1; font-size: 14px; line-height: 2; }
.edu-button { display: inline-flex; min-height: 48px; align-items: center; gap: 28px; padding: 11px 22px; border: 1px solid #d7be8b; border-radius: 4px; text-decoration: none; font-size: 13px; }
.edu-button:hover { background: #d7be8b1d; }
.edu-section { padding: clamp(76px, 9vw, 130px) 0; }
.edu-section--shelves { border-top: 1px solid #b5c95e29; background: #08111c; }
.edu-wrap { width: min(1180px, calc(100% - 48px)); margin: auto; }
.edu-section h2 { margin: 12px 0 20px; color: #fffdf9; font: 500 clamp(30px, 4vw, 48px)/1.55 "Zen Old Mincho", serif; }
.edu-section__lead, .edu-bridge p:not(.edu-kicker) { max-width: 720px; color: #a6b2c1; font-size: 14px; line-height: 2; }
.edu-act { margin-top: 65px; }
.edu-act__head { display: flex; align-items: baseline; gap: 18px; margin-bottom: 20px; border-bottom: 1px solid #b5c95e40; }
.edu-act__head span { color: #b5c95e; font: 600 11px Inter, sans-serif; letter-spacing: .14em; }
.edu-act__head h3 { margin: 0 0 17px; font: 500 23px "Zen Old Mincho", serif; }
.edu-act__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.edu-part-card { display: flex; min-height: 208px; flex-direction: column; padding: 24px; border: 1px solid #b5c95e6b; border-radius: 14px; background: radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--edu-part-color), transparent 83%), transparent 50%), #111e2c; text-decoration: none; transition: transform .2s, border-color .2s; }
a.edu-part-card:hover { transform: translateY(-4px); border-color: var(--edu-part-color); }
.edu-part-card.is-pending { border-color: #a6b2c130; background: #0b1420; opacity: .7; }
.edu-part-card > span { color: #d7be8b; font: 600 11px Inter, sans-serif; letter-spacing: .08em; }
.edu-part-card > span small { margin-left: 5px; color: #a6b2c1; font-size: 10px; }
.edu-part-card strong { margin-top: 24px; color: #f4f1e9; font: 500 22px/1.5 "Zen Old Mincho", serif; }
.edu-part-card p { margin: 4px 0 0; color: #a6b2c1; font-size: 12px; }
.edu-part-card em { margin-top: auto; padding-top: 26px; color: #b5c95e; font-size: 11px; font-style: normal; }
.edu-part-card.is-pending em { color: #a6b2c1; }
.edu-shelves { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 45px; }
.edu-shelves > div, .edu-shelves > a { min-height: 240px; padding: 28px; border: 1px solid #b5c95e36; border-radius: 14px; background: #0b1420; text-decoration: none; }
.edu-shelves > a:hover { border-color: #d7be8b; background: #111e2c; }
.edu-shelves span { color: #d7be8b; font: 600 10px Inter, sans-serif; letter-spacing: .12em; }
.edu-shelves h3 { margin: 25px 0 10px; font: 500 22px "Zen Old Mincho", serif; }
.edu-shelves p { color: #a6b2c1; font-size: 12px; line-height: 1.8; }
.edu-shelves small { display: inline-block; margin-top: 14px; color: #b5c95e; }
.edu-bridge { border-top: 1px solid #b5c95e29; }
.edu-bridge__links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.edu-bridge__links a { padding: 12px 16px; border: 1px solid #d7be8b69; border-radius: 6px; color: #d7be8b; text-decoration: none; font-size: 12px; }

body.edu-part .cover { min-height: calc(100svh - 78px); background: radial-gradient(ellipse 700px 370px at 75% 78%, color-mix(in srgb, var(--edu-part-color), transparent 79%), transparent 75%), linear-gradient(180deg, #101e2b, #040910); }
body.edu-part .cover-title { max-width: 960px; font-size: clamp(40px, 6vw, 68px); }
body.edu-part .cover-colorname { color: var(--edu-part-color); }
body.celestial-site.edu-part[data-part] .cover-colorname { display: block; }
body.edu-part .cover-chapter { border-color: var(--edu-part-color); color: var(--edu-part-color); }
body.edu-part .cover-tagline { margin-top: 0; }
body.edu-part .cover-actions { margin-top: 30px; }
body.edu-part .cover-action--primary { background: #fffdf9; color: #101c2a; }
body.edu-part .part-v2-guide { background: #040910; }
body.edu-part .part-v2-guide__body { background: #0b1420; }
body.edu-part .part-v2-center { background: radial-gradient(circle at 90% 0%, #b5c95e29, transparent 35%), #101c2a; }
.edu-guide__links { display: flex; gap: 18px; margin-top: 26px; }
.edu-guide__links a { color: #d7be8b; font-size: 12px; }
.edu-page { width: min(880px, calc(100% - 48px)); margin: auto; padding: 90px 0; border-top: 1px solid #b5c95e29; }
.edu-page h2 { margin: 10px 0 25px; color: #fffdf9; font: 500 clamp(30px, 4vw, 42px)/1.55 "Zen Old Mincho", serif; }
.edu-page__lead { margin: 0; color: #c7ced6; font-size: 15px; line-height: 2.2; }
.edu-question { margin-top: 45px; padding: 32px; border-left: 3px solid var(--edu-part-color); border-radius: 0 12px 12px 0; background: #111e2c; }
.edu-question span, .edu-episode__scene span, .edu-episode__detail span, .edu-episode__try span, .edu-episode__related > span:first-child { color: var(--edu-part-color); font-size: 11px; font-weight: 600; letter-spacing: .09em; }
.edu-question p { margin: 12px 0 0; font: 400 20px/1.9 "Zen Old Mincho", serif; }
.edu-timeline { margin-top: 42px; border-top: 1px solid #b5c95e3d; }
.edu-timeline__item { display: grid; grid-template-columns: 85px 1fr 20px; gap: 14px; padding: 20px 10px; border-bottom: 1px solid #b5c95e3d; text-decoration: none; }
.edu-timeline__item:hover { background: #b5c95e0d; }
.edu-timeline time { color: var(--edu-part-color); font: 600 14px Inter, sans-serif; }
.edu-timeline__item span { color: #d4d9dc; font-size: 13px; line-height: 1.8; }
.edu-timeline__item small { color: #d7be8b; }
.edu-episodes { width: min(980px, calc(100% - 48px)); }
.edu-episode { margin-top: 55px; padding: clamp(24px, 5vw, 50px); border: 1px solid #b5c95e40; border-radius: 20px; background: radial-gradient(circle at 100% 0%, #b5c95e12, transparent 25%), #0b1420; scroll-margin-top: 94px; }
.edu-episode__top { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px; }
.edu-episode__top p { margin: 0; color: #d7be8b; font: 600 11px Inter, sans-serif; letter-spacing: .15em; }
.edu-certainty { display: inline-flex; align-items: center; gap: 8px; padding: 7px 11px; border: 1px solid #b5c95e70; border-radius: 99px; color: #d3e0ab; font-size: 11px; }
.edu-certainty b { font-size: 16px; line-height: 1; }
.edu-certainty--contested { border-color: #e2a07188; color: #f4bd9d; }
.edu-certainty--robust { border-color: #8bbbd088; color: #a7d4e4; }
.edu-episode h3 { margin: 22px 0 25px; color: #fffdf9; font: 500 clamp(25px, 3.5vw, 36px)/1.5 "Zen Old Mincho", serif; }
.edu-episode p { line-height: 2; }
.edu-episode__scene { padding: 24px 26px; border-left: 3px solid #d7be8b; border-radius: 0 10px 10px 0; background: #172535; }
.edu-episode__scene p { margin: 10px 0 0; font: 400 16px/1.9 "Zen Old Mincho", serif; }
.edu-episode__detail, .edu-episode__try { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 28px; }
.edu-episode__detail > div, .edu-episode__try > div { padding-top: 20px; border-top: 1px solid #b5c95e35; }
.edu-episode__detail strong { display: block; margin-top: 12px; font-size: 14px; }
.edu-episode__detail p, .edu-episode__try p { margin: 10px 0 0; color: #c7ced6; font-size: 13px; line-height: 2; }
.edu-episode__related { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 30px; font-size: 11px; }
.edu-related-id { padding: 6px 10px; border: 1px solid #b5c95e3d; border-radius: 5px; color: #a6b2c1; text-decoration: none; }
a.edu-related-id { color: #d7be8b; }
a.edu-related-id:hover { background: #d7be8b18; }
.edu-ai { margin-top: 32px; padding: 26px; border: 1px solid #d7be8b55; border-radius: 14px; background: #111e2c; }
.edu-ai h4 { margin: 3px 0 4px; font: 500 20px "Zen Old Mincho", serif; }
.edu-ai > p:not(.edu-page__label) { margin: 0; color: #a6b2c1; font-size: 12px; }
.edu-ai__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.edu-ai__copy { padding: 10px 17px; border: 1px solid #d7be8b; border-radius: 99px; color: #101c2a; background: #d7be8b; font: 600 12px "Noto Sans JP", sans-serif; cursor: pointer; }
.edu-ai__status { color: #d3e0ab; font-size: 11px; }
.edu-ai details { margin-top: 18px; color: #d7be8b; font-size: 11px; }
.edu-ai pre { overflow-wrap: anywhere; white-space: pre-wrap; color: #c7ced6; font: 12px/1.8 "Noto Sans JP", sans-serif; }
.edu-glossary-title { margin: 55px 0 25px; font: 500 25px "Zen Old Mincho", serif; }
.edu-glossary { margin: 0; }
.edu-glossary > div { display: grid; grid-template-columns: 190px 1fr; gap: 25px; padding: 22px 0; border-top: 1px solid #b5c95e35; }
.edu-glossary dt { color: #fffdf9; font: 500 17px "Zen Old Mincho", serif; }
.edu-glossary dt small { display: block; margin-top: 5px; color: #a6b2c1; font: 11px/1.7 "Noto Sans JP", sans-serif; }
.edu-glossary dd { margin: 0; color: #c7ced6; font-size: 13px; line-height: 2; }
.edu-next .part-v2-next__grid > div { display: flex; flex-direction: column; min-height: 160px; padding: 25px; border: 1px solid #b5c95e35; border-radius: 16px; opacity: .65; }
.edu-next .part-v2-next__grid > div strong { margin-top: 18px; font: 500 20px "Zen Old Mincho", serif; }
.edu-missing { min-height: 100svh; padding: 20vh 24px; text-align: center; }
@media (max-width: 800px) { .edu-shelves { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .edu-hero { min-height: calc(100svh - 68px); } .edu-hero__inner { padding: 66px 24px 80px; } .edu-hero__eyebrow { margin-top: 38px; } .edu-hero__copy { font-size: 13px; } .edu-act__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .edu-part-card { min-height: 180px; padding: 17px; } .edu-part-card strong { font-size: 17px; } .edu-shelves { grid-template-columns: 1fr; } .edu-shelves > div { min-height: 170px; } .edu-page { padding: 65px 0; } .edu-episode__detail, .edu-episode__try { grid-template-columns: 1fr; gap: 12px; } .edu-glossary > div { grid-template-columns: 1fr; gap: 8px; } .edu-timeline__item { grid-template-columns: 58px 1fr 12px; gap: 9px; } .edu-ai { padding: 17px; } .edu-next .part-v2-next__grid > div { min-height: 100px; } }
@media (max-width: 600px) { .edu-shelves > a { min-height: 170px; } }
