@font-face {
  font-family: "Fraunces Soft";
  src: url("./assets/fonts/fraunces-soft-500.ttf") format("truetype");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "Fraunces Soft";
  src: url("./assets/fonts/fraunces-soft-italic-600.ttf") format("truetype");
  font-style: italic;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "Nunito";
  src: url("./assets/fonts/nunito-400.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Nunito";
  src: url("./assets/fonts/nunito-700.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

/* Warm paper and a single coral-pink accent. */
body.home-page {
  --paper: #fbf6ef;
  --paper-deep: #f5e7df;
  --ink: #493d39;
  --muted: #786e67;
  --quiet: #846c64;
  --olive: #ba6057;
  --line: rgba(139, 97, 85, 0.14);
  --line-strong: rgba(175, 108, 96, 0.33);
  --coral: #cc7167;
  font-family: "Nunito", "PingFang SC", "Hiragino Sans GB", sans-serif;
}

.home-page .profile-name {
  position: relative;
  isolation: isolate;
  width: fit-content;
  max-width: 100%;
  color: var(--coral);
  font-family: "Fraunces Soft", Georgia, serif;
  font-style: italic;
  font-weight: 600;
  letter-spacing: -0.065em;
  line-height: 0.9;
  white-space: nowrap;
}

.name-letters {
  position: relative;
  z-index: 1;
  display: inline-block;
  pointer-events: none;
}

.name-letters > span {
  display: inline-block;
  color: inherit;
}

.name-flow-ready .name-letters { opacity: 0; }
.home-page .profile-name.name-flow-ready { cursor: none; }

.name-letters > .name-baseline {
  width: 0;
  height: 0;
  font-size: 0;
  line-height: 0;
  vertical-align: baseline;
}

.profile-name .name-flow {
  position: absolute;
  z-index: 2;
  left: calc(-1 * var(--flow-padding));
  top: calc(-1 * var(--flow-padding));
  width: calc(100% + var(--flow-padding) * 2);
  height: calc(100% + var(--flow-padding) * 2);
  pointer-events: none;
}

.home-page .profile-kicker,
.home-page .section-heading h2,
.home-page .learning-label,
.home-page .article-meta,
.home-page .filter-button,
.home-page .project-summary,
.home-page .project-number,
.home-page .project-year,
.home-page .language-toggle,
.home-page .calendar-grid > * {
  font-family: "Nunito", "PingFang SC", sans-serif;
  letter-spacing: 0.025em;
  text-transform: none;
}

.home-page .profile-kicker {
  color: var(--coral);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.home-page .profile-intro {
  max-width: 22rem;
  margin: 1.6rem 0 0;
  color: var(--coral);
  font-size: clamp(1rem, 1.35vw, 1.12rem);
  line-height: 1.8;
}
.home-page .profile-greeting {
  margin: 1rem 0 0;
  color: var(--coral);
  font-size: clamp(1rem, 1.35vw, 1.12rem);
  line-height: 1.8;
}
.home-page .section-heading h2 { font-size: 0.95rem; font-weight: 700; }
.home-page .section-number { color: #976257; font-family: inherit; }
.home-page .learning-label { font-size: 0.76rem; font-weight: 700; color: #936258; }
.home-page .learning-subtitle,
.home-page .nav-phrase {
  font-family: "Fraunces Soft", Georgia, serif;
  font-style: italic;
  font-weight: 600;
}
.home-page .learning-subtitle { color: #986155; font-size: 1.35rem; }
.home-page .site-nav a { font-size: 0.95rem; }
.home-page .site-nav a[aria-current="location"],
.home-page .site-nav a:hover { color: #aa574e; }
.home-page .availability-dot { background: var(--coral); }
.home-page .availability { color: #846c64; }
.home-page .language-toggle { border-color: #ddbeb6; color: #936258; }
.home-page .language-toggle:hover { background: #f6e5df; border-color: #cb988b; }
.home-page .calendar-grid .calendar-day { border-radius: 7px; background: #f4eae5; }
.home-page .calendar-grid .today { border-color: #cb8b80; }
.home-page .calendar-grid .has-notes { background: var(--coral); color: var(--paper); border-color: var(--coral); font-weight: 700; }
.home-page .calendar-grid .has-notes:hover { background: #b65f55; }
.home-page .calendar-grid .has-notes.today { outline: 2px solid #a75248; outline-offset: 2px; }
.home-page .calendar-grid .has-notes::after { background: var(--paper); }
.home-page #learning-note { background: var(--paper); color: var(--ink); border-radius: 12px; }
.home-page #learning-note-body { overflow-wrap: anywhere; }
.home-page #learning-note-body h3 { line-height: 1.5; }
.home-page #learning-note-body p { white-space: pre-wrap; line-height: 1.9; }
.home-page .calendar-grid button.has-notes::after { background: var(--paper); }
.home-page .recent-note strong { font-family: "Fraunces Soft", Georgia, serif; }
.home-page .article-copy h3 { font-family: "Fraunces Soft", Georgia, serif; font-weight: 500; letter-spacing: -0.025em; }

@media (prefers-reduced-motion: reduce) {
  .name-flow-ready .name-letters { opacity: 1; }
  .home-page .profile-name.name-flow-ready { cursor: auto; }
  .name-flow { display: none; }
}

@media (hover: none) and (pointer: coarse) {
  .name-flow-ready .name-letters { opacity: 1; }
  .home-page .profile-name.name-flow-ready { cursor: auto; }
  .name-flow { display: none; }
}

.home-page .calendar-legend { margin: .5rem 0 0; color: var(--muted); font-size: .7rem; line-height: 1.6; }
