@font-face {
  font-family: "PP Mondwest";
  src: url("/assets/fonts/ppm-mondwest-regular.otf") format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}

@font-face {
  font-family: "Suisse Intl";
  src: url("/assets/fonts/suisse-intl-light.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 300;
}

@font-face {
  font-family: "Suisse Intl";
  src: url("/assets/fonts/suisse-intl-medium.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 500;
}

:root {
  color-scheme: light;
  --canvas: #f2f2ed;
  --ink: #24251f;
  --muted: #62665e;
  --quiet: #676b62;
  --hairline: #ced1c8;
  --accent: #35634b;
  --focus: #285b41;
  --ease-smooth-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-soft-spring: cubic-bezier(0.34, 1.45, 0.64, 1);
  --stack-open-dur: 320ms;
  --stack-close-dur: 160ms;
  --stack-stagger: 30ms;
  --stagger-dur: 540ms;
  --stagger-distance: 8px;
  --stagger-step: 70ms;
  --stagger-blur: 2px;
  --section-reveal-dur: 560ms;
  --section-reveal-start: 760ms;
  --section-reveal-step: 220ms;
  --section-reveal-distance: 10px;
  --section-reveal-blur: 2.5px;
  --tt-in-dur: 150ms;
  --tt-out-dur: 50ms;
  --tt-delay: 80ms;
  --row-hover: rgb(36 37 31 / 5.5%);
  --surface-raised: #fafaf6;
  --surface-preview: #e8e8e2;
  --surface-inverse: #080908;
  --soft-border: rgb(36 37 31 / 10%);
  --soft-shadow: rgb(36 37 31 / 14%);
  --ascii-ink: #18392a;
  --row-hover-radius: 7px;
  --font-display: "PP Mondwest", Georgia, serif;
  --font-body: "Suisse Intl", Arial, "Helvetica Neue", sans-serif;
  --text-caption: 0.75rem;
  --text-secondary: 0.875rem;
  --text-body: 1rem;
  --text-section: 1.75rem;
  font-family: var(--font-body);
  font-weight: 300;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --canvas: #111419;
  --ink: #e9eae5;
  --muted: #abb0ad;
  --quiet: #959c98;
  --hairline: #394047;
  --accent: #91baa3;
  --focus: #a8cdb7;
  --row-hover: rgb(222 229 224 / 6%);
  --surface-raised: #1a1e23;
  --surface-preview: #1c2126;
  --surface-inverse: #080a0d;
  --soft-border: rgb(232 236 232 / 11%);
  --soft-shadow: rgb(0 0 0 / 38%);
  --ascii-ink: #98b6a5;
}

* {
  box-sizing: border-box;
}

::selection {
  background: rgb(53 99 75 / 18%);
}

:root[data-theme="dark"] ::selection {
  background: rgb(145 186 163 / 28%);
}

html {
  min-height: 100%;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

html.lenis,
html.lenis body {
  height: auto;
}

html.lenis {
  scroll-behavior: auto;
}

.lenis:not(.lenis-autoToggle).lenis-stopped {
  overflow: clip;
}

.lenis [data-lenis-prevent],
.lenis [data-lenis-prevent-wheel],
.lenis [data-lenis-prevent-touch],
.lenis [data-lenis-prevent-vertical],
.lenis [data-lenis-prevent-horizontal] {
  overscroll-behavior: contain;
}

.lenis.lenis-smooth iframe {
  pointer-events: none;
}

body {
  min-height: 100%;
  margin: 0;
  padding:
    env(safe-area-inset-top, 0px)
    env(safe-area-inset-right, 0px)
    env(safe-area-inset-bottom, 0px)
    env(safe-area-inset-left, 0px);
  background: var(--canvas);
  color: var(--ink);
  font-weight: 300;
  transition:
    background-color 520ms var(--ease-smooth-out),
    color 420ms var(--ease-smooth-out);
}

:root.is-theme-transitioning .role,
:root.is-theme-transitioning .lede,
:root.is-theme-transitioning .contact-line a,
:root.is-theme-transitioning .contact-linkedin .linkedin-glyph,
:root.is-theme-transitioning .profile-section h2,
:root.is-theme-transitioning .experience-list span,
:root.is-theme-transitioning .experience-list time,
:root.is-theme-transitioning .project-favicon,
:root.is-theme-transitioning .project-description,
:root.is-theme-transitioning .project-detail,
:root.is-theme-transitioning .interest-list a,
:root.is-theme-transitioning .interest-trigger,
:root.is-theme-transitioning .site-footer,
:root.is-theme-transitioning .footer-icon-link,
:root.is-theme-transitioning .promethee-link img {
  transition-duration: 520ms;
  transition-timing-function: var(--ease-smooth-out);
}

button,
a,
.interest-trigger,
.t-tt-trigger {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

a {
  color: inherit;
}

button {
  color: inherit;
  font: inherit;
}

:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 4px;
}

[hidden] {
  display: none !important;
}

.mobile-only {
  display: none;
}

.skip-link {
  position: fixed;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 2;
  padding: 0.65rem 0.8rem;
  background: var(--ink);
  color: var(--canvas);
  font-size: var(--text-secondary);
  transform: translateY(-180%);
}

.skip-link:focus {
  transform: translateY(0);
}

.profile {
  position: relative;
  isolation: isolate;
  width: min(calc(100% - 2.5rem), 38rem);
  min-height: 100vh;
  min-height: 100dvh;
  margin-inline: auto;
  padding: 4.25rem 0 2rem;
}

.profile > :not(.row-hover-indicator) {
  position: relative;
  z-index: 1;
}

.row-hover-indicator {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  width: var(--row-hover-width, 0);
  height: var(--row-hover-height, 0);
  border-radius: var(--row-hover-radius);
  background: var(--row-hover);
  opacity: 0;
  pointer-events: none;
  transform: translate3d(var(--row-hover-x, 0), var(--row-hover-y, 0), 0);
  transition:
    width 240ms var(--ease-smooth-out),
    height 240ms var(--ease-smooth-out),
    opacity 120ms ease-out,
    transform 280ms var(--ease-smooth-out);
  will-change: width, height, transform;
}

.row-hover-indicator.is-visible {
  opacity: 1;
}

.hero {
  position: relative;
  isolation: isolate;
  padding-bottom: 2.25rem;
}

.theme-toggle {
  position: absolute;
  top: -0.2rem;
  right: -0.35rem;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: 0;
  border-radius: 0.5rem;
  background: transparent;
  color: var(--quiet);
  cursor: pointer;
  transition: color 320ms var(--ease-smooth-out);
}

.theme-toggle::before {
  content: "";
  position: absolute;
  inset: -4px;
}

.theme-toggle:hover {
  color: var(--ink);
}

.theme-toggle:active .theme-icon {
  transform: scale(0.9);
}

.theme-icon {
  grid-area: 1 / 1;
  display: block;
  transition:
    opacity 280ms var(--ease-smooth-out),
    transform 280ms var(--ease-smooth-out),
    color 320ms var(--ease-smooth-out);
}

.theme-icon--sun {
  opacity: 1;
  transform: scale(1);
}

.theme-icon--moon {
  opacity: 0;
  transform: scale(0.84);
}

:root[data-theme="dark"] .theme-icon--sun {
  opacity: 0;
  transform: scale(0.84);
}

:root[data-theme="dark"] .theme-icon--moon {
  opacity: 1;
  transform: scale(1);
}

.hero-identity {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}

.bust-decoration {
  position: relative;
  flex: 0 0 auto;
  width: 7.2rem;
  height: 6.4rem;
  margin-inline-end: -1.8rem;
  margin-bottom: -1.4rem;
  overflow: hidden;
  opacity: 1;
  pointer-events: none;
  transform: translate(-1.8rem, -0.18rem);
}

.identity-copy {
  display: grid;
  gap: 0.24rem;
  margin-top: 0.45rem;
}

.bust-fallback,
.bust-canvas {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}

.bust-fallback {
  filter: grayscale(1) contrast(1.15);
  mix-blend-mode: multiply;
  object-fit: contain;
  object-position: top center;
  opacity: 0;
  transition: opacity 160ms var(--ease-smooth-out);
}

.bust-canvas {
  opacity: 0;
  transition: opacity 160ms var(--ease-smooth-out);
}

.is-ascii-ready .bust-canvas {
  opacity: 1;
}

.is-ascii-ready .bust-fallback {
  opacity: 0;
}

.is-ascii-fallback .bust-fallback {
  opacity: 0.2;
}

@media (prefers-reduced-motion: no-preference) {
  .bust-decoration.is-ascii-ready {
    transform-origin: 50% 78%;
  }
}

.hero h1 {
  font-family: var(--font-display);
  font-weight: 400;
}

.hero h1 {
  margin: 0;
  font-size: clamp(1.8rem, calc(1.65rem + 0.6vw), 2rem);
  line-height: 1;
  letter-spacing: -0.035em;
}

.hero h1 span {
  color: var(--accent);
}

.role {
  margin: 0;
  margin-inline-start: 0.3125rem;
  color: var(--quiet);
  font-size: var(--text-secondary);
  line-height: 1;
}

.lede {
  display: grid;
  margin: 2.5rem 0 0;
  gap: 0.8rem;
  font-size: var(--text-body);
  line-height: 1.52;
  letter-spacing: normal;
}

.lede p {
  margin: 0;
}

.lede > p:not(.contact-line) {
  text-align: justify;
  text-align-last: left;
  text-justify: inter-word;
  hyphens: none;
}

.lede .contact-line {
  margin-top: 0.15rem;
  color: var(--ink);
  font-size: inherit;
  letter-spacing: inherit;
}

.contact-line a {
  display: inline-flex;
  margin-inline: 0.12rem;
  padding: 0;
  border: 0;
  color: var(--ink);
  line-height: 1;
  text-decoration: none;
  vertical-align: -0.14rem;
}

.contact-line svg {
  display: block;
  width: 0.95rem;
  height: 0.95rem;
}

.contact-linkedin .linkedin-glyph {
  fill: var(--canvas);
}

.t-stagger-line {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
  transition:
    opacity var(--stagger-dur) var(--ease-smooth-out),
    transform var(--stagger-dur) var(--ease-smooth-out),
    filter var(--stagger-dur) var(--ease-smooth-out);
}

.t-stagger-line--2 {
  transition-delay: var(--stagger-step);
}

.t-stagger-line--3 {
  transition-delay: calc(var(--stagger-step) * 2);
}

.t-stagger-line--4 {
  transition-delay: calc(var(--stagger-step) * 3);
}

@starting-style {
  .t-stagger.is-shown .t-stagger-line {
    opacity: 0;
    filter: blur(var(--stagger-blur));
    transform: translateY(var(--stagger-distance));
  }
}

.profile-section {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.9rem;
  padding: 1.75rem 0;
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
  transition:
    opacity var(--section-reveal-dur) var(--ease-smooth-out),
    transform var(--section-reveal-dur) var(--ease-smooth-out),
    filter var(--section-reveal-dur) var(--ease-smooth-out);
}

.profile-section:nth-of-type(1) {
  transition-delay: var(--section-reveal-start);
}

.profile-section:nth-of-type(2) {
  transition-delay: calc(var(--section-reveal-start) + var(--section-reveal-step));
}

.profile-section:nth-of-type(3) {
  transition-delay: calc(var(--section-reveal-start) + var(--section-reveal-step) * 2);
}

@starting-style {
  .profile-section {
    opacity: 0;
    filter: blur(var(--section-reveal-blur));
    transform: translateY(var(--section-reveal-distance));
  }
}

.profile-section h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: var(--text-section);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.profile-section--interests {
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1.35rem;
  align-items: baseline;
}

.experience-list,
.interest-list {
  padding: 0;
  margin: 0;
  list-style: none;
}

.experience-list {
  display: grid;
  gap: 1.05rem;
}

.experience-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.85rem;
  align-items: baseline;
}

.experience-list p {
  min-width: 0;
  margin: 0;
  font-size: var(--text-body);
  line-height: 1.35;
}

.experience-list strong {
  font-weight: 300;
}

.experience-list p > span {
  margin-left: 0.3rem;
  color: var(--muted);
}

.experience-list time {
  color: var(--quiet);
  font-family: var(--font-body);
  font-size: var(--text-caption);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  white-space: nowrap;
}

.project-list {
  display: grid;
  gap: 1rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.project-list li {
  position: relative;
}

.project-list a {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: start;
  color: inherit;
  text-decoration: none;
}

.project-favicon {
  display: block;
  width: 2rem;
  height: 2rem;
  margin-top: 0.08rem;
  filter: grayscale(1) brightness(0);
  object-fit: contain;
  opacity: 0.78;
  transition: opacity 140ms ease-out;
}

.project-favicon--tonal {
  filter: grayscale(1) contrast(1.65);
  opacity: 0.88;
}

.project-favicon--native-black {
  filter: none;
  opacity: 0.82;
}

.project-favicon--edth {
  width: 2.4rem;
  object-fit: cover;
  object-position: left center;
  transform: translateX(-0.22rem);
}

.project-favicon--compact {
  transform: scale(0.88);
}

.project-favicon--mintmerchs {
  filter: none;
  transform: scale(1.3);
}

.project-copy {
  display: grid;
  min-width: 0;
  gap: 0.1rem;
}

.project-name {
  font-size: var(--text-body);
  font-weight: 500;
  line-height: 1.25;
  transition: color 140ms ease-out;
}

.project-description {
  color: var(--muted);
  font-size: var(--text-caption);
  line-height: 1.4;
  text-wrap: pretty;
}

.project-detail {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  align-self: center;
  margin-block: -0.32rem;
  padding: 0.4rem 0 0.4rem 0.45rem;
  color: var(--quiet);
  font-family: var(--font-body);
  font-size: var(--text-caption);
  line-height: 1.25;
  text-decoration: underline;
  text-decoration-color: var(--hairline);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22rem;
  white-space: nowrap;
  transition:
    color 140ms ease-out,
    text-decoration-color 140ms ease-out;
}

.project-detail:hover {
  color: var(--accent);
  text-decoration-color: currentColor;
}

.project-preview {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 8;
  width: clamp(14rem, 42vw, 18rem);
  aspect-ratio: 8 / 5;
  margin: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate3d(var(--peek-x, -100vw), var(--peek-y, -100vh), 0);
  will-change: transform;
}

.project-preview.is-visible,
.project-preview.is-exiting {
  visibility: visible;
}

.project-preview.is-visible {
  pointer-events: auto;
  cursor: pointer;
}

.project-preview-surface {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 5px;
  background: var(--surface-preview);
  box-shadow: 0 8px 20px var(--soft-shadow);
  opacity: 0;
  transform: perspective(800px) rotateY(-72deg);
  transform-origin: 50% 100%;
  transition: none;
  contain: paint;
}

.project-preview.is-visible .project-preview-surface {
  opacity: 1;
  transform: perspective(800px) rotateY(0deg);
  transition:
    opacity 220ms ease-out,
    transform 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.project-preview.is-exiting .project-preview-surface {
  opacity: 0;
  transform: perspective(800px) rotateY(70deg);
  transition:
    opacity 160ms ease-out,
    transform 220ms ease-out;
}

.project-preview-image,
.project-preview-lens img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.project-preview-image {
  transition: transform 220ms var(--ease-smooth-out);
}

.project-preview-lens {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(
    circle 3.15rem at var(--lens-x, 50%) var(--lens-y, 50%),
    #000 0,
    #000 3.02rem,
    transparent 3.18rem
  );
  mask-image: radial-gradient(
    circle 3.15rem at var(--lens-x, 50%) var(--lens-y, 50%),
    #000 0,
    #000 3.02rem,
    transparent 3.18rem
  );
  transition: opacity 140ms ease-out;
}

.project-preview-lens img {
  transform: scale(1.75);
  transform-origin: var(--lens-x, 50%) var(--lens-y, 50%);
}

.project-preview-surface:hover .project-preview-image {
  transform: scale(1.025);
}

.project-preview-surface:hover .project-preview-lens {
  opacity: 1;
}

.project-list a:hover .project-name,
.project-list a:focus-visible .project-name {
  color: var(--accent);
}

.project-list a:hover .project-favicon,
.project-list a:focus-visible .project-favicon {
  opacity: 1;
}

.t-tt-wrap {
  position: relative;
  display: inline-block;
}

.term-trigger {
  color: inherit;
  cursor: help;
  text-decoration: underline dotted;
  text-decoration-color: var(--quiet);
  text-underline-offset: 0.2rem;
}

.t-tt {
  position: absolute;
  bottom: calc(100% + 0.55rem);
  left: 50%;
  z-index: 4;
  width: max-content;
  max-width: min(15rem, calc(100vw - 2rem));
  padding: 0.48rem 0.66rem;
  border: 1px solid var(--soft-border);
  border-radius: 3px;
  background: var(--surface-raised);
  box-shadow: 0 8px 24px var(--soft-shadow);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 300;
  line-height: 1.35;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 3px) scale(0.98);
  transform-origin: 50% 100%;
  transition:
    opacity var(--tt-out-dur) ease-out,
    transform var(--tt-out-dur) ease-out;
}

.t-tt--start {
  right: auto;
  left: 0;
  transform: translate(0, 3px) scale(0.98);
  transform-origin: 0 100%;
}

.t-tt-trigger:focus-visible + .t-tt {
  opacity: 1;
  transform: translate(-50%, 0) scale(1);
  transition-duration: var(--tt-in-dur);
  transition-delay: var(--tt-delay);
}

.t-tt-trigger:focus-visible + .t-tt--start {
  transform: translate(0, 0) scale(1);
}

.interest-list {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.65rem 1rem;
}

.interest-list a,
.interest-trigger {
  color: var(--muted);
  font-size: var(--text-body);
  text-decoration: underline;
  text-decoration-color: var(--hairline);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.3rem;
}

.interest-list a:hover,
.interest-list a:focus-visible,
.interest-trigger:hover,
.interest-trigger:focus-visible {
  color: var(--accent);
  text-decoration-color: currentColor;
}

.interest-preview {
  position: relative;
}

.interest-trigger {
  display: inline-block;
  cursor: default;
}

.interest-list .interest-card-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.interest-cards {
  position: absolute;
  bottom: calc(100% + 0.65rem);
  left: 50%;
  z-index: 2;
  width: 11.5rem;
  height: 8.5rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(-50%) translateY(8px) scale(0.97);
  transform-origin: 50% 100%;
  transition:
    opacity var(--stack-close-dur) ease-out,
    transform var(--stack-close-dur) var(--ease-smooth-out),
    visibility 0s linear var(--stack-close-dur);
}

.interest-cards::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1rem;
  left: 0;
  height: 1.25rem;
}

.interest-preview:focus-within .interest-cards {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0) scale(1);
  transition:
    opacity 140ms ease-out,
    transform var(--stack-open-dur) var(--ease-soft-spring),
    visibility 0s;
}

.interest-card-slot {
  position: absolute;
  bottom: 0;
  left: 50%;
  z-index: 1;
  opacity: 0;
  transform-origin: 50% 100%;
  transform: translateX(-50%) translateY(10px) rotate(var(--stack-closed-rotate, 0deg)) scale(0.96);
  transition:
    opacity 90ms ease-out,
    transform var(--stack-close-dur) var(--ease-smooth-out);
}

.interest-card-slot:nth-child(1) {
  --stack-x: -2.9rem;
  --stack-y: 0px;
  --stack-open-rotate: -8deg;
  --stack-closed-rotate: -4deg;
  --stack-delay: 0ms;
}

.interest-card-slot:nth-child(2) {
  z-index: 3;
  --stack-x: 0rem;
  --stack-y: -5px;
  --stack-open-rotate: 0deg;
  --stack-closed-rotate: 3deg;
  --stack-delay: var(--stack-stagger);
}

.interest-card-slot:nth-child(3) {
  z-index: 2;
  --stack-x: 2.9rem;
  --stack-y: 0px;
  --stack-open-rotate: 8deg;
  --stack-closed-rotate: 0deg;
  --stack-delay: calc(var(--stack-stagger) * 2);
}

.interest-preview:focus-within .interest-card-slot {
  opacity: 1;
  transform:
    translateX(calc(-50% + var(--stack-x)))
    translateY(var(--stack-y))
    rotate(var(--stack-open-rotate))
    scale(1);
  transition:
    opacity 120ms ease-out,
    transform var(--stack-open-dur) var(--ease-soft-spring);
  transition-delay: var(--stack-delay);
}

.interest-card {
  width: 4.85rem;
  height: 6.4rem;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--soft-border);
  border-radius: 2px;
  background: var(--surface-raised);
  box-shadow: 0 10px 24px var(--soft-shadow);
  transition: transform 160ms var(--ease-smooth-out);
}

.interest-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  user-select: none;
}

.interest-preview--esport .interest-cards,
.interest-preview--music .interest-cards {
  height: 5.25rem;
}

.interest-preview--esport .interest-card-slot:nth-child(1),
.interest-preview--music .interest-card-slot:nth-child(1) {
  --stack-x: -1.9rem;
  --stack-y: 0px;
  --stack-open-rotate: -5deg;
}

.interest-preview--esport .interest-card-slot:nth-child(2),
.interest-preview--music .interest-card-slot:nth-child(2) {
  --stack-x: 1.9rem;
  --stack-y: -2px;
  --stack-open-rotate: 5deg;
}

.interest-card--logo {
  display: grid;
  width: 5.15rem;
  height: 3.8rem;
  padding: 0.7rem;
  place-items: center;
}

.interest-card--logo img {
  object-fit: contain;
}

.interest-card--app {
  width: 4.25rem;
  height: 4.25rem;
}

.interest-card--soundcloud {
  padding: 0.8rem;
}

.interest-card--soundcloud img {
  object-fit: contain;
}

.interest-preview--esport .interest-card--logo {
  border-color: transparent;
  background: var(--surface-inverse);
}

:root[data-theme="dark"] .project-favicon,
:root[data-theme="dark"] .project-favicon--native-black {
  filter: grayscale(1) brightness(0) invert(1);
  opacity: 0.78;
}

:root[data-theme="dark"] .project-favicon--tonal {
  filter: grayscale(1) contrast(1.55) brightness(0.92);
  opacity: 0.9;
}

:root[data-theme="dark"] .project-favicon--mintmerchs {
  filter: grayscale(1) brightness(0) invert(1);
  opacity: 0.94;
}

:root[data-theme="dark"] .promethee-link img {
  filter: invert(1);
}

.interest-preview--esport .interest-card-slot:first-child img {
  transform: scale(1.18);
}

.interest-preview--music .interest-card--app {
  overflow: visible;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.interest-preview--music .interest-card-slot:first-child img {
  clip-path: inset(6% round 20%);
  transform: scale(1.08);
}

.interest-preview--music .interest-card--soundcloud {
  padding: 0.2rem;
}

@media (hover: hover) and (pointer: fine) {
  .t-tt-wrap:hover .t-tt {
    opacity: 1;
    transform: translate(-50%, 0) scale(1);
    transition-duration: var(--tt-in-dur);
    transition-delay: var(--tt-delay);
  }

  .t-tt-wrap:hover .t-tt--start {
    transform: translate(0, 0) scale(1);
  }

  .interest-preview:hover .interest-cards {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0) scale(1);
    transition:
      opacity 140ms ease-out,
      transform var(--stack-open-dur) var(--ease-soft-spring),
      visibility 0s;
  }

  .interest-preview:hover .interest-card-slot {
    opacity: 1;
    transform:
      translateX(calc(-50% + var(--stack-x)))
      translateY(var(--stack-y))
      rotate(var(--stack-open-rotate))
      scale(1);
    transition:
      opacity 120ms ease-out,
      transform var(--stack-open-dur) var(--ease-soft-spring);
    transition-delay: var(--stack-delay);
  }

  .interest-card:hover {
    transform: translateY(-3px);
  }

  .interest-card-link:hover .interest-card {
    transform: translateY(-3px);
  }
}

.site-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 1.15rem;
  color: var(--quiet);
  font-family: var(--font-body);
  font-size: var(--text-caption);
  font-variant-numeric: tabular-nums;
  font-weight: 300;
}

.site-footer time {
  font: inherit;
}

.footer-links {
  display: flex;
  align-items: center;
  gap: 0.15rem;
}

.footer-icon-link {
  position: relative;
  display: grid;
  width: 2rem;
  height: 2rem;
  color: var(--quiet);
  place-items: center;
  text-decoration: none;
  opacity: 0.72;
  transition:
    color 140ms ease-out,
    opacity 140ms ease-out;
}

.footer-icon-link:hover,
.footer-icon-link:focus-visible {
  color: var(--ink);
  opacity: 1;
}

.footer-icon-link svg,
.footer-icon-link img {
  display: block;
  width: 1.125rem;
  height: 1.125rem;
}

.promethee-link img {
  object-fit: contain;
}

@media (min-width: 44.0625rem) {
  .profile-section:nth-of-type(2) {
    padding-bottom: 2.75rem;
  }

  .profile-section--interests {
    align-items: center;
  }
}

@media (max-width: 44rem) {
  .lede > p:not(.contact-line) {
    text-align: left;
  }

  .bust-decoration {
    width: 6.25rem;
    height: 5.75rem;
    margin-inline-end: -1.25rem;
    margin-bottom: -1.25rem;
    opacity: 0.96;
    transform: translate(-1rem, -0.18rem);
  }

  .profile {
    width: min(calc(100% - 2.5rem), 38rem);
    padding-top: 2.75rem;
  }

  .hero {
    padding-bottom: 0;
  }

  .lede {
    margin-top: 2.15rem;
  }

  .profile-section {
    gap: 0.85rem;
    padding: 1.65rem 0;
  }

  .profile-section h2 {
    font-size: 1.5rem;
  }

  .profile-section:not(.profile-section--interests) {
    gap: 1.75rem;
    padding: 2.5rem 0 0;
  }

  .profile-section:not(.profile-section--interests) > h2 {
    text-align: center;
  }

  .profile-section--interests {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1rem;
    padding-top: 2rem;
  }

  .experience-list li {
    gap: 0.75rem;
  }

  .experience-list p > span {
    display: inline;
    margin: 0 0 0 0.3rem;
  }

  .desktop-only {
    display: none;
  }

  .mobile-only {
    display: inline;
  }

  .project-description {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .interest-cards {
    bottom: calc(100% + 0.5rem);
  }
}

@media (max-width: 35rem) {
  .project-preview {
    display: none;
  }
}

@media (hover: none) and (pointer: coarse) {
  .project-list a {
    min-height: 2.75rem;
    align-items: center;
  }

  .project-favicon {
    margin-top: 0;
  }

  .interest-trigger {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    margin-block: -0.72rem;
  }

  .footer-icon-link {
    width: 2.75rem;
    height: 2.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .interest-cards,
  .interest-card-slot,
  .interest-card,
  .row-hover-indicator,
  .project-favicon,
  .project-preview,
  .project-preview-surface,
  .project-preview-image,
  .project-preview-lens,
  .bust-fallback,
  .bust-canvas,
  .theme-toggle,
  .theme-icon,
  .t-stagger-line,
  .profile-section,
  .t-tt,
  body {
    transition: none !important;
  }

}
