/* Shared type system. Font files and their licenses are included locally. */
@font-face {
  font-family: "DM Sans";
  src: url("assets/fonts/dm-sans-latin-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
}
@font-face {
  font-family: "Manrope";
  src: url("assets/fonts/manrope-latin-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
}
:root {
  --font-body: "DM Sans", "Segoe UI", Arial, sans-serif;
  --font-display: "Manrope", "DM Sans", sans-serif;
  --type-body: 1rem;
  --type-small: .875rem;
  --type-label: .75rem;
  --type-control: .9375rem;
  font-family: var(--font-body);
}
body { font-family: var(--font-body); font-size: var(--type-body); line-height: 1.65; }
button, input, select, textarea { font-family: var(--font-body); }
h1, h2, h3, h4, .site-header .brand, .footer-brand > a {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -.035em;
}
p { font-size: var(--type-body); line-height: 1.75; }
.eyebrow, .mini-label { font-size: var(--type-label); line-height: 1.6; letter-spacing: .11em; font-weight: 650; }
.section-side-note { font-size: var(--type-small); line-height: 1.7; }
.page-title { font-size: clamp(2.25rem, 3.9vw, 3.4rem); line-height: 1.15; font-weight: 750; letter-spacing: -.04em; }
.page-breadcrumb { font-size: var(--type-small); line-height: 1.6; }
.page-card h3, .home-directory .page-card h3 { font-size: 1.625rem; line-height: 1.3; font-weight: 700; }
.page-card p, .home-directory .page-card p { font-size: var(--type-body); line-height: 1.7; max-width: 40ch; }
.page-card-index { font-size: var(--type-label); }
.home-directory > h2 { font-size: clamp(1.8rem, 3vw, 2.5rem); line-height: 1.25; font-weight: 700; }

/* A full navigation stays legible; smaller screens use the expanded menu. */
.site-header { width: min(1264px, calc(100% - 48px)); height: 76px; padding-inline: 24px 18px; }
.site-header .brand { font-size: 1.875rem; font-weight: 800; letter-spacing: -.045em; }
.site-nav { gap: 22px; }
.site-nav > a, .site-nav .nav-contact { font-size: 1rem; font-weight: 650; }
.site-nav .nav-contact { gap: 12px; padding-inline: 18px; }
.language-option { font-size: var(--type-control); font-weight: 700; width: 44px; min-height: 44px; letter-spacing: .02em; }
.nav-controls { margin-left: 12px; }
.button, .hero-actions .button, .home-main .hero-actions .button,
.performance-cta .button, .contact-brief-actions .button {
  font-size: var(--type-control); font-weight: 650; line-height: 1.4; min-height: 52px;
}
.hero-cv-link, .evidence-link, .text-link { font-size: var(--type-control); line-height: 1.6; }

/* Hero and professional profile. */
.home-main .hero { padding-top: 174px; }
.home-main .hero h1, [lang="en"] .home-main .hero h1 {
  font-size: clamp(2.875rem, 5.1vw, 4.625rem); line-height: 1.09;
  font-weight: 800; letter-spacing: -.05em;
}
.hero-eyebrow, .home-main .hero-role { font-size: var(--type-label); line-height: 1.7; letter-spacing: .1em; }
.performance-lead { font-size: 1.1875rem; line-height: 1.7; max-width: 49ch; }
.home-main .hero-intro { font-size: var(--type-body); line-height: 1.8; max-width: 64ch; }
.hero-intro strong { font-weight: 700; }
.hero-location { font-size: var(--type-small); line-height: 1.7; flex-wrap: wrap; }
.home-main .portrait-label { font-size: var(--type-label); line-height: 1.5; letter-spacing: .04em; white-space: normal; max-width: calc(100% - 42px); }
.portrait-caption > span, .home-main .portrait-caption > span { font-family: var(--font-display); font-size: 1.625rem; font-weight: 750; }
.portrait-caption > p, .home-main .portrait-caption p { font-size: var(--type-small); line-height: 1.5; }
.portrait-index { font-size: var(--type-label); letter-spacing: .06em; }
.home-main .experience-stamp > span { font-size: var(--type-label); line-height: 1.6; }
.performance-proof .eyebrow { font-size: var(--type-label); }
.proof-metrics strong { font-family: var(--font-display); font-size: 2.5rem; font-weight: 750; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.proof-metrics span { font-size: var(--type-small); line-height: 1.6; }
.proof-market-list a { font-size: var(--type-small); padding: 7px 10px; }
.proof-caption { font-size: .8125rem; line-height: 1.7; }
.performance-tags span { font-size: var(--type-small); }

/* Skills, experience, education and company identities. */
.paid-media-platforms .eyebrow { font-size: var(--type-label); line-height: 1.7; }
.paid-media-platforms h2 { font-size: clamp(2.375rem, 3.7vw, 3.125rem); line-height: 1.2; font-weight: 750; letter-spacing: -.04em; }
.paid-media-description > p { font-size: var(--type-body); line-height: 1.75; }
.paid-media-capabilities li { font-size: var(--type-small); line-height: 1.5; }
.paid-media-links a { font-size: var(--type-control); line-height: 1.6; }
.expertise-card h2 { font-size: 1.875rem; line-height: 1.25; font-weight: 700; }
.expertise-card p, .about-content > p:not(.body-large),
.experience-intro > p:not(.eyebrow), .career-content p, .career-content li,
.coursework p { font-size: var(--type-body); line-height: 1.75; }
.about-content .body-large { font-size: 1.375rem; line-height: 1.65; }
.about-facts span, .personal-skills span, .tag-list > span, .expertise-card .tag-list > span { font-size: .8125rem; line-height: 1.6; }
.expertise-card .card-number { font-size: var(--type-label); }
.tag-list { gap: 8px; }
.expertise-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.workflow-visual, .insights-visual, .platform-visual { gap: 6px; flex-wrap: wrap; }
.workflow-visual span, .platform-visual span { font-size: var(--type-small); line-height: 1.5; padding: 10px 8px; }
.workflow-visual i { font-size: var(--type-small); }
.insights-visual span { font-size: .8125rem; line-height: 1.5; padding: 10px 8px; min-width: 0; }
.career-heading strong { font-family: var(--font-display); font-size: 1.375rem; font-weight: 700; line-height: 1.35; }
.career-date { font-size: .8125rem; line-height: 1.6; letter-spacing: .05em; }
.career-company { font-size: var(--type-body); line-height: 1.6; }
.career-paid-media { font-size: var(--type-small); line-height: 1.7; }
.company-description strong { font-size: var(--type-body); font-weight: 600; line-height: 1.6; }
.company-context { font-size: var(--type-small); line-height: 1.6; }
.company-band .mini-label { font-size: var(--type-label); line-height: 1.6; }
.education-card h2 { font-size: 1.625rem; line-height: 1.35; }
.education-card p, .education-card > span, .learning-card > p { font-size: var(--type-body); line-height: 1.7; }
.learning-row h2 { font-size: 1.125rem; line-height: 1.5; }
.learning-row p, .education-meta { font-size: var(--type-small); line-height: 1.7; }
.learning-index, .learning-year, .coursework > span { font-size: .8125rem; line-height: 1.6; }
.gpa-badge { font-size: var(--type-small); }
.gpa-badge strong { font-size: 1rem; font-weight: 700; }
.gpa-badge strong span { font-size: var(--type-small); }
.itb-monogram { width: 82px; height: 88px; font-family: var(--font-display); font-size: 1.75rem; }
.itb-monogram span { font-family: var(--font-body); font-size: .75rem; letter-spacing: .03em; }

/* Brands and their supporting documentation. */
.brand-project-header > p, .brand-project-empty p { font-size: var(--type-body); line-height: 1.75; }
.brand-project-header .work-label { font-size: var(--type-label); line-height: 1.6; }
.brand-project-caption h3 { font-size: 1.0625rem; line-height: 1.5; font-weight: 700; }
.brand-project-caption p { font-size: var(--type-small); line-height: 1.6; }
.brand-market-heading h2 { font-size: 1.5rem; font-weight: 700; }
.brand-summary { font-size: var(--type-small); }
.brand-summary strong { font-size: 1.25rem; font-weight: 700; }
.brand-result-count, .brand-project-search label, .brand-documents-note { font-size: var(--type-small); line-height: 1.7; }
.brand-context-badge, .brand-market-heading > span,
.brand-context-filters [data-brand-context-count] { font-size: .8125rem; }
.brand-market-filters button, .brand-context-filters button,
.brand-project-empty button, #brand-show-more { font-size: var(--type-control); line-height: 1.5; }
.brand-market-filters button > span { font-size: .8125rem; }
.brand-market-filters button > [data-i18n] { font-size: inherit; opacity: 1; }
.brand-project-search input { font-size: 1rem; }
.brand-project-files summary, .brand-project-files a { font-size: var(--type-control); line-height: 1.7; }
.brand-name-tile { font-family: var(--font-display); font-size: clamp(1.0625rem, 1.7vw, 1.5rem); line-height: 1.3; }

/* Decision framework and contact flow. */
.decision-intro > p, .decision-signal, .decision-block p, .decision-block li,
.page-main .contact-section > p:not(.eyebrow):not(.copy-status),
.performance-cta p { font-size: var(--type-body); line-height: 1.75; }
.decision-label, .decision-block h3 { font-size: var(--type-label); letter-spacing: .07em; line-height: 1.6; }
.decision-options button { font-size: var(--type-control); line-height: 1.5; }
.decision-options button > span:first-child { font-size: var(--type-label); }
.decision-panel h2 { font-size: 1.875rem; font-weight: 700; }
.decision-actions a { font-size: var(--type-control); line-height: 1.6; }
.decision-footnote { font-size: var(--type-small); line-height: 1.75; }
.performance-cta h2 { font-size: 1.625rem; line-height: 1.35; }
.contact-brief h2 { font-size: 1.625rem; font-weight: 700; }
.contact-brief .brief-intro, .contact-brief-heading > p:not(.eyebrow) { font-size: var(--type-body); line-height: 1.75; }
.contact-brief label, .contact-brief .brief-field { font-size: var(--type-control); line-height: 1.6; }
.contact-brief select, .contact-brief textarea { font-size: var(--type-body); line-height: 1.6; }
.contact-brief-preview summary { font-size: var(--type-control); }
.contact-brief-preview pre, .brief-preview pre, .brief-preview p { font-family: var(--font-body); font-size: var(--type-body); line-height: 1.75; }
.contact-brief-note-meta p, .contact-brief-note-meta output { font-size: .8125rem; line-height: 1.65; }
.contact-brief-send-note, .contact-brief-status, .brief-note, .brief-status { font-size: var(--type-small); line-height: 1.7; }
.copy-status { font-size: var(--type-small); }
.contact-email { font-size: var(--type-control); line-height: 1.6; }
.footer-directory a, .footer-links, .footer-links a:last-child > .i18n-text, .copyright { font-size: var(--type-small); line-height: 1.6; }
.footer-brand p { font-size: var(--type-body); }
.footer-brand > a { font-size: 1.75rem; }
.case-hero .project-actions .button, .case-hero .project-actions .text-link { font-size: var(--type-control); line-height: 1.5; min-height: 44px; }
.case-back { font-size: var(--type-small); line-height: 1.6; }
.case-hero .work-label { font-size: var(--type-label); line-height: 1.6; }

@media (min-width: 1061px) and (max-width: 1180px) {
  .site-header { padding-inline: 18px 14px; }
  .site-header .brand { font-size: 1.625rem; }
  .site-nav { gap: 14px; }
  .site-nav .nav-contact { padding-inline: 14px; }
  .nav-controls { margin-left: 8px; }
}
@media (max-width: 1060px) {
  .site-header { top: 16px; width: calc(100% - 32px); height: 68px; padding-inline: 18px 10px; }
  .site-header .brand { font-size: 1.5rem; }
  .nav-controls { margin-left: auto; gap: 0; }
  .menu-toggle { display: flex; flex-direction: column; gap: 5px; }
  .menu-toggle span { width: 17px; height: 1px; background: currentColor; transition: transform .2s; }
  .nav-open .menu-toggle span:first-child { transform: translateY(3px) rotate(45deg); }
  .nav-open .menu-toggle span:last-child { transform: translateY(-3px) rotate(-45deg); }
  .site-nav { display: none; position: absolute; top: 134px; left: 0; right: 0; margin-left: 0; padding: 14px; background: var(--surface); border: 1px solid var(--line); border-radius: 24px; flex-direction: column; align-items: stretch; gap: 0; box-shadow: 0 20px 30px #00000030; }
  .nav-open .site-nav { display: flex; top: 134px; max-height: calc(100dvh - 166px); overflow-y: auto; }
  .site-nav > a { font-size: 1.125rem; padding: 14px; border-radius: 10px; }
  .site-nav .nav-contact { font-size: 1.125rem; margin: 6px 0 0; justify-content: space-between; padding: 15px; }
  .language-picker { position: absolute; right: 4px; top: calc(100% + 8px); margin: 0; background: var(--nav-bg); backdrop-filter: blur(20px); box-shadow: 0 5px 20px #0002; }
  .language-option { width: 44px; min-height: 44px; }
  .page-main, .home-main .hero { padding-top: 174px; }
  .hero-location { font-size: .8125rem; }
  .experience-intro { top: 166px; }
}
@media (max-width: 620px) {
  .home-main .hero::before { right: 0; width: 100%; }
  .home-main .portrait-label { display: none; }
  .site-header .brand { font-size: 1.375rem; }
  .home-main .hero h1, [lang="en"] .home-main .hero h1 { font-size: clamp(2.5rem, 10.8vw, 3.25rem); letter-spacing: -.045em; line-height: 1.12; }
  .performance-lead { font-size: 1.125rem; }
  .home-main .hero-intro { font-size: var(--type-body); }
  .home-main .hero-role { font-size: var(--type-label); }
  .page-title { font-size: clamp(2.125rem, 8.3vw, 2.625rem); line-height: 1.2; }
  .page-breadcrumb { font-size: var(--type-small); }
  .home-main .hero-actions { flex-direction: column; align-items: stretch; }
  .home-main .hero-actions .button { font-size: var(--type-control); padding-inline: 20px; }
  .hero-cv-link { padding-block: 10px; }
  .home-directory .page-card h3 { font-size: 1.5rem; }
  .home-directory .page-card p { font-size: var(--type-body); }
  .paid-media-platforms h2 { font-size: 2.375rem; }
  .paid-media-description > p { font-size: var(--type-body); }
  .paid-media-capabilities li { font-size: var(--type-small); }
  .paid-media-links { gap: 10px; }
  .expertise-card { padding: 24px; }
  .expertise-grid { grid-template-columns: 1fr; }
  .expertise-card h2 { font-size: 1.75rem; }
  .workflow-visual { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workflow-visual i { display: none; }
  .workflow-visual span { text-align: center; }
  .career-content { padding-left: 0; }
  .career-heading strong { font-size: 1.25rem; }
  .career-company { font-size: var(--type-body); }
  .career-item summary { gap: 12px; }
  .career-date { font-size: .8125rem; }
  .decision-options { grid-template-columns: 1fr; }
  .decision-options button { font-size: var(--type-control); min-height: 64px; }
  .decision-options button > span:first-child { font-size: var(--type-label); }
  .decision-panel { padding: 23px 20px; }
  .decision-panel h2 { font-size: 1.625rem; }
  .contact-brief select, .contact-brief textarea { font-size: var(--type-body); }
  .brand-market-filters { flex-wrap: wrap; }
  .brand-market-filters button { font-size: var(--type-control); flex: 1 1 calc(50% - 8px); }
  .brand-documents-note { font-size: var(--type-small); }
  .footer-directory { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 18px; }
  .footer-directory a { padding-block: 10px; }
  .copyright, .footer-links { font-size: var(--type-small); }
}
@media (max-width: 370px) {
  .site-header { padding-inline: 13px 6px; }
  .site-header .brand { font-size: 1.125rem; }
  .nav-controls .icon-button { width: 40px; height: 44px; }
  .proof-metrics strong { font-size: 2.125rem; }
}
@media print {
  .site-header { display: none; }
  .page-main, .home-main .hero { padding-top: 0; }
}
