/* ---------- tokens ---------- */
:root{
  --ink:#05070d;
  --ink-2:#080b14;
  --panel:#0b0f1a;
  --line:rgba(255,255,255,.09);
  --line-2:rgba(255,255,255,.16);
  --text:#e9ebf1;
  --muted:#98a1b4;
  --gold:#c9a227;
  --gold-1:#e0bd4a;
  --serif:"Spectral",Georgia,"Times New Roman",serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --wrap:1120px;
  --narrow:720px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--ink);color:var(--text);
  font-family:var(--sans);font-size:17px;line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;line-height:1.15;margin:0}
p{margin:0 0 1.1em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.hp{display:none}
.skip{position:absolute;left:-9999px;top:0;background:var(--gold);color:#000;padding:.6rem 1rem;z-index:99}
.skip:focus{left:0}

/* ---------- layout ---------- */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(1.25rem,5vw,2.5rem)}
.narrow{max-width:var(--narrow);margin-left:auto;margin-right:auto}
.wrap .narrow{padding:0}
.band{padding:clamp(4.5rem,11vw,8.5rem) 0;border-top:1px solid var(--line)}
.band-alt{background:var(--ink-2)}
.eyebrow{
  font-size:.72rem;letter-spacing:.20em;text-transform:uppercase;
  color:var(--gold);font-weight:600;margin:0 0 1.4rem;
}
h2{font-size:clamp(1.85rem,4.2vw,2.9rem);margin-bottom:1.5rem}
h3{font-size:1.2rem;margin-bottom:.7rem}
.lead{font-size:clamp(1.05rem,1.9vw,1.28rem);color:#dbe0ea}
.band p:not(.eyebrow):not(.lead){color:var(--muted)}

/* ---------- topbar ---------- */
.topbar{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.85rem clamp(1.25rem,5vw,2.5rem);
  background:rgba(5,7,13,.72);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.brand{text-decoration:none}
.brand-logo{height:26px;width:auto;opacity:.92;transition:opacity .2s}
.brand:hover .brand-logo{opacity:1}
.topnav{display:flex;align-items:center;gap:clamp(.9rem,2.2vw,1.9rem)}
.topnav a{
  text-decoration:none;font-size:.86rem;color:var(--muted);
  transition:color .2s;white-space:nowrap;
}
.topnav a:hover{color:var(--text)}
.topcta{
  color:var(--ink)!important;background:var(--gold);
  padding:.45rem 1rem;border-radius:2px;font-weight:600;
}
.topcta:hover{background:var(--gold-1)}
@media(max-width:760px){.topnav a:not(.topcta){display:none}}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100svh;
  display:flex;align-items:center;justify-content:center;text-align:center;
  padding:7rem clamp(1.25rem,5vw,2.5rem) 6rem;
  background:
    radial-gradient(ellipse 80% 60% at 50% 45%, rgba(5,7,13,.30) 0%, rgba(5,7,13,.86) 70%, var(--ink) 100%),
    url("/assets/img/space.jpg") center/cover no-repeat var(--ink);
}
.hero-inner{max-width:760px}
.hero-eyebrow{
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);margin-bottom:1.8rem;
}
.hero-mark{margin:0 0 1.6rem;line-height:0}
.hero-logo{
  width:min(430px,66vw);height:auto;margin:0 auto;
  filter:drop-shadow(0 0 60px rgba(0,106,225,.35));
}
.hero-sub{
  font-size:clamp(.9rem,2vw,1.05rem);letter-spacing:.13em;text-transform:uppercase;
  color:var(--gold);margin-bottom:2.4rem;font-weight:500;
}
.hero-claim{
  font-family:var(--serif);font-size:clamp(1.5rem,3.6vw,2.15rem);
  color:var(--text);margin-bottom:.9rem;
}
.hero-lead{color:var(--muted);max-width:40rem;margin:0 auto 2.6rem;font-size:1.03rem}
.hero-actions{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.4rem}
.hero-note{font-size:.82rem;color:#7c8598;margin:0}

.btn{
  display:inline-block;text-decoration:none;font-weight:600;font-size:.95rem;
  padding:.95rem 2rem;border-radius:2px;border:1px solid transparent;transition:.2s;
}
.btn-primary{background:var(--gold);color:#12100a;box-shadow:0 0 0 0 rgba(201,162,39,.45)}
.btn-primary:hover{background:var(--gold-1);box-shadow:0 8px 30px -8px rgba(201,162,39,.55)}
.btn-ghost{border-color:var(--line-2);color:var(--text)}
.btn-ghost:hover{border-color:var(--text)}

.scrollcue{
  position:absolute;bottom:2.2rem;left:50%;transform:translateX(-50%);
  width:1px;height:52px;background:linear-gradient(var(--line-2),transparent);
}
.scrollcue span{
  position:absolute;top:0;left:-1px;width:3px;height:14px;background:var(--gold);
  animation:cue 2.6s ease-in-out infinite;
}
@keyframes cue{0%{top:0;opacity:0}25%{opacity:1}100%{top:44px;opacity:0}}
@media(prefers-reduced-motion:reduce){.scrollcue span{animation:none}}

/* ---------- bio ---------- */
.bio{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,6vw,4.5rem);align-items:center}
.bio-photo{margin:0;position:relative}
.bio-photo img{
  width:100%;border:1px solid var(--line-2);
  filter:saturate(.85) contrast(1.03) brightness(.94);
}
.bio-photo::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top,rgba(5,7,13,.55),transparent 45%);
}
.stats{list-style:none;padding:0;margin:2.2rem 0 1.4rem;display:grid;gap:1.1rem}
.stats li{display:grid;grid-template-columns:7.5rem 1fr;gap:1rem;align-items:baseline;border-top:1px solid var(--line);padding-top:.9rem}
.stats strong{font-family:var(--serif);font-size:1.35rem;font-weight:400;color:var(--gold)}
.stats span{color:var(--muted);font-size:.92rem}
.bio-link a{color:var(--gold);text-decoration:none;font-size:.92rem}
.bio-link a:hover{text-decoration:underline}
@media(max-width:840px){.bio{grid-template-columns:1fr}.bio-photo{max-width:380px}}

/* ---------- cards ---------- */
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);margin-top:3.5rem;border:1px solid var(--line)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:3.5rem}
.card{background:var(--ink);padding:2.2rem 1.7rem}
.grid-3 .card{border:1px solid var(--line);padding:2rem 1.7rem}
.card-n{font-family:var(--serif);font-size:.95rem;color:var(--gold);letter-spacing:.1em;margin-bottom:1.4rem}
.card-latin{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:.92rem;margin-bottom:.5rem}
.card p{color:var(--muted);font-size:.94rem}
.card-link{display:block;text-decoration:none;transition:border-color .2s,background .2s}
.card-link:hover{border-color:var(--line-2);background:var(--panel)}
.card-more{color:var(--gold);font-size:.86rem;font-weight:600}
@media(max-width:980px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr}}
@media(max-width:560px){.grid-4{grid-template-columns:1fr}}

/* ---------- placeholder slots ---------- */
.placeholder-grid{margin-top:3rem}
.slot{
  border:1px dashed var(--line-2);border-radius:2px;min-height:190px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;
  background:repeating-linear-gradient(135deg,transparent,transparent 11px,rgba(255,255,255,.014) 11px,rgba(255,255,255,.014) 22px);
}
.slot-person span{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:#5d6678}
.slot-note{margin-top:1.6rem;font-size:.85rem;color:#6f7889;font-style:italic}

/* ---------- ladder ---------- */
.ladder{list-style:none;counter-reset:t;padding:0;margin:3.5rem 0 0;border-top:1px solid var(--line)}
.ladder li{
  display:grid;grid-template-columns:7rem 14rem 1fr;gap:1.5rem;align-items:baseline;
  padding:1.5rem 0;border-bottom:1px solid var(--line);transition:background .2s;
}
.ladder li:hover{background:var(--panel)}
.ladder-amount{font-family:var(--serif);font-size:1.25rem;color:var(--gold)}
.ladder-name{font-family:var(--serif);font-size:1.1rem}
.ladder-text{color:var(--muted);font-size:.94rem}
@media(max-width:860px){
  .ladder li{grid-template-columns:1fr;gap:.35rem}
  .ladder-amount{font-size:1.05rem}
}

/* ---------- convivium page ---------- */
.pagehead{padding:clamp(6rem,14vw,10rem) 0 clamp(2.5rem,6vw,4rem);background:
  radial-gradient(ellipse 70% 90% at 50% 0%, rgba(20,26,48,.85), var(--ink) 70%)}
.pagehead h1{font-size:clamp(2rem,5vw,3.2rem);margin-bottom:1.5rem}
.member-label{font-size:.92rem}
.member-label strong{color:var(--text)}
.person{border:1px solid var(--line);padding:1.6rem}
.person-photo{aspect-ratio:1;background:var(--panel);margin-bottom:1.1rem;overflow:hidden}
.person-photo img{width:100%;height:100%;object-fit:cover}
.person-role{color:var(--muted);font-size:.9rem;margin-bottom:.3rem}
.person-country{color:#6f7889;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}
.person-link{color:var(--gold);font-size:.88rem;text-decoration:none}
.notice{border-left:2px solid var(--gold);padding:1.2rem 0 1.2rem 1.6rem;background:var(--panel)}
.notice p{margin:0;color:var(--muted);font-size:.95rem}
.backlink{margin-top:2.5rem}
.backlink a{color:var(--gold);text-decoration:none;font-weight:600}

/* ---------- prose (privacy) ---------- */
.prose h2{font-size:1.3rem;margin:2.6rem 0 .8rem}
.prose h2:first-child{margin-top:0}
.prose a{color:var(--gold)}

/* ---------- cta ---------- */
.cta{
  padding:clamp(5rem,12vw,9rem) 0;text-align:center;border-top:1px solid var(--line);
  background:
    radial-gradient(ellipse 70% 100% at 50% 100%, rgba(201,162,39,.10), transparent 65%),
    url("/assets/img/space.jpg") center/cover no-repeat var(--ink-2);
}
.cta .eyebrow{color:var(--gold)}
.cta .lead{color:#cfd5e0;max-width:34rem;margin-left:auto;margin-right:auto}
.joinform{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin:2.4rem 0 1.2rem}
.joinform input[type=email]{
  flex:1 1 320px;max-width:400px;background:rgba(5,7,13,.75);
  border:1px solid var(--line-2);color:var(--text);
  padding:.95rem 1.1rem;border-radius:2px;font-family:var(--sans);font-size:1rem;
}
.joinform input[type=email]:focus{outline:none;border-color:var(--gold)}
.joinform button{cursor:pointer;font-family:var(--sans)}
.formnote{font-size:.82rem;color:#7c8598}
.formnote a{color:var(--muted)}

/* ---------- footer ---------- */
.footer{border-top:1px solid var(--line);padding:clamp(3.5rem,8vw,5rem) 0 2.5rem;background:var(--ink-2)}
.footgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:2.5rem}
.foot-logo{height:46px;width:auto;margin-bottom:1.2rem;opacity:.80}
.foot-claim{font-family:var(--serif);color:var(--muted);font-size:1.02rem;line-height:1.6}
.footer h3{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-family:var(--sans);font-weight:600;margin-bottom:1rem}
.footer a{display:block;text-decoration:none;color:var(--muted);font-size:.9rem;padding:.28rem 0}
.footer a:hover{color:var(--text)}
.footnote{margin-top:3rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.footnote p{margin:0;font-size:.8rem;color:#6f7889}
@media(max-width:760px){.footgrid{grid-template-columns:1fr;gap:2rem}}
