/* Pharaoh Archive — shared stylesheet. Page-specific rules are scoped under body.home / body.dynasty-page / body.encyclopedia-page. */

:root{ --parch:#f6edcf; --papyrus:#ead9a6; --papyrus-2:#ddc78d; --lapis:#1c3f72; --lapis-deep:#0c2242; --lapis-soft:#274d84; --gold:#c69a3a; --gold-2:#e7c86a; --gold-3:#8a681d; --carn:#9d3b2c; --faience:#2b8a84; --ink:#2b2114; --muted:#6c5f42; --frame:rgba(198,154,58,.55); --shadow:0 14px 34px rgba(43,33,20,.22); --paper:#f6edcf; --deep:#0c2242; --gold2:#e7c86a; }
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
::selection{background:var(--gold-2); color:var(--lapis-deep);}
@keyframes rise{from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; }}
@keyframes pop{from{ opacity:0; transform:translateY(14px) scale(.98); } to{ opacity:1; transform:none; }}

/* ===== home ===== */
body.home{margin:0; color:var(--ink);
      font-family:"EB Garamond", Georgia, "Times New Roman", serif;
      font-size:1.02rem; line-height:1.62;
      background-color:var(--parch);
      background-image:linear-gradient(rgb(246 237 207 / .55), rgb(238 225 186 / .60)), url("images/papyrus-mural-temple.webp");
      background-position:center, center top; background-repeat:no-repeat, repeat-y; background-size:auto, 100% auto;
      border-top:7px solid var(--gold);}
body.home .hero{position:relative; overflow:visible; padding:5.5rem 1.25rem 4.6rem; text-align:center; color:#fdf6e2;
      background:linear-gradient(180deg, rgb(12 34 66 / .86), rgb(28 63 114 / .78)), url("images/papyrus-mural-falcons.webp");
      background-position:center; background-size:cover;
      border-bottom:6px solid var(--gold); box-shadow:inset 0 -3px 0 rgb(231 200 106 / .6);}
body.home .hero::before{content:""; position:absolute; inset:16px; border:2px solid rgb(231 200 106 / .45); box-shadow:inset 0 0 0 6px rgb(12 34 66 / .25); pointer-events:none;}
body.home .hero::after{content:"𓂀"; position:absolute; top:1.35rem; left:50%; transform:translateX(-50%); font-size:2.4rem; color:rgb(231 200 106 / .85);}
body.home .eyebrow{position:relative; margin:1.5rem 0 .85rem; color:var(--gold-2); font:700 .8rem/1.2 "Cinzel",serif; letter-spacing:.34em; text-transform:uppercase;}
body.home .eyebrow::before, body.home .eyebrow::after{content:"𓋹"; margin:0 .7em; color:rgb(231 200 106 / .8);}
body.home h1{position:relative; max-width:900px; margin:0 auto; font-family:"Cinzel Decorative","Cinzel",serif; font-weight:900; font-size:clamp(2.6rem,7.5vw,5.4rem); line-height:1.03; letter-spacing:.02em; color:#f4dd97; text-shadow:0 2px 0 #7a5a15, 0 5px 18px rgb(0 0 0 / .5);}
body.home .subtitle{position:relative; max-width:640px; margin:1.35rem auto 0; color:#ecdfbe; font-size:1.14rem; line-height:1.6;}
body.home .subtitle::after{content:"𓆣"; display:block; margin:1.15rem auto 0; font-size:1.5rem; color:var(--gold-2);}
body.home main{width:min(1160px,calc(100% - 2rem)); margin:2.4rem auto 4rem;}
body.home .controls{display:grid; grid-template-columns:1fr 1fr auto; gap:1rem; align-items:end; padding:1.4rem 1.4rem 1.5rem; position:relative; background:linear-gradient(180deg, rgb(255 251 238 / .96), rgb(244 232 197 / .96)); border:1px solid var(--gold); border-radius:12px; box-shadow:var(--shadow), inset 0 0 0 1px rgb(255 255 255 / .5);}
body.home .controls::before{content:""; position:absolute; inset:6px; border:1px solid var(--frame); border-radius:8px; pointer-events:none;}
body.home .control-group{display:grid; gap:.5rem;}
body.home label, body.home .record-count{font:700 .72rem/1.2 "Cinzel",serif; letter-spacing:.16em; text-transform:uppercase; color:var(--lapis-deep);}
body.home select{width:100%; min-height:2.9rem; padding:.65rem .85rem; color:var(--ink); border:1.5px solid var(--lapis); border-radius:6px; background:#fffdf6; font:1rem "EB Garamond",serif;}
body.home select:focus-visible, body.home button:focus-visible{outline:3px solid var(--gold-2); outline-offset:2px;}
body.home .status{display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:1.1rem .15rem 0;}
body.home .record-count{margin:0; color:var(--muted); letter-spacing:.12em;}
body.home button{min-height:2.9rem; padding:.65rem 1.15rem; cursor:pointer; color:var(--gold-2); border:1.5px solid var(--gold); border-radius:6px; background:linear-gradient(180deg,var(--lapis-soft),var(--lapis-deep)); font:700 .74rem "Cinzel",serif; letter-spacing:.1em; text-transform:uppercase; transition:all .18s ease;}
body.home button:hover{background:linear-gradient(180deg,var(--gold-2),var(--gold)); color:var(--lapis-deep);}
body.home #content-container{margin-top:2rem;}
body.home .period{margin:0 0 2.8rem; animation:rise .5s ease both;}
body.home .period-title{display:flex; align-items:center; gap:.8rem; margin:0 0 1.2rem; color:var(--lapis-deep); font-family:"Cinzel",serif; font-weight:700; font-size:clamp(1.5rem,3vw,2.25rem); letter-spacing:.02em;}
body.home .period-title::before{content:"𓋹"; color:var(--gold); font-size:.9em;}
body.home .period-title::after{content:""; flex:1; height:3px; border-radius:2px; background:linear-gradient(90deg,var(--gold),rgb(198 154 58 / 0));}
body.home .dynasty{overflow:hidden; margin-bottom:1.2rem; border:1px solid var(--gold); border-radius:10px; background:rgb(255 251 240 / .9); box-shadow:0 4px 12px rgb(43 33 20 / .1);}
body.home .dynasty-header{display:flex; flex-wrap:wrap; gap:.4rem 1rem; align-items:baseline; padding:.95rem 1.2rem; color:#f6e6b6; background:linear-gradient(180deg,var(--lapis-soft),var(--lapis)); border-bottom:3px solid var(--gold);}
body.home .dynasty-header h3{margin:0; font-family:"Cinzel",serif; font-weight:700; font-size:1.16rem; letter-spacing:.02em; color:#f4dd97;}
body.home .dynasty-header h3::before{content:"𓇳"; margin-right:.5em; color:var(--gold-2); font-size:.95em;}
body.home .dynasty-dates{color:#e7d29a; font:italic .95rem "EB Garamond",serif;}
body.home .rulers{display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:1px; background:rgb(198 154 58 / .4);}
body.home .ruler{padding:1.15rem 1.15rem 1.25rem; background:rgb(255 253 246 / .92); transition:background .18s ease;}
body.home .ruler:hover{background:#fffef9;}
body.home .ruler-name{display:inline-block; margin:0 0 .6rem; padding:.32rem .85rem; color:var(--lapis-deep); font-family:"Cinzel",serif; font-weight:700; font-size:1rem; line-height:1.25; background:linear-gradient(180deg,#fff7e0,#f2e3b6); border:1.5px solid var(--gold); border-radius:40px;}
body.home .ruler-dates{margin:.15rem 0 .7rem; color:var(--carn); font:italic 1rem "EB Garamond",serif;}
body.home .source{margin:0; color:#7a6c4c; font:italic .78rem/1.45 "EB Garamond",serif;}
body.home .message{margin:3rem auto; padding:1.4rem; max-width:560px; text-align:center; background:rgb(255 251 240 / .94); border:1px solid var(--gold); border-radius:10px; font:1.05rem/1.55 "EB Garamond",serif;}
body.home .error{color:var(--carn);}
body.home footer{padding:1.8rem 1rem 2.8rem; color:#6c6045; text-align:center; font:1rem/1.6 "EB Garamond",serif;}
body.home footer::before{content:"𓋹 𓆤 𓋹"; display:block; margin:0 auto 1rem; color:var(--gold); font-size:1.2rem; letter-spacing:.3em;}
body.home footer a{color:var(--lapis); font-weight:600;}

/* ===== Shared footer ===== */
.site-footer{
  padding:1.8rem 1rem 2.8rem;
  color:#6c6045;
  text-align:center;
  font:1rem/1.6 "EB Garamond",serif;
}
.site-footer::before{
  content:"𓋹 𓆤 𓋹";
  display:block;
  margin:0 auto 1rem;
  color:var(--gold);
  font-size:1.2rem;
  letter-spacing:.3em;
}
.site-footer a{color:var(--lapis); font-weight:600;}
.site-footer a:hover{color:#1f5c3a; text-decoration:underline;}
.site-footer .credit{
  display:block;
  margin-top:.32rem;
  color:#6c6045;
  font-size:.93em;
}

/* ===== About page ===== */
body.about-page{
  min-height:100vh;
  margin:0;
  color:var(--deep);
  background-color:var(--parch);
  background-image:linear-gradient(rgb(246 237 207 / .55), rgb(238 225 186 / .60)), url("images/papyrus-mural-temple.webp");
  background-position:center, center top; background-repeat:no-repeat, repeat-y; background-size:auto, 100% auto;
  font-family:"EB Garamond",Georgia,serif;
}
body.about-page .site-header{
  display:flex;
  align-items:center;
  min-height:4.5rem;
  padding:0 1.25rem;
  border-bottom:1px solid rgba(126,88,30,.22);
  background:rgba(255,250,234,.86);
}
body.about-page .brand{
  color:var(--lapis);
  font:600 clamp(.92rem,2vw,1.05rem)/1.2 "Cinzel",serif;
  letter-spacing:.04em;
  text-decoration:none;
}
.about-hero{
  position:relative;
  overflow:hidden;
  padding:clamp(4rem,10vw,7rem) 1.25rem;
  text-align:center;
  color:#fff8df;
  background:
    linear-gradient(90deg,rgba(16,57,65,.95),rgba(16,57,65,.73)),
    url("images/papyrus-mural-falcons.webp") center/cover;
}
.about-hero::after{
  content:"𓂀";
  position:absolute;
  right:8%;
  bottom:-.36em;
  color:rgba(237,190,79,.28);
  font-size:clamp(7rem,18vw,14rem);
  line-height:1;
}
.about-hero-inner{position:relative; z-index:1; max-width:50rem; margin:auto;}
.about-eyebrow{
  margin:0 0 .6rem;
  color:var(--gold-2);
  font:600 .78rem/1.2 "Libre Franklin",sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.about-hero h1{
  max-width:45rem;
  margin:0 auto;
  font:600 clamp(2.25rem,6vw,4.3rem)/1.08 "Cinzel",serif;
}
.about-main{max-width:58rem; margin:0 auto; padding:2rem 1.25rem 3rem;}
.about-back{
  display:inline-block;
  margin-bottom:1.25rem;
  color:var(--lapis);
  font:600 .78rem/1.2 "Libre Franklin",sans-serif;
  letter-spacing:.06em;
  text-decoration:none;
  text-transform:uppercase;
}
.about-back:hover{color:var(--carn);}
.about-panel{
  padding:clamp(1.5rem,5vw,3.2rem);
  border:1px solid rgba(126,88,30,.25);
  border-radius:1rem;
  background:rgba(255,251,235,.9);
  box-shadow:0 1rem 2.5rem rgba(72,47,14,.12);
}
.about-lead{
  margin:0 0 2.4rem;
  color:#27434b;
  font-size:clamp(1.3rem,2.6vw,1.58rem);
  line-height:1.4;
}
.about-panel section + section{margin-top:2rem;}
.about-panel h2,.about-panel h3,.about-panel h4{
  margin:0 0 .62rem;
  color:var(--lapis);
  font-family:"Cinzel",serif;
}
.about-panel h2{font-size:clamp(1.23rem,2.6vw,1.55rem);}
.about-panel h3{
  padding-top:2rem;
  border-top:1px solid rgba(126,88,30,.22);
  font-size:clamp(1.15rem,2.3vw,1.38rem);
}
.about-panel h4{font-size:1rem;}
.about-panel p{margin:.45rem 0 0; font-size:1.1rem; line-height:1.52;}
.showcase-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  margin-top:1.2rem;
}
.showcase-card{
  padding:1.15rem;
  border:1px solid rgba(126,88,30,.2);
  border-radius:.72rem;
  background:rgba(246,233,197,.55);
}
.showcase-card h4 a,.credit-box a{color:var(--lapis); text-decoration-thickness:1px;}
.showcase-card h4 a:hover,.credit-box a:hover{color:var(--carn);}
.showcase-card p{font-size:1rem;}
.showcase-feature{
  display:flex;
  align-items:center;
  gap:1.5rem;
  margin-top:1.2rem;
}
.showcase-feature-text{flex:1 1 auto;min-width:0;}
.showcase-feature-img{
  flex:0 0 auto;
  width:240px;
  max-width:40%;
  height:auto;
  border-radius:.6rem;
  border:1px solid rgba(126,88,30,.2);
  object-fit:cover;
}
@media (max-width:42rem){
  .showcase-feature{flex-direction:column;align-items:stretch;}
  .showcase-feature-img{width:100%;max-width:100%;}
}
.credit-box{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:.45rem 1.4rem;
  margin-top:2.4rem;
  padding:1rem 1.15rem;
  border-radius:.62rem;
  background:rgba(17,69,77,.1);
  color:#48554b;
  font:600 .78rem/1.45 "Libre Franklin",sans-serif;
}
@media (max-width:42rem){
  .showcase-grid{grid-template-columns:1fr;}
  .credit-box{flex-direction:column;}
}
@media (max-width:680px){
  body.home .hero{padding:4rem 1.25rem 3.6rem;}
  body.home .hero::before{inset:10px;}
  body.home .controls{grid-template-columns:1fr;}
  body.home .status{align-items:stretch; flex-direction:column;}
  body.home .status button{width:100%;}
  body.home .dynasty-combo{flex-direction:column;}
  body.home .dynasty-guide-link{min-height:2.6rem; border-top:1.5px solid var(--lapis); border-left:0;}
}
body.home .ruler-name{cursor:pointer; text-align:left; appearance:none; -webkit-appearance:none; transition:transform .15s ease, box-shadow .15s ease, background .15s ease;}
body.home .ruler-name:hover, body.home .ruler-name:focus-visible{background:linear-gradient(180deg,#fff2cf,#efd89f); box-shadow:0 3px 10px rgb(138 104 29 / .35); transform:translateY(-1px);}
body.home .more-link{display:inline-block; margin-top:.1rem; padding:0; min-height:auto; cursor:pointer; color:var(--lapis); background:none; border:0; letter-spacing:.01em; text-transform:none; font:600 .84rem "EB Garamond",serif;}
body.home .more-link:hover, body.home .more-link:focus-visible{color:var(--carn); text-decoration:underline; background:none;}
body.home .dynasty-combo{display:flex; overflow:hidden; min-height:2.9rem; border:1.5px solid var(--lapis); border-radius:6px; background:#fffdf6;}
body.home .dynasty-combo select{flex:1; min-width:0; border:0; border-radius:0;}
body.home .dynasty-guide-link{display:flex; align-items:center; justify-content:center; margin:0; padding:.55rem .8rem; color:var(--gold-2); text-align:center; text-decoration:none; white-space:nowrap; background:linear-gradient(180deg,var(--lapis-soft),var(--lapis-deep)); border:0; border-left:1.5px solid var(--lapis); border-radius:0; font:700 .66rem/1.2 "Cinzel",serif; letter-spacing:.06em; text-transform:uppercase;}
body.home .dynasty-guide-link:hover, body.home .dynasty-guide-link:focus-visible{color:var(--lapis-deep); text-decoration:none; background:linear-gradient(180deg,var(--gold-2),var(--gold));}
body.home .dynasty-guide-link[hidden]{display:none;}
body.home .visually-hidden{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;}
body.home .hero-search{position:relative; z-index:6; max-width:560px; margin:1.9rem auto 0; text-align:left;}
body.home .hero-search-icon{position:absolute; left:1.05rem; top:1.55rem; transform:translateY(-50%); color:var(--lapis-deep); font-size:1.15rem; pointer-events:none;}
body.home .hero-search input{width:100%; min-height:3.1rem; padding:.8rem 1.1rem .8rem 2.8rem; color:var(--ink); background:rgb(255 250 240 / .97); border:2px solid var(--gold); border-radius:40px; font:1.05rem "EB Garamond",serif; box-shadow:0 12px 32px rgb(9 20 38 / .4);}
body.home .hero-search input::placeholder{color:#8a7d5f;}
body.home .hero-search input:focus-visible{outline:3px solid var(--gold-2); outline-offset:2px;}
body.home .search-suggestions{position:absolute; left:0; right:0; top:calc(100% + .45rem); z-index:20; margin:0; padding:.4rem; list-style:none; background:#fffaf0; border:1.5px solid var(--gold); border-radius:12px; box-shadow:0 22px 54px rgb(9 20 38 / .45); max-height:340px; overflow-y:auto;}
body.home .search-suggestions[hidden]{display:none;}
body.home .search-suggestions li{margin:0;}
body.home .suggestion{display:flex; align-items:baseline; justify-content:space-between; gap:1rem; width:100%; min-height:auto; padding:.55rem .75rem; text-align:left; color:var(--ink); background:none; border:0; border-radius:8px; cursor:pointer; letter-spacing:0; text-transform:none; font:1rem "EB Garamond",serif;}
body.home .suggestion:hover, body.home .suggestion.active{background:linear-gradient(180deg,#fff2cf,#efd89f); color:var(--lapis-deep);}
body.home .suggestion .s-name{font-family:"Cinzel",serif; font-weight:700; font-size:.95rem;}
body.home .suggestion .s-meta{color:var(--muted); font-size:.82rem; font-style:italic; white-space:nowrap;}
body.home .search-empty{padding:.6rem .75rem; color:var(--muted); font-style:italic;}
body.home .suggestion .s-snippet{color:var(--muted); font-size:.8rem; font-style:italic; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
body.home .hero-random{display:inline-flex; align-items:center; gap:.5rem; margin-top:1.05rem; padding:.6rem 1.25rem; color:var(--lapis-deep); background:linear-gradient(180deg,var(--gold-2),var(--gold)); border:1.5px solid var(--gold-3); border-radius:40px; cursor:pointer; font:700 .72rem "Cinzel",serif; letter-spacing:.1em; text-transform:uppercase; box-shadow:0 8px 22px rgb(9 20 38 / .35);}
body.home .hero-random:hover, body.home .hero-random:focus-visible{color:#fff8df; background:linear-gradient(180deg,var(--lapis-soft),var(--lapis-deep));}
body.home .modal{position:fixed; inset:0; z-index:100; display:flex; align-items:flex-start; justify-content:center; padding:5vh 1rem 3rem; overflow-y:auto;}
body.home .modal[hidden]{display:none;}
body.home .modal-backdrop{position:fixed; inset:0; background:rgb(9 20 38 / .72); backdrop-filter:blur(3px);}
body.home .modal-card{position:relative; z-index:1; width:min(680px,100%); padding:2.5rem 2rem 2rem; color:var(--ink); background:linear-gradient(180deg,#fbf3d9,#f1e4bb); border:2px solid var(--gold); border-radius:16px; box-shadow:0 30px 70px rgb(9 20 38 / .5); animation:pop .28s ease both;}
body.home .modal-card::before{content:""; position:absolute; inset:9px; border:1px solid var(--frame); border-radius:11px; pointer-events:none;}
body.home .modal-close{position:absolute; top:.7rem; right:.7rem; width:2.2rem; height:2.2rem; min-height:auto; padding:0; display:grid; place-items:center; color:var(--lapis-deep); background:rgb(255 255 255 / .55); border:1px solid var(--gold); border-radius:50%; font-size:.95rem; letter-spacing:0;}
body.home .modal-close:hover{background:var(--gold-2); color:var(--lapis-deep);}
body.home .modal-crown{text-align:center; color:var(--gold); font-size:1.8rem; line-height:1; margin:0 0 .25rem;}
body.home .modal-eyebrow{margin:0; text-align:center; color:var(--carn); font:700 .74rem "Cinzel",serif; letter-spacing:.2em; text-transform:uppercase;}
body.home .modal-name{margin:.35rem 0 .85rem; text-align:center; font-family:"Cinzel Decorative","Cinzel",serif; font-weight:900; font-size:clamp(1.7rem,4.6vw,2.5rem); line-height:1.05; color:var(--lapis-deep);}
body.home .modal-cartouche{display:block; width:fit-content; max-width:100%; margin:0 auto 1.5rem; padding:.4rem 1.2rem; text-align:center; color:var(--lapis-deep); font:700 .95rem "Cinzel",serif; background:linear-gradient(180deg,#fff7e0,#f0e0b0); border:1.5px solid var(--gold); border-radius:40px;}
body.home .modal-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem; margin:0 0 1.5rem;}
body.home .modal-stats .stat{text-align:center; padding:.9rem .5rem; color:#f4dd97; background:linear-gradient(180deg,var(--lapis-soft),var(--lapis)); border:1px solid var(--gold); border-radius:10px;}
body.home .stat-label{display:block; margin-bottom:.3rem; color:#e7d29a; font:700 .62rem "Cinzel",serif; letter-spacing:.12em; text-transform:uppercase;}
body.home .stat-value{display:block; color:#fff7e2; font:1rem "EB Garamond",serif;}
body.home .modal-image{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.35rem; min-height:120px; margin:0 0 1.5rem; overflow:hidden; color:var(--muted); background:repeating-linear-gradient(45deg,rgb(198 154 58 / .07),rgb(198 154 58 / .07) 10px,rgb(198 154 58 / .15) 10px,rgb(198 154 58 / .15) 20px); border:1px dashed var(--gold); border-radius:10px;}
body.home .modal-image.has-image{display:block; min-height:0; background:#d8c18a; border-style:solid;}
body.home .modal-image img{display:block; width:100%; max-height:330px; object-fit:cover; object-position:center;}
body.home .modal-image a{display:block; color:inherit; text-decoration:none;}
body.home .modal-image span{font-size:2.2rem; color:var(--gold-3);}
body.home .modal-image small{font:italic .8rem "EB Garamond",serif;}
body.home .modal-subhead{margin:0 0 .55rem; padding-bottom:.35rem; color:var(--lapis-deep); font:700 1.05rem "Cinzel",serif; letter-spacing:.04em; border-bottom:2px solid var(--gold);}
body.home .modal-info{margin:0 0 1.2rem; font-size:1.05rem; line-height:1.72;}
body.home .modal-info.muted{color:var(--muted); font-style:italic;}
body.home .modal-source{margin:0; color:#7a6c4c; font:italic .82rem "EB Garamond",serif;}
body.home .encyclopedia-link{display:flex; align-items:center; gap:.9rem; margin:0 0 1.5rem; padding:.85rem 1rem; color:var(--lapis-deep); text-align:left; text-decoration:none; background:linear-gradient(180deg, rgb(255 251 238 / .96), rgb(244 232 197 / .96)); border:1.5px solid var(--gold); border-radius:12px; box-shadow:0 4px 14px rgb(43 33 20 / .12), inset 0 0 0 1px rgb(255 255 255 / .5); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;}
body.home .encyclopedia-link:hover, body.home .encyclopedia-link:focus-visible{color:var(--lapis-deep); transform:translateY(-2px); border-color:var(--gold-3); box-shadow:0 10px 26px rgb(43 33 20 / .22), inset 0 0 0 1px rgb(255 255 255 / .5); background:linear-gradient(180deg,#fff7e0,#f2e3b6);}
body.home .encyclopedia-link .enc-icon{flex:0 0 auto; width:46px; height:46px; display:grid; place-items:center; border-radius:10px; font-size:1.5rem; color:#f4dd97; background:linear-gradient(180deg,var(--lapis-soft),var(--lapis-deep)); border:1px solid var(--gold); box-shadow:inset 0 1px 0 rgb(255 255 255 / .15);}
body.home .encyclopedia-link .enc-text{flex:1 1 auto; min-width:0;}
body.home .encyclopedia-link .enc-title{display:block; font:700 .8rem "Cinzel",serif; letter-spacing:.06em; text-transform:uppercase; color:var(--lapis-deep);}
body.home .encyclopedia-link .enc-sub{display:block; margin-top:.15rem; font:400 .9rem/1.35 "EB Garamond",serif; color:var(--muted); letter-spacing:0; text-transform:none;}
body.home .encyclopedia-link .enc-arrow{flex:0 0 auto; font-size:1.25rem; color:var(--gold-3); transition:transform .18s ease;}
body.home .encyclopedia-link:hover .enc-arrow, body.home .encyclopedia-link:focus-visible .enc-arrow{transform:translateX(4px);}
@media (max-width:560px){
  body.home .modal-stats{grid-template-columns:1fr;}
  body.home .modal-card{padding:2.2rem 1.2rem 1.6rem;}
}

/* ===== dynasty-page ===== */
body.dynasty-page{margin:0;color:var(--ink);font:1.12rem/1.65 "EB Garamond",Georgia,serif;background:linear-gradient(rgb(246 237 207/.57),rgb(246 237 207/.57)),url("images/papyrus-mural-temple.webp") center top/100% auto repeat-y;border-top:7px solid var(--gold)}
body.dynasty-page header{padding:1.2rem;text-align:center;color:#f7e5ad;background:linear-gradient(var(--deep),var(--lapis));border-bottom:3px solid var(--gold)}
body.dynasty-page header a{color:inherit;text-decoration:none;font:700 .82rem Cinzel,serif;letter-spacing:.08em;text-transform:uppercase}
body.dynasty-page main{width:min(1050px,calc(100% - 2rem));margin:2.5rem auto 4rem}
body.dynasty-page .back{color:var(--lapis);font:700 .78rem Cinzel,serif;text-decoration:none;text-transform:uppercase}
body.dynasty-page .hero, body.dynasty-page .panel{margin-top:1.3rem;padding:clamp(1.3rem,4vw,3rem);background:rgb(255 251 240/.94);border:1px solid var(--gold);border-radius:14px;box-shadow:0 12px 28px #2b21142e}
body.dynasty-page .eyebrow{margin:0;color:#914130;font:700 .75rem Cinzel,serif;letter-spacing:.14em;text-transform:uppercase}
body.dynasty-page h1{margin:.2rem 0;color:var(--deep);font:900 clamp(2rem,6vw,4.2rem)/1.1 Cinzel,serif}
body.dynasty-page h2{margin:0 0 .5rem;color:var(--deep);font:700 1.05rem Cinzel,serif}
body.dynasty-page .grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem}
body.dynasty-page .tile{padding:1.1rem;background:#fffaf0;border-left:4px solid var(--gold);border-radius:8px}
body.dynasty-page .rulers{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.8rem}
body.dynasty-page .ruler{padding:1rem;background:#fffaf0;border:1px solid #d8bd74;border-radius:8px}
body.dynasty-page .ruler a{color:var(--lapis);font:700 1.05rem Cinzel,serif;text-decoration:none}
body.dynasty-page .ruler p{margin:.3rem 0 0;color:#665637}
body.dynasty-page .status{padding:2rem;text-align:center}
body.dynasty-page .source{font-style:italic;color:#6c5f42}
@media(max-width:650px){
  body.dynasty-page .grid{grid-template-columns:1fr}
}

/* ===== encyclopedia-page ===== */
body.encyclopedia-page{margin:0;color:var(--ink);font:1.08rem/1.65 "EB Garamond",Georgia,serif;background:linear-gradient(rgb(246 237 207/.57),rgb(246 237 207/.57)),url("images/papyrus-mural-temple.webp") center top/100% auto repeat-y;border-top:7px solid var(--gold)}
body.encyclopedia-page .site-header{padding:1.4rem 1rem;color:#f7e5ad;text-align:center;background:linear-gradient(180deg,var(--deep),var(--lapis));border-bottom:3px solid var(--gold)}
body.encyclopedia-page .site-header a{color:inherit;text-decoration:none;font:700 .84rem "Cinzel",serif;letter-spacing:.08em;text-transform:uppercase}
body.encyclopedia-page .site-header a:hover{text-decoration:underline}
body.encyclopedia-page main{width:min(1040px,calc(100% - 2rem));margin:2.5rem auto 4rem}
body.encyclopedia-page .back{display:inline-block;margin-bottom:1.3rem;color:var(--lapis);font:700 .77rem "Cinzel",serif;letter-spacing:.07em;text-decoration:none;text-transform:uppercase}
body.encyclopedia-page .back:hover{text-decoration:underline}
body.encyclopedia-page .entry{padding:clamp(1.2rem,4vw,3rem);background:rgb(255 251 240/.94);border:1px solid var(--gold);border-radius:15px;box-shadow:0 15px 34px rgb(43 33 20/.18)}
body.encyclopedia-page .eyebrow{margin:0;color:#914130;text-align:center;font:700 .75rem "Cinzel",serif;letter-spacing:.17em;text-transform:uppercase}
body.encyclopedia-page .name{margin:.25rem auto .6rem;max-width:900px;color:var(--deep);text-align:center;font:900 clamp(2rem,6vw,4.5rem)/1.06 "Cinzel Decorative",Cinzel,serif}
body.encyclopedia-page .dynasty{margin:0 auto 1.6rem;color:var(--lapis);text-align:center;font:700 1rem "Cinzel",serif}
body.encyclopedia-page .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin:0 auto 2rem}
body.encyclopedia-page .stat{padding:.8rem;color:#fff7e2;text-align:center;background:linear-gradient(180deg,#274d84,var(--lapis));border:1px solid var(--gold);border-radius:9px}
body.encyclopedia-page .stat b{display:block;margin-bottom:.25rem;color:#ead498;font:700 .62rem "Cinzel",serif;letter-spacing:.1em;text-transform:uppercase}
body.encyclopedia-page .stat span{display:block}
body.encyclopedia-page .image-wrap{margin:0 auto 2rem;max-width:760px;overflow:hidden;background:#e4d2a2;border:2px solid var(--gold);border-radius:12px;box-shadow:0 10px 25px rgb(43 33 20/.17)}
body.encyclopedia-page .image-wrap img{display:block;width:100%;height:auto}
body.encyclopedia-page .image-wrap a{display:block}
body.encyclopedia-page .full-image{display:block;padding:.7rem;color:var(--deep);text-align:center;text-decoration:none;background:#f6e8bc;font:700 .72rem "Cinzel",serif;letter-spacing:.08em;text-transform:uppercase}
body.encyclopedia-page .full-image:hover{background:var(--gold2)}
body.encyclopedia-page h2{margin:0 0 .55rem;padding-bottom:.35rem;color:var(--deep);font:700 1.08rem "Cinzel",serif;border-bottom:2px solid var(--gold)}
body.encyclopedia-page .info{margin:0 0 1.3rem;font-size:1.16rem}
body.encyclopedia-page .source{margin:0;color:var(--muted);font-style:italic}
body.encyclopedia-page .status{padding:2rem;text-align:center;background:rgb(255 251 240/.94);border:1px solid var(--gold);border-radius:12px}
body.encyclopedia-page .hidden{display:none}
body.encyclopedia-page .nav{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem}
body.encyclopedia-page .nav a{max-width:45%;color:var(--lapis);font:700 .78rem "Cinzel",serif;text-decoration:none}
body.encyclopedia-page .nav a:last-child{text-align:right}
body.encyclopedia-page .nav a:hover{text-decoration:underline}
@media(max-width:580px){
  body.encyclopedia-page .stats{grid-template-columns:1fr}
  body.encyclopedia-page .entry{padding:1.25rem}
  body.encyclopedia-page .nav{font-size:.85rem}
}

/* Hero action buttons — Surprise me + Explore the timeline */
body.home .hero-actions{display:flex; flex-wrap:wrap; gap:.7rem; justify-content:center; align-items:center; margin-top:1.05rem;}
body.home .hero-actions .hero-random{margin-top:0;}
body.home .hero-timeline{display:inline-flex; align-items:center; gap:.5rem; padding:.6rem 1.25rem; color:var(--lapis-deep); background:linear-gradient(180deg,var(--gold-2),var(--gold)); border:1.5px solid var(--gold-3); border-radius:40px; cursor:pointer; text-decoration:none; font:700 .72rem "Cinzel",serif; letter-spacing:.1em; text-transform:uppercase; box-shadow:0 8px 22px rgb(9 20 38 / .35);}
body.home .hero-timeline:hover, body.home .hero-timeline:focus-visible{color:#fff8df; background:linear-gradient(180deg,var(--lapis-soft),var(--lapis-deep)); outline:none;}

/* Dynasty "Rulers in this dynasty" cards — clearer link affordance on hover */
body.dynasty-page .ruler{transition:transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;}
body.dynasty-page .ruler:hover{transform:translateY(-3px); background:#fffdf7; border-color:var(--gold); box-shadow:0 8px 18px rgb(43 33 20 / .18);}
body.dynasty-page .ruler a{display:inline-block; transition:color .16s ease, transform .16s ease;}
body.dynasty-page .ruler:hover a{color:var(--carn); text-decoration:underline;}
body.dynasty-page .ruler a:hover, body.dynasty-page .ruler a:focus-visible{color:var(--carn); text-decoration:underline; transform:translateX(2px);}

/* ===== pharaohs-by-dynasty hub ===== */
body.dynasty-index-page{margin:0;color:var(--ink);font:1.08rem/1.65 "EB Garamond",Georgia,serif;background:linear-gradient(rgb(246 237 207/.57),rgb(246 237 207/.57)),url("images/papyrus-mural-temple.webp") center top/100% auto repeat-y;border-top:7px solid var(--gold)}
body.dynasty-index-page .site-header{padding:1.4rem 1rem;color:#f7e5ad;text-align:center;background:linear-gradient(180deg,var(--deep),var(--lapis));border-bottom:3px solid var(--gold)}
body.dynasty-index-page .site-header a{color:inherit;text-decoration:none;font:700 .84rem "Cinzel",serif;letter-spacing:.08em;text-transform:uppercase}
body.dynasty-index-page main{width:min(1120px,calc(100% - 2rem));margin:2.5rem auto 4rem}
body.dynasty-index-page .intro,body.dynasty-index-page .period-block{margin:0 0 1.5rem;padding:clamp(1.3rem,4vw,2.5rem);background:rgb(255 251 240/.94);border:1px solid var(--gold);border-radius:14px;box-shadow:0 12px 28px #2b21142e}
body.dynasty-index-page .eyebrow{margin:0;color:var(--carn);font:700 .75rem "Cinzel",serif;letter-spacing:.15em;text-transform:uppercase}
body.dynasty-index-page h1{margin:.25rem 0 .8rem;color:var(--deep);font:900 clamp(2.1rem,6vw,4.3rem)/1.08 "Cinzel Decorative","Cinzel",serif}
body.dynasty-index-page h2{margin:0 0 .5rem;color:var(--deep);font:700 clamp(1.45rem,3vw,2rem) "Cinzel",serif}
body.dynasty-index-page h3{margin:1.4rem 0 .45rem;padding-bottom:.35rem;color:var(--lapis);font:700 1.08rem "Cinzel",serif;border-bottom:2px solid var(--gold)}
body.dynasty-index-page .period-nav{display:flex;flex-wrap:wrap;gap:.45rem;margin:1.3rem 0 0;padding:0;list-style:none}
body.dynasty-index-page .period-nav a{display:block;padding:.35rem .65rem;color:var(--deep);background:#f4e2ae;border:1px solid var(--gold);border-radius:30px;text-decoration:none;font:700 .67rem "Cinzel",serif}
body.dynasty-index-page .dynasty-timeframe{color:var(--carn);font-style:italic}
body.dynasty-index-page .ruler-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.45rem 1rem;margin:.7rem 0 0;padding:0;list-style:none}
body.dynasty-index-page .ruler-links a{color:var(--lapis);text-decoration:none}
body.dynasty-index-page .ruler-links a:hover,body.dynasty-index-page .ruler-links a:focus-visible{color:var(--carn);text-decoration:underline}

/* Contextual navigation on every static ruler page */
body.encyclopedia-page .ruler-context{margin-top:1.4rem;padding:clamp(1rem,3vw,1.5rem);background:rgb(255 251 240/.94);border:1px solid var(--gold);border-radius:13px;box-shadow:0 8px 20px rgb(43 33 20/.13)}
body.encyclopedia-page .context-taxonomy{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.15rem}
body.encyclopedia-page .context-taxonomy a{padding:.35rem .7rem;color:var(--deep);background:#f4e2ae;border:1px solid var(--gold);border-radius:30px;text-decoration:none;font:700 .68rem "Cinzel",serif}
body.encyclopedia-page .context-sequence{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-bottom:1.2rem}
body.encyclopedia-page .context-sequence a{display:block;padding:.8rem;color:#f7e5ad;background:linear-gradient(180deg,var(--lapis-soft),var(--lapis));border:1px solid var(--gold);border-radius:8px;text-decoration:none}
body.encyclopedia-page .context-sequence a:last-child{text-align:right}
body.encyclopedia-page .context-label{display:block;color:var(--gold-2);font:700 .62rem "Cinzel",serif;letter-spacing:.09em;text-transform:uppercase}
body.encyclopedia-page .ruler-context h2{margin:0 0 .65rem;font-size:.92rem}
body.encyclopedia-page .related-rulers{display:flex;flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none}
body.encyclopedia-page .related-rulers a{color:var(--lapis);font-weight:700;text-decoration:none}
body.encyclopedia-page .related-rulers a:hover,body.encyclopedia-page .related-rulers a:focus-visible{text-decoration:underline;color:var(--carn)}
@media(max-width:620px){body.encyclopedia-page .context-sequence{grid-template-columns:1fr}body.encyclopedia-page .context-sequence a:last-child{text-align:left}}
