/* Premium visual layer */
:root { --glass-bg: rgba(255,255,255,.075); --glass-line: rgba(255,255,255,.2); }

.site-header {
  background: linear-gradient(90deg, rgba(7,9,12,.82), rgba(12,17,23,.68));
  border-bottom-color: rgba(224,183,125,.22);
  box-shadow: 0 16px 50px rgba(0,0,0,.2);
}

.glass-card {
  background: linear-gradient(145deg, rgba(255,255,255,.14), rgba(255,255,255,.035));
  border: 1px solid var(--glass-line);
  -webkit-backdrop-filter: blur(18px) saturate(135%);
  backdrop-filter: blur(18px) saturate(135%);
  box-shadow: 0 36px 110px rgba(0,0,0,.52), inset 0 1px 0 rgba(255,255,255,.2);
}

.glass-light {
  background: linear-gradient(145deg, rgba(255,255,255,.72), rgba(255,255,255,.34));
  border: 1px solid rgba(255,255,255,.65);
  -webkit-backdrop-filter: blur(20px) saturate(120%);
  backdrop-filter: blur(20px) saturate(120%);
  box-shadow: 0 28px 70px rgba(37,31,24,.15), inset 0 1px 0 rgba(255,255,255,.9);
}

.hero-portrait { overflow: visible; transition: transform .55s cubic-bezier(.2,.8,.2,1), box-shadow .55s; }
.hero-portrait:hover { transform: translateY(-10px) rotateY(-2deg); }
.hero-portrait img { position: relative; z-index: 1; object-position: center 22%; }
.hero-portrait figcaption { position: relative; z-index: 2; -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.portrait-glow { position: absolute; inset: -12%; border-radius: 50%; background: radial-gradient(circle, rgba(200,155,98,.28), transparent 68%); filter: blur(32px); animation: glowPulse 5s ease-in-out infinite; }

.about-cover {
  position: relative;
  background: linear-gradient(90deg, rgba(3,16,25,.92) 0%, rgba(3,16,25,.62) 48%, rgba(3,16,25,.4) 100%), url("images/about-cover-new.png") center 36%/cover no-repeat;
}
.about-cover::after,.career-cover::after,.giving-cover::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(115deg, transparent 45%, rgba(255,255,255,.08) 50%, transparent 55%);
  background-size: 220% 100%; animation: ambientSweep 11s linear infinite;
}
.about-cover .shell,.career-cover .shell,.giving-cover .shell { z-index: 1; }
.career-cover { position: relative; background: linear-gradient(90deg, rgba(4,14,22,.92), rgba(4,14,22,.5)), url("images/career-cover-new.png") center 44%/cover no-repeat; }
.giving-cover { position: relative; background: linear-gradient(90deg, rgba(2,15,25,.9), rgba(2,15,25,.46)), url("images/giving-cover-new.png") center 30%/cover no-repeat; }

.editorial-image { padding: 10px; border-radius: 4px; }
.editorial-image img { aspect-ratio: 4/5; object-fit: cover; object-position: center 26%; }
.editorial-image::before { inset: 28px -10px -10px 28px; }

.path-grid a,.company-grid article,.investment-grid article,.giving-grid article,.topic-grid article {
  position: relative; overflow: hidden; transition: transform .42s cubic-bezier(.2,.8,.2,1), box-shadow .42s, border-color .42s;
}
.company-grid article,.giving-grid article,.topic-grid article { border: 1px solid rgba(200,155,98,.16); }
.company-grid article::after,.investment-grid article::after,.topic-grid article::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .35s;
  background: radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(224,183,125,.2), transparent 34%);
}
.company-grid article:hover,.investment-grid article:hover,.giving-grid article:hover,.topic-grid article:hover {
  transform: translateY(-7px); border-color: rgba(200,155,98,.45); box-shadow: 0 22px 55px rgba(22,16,10,.17);
}
.company-grid article:hover::after,.investment-grid article:hover::after,.topic-grid article:hover::after { opacity: 1; }
.giving-grid img { transition: transform .8s cubic-bezier(.2,.8,.2,1), filter .5s; }
.giving-grid article:hover img { transform: scale(1.045); filter: saturate(1); }

.button { position: relative; overflow: hidden; box-shadow: inset 0 1px 0 rgba(255,255,255,.15); }
.button::before { content:""; position:absolute; inset:0; transform:translateX(-110%); background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent); transition:transform .65s; }
.button:hover::before { transform:translateX(110%); }

.contact-details { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-bottom: 55px; padding: 8px; color: #171715; }
.contact-details>div { padding: 30px 34px; border-right: 1px solid rgba(24,23,21,.13); }
.contact-details>div:last-child { border-right: 0; }
.contact-details span { display: block; margin-bottom: 13px; color: #91653a; font-size: 9px; letter-spacing: .24em; }
.contact-details a { font: clamp(18px,2.3vw,30px) var(--serif); transition: color .25s; }
.contact-details a:hover { color: #9a6a39; }

.reveal { opacity: 0; transform: translateY(30px); transition: opacity .8s ease var(--delay,0ms), transform .8s cubic-bezier(.2,.8,.2,1) var(--delay,0ms); }
.reveal.is-visible { opacity: 1; transform: none; }
.hero-copy.reveal { transform: translateX(-28px); }
.hero-copy.reveal.is-visible { transform: none; }
.hero-portrait.reveal { transform: translateX(28px) scale(.98); }
.hero-portrait.reveal.is-visible { transform: none; }

@keyframes glowPulse { 0%,100%{opacity:.55;transform:scale(.96)} 50%{opacity:1;transform:scale(1.04)} }
@keyframes ambientSweep { from{background-position:200% 0} to{background-position:-20% 0} }

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; }
  .reveal { opacity:1; transform:none; }
}
@media (max-width: 620px) {
  .contact-details { grid-template-columns:1fr; }
  .contact-details>div { border-right:0; border-bottom:1px solid rgba(24,23,21,.13); padding:24px 20px; }
  .contact-details>div:last-child { border-bottom:0; }
  .about-cover,.career-cover,.giving-cover { background-position:center top; }
}
