html.mccore-lock,
html.mccore-lock body { overflow:hidden; }

.mccore-overlay {
  position:fixed;
  inset:0;
  z-index:99990;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  transition:opacity .28s ease, visibility .28s ease;
}

.mccore-overlay.is-open {
  visibility:visible;
  opacity:1;
  pointer-events:auto;
}

.mccore-backdrop {
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.34);
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
}

.mccore-surface {
  position:absolute;
  color:#fff;
  background:rgba(9,9,9,.80);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 20px 80px rgba(0,0,0,.34);
  -webkit-backdrop-filter:blur(22px);
  backdrop-filter:blur(22px);
  transition:transform .42s cubic-bezier(.2,.8,.2,1), opacity .3s ease;
  overflow:hidden;
}

.mccore-overlay.is-panel .mccore-surface {
  top:0;
  right:0;
  width:min(680px, 54vw);
  height:100%;
  transform:translateX(104%);
}
.mccore-overlay.is-panel.is-open .mccore-surface { transform:translateX(0); }

.mccore-overlay.is-popup .mccore-surface {
  left:50%;
  top:50%;
  width:min(760px, calc(100vw - 60px));
  max-height:min(760px, calc(100vh - 60px));
  transform:translate(-50%,-46%) scale(.98);
  opacity:0;
  border-radius:2px;
}
.mccore-overlay.is-popup.is-open .mccore-surface {
  transform:translate(-50%,-50%) scale(1);
  opacity:1;
}

.mccore-scroll {
  height:100%;
  overflow:auto;
  padding:clamp(72px,9vw,120px) clamp(34px,5vw,78px) 60px;
}

.mccore-close {
  position:absolute;
  z-index:2;
  right:26px;
  top:20px;
  width:42px;
  height:42px;
  border:0;
  background:transparent;
  color:#fff;
  font:300 38px/1 Arial, sans-serif;
  cursor:pointer;
  opacity:.75;
  transition:opacity .2s ease, transform .2s ease;
}
.mccore-close:hover,
.mccore-close:focus-visible { opacity:1; transform:rotate(5deg); outline:none; }

.mccore-eyebrow {
  margin:0 0 12px;
  font:700 10px/1.2 Arial,sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
  opacity:.55;
}

#mccore-title {
  margin:0 0 30px;
  color:#fff;
  font:800 clamp(34px,4.2vw,64px)/.92 "Helvetica Neue",Helvetica,Arial,sans-serif;
  letter-spacing:-.045em;
  text-transform:uppercase;
}

.mccore-body {
  color:rgba(255,255,255,.90);
  font:400 clamp(16px,1.25vw,19px)/1.65 "Helvetica Neue",Helvetica,Arial,sans-serif;
}
.mccore-body > *:first-child { margin-top:0; }
.mccore-body > *:last-child { margin-bottom:0; }
.mccore-body h2,
.mccore-body h3,
.mccore-body h4 { color:#fff; line-height:1.05; letter-spacing:-.025em; }
.mccore-body a { color:#fff; text-underline-offset:4px; }
.mccore-body img { max-width:100%; height:auto; }

.mccore-cta {
  display:inline-block;
  margin-top:38px;
  padding:12px 0 8px;
  color:#fff;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.65);
  font:700 12px/1.2 Arial,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
}

@media (max-width: 800px) {
  .mccore-overlay.is-panel .mccore-surface {
    width:calc(100vw - 22px);
  }
  .mccore-overlay.is-popup .mccore-surface {
    width:calc(100vw - 28px);
    max-height:calc(100vh - 28px);
  }
  .mccore-scroll { padding:86px 28px 46px; }
  #mccore-title { font-size:clamp(34px,11vw,52px); }
}

@media (prefers-reduced-motion: reduce) {
  .mccore-overlay,
  .mccore-surface,
  .mccore-close { transition:none !important; }
}

.mccore-overlay.has-background .mccore-surface {
  background-image:linear-gradient(rgba(8,8,8,.58),rgba(8,8,8,.70)), var(--mccore-bg-image);
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}
.mccore-overlay.has-background .mccore-scroll {
  background:linear-gradient(90deg, rgba(0,0,0,.18), rgba(0,0,0,.02));
}

.mccore-projects {
  margin-top:clamp(40px,6vw,72px);
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.22);
}
.mccore-projects-label {
  margin:0 0 10px;
  font:700 10px/1.2 Arial,sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
  opacity:.58;
}
.mccore-projects-list { display:block; }
.mccore-project {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,.14);
  color:#fff;
  text-decoration:none !important;
  font:600 clamp(17px,1.45vw,22px)/1.2 "Helvetica Neue",Helvetica,Arial,sans-serif;
  transition:opacity .2s ease, padding-left .2s ease;
}
a.mccore-project:hover,
a.mccore-project:focus-visible { opacity:.72; padding-left:6px; outline:none; }
.mccore-project-arrow { font-weight:400; opacity:.65; }
