/* ============================================================
   MERIDIAN GROUP HOLDINGS — v3
   The calmest site in the portfolio.
   Institutional, deliberate, substantial. Not SaaS, not security,
   not a startup landing page. Meridian owns the map.
   ============================================================ */

:root{
  /* ground — warm near-black with a navy cast */
  --ink-900:#0B0E13;
  --ink-850:#0E1219;
  --ink-800:#131822;
  --ink-750:#181E29;

  /* type — warm white, never pure #fff */
  --paper:#EDE8E0;
  --paper-2:#C8C4BD;
  --paper-muted:#8E8A85;
  --paper-faint:#6C6963;

  /* one accent: muted brass. Never neon, never glowing. */
  --brass:#B4924F;
  --brass-dim:#8A7040;
  --brass-wash:rgba(180,146,79,.09);

  --rule:rgba(237,232,224,.10);
  --rule-soft:rgba(237,232,224,.055);

  --display:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:"Inter","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;

  --shell:1340px;
  --gutter:clamp(22px,5vw,72px);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--ink-900);
  color:var(--paper);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

.shell{max-width:var(--shell);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}

/* ---------- type scale: wide gaps between levels ---------- */
.display{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(3rem,7.4vw,6.2rem);
  line-height:1.02;
  letter-spacing:-.022em;
  margin:0;
  text-wrap:balance;
}
.statement{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(1.9rem,3.5vw,3.1rem);
  line-height:1.16;
  letter-spacing:-.014em;
  margin:0;
  color:var(--paper);
  text-wrap:balance;
}
.body{
  font-size:clamp(1.02rem,1.15vw,1.16rem);
  line-height:1.78;
  color:var(--paper-2);
  margin:0 0 1.15em;
  max-width:62ch;
}
.lede{
  font-size:clamp(1.1rem,1.35vw,1.3rem);
  line-height:1.68;
  color:var(--paper-2);
  margin:0;
  max-width:70ch;
}

/* labels and metadata — small, but only where small is correct */
.section-label{
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--brass);
  margin:0 0 20px;
}
.meta{
  font-size:.82rem;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--paper-muted);
}
.eyebrow{
  font-size:.76rem;
  font-weight:500;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--paper-muted);
  margin:0 0 34px;
}

a{color:inherit}

/* ---------- masthead ---------- */
.masthead{
  position:sticky;top:0;z-index:40;
  background:rgba(11,14,19,.86);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--rule-soft);
}
.masthead-in{
  display:flex;align-items:center;gap:40px;
  padding-top:20px;padding-bottom:20px;
}
.wordmark{
  display:flex;align-items:center;gap:13px;
  text-decoration:none;margin-right:auto;
  font-family:var(--display);font-size:1.06rem;letter-spacing:.01em;
  white-space:nowrap;
}
.wordmark .m{
  display:grid;place-items:center;
  width:32px;height:32px;flex:0 0 32px;
  border:1px solid var(--brass-dim);
  color:var(--brass);
  font-size:.86rem;letter-spacing:.04em;
}
.primary-nav{display:flex;gap:32px}
.primary-nav a{
  font-size:.87rem;letter-spacing:.04em;
  color:var(--paper-2);text-decoration:none;
  padding:6px 0;border-bottom:1px solid transparent;
  transition:color .25s ease,border-color .25s ease;
}
.primary-nav a:hover,.primary-nav a:focus-visible{color:var(--paper);border-bottom-color:var(--brass)}

/* restricted access sits apart, deliberately quieter */
.restricted-link{
  font-size:.79rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--paper-muted);text-decoration:none;
  padding:9px 17px;border:1px solid var(--rule);
  transition:border-color .25s ease,color .25s ease;
  white-space:nowrap;
}
.restricted-link::before{
  content:"";display:inline-block;
  width:5px;height:5px;margin-right:9px;vertical-align:middle;
  border:1px solid var(--brass-dim);border-radius:50%;
}
.restricted-link:hover{color:var(--paper-2);border-color:var(--brass-dim)}
.nav-toggle{display:none}

/* ---------- section rhythm ---------- */
.band{padding:clamp(92px,11vw,168px) var(--gutter)}
.band + .band{border-top:1px solid var(--rule-soft)}
.band-head{max-width:900px;margin-bottom:clamp(48px,5.5vw,86px)}

/* ---------- hero ---------- */
.hero{
  padding-top:clamp(96px,13vw,190px);
  padding-bottom:clamp(84px,10vw,150px);
}
.hero-rule{
  width:112px;height:1px;background:var(--brass);
  margin:clamp(34px,4vw,52px) 0;
}
.hero-statement{
  font-family:var(--display);
  font-size:clamp(1.5rem,2.7vw,2.35rem);
  line-height:1.34;
  color:var(--paper-2);
  max-width:26ch;
  margin:0;
}
.hero-foot{
  display:flex;flex-wrap:wrap;gap:14px 46px;
  margin-top:clamp(52px,6vw,88px);
  padding-top:26px;
  border-top:1px solid var(--rule-soft);
}

/* ---------- two-column editorial ---------- */
.duo{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));
  gap:clamp(30px,4.5vw,74px);
}

/* ---------- portfolio: editorial rows, not cards ---------- */
.holdings{border-top:1px solid var(--rule)}
.holding{
  display:grid;
  grid-template-columns:minmax(210px,.9fr) minmax(0,2fr) auto;
  gap:clamp(22px,3.5vw,58px);
  align-items:start;
  padding:clamp(32px,3.6vw,50px) 0;
  border-bottom:1px solid var(--rule);
  text-decoration:none;
  transition:background-color .35s ease,padding-left .35s ease;
}
.holding:hover{
  background:linear-gradient(90deg,var(--brass-wash),transparent 62%);
  padding-left:18px;
}
.holding-name{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.45rem,2.1vw,1.95rem);
  line-height:1.2;margin:0 0 9px;letter-spacing:-.01em;
}
.holding-role{
  font-size:.75rem;letter-spacing:.17em;text-transform:uppercase;
  color:var(--brass);
}
.holding p{margin:0;color:var(--paper-2);font-size:1.02rem;line-height:1.72;max-width:56ch}
.holding-go{
  font-size:.82rem;letter-spacing:.09em;color:var(--paper-muted);
  white-space:nowrap;padding-top:7px;
  transition:color .3s ease;
}
.holding:hover .holding-go{color:var(--brass)}

/* ---------- architecture: numbered typographic pillars ---------- */
.pillars{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));
  gap:clamp(34px,4vw,70px);
  counter-reset:pillar;
}
.pillar{counter-increment:pillar;padding-top:26px;border-top:1px solid var(--rule)}
.pillar::before{
  content:counter(pillar,decimal-leading-zero);
  display:block;font-family:var(--display);font-size:.95rem;
  color:var(--brass);margin-bottom:20px;letter-spacing:.08em;
}
.pillar h3{
  font-family:var(--display);font-weight:400;
  font-size:1.5rem;margin:0 0 14px;letter-spacing:-.008em;
}
.pillar p{margin:0;color:var(--paper-2);font-size:1rem;line-height:1.74}

/* ---------- register: definition rows ---------- */
.register{border-top:1px solid var(--rule)}
.reg-row{
  display:grid;grid-template-columns:minmax(210px,.75fr) minmax(0,2.1fr);
  gap:clamp(22px,3.5vw,58px);
  padding:clamp(32px,3.4vw,48px) 0;
  border-bottom:1px solid var(--rule);
}
.reg-class{
  font-family:var(--display);font-weight:400;
  font-size:1.42rem;margin:0 0 9px;
}
.reg-status{
  font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--brass);
}
.reg-row p{margin:0 0 .9em;color:var(--paper-2);font-size:1.01rem;line-height:1.74;max-width:66ch}
.reg-row p:last-child{margin-bottom:0}
.caveat{
  border-left:1px solid var(--brass-dim);
  padding-left:20px;
  color:var(--paper-muted) !important;
  font-size:.95rem !important;
}
.marks{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
.marks span{
  font-size:.75rem;letter-spacing:.09em;
  color:var(--paper-muted);
  border:1px solid var(--rule);
  padding:6px 12px;
}

/* ---------- publications ---------- */
.series{border-top:1px solid var(--rule);margin-bottom:clamp(46px,5vw,76px)}
.entry{
  display:grid;grid-template-columns:130px 1fr auto;
  gap:26px;align-items:baseline;
  padding:19px 0;border-bottom:1px solid var(--rule-soft);
  text-decoration:none;
  transition:padding-left .3s ease,border-color .3s ease;
}
.entry:hover{padding-left:14px;border-bottom-color:var(--brass-dim)}
.entry-date{font-size:.82rem;letter-spacing:.07em;color:var(--paper-faint);white-space:nowrap}
.entry-title{font-size:1.06rem;color:var(--paper-2);line-height:1.5;transition:color .3s ease}
.entry:hover .entry-title{color:var(--paper)}
.entry-go{color:var(--paper-faint);font-size:.9rem;transition:color .3s ease}
.entry:hover .entry-go{color:var(--brass)}

.plates{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:clamp(16px,2vw,26px);
  margin-bottom:clamp(46px,5vw,76px);
}
.plate{margin:0}
.plate img{
  display:block;width:100%;height:186px;object-fit:cover;
  border:1px solid var(--rule);
  filter:saturate(.62) contrast(.95) brightness(.82);
  transition:filter .5s ease;
}
.plate:hover img{filter:saturate(.85) contrast(1) brightness(.95)}
.plate figcaption{
  font-size:.79rem;letter-spacing:.05em;color:var(--paper-faint);
  margin-top:11px;line-height:1.5;
}

.works{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));
  gap:clamp(26px,3vw,52px);
}
.work{padding-top:22px;border-top:1px solid var(--rule)}
.work h4{
  font-family:var(--display);font-weight:400;font-size:1.18rem;
  margin:0 0 9px;
}
.work p{margin:0;color:var(--paper-muted);font-size:.95rem;line-height:1.68}

/* ---------- prospectus: a contained, formal panel ---------- */
.prospectus{
  background:var(--ink-800);
  border:1px solid var(--rule);
  padding:clamp(38px,5vw,76px);
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
  gap:clamp(34px,4.5vw,72px);
  align-items:center;
}
.prospectus-facts{display:grid;gap:16px}
.fact{display:flex;gap:16px;align-items:baseline;padding-bottom:14px;border-bottom:1px solid var(--rule-soft)}
.fact:last-child{border-bottom:0;padding-bottom:0}
.fact-key{
  font-size:.73rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--brass);flex:0 0 118px;
}
.fact-val{font-size:.97rem;color:var(--paper-2);line-height:1.6}

/* ---------- controlled access: quiet, private, contained ---------- */
.controlled{
  border:1px solid var(--rule);
  border-left:2px solid var(--brass-dim);
  background:linear-gradient(180deg,rgba(180,146,79,.045),transparent 70%);
  padding:clamp(34px,4.5vw,62px);
  display:flex;flex-wrap:wrap;gap:34px;
  align-items:center;justify-content:space-between;
}
.controlled h2{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.5rem,2.3vw,2.05rem);
  margin:14px 0 16px;letter-spacing:-.01em;
}
.controlled p{margin:0;color:var(--paper-muted);font-size:1rem;max-width:60ch;line-height:1.72}
.seal{
  flex:0 0 auto;
  font-size:.79rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--paper);text-decoration:none;
  padding:16px 34px;border:1px solid var(--brass-dim);
  transition:background-color .3s ease,color .3s ease;
}
.seal:hover{background:var(--brass);color:var(--ink-900);border-color:var(--brass)}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(30px,4vw,64px)}
.textlink{
  color:var(--paper);text-decoration:none;
  border-bottom:1px solid var(--brass-dim);
  padding-bottom:2px;transition:border-color .3s ease;
}
.textlink:hover{border-bottom-color:var(--brass)}

/* ---------- footer ---------- */
.site-footer{
  border-top:1px solid var(--rule);
  padding:clamp(52px,6vw,84px) var(--gutter) 46px;
  background:var(--ink-850);
}
.footer-grid{
  display:grid;grid-template-columns:2fr repeat(auto-fit,minmax(160px,1fr));
  gap:clamp(30px,4vw,58px);
  max-width:var(--shell);margin:0 auto;
}
.footer-grid strong{
  display:block;font-weight:600;font-size:.74rem;
  letter-spacing:.17em;text-transform:uppercase;
  color:var(--paper-muted);margin-bottom:17px;
}
.footer-grid a{
  display:block;color:var(--paper-2);text-decoration:none;
  font-size:.93rem;padding:5px 0;transition:color .25s ease;
}
.footer-grid a:hover{color:var(--brass)}
.footer-legal{
  max-width:var(--shell);margin:clamp(44px,5vw,72px) auto 0;
  padding-top:26px;border-top:1px solid var(--rule-soft);
  font-size:.83rem;color:var(--paper-faint);line-height:1.7;
}

/* ---------- motion: entrance only, and gently ---------- */
.rise{opacity:0;transform:translateY(14px);animation:rise .95s cubic-bezier(.22,.7,.3,1) forwards}
.rise-2{animation-delay:.10s}
.rise-3{animation-delay:.20s}
.rise-4{animation-delay:.30s}
@keyframes rise{to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  .rise{animation:none;opacity:1;transform:none}
  *{transition:none !important}
}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .holding{grid-template-columns:1fr;gap:14px}
  .holding-go{padding-top:0}
  .reg-row{grid-template-columns:1fr;gap:16px}
  .prospectus{grid-template-columns:1fr}
  .entry{grid-template-columns:96px 1fr auto;gap:18px}
}
@media (max-width:860px){
  .primary-nav{
    display:none;position:absolute;top:100%;left:0;right:0;
    flex-direction:column;gap:0;
    background:var(--ink-850);border-bottom:1px solid var(--rule);
    padding:10px var(--gutter) 22px;
  }
  .primary-nav.open{display:flex}
  .primary-nav a{padding:13px 0;border-bottom:1px solid var(--rule-soft)}
  .nav-toggle{
    display:block;order:3;
    background:none;border:1px solid var(--rule);color:var(--paper-2);
    font-family:var(--sans);font-size:.78rem;letter-spacing:.13em;
    text-transform:uppercase;padding:9px 15px;cursor:pointer;
  }
  .restricted-link{order:2;font-size:.72rem;padding:8px 13px}
  .wordmark span:not(.m){display:none}
}
@media (max-width:560px){
  body{font-size:16px}
  .entry{grid-template-columns:1fr auto;gap:6px 14px}
  .entry-date{grid-column:1/-1}
  .hero-foot{gap:10px 26px}
  .controlled{flex-direction:column;align-items:flex-start}
}
