:root {
  --bg: #F5F4F1;
  --ink: #0E1114;
  --body: #3A4048;
  --meta: #6B7178;
  --muted: #9A9EA4;
  --rule: #DAD8D3;
  --accent: #E3A93B;
  --accent-ink: #B07C1E;
  --grotesk: 'Space Grotesk', sans-serif;
  --sans: 'IBM Plex Sans', system-ui, sans-serif;
  --mono: 'IBM Plex Mono', monospace;
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body { background: var(--bg); color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
body.is-loading { overflow: hidden; }
h1, h2, p { margin: 0; font-weight: inherit; }
a { color: inherit; }

.brand { font: 500 16px var(--grotesk); }
.dot { color: var(--accent); }
.muted { color: var(--muted); }

/* Portrait: mono by default, set data-portrait="color" on <html> for full colour */
.portrait {
  display: block;
  width: auto;
  -webkit-mask-image: linear-gradient(to bottom, #000 55%, transparent 96%);
  mask-image: linear-gradient(to bottom, #000 55%, transparent 96%);
  filter: grayscale(1) brightness(1.3) contrast(0.95);
}
[data-portrait="color"] .portrait { filter: brightness(1.2); }

/* Liquid glass stat panel */
.glass-dark {
  color: #fff;
  background: rgba(26, 29, 33, .34);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  border: 1px solid rgba(255, 255, 255, .3);
}
.stats { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.stat { display: flex; flex-direction: column; gap: 6px; }
.stat-n { font: 500 34px/1 var(--grotesk); letter-spacing: -.03em; }
.stat-l { font: 400 13px/1.3 var(--sans); color: rgba(255, 255, 255, .85); }

/* ---------- Preloader ---------- */
.pre {
  position: fixed; inset: 0; z-index: 100;
  background: var(--bg);
  display: grid; place-items: center;
}
.pre-word { font: 500 48px var(--grotesk); color: var(--ink); opacity: 0; }
.pre-curve {
  position: absolute; left: -10%; right: -10%; top: 100%;
  height: 90px; background: var(--bg); border-radius: 0 0 50% 50%;
}
.no-intro .pre { display: none; }

/* ================= DESKTOP ================= */
.m { display: none; }
.d { max-width: 1200px; margin: 0 auto; }

.d-hero { position: relative; padding: 92px 28px 0; }
.d-nav {
  position: absolute; left: 28px; right: 28px; top: 22px; z-index: 6;
  display: flex; align-items: center; justify-content: space-between;
}
.d-box {
  position: relative; height: 540px; border-radius: 36px;
  background: linear-gradient(90deg, #EDECE9 0%, #E8E7E3 55%, #D8D7D3 100%);
}
.d-copy {
  position: absolute; left: 72px; top: 68px; z-index: 3;
  display: flex; flex-direction: column; gap: 18px; max-width: 470px;
}
.eyebrow { font: 500 10px var(--mono); letter-spacing: .16em; color: var(--meta); }
.d-h1 { font: 500 clamp(54px, 5vw, 60px)/0.98 var(--grotesk); letter-spacing: -.035em; white-space: nowrap; }
.d-lede { font: 400 18px/1.55 var(--sans); color: var(--body); max-width: 460px; }
.d-spec {
  position: absolute; left: 61px; top: 381px; right: 0; bottom: 0;
  pointer-events: none;
  background: radial-gradient(circle at var(--mx, 20%) var(--my, 0%), rgba(255, 255, 255, .38), rgba(255, 255, 255, 0) 42%);
}
.d-portrait {
  position: absolute; right: 10px; bottom: 0; z-index: 2;
  height: clamp(540px, 50vw, 600px);
  border-bottom-right-radius: 36px;
}
.d-glass {
  position: absolute; right: 131px; top: 483px; z-index: 4;
  width: 430px; border-radius: 24px; padding: 26px 28px;
  -webkit-backdrop-filter: blur(18px) saturate(1.6) brightness(.92);
  backdrop-filter: blur(18px) saturate(1.6) brightness(.92);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), inset 0 -1px 0 rgba(255, 255, 255, .12),
    inset 0 0 28px rgba(255, 255, 255, .08), 0 24px 60px rgba(14, 17, 20, .28);
  overflow: hidden; transform-style: preserve-3d;
}

/* Experience list */
.d-list-spacer { height: 68px; }
.d-list { position: relative; margin: 0 56px; border-bottom: 1px solid var(--rule); }
.d-row { position: relative; border-top: 1px solid var(--rule); cursor: pointer; transition: opacity .3s; }
.d-list.has-active .d-row:not(.is-on) { opacity: .35; }
.d-row-head { display: flex; align-items: baseline; justify-content: space-between; padding: 28px 0; }
.d-row-left { display: flex; align-items: baseline; gap: 24px; }
.d-row-n { font: 500 12px var(--mono); color: var(--accent-ink); }
.d-row-org { font: 500 60px/1 var(--grotesk); letter-spacing: -.035em; }
.d-row-right { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; text-align: right; }
.d-row-title { font: 400 14px var(--sans); color: var(--body); }
.d-row-yr { font: 400 11px var(--mono); color: var(--meta); }
.d-row-expand { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .55s cubic-bezier(.65, 0, .35, 1); }
.d-row.is-on .d-row-expand { grid-template-rows: 1fr; }
.d-row-clip { overflow: hidden; min-height: 0; }
.d-row-body {
  padding: 0 0 30px 44px; max-width: 640px;
  font: 400 17px/1.55 var(--sans); color: var(--body);
  display: flex; flex-direction: column; gap: 12px;
  opacity: 0; transform: translateY(-8px);
  transition: opacity .4s .1s, transform .5s cubic-bezier(.22, 1, .36, 1);
}
.d-row.is-on .d-row-body { opacity: 1; transform: none; }
.d-row-profile { font: 400 15px/1.55 var(--sans); color: var(--meta); max-width: 560px; }
.d-site {
  position: absolute; right: 0; top: 100px; z-index: 5;
  display: flex; align-items: center; gap: 16px;
  padding: 16px 16px 16px 22px; border-radius: 18px;
  text-decoration: none; color: var(--ink);
  background: rgba(255, 255, 255, .5);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  border: 1px solid rgba(255, 255, 255, .95);
  box-shadow: inset 0 1px 0 #fff, 0 18px 40px rgba(14, 17, 20, .14);
  opacity: 0; transform: translateY(10px) scale(.94); pointer-events: none;
  transition: opacity .35s .15s, transform .5s .15s cubic-bezier(.22, 1, .36, 1);
}
.d-row.is-on .d-site { opacity: 1; transform: none; pointer-events: auto; }
.d-site-name { font: 500 17px var(--grotesk); }
.arrow-tile {
  width: 44px; height: 44px; border-radius: 12px;
  background: linear-gradient(180deg, #30353C 0%, #0E1114 65%);
  color: var(--bg); display: grid; place-items: center; font: 500 17px var(--grotesk);
}

/* CTA */
.d-cta-wrap { padding: 90px 28px 28px; }
.d-cta {
  position: relative; border-radius: 36px; padding: 72px 72px 30px;
  background: linear-gradient(90deg, #EDECE9 0%, #E3E2DE 100%);
}
.d-cta-grid { display: grid; grid-template-columns: minmax(0, 1fr) 520px; gap: 56px; align-items: end; }
.d-cta-h { font: 500 110px/0.88 var(--grotesk); letter-spacing: -.045em; }
.d-contact {
  border-radius: 24px; overflow: hidden;
  background: rgba(255, 255, 255, .38);
  -webkit-backdrop-filter: blur(18px) saturate(1.5);
  backdrop-filter: blur(18px) saturate(1.5);
  border: 1px solid rgba(255, 255, 255, .9);
  box-shadow: inset 0 1px 0 #fff, 0 18px 44px rgba(14, 17, 20, .08);
}
.d-contact-bar {
  display: block; height: 48px;
  background: linear-gradient(180deg, #30353C 0%, #0E1114 70%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25);
}
.d-contact-row {
  display: grid; grid-template-columns: 90px 1fr 44px; align-items: center; gap: 16px;
  padding: 22px 24px; border-top: 1px solid rgba(14, 17, 20, .08);
  text-decoration: none; color: var(--ink); transition: background .25s;
}
.d-contact-row:hover { background: rgba(255, 255, 255, .6); }
.d-contact-row .label { font: 500 10px var(--mono); letter-spacing: .14em; color: var(--meta); }
.d-contact-row .val { font: 500 22px var(--grotesk); letter-spacing: -.01em; }
.arrow-circle {
  width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid rgba(14, 17, 20, .15);
  display: grid; place-items: center; font: 500 16px var(--grotesk);
}
.d-foot {
  display: flex; justify-content: space-between;
  margin-top: 60px; padding-top: 18px; border-top: 1px solid #D2D0CB;
  font: 500 10px var(--mono); letter-spacing: .12em; color: var(--meta);
}

/* 1080–1199: stack the CTA so the 110px headline fits */
@media (max-width: 1199px) {
  .d-cta-grid { grid-template-columns: minmax(0, 1fr); }
  .d-contact { max-width: 520px; }
}

/* ================= MOBILE ================= */
@media (max-width: 1079px) {
  .d { display: none; }
  .m { display: block; }
  .pre-word { font-size: 34px; }
  .pre-curve { height: 60px; }
}

.m-hero { position: relative; padding: 70px 12px 0; }
.m-nav {
  position: absolute; left: 18px; right: 18px; top: 16px; z-index: 6;
  display: flex; justify-content: space-between; align-items: center;
}
.m-nav .brand { font-size: 15px; }
.m-box {
  position: relative; border-radius: 28px; padding: 34px 22px 0;
  background: linear-gradient(180deg, #EDECE9 0%, #DCDBD7 100%);
}
.m-h1 { font: 500 42px/0.98 var(--grotesk); letter-spacing: -.035em; }
.m-lede { font: 400 15px/1.5 var(--sans); color: var(--body); margin-top: 14px; }
.m-stage { position: relative; height: 400px; margin: 48px -22px 0; }
.m-portrait { position: absolute; left: 30px; bottom: 0; height: 350px; border-bottom-right-radius: 28px; }
.m-glass {
  position: absolute; left: 14px; right: 14px; bottom: 14px;
  border-radius: 20px; padding: 18px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), 0 16px 40px rgba(14, 17, 20, .25);
}
.m-glass .stats { gap: 12px; }
.m-glass .stat { gap: 4px; }
.m-glass .stat-n { font-size: 26px; }
.m-glass .stat-l { font-size: 11.5px; }

.m-marquee { overflow: hidden; padding: 36px 0 20px; pointer-events: none; }
.m-mq {
  display: flex; width: max-content; white-space: nowrap;
  font: 500 84px/1 var(--grotesk); letter-spacing: -.04em;
  animation: marquee 26s linear infinite;
}
.m-mq span { padding-right: 30px; }
.m-mq .ghost { color: #C9C8C4; }
@keyframes marquee { to { transform: translateX(-50%); } }

.m-list { padding: 10px 18px 30px; }
.m-row { border-top: 1px solid var(--rule); padding: 18px 0; cursor: pointer; }
.m-row-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.m-row-org { font: 500 28px var(--grotesk); letter-spacing: -.03em; }
.m-row-yr { font: 400 11px var(--mono); color: var(--meta); text-align: right; }
.m-row-body { margin-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.m-row-body[hidden] { display: none; }
.m-row-title { font: 500 13px var(--sans); }
.m-row-line { font: 400 13px/1.5 var(--sans); color: var(--body); }
.m-row-profile { font: 400 13px/1.5 var(--sans); color: var(--meta); }
.m-site {
  margin-top: 6px; display: flex; align-items: center; justify-content: space-between;
  padding: 12px 12px 12px 18px; border-radius: 16px;
  text-decoration: none; color: var(--ink);
  background: rgba(255, 255, 255, .55);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border: 1px solid #fff;
  box-shadow: inset 0 1px 0 #fff, 0 10px 24px rgba(14, 17, 20, .08);
}
.m-site-text { display: flex; flex-direction: column; gap: 2px; }
.m-site-k { font: 500 9px var(--mono); letter-spacing: .14em; color: var(--meta); }
.m-site-name { font: 500 15px var(--grotesk); }
.m-site .arrow-tile { background: var(--ink); font: inherit; }

.m-cta-wrap { padding: 10px 12px 12px; }
.m-cta {
  border-radius: 28px; padding: 48px 22px 28px;
  background: linear-gradient(180deg, #EDECE9 0%, #E3E2DE 100%);
}
.m-cta-h { font: 500 60px/0.9 var(--grotesk); letter-spacing: -.045em; margin-top: 14px; }
.m-pills { display: flex; flex-direction: column; gap: 12px; margin-top: 36px; }
.m-pill {
  font: 400 13px var(--sans); padding: 14px; border-radius: 999px;
  background: rgba(255, 255, 255, .55); border: 1px solid #fff;
  text-align: center; text-decoration: none; color: var(--ink);
}

@media (prefers-reduced-motion: reduce) {
  .m-mq { animation: none; }
  .d-row, .d-row-expand, .d-row-body, .d-site, .d-contact-row { transition: none; }
}
