* { box-sizing: border-box; }

::selection { background: #00c896; }

html, body {
  margin: 0;
  font-size: 16px;
  word-break: keep-all;
  font-family: Pretendard, -apple-system, BlinkMacSystemFont, "Noto Sans KR", "Segoe UI",
    "Apple SD Gothic Neo", Roboto, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: -0.3px;
  color: #222;
  padding-bottom: 2rem;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
}

@media screen and (max-width: 960px) {
  html, body { font-size: 14px; }
}

body::before {
  position: fixed;
  z-index: 1;
  top: 0;
  display: block;
  content: "";
  width: 100%;
  height: 10px;
  background: linear-gradient(90deg, #1f7a4d, #00c896);
}

section { padding: 0 2rem; }

p { margin: 0 0 1rem; font-size: 1.1rem; line-height: 1.5; }

a { color: #1f7a4d; transition: color 0.3s ease; }
a:hover { color: #00c896; }

h1 { font-size: 5rem; line-height: 1.1; margin: 3.35rem 0; font-weight: 700; }
h2 { font-size: 3rem; margin: 4rem 0 2rem; font-weight: 700; }
h3, h4 { font-size: 2rem; margin: 0 0 1rem; font-weight: 700; }
h5 { font-size: 1.3rem; margin: 0 0 0.5rem; color: #333; font-weight: 700; }

@media screen and (max-width: 960px) {
  h1 { font-size: 3rem; }
  h4 { font-size: 1.5rem; }
}

ul { list-style: none; padding: 0; margin: 0 0 1rem; font-size: 1.1rem; }
ul > li { position: relative; padding: 0.2rem 0 0.2rem 1rem; line-height: 1.5; }
ul > li::before { position: absolute; left: 0; display: inline-block; content: "•"; color: #1f7a4d; }

code {
  font-family: ui-monospace, SFMono-Regular, Consolas, "D2Coding", monospace;
  font-size: 0.86em;
  background: #f3f5f7;
  padding: 1px 5px;
  border-radius: 3px;
  letter-spacing: 0;
  word-break: break-all;
}

.container { width: 100%; max-width: 50rem; margin: auto; }
.period-mark { color: #1f7a4d; }
.big-paragraph { font-size: 2rem; line-height: 1.4; font-weight: 500; }
@media screen and (max-width: 960px) {
  .big-paragraph { font-size: 1.5rem; }
}

.row { display: flex; padding: 3rem 0; border-bottom: 1px solid #eee; }
.row-left { flex-basis: 18rem; padding-right: 1rem; flex-shrink: 0; }
.row-right { flex-grow: 1; min-width: 0; }
@media screen and (max-width: 960px) {
  .row { flex-direction: column; }
  .row-left { flex-basis: 100%; padding-right: 0; padding-bottom: 1rem; }
}

.role { display: block; }
.project { padding: 1.5rem 0; }
.project:first-child { padding-top: 0; }
.time { display: block; margin-bottom: 1.5rem; }

.skill-group { padding: 1.2rem 0; border-bottom: 1px solid #eee; }
.skill-group:last-child { border-bottom: 0; }
.skill-group h5 { margin-bottom: 0.4rem; }
.skill-group p { margin: 0; }

.contact-list { margin-bottom: 0; display: flex; flex-wrap: wrap; gap: 0 1.5rem; }
.contact-list li { padding-left: 0; }
.contact-list li::before { content: none; }

@media print {
  @page { size: A4; margin: 15mm; }

  html, body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body { padding-bottom: 0; }
  body::before { display: none; }

  h1 { font-size: 2.6rem; margin: 0 0 1rem; }
  h2 { font-size: 1.6rem; margin: 2rem 0 1rem; }
  h3, h4 { font-size: 1.15rem; }
  .big-paragraph { font-size: 1.1rem; }

  a { text-decoration: none; }
  a[href^="http"]::after, a[href^="mailto"]::after {
    content: " (" attr(href) ")";
    font-size: 0.78em;
    color: #666;
    word-break: break-all;
  }

  .row, .project, .skill-group { break-inside: avoid; }
  h2, h3, h4 { break-after: avoid; }
}
