:root{color-scheme:light;--ink:#203f50;--muted:#59717d;--line:#cfdee5;--paper:#f8fcfe;--ice:#e9f5fa;--serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;--sans:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.95}a{color:inherit;text-decoration:none}a:focus-visible,summary:focus-visible{outline:3px solid #32799d;outline-offset:6px}h1,h2,h3,h4,p{margin:0}p+p{margin-top:1em}.header{max-width:1320px;padding:27px 5%;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-family:var(--serif);font-size:1.25rem;font-weight:600;letter-spacing:.13em;white-space:nowrap}.brand-mark{color:#6493a9;font-size:1.5rem;vertical-align:middle;margin-right:9px}.header nav{display:flex;gap:30px;font-size:.875rem}.header nav a{border-bottom:1px solid transparent}.header nav a:hover{border-color:#5f91a8}.intro{position:relative;max-width:1190px;margin:0 auto;background:linear-gradient(105deg,#e4f3f9,#eaf7fb 50%,#cbe4f0);min-height:285px;overflow:hidden}.intro-copy{position:relative;z-index:1;padding:54px 6%;width:100%;background:linear-gradient(90deg,#e6f3f9 0%,#e6f3f9eb 35%,#e6f3f940 75%,transparent)}.eyebrow{font-size:.75rem;letter-spacing:.22em;color:#4d7083;margin-bottom:10px}h1{font-family:var(--serif);font-size:clamp(2.4rem,5vw,3.6rem);letter-spacing:.2em;line-height:1.5;font-weight:500}.intro-description{font-size:.9375rem;margin-top:17px;letter-spacing:.07em}.intro-art{position:absolute;inset:0 0 0 35%;background-image:url("atmosphere.webp");background-size:cover;background-position:center}.intro-copy{z-index:2}.edition{position:absolute;bottom:17px;right:25px;font-size:.75rem;letter-spacing:.18em;color:#325c74;z-index:3}.section{max-width:1110px;margin:auto;padding-left:20px;padding-right:20px}.works{padding-top:46px;padding-bottom:75px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:21px}.section-heading h2{font-family:var(--serif);font-size:1.45rem;font-weight:500;letter-spacing:.12em}.count{font-size:.75rem;letter-spacing:.16em;color:var(--muted)}.works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.work-card{padding:24px 27px 22px;min-height:327px;display:flex;flex-direction:column;position:relative;transition:transform .2s,box-shadow .2s;border:1px solid #c9dfe9;background:#e8f3f9}.work-card:hover{transform:translateY(-5px);box-shadow:0 12px 26px #274e6510}.card-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.work-no{font-family:Georgia,serif;font-size:1.5rem;color:#477a94;font-style:italic}.tag{font-size:.75rem;letter-spacing:.025em}.work-title{margin-top:26px;margin-bottom:15px}.short-title{font-size:.75rem;letter-spacing:.13em;display:block;margin-bottom:6px}.work-card h3{font-family:var(--serif);font-size:1.5rem;font-weight:500;letter-spacing:.055em;line-height:1.55}.work-card p{font-size:.875rem;line-height:1.95;color:#486576;flex:1}.card-link{display:flex;align-items:center;justify-content:space-between;padding-top:20px;margin-top:20px;border-top:1px solid #bbd2df;font-size:.875rem}.card-link span{font-size:1.2rem}.dark{background:#243f50;border-color:#243f50;color:#f0f8fc}.dark .work-no,.dark p{color:#c7dde7}.dark .card-link{border-color:#607a8a}.lantern{background:#f1edf2;border-color:#ded3df;color:#514054}.lantern .work-no,.lantern p{color:#6c576b}.lantern .card-link{border-color:#d2c5d3}.story{display:grid;grid-template-columns:30% 1fr;gap:65px;padding-top:63px;padding-bottom:68px;border-top:1px solid var(--line);scroll-margin-top:10px}.story-heading{align-self:start;position:sticky;top:35px}.chapter{font-family:Georgia,serif;font-size:2.6rem;color:#87aabb;line-height:1.3}.chapter span{font-family:var(--sans);font-size:.75rem;vertical-align:middle;letter-spacing:.1em;display:inline-block;margin-left:13px;color:var(--muted)}.story-heading h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,2.5vw,2rem);letter-spacing:.08em;line-height:1.65;margin-top:19px;overflow-wrap:anywhere}.story-heading>p{font-size:.875rem;color:var(--muted);margin-top:16px}.label{font-size:.875rem;font-weight:600;letter-spacing:.12em;margin-bottom:16px}.story-content>p{line-height:2.15}.world-note{margin-top:27px;background:#eaf3f7;border-left:2px solid #8ab4c8;padding:20px 24px}.world-note>span{font-size:.875rem;font-weight:600}.world-note p{margin-top:6px;font-size:.9375rem;line-height:1.95}.character-label{margin-top:36px;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap}.character-label>span{font-weight:400;font-size:.75rem;letter-spacing:0;color:var(--muted)}.characters{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none;padding:20px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;transition:color .15s}summary::-webkit-details-marker{display:none}summary:hover{color:#2d789c}summary strong{font-family:var(--serif);font-size:1.1875rem;letter-spacing:.06em;font-weight:600}summary small{display:block;color:var(--muted);font-size:.875rem;margin-top:2px}.plus{color:#769bab;font-size:1.35rem;font-weight:300;transition:transform .2s}details[open] .plus{transform:rotate(45deg)}.character-body{padding:0 0 25px;font-size:.9375rem}.character-body dl{margin:19px 0 0}.character-body dl>div{display:grid;grid-template-columns:110px 1fr;gap:15px;margin:8px 0}.character-body dt{color:var(--muted);font-size:.875rem}.character-body dd{margin:0}.extra{margin-top:20px}.extra summary{font-size:.875rem}.extra summary:after{content:"＋";color:#769bab}.extra[open] summary:after{content:"−"}.facts-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.facts-grid article{padding:0 0 18px;border-bottom:1px solid var(--line)}.facts-grid h4{font-size:1rem;margin-bottom:9px}.facts-grid p{font-size:.9375rem}.reading{font-family:var(--sans);font-size:.875rem;font-weight:400;letter-spacing:0;margin-left:10px}footer{max-width:1190px;margin:auto;border-top:1px solid var(--line);padding:35px 4% 45px;display:flex;align-items:center;gap:24px;justify-content:space-between}footer>span{font-size:.75rem;color:var(--muted)}footer>a:last-child{font-size:.875rem}.skip{position:fixed;left:12px;top:-90px;background:white;padding:10px 15px;z-index:20}.skip:focus{top:10px}@media(min-width:1400px){.intro{max-width:1230px}.section{max-width:1150px}.works-grid{gap:25px}}@media(max-width:800px){.header{flex-wrap:wrap;padding:20px 6%;gap:10px}.header nav{gap:22px;width:100%;flex-wrap:wrap}.intro{margin:0 20px;min-height:245px}.intro-copy{padding:40px 7% 55px}.intro-description{max-width:240px}.intro-art{left:20%}.edition{font-size:.75rem;right:15px}.section{margin:0 6%;padding-left:0;padding-right:0}.works{padding-top:34px;padding-bottom:44px}.works-grid{grid-template-columns:1fr;gap:14px}.work-card{min-height:0;padding:22px 25px}.work-title{margin:13px 0}.work-card h3{font-size:1.65rem}.card-link{margin-top:17px;padding-top:12px}.story{grid-template-columns:1fr;gap:30px;padding-top:38px;padding-bottom:44px}.story-heading{position:static}.story-heading h2{margin-top:12px;font-size:2rem}.story-heading>p{margin-top:10px}.chapter{font-size:2rem}.world-note{padding:18px 20px}.character-label{margin-top:28px}.character-body dl>div{grid-template-columns:90px 1fr;gap:10px}.facts-grid{gap:20px}footer{margin:0 6%;padding:25px 0 35px;flex-wrap:wrap;gap:12px}footer>span{width:100%;order:3}footer .brand{font-size:1.05rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Rounded lettering is reserved for the site name and work titles. */
:root{--site-title:"Zen Maru Gothic","Hiragino Maru Gothic ProN","YuKyokasho",sans-serif}
.brand,#site-title,.work-card h3,.story-heading h2{font-family:var(--site-title);font-weight:400}
#site-title{letter-spacing:.12em}
.families{border-top:1px solid var(--line)}
.family>summary{padding:19px 4px;min-height:70px}
.family>summary strong{font-family:var(--sans);font-size:1.0625rem;font-weight:600}
.family>summary small{line-height:1.7;margin-top:5px}
.family[open]>summary{color:#325c74}
.family-members{margin:0 0 20px 12px;padding:0 0 0 18px;border-left:2px solid #c9dfe9}
.family-members>details:last-child{border-bottom:0}
.family-members summary strong{font-family:var(--sans);font-size:1.0625rem}
.family-note{font-size:.9375rem;padding:14px 0}
details[open]>summary .plus{transform:rotate(45deg)}
details:not([open])>summary .plus{transform:none}
@media(max-width:800px){.family-members{margin-left:3px;padding-left:14px}.family>summary{gap:12px}}

.character-quotes{margin:0 0 22px;padding:14px 18px;background:#edf5f9;border-left:2px solid #8ab4c8}
.character-quotes blockquote{margin:0;font-size:.9375rem;line-height:1.95;overflow-wrap:anywhere}
.character-quotes blockquote+blockquote{margin-top:12px}
.character-quotes small{display:block;font-size:.8125rem;color:var(--muted);margin-top:3px}

.character-epithet{display:block;margin-bottom:4px;color:#4d7083;font-family:var(--sans);font-size:.875rem;font-weight:400;letter-spacing:.04em;line-height:1.7}

.work-card .content-note{flex:none;font-size:.875rem;line-height:1.8;margin-top:16px;padding-top:12px;border-top:1px solid #bbd2df}
.dark .content-note{border-color:#607a8a}
.lantern .content-note{border-color:#d2c5d3}

.world-politics{margin-top:34px}.politics-intro{font-size:1rem;margin-bottom:20px}.rank-table-wrap{border:1px solid var(--line);border-radius:8px;overflow:hidden}.rank-table{width:100%;border-collapse:collapse;font-size:.9375rem;line-height:1.6;text-align:left}.rank-table caption{text-align:left;padding:13px 16px;background:#eaf3f7;color:#486576;font-size:.875rem}.rank-table th,.rank-table td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.rank-table thead{background:#f0f7fa}.rank-table thead th{font-size:.875rem;font-weight:500}.rank-table tbody th{font-weight:500;white-space:nowrap}.rank-table tbody tr:last-child>*{border-bottom:0}.rank-table tbody tr:nth-child(even){background:#f1f7fa}.rank-number{font-family:Georgia,serif;font-size:1.2rem;white-space:nowrap}.rank-number>span{font-family:var(--sans);font-size:.75rem;margin-left:4px}.faction-tag{display:inline-block;padding:3px 8px;border:1px solid var(--faction-line);border-radius:4px;background:var(--faction-bg);color:var(--faction-ink);font-size:.875rem;white-space:nowrap}.moon{--faction-line:#b4cddd;--faction-bg:#e7f2f9;--faction-ink:#31566f}.winter{--faction-line:#cdbac3;--faction-bg:#f3eaf0;--faction-ink:#704859}.spring{--faction-line:#bebbd7;--faction-bg:#edeaf7;--faction-ink:#55466f}.revolt{--faction-line:#a9cad0;--faction-bg:#e4f2f2;--faction-ink:#2e6065}.neutral{--faction-line:#c6cfd4;--faction-bg:#edf1f4;--faction-ink:#4d616d}.faction-qualifier{display:block;font-size:.8125rem;color:var(--muted);margin-top:4px}.factions-heading{font-size:1rem;font-weight:500;margin:26px 0 14px}.faction-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.faction-card{border:1px solid var(--faction-line);border-top:3px solid var(--faction-ink);border-radius:6px;padding:18px;background:var(--faction-bg)}.faction-card .faction-stance{font-size:.875rem;color:var(--faction-ink);margin:0 0 5px}.faction-card h5{margin:0 0 10px;font-size:1.0625rem;line-height:1.6;font-weight:600}.faction-card>p{font-size:.9375rem;line-height:1.9}.faction-members{list-style:none;padding:12px 0 0;margin:14px 0 0;border-top:1px solid var(--faction-line);display:flex;flex-wrap:wrap;gap:5px 12px;font-size:.875rem}.faction-members small{font-size:.8125rem}.story-content{min-width:0}@media(max-width:600px){.rank-table th,.rank-table td{padding:10px 7px}.rank-table{font-size:.875rem}.faction-tag{padding:3px 5px}.faction-grid{grid-template-columns:1fr}.rank-table caption{padding:12px 10px}}

.world-politics{border-top:1px solid var(--line)}.politics-toggle{padding:18px 4px;min-height:72px}.politics-toggle strong{font-family:var(--sans);font-size:1rem;font-weight:500;line-height:1.7}.politics-toggle small{line-height:1.7}.politics-body{padding:4px 0 24px}

.work-jumps{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px}.work-jumps a{display:inline-flex;align-items:center;min-height:44px;padding:7px 15px;border:1px solid #b6cdd9;border-radius:6px;background:#edf6fa;color:#31566f;font-size:.875rem;line-height:1.7}.work-jumps a:hover{background:#dfedf5;border-color:#789fb4}.profile-subheading{margin:22px 0 7px;font-family:var(--sans);font-size:.9375rem;font-weight:600;color:#31566f;line-height:1.7}.character-quotes+.profile-subheading{margin-top:0}summary .reading{display:inline-block;line-height:1.7;color:var(--muted)}

.faction-intro{font-size:1rem;line-height:1.95}.faction-card .faction-principle{font-weight:600;color:var(--faction-ink);margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--faction-line)}.faction-values{margin-top:22px;padding:20px;border:1px solid var(--line);border-radius:6px;background:#edf5f9}.faction-values h4{font-size:1rem;font-weight:600;margin:0 0 12px}.faction-values p,.faction-values li{font-size:1rem;line-height:1.95}.faction-values ul{margin:14px 0;padding-left:1.4em}.faction-values li+li{margin-top:7px}

.gods-section{margin-top:40px}.gods-intro{font-size:1rem;margin-bottom:20px}.gods-groups summary strong{overflow-wrap:anywhere}.gods-groups .character-body{overflow-wrap:anywhere}

footer{flex-wrap:wrap}footer .author-credit{flex-basis:100%;order:3;font-size:.875rem;line-height:1.8}footer .author-credit strong{font-weight:600}

footer .usage-notice{flex-basis:100%;order:4;border-top:1px solid var(--line);padding-top:18px}footer .usage-notice h2{font-family:var(--sans);font-size:1rem;font-weight:600;margin:0 0 8px}footer .usage-notice p{font-size:.9375rem;line-height:1.9;overflow-wrap:anywhere}

.header-motto{display:flex;align-items:center;gap:14px;min-width:0;color:#527587}.motto-drop{width:42px;height:54px;flex-shrink:0}.header-motto p{font-family:Georgia,"Times New Roman",serif;font-size:1rem;font-weight:400;letter-spacing:.045em;line-height:1.65}.header nav{flex-shrink:0}@media(max-width:600px){.header-motto{gap:12px}.motto-drop{width:36px;height:46px}.header-motto p{font-size:.9375rem}}

.work-card .work-quote{flex:none;margin-top:20px;font-family:var(--serif);font-size:.9375rem;line-height:1.8;letter-spacing:.035em;color:inherit}

.intro-copy .site-content-note{max-width:32rem;margin-top:12px;color:#486575;font-size:.75rem;line-height:1.8;letter-spacing:.015em;text-wrap:pretty}


/* Visible group headings and a single disclosure level. */
.families{border-top:0}.family{margin:26px 0 30px;border:0}.family-heading{display:block;padding:0 0 12px;margin:0;border-bottom:2px solid #aacbdc;line-height:1.7}.family-heading strong{display:block;font-family:var(--sans);font-size:1.125rem;font-weight:600;letter-spacing:.04em}.family-heading small{display:block;color:var(--muted);font-size:.875rem;font-weight:400;margin-top:3px}.family-members{margin:12px 0 0;padding:0;border-left:0}.family-members>details,.characters>details{margin:10px 0;border:1px solid #afcbd9;border-radius:8px;background:#fff;overflow:hidden}.family-members>details:last-child{border-bottom:1px solid #afcbd9}.family-members>details>summary,.characters>details>summary{padding:16px;min-height:68px;gap:12px;background:#edf6fb}.family-members>details>summary:hover,.characters>details>summary:hover{background:#dfedf6}.family-members>details>.character-body,.characters>details>.character-body{padding:18px 16px 24px}.character-body{font-size:1rem}summary>span:first-child{min-width:0}summary strong{overflow-wrap:anywhere}.read-toggle{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:64px;padding:7px 12px;border:1px solid #4c829f;border-radius:6px;background:#fff;color:#245978;font-size:.875rem;font-weight:600;line-height:1.4;white-space:nowrap}.read-open{display:none}details[open]>summary .read-closed{display:none}details[open]>summary .read-open{display:inline}details[open]>summary{border-bottom:1px solid #afcbd9}summary:focus-visible{outline-offset:-4px}.world-politics{border:1px solid #afcbd9;border-radius:8px;margin:14px 0;background:#fff;overflow:hidden}.world-politics>.politics-toggle{padding:16px;gap:12px;background:#edf6fb}.world-politics>.politics-body{padding:0 18px 24px}.politics-toggle strong{font-weight:600}.character-label>span{font-size:.875rem}.gods-section .family-heading{margin-top:22px}
@media(max-width:480px){.read-toggle{min-width:58px;padding:7px 9px}.family-members>details>summary,.characters>details>summary,.world-politics>.politics-toggle{padding:14px 12px}.family-members>details>.character-body,.characters>details>.character-body{padding:16px 12px 22px}.world-politics>.politics-body{padding:0 12px 22px}}

.disclosure-actions{display:flex;justify-content:center;margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}.disclosure-close{min-height:48px;min-width:140px;padding:10px 24px;border:1px solid #4c829f;border-radius:6px;background:#edf6fb;color:#245978;font:600 1rem/1.5 var(--sans);cursor:pointer}.disclosure-close:hover{background:#dfedf6}.disclosure-close:focus-visible{outline:3px solid #32799d;outline-offset:3px}details>summary{scroll-margin-top:16px}

.species-section{margin:30px 0}.species-section>.family-heading{scroll-margin-top:16px}

/* Individual work pages keep the archive home compact. */
.works-guide{margin:0 0 24px;color:var(--muted);font-size:.9375rem}.home-page .works{padding-bottom:48px}.page-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding-top:16px;padding-bottom:20px;font-size:.875rem;color:var(--muted)}.page-breadcrumb a{display:inline-flex;align-items:center;min-height:44px;color:#245978;font-weight:600}.work-page .story{padding-top:32px}.story-heading h1{font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,2.5vw,2rem);letter-spacing:.08em;line-height:1.65;margin-top:19px;overflow-wrap:anywhere}.site-home{font-family:var(--serif);font-size:1.1rem;font-weight:600;letter-spacing:.06em;white-space:nowrap}.work-page .motto-drop{display:none}.section-navigation{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.section-navigation a{padding:10px 8px;justify-content:center;text-align:center;min-height:52px}.section-navigation a[aria-current="page"]{background:#245978;border-color:#245978;color:#fff;font-weight:600}.work-page .character-label:first-of-type{margin-top:0}.work-page .story-content>.gods-section:first-of-type{margin-top:0}@media(max-width:600px){.work-page .header{flex-wrap:wrap;gap:10px;padding-top:16px;padding-bottom:12px}.work-page .header nav{flex-wrap:wrap;gap:8px 18px}.work-page .header nav a{min-height:40px;display:inline-flex;align-items:center}.page-breadcrumb{padding-top:4px;padding-bottom:12px}.work-page .story{padding-top:24px}.section-navigation{gap:6px}.section-navigation a{font-size:.8125rem;padding:9px 5px}.home-page .intro{min-height:220px}.home-page .intro-copy{padding-top:32px;padding-bottom:45px}.home-page .works{padding-top:28px}}

.coming-soon { padding-block: 3rem; text-align: center; }
.coming-soon-label { font-size: clamp(1.6rem, 4vw, 2.6rem); letter-spacing: .08em; color: #796a80; }
.coming-soon a { display: inline-block; margin-top: 1.5rem; }

.politics-body a.partner-article-link {display:inline-block;padding:.75em 1em;border:1px solid #527b94;border-radius:.5em;background:#edf5fa;color:#254b65;font-weight:700;text-decoration:underline;text-underline-offset:.2em;}
