/* ═══ CV PAGE — matches main site design system ═══ */

/* Hero */
.cv-hero { padding: 1.2rem 0 2rem; }
.cv-hero .hero__grid { grid-template-columns: minmax(0,1.3fr) minmax(260px,0.7fr); }
.cv-hero .hero__content { gap: 1.2rem; }
.cv-hero h1 { font-size: clamp(2.4rem,4.5vw,4rem); max-width: 14ch; }
.cv-hero .hero__lead { font-size: clamp(1rem,1.6vw,1.12rem); }

.cv-badge {
  display: inline-flex; align-items: center; gap: .5rem;
  width: fit-content; padding: .44rem 1rem; border-radius: 999px;
  background: rgba(47,143,91,.08); border: 1px solid rgba(47,143,91,.18);
  color: var(--success); font-size: .88rem; font-weight: 700;
}
.cv-badge::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%;
  background: var(--success); animation: cvPulse 1.8s ease-in-out infinite;
}
@keyframes cvPulse {
  0%,100% { opacity: 1; box-shadow: 0 0 0 0 rgba(47,143,91,.4); }
  50% { opacity: .5; box-shadow: 0 0 0 6px rgba(47,143,91,0); }
}

.cv-photo-wrap {
  display: flex; justify-content: center; align-items: center;
}
.cv-photo-frame {
  width: 280px; height: 320px; border-radius: 24px; overflow: hidden;
  position: relative;
  border: 1px solid var(--line-strong);
  background: linear-gradient(180deg, rgba(255,250,244,.4) 0%, rgba(242,232,218,.6) 100%);
  box-shadow:
    0 24px 48px rgba(38,22,12,.12),
    0 8px 16px rgba(38,22,12,.06);
}
.cv-photo-frame img {
  width: 100%; height: 100%; object-fit: cover; object-position: center top;
}
.cv-photo-frame::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(34,27,24,.2) 100%);
  pointer-events: none;
}



.cv-contact-row {
  display: flex; flex-wrap: wrap; gap: .7rem; margin-top: .2rem;
}
.cv-contact-pill {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .48rem .95rem; border-radius: 999px;
  border: 1px solid var(--line); background: rgba(255,255,255,.55);
  font-size: .88rem; font-weight: 700; color: var(--muted);
  transition: all .22s ease; box-shadow: 0 6px 14px rgba(58,33,18,.03);
}
.cv-contact-pill:hover {
  border-color: var(--line-strong); color: var(--ink);
  transform: translateY(-2px); background: rgba(255,255,255,.8);
}
.cv-contact-pill svg { width: 16px; height: 16px; flex-shrink: 0; }

/* Stats bar */
.cv-stats {
  display: grid; grid-template-columns: repeat(4,1fr); gap: .85rem;
  margin-top: 1.2rem;
}
.cv-stat {
  padding: 1.1rem 1rem; border-radius: 22px; text-align: center;
  border: 1px solid var(--card-line);
  background: linear-gradient(180deg, var(--card-dark) 0%, var(--card-dark-2) 100%);
  color: var(--card-text); box-shadow: var(--shadow-card);
  transition: transform .25s ease, box-shadow .25s ease;
}
.cv-stat:hover { transform: translateY(-4px); box-shadow: 0 28px 60px rgba(38,22,12,.18); }
.cv-stat__num {
  font-family: "Space Grotesk","Manrope",sans-serif;
  font-size: 1.8rem; font-weight: 700; line-height: 1.1;
  background: linear-gradient(135deg, var(--accent-2), var(--accent));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.cv-stat__label { color: var(--card-muted); font-size: .82rem; font-weight: 700; margin-top: .3rem; }

/* Stack section */
.cv-stack-grid { display: grid; gap: .85rem; }
.cv-stack-group {
  padding: 1.2rem 1.3rem; border-radius: 24px;
  border: 1px solid var(--line); background: var(--surface);
  box-shadow: var(--shadow-soft); transition: border-color .25s;
}
.cv-stack-group:hover { border-color: var(--line-strong); }
.cv-stack-label {
  font-family: "Space Grotesk","Manrope",sans-serif;
  font-size: .76rem; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--accent-dark); margin-bottom: .8rem;
  display: flex; align-items: center; gap: .5rem;
}
.cv-stack-label span { font-size: 1rem; }
.cv-pills { display: flex; flex-wrap: wrap; gap: .45rem; }
.cv-pill {
  display: inline-flex; align-items: center;
  padding: .4rem .85rem; border-radius: 999px;
  border: 1px solid var(--line); background: rgba(255,255,255,.55);
  font-size: .84rem; font-weight: 700; color: var(--muted);
  transition: all .2s ease;
}
.cv-pill:hover { color: var(--ink); background: rgba(255,255,255,.82); transform: translateY(-1px); }
.cv-pill--accent { border-color: rgba(247,105,45,.2); color: var(--accent-dark); }

/* Projects */
.cv-proj-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: .95rem; }
.cv-proj {
  display: flex; flex-direction: column; gap: .9rem;
  padding: 1.25rem; border-radius: var(--radius);
  border: 1px solid var(--card-line);
  background: linear-gradient(180deg, var(--card-dark) 0%, var(--card-dark-2) 100%);
  color: var(--card-text); box-shadow: var(--shadow-card);
  transition: transform .3s ease, box-shadow .3s ease;
}
.cv-proj:hover { transform: translateY(-5px); box-shadow: 0 28px 64px rgba(38,22,12,.2); }
.cv-proj__icon {
  width: 40px; height: 40px; border-radius: 14px;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08);
  display: flex; align-items: center; justify-content: center; font-size: 1.2rem;
}
.cv-proj__name {
  font-family: "Space Grotesk","Manrope",sans-serif;
  font-weight: 800; font-size: 1.02rem; line-height: 1.2;
}
.cv-proj__desc { color: var(--card-muted); font-size: .88rem; line-height: 1.55; flex: 1; }
.cv-proj__tags { display: flex; flex-wrap: wrap; gap: .35rem; }
.cv-proj__tag {
  padding: .22rem .6rem; border-radius: 999px;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.06);
  font-size: .74rem; font-weight: 700; color: rgba(255,236,224,.7);
}
.cv-proj__link {
  color: #f4c3a2; font-size: .82rem; font-weight: 700;
  text-decoration: underline; text-underline-offset: .18em;
  text-decoration-thickness: 1px; transition: color .2s;
}
.cv-proj__link:hover { color: #fff8f2; }

/* Timeline */
.cv-timeline { display: flex; flex-direction: column; position: relative; padding-left: 2rem; }
.cv-timeline::before {
  content: ""; position: absolute; left: 0; top: 8px; bottom: 8px;
  width: 2px; border-radius: 999px;
  background: linear-gradient(180deg, var(--accent), rgba(247,105,45,.15));
}
.cv-tl-item { position: relative; padding: 0 0 2.5rem 2rem; }
.cv-tl-item::before {
  content: ""; position: absolute; left: -5px; top: 6px;
  width: 12px; height: 12px; border-radius: 50%;
  background: var(--accent); border: 3px solid var(--bg);
  box-shadow: 0 0 0 3px rgba(247,105,45,.15);
}
.cv-tl-item--dim::before { background: var(--muted-soft); box-shadow: none; }
.cv-tl-period {
  font-family: "Space Grotesk","Manrope",sans-serif;
  font-size: .78rem; font-weight: 700; color: var(--accent-dark);
  letter-spacing: .04em; text-transform: uppercase; margin-bottom: .4rem;
}
.cv-tl-item--dim .cv-tl-period { color: var(--muted-soft); }
.cv-tl-title { font-size: 1.15rem; font-weight: 800; margin-bottom: .15rem; }
.cv-tl-sub { color: var(--muted); font-size: .88rem; margin-bottom: .7rem; }
.cv-tl-bullets { list-style: none; padding: 0; display: flex; flex-direction: column; gap: .4rem; }
.cv-tl-bullets li {
  position: relative; padding-left: 1.1rem;
  color: var(--muted); font-size: .9rem; line-height: 1.5;
}
.cv-tl-bullets li::before {
  content: ""; position: absolute; left: 0; top: .6em;
  width: 6px; height: 6px; border-radius: 50%;
  background: linear-gradient(135deg, var(--accent-2), var(--accent));
}
.cv-tl-item--dim .cv-tl-bullets li::before { background: var(--muted-soft); }

/* Education + Languages grid */
.cv-edu-lang { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; align-items: start; }
.cv-edu-list { display: flex; flex-direction: column; gap: .8rem; }
.cv-edu-item {
  padding: 1.1rem 1.2rem; border-radius: 22px;
  border: 1px solid var(--line); background: var(--surface);
  box-shadow: var(--shadow-soft); transition: border-color .2s, transform .2s;
}
.cv-edu-item:hover { border-color: var(--line-strong); transform: translateY(-2px); }
.cv-edu-degree { font-weight: 800; font-size: .94rem; margin-bottom: .15rem; }
.cv-edu-school { color: var(--muted); font-size: .85rem; }
.cv-edu-period {
  color: var(--accent-dark); font-size: .78rem; font-weight: 700; margin-top: .3rem;
  font-family: "Space Grotesk","Manrope",sans-serif;
}

.cv-lang-list { display: flex; flex-direction: column; gap: .7rem; }
.cv-lang-item {
  padding: .9rem 1.2rem; border-radius: 22px;
  border: 1px solid var(--line); background: var(--surface);
  box-shadow: var(--shadow-soft); display: flex; align-items: center; gap: .9rem;
  transition: border-color .2s;
}
.cv-lang-item:hover { border-color: var(--line-strong); }
.cv-lang-flag { font-size: 1.5rem; line-height: 1; }
.cv-lang-info { flex: 1; }
.cv-lang-name { font-weight: 800; font-size: .92rem; }
.cv-lang-level { color: var(--muted); font-size: .82rem; margin-top: .1rem; }
.cv-lang-bar { height: 3px; border-radius: 999px; background: var(--line); margin-top: .45rem; overflow: hidden; }
.cv-lang-fill {
  height: 100%; border-radius: 999px;
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  transition: width 1.2s ease;
}

/* CTA */
.cv-cta {
  padding: 1.8rem; border-radius: var(--radius);
  border: 1px solid var(--card-line);
  background: linear-gradient(180deg, var(--card-dark), var(--card-dark-2));
  color: var(--card-text); box-shadow: var(--shadow-card);
  display: flex; flex-direction: column; gap: 1.2rem;
}
.cv-cta h2 { max-width: 16ch; }
.cv-cta p { color: var(--card-muted); max-width: 50rem; }

/* Responsive */
@media (max-width: 1120px) {
  .cv-hero .hero__grid { grid-template-columns: 1fr; }
  .cv-photo-wrap { order: 2; }
  .cv-proj-grid { grid-template-columns: repeat(2,1fr); }
  .cv-stats { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 920px) {
  .cv-proj-grid { grid-template-columns: 1fr; }
  .cv-edu-lang { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .cv-stats { grid-template-columns: 1fr 1fr; }
  .cv-photo-frame { width: 220px; height: 260px; }
  .cv-contact-row { flex-direction: column; align-items: stretch; }
}
