/* ============================================================
   Rajputs of Saurashtra — palace archive rendered for the web
   Tokens per DESIGN.md · light default, [data-theme="dark"]
   ============================================================ */

:root{
  --maroon-900:#3B0A12; --maroon-800:#5A1220; --maroon-700:#7A1B2E;
  --kesari-600:#C4531D; --kesari-500:#E1691F;
  --gold-600:#9A7B26; --gold-500:#B8912F; --gold-400:#CBA13A;
  --ivory-50:#FBF7EE; --ivory-100:#F4EDDD; --parchment-200:#EADFC6;
  --charcoal-900:#211C18; --charcoal-700:#4A423B; --charcoal-500:#6E655C;

  --bg:#FBF7EE; --surface:#F4EDDD; --surface-alt:#EADFC6; --surface-invert:#5A1220;
  --primary:#5A1220; --primary-hover:#7A1B2E;
  --accent:#C4531D; --accent-strong:#E1691F;
  --gold:#B8912F; --gold-deep:#9A7B26;
  --border:#D8C79E; --border-strong:#B8912F;
  --text-primary:#211C18; --text-secondary:#4A423B; --text-muted:#6E655C;
  --text-on-primary:#FBF7EE; --text-link:#8A2233; --text-link-hover:#C4531D;
  --focus-ring:#C4531D;
  --footer-muted:#C9BCA6;
  --sea-line:rgba(154,123,38,.28);
  --shadow-card:0 6px 18px rgba(59,10,18,.10);
  --shadow-pop:0 10px 28px rgba(59,10,18,.18);

  --serif:"Cormorant Garamond","Noto Serif Gujarati","Noto Serif Devanagari","Hoefler Text",Garamond,"Times New Roman",serif;
  --sans:"Inter Tight","Noto Sans Gujarati","Noto Sans Devanagari","Public Sans",system-ui,"Segoe UI",sans-serif;
  --indic:"Noto Serif Gujarati","Noto Serif Devanagari",serif;

  --header-h:72px;
  --max-w:1180px;
}

[data-theme="dark"]{
  --bg:#1A1512; --surface:#241D18; --surface-alt:#2E2620; --surface-invert:#EADFC6;
  --primary:#7A1B2E; --primary-hover:#93293D;
  --accent:#E1691F; --accent-strong:#F0813A;
  --gold:#CBA13A; --gold-deep:#B8912F;
  --border:#3C332B; --border-strong:#7A6326;
  --text-primary:#F4EDDD; --text-secondary:#D8CDBB; --text-muted:#A79B8A;
  --text-on-primary:#FBF7EE; --text-link:#E7B85A; --text-link-hover:#F0813A;
  --focus-ring:#E7B85A;
  --sea-line:rgba(203,161,58,.22);
  --shadow-card:0 6px 18px rgba(0,0,0,.35);
  --shadow-pop:0 10px 28px rgba(0,0,0,.5);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0}
html{overflow-x:clip}
body{
  /* faint jaali-lattice paper texture over the base colour */
  background-color:var(--bg);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56'%3E%3Cpath d='M28 0 56 28 28 56 0 28Z' fill='none' stroke='%239A7B26' stroke-opacity='.055'/%3E%3Ccircle cx='28' cy='28' r='1.5' fill='%239A7B26' fill-opacity='.07'/%3E%3C/svg%3E");
  color:var(--text-primary);
  font-family:var(--sans); font-size:1rem; line-height:1.65;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  transition:background .4s ease,color .4s ease;
  overflow-x:clip; min-height:100vh;
  display:flex; flex-direction:column;
}
[data-theme="dark"] body{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56'%3E%3Cpath d='M28 0 56 28 28 56 0 28Z' fill='none' stroke='%23CBA13A' stroke-opacity='.05'/%3E%3Ccircle cx='28' cy='28' r='1.5' fill='%23CBA13A' fill-opacity='.06'/%3E%3C/svg%3E");
}
body.nav-open{overflow:hidden}
img{max-width:100%; display:block}
a{color:var(--text-link); text-decoration:none; transition:color .2s}
a:hover{color:var(--text-link-hover)}
:focus-visible{outline:2px solid var(--focus-ring); outline-offset:2px; border-radius:2px}
.indic{font-family:var(--indic); font-weight:400}
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.skip-link{
  position:absolute; left:-999px; top:0; z-index:100;
  background:var(--primary); color:var(--text-on-primary);
  padding:.6rem 1.2rem; border-radius:0 0 6px 0; font-weight:600; font-size:.85rem;
}
.skip-link:focus{left:0; color:var(--text-on-primary)}

h1,h2,h3{font-family:var(--serif); color:var(--text-primary); text-wrap:balance; margin:0}
h1{font-size:clamp(2.2rem,5.5vw,3rem); font-weight:500; line-height:1.1}
h2{font-size:clamp(1.7rem,4vw,2.25rem); font-weight:500; line-height:1.15}
h3{font-size:1.5rem; font-weight:600; line-height:1.2}
p{margin:0 0 1em}

.overline{
  font-family:var(--sans); font-size:.8125rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep);
  display:flex; align-items:center; gap:.65rem; margin:0 0 .9rem;
}
.overline::before{content:""; width:34px; height:1px; background:var(--gold); flex:none}
.overline.center{justify-content:center}
.overline.center::after{content:""; width:34px; height:1px; background:var(--gold); flex:none}

.lead{font-size:1.125rem; line-height:1.7; color:var(--text-secondary); max-width:68ch}
.prose{max-width:68ch}
.prose p{color:var(--text-secondary); line-height:1.75; margin:0 0 1.1em}

.container{max-width:var(--max-w); margin:0 auto; padding:0 clamp(1.1rem,4vw,2.2rem)}
section{padding:clamp(2.6rem,6vw,4.5rem) 0}

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
}
.header-inner{
  max-width:var(--max-w); margin:0 auto; height:var(--header-h);
  padding:0 clamp(1.1rem,4vw,2.2rem);
  display:flex; align-items:center; gap:1.4rem;
}
.brand{display:flex; align-items:center; gap:.7rem; color:var(--text-primary); flex:0 1 auto; min-width:0}
.brand-text{min-width:0}
.brand-title{white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block}
.header-actions{flex:none}
.brand-mark{width:34px; height:34px; color:var(--accent)}
.brand-mark .mark-ring,.brand-mark .mark-rays{color:var(--gold)}
.brand-text{display:flex; flex-direction:column; line-height:1.15}
.brand-title{font-family:var(--serif); font-weight:600; font-size:1.12rem; color:var(--text-primary)}
.brand-sub{font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted)}
.site-nav{display:flex; gap:.2rem; margin-left:auto}
.site-nav a{
  font-size:.86rem; font-weight:500; color:var(--text-secondary);
  padding:.5rem .75rem; border-radius:4px; position:relative; white-space:nowrap;
}
.site-nav a::after{
  content:""; position:absolute; left:.75rem; right:.75rem; bottom:.28rem; height:1.5px;
  background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .22s ease;
}
.site-nav a:hover{color:var(--text-primary)}
.site-nav a:hover::after{transform:scaleX(1)}
.site-nav a.active{color:var(--maroon-700); font-weight:600}
[data-theme="dark"] .site-nav a.active{color:var(--gold-400)}
.site-nav a.active::after{transform:scaleX(1)}
.header-actions{display:flex; align-items:center; gap:.4rem; margin-left:.2rem}
.lang-switch{
  display:flex; align-items:center; border:1px solid var(--border); border-radius:999px;
  padding:2px; gap:1px; background:transparent;
}
.lang-switch button{
  border:none; background:transparent; cursor:pointer; border-radius:999px;
  font-family:var(--sans); font-size:.72rem; font-weight:600; letter-spacing:.03em;
  color:var(--text-muted); padding:.32rem .6rem; transition:background .2s,color .2s; line-height:1.2;
}
.lang-switch button:hover{color:var(--text-primary)}
.lang-switch button.active{background:var(--surface-alt); color:var(--maroon-800)}
[data-theme="dark"] .lang-switch button.active{color:var(--gold-400)}
.theme-toggle{
  width:38px; height:38px; border-radius:50%; border:1px solid var(--border);
  background:transparent; color:var(--text-secondary); cursor:pointer;
  display:grid; place-items:center; font-size:1rem; transition:border-color .2s, color .2s, transform .3s;
}
.theme-toggle:hover{border-color:var(--gold); color:var(--text-primary); transform:rotate(18deg)}
.nav-burger{
  display:none; width:40px; height:38px; border:1px solid var(--border); border-radius:6px;
  background:transparent; cursor:pointer; flex-direction:column; justify-content:center; align-items:center; gap:5px;
}
.nav-burger span{display:block; width:18px; height:1.8px; background:var(--text-primary); transition:transform .25s, opacity .2s}
.nav-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.8px) rotate(45deg)}
.nav-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.8px) rotate(-45deg)}
.mobile-nav{
  display:none; position:fixed; top:var(--header-h); left:0; right:0; bottom:0;
  height:calc(100dvh - var(--header-h));
  flex-direction:column; border-top:1px solid var(--border); background:var(--bg);
  padding:1rem 1.6rem 2.2rem; overflow-y:auto; z-index:49;
}
.mobile-nav a{
  padding:1rem .4rem; font-size:1.2rem; font-weight:500; font-family:var(--serif);
  color:var(--text-secondary); border-bottom:1px solid var(--border);
  opacity:0; transform:translateY(8px);
}
.mobile-nav a.active{color:var(--maroon-700); font-weight:600}
[data-theme="dark"] .mobile-nav a.active{color:var(--gold-400)}
.mobile-nav.open{display:flex}
.mobile-nav.open a{animation:seatIn .35s ease forwards}
.mobile-nav.open a:nth-child(1){animation-delay:.03s}.mobile-nav.open a:nth-child(2){animation-delay:.06s}
.mobile-nav.open a:nth-child(3){animation-delay:.09s}.mobile-nav.open a:nth-child(4){animation-delay:.12s}
.mobile-nav.open a:nth-child(5){animation-delay:.15s}.mobile-nav.open a:nth-child(6){animation-delay:.18s}
.mobile-nav.open a:nth-child(7){animation-delay:.21s}.mobile-nav.open a:nth-child(8){animation-delay:.24s}
.mobile-nav-foot{margin-top:auto; padding-top:1.8rem}
.mobile-nav-label{
  font-size:.7rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color:var(--text-muted); margin:0 0 .7rem;
}
.lang-switch-lg{width:fit-content}
.lang-switch-lg button{font-size:.92rem; padding:.5rem 1rem}
@media (prefers-reduced-motion: reduce){
  .mobile-nav a{opacity:1; transform:none}
}

/* ---------- page watermark art (Rajputi motifs, injected per view) ---------- */
.site-main{flex:1; position:relative; isolation:isolate}
.page-art,.hero-art{
  position:absolute; z-index:-1; pointer-events:none; height:auto;
  color:var(--gold-deep); opacity:.06;
}
.page-art{top:clamp(56px,7vw,100px); right:clamp(10px,4vw,70px); width:clamp(190px,24vw,320px)}
[data-theme="dark"] .page-art,
[data-theme="dark"] .hero-art{opacity:.085; color:var(--gold-400)}
.page-art.art-toran{top:-6px; right:clamp(20px,8vw,120px); width:clamp(250px,32vw,430px)}
.page-art.art-arch,.page-art.art-jharokha{width:clamp(170px,20vw,260px)}
/* shorter/high placements where cards begin early in the page */
.page-art.art-paisley{top:44px; right:clamp(30px,6vw,100px); width:clamp(140px,15vw,190px)}
.page-art.art-tome,.page-art.art-scales{top:36px; right:clamp(30px,6vw,90px); width:clamp(140px,15vw,185px)}
.hero .hero-art{top:-54px; left:-44px; width:clamp(300px,36vw,470px)}
.clan-hero .hero-art{right:-18px; bottom:-40px; width:clamp(220px,26vw,320px)}
@media (max-width:700px){
  .page-art{opacity:.05; width:200px; right:-34px}
  .page-art.art-toran{width:270px; right:-12px; top:-4px}
}

/* ---------- loading ---------- */
.loading{min-height:50vh; display:grid; place-items:center; align-content:center; gap:1rem; color:var(--text-muted)}
.loading-sun{animation:spin 5s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- hero ---------- */
.hero{
  position:relative; overflow:hidden; isolation:isolate;
  /* no opaque base colour — lets the body's jaali texture show through */
  background:radial-gradient(1200px 500px at 78% -10%, color-mix(in srgb, var(--gold) 14%, transparent), transparent 60%);
  border-bottom:1px solid var(--border);
}
.hero-inner{
  max-width:var(--max-w); margin:0 auto; padding:clamp(3.2rem,8vw,6rem) clamp(1.1rem,4vw,2.2rem);
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:clamp(2rem,5vw,4rem); align-items:center;
}
.hero-eyebrow{margin-bottom:1.1rem}
.hero h1{
  font-size:clamp(2.6rem,6.5vw,4.5rem); font-weight:300; line-height:1.05; letter-spacing:-.01em; margin:0 0 1.2rem;
}
.hero h1 strong{font-weight:600}
.hero .lead{margin-bottom:2rem}
.hero-ctas{display:flex; gap:.9rem; flex-wrap:wrap}
.btn{
  display:inline-flex; align-items:center; gap:.55rem;
  font-family:var(--sans); font-size:.9rem; font-weight:600;
  padding:.78rem 1.5rem; border-radius:4px; cursor:pointer; border:1px solid transparent;
  transition:background .2s, color .2s, border-color .2s, transform .15s;
}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--primary); color:var(--text-on-primary); position:relative; overflow:hidden}
.btn-primary:hover{background:var(--primary-hover); color:var(--text-on-primary)}
.btn-primary::after{
  content:""; position:absolute; top:0; bottom:0; width:38%;
  background:linear-gradient(105deg, transparent, rgba(251,247,238,.22), transparent);
  transform:translateX(-120%) skewX(-18deg);
}
.btn-primary:hover::after{animation:glint 1s ease}
@keyframes glint{to{transform:translateX(320%) skewX(-18deg)}}
.btn-ghost{background:transparent; color:var(--text-primary); border-color:var(--border-strong)}
.btn-ghost:hover{border-color:var(--gold-deep); color:var(--text-primary); background:var(--surface)}
/* --- animated hero map --- */
.hero-map{
  position:relative; display:block; border:1px solid var(--border); border-radius:8px;
  background:color-mix(in srgb, var(--surface) 55%, transparent);
  padding:.6rem; transition:border-color .25s, box-shadow .25s;
}
.hero-map:hover{border-color:var(--gold); box-shadow:var(--shadow-card)}
.hero-map .map-svg{display:block; width:100%; height:auto}
.hero-map .coast{
  stroke-dasharray:3400; stroke-dashoffset:3400;
  animation:drawCoast 2.4s cubic-bezier(.4,0,.2,1) .25s forwards;
}
@keyframes drawCoast{to{stroke-dashoffset:0}}
.hero-map .map-seat{opacity:0; animation:seatIn .55s ease forwards; animation-delay:var(--d,1s); pointer-events:none}
@keyframes seatIn{from{opacity:0; transform:translateY(8px)}to{opacity:1; transform:none}}
.hero-map .map-seat.senior .halo{transform-origin:center; transform-box:fill-box; animation:pulse 3s ease-in-out 2.6s infinite}
@keyframes pulse{0%,100%{opacity:.16; transform:scale(1)}50%{opacity:.32; transform:scale(1.35)}}
.hero-map .map-seat text{font-size:15px}
.hero-map-cta{
  position:absolute; right:.9rem; bottom:.7rem;
  font-size:.74rem; font-weight:600; letter-spacing:.06em; color:var(--text-link);
  background:color-mix(in srgb, var(--bg) 82%, transparent); border-radius:999px; padding:.3rem .75rem;
  opacity:0; animation:seatIn .5s ease 2.4s forwards;
}
.hero-map:hover .hero-map-cta{color:var(--text-link-hover)}
@media (prefers-reduced-motion: reduce){
  .hero-map .coast{stroke-dashoffset:0; animation:none}
  .hero-map .map-seat{opacity:1; animation:none}
  .hero-map .map-seat.senior .halo{animation:none}
  .hero-map-cta{opacity:1; animation:none}
}
.hero-strip{
  border-top:1px solid var(--border);
  background:var(--surface);
}
.hero-strip-inner{
  max-width:var(--max-w); margin:0 auto; padding:1.1rem clamp(1.1rem,4vw,2.2rem);
  display:flex; gap:2.4rem; overflow-x:auto; scrollbar-width:none;
}
.hero-strip-inner::-webkit-scrollbar{display:none}
.strip-item{flex:none; display:flex; flex-direction:column; gap:.1rem}
.strip-num{font-family:var(--serif); font-size:1.5rem; font-weight:600; color:var(--maroon-700)}
[data-theme="dark"] .strip-num{color:var(--gold-400)}
.strip-label{font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted)}

/* ---------- cards ---------- */
.grid{display:grid; gap:1.2rem}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{
  background:var(--surface); border:1px solid var(--border); border-radius:4px;
  padding:1.5rem 1.4rem; transition:box-shadow .25s, transform .25s, border-color .25s;
  position:relative; overflow:hidden;
}
.card:hover{box-shadow:var(--shadow-card); transform:translateY(-3px); border-color:var(--gold)}
.card h3{font-size:1.45rem; margin-bottom:.35rem}
.clan-card{display:flex; flex-direction:column; gap:.5rem; cursor:pointer}
.clan-card .clan-head{display:flex; align-items:baseline; gap:.6rem; flex-wrap:wrap}
.clan-card .indic{color:var(--maroon-700); font-size:1.05rem}
[data-theme="dark"] .clan-card .indic{color:var(--gold-400)}
.clan-card p{color:var(--text-secondary); font-size:.94rem; margin:0}
.clan-card .card-cta{
  margin-top:auto; padding-top:.7rem; font-size:.82rem; font-weight:600; color:var(--text-link);
  display:inline-flex; align-items:center; gap:.35rem;
}
.clan-card:hover .card-cta{color:var(--text-link-hover)}
.lineage-badge{
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.7rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase;
  color:var(--gold-deep); border:1px solid var(--border); border-radius:999px; padding:.22rem .7rem;
  background:color-mix(in srgb, var(--surface-alt) 55%, transparent);
  width:fit-content;
}
.lineage-badge svg{width:12px; height:12px; flex:none}

/* section headers */
.section-head{margin-bottom:2rem}
.section-head .lead{margin-top:.6rem}
.section-head.center{text-align:center}
.section-head.center .lead{margin-inline:auto}

/* ---------- filter chips + search ---------- */
.toolbar{display:flex; gap:.7rem; flex-wrap:wrap; align-items:center; margin-bottom:1.6rem}
.chip{
  display:inline-flex; align-items:center; gap:6px; font-size:.76rem; font-weight:600;
  padding:.42rem .85rem; border-radius:999px; cursor:pointer;
  border:1px solid var(--border); background:transparent; color:var(--text-muted);
  transition:all .2s; font-family:var(--sans);
}
.chip:hover{border-color:var(--gold); color:var(--text-primary)}
.chip.active{border-color:var(--gold-500,#B8912F); background:var(--surface); color:var(--maroon-800)}
[data-theme="dark"] .chip.active{color:var(--gold-400)}
.search{
  flex:1 1 220px; max-width:340px; display:flex; align-items:center; gap:.5rem;
  border:1px solid var(--border); border-radius:4px; background:var(--surface); padding:.5rem .8rem;
}
.search svg{flex:none; color:var(--text-muted)}
.search input{
  border:none; outline:none; background:transparent; width:100%;
  font-family:var(--sans); font-size:.9rem; color:var(--text-primary);
}
.search input::placeholder{color:var(--text-muted)}

/* ---------- map ---------- */
.map-wrap{position:relative; background:var(--surface); border:1px solid var(--border); border-radius:6px; overflow:hidden}
.map-svg{display:block; width:100%; height:auto}
.map-seat{cursor:pointer}
.map-seat circle.dot{transition:r .18s ease}
.map-seat:hover circle.dot,.map-seat:focus circle.dot{r:9}
.map-seat text{
  font-family:var(--sans); font-size:13px; font-weight:600; fill:var(--text-primary);
  paint-order:stroke; stroke:var(--bg); stroke-width:3px; stroke-linejoin:round;
}
.tract-label{
  font-family:var(--serif); font-size:26px; font-style:italic; letter-spacing:.08em;
  fill:var(--gold-deep); opacity:.55; pointer-events:none;
}
.hero-map .tract-label{font-size:32px; opacity:.6}
.sacred-media{aspect-ratio:16/9}
.map-tip{
  position:absolute; z-index:20; pointer-events:none;
  background:var(--surface); border:1px solid var(--border-strong); border-radius:6px;
  padding:.85rem 1rem; max-width:280px; width:max-content; box-shadow:var(--shadow-pop);
  opacity:0; transform:translate(-50%,-100%) translateY(-14px) scale(.97); transition:opacity .18s, transform .18s;
}
.map-tip.show{opacity:1; transform:translate(-50%,-100%) translateY(-18px) scale(1)}
.map-tip.flip{transform:translate(-50%,0) translateY(22px) scale(.97)}
.map-tip.flip.show{transform:translate(-50%,0) translateY(26px) scale(1)}
.map-tip .tip-name{font-family:var(--serif); font-weight:600; font-size:1.1rem; margin:0}
.map-tip .tip-clan{font-size:.68rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--gold-deep); margin:.15rem 0 .3rem}
.map-tip .tip-note{font-size:.82rem; color:var(--text-secondary); margin:0; line-height:1.5}
@media (max-width:560px){.map-tip{max-width:min(230px, calc(100vw - 56px))}}
.map-legend{display:flex; gap:.55rem; flex-wrap:wrap; padding:1rem clamp(1rem,3vw,1.4rem); border-top:1px solid var(--border)}
.legend-dot{width:10px; height:10px; border-radius:50%; flex:none}

/* clan marker colours — heritage ramp */
.c-jhala{--seat:#7A1B2E}
.c-jadeja{--seat:#C4531D}
.c-gohil{--seat:#9A7B26}
.c-jethwa{--seat:#4A6350}
.c-chudasama{--seat:#585E7A}
.c-parmar{--seat:#A8762C}
.c-vala{--seat:#2F6B66}
.c-rathod{--seat:#5B4A8A}
.c-sarvaiya{--seat:#8A5A44}
.c-chavda{--seat:#844A32}
.c-vaghela{--seat:#3D5A80}
.c-chauhan{--seat:#B05322}
.c-solanki{--seat:#A88320}
.c-sisodia{--seat:#8E2800}
[data-theme="dark"] .c-jhala{--seat:#C86A7E}
[data-theme="dark"] .c-jadeja{--seat:#F0813A}
[data-theme="dark"] .c-gohil{--seat:#CBA13A}
[data-theme="dark"] .c-jethwa{--seat:#7FA98C}
[data-theme="dark"] .c-chudasama{--seat:#97A0C8}
[data-theme="dark"] .c-parmar{--seat:#D9A552}
[data-theme="dark"] .c-vala{--seat:#6FB3AC}
[data-theme="dark"] .c-rathod{--seat:#A99BD6}
[data-theme="dark"] .c-sarvaiya{--seat:#C79A7F}
[data-theme="dark"] .c-chavda{--seat:#C2856D}
[data-theme="dark"] .c-vaghela{--seat:#7CA1CC}
[data-theme="dark"] .c-chauhan{--seat:#E2824C}
[data-theme="dark"] .c-solanki{--seat:#DEC067}
[data-theme="dark"] .c-sisodia{--seat:#D96B43}

/* ---------- global search ---------- */
.search-btn{
  width:36px; height:36px; border:none; border-radius:6px;
  background:transparent; color:var(--text-secondary); cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; transition:background .2s,color .2s}
.search-btn:hover{background:var(--surface-alt); color:var(--text-primary)}
body.search-open{overflow:hidden}
.search-modal{position:fixed; inset:0; z-index:90; display:flex; justify-content:center; align-items:flex-start}
.search-modal[hidden]{display:none}
.search-backdrop{position:absolute; inset:0; background:rgba(26,17,14,.45); backdrop-filter:blur(3px)}
[data-theme="dark"] .search-backdrop{background:rgba(0,0,0,.55)}
.search-panel{position:relative; width:min(620px, 92vw); margin-top:clamp(3rem, 12vh, 8rem);
  background:var(--surface); border:1px solid var(--border-strong); border-radius:12px; box-shadow:var(--shadow-pop);
  display:flex; flex-direction:column; max-height:min(66vh, 620px); overflow:hidden;
  animation:searchIn .18s ease}
@keyframes searchIn{from{opacity:0; transform:translateY(-8px)} to{opacity:1; transform:none}}
@media (prefers-reduced-motion: reduce){.search-panel{animation:none}}
.search-head{display:flex; align-items:center; gap:.65rem; padding:.85rem 1rem; border-bottom:1px solid var(--border); color:var(--text-muted)}
.search-head input{flex:1; border:none; outline:none; background:transparent; min-width:0;
  font-family:var(--sans); font-size:1.05rem; color:var(--text-primary)}
.search-head input::placeholder{color:var(--text-muted)}
.search-head input::-webkit-search-cancel-button{-webkit-appearance:none; display:none}
.search-esc{border:1px solid var(--border); border-radius:5px; background:var(--surface-alt); color:var(--text-muted);
  font-size:.66rem; font-weight:600; letter-spacing:.06em; padding:.2rem .45rem; cursor:pointer}
.search-esc:hover{color:var(--text-primary); border-color:var(--gold)}
.search-body{overflow-y:auto; overscroll-behavior:contain}
.sm-item{display:block; width:100%; text-align:left; padding:.65rem 1rem; border:none; border-bottom:1px solid var(--border);
  background:transparent; text-decoration:none; cursor:pointer; font-family:var(--sans)}
.sm-item:last-child{border-bottom:none}
.sm-item:hover,.sm-item.active{background:var(--surface-alt)}
.sm-item mark{background:transparent; color:var(--gold-deep); font-weight:700}
[data-theme="dark"] .sm-item mark{color:var(--gold-400)}
.sm-all{font-size:.82rem; font-weight:600; color:var(--text-link); text-align:center}
.sm-hint,.sm-count{padding:.9rem 1rem; font-size:.85rem; color:var(--text-muted); margin:0}
.sm-count{border-bottom:1px solid var(--border)}
.sm-group{position:sticky; top:0; margin:0; padding:.5rem 1rem .35rem; background:var(--surface);
  font-size:.62rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--gold-deep);
  border-bottom:1px solid var(--border)}
.gs-type{display:block; font-size:.62rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--gold-deep)}
.sm-group ~ .sm-item .gs-type{display:none}
.gs-title{display:block; font-family:var(--serif); font-weight:600; font-size:1rem; color:var(--text-primary)}
.gs-sub{display:block; font-size:.78rem; color:var(--text-muted); line-height:1.45}
.search-foot{padding:.5rem 1rem; border-top:1px solid var(--border); font-size:.68rem; color:var(--text-muted); background:var(--surface-alt)}

/* ---------- "More" nav dropdown ---------- */
.nav-more{position:relative; display:flex; align-items:center}
.nav-more-btn{
  display:flex; align-items:center; gap:.3rem; border:none; background:none; cursor:pointer;
  font-family:var(--sans); font-size:.86rem; font-weight:500; color:var(--text-secondary);
  padding:.5rem .75rem; border-radius:4px; white-space:nowrap; position:relative;
}
.nav-more-btn::after{
  content:""; position:absolute; left:.75rem; right:.75rem; bottom:.28rem; height:1.5px;
  background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .22s ease;
}
.nav-more-btn:hover{color:var(--text-primary)}
.nav-more-btn:hover::after{transform:scaleX(1)}
.nav-more-btn.active{color:var(--maroon-700); font-weight:600}
.nav-more-btn.active::after{transform:scaleX(1)}
[data-theme="dark"] .nav-more-btn.active{color:var(--gold-400)}
.nav-more-btn svg{transition:transform .18s ease; opacity:.55; margin-top:1px}
.nav-more-btn:hover svg,.nav-more-btn.active svg{opacity:.9}
.nav-more-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.nav-more-panel{
  position:absolute; top:calc(100% + 10px); right:0; min-width:190px; z-index:60;
  background:var(--surface); border:1px solid var(--border-strong); border-radius:8px;
  box-shadow:var(--shadow-pop); padding:.45rem;
}
.nav-more-panel a{
  display:block; padding:.5rem .7rem; border-radius:5px;
  font-size:.87rem; font-weight:500; color:var(--text-secondary); white-space:nowrap;
}
.nav-more-panel a::after{display:none}
.nav-more-panel a:hover{background:var(--surface-alt); color:var(--text-primary)}
.nav-more-panel a.active{color:var(--maroon-700); font-weight:600}
[data-theme="dark"] .nav-more-panel a.active{color:var(--gold-400)}

/* ---------- glossary term popover ---------- */
.gl-term{display:inline; padding:0; margin:0; border:none; background:none; cursor:pointer;
  font:inherit; color:inherit; border-bottom:1px dotted var(--gold-deep)}
.gl-term:hover{color:var(--gold-deep)}
.term-pop{position:absolute; z-index:70; max-width:300px; background:var(--surface);
  border:1px solid var(--border-strong); border-radius:8px; box-shadow:var(--shadow-pop); padding:.85rem 1rem}
.term-pop .tp-term{font-family:var(--serif); font-weight:700; margin:0 0 .25rem}
.term-pop .tp-def{font-size:.84rem; color:var(--text-secondary); line-height:1.55; margin:0 0 .4rem}
.term-pop a{font-size:.78rem; font-weight:600}

/* ---------- line of descent ---------- */
.tree, .tree ul{list-style:none; margin:0; padding:0}
.tree{margin-top:1.1rem}
.tree ul{margin-left:1.15rem; padding-left:1.55rem}
.tree li{position:relative; padding:.32rem 0}
/* soft rails — a vertical segment per node, so the last branch stops cleanly */
.tree ul li::before{content:""; position:absolute; left:0; top:-.35rem; height:1.95rem; width:1.5px;
  background:var(--border-strong); opacity:.45}
.tree ul li::after{content:""; position:absolute; left:0; top:1.55rem; width:1.35rem; height:1.5px;
  background:var(--border-strong); opacity:.45; border-radius:2px}
.tnode{display:inline-flex; flex-direction:column; gap:.12rem; padding:.5rem .9rem;
  border:1px solid var(--border); border-left:3px solid var(--gold); border-radius:8px;
  background:var(--surface); box-shadow:var(--shadow-card);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease}
.tnode:hover{transform:translateX(2px); box-shadow:var(--shadow-pop); border-left-color:var(--accent)}
.tn-name{font-family:var(--serif); font-weight:600; font-size:1.08rem; line-height:1.25; color:var(--text-primary)}
.tn-note{font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; color:var(--text-muted)}
/* founder — the head of the line */
.tree > li{padding-top:0}
.tree > li > .tnode{border-left-width:4px; border-left-color:var(--primary); padding:.65rem 1.05rem;
  background:linear-gradient(135deg,var(--surface-alt),var(--surface))}
.tree > li > .tnode .tn-name{font-size:1.3rem; color:var(--primary)}

/* ---------- states & regions ---------- */
.states-filters{display:flex; flex-direction:column; gap:.75rem; margin-bottom:1.8rem}
.filter-row{display:flex; gap:.5rem; flex-wrap:wrap; align-items:center}
.filter-label{
  font-size:.74rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--gold-deep); min-width:68px; flex:none;
}
.state-card{display:flex; flex-direction:column; cursor:pointer}
.state-card .state-salute{display:flex; align-items:center; gap:.45rem; font-size:.8rem; font-weight:600; margin:.5rem 0 .25rem}
.state-card .state-card-region{
  font-size:.72rem; letter-spacing:.07em; text-transform:uppercase;
  color:var(--gold-deep); font-weight:600; margin:0 0 .5rem;
}
.state-card .state-note{font-size:.9rem; color:var(--text-secondary); margin-bottom:.5rem}
.state-card .card-cta{
  margin-top:auto; padding-top:.7rem; font-size:.82rem; font-weight:600; color:var(--text-link);
  display:inline-flex; align-items:center; gap:.35rem;
}
.state-card:hover .card-cta{color:var(--text-link-hover)}
.card-bhayat-count{
  display:inline-flex; align-items:center; gap:6px; margin-top:.4rem;
  padding:.22rem .6rem; border-radius:4px; background:var(--surface-alt);
  border:1px solid var(--border); font-size:.75rem; font-weight:600; color:var(--maroon-800);
}
[data-theme="dark"] .card-bhayat-count{color:var(--gold-400)}

/* ---------- Bhayati Villages & Cadet Estates ---------- */
.bhayat-section{
  margin-top:2.2rem; padding:clamp(1.2rem,3vw,1.8rem);
  border:1px solid var(--border-strong); border-radius:8px;
  background:var(--surface); box-shadow:var(--shadow-card);
}
.bhayat-header h3{font-size:1.35rem; font-weight:600; color:var(--text-primary); margin:.2rem 0 .4rem}
.bhayat-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
  gap:.75rem; margin-top:1.2rem;
}
.bhayat-card{
  display:flex; align-items:center; gap:.65rem; padding:.6rem .9rem;
  background:var(--bg); border:1px solid var(--border); border-left:3px solid var(--gold);
  border-radius:6px; font-family:var(--sans);
  transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.bhayat-card:hover{
  transform:translateY(-2px); border-left-color:var(--accent);
  box-shadow:var(--shadow-pop);
}
.bhayat-dot{width:6px; height:6px; border-radius:50%; background:var(--accent); flex-shrink:0}
.bhayat-name{font-weight:600; font-size:.92rem; color:var(--text-primary)}
.bhayat-taluka{font-size:.74rem; color:var(--text-muted); margin-left:auto}

/* ---------- Clan Cadet Estates & Clusters ---------- */
.clan-estates-section{margin-top:2.4rem}
.clan-estates-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:1.2rem; margin-top:1rem;
}
.estate-group-card{
  padding:1.2rem 1.3rem; border:1px solid var(--border); border-radius:8px;
  background:var(--surface); display:flex; flex-direction:column;
}
.estate-group-head{
  display:flex; justify-content:space-between; align-items:baseline;
  gap:.5rem; margin-bottom:.35rem;
}
.estate-group-head h4{
  margin:0; font-family:var(--serif); font-size:1.15rem; font-weight:600;
  color:var(--text-primary);
}
.estate-seat-ref{font-size:.85rem; margin:0 0 .6rem}
.estate-seat-ref a{color:var(--text-link); font-weight:600}
.estate-seat-ref a:hover{color:var(--text-link-hover); text-decoration:underline}
.estate-villages-list{display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.5rem}
.estate-pill{
  font-size:.8rem; font-weight:500; font-family:var(--sans);
  border:1px solid var(--border); border-radius:999px; padding:.25rem .65rem;
  background:var(--bg); color:var(--text-secondary); transition:all .2s ease;
}
.estate-pill:hover{border-color:var(--gold); color:var(--primary)}

/* ---------- Darbari Gaamo na List & Surnames Directory ---------- */
.darbari-nav-banner{
  display:flex; justify-content:space-between; align-items:center; gap:1.2rem;
  padding:1.1rem 1.4rem; margin-bottom:1.8rem; border-radius:8px;
  background:linear-gradient(135deg, var(--surface) 0%, var(--surface-alt) 100%);
  border:1px solid var(--border-strong); border-left:4px solid var(--gold);
}
.darbari-banner-content h4{margin:.2rem 0 .25rem; font-family:var(--serif); font-size:1.1rem; color:var(--text-primary)}
.darbari-banner-content p{margin:0; font-size:.85rem; color:var(--text-muted)}
.darbari-badge{
  display:inline-block; font-size:.68rem; font-weight:700; text-transform:uppercase;
  letter-spacing:.08em; padding:.2rem .55rem; border-radius:4px;
  background:#5A1220; color:#FFF7E8; border:1px solid #9A7B26;
  box-shadow:0 1px 3px rgba(59,10,18,.12);
}
[data-theme="dark"] .darbari-badge{
  background:#7A1B2E; color:#F4EDDD; border-color:#CBA13A;
  box-shadow:none;
}
.darbari-disclaimer-callout{
  display:flex; align-items:flex-start; gap:.8rem; padding:.9rem 1.2rem;
  margin:1.4rem 0 1.8rem; border-radius:6px; background:var(--surface);
  border:1px solid var(--border); font-size:.88rem; color:var(--text-secondary);
}
.darbari-disclaimer-callout .callout-icon{font-size:1.1rem; color:var(--gold-deep); flex-shrink:0; margin-top:.1rem}
.darbari-disclaimer-callout p{margin:0; line-height:1.55}
.darbari-search-row{margin-top:.8rem; width:100%}
.darbari-search-box{
  width:100%; max-width:480px; padding:.65rem 1rem; border-radius:6px;
  border:1px solid var(--border-strong); background:#FFFFFF; color:#211C18;
  font-family:var(--sans); font-size:.92rem; transition:border-color .2s ease, box-shadow .2s ease;
}
[data-theme="dark"] .darbari-search-box{
  background:var(--surface-alt); color:var(--text-primary); border-color:var(--border-strong);
}
.darbari-search-box:focus{outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(184,51,42,.15)}
.estate-card{
  padding:1.35rem 1.45rem; border:1px solid var(--border); border-radius:8px;
  background:#FFFFFF; color:var(--text-primary); display:flex; flex-direction:column;
  box-shadow:0 2px 8px rgba(33,28,24,.06);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
[data-theme="dark"] .estate-card{
  background:var(--surface);
  box-shadow:none;
}
.estate-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-card); border-color:var(--gold)}
.estate-card-head{display:flex; justify-content:space-between; align-items:flex-start; gap:.6rem; margin-bottom:.4rem}
.estate-card-head h3{color:var(--text-primary); font-family:var(--serif); letter-spacing:-.01em}
.estate-villages-grid{
  display:flex; flex-wrap:wrap; gap:.45rem; margin:1rem 0 .6rem;
}
.village-pill{
  display:inline-flex; align-items:center; gap:5px; font-size:.82rem; font-weight:600;
  padding:.26rem .62rem; border-radius:4px; background:var(--ivory-50);
  border:1px solid var(--border); color:#211C18; transition:all .15s ease;
}
[data-theme="dark"] .village-pill{
  background:var(--surface-alt); color:var(--text-primary); border-color:var(--border);
}
.village-pill:hover{border-color:var(--accent); background:var(--surface-alt); color:var(--accent)}
.estate-source-note{font-size:.78rem; color:var(--text-muted); margin-top:auto; padding-top:.6rem; border-top:1px dashed var(--border)}

/* ---------- Rajput Surnames Directory ---------- */
.surnames-container{
  padding:2rem 1.8rem; border-radius:10px; border:1px solid var(--border-strong);
  background:#FFFFFF; box-shadow:var(--shadow-card);
}
[data-theme="dark"] .surnames-container{
  background:var(--surface);
}
.surnames-head h3{font-size:1.35rem; font-family:var(--serif); margin:.2rem 0 .4rem}
.surnames-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr));
  gap:.65rem; margin-top:1.4rem;
}
.surname-chip{
  display:flex; flex-direction:column; padding:.55rem .75rem; border-radius:6px;
  background:var(--ivory-50); border:1px solid var(--border);
  transition:all .2s ease; cursor:pointer;
}
[data-theme="dark"] .surname-chip{
  background:var(--surface-alt);
}
.surname-chip:hover{border-color:var(--gold); transform:translateY(-2px); box-shadow:var(--shadow-pop); background:#FFFFFF}
[data-theme="dark"] .surname-chip:hover{background:var(--surface)}
.surname-chip:focus-visible{outline:2px solid var(--focus-ring); border-color:var(--gold); transform:translateY(-2px)}
.surname-chip .sn-num{font-size:.7rem; color:var(--text-muted); font-weight:600}
.surname-chip .sn-name{font-size:.95rem; font-weight:600; color:var(--text-primary); margin:.1rem 0}
.surname-chip .sn-branch{font-size:.75rem; color:var(--text-muted); line-height:1.35}

.map-tip .tip-link{display:inline-block; margin-top:.5rem; font-size:.78rem; font-weight:700}
.map-tip.show{pointer-events:auto}

/* ---------- gallery ---------- */
.gal-group{margin-top:2.4rem}
.gal-grid{columns:230px; column-gap:1.1rem; margin-top:1rem}
.gal-item{margin:0 0 1.1rem; break-inside:avoid; -webkit-column-break-inside:avoid}
.gal-item a{
  display:block; overflow:hidden; border:1px solid var(--border); border-radius:6px;
  background:var(--surface-alt, rgba(0,0,0,.04)); position:relative; min-height:160px;
}
.gal-item img{
  display:block; width:100%; height:auto; opacity:0;
  transition:opacity .35s ease, transform .25s ease;
}
.gal-item img.img-loaded{opacity:1}
.gal-item a:hover img{transform:scale(1.02)}
.gal-item figcaption{font-size:.75rem; color:var(--text-muted); margin-top:.45rem; line-height:1.5}

/* ---------- quiz ---------- */
.quiz-container{max-width:760px}
.quiz-intro{margin-top:1.4rem; border:1px solid var(--border); border-radius:12px; background:var(--surface);
  padding:2rem 1.6rem; text-align:center}
.quiz-intro-meta{margin:0 0 1.2rem; color:var(--text-muted); font-size:.9rem}
.quiz-modal{position:fixed; inset:0; z-index:90; display:flex; justify-content:center; align-items:flex-start}
.quiz-modal[hidden]{display:none}
.quiz-backdrop{position:absolute; inset:0; background:rgba(26,17,14,.45); backdrop-filter:blur(3px)}
[data-theme="dark"] .quiz-backdrop{background:rgba(0,0,0,.55)}
.quiz-panel{position:relative; width:min(560px, 92vw); margin-top:clamp(2.5rem, 10vh, 7rem);
  background:var(--surface); border:1px solid var(--border-strong); border-radius:12px; box-shadow:var(--shadow-pop);
  padding:1.15rem 1.4rem 1.4rem; overflow:hidden; max-height:min(80vh, 700px); display:flex; flex-direction:column;
  animation:searchIn .18s ease}
@media (prefers-reduced-motion: reduce){.quiz-panel{animation:none}}
.quiz-watermark{position:absolute; right:-34px; bottom:-40px; width:250px; height:auto;
  color:var(--gold-deep); opacity:.07; pointer-events:none}
[data-theme="dark"] .quiz-watermark{opacity:.09}
.quiz-mhead{display:flex; align-items:center; justify-content:space-between; gap:1rem}
.quiz-mhead .overline{margin:0}
.quiz-mbody{position:relative; overflow-y:auto}
.qm-progress{height:3px; background:var(--surface-alt); border-radius:2px; margin:.9rem 0 .55rem; overflow:hidden}
.qm-progress span{display:block; height:100%; background:var(--gold); border-radius:2px; transition:width .3s ease}
.qm-count{margin:0 0 .35rem; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted)}
.qm-q{font-size:1.3rem; line-height:1.35; margin-bottom:1rem}
.qm-opts{display:flex; flex-direction:column; gap:.5rem}
.qm-opt{display:flex; align-items:center; gap:.7rem; width:100%; text-align:left; cursor:pointer;
  border:1px solid var(--border); border-radius:8px; background:transparent; padding:.65rem .8rem;
  font-family:var(--sans); font-size:.92rem; color:var(--text-primary); transition:border-color .15s, background .15s}
.qm-opt:not(:disabled):hover{border-color:var(--gold); background:var(--surface-alt)}
.qm-key{flex:none; width:22px; height:22px; border:1px solid var(--border); border-radius:5px;
  display:inline-flex; align-items:center; justify-content:center; font-size:.68rem; font-weight:700; color:var(--text-muted)}
.qm-opt:disabled{cursor:default; opacity:.75}
.qm-opt.right{border-color:#2E7D4F; background:rgba(46,125,79,.08); color:#2E7D4F; font-weight:600; opacity:1}
.qm-opt.right .qm-key{border-color:#2E7D4F; color:#2E7D4F}
[data-theme="dark"] .qm-opt.right{border-color:#7FC79B; background:rgba(127,199,155,.1); color:#7FC79B}
[data-theme="dark"] .qm-opt.right .qm-key{border-color:#7FC79B; color:#7FC79B}
.qm-opt.wrong{border-color:#B3403A; background:rgba(179,64,58,.07); color:#B3403A; opacity:1}
.qm-opt.wrong .qm-key{border-color:#B3403A; color:#B3403A}
[data-theme="dark"] .qm-opt.wrong{border-color:#E08A85; background:rgba(224,138,133,.1); color:#E08A85}
[data-theme="dark"] .qm-opt.wrong .qm-key{border-color:#E08A85; color:#E08A85}
.qm-feedback{margin:.85rem 0 0; font-family:var(--serif); font-weight:600; font-size:1.02rem; color:#2E7D4F}
.qm-feedback.is-wrong{color:#B3403A}
[data-theme="dark"] .qm-feedback{color:#7FC79B}
[data-theme="dark"] .qm-feedback.is-wrong{color:#E08A85}
.qm-actions{display:flex; gap:.8rem; margin-top:1.1rem}
.qm-actions .btn:disabled{opacity:.4; cursor:default; pointer-events:none}
.qm-result{text-align:center; padding:1.2rem 0 .4rem}
.qm-score{font-family:var(--serif); font-size:2rem; font-weight:700; margin:0}
.qm-verdict{color:var(--text-secondary); margin:.4rem 0 0}
.qm-result .qm-actions{justify-content:center; margin-top:1.4rem}

/* ---------- explore / grid-4 ---------- */
.grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem}
@media (max-width:980px){.grid-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.grid-4{grid-template-columns:1fr}}
.explore-card h3{font-family:var(--serif); font-size:1.25rem; margin:0 0 .3rem}
.explore-card p{font-size:.85rem; color:var(--text-secondary); margin:0 0 .6rem}

/* ---------- society ---------- */
.soc-list{border-top:1px solid var(--border)}
.soc-item{
  display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.6fr);
  gap:clamp(1.2rem,3vw,2.8rem); padding:2.2rem 0; border-bottom:1px solid var(--border);
}
.soc-item h3{font-family:var(--serif); font-size:1.5rem; font-weight:600; margin:.4rem 0 0}
.soc-body p{color:var(--text-secondary); font-size:.95rem; line-height:1.75; margin:0 0 .9rem}
.soc-body p:last-child{margin-bottom:0}
@media (max-width:760px){.soc-item{grid-template-columns:1fr; gap:.8rem}}

/* ---------- about: book links & further reading ---------- */
.book-links{display:flex; gap:.6rem; flex-wrap:wrap; margin-top:1rem}
.further-list{list-style:none; padding:0; margin:1rem 0 0}
.further-list li{padding:.6rem 0; border-top:1px solid var(--border); font-size:.92rem; line-height:1.6}
.further-list a{font-weight:600}
.further-list span{color:var(--text-muted)}

/* ---------- clan detail ---------- */
.clan-portrait{margin:0 0 1.8rem}
.clan-portrait img{
  display:block; width:100%; border:1px solid var(--border); border-radius:6px;
  background:var(--surface-alt); opacity:0; transition:opacity .35s ease;
}
.clan-portrait img.img-loaded{opacity:1}
.clan-portrait figcaption{font-size:.75rem; color:var(--text-muted); margin-top:.55rem; line-height:1.5}
.clan-hero{border-bottom:1px solid var(--border); background:var(--surface); position:relative; overflow:hidden; isolation:isolate}
.clan-hero-inner{
  max-width:var(--max-w); margin:0 auto; padding:clamp(2.4rem,6vw,4rem) clamp(1.1rem,4vw,2.2rem);
  display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:clamp(1.6rem,4vw,3rem);
}
.clan-hero h1 .indic{font-weight:400; color:var(--maroon-700); font-size:.68em; margin-left:.35rem}
[data-theme="dark"] .clan-hero h1 .indic{color:var(--gold-400)}
.clan-facts{
  background:var(--bg); border:1px solid var(--border-strong); border-radius:6px;
  padding:1.4rem 1.5rem; align-self:start;
  display:grid; grid-template-columns:1fr 1fr; gap:1.1rem 1.4rem;
}
.clan-facts .fact dt{font-size:.68rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-deep)}
.clan-facts .fact dd{margin:.25rem 0 0; font-family:var(--serif); font-size:1.12rem; color:var(--text-primary); line-height:1.3}
.clan-facts .fact.full{grid-column:1/-1}
.states-row{display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.4rem}
.state-pill{
  font-size:.8rem; font-weight:500; font-family:var(--sans);
  border:1px solid var(--border); border-radius:999px; padding:.3rem .8rem;
  background:var(--surface); color:var(--text-secondary);
}
.notable-list{list-style:none; margin:0; padding:0; display:grid; gap:1rem}
.notable-list li{
  border-left:2px solid var(--gold); padding:.15rem 0 .15rem 1.1rem;
}
.notable-list .n-name{font-family:var(--serif); font-weight:600; font-size:1.18rem}
.notable-list .n-note{color:var(--text-secondary); font-size:.92rem; margin:.15rem 0 0}
.clan-nav{display:flex; justify-content:space-between; gap:1rem; border-top:1px solid var(--border); padding-top:1.6rem; margin-top:1rem}
.clan-nav a{display:flex; flex-direction:column; gap:.15rem; max-width:46%}
.clan-nav .dir{font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted)}
.clan-nav .name{font-family:var(--serif); font-size:1.25rem; font-weight:600; color:var(--text-primary)}
.clan-nav a:hover .name{color:var(--text-link-hover)}
.clan-nav .next{text-align:right; margin-left:auto}

/* ---------- timeline ---------- */
.timeline{position:relative; margin:0; padding:0; list-style:none}
.timeline::before{
  content:""; position:absolute; left:9px; top:6px; bottom:6px; width:1.5px;
  background:linear-gradient(var(--gold), color-mix(in srgb, var(--gold) 30%, transparent));
}
.timeline li{position:relative; padding:0 0 2.1rem 2.6rem}
.timeline li:last-child{padding-bottom:.4rem}
.timeline .t-dot{
  position:absolute; left:0; top:.4rem; width:19px; height:19px; border-radius:50%;
  background:var(--bg); border:1.6px solid var(--gold); display:grid; place-items:center;
}
.timeline .t-dot::after{content:""; width:7px; height:7px; border-radius:50%; background:var(--accent)}
.timeline .t-era{font-size:.74rem; font-weight:600; letter-spacing:.11em; text-transform:uppercase; color:var(--gold-deep)}
.timeline .t-title{font-family:var(--serif); font-size:1.45rem; font-weight:600; margin:.2rem 0 .35rem}
.timeline .t-body{color:var(--text-secondary); max-width:62ch; margin:0}

/* migration table */
.mig-table{width:100%; border-collapse:collapse; font-size:.92rem}
.mig-table caption{text-align:left; font-family:var(--serif); font-size:1.3rem; font-weight:600; padding-bottom:.8rem}
.mig-table th{
  text-align:left; font-size:.7rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--gold-deep); border-bottom:1.5px solid var(--border-strong); padding:.55rem .75rem;
}
.mig-table td{border-bottom:1px solid var(--border); padding:.65rem .75rem; color:var(--text-secondary)}
.mig-table td:first-child{font-family:var(--serif); font-size:1.08rem; font-weight:600; color:var(--text-primary)}
.mig-table tr:hover td{background:color-mix(in srgb, var(--surface) 65%, transparent)}
.table-scroll{overflow-x:auto}

/* ---------- culture ---------- */
.culture-card{padding:0; display:flex; flex-direction:column}
.culture-media{
  aspect-ratio:16/10; background:var(--surface-alt); position:relative; overflow:hidden;
}
.culture-media img{width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .35s ease, transform .5s ease}
.culture-media img.img-loaded{opacity:1}
.culture-card:hover .culture-media img{transform:scale(1.04)}
.culture-fallback{
  position:absolute; inset:0; display:none; place-items:center; text-align:center;
  color:var(--text-muted); font-size:.85rem; padding:1rem;
  background:repeating-linear-gradient(45deg, var(--surface-alt), var(--surface-alt) 12px, color-mix(in srgb, var(--gold) 8%, var(--surface-alt)) 12px, color-mix(in srgb, var(--gold) 8%, var(--surface-alt)) 24px);
}
.culture-body{padding:1.3rem 1.4rem 1.5rem}
.culture-body p{color:var(--text-secondary); font-size:.94rem; margin:.4rem 0 .8rem}
.culture-credit{font-size:.72rem; color:var(--text-muted)}

/* ---------- glossary ---------- */
.glossary-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.9rem}
.gl-item{
  background:var(--surface); border:1px solid var(--border); border-radius:4px; padding:1rem 1.2rem;
}
.gl-item dt{font-family:var(--serif); font-size:1.22rem; font-weight:600}
.gl-item dd{margin:.3rem 0 0; color:var(--text-secondary); font-size:.92rem}
.gl-empty{color:var(--text-muted); padding:2rem 0; text-align:center; grid-column:1/-1}

/* ---------- about / chapters ---------- */
.book-plate{
  background:var(--surface); border:1px solid var(--border-strong); border-radius:6px;
  padding:clamp(1.6rem,4vw,2.6rem); position:relative; overflow:hidden;
}
.book-plate::before{
  content:""; position:absolute; inset:10px; border:1px solid color-mix(in srgb, var(--gold) 45%, transparent);
  border-radius:3px; pointer-events:none;
}
.book-plate .b-title{font-family:var(--serif); font-size:clamp(1.8rem,4vw,2.4rem); font-weight:600}
.book-plate .b-meta{color:var(--text-secondary); margin:.5rem 0 0}
.book-plate .b-dedication{
  font-family:var(--serif); font-style:italic; font-size:1.08rem; color:var(--text-secondary);
  border-top:1px solid var(--border); margin-top:1.4rem; padding-top:1.4rem; max-width:52ch;
}
.chapters-list{columns:2; column-gap:2.4rem; margin:0; padding:0; list-style:none}
.chapters-list li{
  break-inside:avoid; display:flex; align-items:baseline; gap:.7rem;
  padding:.5rem 0; border-bottom:1px solid var(--border); font-size:.94rem;
}
.chapters-list .ch-roman{font-family:var(--serif); font-weight:600; min-width:2.6rem; color:var(--gold-deep)}
.chapters-list .ch-title{color:var(--text-secondary)}
.chapters-list .ch-page{margin-left:auto; color:var(--text-muted); font-size:.8rem}

/* ---------- misc panels ---------- */
.panel-invert{
  background:var(--surface-invert); color:var(--text-on-primary); border-radius:6px;
  padding:clamp(1.8rem,5vw,3rem);
}
[data-theme="dark"] .panel-invert{color:#3B2F26}
.panel-invert h2{color:inherit}
.panel-invert p{color:color-mix(in srgb, currentColor 82%, transparent)}
.tracts-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem}
.tract{border:1px solid var(--border); border-radius:4px; padding:1rem 1.1rem; background:var(--surface)}
.tract .t-name{font-family:var(--serif); font-size:1.25rem; font-weight:600}
.tract p{font-size:.87rem; color:var(--text-secondary); margin:.25rem 0 0}

/* two-column article layout */
.two-col{display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr); gap:clamp(2rem,5vw,4rem)}
@media (max-width:900px){.two-col{grid-template-columns:1fr}}

/* breadcrumb */
.crumb{font-size:.8rem; color:var(--text-muted); margin-bottom:1.2rem; display:flex; gap:.5rem; align-items:center}
.crumb a{color:var(--text-muted)}
.crumb a:hover{color:var(--text-link-hover)}
.crumb .sep{color:var(--gold)}

/* ---------- footer ---------- */
.site-footer{background:var(--maroon-900); color:var(--footer-muted); margin-top:auto}
[data-theme="dark"] .site-footer{background:#140F0C}
.footer-inner{
  max-width:var(--max-w); margin:0 auto; padding:2.6rem clamp(1.1rem,4vw,2.2rem) 1.8rem;
  display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:2rem;
}
.footer-brand{display:flex; gap:.9rem; align-items:flex-start}
.footer-title{font-family:var(--serif); font-size:1.2rem; font-weight:600; color:var(--ivory-100); margin:0 0 .3rem}
.footer-note{font-size:.84rem; margin:0; max-width:46ch; line-height:1.6}
.footer-nav{display:grid; grid-template-columns:1fr 1fr; gap:.45rem 1.4rem; align-content:start}
.footer-nav a{color:var(--footer-muted); font-size:.87rem}
.footer-nav a:hover{color:var(--gold-400)}
.footer-base{border-top:1px solid rgba(203,161,58,.2)}
.footer-base-inner{
  max-width:var(--max-w); margin:0 auto; padding:1.1rem clamp(1.1rem,4vw,2.2rem);
  display:flex; justify-content:space-between; align-items:center; gap:1.25rem; flex-wrap:wrap;
}
.footer-base-text{display:flex; flex-direction:column; gap:.25rem}
.footer-base-text p{margin:0; font-size:.76rem; letter-spacing:.02em; padding:0}
#footerCredit{color:var(--footer-muted)}
#footerCredit strong{color:var(--gold-400); font-weight:600}
#footerBase{color:inherit}

.footer-counter{display:inline-flex; align-items:center; flex-shrink:0}
.counter-badge{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.35rem .78rem;
  background:rgba(203,161,58,.08);
  border:1px solid rgba(203,161,58,.28);
  border-radius:999px;
  font-size:.76rem;
  line-height:1;
  color:var(--ivory-100);
  letter-spacing:.02em;
  box-shadow:0 1px 3px rgba(0,0,0,.18);
  transition:border-color .2s ease, background-color .2s ease;
}
[data-theme="dark"] .counter-badge{
  background:rgba(203,161,58,.06);
  border-color:rgba(203,161,58,.2);
}
.counter-badge:hover{
  border-color:var(--gold-400);
  background:rgba(203,161,58,.14);
}
.counter-live-dot{
  width:6px; height:6px; border-radius:50%;
  background:#22c55e;
  box-shadow:0 0 0 0 rgba(34,197,94,.7);
  animation:counterPulse 2.4s infinite;
  flex-shrink:0;
}
@keyframes counterPulse{
  0%{transform:scale(.95); box-shadow:0 0 0 0 rgba(34,197,94,.7)}
  70%{transform:scale(1); box-shadow:0 0 0 5px rgba(34,197,94,0)}
  100%{transform:scale(.95); box-shadow:0 0 0 0 rgba(34,197,94,0)}
}
.counter-icon{color:var(--gold-400); flex-shrink:0}
.counter-label{color:var(--footer-muted); font-weight:400}
.counter-sep{color:rgba(203,161,58,.45)}
.counter-val{
  font-family:var(--serif);
  font-weight:600;
  color:var(--gold-400);
  letter-spacing:.03em;
  font-size:.84rem;
  min-width:1ch;
}

/* ---------- reveal animation ---------- */
.reveal{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease}
.reveal.in{opacity:1; transform:none}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important}
  .reveal{opacity:1; transform:none}
  .counter-live-dot{animation:none!important}
  .gal-item img, .clan-portrait img, .culture-media img, .devi-media img{opacity:1!important; transition:none!important}
}

/* ---------- responsive ---------- */
@media (max-width:1020px){
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tracts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site-nav{display:none}
  .nav-burger{display:flex}
  .header-actions{margin-left:auto}
}
@media (max-width:760px){
  .hero-inner{grid-template-columns:1fr; padding-top:2.6rem; padding-bottom:2.6rem}
  .hero-map{margin-top:.4rem}
  .hero-map .map-seat text{font-size:19px}
  .grid-2,.grid-3{grid-template-columns:1fr}
  .clan-hero-inner{grid-template-columns:1fr}
  .clan-facts{grid-template-columns:1fr 1fr}
  .glossary-grid{grid-template-columns:1fr}
  .chapters-list{columns:1}
  .footer-inner{grid-template-columns:1fr}
  .footer-base-inner{flex-direction:column; align-items:flex-start; gap:.85rem}
  .brand-sub{display:none}
  .map-seat text{font-size:16px}
}
@media (max-width:560px){
  .header-inner{gap:.6rem; padding:0 .9rem}
  .brand{gap:.45rem}
  .brand-title{font-size:.95rem}
  .brand-mark{width:27px; height:27px; flex:none}
  .lang-switch button{font-size:.64rem; padding:.26rem .42rem}
  .theme-toggle{width:33px; height:33px; font-size:.9rem}
  .nav-burger{width:36px; height:34px}
  .header-actions{gap:.3rem}
}
@media (max-width:480px){
  .clan-facts{grid-template-columns:1fr}
  .strip-num{font-size:1.25rem}
}

/* ===== Communities (taxonomy) ===== */
.words-grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1rem;
}
.word-card{
  border:1px solid var(--border); border-left:3px solid var(--gold); border-radius:4px;
  padding:1.1rem 1.2rem; background:color-mix(in srgb, var(--surface) 60%, transparent);
}
.word-term{
  font-family:var(--serif); font-size:1.5rem; font-weight:600; color:var(--text-primary);
  display:flex; align-items:baseline; gap:.5rem; flex-wrap:wrap;
}
.word-term .indic{font-size:1rem; color:var(--gold-deep)}
[data-theme="dark"] .word-term .indic{color:var(--gold-400)}
.word-def{color:var(--text-secondary); font-size:.92rem; line-height:1.6; margin:.4rem 0 0}
.comm-card{display:flex; flex-direction:column; gap:.45rem; cursor:pointer}
.comm-card .clan-head{display:flex; align-items:baseline; gap:.6rem; flex-wrap:wrap}
.comm-card .indic{color:var(--maroon-700); font-size:1.05rem}
[data-theme="dark"] .comm-card .indic{color:var(--gold-400)}
.comm-card p{color:var(--text-secondary); font-size:.94rem; margin:0}
.comm-card .card-cta{
  margin-top:auto; padding-top:.7rem; font-size:.82rem; font-weight:600; color:var(--text-link);
  display:inline-flex; align-items:center; gap:.35rem;
}
.comm-card:hover .card-cta{color:var(--text-link-hover)}
@media (max-width:600px){.words-grid{grid-template-columns:1fr}}

/* ===== Culture hub cards ===== */
.hub-grid{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.1rem; margin-top:.4rem;
}
.hub-card{
  display:flex; flex-direction:column; gap:.4rem; cursor:pointer; text-align:left;
  padding-top:1.3rem;
}
.hub-card .hub-art{display:block; height:52px; margin-bottom:.4rem; color:var(--gold-deep)}
[data-theme="dark"] .hub-card .hub-art{color:var(--gold-400)}
.hub-card .hub-glyph{position:static; width:52px; height:52px; opacity:.9}
.hub-card h3{font-size:1.3rem; margin:0}
.hub-card p{color:var(--text-secondary); font-size:.92rem; margin:0}
.hub-card .card-cta{
  margin-top:auto; padding-top:.7rem; font-size:.82rem; font-weight:600; color:var(--text-link);
  display:inline-flex; align-items:center; gap:.35rem;
}
.hub-card:hover .card-cta{color:var(--text-link-hover)}
@media (max-width:820px){.hub-grid{grid-template-columns:1fr}}

/* ===== Kul Devi ===== */
.devi-card{display:flex; flex-direction:column; gap:.7rem}
.devi-media{margin:0}
.devi-media img{
  width:100%; height:180px; object-fit:cover; display:block; border-radius:3px; border:1px solid var(--border);
  background:var(--surface-alt); opacity:0; transition:opacity .35s ease;
}
.devi-media img.img-loaded{opacity:1}
.devi-media figcaption{font-size:.72rem; color:var(--text-muted); margin-top:.45rem; line-height:1.45}
.devi-head .devi-name{
  font-family:var(--serif); font-size:1.65rem; font-weight:600; color:var(--text-primary);
  display:flex; align-items:baseline; gap:.55rem; flex-wrap:wrap; margin:.1rem 0 0;
}
.devi-head .devi-name .indic{font-size:1.05rem; color:var(--gold-deep)}
[data-theme="dark"] .devi-head .devi-name .indic{color:var(--gold-400)}
.devi-facts{display:grid; grid-template-columns:1fr 1fr; gap:.6rem 1rem; margin:0; padding:.7rem 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border)}
.devi-facts dt{font-size:.66rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-deep)}
.devi-facts dd{margin:.2rem 0 0; font-family:var(--serif); font-size:1.08rem; color:var(--text-primary); line-height:1.3}
.devi-card>p{color:var(--text-secondary); font-size:.94rem; line-height:1.7; margin:0}
.devi-card .card-cta{
  margin-top:auto; font-size:.82rem; font-weight:600; color:var(--text-link);
  display:inline-flex; align-items:center; gap:.35rem; text-decoration:none;
}
.devi-card:hover .card-cta{color:var(--text-link-hover)}

/* ===== Festivals ===== */
.fest-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem}
.fest-card{
  border:1px solid var(--border); border-radius:4px; padding:1rem 1.1rem; background:var(--surface);
  display:flex; flex-direction:column; gap:.35rem;
}
.fest-card .fest-when{display:flex; flex-direction:column; gap:.1rem}
.fest-card .fest-greg{font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-deep)}
[data-theme="dark"] .fest-card .fest-greg{color:var(--gold-400)}
.fest-card .fest-cal{font-size:.74rem; color:var(--text-muted)}
.fest-card .fest-name{font-family:var(--serif); font-size:1.25rem; font-weight:600; color:var(--text-primary); margin:.15rem 0 0}
.fest-card .fest-note{font-size:.86rem; color:var(--text-secondary); line-height:1.55; margin:0}
.fest-card.fest-major{
  border-color:var(--gold); border-left:3px solid var(--gold);
  background:color-mix(in srgb, var(--gold) 8%, var(--surface));
}
@media (max-width:820px){.fest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.fest-grid{grid-template-columns:1fr}}

/* mobile sub-nav indent */
.mobile-nav a.mnav-sub{padding-left:1.7rem; font-size:.92rem; opacity:.9}
.mobile-nav a.mnav-sub::before{content:"›"; color:var(--gold-deep); margin-right:.5rem}

/* ---------- contribute form ---------- */
.c-form{max-width:680px; margin-top:.6rem}
.c-row{display:grid; grid-template-columns:1fr 1fr; gap:1rem}
@media (max-width:640px){.c-row{grid-template-columns:1fr}}
.c-field{display:flex; flex-direction:column; gap:.35rem; margin-bottom:1rem}
.c-field > span{font-size:.8rem; font-weight:600; letter-spacing:.04em; color:var(--text-secondary)}
.c-field input, .c-field select, .c-field textarea{
  font-family:var(--sans); font-size:.95rem; color:var(--text-primary);
  background:var(--surface); border:1px solid var(--border); border-radius:6px;
  padding:.6rem .8rem; width:100%;
}
.c-field textarea{resize:vertical; min-height:130px; line-height:1.6}
.c-field input:focus, .c-field select:focus, .c-field textarea:focus{outline:2px solid var(--focus-ring); outline-offset:1px}
.c-err{font-size:.78rem; color:#B3261E; font-style:normal}
[data-theme="dark"] .c-err{color:#F2B8B5}
.c-hp{position:absolute!important; left:-9999px; top:-9999px; height:1px; width:1px; overflow:hidden}
.c-actions{display:flex; align-items:center; gap:1.1rem; flex-wrap:wrap; margin-top:.4rem}
.c-privacy{margin:0; font-size:.76rem; color:var(--text-muted); max-width:38ch}
.c-status{margin-top:1.1rem; font-size:.92rem; font-weight:600; border-radius:6px; padding:.7rem 1rem}
.c-status.is-ok{background:rgba(46,125,50,.12); color:#2E7D32; border:1px solid rgba(46,125,50,.35)}
[data-theme="dark"] .c-status.is-ok{color:#A5D6A7}
.c-status.is-fail{background:rgba(179,38,30,.1); color:#B3261E; border:1px solid rgba(179,38,30,.3)}
[data-theme="dark"] .c-status.is-fail{color:#F2B8B5}

/* ---------- quiz extras ---------- */
.quiz-best-badge{font-size:.9rem; font-weight:600; color:var(--gold-deep); margin:.2rem 0 1rem}
.qm-streak{color:var(--accent); font-weight:700; margin-left:.6rem}
.qm-newbest{font-size:1rem; font-weight:700; color:var(--gold-deep); margin:.2rem 0}
.qm-prevbest{font-size:.85rem; color:var(--text-muted); margin:.2rem 0}

/* ---------- animated migration ---------- */
.mig-anim{margin-bottom:2.6rem; border-bottom:1px solid var(--border); padding-bottom:1.8rem}
.mig-controls{display:flex; align-items:center; gap:1rem; margin:.4rem 0 1rem}
.mig-step{font-size:.8rem; font-weight:600; color:var(--text-muted)}
.mig-map{max-width:860px}
.mig-map .map-seat{cursor:pointer}
.mig-path{
  fill:none; stroke:var(--accent); stroke-width:3.2; stroke-linecap:round; opacity:.95;
  transition:stroke-dashoffset 1.35s ease-in-out, opacity .5s ease;
  pointer-events:none;
}
.mig-path.old{opacity:.3}
@media (prefers-reduced-motion: reduce){.mig-path{transition:none}}
.mig-caption{font-size:.95rem; color:var(--text-secondary); margin-top:.2rem; min-height:1.5em}
.mig-caption strong{font-family:var(--serif); font-size:1.1rem; color:var(--text-primary)}

/* ---------- heritage sites on the map ---------- */
.map-site{cursor:pointer}
.site-halo{fill:var(--gold); opacity:.18}
.site-mark{fill:var(--gold-deep); stroke:var(--bg); stroke-width:1.4; transition:transform .18s ease; transform-box:fill-box; transform-origin:center}
.map-site:hover .site-mark, .map-site:focus .site-mark{transform:scale(1.35)}
.site-label{
  font-family:var(--serif); font-size:13.5px; font-style:italic;
  fill:var(--text-muted); paint-order:stroke; stroke:var(--bg); stroke-width:3px; stroke-linejoin:round;
}
.chip .site-dot{color:var(--gold-deep); margin-right:.4rem; font-size:.72rem}
.c-status.is-soon{background:rgba(184,145,47,.12); color:var(--gold-deep); border:1px solid rgba(184,145,47,.4)}
[data-theme="dark"] .c-status.is-soon{color:var(--gold-400)}
.c-form.is-soon .c-field, .c-form.is-soon .c-actions{opacity:.55}
