/* Kethra Almanac — "Red night" (default) and "Daylight" themes. Colours follow the Family flag: indigo, gold (Theia), silver (Selenne), red (Hyperion). */
:root{
  --bg:#120f18;--panel:#1a1622;--panel2:#231d2e;--ink:#ece6dc;--muted:#b6aebd;--line:#352d42;
  --gold:#e9c36c;--silver:#cdd3dd;--red:#e46a54;--indigo:#8f94f0;--link:#f0c877;--linkh:#fff3d6;
  --canon:#6fcf97;--canonbg:#15271e;--prop:#8f94f0;--propbg:#1b1c33;--sup:#e46a54;--supbg:#2c1618;--work:#b6aebd;--workbg:#211d27;
  --code:#0d0b12;--shadow:0 1px 0 rgba(255,255,255,.03);
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--sans:"Segoe UI",system-ui,-apple-system,sans-serif;--mono:Consolas,"Cascadia Mono",monospace;
  color-scheme:dark;
}
:root[data-theme="day"]{
  --bg:#f6f1e6;--panel:#fffaf0;--panel2:#efe6d3;--ink:#221c28;--muted:#5f5766;--line:#dccfb6;
  --gold:#8a6112;--silver:#56606e;--red:#a83a29;--indigo:#3e42a8;--link:#3e42a8;--linkh:#1c1f6b;
  --canon:#1f7a48;--canonbg:#e3f2e8;--prop:#3e42a8;--propbg:#e9e9fb;--sup:#a83a29;--supbg:#f8e5e1;--work:#5f5766;--workbg:#efe9e0;
  --code:#efe6d3;color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:1.5rem;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.66 var(--sans)}
a{color:var(--link);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--linkh)}
a.local::after{content:" ↗";font-size:.8em;color:var(--muted)}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0}.skip:focus{left:1rem;top:1rem;z-index:20;background:var(--panel);padding:.6rem 1rem}
button{font:inherit;font-size:.85rem;cursor:pointer;border:1px solid var(--line);background:var(--panel2);color:var(--ink);border-radius:6px;padding:.45rem .75rem}
button:hover{border-color:var(--gold)}

/* masthead */
.masthead{display:flex;align-items:center;gap:1rem;justify-content:space-between;padding:18px 3vw;border-bottom:1px solid var(--line);background:linear-gradient(100deg,var(--panel2),var(--bg) 70%)}
.brand{display:flex;align-items:center;gap:.9rem;text-decoration:none;color:var(--ink)}
.brand .word{font:700 1.9rem/1 var(--serif);letter-spacing:.14em}
.brand small{display:block;font:500 .62rem/1 var(--sans);letter-spacing:.26em;color:var(--muted);margin-top:.45rem}
.sky{position:relative;width:54px;height:40px;flex:none}
.sky i{position:absolute;border-radius:50%}
.sky .theia{width:16px;height:16px;left:0;top:4px;background:var(--gold)}
.sky .selenne{width:22px;height:22px;left:17px;top:9px;background:var(--silver)}
.sky .hyperion{width:9px;height:9px;left:43px;top:28px;background:var(--red)}
.edition{font:11px/1.6 var(--mono);letter-spacing:.12em;text-align:right;color:var(--muted)}
.menu{display:none}

/* layout */
.layout{display:grid;grid-template-columns:270px minmax(0,1fr) 230px;max-width:1560px;margin:0 auto}
.rail{position:sticky;top:0;align-self:start;max-height:100vh;overflow:auto;padding:22px 18px 30px;border-right:1px solid var(--line)}
.rail nav a{display:flex;gap:.55rem;align-items:baseline;padding:.32rem .5rem;border-radius:6px;text-decoration:none;color:var(--ink);font-size:.92rem;line-height:1.35}
.rail nav a b{min-width:2.1rem;font:600 .72rem var(--mono);color:var(--gold)}
.rail nav a:hover{background:var(--panel2)}
.rail nav a[aria-current="page"]{background:var(--panel2);box-shadow:inset 3px 0 0 var(--gold)}
.navh{margin:1.1rem .5rem .35rem;font:600 .68rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.recs summary{cursor:pointer;padding:.32rem .5rem;font-size:.92rem;color:var(--ink)}
.recs a{font-size:.85rem!important;padding-left:1.1rem!important}
.rail-foot{display:flex;gap:.5rem;margin-top:1.4rem;padding:0 .5rem}
.search{position:relative;padding:0 .5rem .4rem}
.search label{display:block;font:600 .68rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:.45rem}
.search input{width:100%;padding:.55rem .7rem;border-radius:7px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;font-size:.92rem}
.results{display:none;position:absolute;left:.5rem;right:-190px;top:100%;z-index:30;max-height:70vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 30px rgba(0,0,0,.35)}
.results.open{display:block}
.results a{display:block;padding:.6rem .8rem;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.results a:hover,.results a.sel{background:var(--panel2)}
.results a small{display:block;color:var(--muted);font-size:.74rem;letter-spacing:.04em}
.results a span{display:block;font-size:.82rem;color:var(--muted);line-height:1.4;margin-top:.15rem}
.results mark{background:none;color:var(--gold);font-weight:700}
.results .none{padding:.7rem .8rem;color:var(--muted);font-size:.88rem}

main{padding:28px 4vw 60px;min-width:0}
.toc{position:sticky;top:0;align-self:start;max-height:100vh;overflow:auto;padding:26px 16px 30px;border-left:1px solid var(--line);font-size:.82rem}
.toch{margin:0 0 .6rem;font:600 .68rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.toc a{display:block;padding:.22rem .4rem;color:var(--muted);text-decoration:none;border-left:2px solid transparent;line-height:1.35}
.toc a.l3{padding-left:1.1rem;font-size:.78rem}
.toc a:hover{color:var(--ink)}.toc a.on{color:var(--gold);border-left-color:var(--gold)}

/* status banners and pills */
.status{display:flex;flex-wrap:wrap;gap:.35rem .8rem;align-items:baseline;max-width:860px;margin:0 0 1.6rem;padding:.7rem 1rem;border:1px solid var(--line);border-left-width:4px;border-radius:8px;font-size:.9rem}
.status strong{font:700 .72rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.status-proposal{background:var(--propbg);border-left-color:var(--prop)}.status-proposal strong{color:var(--prop)}
.status-canon{background:var(--canonbg);border-left-color:var(--canon)}.status-canon strong{color:var(--canon)}
.status-partial{background:var(--canonbg);border-left-color:var(--gold)}.status-partial strong{color:var(--gold)}
.status-superseded{background:var(--supbg);border-left-color:var(--sup)}.status-superseded strong{color:var(--sup)}
.status-working{background:var(--workbg);border-left-color:var(--work)}.status-working strong{color:var(--work)}
.pill{display:inline-block;font:700 .64rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;padding:.3rem .5rem;border-radius:99px;border:1px solid currentColor;vertical-align:middle}
.pill.canon{color:var(--canon)}.pill.proposal{color:var(--prop)}.pill.superseded{color:var(--sup)}.pill.partial{color:var(--gold)}.pill.working{color:var(--work)}

/* prose */
.prose{max-width:860px}
.prose h1{font:700 2.25rem/1.15 var(--serif);margin:.2rem 0 1rem;letter-spacing:.01em}
.prose h2{font:700 1.55rem/1.25 var(--serif);margin:2.6rem 0 .8rem;padding-top:1rem;border-top:1px solid var(--line)}
.prose h3{font:700 1.18rem/1.3 var(--serif);margin:1.9rem 0 .6rem;color:var(--gold)}
.prose h4{font-size:1rem;margin:1.5rem 0 .5rem}
.prose h1+p,.prose h1+p+p{color:var(--muted)}
.anchor{margin-left:.45rem;font-size:.7em;color:var(--line);text-decoration:none;opacity:0}
h1:hover .anchor,h2:hover .anchor,h3:hover .anchor,h4:hover .anchor,.anchor:focus{opacity:1;color:var(--muted)}
.prose p,.prose li{max-width:75ch}
.prose ul,.prose ol{padding-left:1.4rem}.prose li{margin:.25rem 0}
.prose strong{color:var(--ink)}
.prose em{color:inherit}
.prose hr{border:0;border-top:1px solid var(--line);margin:2.2rem 0}
.prose blockquote{margin:1.2rem 0;padding:.6rem 1.1rem;border-left:3px solid var(--gold);background:var(--panel);border-radius:0 8px 8px 0;font-family:var(--serif);font-size:1.02rem}
.prose code{font:.86em var(--mono);background:var(--panel2);padding:.1rem .35rem;border-radius:4px}
.prose pre{background:var(--code);border:1px solid var(--line);border-radius:8px;padding:1rem;overflow:auto;font:.8rem/1.45 var(--mono)}
.prose pre code{background:none;padding:0}
.table-wrap{max-width:100%;overflow-x:auto;margin:1rem 0 1.4rem;border:1px solid var(--line);border-radius:8px}
table{border-collapse:collapse;width:100%;font-size:.88rem;line-height:1.45}
th,td{text-align:left;vertical-align:top;padding:.55rem .7rem;border-bottom:1px solid var(--line)}
th{background:var(--panel2);font-weight:600;white-space:nowrap}
tbody tr:nth-child(even){background:var(--panel)}
tbody tr:last-child td{border-bottom:0}

/* pager, footer */
.pager{display:flex;justify-content:space-between;gap:1rem;max-width:860px;margin:3rem 0 0;padding-top:1.4rem;border-top:1px solid var(--line)}
.pager a{flex:1;max-width:48%;padding:.8rem 1rem;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--ink)}
.pager a:hover{border-color:var(--gold)}.pager a.next{text-align:right}
.pager small{display:block;color:var(--muted);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}
.back{margin-top:2.5rem}
.foot{border-top:1px solid var(--line);padding:18px 3vw;color:var(--muted);font-size:.8rem;text-align:center}

/* home */
.hero{max-width:900px;padding:1.2rem 0 1.6rem}
.eyebrow{font:600 .72rem/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:0 0 1rem}
.hero h1{font:700 clamp(2rem,4.4vw,3.3rem)/1.1 var(--serif);margin:0 0 1rem}
.hero h1 em{color:var(--red);font-style:normal}
.lede{font-size:1.14rem;color:var(--muted);max-width:62ch}
.legend{display:flex;flex-wrap:wrap;gap:.5rem .7rem;align-items:center;font-size:.85rem;color:var(--muted);margin-top:1.2rem}
main>section{margin:0 0 2.6rem}
main>section>h2{font:700 1.4rem/1.25 var(--serif);margin:0 0 .9rem}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem}
.card{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.05rem;border:1px solid var(--line);border-radius:10px;background:var(--panel);text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}
.card:hover{border-color:var(--gold);transform:translateY(-2px);color:var(--ink)}
.card .num{font:700 .8rem var(--mono);color:var(--gold)}
.card strong{font:700 1.08rem/1.25 var(--serif)}
.card span:last-child{font-size:.87rem;color:var(--muted);line-height:1.45}
.sky-panel{padding:1rem 1.1rem;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.sky-panel svg{width:100%;height:auto;display:block}
.sky-panel .axis{stroke:var(--muted);stroke-dasharray:3 5}
.sky-panel .orbit{stroke:var(--red);stroke-width:2}
.sky-panel .theia{fill:var(--gold)}.sky-panel .kethra{fill:var(--silver)}.sky-panel .giant{fill:var(--panel2);stroke:var(--muted);stroke-dasharray:3 3}
.sky-panel .belt circle{fill:var(--muted)}.sky-panel .hyperion{fill:var(--red)}
.sky-panel text{fill:var(--ink);text-anchor:middle;font:600 13px var(--sans)}
.sky-panel text.sub{fill:var(--muted);font:400 11.5px var(--sans)}
.glance table{max-width:640px}.note{color:var(--muted);font-size:.9rem}
.reclist{list-style:none;padding:0;columns:2 320px;column-gap:2rem}
.reclist li{break-inside:avoid;padding:.35rem 0;display:flex;gap:.6rem;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.open ul{padding-left:1.2rem;color:var(--muted)}
.aio{border-top:3px double var(--line);margin-top:2rem;padding-top:1rem}

/* responsive */
@media (max-width:1180px){.layout{grid-template-columns:250px minmax(0,1fr)}.toc{display:none}.results{right:-120px}}
@media (max-width:820px){
  body{font-size:16px}
  .layout{display:block}
  .menu{display:inline-block}
  .masthead{padding:12px 16px}.edition{display:none}.brand .word{font-size:1.45rem}.sky{width:44px}
  .rail{display:none;position:static;max-height:none;border-right:0;border-bottom:1px solid var(--line);padding:14px 16px}
  .rail.open{display:block}
  .results{right:.5rem;left:.5rem}
  main{padding:20px 16px 50px}
  .prose h1{font-size:1.75rem}.prose h2{font-size:1.3rem}
  .pager{flex-direction:column}.pager a{max-width:none}
  th{white-space:normal}
}

/* print */
@media print{
  :root{--bg:#fff;--panel:#fff;--panel2:#f1f1f1;--ink:#000;--muted:#333;--line:#bbb;--gold:#6b4b0c;--link:#000}
  .masthead,.rail,.toc,.pager,.foot,.back,.anchor,.menu{display:none!important}
  .layout{display:block}main{padding:0}
  .prose h2{break-after:avoid}.table-wrap{overflow:visible;border:0}table{font-size:9.5pt}tr{break-inside:avoid}
  .aio{break-before:page}
  a{color:#000;text-decoration:none}
}

/* ---------- Atlas ---------- */
.layout-wide{grid-template-columns:270px minmax(0,1fr)}
main.wide{padding:22px 2vw 40px}
.atlas-title{font:700 2rem/1.15 var(--serif);margin:.2rem 0 .3rem}
.atlas-lede{color:var(--muted);margin:0 0 1rem;max-width:80ch}
.atlas{border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}
.atlas-bar{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;padding:.7rem .8rem;border-bottom:1px solid var(--line);background:var(--panel2)}
.atlas-maps{display:flex;flex-wrap:wrap;gap:.35rem}
.atlas-maps button{font-size:.86rem;border-radius:99px;padding:.4rem .8rem}
.atlas-maps button small{opacity:.65;margin-left:.25rem;font-size:.72rem}
.atlas-maps button[aria-selected="true"]{background:var(--gold);color:#1a1408;border-color:var(--gold);font-weight:600}
.atlas-styles{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;font-size:.86rem;color:var(--muted)}
.atlas-styles button{font-size:.8rem;border-radius:99px;padding:.3rem .7rem}
.atlas-styles button[aria-checked="true"]{background:var(--ink);color:var(--panel);border-color:var(--ink);font-weight:600}
.atlas-legend{position:absolute;left:10px;bottom:10px;z-index:6;max-width:min(330px,62%);background:rgba(14,12,20,.88);border:1px solid #3a3350;border-radius:8px;padding:.45rem .6rem;font-size:.72rem;line-height:1.35;color:#e8e2d6}
.atlas-legend strong{display:block;font-size:.74rem;margin-bottom:.2rem}
.atlas-legend .rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.12rem .7rem}
.atlas-legend .row{display:flex;align-items:flex-start;gap:.35rem;min-width:0}
.atlas-legend .row svg{margin-top:.12rem}
.atlas-legend summary{cursor:pointer}
.atlas-legend summary strong{display:inline}
.atlas-legend details:not([open])>summary strong{margin-bottom:0}
.atlas-legend details.note{margin-top:.3rem}
.atlas-legend details.note>summary{color:#b9b2a6;font-size:.7rem}
.atlas-legend i{display:inline-block;width:14px;height:10px;border-radius:2px;flex:none;border:1px solid rgba(0,0,0,.35)}
.atlas-legend i.line{height:0;border:0;border-top:3px solid;border-radius:0}
.atlas-legend p{margin:.25rem 0 0;color:#b9b2a6}
.atlas-show{display:flex;align-items:center;gap:.45rem;font-size:.86rem;color:var(--muted)}
.atlas-show select,.atlas-find input{font:inherit;font-size:.86rem;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:.4rem .55rem;max-width:260px}
.atlas-find{position:relative;margin-left:auto}
.atlas-find input{width:220px}
.atlas-search-results{position:absolute;right:0;top:110%;z-index:40;width:300px;max-height:60vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 30px rgba(0,0,0,.4)}
.atlas-search-results button{display:flex;gap:.5rem;align-items:flex-start;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;padding:.5rem .6rem}
.atlas-search-results button:hover{background:var(--panel2)}
.atlas-search-results small{display:block;color:var(--muted);font-size:.72rem}
.atlas-search-results .none{padding:.6rem;color:var(--muted);margin:0}
.atlas-body{display:grid;grid-template-columns:250px minmax(0,1fr) 270px;min-height:620px}
.atlas-side{border-right:1px solid var(--line);padding:.6rem .7rem;overflow:auto;max-height:78vh;font-size:.84rem}
.atlas-side summary{cursor:pointer;font:600 .7rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:.3rem 0}
.atlas-side fieldset{border:0;border-top:1px solid var(--line);margin:.5rem 0 0;padding:.5rem 0 0}
.atlas-side legend{font:600 .68rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold);padding:0 .2rem 0 0}
.linkish{background:none;border:0;padding:0 .1rem;font-size:.7rem;color:var(--link);text-decoration:underline;letter-spacing:0;text-transform:none;cursor:pointer}
.chk{display:flex;align-items:center;gap:.4rem;padding:.16rem 0;cursor:pointer;line-height:1.25}
.chk input{margin:0;accent-color:var(--gold)}
.chk svg{flex:none;width:16px;height:16px}
.chk small{color:var(--muted);margin-left:auto}
.chk.empty{opacity:.4}
.chk.fx i{flex:none;width:12px;height:12px;border-radius:3px;border:1px solid rgba(0,0,0,.4)}
.fx-actions{margin:.1rem 0 .3rem}
.atlas-stage{position:relative;min-width:0;display:flex;flex-direction:column}
.atlas-view{position:relative;flex:1;min-height:560px;overflow:hidden;background:#070b16;cursor:grab;touch-action:none;outline:none}
.atlas-view:focus-visible{box-shadow:inset 0 0 0 3px var(--gold)}
.atlas-view.grabbing{cursor:grabbing}
.atlas-layer{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}
.atlas-layer svg{display:block}
#atlas-svg.no-territories .territories{display:none}
#atlas-svg[data-zt="1"] .lt2,#atlas-svg[data-zt="1"] .lt3,#atlas-svg[data-zt="2"] .lt3{display:none}
#atlas-svg[data-zt="3"] .ltw{display:none}
.atlas-markers{position:absolute;inset:0;pointer-events:none}
.atlas [hidden]{display:none!important}
.mk{position:absolute;left:0;top:0;pointer-events:auto;background:none;border:0;padding:0;width:20px;height:20px;cursor:pointer;display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.7))}
.mk:hover,.mk.selected{z-index:5}
.mk.selected svg{transform:scale(1.35);filter:drop-shadow(0 0 5px #fff)}
.mk.rumoured svg{opacity:.7;stroke-dasharray:2 2}
.mk-label{display:none;position:absolute;left:22px;top:1px;white-space:nowrap;font:600 11.5px/1.2 var(--sans);color:#f2ede4;text-shadow:0 0 3px #000,0 0 3px #000,0 1px 2px #000;pointer-events:none}
.mk.show-label .mk-label,.mk:hover .mk-label,.mk:focus-visible .mk-label{display:block}
.mk.t-capital .mk-label{font-size:13px;color:#fff3d6}
.atlas-zoom{position:absolute;right:10px;top:10px;display:flex;flex-direction:column;gap:4px;z-index:6}
.atlas-zoom button{width:34px;height:34px;padding:0;font-size:1.1rem;background:rgba(20,17,28,.85);color:#eee;border-color:#3a3350}
.atlas-view::before,.atlas-view::after{content:"";position:absolute;z-index:4;pointer-events:none;opacity:0;transition:opacity .2s}
.atlas-view.edge-l::before{left:0;top:0;bottom:0;width:var(--edge,56px);opacity:1;background:linear-gradient(90deg,rgba(233,195,108,.28),transparent)}
.atlas-view.edge-r::after{right:0;top:0;bottom:0;width:var(--edge,56px);opacity:1;background:linear-gradient(270deg,rgba(233,195,108,.28),transparent)}
.atlas-view.edge-t::before{left:0;right:0;top:0;height:var(--edge,56px);opacity:1;background:linear-gradient(180deg,rgba(233,195,108,.28),transparent)}
.atlas-view.edge-b::after{left:0;right:0;bottom:0;height:var(--edge,56px);opacity:1;background:linear-gradient(0deg,rgba(233,195,108,.28),transparent)}
.atlas-count{display:block;padding:.4rem .8rem;font-size:.78rem;color:var(--muted);border-top:1px solid var(--line)}
.atlas-info{border-left:1px solid var(--line);padding:.9rem 1rem;font-size:.88rem;overflow:auto;max-height:78vh}
.atlas-info .hint{color:var(--muted)}
.info-head{display:flex;gap:.6rem;align-items:flex-start}
.info-head svg{flex:none;width:28px;height:28px;margin-top:.2rem}
.info-head h3{margin:0;font:700 1.1rem/1.25 var(--serif);color:var(--ink)}
.info-head p{margin:.2rem 0 0;color:var(--muted);font-size:.82rem}
.chip{display:inline-block;padding:.05rem .45rem;border-radius:99px;border:1px solid var(--c);color:var(--ink);font-size:.76rem}
.atlas-info dl{display:grid;grid-template-columns:auto 1fr;gap:.25rem .8rem;margin:.8rem 0}
.atlas-info dt{color:var(--muted);font-size:.78rem}
.atlas-info dd{margin:0}
.permalink{font-size:.8rem}
@media (max-width:1180px){.layout-wide{grid-template-columns:250px minmax(0,1fr)}.atlas-body{grid-template-columns:220px minmax(0,1fr)}.atlas-info{grid-column:1 / -1;border-left:0;border-top:1px solid var(--line);max-height:none}}
@media (max-width:820px){
  main.wide{padding:14px 12px 40px}
  .atlas-body{display:block}
  .atlas-side{border-right:0;border-bottom:1px solid var(--line);max-height:none}
  .atlas-side:not([open]){padding-bottom:.6rem}
  .atlas-view{min-height:62vh}
  .atlas-find{margin-left:0;width:100%}.atlas-find input{width:100%;max-width:none}
  .atlas-search-results{width:100%}
  .atlas-show select{max-width:100%}
}
figure.fig{margin:1.4rem 0;max-width:860px}
figure.fig img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:10px;background:#0c1830}
figure.fig figcaption{font-size:.84rem;color:var(--muted);margin-top:.45rem}
.flags{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem;max-width:860px}
.flags figure{margin:0}.flags img{width:100%;border:1px solid var(--line);border-radius:6px}.flags figcaption{font-size:.78rem;color:var(--muted);margin-top:.3rem}
.hero-art{display:block;margin:1.2rem 0 .4rem;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.hero-art img{display:block;width:100%;height:auto}
.card-atlas{border-color:var(--gold);background:linear-gradient(135deg,var(--panel),var(--panel2))}
.prose figure.fig img{background:#0c1830}

/* City street plans (assets/plan.js): the plan fills the box; tiers of names show as you zoom in */
.plan-viewer{position:relative;margin:1.2rem 0 1.6rem;border:1px solid #3a3350;border-radius:10px;overflow:hidden;background:#f2ead8;height:min(78vh,780px);min-height:360px}
.plan-viewer > p{margin:0;padding:1.2rem;color:#2f2620}
.plan-viewer:fullscreen{height:100vh;border-radius:0}
.plan-stage{position:absolute;inset:0;cursor:grab;touch-action:none;outline:none}
.plan-stage:active{cursor:grabbing}
.plan-stage:focus-visible{box-shadow:inset 0 0 0 3px var(--gold,#e0b85a)}
.plan-stage svg{width:100%;height:100%;display:block}
.plan-viewer svg .ls1,.plan-viewer svg .ls2,.plan-viewer svg .ls3,.plan-viewer svg .ls4{display:none}
.plan-viewer svg[data-zt="1"] .ls1,.plan-viewer svg[data-zt="2"] .ls2,.plan-viewer svg[data-zt="3"] .ls3,.plan-viewer svg[data-zt="4"] .ls4{display:inline}
.plan-zoom{position:absolute;right:10px;top:10px;display:flex;flex-direction:column;gap:6px;z-index:2}
.plan-zoom button{width:36px;height:36px;border-radius:8px;border:1px solid #3a3350;background:rgba(14,12,20,.85);color:#e8e2d6;font-size:18px;line-height:1;cursor:pointer}
.plan-zoom button:hover{background:rgba(40,34,56,.95)}
.plan-scale{position:absolute;left:12px;bottom:10px;z-index:2;font:12px/1.2 system-ui,sans-serif;color:#2f2620;background:rgba(242,234,216,.88);padding:3px 7px;border-radius:4px}
.plan-scale span{display:block;height:6px;border:1.5px solid #2f2620;border-top:none;margin-bottom:2px}
.plan-hint{position:absolute;right:12px;bottom:10px;z-index:2;font:12px/1.2 system-ui,sans-serif;color:#2f2620;background:rgba(242,234,216,.88);padding:3px 7px;border-radius:4px}
@media (max-width:700px){.plan-viewer{height:70vh}.plan-hint{display:none}}
