:root{--ink:#171d3a;--ink-soft:#4b5273;--paper:#f5f3ec;--paper-deep:#e9e5d8;--land:#f0ebdc;--sea:#c3d5d6;--lapis:#1e2c6b;--lapis-deep:#121a43;--gold:#c9962b;--gold-soft:#f3e3b8;--rule:#171d3a24;--display:"Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", serif;--body:"Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;--panel-w:430px}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--body);color:var(--ink);background:var(--lapis-deep);-webkit-font-smoothing:antialiased;line-height:1.75}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.app{grid-template-columns:minmax(0, 1fr) var(--panel-w);grid-template-rows:minmax(0,1fr) auto;height:100dvh;display:grid}.stage{background:var(--sea);min-height:0;position:relative;overflow:hidden}.map{position:absolute;inset:0}.timeline{grid-column:1/-1}.map-svg{--k:1;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.map-svg:active{cursor:grabbing}.land{fill:var(--land)}.sea{fill:var(--sea)}.coast path{fill:none;stroke:#9fb3b1;stroke-width:calc(.9px / var(--k));stroke-linejoin:round;stroke-linecap:round}.lake{fill:var(--sea);stroke:#9fb3b1;stroke-width:calc(.8px / var(--k))}.river{fill:none;stroke:#8fb0b6;stroke-width:calc(1.3px / var(--k));stroke-linecap:round}.era-layer{opacity:0;transition:opacity .5s}.era-layer.in{opacity:1}.era-layer.now{transition:none}.terr{fill:var(--c);fill-opacity:.46;stroke:var(--c);stroke-opacity:.95;stroke-width:calc(1.5px / var(--k));stroke-linejoin:round;transition:fill-opacity .2s,stroke-opacity .2s}.terr-vassal{fill-opacity:.15;stroke-dasharray:calc(6px / var(--k)) calc(4px / var(--k))}.terr-desolate{fill-opacity:.1;stroke-opacity:.7;stroke-dasharray:calc(2px / var(--k)) calc(4px / var(--k))}.has-ent-hl .terr:not(.hl){fill-opacity:.08;stroke-opacity:.25}.has-ent-hl .terr.hl{fill-opacity:.66}.has-ent-hl .terr-label:not(.hl){opacity:.3}.pin.hidden{display:none}.pin text{font-family:var(--body);paint-order:stroke;stroke:var(--land);stroke-width:3.2px;stroke-linejoin:round;pointer-events:none}.terr-label text{font-family:var(--display);letter-spacing:.06em;fill:color-mix(in srgb, var(--c) 58%, #0b1030);font-size:13px;font-weight:700}.terr-label.group-power text{letter-spacing:.22em;font-size:15.5px;font-weight:800}.terr-label.group-people text{font-size:14.5px;font-weight:800}.city circle{fill:var(--ink);stroke:var(--land);stroke-width:1.4px}.city text{fill:var(--ink);font-size:11px;font-weight:500}.note-label text{fill:var(--ink-soft);letter-spacing:.04em;font-size:10.5px}.water-label text{fill:#55777f;letter-spacing:.24em;stroke:none;font-size:10.5px}.sea-label text{font-family:var(--display);font-size:12px}.community circle{fill:var(--c);stroke:#fff;stroke-width:1.6px}.community-name text{fill:color-mix(in srgb, var(--c) 60%, #0b1030);font-size:10.5px;font-weight:700}.move-case{fill:none;stroke:var(--land);stroke-opacity:.9;stroke-width:calc(5px / var(--k));stroke-linecap:round}.move-line{fill:none;stroke:var(--c);stroke-width:calc(2.3px / var(--k));stroke-linecap:round;stroke-dasharray:calc(7px / var(--k)) calc(6px / var(--k));animation:1.1s linear infinite march}@keyframes march{to{stroke-dashoffset:calc(-13px / var(--k))}}.move-head path{fill:var(--c);stroke:var(--land);stroke-width:1.2px;stroke-linejoin:round}.move,.move-head{transition:opacity .2s}.has-move-hl .move:not(.hl),.has-move-hl .move-head:not(.hl){opacity:.18}.move.hl .move-line{stroke-width:calc(3.6px / var(--k))}.ping{pointer-events:none}.ping-dot{fill:var(--gold);stroke:#fff;stroke-width:1.4px}.ping-ring{fill:none;stroke:var(--gold);stroke-width:2px;opacity:0}.ping.go .ping-ring{animation:1.9s ease-out infinite ping}.ping.go .ping-ring-2{animation-delay:.95s}@keyframes ping{0%{opacity:.95;transform:scale(.3)}to{opacity:0;transform:scale(3)}}.masthead{pointer-events:none;background:linear-gradient(#f0ebdceb,#f0ebdcb3 60%,#f0ebdc00);padding:18px 26px 28px;position:absolute;top:0;left:0;right:0}.site-name{letter-spacing:.34em;color:var(--lapis);margin:0;font-size:.72rem;font-weight:700}.masthead h1{font-family:var(--display);letter-spacing:.04em;text-wrap:balance;margin:2px 0 0;font-size:clamp(1.35rem,2.5vw,2.25rem);font-weight:800;line-height:1.3}.era-range{font-family:var(--display);color:var(--ink-soft);font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:.95rem;font-weight:500}.legend{margin-top:14px;font-size:.78rem;line-height:1.5}.legend-group{grid-template-columns:7.2em 1fr;align-items:baseline;gap:8px;display:grid}.legend-group+.legend-group{margin-top:3px}.legend h4{letter-spacing:.2em;color:var(--ink-soft);margin:0;font-size:.66rem}.legend ul{flex-wrap:wrap;gap:2px 12px;margin:0;padding:0;list-style:none;display:flex}.legend li{cursor:default;align-items:center;gap:6px;display:flex}.legend li i{background:color-mix(in srgb, var(--c) 60%, var(--land));border:1.5px solid var(--c);border-radius:2px;width:11px;height:11px}.zoom{border:1px solid var(--rule);background:#f5f3ecf0;border-radius:3px;flex-direction:column;display:flex;position:absolute;bottom:16px;right:16px;overflow:hidden}.zoom button{border:0;border-bottom:1px solid var(--rule);background:0 0;width:40px;height:36px;font-size:1.1rem;line-height:1}.zoom button:last-child{border-bottom:0}.zoom .zoom-fit{font-size:.7rem;font-weight:700}.zoom button:hover{background:var(--gold-soft)}.panel{background:var(--paper);border-left:1px solid var(--rule);scrollbar-width:thin;min-height:0;padding:26px 28px 40px;font-size:.92rem;overflow-y:auto}.panel h2,.panel h3,.panel h4,.panel p,.panel ul,.panel ol,.panel dl,.panel dd{margin:0;padding:0}.panel ul,.panel ol{list-style:none}.panel-range{font-family:var(--display);color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:.95rem}.panel-head h2{font-family:var(--display);letter-spacing:.03em;text-wrap:balance;margin-top:2px;font-size:1.62rem;font-weight:800;line-height:1.35}.gods-people{background:color-mix(in srgb, var(--lapis) 9%, var(--paper));border-left:3px solid var(--lapis);align-items:baseline;gap:10px;font-weight:500;line-height:1.55;display:flex;margin-top:14px!important;padding:9px 12px!important}.gods-people span{letter-spacing:.16em;color:var(--lapis);flex:none;font-size:.68rem;font-weight:700}.summary{margin-top:18px}.summary p+p{margin-top:.8em}.panel section+section{margin-top:30px}.panel h3{font-family:var(--display);letter-spacing:.14em;align-items:center;gap:12px;margin-bottom:12px;font-size:1.04rem;font-weight:700;display:flex}.panel h3:after{content:"";background:var(--rule);flex:1;height:1px}.refs{flex-wrap:wrap;gap:2px 10px;margin-top:4px;font-size:.74rem;display:flex}.refs a,.sources a{color:var(--lapis);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--lapis) 35%, transparent);text-decoration-color:color-mix(in srgb, var(--lapis) 35%, transparent);text-underline-offset:3px}.refs a:hover,.sources a:hover{-webkit-text-decoration-color:var(--gold);text-decoration-color:var(--gold)}.events{position:relative;padding-left:18px!important}.events:before{content:"";background:var(--rule);width:1px;position:absolute;top:8px;bottom:8px;left:4px}.events li{padding-bottom:12px;position:relative}.events li .refs{padding-left:10px}.event{text-align:left;background:0 0;border:0;border-radius:2px;width:100%;padding:6px 10px 7px;transition:background .2s,opacity .2s;display:grid;position:relative}.event:before{content:"";background:var(--lapis);width:9px;height:9px;box-shadow:0 0 0 3px var(--paper);border-radius:50%;position:absolute;top:13px;left:-18px}.event:hover{background:var(--paper-deep)}.event-when{font-family:var(--display);color:var(--lapis);font-variant-numeric:tabular-nums;font-size:.82rem;font-weight:700}.event-title{font-weight:700;line-height:1.5}.event-text{color:var(--ink-soft);margin-top:2px;font-size:.86rem;line-height:1.65}.event.future{opacity:.5}.event.future:before{background:var(--paper);box-shadow:0 0 0 1.5px var(--lapis), 0 0 0 4px var(--paper)}.event.current{background:var(--gold-soft)}.event.current:before{background:var(--gold);box-shadow:0 0 0 3px var(--paper), 0 0 0 4.5px var(--gold)}.moves{gap:4px;display:grid}.move-item{border-radius:2px;grid-template-columns:34px 1fr;gap:10px;padding:7px 8px;line-height:1.55;display:grid}.move-item:hover,.move-item:focus-visible{background:var(--paper-deep)}.move-mark{border-top:2.5px dashed var(--c);height:0;margin-top:.72em;position:relative}.move-mark:after{content:"";border:5px solid #0000;border-left:8px solid var(--c);border-right:0;position:absolute;top:-6.5px;right:-2px}.move-item p{color:var(--ink-soft);font-size:.84rem}.people{gap:10px;display:grid}.people li{line-height:1.55;display:grid}.people strong{font-family:var(--display);font-size:1rem}.people span:not(.refs){color:var(--ink-soft);font-size:.86rem}.prophecies{gap:14px;display:grid}.prophecy{border:1px solid var(--rule);border-top:3px solid var(--gold);background:#fbfaf6;padding:12px 14px 13px}.prophecy.spoken{border-top-color:var(--lapis)}.prophecy-kind{letter-spacing:.18em;color:color-mix(in srgb, var(--gold) 70%, var(--ink));font-size:.66rem;font-weight:700}.prophecy.spoken .prophecy-kind{color:var(--lapis)}.prophecy h4{font-family:var(--display);margin:1px 0 8px;font-size:1rem;line-height:1.5}.prophecy dl{gap:8px;font-size:.86rem;line-height:1.65;display:grid}.prophecy dl>div{grid-template-columns:2.6em 1fr;gap:10px;display:grid}.prophecy dt{letter-spacing:.1em;color:var(--ink-soft);padding-top:.2em;font-size:.7rem;font-weight:700}.sources ul{gap:4px;font-size:.84rem;display:grid}.era-nav{grid-template-columns:1fr 1fr;gap:10px;margin-top:30px;display:grid}.era-nav button{border:1px solid var(--rule);text-align:left;font-family:var(--display);background:#fbfaf6;border-radius:2px;padding:10px 12px;font-size:.9rem;font-weight:700;line-height:1.45;display:grid}.era-nav button[data-nav="1"]{text-align:right}.era-nav button span{font-family:var(--body);letter-spacing:.16em;color:var(--ink-soft);font-size:.66rem}.era-nav button:hover{border-color:var(--gold);background:var(--gold-soft)}.panel-foot{border-top:1px solid var(--rule);color:var(--ink-soft);margin-top:26px;padding-top:14px;font-size:.74rem;line-height:1.7}.panel-foot p+p{margin-top:.5em}.timeline{--lane-h:13px;--flag-h:24px;--era-h:104px;background:var(--lapis-deep);color:#e8e4d6;-webkit-user-select:none;user-select:none;grid-template-columns:96px minmax(0,1fr);padding:8px 16px 10px 14px;display:grid}.tl-controls{grid-template-rows:var(--flag-h) calc(var(--lane-h) + 4px) calc(var(--lane-h) * 3 + 8px) var(--era-h);padding-right:12px;display:grid}.tl-side{letter-spacing:.2em;color:#9aa3cf;align-items:center;font-size:.64rem;font-weight:700;display:flex}.tl-side-powers{grid-row:2}.tl-side-people{grid-row:3}.tl-buttons{grid-row:4;grid-template-columns:1fr 1fr;align-content:center;gap:5px;display:grid}.tl-btn{background:0 0;border:1px solid #e8e4d647;border-radius:2px;padding:5px 0;font-size:.74rem;font-weight:700}.tl-btn:hover{border-color:var(--gold);color:var(--gold-soft)}.tl-play{background:var(--gold);border-color:var(--gold);color:var(--lapis-deep);grid-column:1/-1;padding:7px 0}.tl-play:hover{color:var(--lapis-deep);background:#dcae48}.tl-play.on{color:var(--gold-soft);background:0 0}.tl-scroll{scrollbar-width:thin;scrollbar-color:#e8e4d64d transparent;overflow:auto hidden}.tl-track{min-width:860px;padding-top:var(--flag-h);cursor:ew-resize;touch-action:pan-y;position:relative}.tl-lane{position:relative}.tl-powers{height:calc(var(--lane-h) + 4px)}.tl-people{height:calc(var(--lane-h) * 3 + 8px)}.tl-band{height:var(--lane-h);background:var(--c);border-right:1px solid var(--lapis-deep);pointer-events:none;position:absolute;top:0;overflow:hidden}.tl-band span{font-size:.6rem;font-weight:700;line-height:var(--lane-h);letter-spacing:.06em;white-space:nowrap;color:#fff;text-shadow:0 0 3px #00000073;padding:0 5px;display:block}.tl-band.lane-1{top:calc(var(--lane-h) + 2px)}.tl-band.lane-2{top:calc(var(--lane-h) * 2 + 4px)}.tl-band.faded{background:repeating-linear-gradient(-45deg, var(--c) 0 3px, color-mix(in srgb, var(--c) 45%, var(--lapis-deep)) 3px 6px)}.tl-eras{height:var(--era-h);position:relative}.tl-era{color:#c9cde6;cursor:inherit;background:#e8e4d60a;border:0;border-left:1px solid #e8e4d642;flex-direction:column;align-items:center;gap:3px;padding:3px 0 0;transition:background .2s,color .2s;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.tl-era:hover{background:#e8e4d61a}.tl-era.active{color:#fff;background:#c9962b38}.tl-era-year{font-family:var(--display);font-variant-numeric:tabular-nums;color:#9aa3cf;white-space:nowrap;font-size:.62rem;line-height:1.2}.tl-era.active .tl-era-year{color:var(--gold-soft)}.tl-era-name{writing-mode:vertical-rl;font-family:var(--display);letter-spacing:.04em;white-space:nowrap;font-size:.76rem;font-weight:700;line-height:1.2}.tl-dot{background:#e8e4d68c;border-radius:50%;width:3px;height:3px;margin-left:-1.5px;position:absolute;bottom:3px}.tl-era.active .tl-dot{background:var(--gold)}.tl-cursor{border-left:2px solid var(--gold);pointer-events:none;width:0;position:absolute;top:0;bottom:0}.tl-flag{height:calc(var(--flag-h) - 4px);background:var(--gold);color:var(--lapis-deep);font-family:var(--display);font-size:.86rem;font-weight:800;line-height:calc(var(--flag-h) - 4px);white-space:nowrap;font-variant-numeric:tabular-nums;padding:0 8px;position:absolute;top:0;left:-2px}.tl-flag.flip{left:auto;right:0}@media (width<=960px){html,body{height:auto}.app{flex-direction:column;height:auto;display:flex}.timeline{order:2}.panel{order:3}.stage{z-index:2;height:52svh;min-height:300px;position:sticky;top:0}.timeline{z-index:3;--era-h:100px;grid-template-columns:78px minmax(0,1fr);padding:6px 8px 8px;position:sticky;top:max(52svh,300px)}.tl-controls{padding-right:8px}.panel{border-left:0;padding:22px 18px 48px;overflow:visible}.masthead{padding:12px 14px 22px}.zoom{bottom:8px;right:8px}}@media (prefers-reduced-motion:reduce){.move-line,.ping.go .ping-ring{animation:none}.ping.go .ping-ring{opacity:.8}.era-layer{transition:none}}
