/* ============================================================
   THE WORLD SENTINEL — masthead stylesheet
   Sentinel family DNA: ink navy + gold, meridian blue accent
   Mobile-first · no frameworks · single file
   ============================================================ */

:root{
  --ink:        #101B2D;   /* family ink navy */
  --ink-soft:   #223350;
  --paper:      #F9F6EF;   /* broadsheet cream */
  --paper-deep: #F1ECDF;
  --gold:       #B8963E;   /* family gold */
  --gold-bright:#D4B45C;
  --meridian:   #24549C;   /* the World Sentinel's own deep-blue accent */
  --rule:       #D8D0BE;
  --text:       #1C2434;
  --muted:      #5C6577;
  --serif: "Newsreader", Georgia, "Times New Roman", serif;
  --display: "Fraunces", "Playfair Display", Georgia, serif;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  font-family:var(--serif);
  background:var(--paper);
  color:var(--text);
  line-height:1.65;
  font-size:1.0625rem;
}
img{ max-width:100%; height:auto; }
a{ color:var(--meridian); text-decoration:none; }
a:hover{ text-decoration:underline; }

.wrap{ max-width:1080px; margin:0 auto; padding:0 1.1rem; }

/* ---------- top hairline bar ---------- */
.topbar{
  background:var(--ink);
  color:#CBB77A;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.topbar .wrap{
  display:flex; justify-content:space-between; align-items:center;
  padding:.45rem 1.1rem; gap:1rem;
}
.topbar span{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* ---------- masthead ---------- */
header.masthead{
  text-align:center;
  padding:2.2rem 1rem 1.4rem;
  border-bottom:3px double var(--ink);
  background:
    linear-gradient(180deg, var(--paper) 0%, var(--paper-deep) 100%);
}
.mark{ display:inline-block; margin-bottom:.6rem; }
.masthead h1{
  font-family:var(--display);
  font-weight:600;
  font-size:clamp(2rem, 7.5vw, 3.6rem);
  letter-spacing:.06em;
  color:var(--ink);
  line-height:1.05;
}
.masthead h1 a{ color:inherit; }
.masthead h1 a:hover{ text-decoration:none; }
.tagline{
  font-style:italic;
  color:var(--muted);
  font-size:clamp(.9rem, 2.8vw, 1.05rem);
  margin-top:.5rem;
}
.tagline::before, .tagline::after{ content:" ⸺ "; color:var(--gold); font-style:normal; }

/* ---------- desk navigation ---------- */
nav.desks{
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--ink);
  background:var(--paper);
  position:sticky; top:0; z-index:40;
}
nav.desks ul{
  list-style:none;
  display:flex;
  gap:.25rem;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  padding:.55rem .8rem;
  justify-content:flex-start;
  scrollbar-width:none;
}
nav.desks ul::-webkit-scrollbar{ display:none; }
nav.desks a{
  display:block;
  padding:.3rem .75rem;
  font-size:.78rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ink);
  white-space:nowrap;
  border-radius:2px;
}
nav.desks a:hover, nav.desks a.active{
  background:var(--ink);
  color:var(--gold-bright);
  text-decoration:none;
}
@media(min-width:760px){
  nav.desks ul{ justify-content:center; }
}

/* ---------- launch notice ---------- */
.launch-note{
  background:var(--ink);
  color:#E8DFC8;
  text-align:center;
  font-size:.85rem;
  padding:.6rem 1rem;
}
.launch-note strong{ color:var(--gold-bright); letter-spacing:.08em; }

/* ---------- lead slot ---------- */
.lead{
  padding:2.2rem 0 1.8rem;
  border-bottom:1px solid var(--rule);
}
.kicker{
  font-size:.75rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--meridian);
  font-weight:600;
  margin-bottom:.5rem;
}
.kicker .desk{ color:var(--gold); }
.lead h2{
  font-family:var(--display);
  font-weight:500;
  font-size:clamp(1.7rem, 5.4vw, 2.9rem);
  line-height:1.12;
  color:var(--ink);
  margin-bottom:.8rem;
}
.lead h2 a{ color:inherit; }
.standfirst{
  font-size:clamp(1.02rem, 3vw, 1.2rem);
  color:var(--ink-soft);
  max-width:46em;
  margin-bottom:.9rem;
}
.byline{
  font-size:.82rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
}
.byline b{ color:var(--ink); font-weight:600; }

/* ---------- placeholder tag ---------- */
.ph-tag{
  display:inline-block;
  font-size:.66rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--paper);
  background:var(--meridian);
  padding:.18rem .55rem;
  border-radius:2px;
  margin-bottom:.6rem;
}

/* ---------- desk sections ---------- */
section.desk-section{ padding:2rem 0 .6rem; }
.desk-head{
  display:flex; align-items:baseline; gap:.8rem;
  border-bottom:2px solid var(--ink);
  padding-bottom:.35rem;
  margin-bottom:1.2rem;
}
.desk-head h3{
  font-family:var(--display);
  font-weight:600;
  font-size:1.35rem;
  color:var(--ink);
  letter-spacing:.02em;
}
.desk-head .mandate{
  font-size:.8rem; font-style:italic; color:var(--muted);
  display:none;
}
@media(min-width:640px){ .desk-head .mandate{ display:block; } }

.cards{
  display:grid;
  grid-template-columns:1fr;
  gap:1.4rem;
}
@media(min-width:700px){ .cards{ grid-template-columns:1fr 1fr; } }

article.card{
  border-bottom:1px solid var(--rule);
  padding-bottom:1.2rem;
}
article.card h4{
  font-family:var(--display);
  font-weight:500;
  font-size:1.25rem;
  line-height:1.25;
  color:var(--ink);
  margin-bottom:.45rem;
}
article.card h4 a{ color:inherit; }
article.card p{ font-size:.95rem; color:var(--ink-soft); margin-bottom:.55rem; }

/* ---------- article page ---------- */
main.article{ padding:2.2rem 0; }
main.article .art-head{ max-width:44em; margin:0 auto; }
main.article h2{
  font-family:var(--display);
  font-weight:500;
  font-size:clamp(1.8rem, 5.6vw, 2.7rem);
  line-height:1.14;
  color:var(--ink);
  margin-bottom:.8rem;
}
.dateline{
  font-size:.82rem; color:var(--muted);
  letter-spacing:.05em;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  padding:.5rem 0;
  margin:1rem 0 1.6rem;
  display:flex; flex-wrap:wrap; gap:.35rem 1.2rem;
}
.art-body{ max-width:38em; margin:0 auto; font-size:1.08rem; }
.art-body p{ margin-bottom:1.15rem; }
.art-body p:first-of-type::first-letter{
  font-family:var(--display);
  font-size:3.1em;
  float:left;
  line-height:.82;
  padding:.06em .12em 0 0;
  color:var(--meridian);
}
.art-body h3{
  font-family:var(--display);
  font-weight:600;
  font-size:1.3rem;
  color:var(--ink);
  margin:1.8rem 0 .7rem;
}
.pullquote{
  border-left:3px solid var(--gold);
  padding:.4rem 0 .4rem 1.1rem;
  margin:1.6rem 0;
  font-family:var(--display);
  font-style:italic;
  font-size:1.25rem;
  color:var(--ink-soft);
}
.endmark::after{ content:" ◆"; color:var(--gold); }

/* ---------- about page ---------- */
main.about{ padding:2.2rem 0; }
main.about .prose{ max-width:42em; margin:0 auto; }
main.about h2{
  font-family:var(--display); font-weight:600;
  font-size:clamp(1.6rem,5vw,2.3rem); color:var(--ink);
  margin-bottom:1rem;
}
main.about h3{
  font-family:var(--display); font-weight:600;
  font-size:1.25rem; color:var(--ink);
  margin:2rem 0 .6rem;
  padding-top:1.2rem;
  border-top:1px solid var(--rule);
}
main.about p, main.about li{ margin-bottom:.8rem; }
main.about ul{ padding-left:1.2rem; }
.standards{
  background:var(--paper-deep);
  border:1px solid var(--rule);
  border-top:3px solid var(--gold);
  padding:1.3rem 1.4rem;
  margin:1.4rem 0;
}
.standards li{ margin-bottom:.55rem; }
.standards em{ color:var(--meridian); font-style:normal; font-weight:600; }

/* ---------- support rail + footer ---------- */
.support{
  background:var(--ink);
  color:#D9D2BE;
  text-align:center;
  padding:2.4rem 1.2rem;
  margin-top:2.5rem;
}
.support h4{
  font-family:var(--display);
  font-weight:500;
  color:var(--gold-bright);
  font-size:1.45rem;
  margin-bottom:.5rem;
}
.support p{ max-width:38em; margin:0 auto .5rem; font-size:.95rem; }
.support .btns{
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:.8rem; margin-top:1.1rem;
}
.btn{
  display:inline-block;
  padding:.65rem 1.4rem;
  border-radius:3px;
  font-size:.85rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  text-decoration:none;
}
.btn:hover{ text-decoration:none; filter:brightness(1.08); }
.btn-gold{ background:var(--gold); color:var(--ink); font-weight:600; }
.btn-line{ border:1px solid var(--gold); color:var(--gold-bright); }

footer.colophon{
  background:#0B1322;
  color:#8E97A8;
  font-size:.8rem;
  text-align:center;
  padding:1.6rem 1.2rem 5.5rem; /* room for install button */
}
footer.colophon p{ max-width:52em; margin:0 auto .45rem; }
footer.colophon a{ color:#C6B171; }
footer.colophon .never{
  color:var(--gold-bright);
  font-style:italic;
  letter-spacing:.03em;
}

/* ---------- install button ---------- */
#installBtn{
  position:fixed;
  right:1rem; bottom:1rem;
  z-index:90;
  background:var(--meridian);
  color:#fff;
  border:none;
  border-radius:999px;
  padding:.7rem 1.15rem;
  font-family:var(--serif);
  font-size:.9rem;
  box-shadow:0 4px 14px rgba(16,27,45,.35);
  cursor:pointer;
  display:none;
}
#installBtn.show{ display:block; }
#iosTip{
  position:fixed;
  left:50%; transform:translateX(-50%);
  bottom:4.4rem;
  z-index:89;
  background:var(--ink);
  color:#EDE6D2;
  font-size:.83rem;
  padding:.7rem 1rem;
  border-radius:8px;
  max-width:90vw;
  display:none;
  box-shadow:0 4px 14px rgba(0,0,0,.3);
}
#iosTip.show{ display:block; }
