/* Local font copies used by the otherwise unchanged production runtime. */
@font-face { font-family: Geist; src: url("/assets/fonts/geist-500.ttf") format("truetype"); font-weight: 500; font-display: swap; }
@font-face { font-family: Geist; src: url("/assets/fonts/geist-600.ttf") format("truetype"); font-weight: 600; font-display: swap; }
@font-face { font-family: Geist; src: url("/assets/fonts/geist-700.ttf") format("truetype"); font-weight: 700; font-display: swap; }
@font-face { font-family: Geist; src: url("/assets/fonts/geist-800.ttf") format("truetype"); font-weight: 800; font-display: swap; }
@font-face { font-family: "Geist Mono"; src: url("/assets/fonts/geist-mono-600.ttf") format("truetype"); font-weight: 600; font-display: swap; }

/* Keep Geist for Latin glyphs and use the operating system's native CJK face. */
:root {
  --font-sans: "Geist", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
  --font-family-base: var(--font-sans);
}
body {
  font-family: var(--font-sans) !important;
}
.hero__subtitle,
.fw-card,
.project-modal,
.footer__giant-head-text {
  font-family: var(--font-sans) !important;
}

.hero { isolation: isolate; }
.hero > .simplex-noise-background {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
}
.hero > :not(.simplex-noise-background) { z-index: 1; }

/* Personal MF mark supplied for the hero identity lockup. */
.hero__graphic_icon {
  background-image: url("/assets/mf-hero-logo.svg") !important;
}

/* Personal title mark supplied for every fixed-navigation state. */
.navigation__logo,
.navigation__logo--fixed,
.navigation__logo--scrolling,
.navigation__logo--dark,
.navigation__logo--on-top {
  width: 10.8958vw !important;
  background-image: url("/assets/navigation-title.svg") !important;
  background-position: left center !important;
  background-repeat: no-repeat !important;
  background-size: contain !important;
}
.navigation__logo.navigation__logo--dark,
.navigation__logo.navigation__logo--on-top {
  filter: brightness(0) invert(1);
}

/* Preserve the personal title mark when the original cursor hover class is active. */
.navigation__logo > a,
.navigation__logo a.custom_cursor__current-link {
  width: 100% !important;
  height: 100% !important;
  background-image: url("/assets/navigation-title.svg") !important;
  background-position: left center !important;
  background-repeat: no-repeat !important;
  background-size: contain !important;
}
.navigation__logo a.custom_cursor__current-link {
  background-color: #df0 !important;
}

@media (max-width: 1280px) {
  .navigation__logo,
  .navigation__logo--fixed,
  .navigation__logo--scrolling,
  .navigation__logo--dark,
  .navigation__logo--on-top {
    width: 16.34vw !important;
  }
}

@media (max-width: 768px) {
  .navigation__logo,
  .navigation__logo--fixed,
  .navigation__logo--scrolling,
  .navigation__logo--dark,
  .navigation__logo--on-top {
    width: 53.096vw !important;
  }
}

/* High-contrast hero UI requested for the monochrome noise background. */
body.hero-contrast-ui { --Content: rgba(255, 255, 255, .8); }
body.hero-contrast-ui .hero__title,
body.hero-contrast-ui .hero__title *,
body.hero-contrast-ui .hero__subtitle,
body.hero-contrast-ui .navigation__menu,
body.hero-contrast-ui .navigation__mousecoords {
  color: rgba(255, 255, 255, .8) !important;
}
body.hero-contrast-ui .navigation__logo {
  filter: brightness(0) invert(1);
  opacity: .8;
}
body.hero-contrast-ui .navigation__menubutton {
  color: #242424 !important;
  background-color: rgba(255, 255, 255, .8) !important;
}
body.hero-contrast-ui .hero__graphic_icon {
  filter: brightness(0) invert(1);
}
body.hero-contrast-ui .hero__spiral-crosses .cross-icon {
  filter: brightness(0) invert(1);
  opacity: .8 !important;
}
body.hero-contrast-ui .custom_cursor__crosshair {
  background-color: #fff !important;
  opacity: .8 !important;
}

/* The fixed navigation stays out of the hero and returns at featured work. */
body.hero-contrast-ui .navigation__background,
body.hero-contrast-ui .navigation__logo,
body.hero-contrast-ui .navigation__menu {
  opacity: 0 !important;
  pointer-events: none !important;
  visibility: hidden !important;
}

/* The requested footer copyright strip is intentionally omitted. */
.footer > .footer__bottom-bar {
  display: none !important;
}

/* The footer's original address and internal-navigation column is omitted. */
.footer__links {
  display: none !important;
}

.footer__resume-download {
  display: grid;
  width: 20px;
  height: 17.5px;
  padding: 0;
  place-items: center;
}
.footer__resume-download img {
  display: block;
  width: 14px;
  height: 17px;
}

/* Touch-device fallback for the menu's native custom-cursor feedback. */
.menu-action-toast {
  position: fixed;
  left: 50%;
  top: 50%;
  z-index: 10005;
  display: flex;
  width: min(62vw, 250px);
  min-height: 92px;
  padding: 18px 22px;
  box-sizing: border-box;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  color: #242424;
  background: #df0;
  font: 600 14px/1.2 "Geist Mono", monospace;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(0);
  transition: opacity .18s ease, transform .18s ease;
}
.menu-action-toast--visible {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
.menu-action-toast__arrow {
  font-size: 25px;
  line-height: .8;
}
