/* ==========================================================
   Egoista — shared finishing touches (loaded on every page)
   Uses each page's own --paper / --ink / --muted / --hair,
   so it works on the white pages and the pink Impact page.
   ========================================================== */

/* Selection */
::selection{background:var(--ink);color:var(--paper);}

/* Curtain plays once per visit; later pages open straight away */
.seen .curtain{display:none;}
.seen *{animation-delay:0s !important;}

/* ---- Sticky header ---- */
header.bar{
  position:sticky;top:0;z-index:40;background:var(--paper);
  box-shadow:0 0 0 100vmax var(--paper);clip-path:inset(0 -100vmax -1px);
  transition:padding .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease;
}
.is-scrolled header.bar{padding-top:1rem;padding-bottom:1rem;
  box-shadow:0 0 0 100vmax var(--paper),0 1px 0 100vmax var(--hair);}

/* ---- Nav: underline that draws in ---- */
.bar nav a{
  border-bottom:none !important;padding-bottom:3px;
  background:linear-gradient(currentColor,currentColor) left bottom / 0 1px no-repeat;
  transition:background-size .5s cubic-bezier(.2,.7,.2,1),opacity .3s ease;
}
.bar nav a:hover,.bar nav a.current{background-size:100% 1px;}

/* ---- Mobile menu ---- */
.menu-btn{
  display:none;background:none;border:0;cursor:pointer;color:var(--ink);
  font-family:inherit;font-size:.95rem;letter-spacing:.28em;text-transform:uppercase;padding:.4rem 0 .4rem .4rem;
}
.menu-overlay{
  position:fixed;inset:0;z-index:60;background:var(--paper);
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;
  opacity:0;visibility:hidden;transition:opacity .5s ease,visibility .5s;
}
.menu-open .menu-overlay{opacity:1;visibility:visible;}
.menu-overlay a.m-link{
  color:var(--ink);text-decoration:none;font-size:clamp(2.2rem,9vw,3.2rem);font-style:italic;line-height:1.25;
  opacity:0;transform:translateY(12px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1);
}
.menu-open .menu-overlay a.m-link{opacity:1;transform:none;}
.menu-overlay a.m-link.current{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em;}
.menu-overlay .m-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:1.4rem clamp(1.5rem,5vw,4rem);}
.menu-overlay .m-brand{font-size:1.35rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);text-decoration:none;}
.menu-overlay .m-foot{position:absolute;bottom:2rem;left:0;right:0;text-align:center;font-size:.85rem;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);}
.menu-overlay .m-foot a{color:inherit;text-decoration:none;}
.menu-open{overflow:hidden;}

@media(max-width:760px){
  header.bar{flex-direction:row !important;align-items:center !important;}
  .bar nav{display:none !important;}
  .menu-btn{display:block;}
}

/* ---- Scroll reveal ---- */
.js .reveal{opacity:0 !important;transform:translateY(22px);animation:none !important;
  transition:opacity 1.1s cubic-bezier(.2,.7,.2,1),transform 1.1s cubic-bezier(.2,.7,.2,1);}
.js .reveal.in{opacity:1 !important;transform:none;}

/* ---- Marquee band ---- */
.eg-marquee{overflow:hidden;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:1.15rem 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);}
.eg-marquee .eg-track{display:flex;align-items:center;gap:2.4rem;width:max-content;animation:egSlide 42s linear infinite;}
.eg-marquee span{font-size:clamp(1.3rem,2.4vw,1.85rem);font-style:italic;color:var(--ink);white-space:nowrap;}
.eg-marquee i{width:6px;height:6px;background:var(--muted);transform:rotate(45deg);flex:none;}
@keyframes egSlide{to{transform:translateX(-50%);}}

/* ---- Footer wordmark ---- */
.eg-sign{text-align:center;border-top:1px solid var(--hair);padding:clamp(3.5rem,8vw,6rem) 0 clamp(2.5rem,5vw,3.5rem);}
.eg-sign .w{display:block;font-size:clamp(3.2rem,12vw,9.5rem);font-weight:500;letter-spacing:.14em;line-height:1;color:var(--ink);padding-left:.14em;}
.eg-sign .t{display:block;margin-top:1.4rem;font-size:clamp(1.1rem,2vw,1.4rem);font-style:italic;color:var(--muted);}
.eg-sign + .strip,.eg-sign + footer.strip{border-top:1px solid var(--hair);}

@media(prefers-reduced-motion:reduce){
  .js .reveal{opacity:1 !important;transform:none;transition:none;}
  .eg-marquee .eg-track{animation:none;}
  .menu-overlay a.m-link{transition:none;}
}
[id]{scroll-margin-top:96px;}
