@font-face {
  font-family: 'Serif';
  src: url('../../assets/fonts/Serif.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* Global Reset */
*,
*::before,
*::after {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
  font-size: clamp(0.875rem, 0.5rem + 0.8vw, 1.25rem);
}

body {
  min-height: 100vh;
  line-height: 1.5;
}

h1, h2, h3, h4 {
  text-wrap: balance;
  font-weight: normal;
  font-style: normal;
}

a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor;
}

img,
picture {
  max-width: 100%;
  display: block;
}

ul[role='list'],
ol[role='list'] {
  list-style: none;
}

input, button, textarea, select {
  font-family: inherit;
  font-size: inherit;
}

textarea:not([rows]) {
  min-height: 10em;
}

:target {
  scroll-margin-block: 5ex;
}

/* CSS Variables */
:root {
  /* --color-highlight: rgb(221, 79, 197); */
  --color-highlight: #ff00ff;
    /* --color-highlight: #dd4fc5; */
    /* --color-highlight: #ff0077; */
  --color-text: #000000;
  --color-background: #fefefe;
  --spacing: clamp(1rem, 0.5rem + 1.5vw, 3rem);
  --column-gap: clamp(0.75rem, 0.5rem + 1vw, 2rem);
  /* --line-multiplier: clamp(1.5, 1.4 + 0.2vw, 1.8);
  --baseline: calc(var(--line-multiplier) * 1em); */
  --vw-scalar: calc( (100vw - 320px) / (1920px - 320px) );
  /* --line-multiplier: clamp(1.5, calc(1.4 + (0.4 * var(--vw-scalar))), 1.8); */
  --line-multiplier: clamp(1.2, calc(1.1 + (0.3 * var(--vw-scalar))), 1.45);
  --baseline: calc(var(--line-multiplier) * 1em);
}

/* Body & Layout */
html, body {
  height: 100%;
  overflow: hidden;
  background-color: #fefefe;
}

body {
  font-family: 'Serif', 'Times', 'Times New Roman', serif;
  color: #000000;
  background-color: var(--color-background);
  line-height: var(--line-multiplier);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: clamp(1.5rem, 1rem + 1.5vw, 3rem) clamp(1.5rem, 1rem + 1.5vw, 3rem) 0;
}

/* Splash Screen */
.splash {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #ff00ff;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  cursor: pointer;
  transition: opacity 0.5s ease, background-color 0.5s ease;
}

.splash.fade-out {
  opacity: 0;
  pointer-events: none;
  background-color: #fefefe;
}

.splash img {
  display: block;
  margin: 0 auto;
  width: 80%;
  height: auto;
  min-height: 150px; /* ensure at least 150px tall */
  max-height: 66.666vh; /* don't exceed two-thirds of viewport height */
  max-width: 100%;
  object-fit: contain;
  box-sizing: border-box;
}

/* From 300px and up, size the splash image to two-thirds of the viewport width */
@media (min-width: 300px) {
  .splash img {
    width: 66.666vw;
    max-width: none;
    height: auto;
  }
}

/* Three Column Layout */
.three-column-layout {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: var(--column-gap);
  height: 100%;
  width: 100%;
  max-width: 100%;
  max-height: 100vh;
}

.column {
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 0 calc(var(--spacing) * 0.5);
  scrollbar-width: none;
  -ms-overflow-style: none;
  display: flow-root;
}

.column::-webkit-scrollbar {
  display: none;
}

/* Typography - Baseline Grid System */
h1, h2, h3, h4, p, figcaption, a, button, li {
  font-size: 1em;
  line-height: var(--line-multiplier);
}

/* Reset all headings and paragraphs first */
h1, h2, h3, h4 {
  color: var(--color-highlight);
  font-weight: normal;
  font-style: normal;
}

h4 {
  color: var(--color-text);
  font-weight: normal;
  font-style: normal;
}

p {
  color: var(--color-text);
}

/* h1: 2 baselines after (one empty line) */
h1 {
  margin-block-start: 0;
  margin-block-end: calc(var(--baseline) * 2);
  margin-inline-start: 0;
  margin-inline-end: 0;
}

/* h2: 2 baselines after (one empty line) */
h2 {
  margin-block-start: 0;
  margin-block-end: calc(var(--baseline) * 1);
  /* margin-block-end: calc(var(--baseline) * 2); */
  margin-inline-start: 0;
  margin-inline-end: 0;
}

/* h3: 1 baseline after (no empty line, like <br>) */
h3 {
  margin-block-start: 0;
  margin-block-end: 0;
  /* margin-block-end: var(--baseline); */
  margin-inline-start: 0;
  margin-inline-end: 0;
}

/* h4: 1 baseline after (no empty line, like <br>) */
h4 {
  margin-block-start: 0;
  margin-block-end: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
}

/* p: 1 baseline after */
p {
  margin-block-start: 0;
  margin-block-end: var(--baseline);
  margin-inline-start: 0;
  margin-inline-end: 0;
  line-height: var(--line-multiplier);
}

/* Adjustments for Firefox */
@-moz-document url-prefix() {
  :root {
    --line-multiplier: clamp(1.25, calc(1.15 + (0.3 * var(--vw-scalar))), 1.5); /* Slightly increased */
  }
  h2 {
    margin-block-end: calc(var(--baseline) * 2);
  }
  h3 {
    margin-block-end: calc(var(--baseline) * 1);
  }
  p {
    margin-block-end: calc(var(--baseline) * 2);
  }
}


/* Figure */
figure {
  margin: calc(var(--baseline) * 2) 0;
}

figcaption {
  color: #666;
  margin-top: var(--baseline);
}

/* Highlight */
.highlight {
  color: var(--color-highlight);
}

/* Links */
a {
  color: inherit;
  text-decoration: none;
}

/* Tab indent */
.tab {
  padding-left: 2em;
}

/* list */
.list {
  list-style: none;
  padding-left: 1em;
  margin: 0 0 var(--baseline) 0;
  line-height: var(--line-multiplier);
}

/* Bullet list
.bullet-list {
  list-style: none;
  padding-left: 1em;
  margin: 0 0 var(--baseline) 0;
} */

.list li {
  position: relative;
  padding-left: 1em;
  margin: 0;
  line-height: var(--line-multiplier);
}

.bullet-list li::before {
  content: "•";
  position: absolute;
  left: 0;
}

/* Email Button */
.email-button {
  display: block;
  width: 100%;
  color: var(--color-highlight);
  border: 2px solid var(--color-highlight);
  padding: 0.75em 1.8em;
  margin: var(--baseline) 0;
  cursor: pointer;
  background: transparent;
  transition: background 0.2s, color 0.2s;
  text-align: center;
  box-sizing: border-box;
}

.email-button:hover {
  background: var(--color-highlight);
  color: #ffffff;
}

/* Logo Section */
.logo-section {
  display: flex;
  align-items: center;
  /* gap: 1em; */
  margin-bottom: var(--baseline);
}

.logo-section img {
  width: clamp(120px, 15vw, 180px);
  height: clamp(120px, 15vw, 180px);
  min-width: 120px;
  min-height: 120px;
  flex-shrink: 0;
  object-fit: contain;
  margin-left: calc(28% - clamp(50px, 7.5vw, 80px));
}

.logo-section span {
  color: #000000;
  flex-shrink: 1;
}

/* Mobile */
@media (max-width: 768px) {
  html {
    font-size: 16px;
  }
  
  html, body {
    height: auto;
    overflow: visible;
  }
  
  body {
    padding: 1.5rem;
    align-items: flex-start;
  }
  
  :root {
    --spacing: 1.5rem;
    --column-gap: 0;
    --line-multiplier: 1.3;
    --baseline: 1em;
  }
  
  .three-column-layout {
    grid-template-columns: 1fr;
    height: auto;
    gap: 0;
    max-height: none;
  }
  
  .column {
    height: auto;
    overflow-y: visible;
    overflow-x: visible;
    border-bottom: 1px solid #191919;
    padding: 2rem 0 1rem;
  }

  .column:last-child {
    border-bottom: 0px;
  }

  
  .logo-section img {
    width: 140px;
    height: 140px;
    min-width: 80px;
    min-height: 80px;
    /* margin-left: 0; */
  }
}

@media (prefers-reduced-motion: reduce) {
  .splash {
    transition: none;
  }
}