:root {
  --sidebar-width: 35%;
  --text: #9a9da2;
  --heading: #777777;
  --strong: #6f6f6f;
  --line: #eeeeee;
  --accent: #4a6969;
  --accent-soft: #eef4f2;
  --accent-border: #d4e2df;
  --paper: #ffffff;
  --sans: "Source Sans Pro", Helvetica, Arial, sans-serif;
}

@property --featured-border-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  animation: fade-in-body 900ms ease forwards;
  background: var(--paper);
  color: var(--text);
  font-family: var(--sans);
  font-size: 16pt;
  font-weight: 400;
  line-height: 1.75;
  margin: 0;
  opacity: 0;
  overflow: hidden;
}

body.view-home {
  overflow: hidden;
}

body.branch-active {
  overflow: hidden;
}

button {
  font: inherit;
}

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

a {
  border-bottom: 1px dotted currentColor;
  color: var(--accent);
  text-decoration: none;
  transition:
    border-color 180ms ease,
    color 180ms ease;
}

a:hover,
a:focus-visible {
  border-bottom-color: transparent;
  color: #3d5858;
}

strong {
  color: var(--strong);
  font-weight: 400;
}

ul {
  margin: 0;
  padding: 0;
}

li {
  list-style: none;
}

button {
  cursor: pointer;
}

.personal-confetti {
  display: block;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  position: fixed;
  height: 100vh;
  width: 100vw;
  z-index: 80;
}

.skip-link {
  background: #333333;
  color: #ffffff;
  left: 1rem;
  padding: 0.55rem 0.9rem;
  position: fixed;
  top: 1rem;
  transform: translateY(-160%);
  z-index: 10;
}

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

.strata-sidebar {
  --sidebar-overlay-start: rgba(12, 25, 40, 0.2);
  --sidebar-overlay-end: rgba(5, 8, 14, 0.82);
  align-items: center;
  background-color: #172233;
  color: rgba(255, 255, 255, 0.52);
  display: flex;
  flex-direction: column;
  height: 100%;
  isolation: isolate;
  justify-content: center;
  left: 0;
  min-height: 100vh;
  overflow: hidden;
  padding: 5rem 4rem;
  position: fixed;
  text-align: center;
  top: 0;
  width: var(--sidebar-width);
}

.strata-sidebar::after {
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.sidebar-bg {
  background-position: center;
  background-size: cover;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  filter: blur(3px) saturate(0.9) contrast(1.04);
  transform: scale(1.015);
  transition: opacity 520ms ease, filter 520ms ease, transform 520ms ease;
  z-index: 0;
}

.sidebar-bg.is-loaded {
  background-image: var(--sidebar-bg-image);
}

.sidebar-bg-professional {
  background-position: center;
}

.sidebar-bg-education {
  background-position: 42% center;
}

.sidebar-bg-personal {
  background-position: 42% center;
}

.sidebar-bg-life {
  background-position: 54% center;
}

.sidebar-bg-contact {
  background-position: center;
}

.sidebar-bg-home,
body.view-home .sidebar-bg-home,
body.view-professional .sidebar-bg-professional,
body.view-professional.education-sidebar-active .sidebar-bg-education,
body.view-personal .sidebar-bg-personal,
body.view-life .sidebar-bg-life,
body.view-contact .sidebar-bg-contact {
  opacity: 1;
}

body.view-professional .sidebar-bg-home,
body.view-professional.education-sidebar-active .sidebar-bg-professional,
body.view-personal .sidebar-bg-home,
body.view-life .sidebar-bg-home,
body.view-contact .sidebar-bg-home {
  opacity: 0;
}

.strata-sidebar::after {
  backdrop-filter: blur(1.1px);
  background:
    linear-gradient(180deg, var(--sidebar-overlay-start), var(--sidebar-overlay-end)),
    radial-gradient(circle at 50% 18%, rgba(255, 255, 255, 0.18), transparent 13rem),
    repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.05) 0 1px, transparent 1px 9px),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.025) 0 1px, transparent 1px 4.6rem);
  box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.08), inset -4rem 0 8rem rgba(0, 0, 0, 0.16);
  z-index: 1;
}

body.view-professional .strata-sidebar {
  --sidebar-overlay-start: rgba(9, 19, 32, 0.24);
  --sidebar-overlay-end: rgba(5, 8, 14, 0.82);
}

body.view-personal .strata-sidebar {
  --sidebar-overlay-start: rgba(20, 27, 32, 0.26);
  --sidebar-overlay-end: rgba(16, 12, 10, 0.84);
}

body.view-life .strata-sidebar {
  --sidebar-overlay-start: rgba(13, 23, 34, 0.24);
  --sidebar-overlay-end: rgba(8, 10, 15, 0.8);
}

body.view-contact .strata-sidebar {
  --sidebar-overlay-start: rgba(8, 18, 24, 0.28);
  --sidebar-overlay-end: rgba(4, 7, 10, 0.84);
}

.sidebar-inner {
  max-width: 18rem;
  position: relative;
  width: 100%;
  z-index: 2;
}

.profile-photo {
  border-radius: 100%;
  box-shadow: 0 0.5rem 1.6rem rgba(0, 0, 0, 0.22);
  height: 7rem;
  margin: 0 auto 2rem;
  object-fit: cover;
  width: 7rem;
}

.sidebar-inner h2 {
  color: #ffffff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.55rem;
  font-weight: 400;
  line-height: 1.15;
  margin: 0;
}

.sidebar-role {
  display: grid;
  gap: 0.45rem;
  margin: 0.7rem 0 0;
}

.sidebar-role span {
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  line-height: 1.25;
  text-transform: uppercase;
}

.sidebar-role small {
  color: rgba(255, 255, 255, 0.6);
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.45;
}

.sidebar-rule {
  background: var(--accent);
  display: block;
  height: 2px;
  margin: 1.25rem auto;
  width: 3.1rem;
}

.sidebar-inner p:not(.sidebar-role) {
  color: rgba(255, 255, 255, 0.66);
  font-size: 0.98rem;
  line-height: 1.65;
  margin: 0;
}

.sidebar-inner strong {
  color: #ffffff;
}

.sidebar-links {
  bottom: 5rem;
  display: grid;
  gap: 0.8rem;
  justify-items: center;
  left: 4rem;
  position: absolute;
  right: 4rem;
  z-index: 2;
}

.sidebar-link-row {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
}

.sidebar-links a,
.sidebar-home {
  background: transparent;
  border: 0;
  border-bottom: 0;
  color: rgba(255, 255, 255, 0.45);
  font-size: 0.9rem;
  font-weight: 700;
  padding: 0;
  text-transform: uppercase;
}

.sidebar-links a:hover,
.sidebar-links a:focus-visible,
.sidebar-home:hover,
.sidebar-home:focus-visible {
  color: #ffffff;
}

.strata-main {
  margin-left: var(--sidebar-width);
  max-width: none;
  min-height: 100vh;
  overflow: hidden;
  padding: 8rem clamp(3rem, 4vw, 6rem) 5rem;
  position: relative;
  width: calc(100% - var(--sidebar-width));
}

.launch-view {
  max-width: 68rem;
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 360ms ease,
    transform 360ms ease;
}

.strata-main:not([data-view="home"]) .launch-view {
  opacity: 0;
  pointer-events: none;
  transform: translateY(-1.25rem);
}

.view-professional .launch-view,
.view-personal .launch-view,
.view-contact .launch-view {
  opacity: 0;
  pointer-events: none;
  transform: translateY(-1.25rem);
}

.major h1 {
  align-items: flex-start;
  color: #777777;
  display: flex;
  flex-wrap: wrap;
  font-size: clamp(2.2rem, 4.4vw, 3.8rem);
  font-weight: 400;
  gap: 0.16em 0.22em;
  line-height: 1.08;
  margin: 0 0 2.4rem;
  max-width: 100%;
}

.welcome-chip {
  color: #777777;
  display: block;
  flex: 0 0 auto;
  line-height: inherit;
}

.rotating-word {
  color: #b8b8b8;
  display: block;
  flex: 1 1 min(100%, 22rem);
  line-height: 1.08;
  max-width: 100%;
  min-width: 0;
  opacity: 1;
  overflow-wrap: break-word;
  transition: opacity 180ms ease, transform 180ms ease;
  vertical-align: bottom;
  white-space: normal;
  word-break: normal;
}

.rotating-word.is-changing {
  opacity: 0;
  transform: translateY(-0.22em);
}

.landing-about {
  max-width: 54rem;
}

.landing-about p {
  font-size: 1.08rem;
  line-height: 1.85;
  margin: 0 0 1.6rem;
}

.landing-about .home-name {
  background:
    linear-gradient(180deg, transparent 54%, var(--accent-soft) 54%);
  color: #324457;
  font-weight: 700;
  padding: 0 0.12em;
}

.choice-hero {
  border-top: 2px solid var(--line);
  margin-top: 3rem;
  padding-top: 2.5rem;
}

.choice-hero p {
  color: #777777;
  font-size: 1.35rem;
  line-height: 1.4;
  margin: 0 0 1.2rem;
}

.choice-actions {
  display: grid;
  align-items: stretch;
  gap: 1rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 64rem;
}

.choice-button {
  align-items: center;
  background: rgba(255, 255, 255, 0.58);
  border: 2px solid var(--line);
  border-radius: 0.45rem;
  box-shadow: 0 0.75rem 1.8rem rgba(20, 20, 20, 0.035);
  color: var(--heading);
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 4.6rem;
  overflow: hidden;
  padding: 0.8rem 1rem;
  position: relative;
  text-align: left;
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease,
    color 180ms ease,
    transform 180ms ease;
  width: 100%;
}

.choice-button-featured {
  align-content: center;
  animation: featured-border-drift 8s linear infinite;
  background:
    linear-gradient(#ffffff, #ffffff) padding-box,
    conic-gradient(
      from var(--featured-border-angle),
      rgba(74, 105, 105, 0.12),
      rgba(74, 105, 105, 0.52),
      rgba(150, 172, 168, 0.22),
      rgba(74, 105, 105, 0.12),
      rgba(74, 105, 105, 0.52),
      rgba(74, 105, 105, 0.12)
    ) border-box;
  background-clip: padding-box, border-box;
  background-origin: padding-box, border-box;
  border-color: transparent;
  grid-column: 1 / -1;
  min-height: 10rem;
  padding: 1.15rem 1.35rem;
  box-shadow:
    0 0.75rem 1.8rem rgba(20, 20, 20, 0.035),
    0 0 1.25rem rgba(74, 105, 105, 0.055);
}

.choice-button-featured .choice-button-copy strong {
  color: #556365;
  font-size: 1.5rem;
}

.choice-button-featured .choice-button-copy small {
  font-size: 1rem;
  line-height: 1.55;
  max-width: 34rem;
}

.choice-button:hover,
.choice-button:focus-visible {
  background: var(--accent-soft);
  border-color: var(--accent-border);
  box-shadow: 0 1rem 2rem rgba(20, 20, 20, 0.055);
  color: var(--accent);
  transform: translateY(-1px);
}

.choice-button-copy {
  display: block;
  min-width: 0;
  position: relative;
  z-index: 1;
}

.choice-button-copy strong {
  color: #666f70;
  display: block;
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.25;
}

.choice-button-copy small {
  color: #8d8f91;
  display: block;
  font-size: 0.86rem;
  line-height: 1.45;
  margin-top: 0.28rem;
}

.choice-button-contact .choice-button-copy small {
  max-width: 18rem;
}

.choice-card-arrow {
  align-items: center;
  border: 1px solid var(--accent-border);
  border-radius: 999px;
  color: var(--accent);
  display: inline-flex;
  height: 2rem;
  justify-content: center;
  justify-self: center;
  position: relative;
  width: 2rem;
  z-index: 1;
}

.choice-card-arrow svg {
  fill: none;
  height: 1.05rem;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
  width: 1.05rem;
}

.branch-view {
  bottom: 4rem;
  left: clamp(3rem, 4vw, 6rem);
  opacity: 0;
  overflow-y: auto;
  padding-right: 0.9rem;
  pointer-events: none;
  position: absolute;
  right: clamp(3rem, 4vw, 6rem);
  top: 8rem;
  transform: translateY(1.5rem);
  transition:
    opacity 420ms ease,
    transform 420ms ease;
}

.branch-view::-webkit-scrollbar {
  width: 0.55rem;
}

.branch-view::-webkit-scrollbar-thumb {
  background: #dedede;
  border-radius: 999px;
}

.strata-main[data-view="professional"] .branch-professional,
.strata-main[data-view="personal"] .branch-personal,
.strata-main[data-view="life"] .branch-life,
.strata-main[data-view="contact"] .branch-contact {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.view-professional .branch-professional,
.view-personal .branch-personal,
.view-life .branch-life,
.view-contact .branch-contact {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.view-professional .branch-professional,
.view-personal .branch-personal,
.view-contact .branch-contact {
  transform: none;
}

.strata-main[data-view="professional"] .branch-professional,
.strata-main[data-view="personal"] .branch-personal,
.strata-main[data-view="contact"] .branch-contact {
  transform: none;
}

.back-home {
  background: transparent;
  border: 0;
  color: #8c9095;
  display: inline-flex;
  font-size: 0.78rem;
  font-weight: 800;
  gap: 0.75rem;
  letter-spacing: 0.14em;
  line-height: 1;
  margin-bottom: 2rem;
  padding: 0.25rem 0;
  text-transform: uppercase;
}

.back-home:hover,
.back-home:focus-visible {
  color: var(--accent);
}

.back-home::before {
  background: currentColor;
  content: "";
  height: 1px;
  margin-top: 0.45rem;
  transition: width 180ms ease;
  width: 2.2rem;
}

.back-home:hover::before,
.back-home:focus-visible::before {
  width: 3.2rem;
}

.branch-hero {
  border-bottom: 2px solid var(--line);
  margin-bottom: 2.5rem;
  padding-bottom: 2rem;
}

.branch-eyebrow {
  color: var(--accent);
  font-size: 0.9rem;
  font-weight: 700;
  margin: 0 0 0.5rem;
  text-transform: uppercase;
}

.branch-view h2 {
  color: #777777;
  font-size: clamp(2rem, 4vw, 3.4rem);
  font-weight: 400;
  line-height: 1.1;
  margin: 0;
}

.branch-hero > p:last-child {
  font-size: 1.05rem;
  line-height: 1.75;
  margin: 0;
  max-width: 48rem;
}

.life-intro {
  align-items: center;
  display: grid;
  gap: clamp(1.5rem, 4vw, 3rem);
  grid-template-columns: minmax(14rem, 18rem) minmax(16rem, 25rem);
  max-width: 48rem;
}

.life-photo-placeholder {
  aspect-ratio: 4 / 4.65;
  background:
    radial-gradient(circle at 25% 18%, rgba(74, 105, 105, 0.16), transparent 9rem),
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(244, 244, 244, 0.82));
  border: 1px solid rgba(119, 119, 119, 0.14);
  box-shadow: 0 1rem 2.2rem rgba(20, 20, 20, 0.06);
  color: #777777;
  margin: 0;
  min-height: 18rem;
  overflow: hidden;
  position: relative;
}

.life-photo-placeholder img {
  display: block;
  height: 100%;
  object-fit: cover;
  object-position: 50% 42%;
  width: 100%;
}

.life-blog {
  margin-top: 1.6rem;
  max-width: 44rem;
}

.life-post {
  border-top: 1px solid var(--line);
  display: block;
  padding: 1.35rem 0;
}

.life-post:last-child {
  border-bottom: 1px solid var(--line);
}

.life-post h3 {
  color: var(--accent);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  line-height: 1.4;
  margin: 0 0 0.6rem;
  text-transform: uppercase;
}

.life-post p {
  color: #777777;
  font-size: 1rem;
  line-height: 1.78;
  margin: 0;
  max-width: 40rem;
}

.life-post p + p {
  margin-top: 0.9rem;
}

.life-post:first-child {
  border-top-color: var(--accent-border);
  padding-top: 1.35rem;
}

.life-post-feature {
  border: 0;
  padding: 0;
}

.life-post-feature:first-child {
  border-top: 0;
  padding-top: 0;
}

.contact-panel {
  max-width: 42rem;
}

.contact-form {
  background: rgba(255, 255, 255, 0.62);
  border: 1px solid var(--line);
  border-radius: 0.5rem;
  box-shadow: 0 1.1rem 2.6rem rgba(20, 20, 20, 0.035);
  padding: clamp(1.15rem, 2.4vw, 1.65rem);
  position: relative;
}

.contact-label {
  color: var(--accent);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1.2;
  margin: 0 0 0.7rem;
  text-transform: uppercase;
}

.contact-form-intro h3 {
  color: var(--heading);
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.28rem, 2vw, 1.75rem);
  font-weight: 400;
  line-height: 1.25;
  margin: 0 0 0.65rem;
}

.contact-form button {
  align-items: center;
  background: rgba(255, 255, 255, 0.66);
  border: 1px solid var(--accent-border);
  border-radius: 0.42rem;
  color: var(--accent);
  display: inline-flex;
  font-size: 0.72rem;
  font-weight: 800;
  justify-content: space-between;
  letter-spacing: 0.08em;
  min-height: 2.55rem;
  padding: 0.72rem 0.86rem;
  text-decoration: none;
  text-transform: uppercase;
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    color 180ms ease,
    transform 180ms ease;
}

.contact-form button:hover,
.contact-form button:focus-visible {
  background: var(--accent-soft);
  border-color: var(--accent);
  color: var(--accent);
  transform: translateY(-1px);
}

.contact-form {
  display: grid;
  gap: 0.95rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contact-form-intro {
  border-bottom: 1px solid var(--line);
  grid-column: 1 / -1;
  margin-bottom: 0.1rem;
  padding-bottom: 0.85rem;
}

.contact-form label {
  display: grid;
  gap: 0.42rem;
}

.contact-honeypot {
  height: 1px;
  left: -10000px;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  position: absolute;
  top: auto;
  width: 1px;
}

.contact-form label span {
  color: #687173;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.contact-form input,
.contact-form textarea {
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(119, 119, 119, 0.16);
  border-radius: 0.42rem;
  color: var(--heading);
  font: inherit;
  font-size: 0.94rem;
  line-height: 1.5;
  padding: 0.78rem 0.88rem;
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease;
  width: 100%;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
  color: #a1a6a8;
}

.contact-form textarea {
  min-height: 9rem;
  resize: vertical;
}

.contact-form input:focus,
.contact-form textarea:focus {
  background: #ffffff;
  border-color: var(--accent-border);
  box-shadow: 0 0 0 0.18rem rgba(74, 105, 105, 0.08);
  outline: 0;
}

.contact-form-wide,
.contact-form-note {
  grid-column: 1 / -1;
}

.contact-turnstile {
  grid-column: 1 / -1;
  min-height: 4.1rem;
}

.contact-form button {
  justify-self: start;
  min-width: 10rem;
}

.contact-form button:disabled {
  cursor: progress;
  opacity: 0.62;
  transform: none;
}

.contact-form-status {
  color: #687173;
  font-size: 0.82rem;
  grid-column: 1 / -1;
  line-height: 1.55;
  margin: 0;
  min-height: 1.3rem;
}

.contact-form-status a {
  color: var(--accent);
  font-weight: 800;
  text-decoration-color: var(--accent-border);
}

.contact-form-status.is-success {
  color: #315f4d;
}

.contact-form-status.is-error {
  color: #8a3b32;
}

.contact-form-note {
  color: #8c9095;
  font-size: 0.78rem;
  line-height: 1.55;
  margin: 0;
}

.career-summary-section {
  border-top: 2px solid var(--line);
  margin-bottom: 3.75rem;
  padding-top: 2.5rem;
}

.professional-overview > .career-summary-section:first-child {
  border-top: 0;
}

.career-summary-section + .career-section {
  margin-top: 0;
}

.snapshot-panel {
  display: grid;
  gap: 1rem;
}

.snapshot-band {
  background: rgba(255, 255, 255, 0.58);
  border: 1px solid rgba(119, 119, 119, 0.13);
  border-radius: 0.5rem;
  padding: 1rem;
}

.snapshot-band-label {
  color: var(--accent);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 1.2;
  margin: 0 0 0.8rem;
  text-transform: uppercase;
}

.career-snapshot {
  display: grid;
  gap: 1.1rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
}

.career-snapshot article,
.experience-card,
.project-card,
.skill-card,
.education-grid article {
  border-top: 2px solid var(--line);
  padding-top: 1rem;
}

.career-snapshot article {
  border-top: 0;
  padding-top: 0;
}

.professional-stage {
  position: relative;
}

.professional-overview {
  opacity: 1;
  transform: translateX(0);
  transition:
    opacity 320ms ease,
    transform 320ms ease;
}

.career-snapshot span,
.card-kicker,
.project-card-head,
.section-heading p {
  color: var(--accent);
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  margin: 0 0 0.45rem;
  text-transform: uppercase;
}

.career-snapshot strong {
  color: #666666;
  display: block;
  font-size: 1rem;
  line-height: 1.35;
  margin-bottom: 0.35rem;
}

.career-snapshot small {
  color: #9a9da2;
  display: block;
  font-size: 0.86rem;
  line-height: 1.5;
}

.snapshot-actions {
  display: grid;
  gap: 0.9rem;
  grid-template-columns: repeat(2, minmax(0, 10rem));
  margin-top: 0.9rem;
}

.snapshot-action {
  background:
    radial-gradient(circle at 92% 0%, rgba(74, 105, 105, 0.09), transparent 7rem),
    rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(119, 119, 119, 0.14);
  border-radius: 0.45rem;
  box-shadow: 0 0.75rem 2rem rgba(20, 20, 20, 0.045);
  color: inherit;
  min-width: 0;
  padding: 0.95rem 1rem;
  text-align: left;
}

.snapshot-action {
  appearance: none;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  font: inherit;
  height: 100%;
  justify-content: flex-start;
  line-height: 1.35;
  position: relative;
  text-decoration: none;
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
  width: 100%;
}

.snapshot-action::after {
  align-items: center;
  background:
    rgba(74, 105, 105, 0.08)
    url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 12h12M13 7l5 5-5 5' fill='none' stroke='%234a6969' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    center / 1rem 1rem no-repeat;
  border: 1px solid rgba(74, 105, 105, 0.18);
  border-radius: 999px;
  color: var(--accent);
  content: "";
  display: flex;
  font-size: 0.82rem;
  font-weight: 800;
  height: 1.55rem;
  justify-content: center;
  line-height: 1;
  position: absolute;
  right: 0.85rem;
  top: 0.85rem;
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    transform 180ms ease;
  width: 1.55rem;
}

.snapshot-action:hover,
.snapshot-action:focus-visible {
  background:
    radial-gradient(circle at 92% 0%, rgba(74, 105, 105, 0.14), transparent 7rem),
    #ffffff;
  border-color: rgba(74, 105, 105, 0.32);
  box-shadow: 0 1rem 2.4rem rgba(20, 20, 20, 0.075);
  outline: 0;
  transform: translateY(-0.08rem);
}

.snapshot-action:hover::after,
.snapshot-action:focus-visible::after {
  background:
    rgba(74, 105, 105, 0.14)
    url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 12h12M13 7l5 5-5 5' fill='none' stroke='%234a6969' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    center / 1rem 1rem no-repeat;
  border-color: rgba(74, 105, 105, 0.3);
  transform: translateX(0.08rem);
}

.snapshot-action span {
  color: var(--accent);
  display: block;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  margin-bottom: 0.4rem;
  text-transform: uppercase;
}

.snapshot-action strong {
  color: #666666;
  display: block;
  font-size: 0.9rem;
  line-height: 1.25;
  padding-right: 2rem;
}

.snapshot-projects {
  margin-top: 0;
}

.snapshot-projects > p {
  color: #8c9095;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.2;
  margin: 0 0 0.65rem;
  text-transform: uppercase;
}

.snapshot-project-grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.snapshot-project-grid .project-card-button {
  background:
    radial-gradient(circle at 90% 0%, rgba(74, 105, 105, 0.08), transparent 7rem),
    rgba(255, 255, 255, 0.78);
  box-shadow: 0 0.65rem 1.6rem rgba(20, 20, 20, 0.04);
  display: block;
  min-height: 0;
  padding: 0.42rem;
}

.snapshot-project-grid .project-card-visual {
  aspect-ratio: 16 / 9;
  background: rgba(255, 255, 255, 0.74);
  border-radius: 0.28rem;
  margin: 0;
  min-height: 0;
}

.snapshot-project-grid .project-card-visual img {
  object-fit: contain;
  padding: 0.18rem;
}

.snapshot-project-grid .project-card-button h4 {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.snapshot-project-grid .project-card-button p {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.snapshot-project-grid .project-card-button .tag-list {
  display: none;
}

.snapshot-project-grid .project-card-head {
  display: none;
  gap: 0.35rem;
  margin-bottom: 0.42rem;
}

.snapshot-project-grid .project-card-head span:not(.status-badge):not(.favorite-badge):not(.project-note-badge) {
  display: none;
}

.snapshot-project-grid .project-card-head span.favorite-badge {
  display: none;
}

.snapshot-project-grid .status-badge {
  font-size: 0.62rem;
  padding: 0.16rem 0.42rem;
}

.snapshot-project-grid .card-link {
  background: rgba(74, 105, 105, 0.08);
  bottom: auto;
  color: #3d5858;
  font-size: 0;
  height: 1.35rem;
  position: absolute;
  right: 0.68rem;
  top: 0.68rem;
  width: 1.35rem;
}

.snapshot-project-grid .project-card-button:hover .card-link,
.snapshot-project-grid .project-card-button:focus-visible .card-link {
  background: rgba(74, 105, 105, 0.14);
}

.career-section {
  border-top: 2px solid var(--line);
  margin-top: 3.25rem;
  padding-top: 2.5rem;
}

.project-work-section {
  position: relative;
}

.project-work-heading-wrap {
  display: inline-block;
  position: relative;
}

.project-work-trigger {
  display: inline-block;
}

.project-hover-gif {
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(74, 105, 105, 0.18);
  border-radius: 0.8rem;
  box-shadow: 0 1.3rem 3rem rgba(18, 24, 32, 0.18);
  filter: grayscale(0.08) saturate(0.9);
  height: clamp(11rem, 21vw, 16rem);
  max-width: none;
  object-fit: contain;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  left: 0;
  top: 0;
  transform: translateY(calc(-100% - 0.8rem)) rotate(1deg) scale(0.96);
  transition: opacity 220ms ease, transform 260ms ease, filter 260ms ease;
  width: clamp(18rem, 34vw, 28rem);
  z-index: 4;
}

.project-work-heading-wrap:hover .project-hover-gif,
.project-work-heading-wrap:focus-within .project-hover-gif {
  filter: grayscale(0) saturate(0.98);
  opacity: 0.92;
  transform: translateY(calc(-100% - 1rem)) rotate(-1deg) scale(1);
}

.section-heading {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: minmax(8rem, 0.45fr) minmax(0, 1fr);
  margin-bottom: 1.8rem;
}

.section-heading-single {
  display: block;
}

.section-heading h3 {
  color: #777777;
  font-size: clamp(1.05rem, 1.5vw, 1.35rem);
  font-weight: 400;
  line-height: 1.4;
  margin: 0;
  max-width: 34rem;
}

.experience-stack {
  display: grid;
  gap: 0;
  position: relative;
}

.experience-stack::before {
  background: #e2e2e2;
  bottom: 2.4rem;
  content: "";
  left: 0.31rem;
  position: absolute;
  top: 1.1rem;
  width: 0.16rem;
}

.experience-card {
  border-top: 0;
  display: grid;
  gap: 1.2rem;
  grid-template-columns: 1.8rem minmax(0, 1fr);
  padding-bottom: 2.4rem;
  padding-top: 0;
  position: relative;
}

.timeline-marker {
  background: #b9b9b9;
  border: 0.3rem solid var(--paper);
  border-radius: 999px;
  box-shadow: 0 0 0 1px #d7d7d7;
  display: block;
  height: 0.78rem;
  margin-top: 0.28rem;
  position: relative;
  width: 0.78rem;
  z-index: 1;
}

.experience-content {
  border-top: 2px solid var(--line);
  padding-top: 1rem;
}

.experience-card h4,
.project-card h4,
.skill-card h4,
.education-grid h4 {
  color: #666666;
  font-size: 1.1rem;
  font-weight: 600;
  line-height: 1.25;
  margin: 0 0 0.4rem;
}

.experience-card p,
.project-card p,
.education-grid p {
  font-size: 0.96rem;
  line-height: 1.65;
  margin: 0 0 0.8rem;
}

.card-meta {
  color: #8c9095;
}

.role-timeframe {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.75rem;
}

.role-duration {
  background: rgba(74, 105, 105, 0.08);
  border: 1px solid rgba(74, 105, 105, 0.28);
  border-radius: 999px;
  color: #3d5858;
  display: inline-flex;
  font-size: 0.72rem;
  line-height: 1.2;
  padding: 0.18rem 0.52rem;
}

.role-note {
  border-left: 2px solid rgba(74, 105, 105, 0.42);
  margin: 1.15rem 0 0;
  padding-left: 1rem;
}

.role-note span {
  color: var(--accent);
  display: block;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1.2;
  margin-bottom: 0.4rem;
  text-transform: uppercase;
}

.experience-card .role-note p {
  color: #777777;
  font-size: 0.94rem;
  line-height: 1.65;
  margin: 0;
}

.bullet-list {
  display: grid;
  gap: 0.5rem;
  margin-top: 1rem;
}

.bullet-list li {
  color: #8c9095;
  font-size: 0.92rem;
  line-height: 1.5;
  padding-left: 1rem;
  position: relative;
}

.bullet-list li::before {
  background: var(--accent);
  border-radius: 999px;
  content: "";
  height: 0.32rem;
  left: 0;
  position: absolute;
  top: 0.68rem;
  width: 0.32rem;
}

.project-grid,
.skills-grid {
  display: grid;
  gap: 1.35rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
}

.project-year-stack {
  display: grid;
  gap: 2.6rem;
  position: relative;
}

.project-year-stack::before {
  background: #e2e2e2;
  bottom: 2.4rem;
  content: "";
  left: 0.31rem;
  position: absolute;
  top: 1.1rem;
  width: 0.16rem;
}

.project-year-group {
  position: relative;
}

.project-year-header {
  align-items: flex-start;
  display: grid;
  gap: 1.2rem;
  grid-template-columns: 1.8rem minmax(0, 1fr);
  margin-bottom: 1rem;
}

.project-year-group > .project-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 22rem));
  justify-content: start;
  padding-left: 1.8rem;
}

.project-year-marker {
  align-self: start;
  flex: 0 0 auto;
  margin-top: 0.28rem;
}

.project-year-copy p {
  color: #555555;
  display: inline-block;
  font-family: var(--sans);
  font-size: clamp(1.05rem, 1.6vw, 1.35rem);
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1.2;
  margin: 0;
  padding-bottom: 0.22rem;
  position: relative;
  text-transform: uppercase;
}

.project-year-copy p::after {
  background: var(--accent);
  bottom: 0;
  content: "";
  height: 0.12rem;
  left: 0;
  position: absolute;
  width: 100%;
}

.project-year-copy small {
  color: #8c9095;
  display: block;
  font-size: 0.86rem;
  line-height: 1.35;
  margin-top: 0.3rem;
}

.project-card {
  appearance: none;
  background: transparent;
  border: 0;
  color: inherit;
  font: inherit;
  min-width: 0;
  padding: 0;
  text-align: left;
}

.project-card:not(.project-card-button) {
  border-top: 2px solid var(--line);
  padding-top: 1rem;
}

.project-card-button {
  background:
    radial-gradient(circle at 82% 8%, rgba(74, 105, 105, 0.1), transparent 13rem),
    linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(247, 247, 247, 0.78));
  border: 1px solid rgba(119, 119, 119, 0.14);
  border-radius: 0.45rem;
  box-shadow: 0 1rem 2.6rem rgba(20, 20, 20, 0.06);
  color: #777777;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  overflow: hidden;
  padding: 0.85rem;
  position: relative;
  transition:
    border-color 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
  width: 100%;
}

.project-card-button:hover,
.project-card-button:focus-visible {
  background:
    radial-gradient(circle at 82% 8%, rgba(74, 105, 105, 0.14), transparent 13rem),
    #ffffff;
  border-color: rgba(74, 105, 105, 0.34);
  box-shadow: 0 1.25rem 3rem rgba(20, 20, 20, 0.1);
  outline: 0;
  transform: translateY(-0.2rem);
}

.project-card-visual {
  aspect-ratio: 16 / 9;
  background:
    radial-gradient(circle at 18% 20%, rgba(255, 255, 255, 0.78), transparent 6rem),
    linear-gradient(135deg, rgba(74, 105, 105, 0.15), transparent 48%),
    linear-gradient(180deg, #f8f8f8, #ecefee);
  border: 1px solid rgba(119, 119, 119, 0.12);
  border-radius: 0.34rem;
  margin-bottom: 0.9rem;
  min-height: 10rem;
  overflow: hidden;
  position: relative;
}

.project-card-visual img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.project-card-visual-contain {
  background:
    radial-gradient(circle at 18% 20%, rgba(255, 255, 255, 0.9), transparent 6rem),
    linear-gradient(180deg, #ffffff, #f6f8f8);
}

.project-card-visual-contain img {
  object-fit: contain;
  padding: 0.75rem;
}

.project-card-visual::before {
  background:
    linear-gradient(90deg, rgba(102, 102, 102, 0.08) 1px, transparent 1px),
    linear-gradient(180deg, rgba(102, 102, 102, 0.08) 1px, transparent 1px);
  background-size: 2.4rem 2.4rem;
  content: "";
  inset: 0;
  opacity: 0.26;
  position: absolute;
}

.visual-panel,
.visual-line,
.visual-dot {
  position: absolute;
}

.visual-panel {
  background: rgba(255, 255, 255, 0.62);
  border: 1px solid rgba(119, 119, 119, 0.13);
  border-radius: 0.28rem;
  box-shadow: 0 0.55rem 1.4rem rgba(20, 20, 20, 0.05);
}

.visual-panel-large {
  height: 48%;
  left: 7%;
  top: 14%;
  width: 48%;
}

.visual-panel-small:nth-of-type(2) {
  height: 23%;
  right: 8%;
  top: 15%;
  width: 27%;
}

.visual-panel-small:nth-of-type(3) {
  bottom: 15%;
  height: 23%;
  right: 8%;
  width: 27%;
}

.visual-line {
  background: rgba(74, 105, 105, 0.58);
  border-radius: 999px;
  height: 0.2rem;
  left: 12%;
}

.visual-line-one {
  bottom: 30%;
  width: 34%;
}

.visual-line-two {
  bottom: 22%;
  width: 46%;
}

.visual-dot {
  background: rgba(74, 105, 105, 0.82);
  border-radius: 999px;
  box-shadow: 0 0 0 0.45rem rgba(74, 105, 105, 0.08);
  height: 0.45rem;
  width: 0.45rem;
}

.visual-dot-one {
  left: 60%;
  top: 34%;
}

.visual-dot-two {
  right: 20%;
  top: 55%;
}

.project-card-visual-1 {
  background:
    radial-gradient(circle at 70% 20%, rgba(74, 105, 105, 0.18), transparent 8rem),
    linear-gradient(180deg, #f7f8f8, #dfe5e3);
}

.project-card-visual-1 .visual-panel,
.project-card-visual-2 .visual-panel {
  background: rgba(12, 22, 28, 0.08);
  border-color: rgba(12, 22, 28, 0.12);
}

.project-card-visual-2 {
  background:
    linear-gradient(135deg, rgba(24, 47, 63, 0.16), transparent 45%),
    linear-gradient(180deg, #f2f5f3, #dce6e1);
}

.project-card-visual-3 {
  background:
    linear-gradient(90deg, rgba(74, 105, 105, 0.1), transparent 40%),
    linear-gradient(180deg, #f5f7f6, #e2e8e5);
}

.project-card-visual-4 {
  background:
    radial-gradient(circle at 24% 22%, rgba(74, 105, 105, 0.16), transparent 6rem),
    linear-gradient(135deg, #f7f7f7, #dfe7e4);
}

.project-card-visual-5 {
  background:
    linear-gradient(135deg, rgba(74, 105, 105, 0.12), transparent 50%),
    linear-gradient(180deg, #e9eeee, #cfd8d6);
}

.project-card-head {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.65rem;
}

.project-card-head span:not(.status-badge) {
  color: #8c9095;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.project-card-head span.project-note-badge,
.project-detail-badges .project-note-badge {
  background: rgba(120, 124, 130, 0.1);
  border: 1px solid rgba(120, 124, 130, 0.24);
  border-radius: 999px;
  color: #777777;
  padding: 0.18rem 0.52rem;
}

.project-card-head span.favorite-badge,
.project-detail-badges .favorite-badge {
  background: rgba(216, 193, 138, 0.2);
  border: 1px solid rgba(184, 145, 54, 0.34);
  border-radius: 999px;
  color: #9a7324;
  padding: 0.18rem 0.52rem;
}

.project-card-button h4 {
  color: #555555;
  font-size: 1.05rem;
  margin-bottom: 0.55rem;
}

.project-card-button p {
  color: #777777;
  font-size: 0.88rem;
  line-height: 1.6;
  margin-bottom: 0.75rem;
}

.status-badge {
  background: rgba(74, 105, 105, 0.12);
  border: 1px solid rgba(74, 105, 105, 0.34);
  border-radius: 999px;
  color: #3d5858;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  line-height: 1.2;
  padding: 0.2rem 0.55rem;
  text-transform: uppercase;
}

.impact-copy {
  color: #80858a;
}

.card-link {
  align-items: center;
  align-self: flex-end;
  border: 1px solid rgba(74, 105, 105, 0.26);
  border-radius: 999px;
  color: #3d5858;
  display: inline-flex;
  font-size: 0;
  height: 1.7rem;
  justify-content: center;
  line-height: 1;
  margin-top: auto;
  transition:
    background-color 180ms ease,
    transform 180ms ease;
  width: 1.7rem;
}

.card-link svg {
  display: block;
  height: 1rem;
  width: 1rem;
}

.card-link path {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.project-card-button:hover .card-link,
.project-card-button:focus-visible .card-link {
  background: rgba(74, 105, 105, 0.12);
  color: var(--accent);
  transform: translateX(0.12rem);
}

.tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 1rem;
}

.project-card-button .tag-list {
  display: none;
}

.project-card-button .tag-list span {
  background: rgba(255, 255, 255, 0.72);
  border-color: rgba(119, 119, 119, 0.13);
  color: #8c9095;
  font-size: 0.68rem;
}

.tag-list span,
.future-grid span {
  border: 1px solid var(--line);
  border-radius: 999px;
  color: #8c9095;
  display: inline-flex;
  font-size: 0.82rem;
  line-height: 1.35;
  padding: 0.32rem 0.62rem;
}

.future-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}

.future-grid span {
  border-radius: 0;
  max-width: 19rem;
}

.skills-section-layout {
  display: grid;
  gap: 2.35rem;
}

.skills-subsection {
  display: grid;
  gap: 1.05rem;
}

.skills-subsection h3 {
  color: var(--accent);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.2;
  margin: 0;
  text-transform: uppercase;
}

.tools-platforms-grid {
  display: grid;
  gap: 0.9rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tool-group,
.core-skill-card {
  background:
    radial-gradient(circle at 92% 12%, rgba(74, 105, 105, 0.055), transparent 8rem),
    linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(247, 247, 247, 0.62));
  border: 1px solid rgba(119, 119, 119, 0.14);
  border-radius: 0.45rem;
  box-shadow: 0 1rem 2.4rem rgba(20, 20, 20, 0.045);
  transition:
    background-color 220ms ease,
    border-color 220ms ease,
    box-shadow 220ms ease,
    transform 220ms ease;
}

.tool-group {
  padding: 0.95rem;
}

.tool-group:hover,
.core-skill-card:hover {
  background:
    radial-gradient(circle at 92% 12%, rgba(74, 105, 105, 0.085), transparent 8rem),
    #ffffff;
  border-color: rgba(74, 105, 105, 0.26);
  box-shadow: 0 1.2rem 2.8rem rgba(20, 20, 20, 0.075);
  transform: translateY(-0.12rem);
}

.tool-group h4,
.core-skill-card h4 {
  color: #555555;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.055em;
  line-height: 1.25;
  margin: 0 0 0.7rem;
  text-transform: uppercase;
}

.tool-group .tag-list {
  gap: 0.4rem;
  margin-top: 0;
}

.tool-group .tag-list span {
  background: rgba(255, 255, 255, 0.68);
  border-color: rgba(119, 119, 119, 0.14);
  color: #8c9095;
  font-size: 0.72rem;
  min-height: 1.78rem;
  padding: 0.26rem 0.54rem;
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    color 180ms ease,
    transform 180ms ease;
}

.tool-group .tag-list span:hover {
  background: var(--accent-soft);
  border-color: rgba(74, 105, 105, 0.22);
  color: var(--accent);
  transform: translateY(-0.04rem);
}

.core-skills-grid {
  display: grid;
  gap: 1.15rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.core-skill-card {
  align-content: start;
  display: grid;
  min-height: 14.5rem;
  padding: 1.2rem;
  position: relative;
}

.core-skill-card::before {
  background: var(--accent);
  content: "";
  height: 0.18rem;
  left: 1.2rem;
  opacity: 0.55;
  position: absolute;
  top: 0;
  width: 2.2rem;
}

.core-skill-card h4 {
  color: #555555;
  font-size: 1.02rem;
  letter-spacing: 0;
  margin-bottom: 0.65rem;
  text-transform: none;
}

.core-skill-card p {
  color: #777777;
  font-size: 0.94rem;
  line-height: 1.65;
  margin: 0 0 1rem;
}

.skill-support-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: auto;
}

.skill-support-list li {
  background: rgba(255, 255, 255, 0.68);
  border: 1px solid rgba(119, 119, 119, 0.14);
  border-radius: 999px;
  color: #8c9095;
  font-size: 0.74rem;
  line-height: 1.35;
  padding: 0.32rem 0.6rem;
}

.education-grid {
  display: grid;
  gap: 1.4rem;
  grid-template-columns: minmax(0, 1.55fr) minmax(17rem, 0.85fr);
  align-items: stretch;
}

.education-title {
  margin-bottom: 2rem;
}

.education-title p {
  margin-bottom: 0.65rem;
}

.section-intro {
  color: #8c9095;
  display: block;
  font-size: 0.98rem;
  line-height: 1.65;
  max-width: 44rem;
}

.education-grid article {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.82), rgba(247, 247, 247, 0.56));
  border: 1px solid var(--line);
  border-top: 1px solid var(--line);
  box-shadow: 0 0.8rem 1.8rem rgba(20, 20, 20, 0.045);
  min-height: 0;
  padding: 1.35rem;
  transition:
    border-color 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
}

.education-grid article:hover {
  border-color: rgba(74, 105, 105, 0.28);
  box-shadow: 0 1rem 2.1rem rgba(20, 20, 20, 0.065);
  transform: translateY(-1px);
}

.education-card-main {
  background:
    radial-gradient(circle at 94% 8%, rgba(30, 64, 124, 0.13), transparent 10rem),
    linear-gradient(135deg, rgba(150, 185, 230, 0.12), transparent 44%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(247, 249, 252, 0.7));
  border-color: rgba(30, 64, 124, 0.22);
  min-height: 25rem;
  padding: clamp(1.55rem, 3vw, 2.25rem);
}

.education-grid .education-card-main:hover {
  border-color: rgba(30, 64, 124, 0.38);
  box-shadow: 0 1.05rem 2.25rem rgba(30, 64, 124, 0.11);
}

.education-card-header {
  align-items: start;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1.2rem;
}

.psu-mark {
  align-items: center;
  display: inline-flex;
  flex: 0 0 auto;
  height: clamp(5.4rem, 7.6vw, 7rem);
  justify-content: center;
  width: clamp(5.4rem, 7.6vw, 7rem);
}

.psu-mark img {
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.education-card-label {
  color: var(--accent);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  margin: 0 0 1rem;
  text-transform: uppercase;
}

.education-section .section-heading p,
.education-section .education-card-label,
.education-section h4,
.education-section .award-card strong {
  color: #1e407c;
}

.education-card-main .education-card-label {
  color: #1e407c;
  letter-spacing: 0.11em;
}

.education-card-main h4 {
  color: #1e407c;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.35rem, 5vw, 4.4rem);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 0.98;
  margin-bottom: 0.9rem;
  max-width: 38rem;
}

.degree-label {
  color: #384f78;
  font-size: clamp(1.05rem, 1.8vw, 1.35rem);
  line-height: 1.4;
  margin-bottom: 0.45rem;
}

.degree-focus {
  color: #667386;
  font-size: 0.98rem;
  line-height: 1.6;
  margin-bottom: 1.35rem;
}

.education-stat-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.education-stat-pills span,
.focus-chip-list li {
  background: rgba(255, 255, 255, 0.68);
  border: 1px solid var(--line);
  border-radius: 999px;
  color: #777777;
  font-size: 0.84rem;
  line-height: 1.35;
  padding: 0.45rem 0.75rem;
}

.education-stat-pills span {
  border-color: rgba(30, 64, 124, 0.18);
  color: #36527f;
}

.education-support-stack {
  align-self: stretch;
  display: grid;
  gap: 1.1rem;
  grid-template-rows: auto auto;
}

.focus-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 1.1rem;
}

.focus-chip-list li {
  padding-left: 1.25rem;
  position: relative;
}

.focus-chip-list li::before {
  background: var(--accent);
  border-radius: 999px;
  content: "";
  height: 0.26rem;
  left: 0.62rem;
  position: absolute;
  top: 0.92rem;
  width: 0.26rem;
}

.coursework-card h4 {
  font-size: 1.1rem;
}

.education-grid .award-card {
  background:
    linear-gradient(135deg, rgba(74, 105, 105, 0.08), transparent 46%),
    rgba(255, 255, 255, 0.58);
  border-color: rgba(74, 105, 105, 0.2);
}

.education-grid .award-card strong {
  color: #1e407c;
  display: block;
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 700;
  line-height: 1;
  margin-bottom: 0.8rem;
}

.education-grid .award-card h4 {
  color: #1e407c;
  font-size: 1.08rem;
  font-weight: 600;
}

.education-grid .deans-list-card h4 {
  font-size: clamp(1.35rem, 2.2vw, 1.8rem);
  font-weight: 700;
  margin-bottom: 0.75rem;
}

.education-grid .award-card p:not(.education-card-label) {
  color: #8c9095;
}

.certificates-section {
  margin-top: 2.4rem;
}

.certificates-grid {
  display: grid;
  gap: 1.2rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
}

.certificate-card {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(247, 247, 247, 0.62));
  border: 1px solid var(--line);
  min-height: 12rem;
  padding: 1.35rem;
}

.certificate-card h4 {
  color: #666666;
  font-size: 1.08rem;
  font-weight: 600;
  margin-bottom: 0.65rem;
}

.certificate-card p:not(.education-card-label) {
  color: #8c9095;
  font-size: 0.95rem;
  line-height: 1.65;
  margin: 0;
}

body.project-dialog-open {
  overflow: hidden;
}

body.gallery-image-open {
  overflow: hidden;
}

.project-modal-backdrop {
  background:
    radial-gradient(circle at 70% 20%, rgba(74, 105, 105, 0.16), transparent 18rem),
    rgba(20, 20, 20, 0.28);
  bottom: 0;
  display: none;
  left: 0;
  opacity: 0;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 80;
}

@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .project-modal-backdrop {
    -webkit-backdrop-filter: blur(10px) saturate(0.9);
    backdrop-filter: blur(10px) saturate(0.9);
  }
}

.project-dialog-open .branch-view.is-project-open .project-modal-backdrop {
  animation: modal-backdrop-enter 260ms ease forwards;
  display: block;
}

.project-dialog-closing .branch-view.is-project-open .project-modal-backdrop {
  animation: modal-backdrop-exit 220ms ease forwards;
  display: block;
}

.project-detail-view {
  background:
    linear-gradient(135deg, rgba(74, 105, 105, 0.05), transparent 34rem),
    rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.64);
  box-shadow: 0 2rem 5.5rem rgba(0, 0, 0, 0.28);
  display: none;
  left: 4vw;
  max-height: 92vh;
  opacity: 0;
  overflow-y: auto;
  padding: clamp(1.4rem, 3vw, 3rem);
  position: fixed;
  right: 4vw;
  top: 4vh;
  transform: translateY(1.2rem) scale(0.985);
  z-index: 90;
}

.project-detail-view.is-active {
  animation: project-dialog-enter 360ms ease forwards;
  display: block;
}

.project-detail-view.is-active.is-closing {
  animation: project-dialog-exit 220ms ease forwards;
  display: block;
  pointer-events: none;
}

.project-close {
  align-items: center;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid var(--line);
  border-radius: 999px;
  color: #777777;
  display: inline-flex;
  float: right;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1;
  padding: 0.62rem 0.9rem;
  text-transform: uppercase;
}

.project-close:hover,
.project-close:focus-visible {
  border-color: var(--accent);
  color: var(--accent);
}

.project-detail-hero {
  clear: both;
  margin-bottom: 1.4rem;
  max-width: 50rem;
}

.project-detail-hero h3 {
  color: #3f3f3f;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.3rem, 5vw, 4.4rem);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 0.98;
  margin: 0 0 1rem;
}

.project-detail-hero > p:not(.branch-eyebrow) {
  color: #777777;
  font-size: 1.02rem;
  line-height: 1.7;
  margin: 1rem 0 0;
  max-width: 38rem;
}

.project-link-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1rem;
}

.project-action-link {
  align-items: center;
  background: rgba(74, 105, 105, 0.11);
  border: 1px solid rgba(74, 105, 105, 0.42);
  border-radius: 999px;
  color: #394b60;
  display: inline-flex;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 1;
  padding: 0.72rem 0.95rem;
  text-decoration: none;
  text-transform: uppercase;
  transition: background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.project-action-link:hover,
.project-action-link:focus-visible {
  background: rgba(74, 105, 105, 0.18);
  border-color: var(--accent);
  color: #324457;
  transform: translateY(-1px);
}

.project-detail-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.project-detail-badges span {
  align-items: center;
  background: rgba(255, 255, 255, 0.66);
  border: 1px solid var(--line);
  border-radius: 999px;
  color: #777777;
  display: inline-flex;
  font-size: 0.78rem;
  line-height: 1.2;
  padding: 0.38rem 0.8rem;
}

.project-detail-badges .status-badge::before {
  background: var(--accent);
  border-radius: 999px;
  content: "";
  height: 0.35rem;
  margin-right: 0.45rem;
  width: 0.35rem;
}

.project-showcase {
  background: rgba(255, 255, 255, 0.68);
  border: 1px solid var(--line);
  box-shadow: 0 1.15rem 2.6rem rgba(20, 20, 20, 0.08);
  display: grid;
  gap: 0;
  grid-template-columns: minmax(0, 1.28fr) minmax(18rem, 0.72fr);
  margin-top: 1.4rem;
  overflow: hidden;
}

.project-showcase-notes-only {
  grid-template-columns: 1fr;
}

.project-showcase-media {
  background:
    radial-gradient(circle at 30% 22%, rgba(255, 255, 255, 0.86), transparent 7rem),
    linear-gradient(135deg, rgba(74, 105, 105, 0.12), transparent 46%),
    linear-gradient(180deg, #f8f8f8, #ececec);
  min-height: 21rem;
  padding: 1rem;
}

.project-showcase-gallery {
  display: grid;
  gap: 0.8rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}

.project-showcase-item {
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid var(--line);
  box-shadow: 0 0.75rem 1.6rem rgba(20, 20, 20, 0.055);
  margin: 0;
  overflow: hidden;
}

.project-showcase-zoom {
  background: transparent;
  border: 0;
  color: inherit;
  cursor: zoom-in;
  display: block;
  padding: 0;
  position: relative;
  text-align: left;
  width: 100%;
}

.project-showcase-item img,
.project-showcase-item video {
  background: #f7f7f7;
  display: block;
  max-height: 25rem;
  object-fit: contain;
  width: 100%;
}

.project-showcase-zoom::after {
  background: linear-gradient(180deg, transparent, rgba(20, 20, 20, 0.28));
  bottom: 0;
  content: "";
  left: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0;
  transition: opacity 180ms ease;
}

.project-image-cue {
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.72);
  bottom: 0.7rem;
  box-shadow: 0 0.6rem 1.2rem rgba(20, 20, 20, 0.12);
  color: #3f3f3f;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.11em;
  opacity: 0;
  padding: 0.5rem 0.62rem;
  pointer-events: none;
  position: absolute;
  right: 0.7rem;
  text-transform: uppercase;
  transform: translateY(0.25rem);
  transition: opacity 180ms ease, transform 180ms ease;
  z-index: 1;
}

.project-showcase-zoom:hover::after,
.project-showcase-zoom:focus-visible::after,
.project-showcase-zoom:hover .project-image-cue,
.project-showcase-zoom:focus-visible .project-image-cue {
  opacity: 1;
}

.project-showcase-zoom:hover .project-image-cue,
.project-showcase-zoom:focus-visible .project-image-cue {
  transform: translateY(0);
}

.project-showcase-item figcaption {
  border-top: 1px solid var(--line);
  color: #777777;
  font-size: 0.82rem;
  line-height: 1.5;
  padding: 0.75rem 0.85rem;
}

.gallery-lightbox {
  align-items: center;
  bottom: 0;
  display: none;
  justify-content: center;
  left: 0;
  opacity: 0;
  padding: clamp(1rem, 3vw, 2.5rem);
  position: fixed;
  right: 0;
  top: 0;
  z-index: 140;
}

.gallery-image-open .gallery-lightbox {
  animation: modal-backdrop-enter 180ms ease forwards;
  display: flex;
}

.gallery-lightbox-backdrop {
  background:
    radial-gradient(circle at 50% 20%, rgba(74, 105, 105, 0.16), transparent 22rem),
    rgba(20, 20, 20, 0.55);
  border: 0;
  bottom: 0;
  cursor: zoom-out;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .gallery-lightbox-backdrop {
    -webkit-backdrop-filter: blur(14px) saturate(0.85);
    backdrop-filter: blur(14px) saturate(0.85);
  }
}

.gallery-lightbox-panel {
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.72);
  box-shadow: 0 2rem 5rem rgba(0, 0, 0, 0.34);
  display: grid;
  gap: 0.85rem;
  margin: 0;
  max-height: 92vh;
  max-width: min(94vw, 76rem);
  overflow: auto;
  padding: clamp(0.8rem, 2vw, 1.15rem);
  position: relative;
  transform: translateY(0.55rem) scale(0.985);
  width: max-content;
  z-index: 1;
}

.gallery-image-open .gallery-lightbox-panel {
  animation: project-dialog-enter 220ms ease forwards;
}

.gallery-lightbox-panel img {
  background: #f7f7f7;
  display: block;
  max-height: 78vh;
  max-width: min(88vw, 72rem);
  object-fit: contain;
  width: auto;
}

.gallery-lightbox-panel figcaption {
  color: #777777;
  font-size: 0.9rem;
  line-height: 1.55;
  max-width: 58rem;
}

.gallery-lightbox-close {
  align-items: center;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid var(--line);
  border-radius: 999px;
  color: #777777;
  display: inline-flex;
  font-size: 0.68rem;
  font-weight: 800;
  justify-self: end;
  letter-spacing: 0.12em;
  line-height: 1;
  padding: 0.62rem 0.86rem;
  text-transform: uppercase;
}

.gallery-lightbox-close:hover,
.gallery-lightbox-close:focus-visible {
  border-color: var(--accent);
  color: var(--accent);
}

.project-media-placeholder {
  align-content: center;
  border: 1px dashed rgba(74, 105, 105, 0.28);
  color: #8c9095;
  display: grid;
  min-height: 18rem;
  padding: 1.4rem;
}

.project-media-placeholder span {
  color: #666666;
  display: block;
  font-size: 1.08rem;
  line-height: 1.2;
}

.project-media-placeholder p {
  font-size: 0.9rem;
  line-height: 1.55;
  margin: 0.5rem 0 0;
  max-width: 24rem;
}

.project-notes-panel {
  background:
    radial-gradient(circle at 94% 0%, rgba(74, 105, 105, 0.08), transparent 8rem),
    rgba(255, 255, 255, 0.9);
  border-left: 1px solid var(--line);
  padding: clamp(1.2rem, 2.6vw, 2rem);
}

.project-showcase-notes-only .project-notes-panel {
  border-left: 0;
}

.project-notes-panel h4 {
  color: #555555;
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1.3;
  margin: 0 0 0.85rem;
  text-transform: uppercase;
}

.project-notes-panel p {
  color: #777777;
  font-size: 0.98rem;
  line-height: 1.75;
  margin: 0;
}

.project-notes-panel p + p {
  margin-top: 1rem;
}

.project-visual {
  align-content: center;
  aspect-ratio: 4 / 3;
  background:
    radial-gradient(circle at 30% 22%, rgba(255, 255, 255, 0.86), transparent 7rem),
    linear-gradient(135deg, rgba(74, 105, 105, 0.16), transparent 46%),
    linear-gradient(180deg, #f8f8f8, #ececec);
  color: #8c9095;
  display: grid;
  min-height: 19rem;
  overflow: hidden;
  padding: 1.6rem;
}

.project-visual img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.project-visual span {
  color: #666666;
  display: block;
  font-size: 1.22rem;
  line-height: 1.2;
}

.project-visual p {
  font-size: 0.92rem;
  line-height: 1.5;
  margin: 0.5rem 0 0;
}

.project-facts {
  background: rgba(255, 255, 255, 0.9);
  border-left: 1px solid var(--line);
  display: grid;
  padding: 1rem 1.25rem;
}

.project-facts div {
  border-bottom: 1px solid var(--line);
  padding: 0.9rem 0;
}

.project-facts div:last-child {
  border-bottom: 0;
}

.project-facts span,
.project-detail-cards h4,
.project-detail-sections h4,
.project-description h4 {
  color: #555555;
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1.3;
  margin: 0 0 0.35rem;
  text-transform: uppercase;
}

.project-facts strong {
  color: #777777;
  display: block;
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.45;
}

.project-detail-sections {
  display: grid;
  gap: 0.9rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 0.9rem;
}

.project-detail-section {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid var(--line);
  box-shadow: 0 0.9rem 1.8rem rgba(20, 20, 20, 0.06);
  min-height: 0;
  padding: 1.25rem;
}

.project-lab-section {
  grid-column: 1 / -1;
}

.project-lab-grid {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.project-lab-card {
  background: rgba(255, 255, 255, 0.58);
  border: 1px solid rgba(119, 119, 119, 0.13);
  border-radius: 0.5rem;
  padding: 1rem;
}

.project-lab-card h5 {
  color: var(--heading);
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 1.04rem;
  font-weight: 400;
  line-height: 1.35;
  margin: 0 0 0.45rem;
}

.project-lab-card p {
  margin: 0;
}

.project-lab-card .tag-list {
  margin-top: 0.8rem;
}

.project-lab-eyebrow {
  color: var(--accent);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  line-height: 1.2;
  margin: 0 0 0.45rem;
  text-transform: uppercase;
}

.project-notes-section {
  grid-column: 1 / -1;
}

.project-tool-section .tag-list {
  margin-top: 0;
}

.project-example-gallery {
  margin-top: 0.9rem;
}

.project-example-heading {
  align-items: end;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}

.project-example-heading h4 {
  color: #555555;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1.3;
  margin: 0;
  text-transform: uppercase;
}

.project-example-heading p {
  color: #888888;
  font-size: 0.82rem;
  line-height: 1.45;
  margin: 0;
  max-width: 25rem;
}

.project-example-grid {
  display: grid;
  gap: 0.9rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
}

.project-example-card {
  background: rgba(255, 255, 255, 0.74);
  border: 1px solid var(--line);
  box-shadow: 0 0.9rem 1.8rem rgba(20, 20, 20, 0.06);
  margin: 0;
  overflow: hidden;
}

.project-example-card img,
.project-example-card video {
  background: #f7f7f7;
  display: block;
  max-height: 34rem;
  object-fit: contain;
  width: 100%;
}

.project-example-card figcaption {
  border-top: 1px solid var(--line);
  color: #777777;
  font-size: 0.88rem;
  line-height: 1.55;
  padding: 0.95rem 1rem;
}

.project-detail-cards {
  display: grid;
  gap: 0.9rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 0.9rem;
}

.project-detail-cards section {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid var(--line);
  box-shadow: 0 0.9rem 1.8rem rgba(20, 20, 20, 0.06);
  min-height: 11rem;
  padding: 1.25rem;
}

.project-detail-cards p,
.project-detail-cards li,
.project-detail-sections p,
.project-detail-sections li,
.project-description p {
  color: #777777;
  font-size: 0.95rem;
  line-height: 1.65;
}

.project-detail-cards p,
.project-detail-sections p {
  margin: 0;
}

.project-detail-cards ul,
.project-detail-sections ul {
  margin: 0;
  padding-left: 1.1rem;
}

.project-resource-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.project-resource-link {
  align-items: center;
  background: rgba(255, 255, 255, 0.68);
  border: 1px solid var(--accent-border);
  border-radius: 999px;
  color: var(--accent);
  display: inline-flex;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  line-height: 1.2;
  padding: 0.55rem 0.72rem;
  text-decoration: none;
  text-transform: uppercase;
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    color 180ms ease,
    transform 180ms ease;
}

.project-resource-link:hover,
.project-resource-link:focus-visible {
  background: var(--accent-soft);
  border-color: var(--accent);
  color: var(--accent);
  transform: translateY(-1px);
}

.project-description {
  border-top: 2px solid var(--line);
  margin-top: 2rem;
  padding-top: 1.4rem;
}

.project-description p {
  margin: 0;
  max-width: 46rem;
}

@keyframes fade-in-body {
  to {
    opacity: 1;
  }
}

@keyframes featured-border-drift {
  to {
    --featured-border-angle: 360deg;
  }
}

@keyframes project-detail-enter {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes project-dialog-enter {
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes project-dialog-exit {
  from {
    opacity: 1;
    transform: translateY(0) scale(1);
  }

  to {
    opacity: 0;
    transform: translateY(0.85rem) scale(0.985);
  }
}

@keyframes modal-backdrop-enter {
  to {
    opacity: 1;
  }
}

@keyframes modal-backdrop-exit {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes mobile-view-enter {
  from {
    filter: blur(4px);
    opacity: 0;
    transform: translateY(1.4rem) scale(0.985);
  }

  to {
    filter: blur(0);
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes mobile-home-enter {
  from {
    filter: blur(3px);
    opacity: 0;
    transform: translateY(-0.8rem);
  }

  to {
    filter: blur(0);
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes mobile-transition-wash {
  0% {
    opacity: 0;
    transform: translateY(0.9rem);
  }

  35% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    transform: translateY(0);
  }
}

@media (max-width: 1280px) {
  :root {
    --sidebar-width: 30%;
  }

  body {
    font-size: 13pt;
  }

  .strata-sidebar {
    padding: 5rem 3rem;
  }

  .sidebar-links {
    left: 3rem;
    right: 3rem;
  }

  .strata-main {
    max-width: none;
    padding: 6rem 3rem 4rem;
  }

  .branch-view {
    bottom: 3rem;
    left: 3rem;
    right: 3rem;
    top: 6rem;
  }
}

@media (max-width: 980px) {
  body,
  body.view-home,
  body.branch-active {
    min-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
  }

  .strata-sidebar {
    min-height: auto;
    padding: 5rem 3rem;
    position: relative;
    text-align: center;
    width: 100%;
  }

  .profile-photo {
    margin-left: auto;
    margin-right: auto;
  }

  .sidebar-links {
    bottom: auto;
    margin-top: 2rem;
    position: static;
  }

  .strata-main {
    margin-left: 0;
    min-height: auto;
    overflow: visible;
    padding: 5rem 3rem;
    width: 100%;
  }

  .strata-main::after {
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(238, 242, 246, 0.86), rgba(255, 255, 255, 0));
    content: "";
    inset: 0;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    z-index: 30;
  }

  body.mobile-route-transition .strata-main::after {
    animation: mobile-transition-wash 520ms ease both;
  }

  .launch-view {
    animation: mobile-home-enter 460ms ease both;
    max-width: none;
  }

  .strata-main:not([data-view="home"]) .launch-view,
  .view-professional .launch-view,
  .view-personal .launch-view,
  .view-life .launch-view,
  .view-contact .launch-view {
    display: none;
  }

  .branch-view {
    bottom: auto;
    display: none;
    left: auto;
    max-height: none;
    overflow: visible;
    padding-right: 0;
    position: relative;
    right: auto;
    top: auto;
  }

  .view-professional .branch-professional,
  .view-personal .branch-personal,
  .view-life .branch-life,
  .view-contact .branch-contact {
    animation: none;
    display: block;
    filter: none;
    opacity: 1;
    transform: none;
  }

  .view-professional .branch-professional > .back-home,
  .view-professional .branch-professional > .branch-hero,
  .view-professional .professional-overview,
  .view-personal .branch-personal > .back-home,
  .view-personal .branch-personal > .branch-hero,
  .view-personal .branch-personal .professional-overview,
  .view-life .branch-life > .back-home,
  .view-life .branch-life > .branch-hero,
  .view-life .branch-life > .life-intro,
  .view-life .branch-life > .life-blog,
  .view-contact .branch-contact > .back-home,
  .view-contact .branch-contact > .branch-hero,
  .view-contact .branch-contact > .contact-panel {
    animation: mobile-view-enter 520ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
  }

  body.project-dialog-open,
  body.branch-active.project-dialog-open {
    overflow: hidden;
  }

  .project-detail-view {
    bottom: 3vh;
    left: 3vw;
    max-height: 94vh;
    right: 3vw;
    top: 3vh;
    z-index: 95;
  }

  .education-grid {
    grid-template-columns: 1fr;
  }

  .contact-panel,
  .contact-form {
    grid-template-columns: 1fr;
  }

  .certificates-grid {
    grid-template-columns: 1fr;
  }

  .choice-actions {
    grid-template-columns: 1fr;
  }

  .choice-button-featured {
    align-content: initial;
    grid-row: auto;
    min-height: 5.1rem;
    padding: 0.95rem 1.05rem;
  }

  .choice-button-featured .choice-button-copy strong {
    font-size: 1rem;
  }

  .choice-button-featured .choice-button-copy small {
    font-size: 0.86rem;
    line-height: 1.45;
    max-width: none;
  }

  .life-post {
    padding: 1.25rem 0;
  }

  .life-post h3 {
    font-size: 0.72rem;
  }

  .education-grid article {
    min-height: auto;
  }
}

@media (max-width: 700px) {
  body {
    font-size: 12pt;
  }

  .strata-sidebar {
    padding: 3.25rem 1.5rem;
  }

  .profile-photo {
    height: 5.75rem;
    width: 5.75rem;
  }

  .sidebar-inner p:not(.sidebar-role) {
    font-size: 1.15rem;
  }

  .strata-main {
    padding: 3rem 1.5rem;
  }

  .major h1 {
    font-size: 2.1rem;
  }

  .landing-about p {
    font-size: 1rem;
    line-height: 1.7;
  }

  .choice-button {
    min-height: auto;
    padding: 1.2rem;
  }

  .choice-actions,
  .career-snapshot,
  .core-skills-grid,
  .education-grid,
  .certificates-grid,
  .project-detail-cards,
  .project-detail-sections,
  .project-grid,
  .project-showcase,
  .section-heading,
  .skills-grid,
  .snapshot-actions,
  .snapshot-project-grid,
  .tools-platforms-grid,
  .life-intro {
    grid-template-columns: 1fr;
  }

  .life-photo-placeholder {
    min-height: 18rem;
  }

  .psu-mark {
    height: 4.75rem;
    width: 4.75rem;
  }

  .project-facts {
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .project-notes-panel {
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .project-showcase-notes-only .project-notes-panel {
    border-top: 0;
  }

  .project-showcase-media {
    min-height: 14rem;
  }

  .branch-view {
    bottom: auto;
    left: auto;
    right: auto;
    top: auto;
  }

  .branch-view h2 {
    font-size: 2rem;
  }

  .branch-hero > p:last-child {
    font-size: 1rem;
  }

  .branch-hero,
  .career-section {
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
  }

  .career-section {
    margin-top: 2.4rem;
    padding-top: 2rem;
  }

  .project-hover-gif {
    display: none;
  }

  .project-detail-hero h3 {
    font-size: 1.85rem;
  }

  .project-visual {
    min-height: 13rem;
  }

  .project-year-stack {
    gap: 2.1rem;
  }

  .project-year-group {
    padding-left: 0;
  }

  .project-year-stack::before {
    display: none;
  }

  .project-year-header {
    margin-bottom: 0.85rem;
  }

  .project-year-group > .project-grid {
    padding-left: 0;
  }

  .project-detail-view {
    bottom: 1rem;
    left: 1rem;
    max-height: calc(100dvh - 2rem);
    padding: 1.2rem;
    right: 1rem;
    top: 1rem;
  }

  .project-close {
    font-size: 0.68rem;
    padding: 0.58rem 0.8rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body,
  .branch-view,
  .choice-button-featured,
  .launch-view,
  .project-hover-gif,
  .strata-main::after,
  .rotating-word {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
