html {
  min-height: 100%;
  scroll-behavior: smooth;
  background: #f3f0e8;
}

body {
  min-height: 100%;
  margin: 0;
  overflow-x: hidden;
  background: #f3f0e8;
}
.gs-portfolio {
  --gs-paper: #f3f0e8; --gs-ink: #171713; --gs-text: #514c43; --gs-accent: #006783; --gs-line: #cfc8ba;
  --gs-width: min(70rem, calc(100% - 3rem));
  width: 100%; min-height: 100vh; margin: 0; background: var(--gs-paper); color: var(--gs-text);
  font-family: Inter, "Segoe UI", Arial, sans-serif; font-size: 1rem; line-height: 1.7; text-align: left !important;
  -webkit-font-smoothing: antialiased;
}

.gs-portfolio *, .gs-portfolio *::before, .gs-portfolio *::after { box-sizing: border-box; }

.gs-portfolio :where(h1, h2, h3, p, li) {
  margin-top: 0; overflow-wrap: break-word; text-align: left !important;
}

.gs-portfolio :where(h1, h2, h3) {
  color: var(--gs-ink); hyphens: none; word-break: normal; overflow-wrap: normal;
}

.gs-portfolio a {
  color: inherit; text-decoration-thickness: .08em; text-underline-offset: .22em; text-decoration-skip-ink: auto;
}

.gs-portfolio a:hover { color: var(--gs-accent); }

.gs-portfolio :where(a, button):focus {
  outline: 3px solid var(--gs-ink); outline-offset: 4px; border-radius: 2px;
}

.gs-portfolio:focus, .gs-portfolio main:focus { outline: none; }

@supports selector(:focus-visible) {
  .gs-portfolio :where(a, button):focus:not(:focus-visible) { outline: none; }
}

.gs-visually-hidden {
  position: absolute !important; width: 1px !important; height: 1px !important;
  margin: -1px !important; padding: 0 !important; overflow: hidden !important;
  clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important;
  white-space: nowrap !important; border: 0 !important;
}

.gs-skip-link {
  position: fixed; top: 12px; left: 12px; z-index: 1000;
  min-height: 44px; display: inline-flex; align-items: center; padding: 10px 15px;
  transform: translateY(-180%); background: var(--gs-ink); color: #fff !important;
  font-weight: 800; text-decoration: none;
}

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

@supports selector(:focus-visible) {
  .gs-skip-link:focus:not(:focus-visible) { transform: translateY(-180%); }
}

.gs-site-header, .gs-hero, .gs-section, .gs-contact {
  width: var(--gs-width); margin-inline: auto;
}

.gs-site-header {
  min-height: 84px; display: flex; align-items: center; justify-content: space-between;
  gap: 16px; border-bottom: 1px solid var(--gs-line);
}

.gs-signature {
  min-height: 44px; display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 12px;
  color: var(--gs-ink) !important; text-decoration: none !important;
}

.gs-signature strong, .gs-hero h1, .gs-section-heading h2, .gs-contact h2,
.gs-project-number, .gs-project h3, .gs-reading-text p, .gs-education-item h3 {
  font-family: Georgia, "Times New Roman", serif;
}

.gs-signature strong { font-size: 1.15rem; }

.gs-signature > span:not(.gs-visually-hidden) {
  font-size: .75rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase;
}

.gs-nav, .gs-projects, .gs-education-list, .gs-project-details {
  margin: 0; padding: 0; list-style: none;
}

.gs-nav {
  display: flex; flex-wrap: nowrap; justify-content: flex-end; gap: 12px;
}

.gs-nav li, .gs-projects > li, .gs-education-list > li { margin: 0; }

.gs-nav a {
  min-height: 44px; display: inline-flex; align-items: center; color: var(--gs-ink);
  font-size: .75rem; font-weight: 800; letter-spacing: .07em;
  text-decoration: none; text-transform: uppercase; white-space: nowrap;
}

.gs-nav a:hover, .gs-nav a:focus-visible { text-decoration: underline; }

.gs-nav a[aria-current="page"] {
  color: var(--gs-accent); text-decoration: underline;
}

.gs-hero {
  min-height: calc(100svh - 84px); display: flex; flex-direction: column;
  align-items: flex-start; justify-content: center; padding-block: clamp(80px, 11vw, 145px);
}

.gs-overline, .gs-section-index, .gs-project-type, .gs-education-date {
  color: var(--gs-accent) !important; font-size: .78rem; font-weight: 800;
  letter-spacing: .07em; text-transform: uppercase;
}

.gs-overline {
  display: flex; align-items: center; gap: 12px; margin-bottom: 28px;
}

.gs-overline::before {
  width: 38px; height: 2px; flex: 0 0 auto; content: ""; background: var(--gs-accent);
}

.gs-hero h1 {
  max-width: 940px; margin-bottom: 34px; font-size: clamp(2.8rem, 7vw, 6.8rem);
  font-weight: 400; letter-spacing: -.025em; line-height: 1.04;
}

.gs-hero h1 em, .gs-contact h2 em {
  color: var(--gs-accent); font-weight: 400;
}

.gs-lead {
  max-width: 760px; margin-bottom: 28px; font-size: clamp(1.05rem, 1.5vw, 1.25rem);
}

.gs-text-link {
  min-height: 44px; display: inline-flex; align-items: center;
  color: var(--gs-ink) !important; font-weight: 800; text-decoration-color: var(--gs-accent);
}

.gs-text-link::after {
  margin-left: 9px; content: "↓"; color: var(--gs-accent); transition: transform 160ms ease;
}

.gs-text-link:hover::after { transform: translateY(3px); }

.gs-section {
  padding-block: clamp(80px, 11vw, 140px); border-top: 1px solid var(--gs-ink); scroll-margin-top: 24px;
}

.gs-section-heading {
  display: grid; gap: 14px; margin-bottom: clamp(48px, 7vw, 82px);
}

.gs-section-heading h2, .gs-contact h2 {
  max-width: 960px; margin-bottom: 0; font-size: clamp(2.65rem, 5.6vw, 5.5rem);
  font-weight: 400; letter-spacing: -.04em; line-height: 1.02;
}

.gs-section-intro, .gs-contact-intro {
  max-width: 730px; margin: 20px 0 0; font-size: 1.08rem;
}

.gs-projects, .gs-education-list { border-top: 1px solid var(--gs-line); }

.gs-project {
  display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 34px;
  padding-block: clamp(44px, 6vw, 68px); border-bottom: 1px solid var(--gs-line);
}

.gs-project-number {
  color: var(--gs-accent) !important; font-style: italic;
}

.gs-project-main { min-width: 0; max-width: 900px; }
.gs-project-type { margin-bottom: 10px; }

.gs-project h3 {
  margin-bottom: 18px; font-size: clamp(2.35rem, 4.8vw, 4.6rem);
  font-weight: 400; letter-spacing: -.035em; line-height: 1.02;
}

.gs-project-summary {
  max-width: 720px; margin-bottom: 32px; font-size: 1.08rem;
}

.gs-project-details {
  max-width: 860px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 48px;
}

.gs-project-details li, .gs-project-details p, .gs-education-item p, .gs-footer-line p {
  margin-bottom: 0;
}

.gs-detail-label {
  margin-bottom: 7px !important; color: var(--gs-ink); font-size: .78rem;
  letter-spacing: .06em; text-transform: uppercase;
}

.gs-reading-text { max-width: 820px; }

.gs-reading-text p {
  margin-bottom: 25px; font-size: clamp(1.25rem, 2vw, 1.7rem); line-height: 1.55;
}

.gs-reading-text p:last-child { margin-bottom: 0; }

.gs-education-item {
  display: grid; grid-template-columns: minmax(150px, 200px) minmax(0, 1fr);
  gap: clamp(28px, 6vw, 80px); padding-block: clamp(34px, 5vw, 52px);
  border-bottom: 1px solid var(--gs-line);
}

.gs-education-item h3 {
  max-width: 800px; margin-bottom: 10px; font-size: clamp(1.65rem, 3vw, 2.6rem);
  font-weight: 400; line-height: 1.18;
}

.gs-education-item p { max-width: 730px; }

.gs-courses-page .gs-education-item .gs-project-details { margin-top: 24px; }

.gs-education-links {
  display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 18px !important;
}

.gs-education-links a, .gs-contact-links a, .gs-footer-line a {
  min-height: 44px; display: inline-flex; align-items: center;
  color: var(--gs-ink) !important; font-weight: 800; text-decoration-color: var(--gs-accent);
}

.gs-contact {
  padding-block: clamp(80px, 12vw, 150px) 38px;
  border-top: 1px solid var(--gs-ink); scroll-margin-top: 24px;
}

.gs-contact-grid {
  display: grid; gap: clamp(34px, 5vw, 56px);
}

.gs-contact-links {
  display: flex; flex-wrap: nowrap; align-items: center; justify-content: flex-start;
  gap: clamp(24px, 4vw, 52px); margin: 0; font-style: normal;
}

.gs-contact-links a {
  gap: 10px; font-size: clamp(1.05rem, 2vw, 1.3rem);
}

.gs-contact-links a::before {
  width: 1.15em; height: 1.15em; flex: 0 0 1.15em; content: "";
  background: var(--gs-accent); -webkit-mask: var(--gs-social-icon) center / contain no-repeat;
  mask: var(--gs-social-icon) center / contain no-repeat;
}

.gs-contact-links a[href^="mailto:"] {
  --gs-social-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}

.gs-contact-links a[href*="github.com"] {
  --gs-social-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 .3a12 12 0 0 0-3.79 23.4c.6.11.82-.26.82-.58v-2.23c-3.34.73-4.04-1.61-4.04-1.61-.55-1.39-1.33-1.76-1.33-1.76-1.09-.75.08-.73.08-.73 1.21.09 1.84 1.24 1.84 1.24 1.07 1.84 2.81 1.31 3.5 1 .11-.78.42-1.31.76-1.61-2.67-.31-5.47-1.34-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.12-.3-.54-1.52.12-3.18 0 0 1.01-.32 3.3 1.23a11.5 11.5 0 0 1 6.01 0c2.29-1.55 3.3-1.23 3.3-1.23.65 1.66.24 2.88.12 3.18.77.84 1.24 1.91 1.24 3.22 0 4.61-2.81 5.62-5.48 5.92.43.37.81 1.1.81 2.22v3.29c0 .32.22.69.83.58A12 12 0 0 0 12 .3Z'/%3E%3C/svg%3E");
}

.gs-contact-links a[href*="linkedin.com"] {
  --gs-social-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M20.45 20.45h-3.56v-5.57c0-1.33-.03-3.04-1.85-3.04-1.85 0-2.14 1.45-2.14 2.94v5.67H9.35V9h3.42v1.56h.04c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.46v6.28ZM5.34 7.43a2.06 2.06 0 1 1 0-4.12 2.06 2.06 0 0 1 0 4.12Zm1.47 13.02H3.86V9h2.95v11.45ZM22.23 0H1.77C.79 0 0 .77 0 1.73v20.54C0 23.23.79 24 1.77 24h20.45C23.2 24 24 23.23 24 22.27V1.73C24 .77 23.2 0 22.22 0h.01Z'/%3E%3C/svg%3E");
}

.gs-footer-line {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  margin-top: clamp(72px, 10vw, 120px); padding-top: 25px;
  border-top: 1px solid var(--gs-line); font-size: .88rem;
}

@media (max-width: 760px) {
  .gs-portfolio { --gs-width: min(70rem, calc(100% - 2rem)); }

  .gs-site-header {
    min-height: auto; align-items: flex-start; flex-direction: column;
    justify-content: center; gap: 8px; padding-block: 18px;
  }

  .gs-nav { flex-wrap: wrap; justify-content: flex-start; gap: 2px 14px; }
  .gs-nav a { white-space: normal; }
  .gs-hero { min-height: auto; padding-block: 80px 96px; }

  .gs-project, .gs-education-item { grid-template-columns: 1fr; }
  .gs-project { gap: 8px; }
  .gs-project-details { grid-template-columns: 1fr; }
  .gs-education-item { gap: 8px; }
  .gs-contact-links { flex-wrap: wrap; gap: 12px 28px; }
}

@media (max-width: 420px) {
  .gs-signature > span:not(.gs-visually-hidden) { width: 100%; }
  .gs-nav { column-gap: 12px; }
  .gs-nav a { font-size: .72rem; }
  .gs-hero h1 { font-size: clamp(2.55rem, 13.5vw, 3.7rem); }

  .gs-section-heading h2, .gs-contact h2 {
    font-size: clamp(2.35rem, 12vw, 3.4rem);
  }

  .gs-footer-line { align-items: flex-start; flex-direction: column; }
}

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

  .gs-portfolio *, .gs-portfolio *::before, .gs-portfolio *::after {
    scroll-behavior: auto !important; animation-duration: .01ms !important;
    animation-iteration-count: 1 !important; transition-duration: .01ms !important;
  }
}

@media (prefers-contrast: more) {
  .gs-portfolio { --gs-text: #24211d; --gs-accent: #004f66; --gs-line: #716a60; }
}

@media (forced-colors: active) {
  .gs-portfolio :where(a, button):focus { outline-color: CanvasText; }
  .gs-overline::before { background: CanvasText; }
}
