/* HVM8: austere, editorial, dark-only. No CSS frameworks or external font dependencies. */
:root {
  color-scheme: dark;
  --bg: #231f20;
  --bg-alt: #272324;
  --ink: #f8f6f5;
  --muted: #b4adab;
  --quiet: #817a78;
  --rule: rgba(247,244,241,.18);
  --rule-strong: rgba(247,244,241,.34);
  --max: 1390px;
  --gutter: clamp(24px, 6.2vw, 108px);
  --ease: cubic-bezier(.22, 1, .36, 1);
  font-family: Arial, Helvetica, sans-serif;
  background-color: var(--bg);
  color: var(--ink);
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
}
*, *::before, *::after {box-sizing: border-box;}
html { scroll-behavior: smooth; scroll-padding-top: 28px; }
body { margin: 0; min-width: 320px; background: var(--bg); }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
a:focus-visible { outline: 2px solid #fff; outline-offset: 6px; }
::selection { background: #f8f6f5; color: var(--bg); }
.container { max-width: var(--max); margin-inline: auto; padding-inline: var(--gutter); }
.page-shell { overflow: clip; }
.skip-link { position: absolute; z-index: 99; top: -70px; left: 20px; padding: 12px 18px; background: white; color: black; }
.skip-link:focus { top: 15px; }

.site-header { height: 122px; display: flex; justify-content: space-between; align-items: center; gap: 30px; border-bottom: 1px solid var(--rule); }
.brand { display: flex; align-items: center; text-decoration: none; flex: 0 0 auto; }
.brand-window { position: relative; display: inline-block; width: 173px; height: 48px; overflow: hidden; isolation: isolate; }
.brand-original { position: absolute; top: -39.6px; left: -10.1px; display: block; width: 190px; max-width: none; height: auto; opacity: 0; }
.brand-fallback { display: block; font-family: Arial, Helvetica, sans-serif; font-size: 52px; font-weight: 900; letter-spacing: -.07em; line-height: 48px; white-space: nowrap; }
.brand-window.has-original .brand-original { opacity: 1; }
.brand-window.has-original .brand-fallback { opacity: 0; }
.site-nav { display:flex; align-items: center; gap: clamp(24px, 3.7vw, 54px); }
.site-nav a { color: #d4d0ce; position:relative; font-size: 12px; font-weight: 600; letter-spacing: .025em; text-decoration: none; padding-block: 8px; }
.site-nav a:hover { color: #fff; }
.site-nav a::after { content:""; position:absolute; bottom:1px; left:0; right:0; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .22s var(--ease); }
.site-nav a:hover::after, .site-nav a:focus-visible::after { transform:scaleX(1); }
.site-nav .nav-contact { color: var(--ink); }
.nav-contact span { display:inline-block; padding-left:7px; font-size: 15px; transition: transform .25s var(--ease); }
.nav-contact:hover span { transform: translate(2px,-2px); }

.hero { min-height: min(860px, calc(100svh - 25px)); display:flex; flex-direction:column; justify-content:space-between; padding-block: 56px 29px; }
.hero-intro { display:flex; justify-content:space-between; gap:20px; align-items:center; }
.micro-label, .hero-location, .hero-foot, .eyebrow, .activity-index, .detail-label, .footer-location h3, .footer-disclosure h3, .footer-baseline { font-size: 10px; font-weight:700; letter-spacing:.155em; line-height:1.5; }
.micro-label { color: #ece9e7; }
.label-divider { padding-inline: 13px; color: var(--quiet); }
.hero-location { color: var(--muted); }
.hero-main { padding-block: 80px 105px; }
h1,h2,h3,p { margin-top:0; }
h1 { margin-bottom:56px; font-size:clamp(56px,6.18vw,101px); font-weight:600; letter-spacing:-.067em; line-height:1.07; }
.muted-heading { color: #b7afad; }
.hero-subrow { display:flex; justify-content:space-between; align-items:end; gap:36px; }
.hero-subrow p { font-size:clamp(17px,1.55vw,21px); line-height:1.52; font-weight:400; letter-spacing:-.017em; color: #d9d3d0; max-width:620px; margin:0; }
.text-link { text-decoration:none; position:relative; border-bottom: 1px solid var(--rule-strong); padding-bottom:10px; }
.text-link:hover { border-color: var(--ink); }
.explore { color: var(--ink); white-space:nowrap; font-size:12px; font-weight:700; line-height:1.4; }
.arrow-down { margin-left:42px; font-size:18px; display:inline-block; transition:transform .24s var(--ease); }
.explore:hover .arrow-down { transform: translate(3px,3px); }
.hero-foot { color: var(--quiet); border-top:1px solid var(--rule); padding-top:24px; display:flex; justify-content:space-between; }

.activities { padding-block: 120px 144px; }
.section-heading { display:flex; justify-content:space-between; align-items:start; padding-bottom: 68px; }
.eyebrow { color: var(--muted); margin:0; }
.section-heading h2 { width: 69%; font-weight:500; font-size:clamp(45px,5.2vw,75px); line-height:1.07; letter-spacing:-.065em; margin:0; }
.activity-grid { border-top:1px solid var(--rule-strong); border-bottom:1px solid var(--rule-strong); display:grid; grid-template-columns:1fr 1fr; }
.activity { padding-block:38px 60px; min-width:0; scroll-margin-top:30px; }
.activity:first-child { padding-right:clamp(40px,5.4vw,86px); }
.activity:last-child { padding-left:clamp(40px,5.4vw,86px); border-left:1px solid var(--rule); }
.activity-top { display:flex; justify-content:space-between; align-items:start; gap:10px; margin-bottom:78px; }
.activity-index { color:var(--muted); }
.activity-marker { display:block; font-size:29px; line-height:1; color:var(--quiet); font-weight:300; }
.activity h3 { font-size:clamp(44px,4.1vw,64px); letter-spacing:-.062em; font-weight:500; line-height:1.06; margin-bottom:38px; }
.activity-period { color:#88807e; }
.activity-lead { color:var(--ink); font-size:clamp(18px,1.65vw,22px); line-height:1.45; letter-spacing:-.022em; min-height: 96px; margin-bottom:20px; max-width:485px; }
.activity-description { font-size:15px; line-height:1.8; color:var(--muted); min-height:135px; max-width:480px; margin-bottom:0; }
.activity-detail { border-top:1px solid var(--rule); margin-top:45px; padding-top:31px; }
.detail-label { color:var(--quiet); margin-bottom:22px; }
.activity-detail ul { list-style:none; padding:0; margin:0; }
.activity-detail li { color:#d1cbc8; line-height:1.55; font-size:13.5px; padding-block:12px; border-bottom:1px solid rgba(247,244,241,.08); }
.activity-detail li:last-child { border-bottom:0; }

.perspective { padding-block:70px 146px; border-bottom:1px solid var(--rule); display:grid; grid-template-columns: 30% 70%; gap:0; }
.perspective-label { display:flex; justify-content:space-between; align-items:start; padding-right:60px; }
.perspective-cross { color:var(--quiet); font-size:22px; line-height:1; }
.perspective-body h2 { font-weight:500; font-size:clamp(42px,4.1vw,62px); line-height:1.12; letter-spacing:-.06em; margin-bottom:40px; }
.perspective-body h2 span { color:var(--muted); }
.perspective-body p { max-width:630px; font-size:clamp(16px,1.55vw,20px); line-height:1.6; color:var(--muted); letter-spacing:-.015em; margin:0; }

.contact-section { background:var(--bg-alt); }
.contact-content { min-height: 585px; padding-block:108px 112px; display:flex; justify-content:space-between; gap:30px; }
.contact-lead h2 { font-size:clamp(55px,6vw,90px); font-weight:500; line-height:1.08; letter-spacing:-.07em; margin:35px 0 28px; }
.contact-lead p:not(.eyebrow) { color:var(--muted); font-size:17px; line-height:1.6; max-width:570px; }
.contact-email { display:inline-flex; gap:95px; justify-content:space-between; align-items:center; text-decoration:none; border-bottom:1px solid var(--ink); margin-top:26px; padding-bottom:14px; font-size:clamp(24px,2.6vw,39px); letter-spacing:-.04em; transition:border-color .2s; }
.contact-email span { font-size:30px; transition:transform .23s var(--ease); }
.contact-email:hover span { transform:translate(4px,-4px); }
.contact-aside { display:flex; align-items:flex-end; gap:14px; padding-bottom:10px; color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.14em; white-space:nowrap; }
.aside-line { height:1px; width:44px; background:var(--quiet); margin-bottom:6px; }

.site-footer { background:var(--bg); }
.footer-inner { padding-block:70px 30px; }
.footer-top { padding-bottom:55px; display:flex; justify-content:space-between; align-items:end; border-bottom:1px solid var(--rule); gap:20px; }
.footer-wordmark { font-size:46px; line-height:.9; font-weight:900; letter-spacing:-.08em; }
.footer-baseline { color:var(--quiet); }
.footer-locations { display:grid; grid-template-columns: 1fr 1fr 1.25fr; column-gap:clamp(40px,6vw,90px); padding-block:47px 76px; }
.footer-location h3, .footer-disclosure h3 { color:var(--ink); margin:0 0 23px; }
.footer-location p, .footer-disclosure p { font-size:12px; line-height:1.8; color:var(--muted); margin:0; }
.footer-location .legal-id { color:var(--quiet); margin-top:12px; font-size:10px; }
.footer-disclosure p + p { margin-top:15px; }
.footer-bottom { border-top:1px solid var(--rule); padding-top:25px; display:flex; justify-content:space-between; gap:20px; font-size:11px; color:var(--quiet); }
.footer-bottom a { text-decoration:none; color:var(--muted); }
.footer-bottom a:hover { color:var(--ink); }

@keyframes arrive { from { opacity:0; transform: translateY(12px); } to { opacity:1; transform:translateY(0); } }
.reveal { animation:arrive .62s var(--ease) both; }
.reveal-second { animation-delay:.11s; }

@media (min-width:1500px) { .hero { min-height:860px; } }
@media (max-width:1000px) {
  .hero { min-height:740px; }
  .hero-main { padding-block:90px 70px; }
  h1 { font-size: clamp(55px, 7.6vw, 78px); }
  .activity:first-child { padding-right:34px; }
  .activity:last-child { padding-left:34px; }
  .activity h3 {font-size:clamp(38px,5vw,50px);}
  .activity-lead { min-height:125px; }
  .activity-description { min-height:188px; }
  .contact-aside { display:none; }
}
@media (max-width:700px) {
  :root { --gutter:24px; }
  .site-header { height:86px; }
  .brand-window { width:128px; height:35px; }
  .brand-original { width:140px; top:-29.15px; left:-7.45px; }
  .brand-fallback {font-size:38px;line-height:35px;}
  .site-nav {gap:20px;}
  .site-nav a {font-size:11px;}
  .site-nav a:first-child, .site-nav a:nth-child(2) {display:none;}
  .nav-contact span {padding-left:3px;}
  .hero { min-height: min(790px, 88svh); padding-block:35px 24px; }
  .hero-intro {flex-wrap:wrap; gap:15px;}
  .micro-label, .hero-location {font-size:9px;letter-spacing:.11em;}
  .hero-main {padding-block:90px 60px;}
  h1 {font-size:clamp(48px, 9.6vw, 72px);line-height:1.1;letter-spacing:-.066em;margin-bottom:38px;}
  .hero-subrow {display:block;}
  .hero-subrow p {font-size:17px;line-height:1.58;max-width:530px;}
  .explore {margin-top:33px;display:inline-flex;align-items:center;}
  .arrow-down {margin-left:24px;}
  .hero-foot {padding-top:18px;}
  .hero-foot span {max-width:45%;font-size:9px;}
  .activities {padding-block:83px 77px;}
  .section-heading {display:block;padding-bottom:42px;}
  .section-heading h2 {width:auto;margin-top:30px;font-size:clamp(44px,9vw,64px);}
  .activity-grid {grid-template-columns:1fr;}
  .activity {padding-block:31px 53px;}
  .activity:first-child {padding-right:0;}
  .activity:last-child {padding-left:0;border-left:0;border-top:1px solid var(--rule-strong);}
  .activity-top {margin-bottom:45px;}
  .activity h3 {font-size:clamp(48px,9vw,62px);margin-bottom:29px;}
  .activity-lead {min-height:auto;font-size:20px;max-width:520px;margin-bottom:19px;}
  .activity-description {min-height:auto;font-size:15px;}
  .activity-detail {margin-top:37px;}
  .perspective {padding-block:45px 91px;grid-template-columns:1fr;gap:35px;}
  .perspective-label {justify-content:space-between;padding-right:0;}
  .perspective-body h2 {font-size:clamp(43px,8vw,57px);margin-bottom:26px;}
  .perspective-body p {font-size:17px;}
  .contact-content {min-height:520px;padding-block:81px 86px;}
  .contact-lead h2 {font-size:clamp(55px,10vw,73px);margin:34px 0 23px;}
  .contact-lead p:not(.eyebrow) {font-size:15px;}
  .contact-email {gap:60px;margin-top:34px;font-size:30px;}
  .footer-inner {padding-top:58px;}
  .footer-top {align-items:start;flex-direction:column;padding-bottom:35px;gap:18px;}
  .footer-wordmark {font-size:40px;}
  .footer-baseline {font-size:9px;}
  .footer-locations {grid-template-columns:1fr 1fr;column-gap:20px;row-gap:43px;padding-block:36px 56px;}
  .footer-disclosure {grid-column:1/-1;border-top:1px solid var(--rule);padding-top:32px;max-width:570px;}
  .footer-location h3,.footer-disclosure h3 {margin-bottom:18px;}
}
@media (max-width:380px) {
  :root {--gutter:20px;}
  .hero-intro {align-items:start;}
  .micro-label {max-width:245px;}
  .hero-location {display:none;}
  h1 {font-size:46px;}
  .hero {min-height:710px;}
  .contact-email {font-size:26px;gap:40px;}
  .footer-locations {grid-template-columns:1fr;}
  .footer-disclosure {grid-column:auto;}
}
@media (prefers-reduced-motion: reduce) {
  html {scroll-behavior:auto;}
  *,*::before,*::after {animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;}
}
