:root {
  --green-dark: #183d21;
  --green-deep: #102c18;
  --green: #3f7f36;
  --green-light: #edf4e8;
  --olive: #8a9b31;
  --olive-light: #cbd8a4;

  --background: #f8faf6;
  --white: #ffffff;
  --text: #202820;
  --muted: #687169;

  --border: rgba(32, 64, 35, 0.14);
  --shadow: 0 18px 50px rgba(25, 55, 29, 0.1);

  --container: 1120px;
}

* {
  box-sizing: border-box;
}

html {
  max-width: 100%;
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  max-width: 100%;
  margin: 0;
  color: var(--text);
  background: var(--background);
  font-family:
    Inter,
    ui-sans-serif,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
  line-height: 1.7;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

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

.container {
  width: min(calc(100% - 40px), var(--container));
  margin-inline: auto;
}

.container.narrow {
  max-width: 960px;
}

.section {
  padding: 105px 0;
}

.section-light {
  background: var(--white);
}

.eyebrow {
  display: block;
  margin: 0 0 15px;
  color: var(--green);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.eyebrow-light {
  color: var(--olive-light);
}

.section-heading {
  max-width: 780px;
  margin-bottom: 55px;
}

.section-heading h2,
.about-content h2,
.contact-content h2 {
  margin: 0;
  font-size: clamp(2.2rem, 4.5vw, 4rem);
  line-height: 1.08;
  letter-spacing: -0.045em;
}

.section-heading p {
  max-width: 680px;
  margin: 22px 0 0;
  color: var(--muted);
  font-size: 1.04rem;
}

/* Header */

.topbar {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  padding: 16px 0;
  transition:
    padding 180ms ease,
    background 180ms ease,
    border-color 180ms ease;
}

.topbar.scrolled {
  padding: 10px 0;
  background: rgba(248, 250, 246, 0.94);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(14px);
}

.topbar-inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}

.logo {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 12px;
  font-size: 0.95rem;
  font-weight: 750;
}

.logo-mark {
  width: 40px;
  height: 40px;
  flex: 0 0 auto;
}

.logo span {
  min-width: 0;
}

.nav {
  display: flex;
  align-items: center;
  gap: 27px;
}

.nav a {
  color: #445046;
  font-size: 0.9rem;
  font-weight: 650;
  transition: color 180ms ease;
}

.nav a:hover {
  color: var(--green);
}

.nav-button {
  padding: 10px 18px;
  color: var(--white) !important;
  background: var(--green-dark);
  border-radius: 999px;
}

.menu-button {
  display: none;
  width: 42px;
  height: 42px;
  padding: 10px;
  border: 1px solid var(--border);
  background: var(--white);
  border-radius: 50%;
  cursor: pointer;
  flex: 0 0 auto;
}

.menu-button span {
  display: block;
  width: 100%;
  height: 2px;
  margin: 5px 0;
  background: var(--green-dark);
  transition:
    transform 180ms ease,
    opacity 180ms ease;
}

/* Hero */

.hero {
  min-height: 90vh;
  padding: 155px 0 105px;
  background:
    radial-gradient(
      circle at 84% 15%,
      rgba(138, 155, 49, 0.12),
      transparent 30%
    ),
    linear-gradient(
      135deg,
      #f8faf6 0%,
      #edf4e8 100%
    );
}

.hero-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 75px;
  align-items: center;
}

.hero h1 {
  max-width: 780px;
  margin: 0;
  font-size: clamp(3.4rem, 7vw, 6.3rem);
  line-height: 0.98;
  letter-spacing: -0.065em;
}

.hero h1 span {
  display: block;
  color: var(--green);
}

.hero-lead {
  max-width: 650px;
  margin: 30px 0 0;
  color: var(--muted);
  font-size: 1.15rem;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 13px;
  margin-top: 35px;
}

.button {
  display: inline-flex;
  min-height: 52px;
  padding: 0 23px;
  border: 1px solid transparent;
  border-radius: 999px;
  align-items: center;
  justify-content: center;
  font-weight: 750;
  transition:
    transform 180ms ease,
    background 180ms ease,
    border-color 180ms ease;
}

.button:hover {
  transform: translateY(-2px);
}

.button.primary {
  color: var(--white);
  background: var(--green-dark);
}

.button.primary:hover {
  background: #23542c;
}

.button.secondary {
  color: var(--green-dark);
  background: transparent;
  border-color: var(--border);
}

.button.secondary:hover {
  background: var(--white);
}

.button.light {
  color: var(--green-dark);
  background: var(--white);
}

.hero-visual {
  display: flex;
  min-height: 450px;
  padding: 45px;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 36px;
  box-shadow: var(--shadow);
  align-items: center;
  justify-content: center;
}

.hero-logo {
  width: 100%;
  max-width: 380px;
}

/* Profile */

.profile-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 45px;
  margin-bottom: 70px;
}

.profile-intro p {
  margin: 0;
  color: var(--muted);
  font-size: 1.05rem;
}

.focus-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--border);
}

.focus-item {
  padding: 35px 28px;
  border-right: 1px solid var(--border);
}

.focus-item:first-child {
  padding-left: 0;
}

.focus-item:last-child {
  padding-right: 0;
  border-right: 0;
}

.focus-number {
  display: block;
  margin-bottom: 45px;
  color: var(--olive);
  font-size: 0.8rem;
  font-weight: 800;
}

.focus-item h3 {
  margin: 0 0 13px;
  font-size: 1.25rem;
  line-height: 1.3;
}

.focus-item p {
  margin: 0;
  color: var(--muted);
  font-size: 0.93rem;
}

/* Experience */

.experience-list {
  border-top: 1px solid var(--border);
}

.experience-item {
  display: grid;
  grid-template-columns: 190px 1fr;
  gap: 55px;
  padding: 48px 0;
  border-bottom: 1px solid var(--border);
}

.experience-period span {
  color: var(--green);
  font-size: 0.9rem;
  font-weight: 800;
}

.company {
  display: block;
  margin-bottom: 8px;
  color: var(--olive);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.experience-content h3 {
  margin: 0 0 17px;
  font-size: 1.7rem;
  line-height: 1.25;
  letter-spacing: -0.025em;
}

.experience-content p {
  max-width: 760px;
  margin: 0;
  color: var(--muted);
}

.experience-content p + p {
  margin-top: 14px;
}

/* Education */

.education-section {
  color: var(--white);
  background: var(--green-dark);
}

.education-section .eyebrow {
  color: var(--olive-light);
}

.education-grid {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 90px;
}

.education-content {
  padding-top: 8px;
}

.education-school,
.education-period {
  display: block;
}

.education-school {
  font-size: 1.45rem;
  font-weight: 750;
}

.education-period {
  margin-top: 5px;
  color: var(--olive-light);
  font-size: 0.9rem;
}

.education-content p {
  max-width: 680px;
  margin: 25px 0 0;
  color: rgba(255, 255, 255, 0.72);
}

.education-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 30px;
}

.education-tags span {
  padding: 8px 13px;
  background: rgba(255, 255, 255, 0.09);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  font-size: 0.8rem;
}

/* About */

.about-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 90px;
}

.about-content p {
  max-width: 680px;
  margin: 26px 0 0;
  color: var(--muted);
  font-size: 1.04rem;
}

.qualities {
  padding-left: 50px;
  border-left: 1px solid var(--border);
}

.qualities h3 {
  margin: 0 0 23px;
  font-size: 1.25rem;
}

.qualities ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.qualities li {
  padding: 12px 0;
  color: var(--muted);
  border-bottom: 1px solid var(--border);
}

/* Contact */

.contact-section {
  padding-bottom: 35px;
  color: var(--white);
  background: var(--green-deep);
}

.contact-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 90px;
}

.contact-content p {
  max-width: 470px;
  margin: 24px 0 32px;
  color: rgba(255, 255, 255, 0.66);
}

.contact-details {
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.contact-detail {
  display: grid;
  grid-template-columns: 115px minmax(0, 1fr);
  gap: 30px;
  padding: 23px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.contact-detail span {
  color: var(--olive-light);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.contact-detail a,
.contact-detail p {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.footer {
  display: flex;
  padding-top: 80px;
  color: rgba(255, 255, 255, 0.46);
  justify-content: space-between;
  gap: 20px;
  font-size: 0.78rem;
}

/* Reveal */

.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 650ms ease,
    transform 650ms ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Tablet */

@media (max-width: 900px) {
  .section {
    padding: 80px 0;
  }

  .hero {
    min-height: auto;
    padding: 135px 0 80px;
  }

  .hero-grid,
  .education-grid,
  .about-grid,
  .contact-grid {
    grid-template-columns: 1fr;
  }

  .hero-grid {
    gap: 55px;
  }

  .hero-content {
    max-width: 700px;
  }

  .hero-visual {
    width: 100%;
    min-height: 340px;
    padding: 40px;
  }

  .hero-logo {
    max-width: 330px;
  }

  .profile-intro {
    grid-template-columns: 1fr;
    gap: 20px;
  }

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

  .focus-item,
  .focus-item:first-child,
  .focus-item:last-child {
    padding: 30px 0;
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }

  .focus-item:last-child {
    border-bottom: 0;
  }

  .focus-number {
    margin-bottom: 14px;
  }

  .education-grid,
  .about-grid,
  .contact-grid {
    gap: 45px;
  }

  .qualities {
    padding-left: 0;
    border-left: 0;
  }
}

/* Mobile */

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

  .container,
  .container.narrow {
    width: calc(100% - 40px);
    max-width: none;
  }

  .section {
    padding: 64px 0;
  }

  .section-heading {
    margin-bottom: 35px;
  }

  .section-heading h2,
  .about-content h2,
  .contact-content h2 {
    font-size: clamp(2rem, 10vw, 2.75rem);
    line-height: 1.08;
    letter-spacing: -0.04em;
  }

  .eyebrow {
    margin-bottom: 10px;
    font-size: 0.7rem;
  }

  .topbar {
    padding: 10px 0;
    background: rgba(248, 250, 246, 0.96);
    border-bottom: 1px solid var(--border);
    backdrop-filter: blur(14px);
  }

  .topbar.scrolled {
    padding: 10px 0;
  }

  .logo {
    gap: 9px;
    font-size: 0.88rem;
  }

  .logo-mark {
    width: 36px;
    height: 36px;
  }

  .menu-button {
    position: relative;
    z-index: 103;
    display: block;
    width: 40px;
    height: 40px;
    padding: 9px;
  }

  .nav {
    position: absolute;
    z-index: 102;
    top: calc(100% + 10px);
    right: 0;
    left: 0;
    display: flex;
    padding: 12px;
    background: rgba(255, 255, 255, 0.99);
    border: 1px solid var(--border);
    border-radius: 18px;
    box-shadow: var(--shadow);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition:
      opacity 180ms ease,
      visibility 180ms ease,
      transform 180ms ease;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
  }

  .nav.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  .nav a {
    padding: 12px 14px;
    border-radius: 10px;
    font-size: 0.95rem;
  }

  .nav a:hover {
    background: var(--green-light);
  }

  .nav-button {
    margin-top: 5px;
    padding: 12px 14px !important;
    text-align: center;
  }

  .menu-button[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .menu-button[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
  }

  .menu-button[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .hero {
    min-height: auto;
    padding: 112px 0 58px;
  }

  .hero-grid {
    display: flex;
    gap: 40px;
    flex-direction: column;
  }

  .hero-content {
    order: 1;
  }

  .hero-visual {
    order: 2;
  }

  .hero h1 {
    max-width: 100%;
    font-size: clamp(2.9rem, 14vw, 4rem);
    line-height: 1;
    letter-spacing: -0.055em;
  }

  .hero h1 span {
    margin-top: 4px;
  }

  .hero-lead {
    margin-top: 22px;
    font-size: 1rem;
    line-height: 1.65;
  }

  .hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 28px;
  }

  .button {
    width: 100%;
    min-height: 50px;
    padding: 0 18px;
  }

  .hero-visual {
    min-height: auto;
    padding: 30px 22px;
    border-radius: 22px;
    box-shadow: none;
  }

  .hero-logo {
    width: min(100%, 280px);
  }

  .profile-intro {
    margin-bottom: 45px;
  }

  .profile-intro p {
    font-size: 1rem;
    line-height: 1.7;
  }

  .focus-grid {
    display: block;
  }

  .focus-item,
  .focus-item:first-child,
  .focus-item:last-child {
    padding: 26px 0;
  }

  .focus-item h3 {
    margin-bottom: 9px;
    font-size: 1.2rem;
  }

  .focus-item p {
    font-size: 0.95rem;
    line-height: 1.65;
  }

  .experience-item {
    display: block;
    padding: 34px 0;
  }

  .experience-period {
    margin-bottom: 12px;
  }

  .experience-period span {
    display: inline-block;
    padding: 5px 10px;
    background: var(--green-light);
    border-radius: 999px;
    font-size: 0.76rem;
  }

  .company {
    margin-bottom: 7px;
    font-size: 0.7rem;
  }

  .experience-content h3 {
    margin-bottom: 14px;
    font-size: 1.4rem;
    line-height: 1.25;
  }

  .experience-content p {
    font-size: 0.95rem;
    line-height: 1.7;
  }

  .experience-content p + p {
    margin-top: 12px;
  }

  .education-section {
    padding: 64px 0;
  }

  .education-grid {
    gap: 28px;
  }

  .education-school {
    font-size: 1.25rem;
  }

  .education-content p {
    font-size: 0.95rem;
    line-height: 1.7;
  }

  .education-tags {
    gap: 7px;
    margin-top: 24px;
  }

  .education-tags span {
    padding: 7px 11px;
    font-size: 0.74rem;
  }

  .about-grid {
    gap: 45px;
  }

  .about-content p {
    margin-top: 20px;
    font-size: 0.98rem;
    line-height: 1.7;
  }

  .qualities {
    padding: 26px 22px;
    background: var(--green-light);
    border-radius: 18px;
  }

  .qualities h3 {
    margin-bottom: 14px;
    font-size: 1.15rem;
  }

  .qualities li {
    position: relative;
    padding: 10px 0 10px 22px;
    font-size: 0.92rem;
  }

  .qualities li::before {
    content: "✓";
    position: absolute;
    top: 10px;
    left: 0;
    color: var(--green);
    font-weight: 800;
  }

  .contact-section {
    padding-top: 65px;
    padding-bottom: 25px;
  }

  .contact-grid {
    gap: 45px;
  }

  .contact-content p {
    margin: 18px 0 26px;
    font-size: 0.96rem;
  }

  .contact-details {
    width: 100%;
  }

  .contact-detail {
    display: block;
    padding: 18px 0;
  }

  .contact-detail span {
    display: block;
    margin-bottom: 5px;
    font-size: 0.68rem;
  }

  .contact-detail a,
  .contact-detail p {
    display: block;
    max-width: 100%;
    margin: 0;
    font-size: 0.95rem;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .footer {
    padding-top: 50px;
    gap: 10px;
    flex-direction: column;
    align-items: flex-start;
  }

  .reveal {
    transform: translateY(12px);
  }
}

@media (max-width: 420px) {
  .container,
  .container.narrow {
    width: calc(100% - 28px);
  }

  .logo span {
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .hero {
    padding-top: 105px;
  }

  .hero h1 {
    font-size: clamp(2.65rem, 13vw, 3.4rem);
  }

  .hero-visual {
    padding: 24px 18px;
  }

  .section-heading h2,
  .about-content h2,
  .contact-content h2 {
    font-size: 2rem;
  }

  .qualities {
    padding: 22px 18px;
  }
}

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

  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }

  .reveal {
    opacity: 1;
    transform: none;
  }
}
/* Shared monograms */
.logo-mark,.hero-monogram,.cv-brand-mark,.login-logo{display:grid;place-items:center;font-weight:900;letter-spacing:-.08em;color:#fff;background:linear-gradient(135deg,var(--green-dark),var(--green),var(--olive));border-radius:16px}.hero-monogram{width:min(100%,360px);aspect-ratio:1;font-size:clamp(5rem,16vw,10rem);border-radius:32px;box-shadow:var(--shadow)}

/* Utility pages */
.utility-page{min-height:100svh;padding:32px 16px;background:linear-gradient(145deg,#f8faf6,#edf4e8)}.utility-card{width:min(100%,720px);margin:0 auto;padding:36px;background:#fff;border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow)}.utility-card-wide{width:min(100%,1040px)}.utility-card h1{margin:0 0 12px;color:var(--green-dark)}.utility-card p{color:var(--muted)}.utility-back{display:inline-block;margin-bottom:28px;color:var(--green);font-weight:800}.utility-form{display:grid;gap:10px}.utility-form input,.editor-area,.result-box textarea{width:100%;padding:14px;border:1px solid var(--border);border-radius:12px;font:inherit}.utility-form button,.utility-actions button,.result-box button{min-height:46px;padding:0 18px;border:0;border-radius:12px;background:var(--green-dark);color:#fff;font:inherit;font-weight:800;cursor:pointer}.result-box{margin-top:24px}.result-box label{display:block;margin-bottom:8px;font-weight:800}.result-box textarea{min-height:120px}.editor-area{min-height:60vh;margin-top:20px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.88rem}.utility-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}.utility-actions button:not(.primary){background:#eef3ea;color:var(--green-dark)}

/* CV login and layout */
.cv-page{min-height:100vh;background:linear-gradient(145deg,#f8faf6,#edf4e8)}.cv-login{display:grid;min-height:100svh;padding:24px;place-items:center}.login-card{width:min(100%,440px);padding:42px;background:#fff;border:1px solid var(--border);border-radius:28px;box-shadow:var(--shadow);text-align:center}.login-logo{width:104px;height:82px;margin:0 auto 22px;font-size:2.2rem}.login-card h1{margin:0;color:var(--green-dark);font-size:2.35rem;line-height:1.05}.login-card>p{margin:14px 0 26px;color:var(--muted)}.login-form{display:grid;gap:9px;text-align:left}.login-form label{font-size:.75rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.login-form input{min-height:54px;padding:0 16px;border:1px solid var(--border);border-radius:13px;font:inherit;font-size:16px}.login-form input:focus{outline:3px solid rgba(63,127,54,.14);border-color:var(--green)}.login-form button{min-height:54px;margin-top:4px;border:0;border-radius:13px;background:var(--green-dark);color:#fff;font:inherit;font-weight:850;cursor:pointer}.form-error{margin:8px 0 0;color:#a94646!important;font-weight:800}.login-back{display:inline-block;margin-top:22px;color:var(--green);font-size:.9rem;font-weight:750}.cv-shell{width:min(calc(100% - 32px),1280px);margin:auto;padding:24px 0 56px}.cv-topbar{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:16px;align-items:center;margin-bottom:20px}.cv-brand{display:flex;align-items:center;gap:10px;font-weight:850;color:var(--green-dark)}.cv-brand-mark{width:46px;height:38px;border-radius:11px}.cv-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.cv-action-btn{display:inline-flex;min-height:42px;padding:0 14px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:11px;background:#fff;color:var(--green-dark);font:inherit;font-size:.82rem;font-weight:800;cursor:pointer}.cv-action-btn.primary{background:var(--green-dark);border-color:var(--green-dark);color:#fff}.cv-action-btn.danger{color:#943f3f;background:#fff7f7}.cv-user-card{display:flex;align-items:center;gap:9px;padding:8px 11px;border:1px solid var(--border);border-radius:999px;background:#fff}.cv-user-badge{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-size:.72rem;font-weight:900}.cv-user-text{display:grid;line-height:1.08}.cv-user-label{font-size:.62rem;text-transform:uppercase;color:var(--muted);font-weight:800}.cv-user-name{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--green-dark);font-size:.84rem}.cv-user-role{font-size:.68rem;color:var(--muted)}.cv-document{display:grid;grid-template-columns:minmax(260px,310px) minmax(0,1fr);overflow:hidden;background:#fff;border:1px solid var(--border);border-radius:28px;box-shadow:var(--shadow)}.cv-sidebar{padding:40px 28px;background:var(--green-light);border-right:1px solid var(--border)}.portrait-ring{display:grid;width:170px;height:170px;margin:0 auto 30px;padding:6px;place-items:center;border-radius:50%;background:#fff;border:1px solid var(--border)}.portrait-ring.portrait-missing::after{content:"MH";font-size:2.4rem;font-weight:900;color:var(--green)}.portrait{width:100%;height:100%;object-fit:cover;border-radius:50%}.contact-list{margin-bottom:30px;border-top:1px solid var(--border)}.contact-row{display:grid;grid-template-columns:24px minmax(0,1fr);gap:9px;padding:12px 0;border-bottom:1px solid var(--border)}.contact-row p{margin:0;overflow-wrap:anywhere;color:var(--muted);font-size:.82rem;line-height:1.5}.sidebar-section{margin-top:28px}.sidebar-section h3{margin:0 0 12px;color:var(--green-dark);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.sidebar-section ul{display:grid;gap:7px;margin:0;padding:0;list-style:none}.sidebar-section li{position:relative;padding-left:16px;color:var(--muted);font-size:.82rem;line-height:1.5}.sidebar-section li::before{content:"";position:absolute;left:0;top:.7em;width:6px;height:6px;border-radius:50%;background:var(--olive)}.sidebar-section p{margin:0;color:var(--muted);font-size:.82rem}.language{display:grid;grid-template-columns:65px 1fr 34px;gap:8px;align-items:center;margin-bottom:10px;font-size:.74rem}.language i{position:relative;height:7px;border-radius:999px;background:rgba(63,127,54,.14)}.language i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--p);border-radius:inherit;background:linear-gradient(90deg,var(--green),var(--olive))}.language b{text-align:right;color:var(--muted)}.cv-main{min-width:0;padding:50px 54px 62px}.cv-header{margin-bottom:40px;padding-bottom:28px;border-bottom:1px solid var(--border)}.cv-header h1{margin:0;color:var(--green-dark);font-size:clamp(2.4rem,5vw,4.3rem);line-height:1;letter-spacing:-.06em}.cv-section{margin-top:44px}.cv-section:first-of-type{margin-top:0}.cv-section h2{margin:0 0 24px;padding-bottom:11px;border-bottom:2px solid var(--green-light);color:var(--green-dark);font-size:.95rem;letter-spacing:.09em;text-transform:uppercase}.entry{margin-bottom:31px}.entry h3{margin:0 0 11px;color:var(--green-dark);font-size:1.14rem}.entry h3 em{color:var(--olive);font-size:.84rem;font-style:normal}.entry ul{display:grid;gap:9px;margin:0;padding:0;list-style:none}.entry li{position:relative;padding-left:18px;color:var(--muted);font-size:.92rem;line-height:1.62}.entry li::before{content:"";position:absolute;left:0;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--olive)}.entry li strong,.cv-section>p strong{color:var(--text)}.cv-section>p{margin:0 0 21px;color:var(--muted);font-size:.92rem;line-height:1.62}.cv-section>p em{color:var(--olive);font-style:normal;font-weight:750}.cv-pdf-footer{display:none}

@media(max-width:900px){.cv-topbar{grid-template-columns:minmax(0,1fr) auto}.cv-user-card{grid-column:1/-1;grid-row:2;width:fit-content}.cv-actions{grid-column:2;grid-row:1}.cv-document{grid-template-columns:250px minmax(0,1fr)}.cv-main{padding:42px 34px 50px}}
@media(max-width:760px){.cv-login{padding:16px}.login-card{padding:30px 20px;border-radius:21px}.login-logo{width:88px;height:68px;font-size:1.85rem}.login-card h1{font-size:1.95rem}.cv-shell{width:100%;padding:0 0 30px}.cv-topbar{position:sticky;z-index:20;top:0;margin:0;padding:10px 12px;grid-template-columns:minmax(0,1fr) auto;background:rgba(248,250,246,.97);border-bottom:1px solid var(--border);backdrop-filter:blur(14px)}.cv-brand{font-size:.8rem}.cv-brand-mark{width:40px;height:34px}.cv-actions{gap:6px}.cv-action-btn{display:none}.cv-action-btn.primary,.cv-action-btn.danger{display:inline-flex;width:38px;min-width:38px;height:38px;min-height:38px;padding:0;overflow:hidden;font-size:0}.cv-action-btn.primary::before{content:"PDF";font-size:.62rem}.cv-action-btn.danger::before{content:"×";font-size:1.35rem}.cv-user-card{grid-column:1/-1;grid-row:2;width:100%;border-radius:12px}.cv-document{display:flex;flex-direction:column;overflow:visible;border:0;border-radius:0;box-shadow:none}.cv-sidebar{width:100%;padding:28px 20px 32px;border:0;border-bottom:1px solid var(--border)}.portrait-ring{width:132px;height:132px}.contact-list,.sidebar-section{max-width:520px;margin-left:auto;margin-right:auto}.cv-main{width:100%;padding:36px 20px 46px}.cv-header{margin-bottom:32px;padding-bottom:20px}.cv-header h1{font-size:clamp(2rem,10vw,3rem)}.entry h3 em{display:block;margin-top:3px}.utility-card{padding:26px 20px}.utility-actions{flex-direction:column}.utility-actions button{width:100%}}

@media print{@page{size:A4;margin:0}*{box-sizing:border-box!important}html,body{width:210mm;margin:0!important;background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.cv-login,.cv-topbar{display:none!important}.cv-shell,.cv-document{width:210mm!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}.cv-document{display:block!important}.cv-sidebar{position:absolute!important;left:0!important;top:0!important;width:58mm!important;min-height:297mm!important;padding:10mm 6.5mm!important;background:#edf5ea!important}.cv-main{width:152mm!important;margin-left:58mm!important;padding:11mm 13mm 13mm 12mm!important}.cv-section--education{break-before:page!important;padding-top:11mm!important}.entry,.contact-row,.sidebar-section{break-inside:avoid}.cv-pdf-footer{display:block!important;width:152mm!important;margin-left:58mm!important;padding:7mm 13mm 9mm 12mm!important;border-top:1px solid #dfe7d8!important;color:#5f6858!important;font-size:10px!important;text-align:center!important}}

/* WordPress integration */
body.admin-bar .topbar { top: 32px; }
.logo-image, .custom-logo-link { display: inline-flex; align-items: center; }
.custom-logo { width: 40px; height: 40px; object-fit: contain; }
.nav .menu-item { list-style: none; }
.nav .menu-item.current-menu-item > a { color: var(--green); }
.nav .menu-item:last-child > a { padding: 10px 18px; color: var(--white); background: var(--green-dark); border-radius: 999px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { z-index: 99999; top: 8px; left: 8px; width: auto; height: auto; padding: 12px 16px; clip: auto; color: var(--green-dark); background: #fff; border-radius: 8px; }
.content-shell { min-height: 100vh; padding: 145px 0 80px; }
.content-area { display: grid; gap: 24px; }
.page-header h1 { margin: 0; color: var(--green-dark); font-size: clamp(2.4rem, 6vw, 4.5rem); line-height: 1; letter-spacing: -0.055em; }
.content-card { padding: 34px; background: #fff; border: 1px solid var(--border); border-radius: 24px; box-shadow: 0 12px 40px rgba(25,55,29,.06); }
.content-card h2, .content-card h1 { margin-top: 0; }
.content-card h2 a:hover { color: var(--green); }
.entry-content > *:first-child { margin-top: 0; }
.entry-content > *:last-child { margin-bottom: 0; }
.entry-content a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.entry-content img { height: auto; border-radius: 18px; }
.hero-monogram { display: grid; width: min(100%, 330px); aspect-ratio: 1; color: #fff; background: linear-gradient(145deg, var(--green-dark), var(--green), var(--olive)); border-radius: 34%; place-items: center; font-size: clamp(5rem, 12vw, 9rem); font-weight: 900; letter-spacing: -.08em; box-shadow: inset 0 1px 0 rgba(255,255,255,.25); }
@media (max-width: 782px) { body.admin-bar .topbar { top: 46px; } }
@media (max-width: 700px) {
  .nav .menu-item:last-child > a { margin-top: 5px; padding: 12px 14px; text-align: center; }
  .content-shell { padding: 105px 0 54px; }
  .content-card { padding: 24px 20px; border-radius: 18px; }
  .hero-monogram { width: min(100%, 245px); border-radius: 30%; }
}


/* Front-page admin shortcut */
.admin-shortcut {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: rgba(255,255,255,.68);
  font-size: .74rem;
  font-weight: 750;
  text-decoration: none;
  transition: color .2s ease, opacity .2s ease;
}
.admin-shortcut svg {
  width: 14px;
  height: 14px;
  fill: currentColor;
}
.admin-shortcut:hover,
.admin-shortcut:focus-visible {
  color: #fff;
}
.admin-shortcut:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
  border-radius: 3px;
}
@media (max-width: 700px) {
  .admin-shortcut {
    margin-top: 4px;
  }
}
