﻿:root{--brand:#a40046;--ink:#25232a;--paper:#f7f7f8;--line:#e6e1e5;--muted:#625d66;--space:clamp(24px,5.5vw,72px);--content:1160px;--radius:6px;--font:system-ui,-apple-system,"Segoe UI",sans-serif;--heading:clamp(1.65rem,2.8vw,2.15rem)}
*{box-sizing:border-box}html{scroll-padding-top:24px}body{margin:0;font-family:var(--font);color:var(--ink);line-height:1.5;background:white}a{color:inherit;text-underline-offset:5px}a:hover{color:var(--brand)}:focus-visible{outline:3px solid var(--brand);outline-offset:5px}main:focus{outline:none}.container{width:min(var(--content),calc(100% - 2 * var(--space)));margin-inline:auto}p{margin:0 0 1rem}h1,h2,h3{line-height:1.15;letter-spacing:-.035em;margin:0 0 1rem}h3{font-size:1.15rem}svg{display:block}.accent{color:var(--brand)}.topbar{background:var(--brand);color:white;font-size:.75rem;padding:7px 0;letter-spacing:.025em}.topbar .container{display:flex;justify-content:space-between}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:96px;gap:30px}.logo{display:flex;align-items:center;font-size:2.65rem;font-weight:750;letter-spacing:-.055em;text-decoration:none}.logo svg{width:43px;height:66px;color:var(--brand);margin-right:3px}.desktop-nav{display:flex;gap:30px;align-items:center}.desktop-nav a{text-decoration:none;font-size:.875rem;font-weight:650;padding:19px 0;position:relative}.desktop-nav a[aria-current=page]{color:var(--brand)}.desktop-nav a[aria-current=page]:after{content:"";height:3px;background:var(--brand);position:absolute;bottom:5px;left:0;right:0}.mobile-nav{display:none}.skip-link{position:fixed;z-index:10;top:-100px;left:20px;background:white;padding:12px}.skip-link:focus{top:12px}.hero{position:relative;background:linear-gradient(110deg,#f7f7f8,#efeff2);overflow:hidden}.hero-inner{position:relative;padding-block:56px 52px}.hero-copy{width:65%;position:relative;z-index:1}.eyebrow{font-size:.77rem;font-weight:750;letter-spacing:.095em;text-transform:uppercase;margin-bottom:24px}h1{font-size:clamp(2.25rem,4vw,3.35rem);font-weight:800;line-height:1.05;letter-spacing:-.045em;margin-bottom:18px}.hero-intro{font-size:clamp(1rem,1.7vw,1.3rem);line-height:1.45;max-width:570px}.actions{display:flex;gap:22px;flex-wrap:wrap;margin-top:28px}.button{display:inline-flex;gap:12px;align-items:center;justify-content:center;background:var(--brand);color:white;text-decoration:none;padding:12px 25px;border:1px solid var(--brand);border-radius:var(--radius);font-size:.9rem;font-weight:700;min-height:46px}.button:hover{background:#800036;color:white}.button.secondary{background:transparent;border-color:#77717a;color:var(--ink)}.button.secondary:hover{background:var(--line)}.hero-art{position:absolute;inset:0 0 0 48%;clip-path:polygon(27% 0,100% 0,100% 100%,0 100%);background:#122b37}.hero-art img{height:100%;width:100%;object-fit:cover}.competencies{display:grid;grid-template-columns:repeat(3,1fr);padding-block:34px;gap:30px}.competencies article{display:flex;gap:22px;align-items:flex-start}.competencies article+article{border-left:1px solid var(--line);padding-left:30px}.competencies svg{width:46px;height:46px;stroke:var(--brand);stroke-width:2;fill:none;flex-shrink:0}.competencies h2{font-size:1.25rem;margin:3px 0 7px}.competencies p{font-size:.86rem;line-height:1.45;margin:0}.section-tint{background:var(--paper)}.practice{padding-block:42px}.practice-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:65px;align-items:center}.section-title{font-size:var(--heading);font-weight:780}.section-title:before{content:"";display:block;background:var(--brand);height:3px;width:36px;margin-bottom:12px}.practice p,.about p{font-size:.96rem}.practice p:last-child{margin-bottom:0}.check-list{list-style:none;margin:0;padding:0;font-size:.9rem}.check-list li{position:relative;padding-left:36px;margin:0 0 17px}.check-list li:last-child{margin:0}.check-list li:before{content:"✓";position:absolute;left:0;top:-3px;color:var(--brand);font-size:1.5rem;font-weight:750}.projects{padding-block:42px 48px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px;margin-top:30px}.project{display:grid;grid-template-columns:42% 1fr;gap:24px}.project p{font-size:.88rem;line-height:1.4}.project h3{margin-bottom:10px}.text-link{font-size:.88rem;font-weight:750;color:var(--brand);text-decoration:none;display:inline-flex;align-items:center;gap:12px;min-height:30px}.text-link:hover{text-decoration:underline}.about-grid{display:grid;grid-template-columns:31% 1fr;gap:55px;align-items:center}.portrait-placeholder{align-self:stretch;background:linear-gradient(135deg,#e3e0e5,#d0d4d8);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:310px;text-align:center;gap:15px;color:#59545f;font-size:.85rem;clip-path:polygon(0 0,100% 0,80% 100%,0 100%);padding-right:35px}.monogram{border:1px solid #a4a0aa;width:105px;height:105px;display:grid;place-items:center;border-radius:50%;font-size:2.5rem;font-weight:300;letter-spacing:-.06em}.about-copy{padding-block:35px}.about .section-title{margin-bottom:9px}.qualification{font-weight:750;color:var(--brand);text-transform:uppercase;letter-spacing:.07em;font-size:.85rem!important}.about .button{padding-inline:32px}.contact-banner{background:var(--brand);color:white;padding-block:30px}.contact-inner{display:flex;align-items:center;gap:30px}.contact-inner>svg{width:65px;height:65px;stroke:white;stroke-width:3;fill:none;flex-shrink:0}.contact-inner>div{border-left:1px solid #d1719a;padding-left:30px;flex:1}.contact-inner h2{font-size:clamp(1.35rem,2.4vw,1.85rem);margin-bottom:9px}.contact-inner p{font-size:.94rem;margin:0}.button.light{background:white;color:var(--brand);border-color:white;flex-shrink:0}.button.light:hover{background:var(--line)}.footer{padding:24px 0;color:var(--muted);font-size:.8rem}.footer-inner{display:flex;justify-content:space-between;gap:20px}.footer nav{display:flex;gap:24px}.page-content{min-height:60vh;padding-block:65px 80px;max-width:900px}.page-content h1{font-size:clamp(2rem,4vw,3.1rem)}.page-content .lead{font-size:1.2rem;color:var(--muted);max-width:720px}.content-section{border-top:1px solid var(--line);padding-top:28px;margin-top:32px}.content-section h2{font-size:1.5rem}.notice{border-left:3px solid var(--brand);padding:20px 24px;background:var(--paper);margin-block:28px}.page-content li{margin-block:10px}
@media(max-width:1050px){.desktop-nav{gap:19px}.hero-copy{width:73%;background:linear-gradient(90deg,#f4f4f6 75%,transparent)}.hero-art{left:52%}.project-grid{gap:30px}.project{grid-template-columns:1fr}.contact-inner>svg{display:none}.contact-inner>div{padding-left:0;border:0}.contact-inner .button{padding-inline:17px}.practice-grid{gap:35px}.competencies{gap:20px}.competencies article{gap:14px}.competencies article+article{padding-left:20px}}
@media(max-width:760px){:root{--space:24px}.topbar{font-size:.66rem}.topbar span{display:none}.header-inner{min-height:80px}.logo{font-size:2.1rem}.logo svg{height:52px;width:34px}.desktop-nav{display:none}.mobile-nav{display:block;position:relative}.mobile-nav summary{cursor:pointer;font-weight:650;padding:12px 0 12px 12px;display:flex;gap:12px;align-items:center;list-style:none}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav nav{position:absolute;z-index:5;right:0;top:55px;width:230px;background:white;box-shadow:0 12px 30px #25232a22;border:1px solid var(--line);padding:10px}.mobile-nav a{display:block;text-decoration:none;padding:12px}.mobile-nav a[aria-current=page]{color:var(--brand);font-weight:700}.hero-inner{padding-block:40px 35px}.hero-copy{width:100%;background:none}.hero-art{position:relative;inset:auto;height:175px;clip-path:none;order:2}.hero{display:flex;flex-direction:column}.eyebrow{font-size:.64rem;max-width:330px;margin-bottom:20px}h1{font-size:clamp(2.05rem,6.7vw,3.1rem)}.hero-intro{font-size:1.04rem}.actions{gap:12px;margin-top:24px}.button{padding:11px 17px}.competencies{grid-template-columns:1fr;gap:23px;padding-block:30px}.competencies article+article{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:23px}.competencies article{gap:22px}.competencies p br{display:none}.practice-grid,.project-grid,.about-grid{grid-template-columns:1fr}.practice{padding-block:35px}.practice-grid{gap:28px}.projects{padding-block:35px}.project-grid{gap:32px}.project{grid-template-columns:34% 1fr;gap:20px}.project h3{font-size:1.1rem}.about-grid{gap:0}.portrait-placeholder{clip-path:none;min-height:220px;margin-top:30px;padding:24px;flex-direction:row;gap:25px}.about-copy{padding-block:30px}.contact-inner{flex-direction:column;align-items:flex-start;gap:22px}.footer-inner{flex-direction:column;gap:12px}.desktop-break{display:none}.page-content{padding-block:40px 55px}}
@media(max-width:420px){.actions{flex-direction:column;align-items:stretch}.project{grid-template-columns:1fr}.project p{font-size:.94rem}}


/* Iteration 2: contact strip and stable, replaceable media slots. */
.data-transfer-link { white-space: nowrap; }
.external-link-icon { display: inline-block; width: .85em; height: .85em; margin-left: .2em; vertical-align: -.05em; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
:root {
    --media-blue: #102633;
    --media-highlight: #c1d0db;
    --project-image-ratio: 6 / 5;
    --portrait-position: 50% 30%;
    --hover-duration: 180ms;
}
.topbar { padding-block: 0; }
.topbar .contact-strip { justify-content: flex-end; align-items: center; gap: 24px; min-height: 36px; }
.contact-strip a, .contact-location { display: inline-flex; align-items: center; gap: 8px; }
.contact-strip a { min-height: 36px; color: white; text-decoration: none; }
.contact-strip a:hover { color: white; text-decoration: underline; }
.contact-strip svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.topbar :focus-visible { outline-color: white; outline-offset: 2px; }
.logo { width: 220px; height: 66px; flex-shrink: 0; }
.logo-asset { width: 100%; height: 100%; object-fit: contain; object-position: left center; }
.hero-visual-placeholder { position: absolute; inset: 0; background: radial-gradient(ellipse at 75% 33%, #83416855, transparent 40%), radial-gradient(ellipse at 42% 80%, #47768b55, transparent 55%), linear-gradient(145deg, #091c28, #183c50 60%, #10212e); }
.hero-visual-placeholder::before { content: ''; position: absolute; inset: 12% -12% 8% 20%; border: 1px solid #b5ced51a; border-radius: 50%; transform: rotate(-28deg); background: linear-gradient(150deg, #aac7d308, transparent 65%); }
.hero-visual-placeholder::after { content: ''; position: absolute; width: 65%; height: 1px; top: 55%; right: 4%; transform: rotate(-28deg); background: linear-gradient(90deg, transparent, #c980a55c, transparent); box-shadow: 0 0 32px 6px #b84d8822; }
.hero-visual-label { position: absolute; z-index: 1; right: 7%; bottom: 9%; color: #e0e8ee; font-size: .78rem; letter-spacing: .04em; }
.hero-visual-label small { display: block; margin-top: 5px; color: #b9c8d2; font-size: .68rem; }
.competencies { padding-block: 45px; gap: 32px; }
.competencies article { align-items: center; gap: 22px; padding-block: 8px; }
.competencies article + article { padding-left: 32px; }
.competencies svg { width: 46px; height: 46px; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform var(--hover-duration) ease; }
.competencies h2 { margin-top: 0; }
.competencies p { line-height: 1.55; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .competencies article:hover svg { transform: translateY(-3px); }
    .competencies article:hover h2 { color: var(--brand); }
}
.project { align-items: start; min-width: 0; }
.project > div { min-width: 0; }
.project-media { position: relative; width: 100%; aspect-ratio: var(--project-image-ratio); overflow: hidden; border-radius: var(--radius); background: var(--media-blue); }
.project-media:has(> img) { aspect-ratio: auto; }
.project-media img { display: block; position: static; width: 100%; height: auto; }
.media-placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between; padding: 22px 18px; background: radial-gradient(ellipse at 100% 0, #6f658344, transparent 65%), linear-gradient(145deg, #18394a, #0e2432); }
.media-placeholder::before { content: ''; position: absolute; inset: 20% -30% 20% 24%; border: 1px solid #a8bfce22; background: linear-gradient(135deg, #a9bac70c, transparent); transform: rotate(-32deg); }
.media-integration .media-placeholder { background: radial-gradient(ellipse at 90% 0, #a4004629, transparent 70%), linear-gradient(145deg, #1d3345, #122430); }
.media-index { position: relative; color: #c1d0db; font-size: .6rem; letter-spacing: .15em; }
.media-caption { position: relative; color: #e8eef2; font-size: .87rem; line-height: 1.4; font-weight: 600; max-width: 175px; }
.media-caption small { display: block; color: #bac9d3; font-size: .68rem; font-weight: 400; margin-top: 9px; }
.portrait-placeholder { position: relative; display: block; padding: 0; overflow: hidden; min-height: 340px; }
.portrait-placeholder > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--portrait-position); }
.portrait-fallback { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 18px; padding-right: 35px; }
/* Give the home-page portrait more room while retaining its angled edge. */
@media (min-width: 761px) {
    .about > .about-grid > .portrait-placeholder {
        clip-path: polygon(0 0, 100% 0, 90% 100%, 0 100%);
    }
}
@media (max-width: 1050px) and (min-width: 761px) {
    .competencies { gap: 24px; }
    .competencies article { gap: 16px; }
    .competencies article + article { padding-left: 24px; }
    .project-media { max-height: 270px; aspect-ratio: var(--project-image-ratio); }
}
@media (max-width: 760px) {
    .topbar .contact-strip { justify-content: space-between; gap: 14px; min-height: 40px; }
    .topbar .contact-strip a span { display: inline; }
    .topbar .contact-location { display: none; }
    .contact-strip a { min-height: 40px; gap: 6px; font-size: .68rem; letter-spacing: 0; }
    .contact-strip svg { width: 13px; height: 13px; }
    .logo { width: 178px; height: 54px; }
    .hero-visual-label { right: 24px; bottom: 20px; }
    .competencies { padding-block: 32px; gap: 24px; }
    .competencies article { padding-block: 6px; gap: 24px; }
    .competencies article + article { padding-left: 0; padding-top: 24px; }
    .project { grid-template-columns: minmax(130px, 34%) minmax(0, 1fr); }
    .project-media { max-height: none; }
    .media-placeholder { padding: 16px 12px; }
    .media-caption { font-size: .76rem; }
    .portrait-placeholder { min-height: 250px; padding: 0; }
    .portrait-fallback { flex-direction: row; gap: 25px; padding: 24px; }
}
@media (max-width: 420px) {
    .topbar .contact-strip { gap: 10px; }
    .contact-strip a { font-size: .62rem; }
    .contact-strip svg { width: 12px; height: 12px; }
    .project { grid-template-columns: 1fr; }
    .project-media { aspect-ratio: var(--project-image-ratio); }
    .media-placeholder { padding: 24px; }
    .media-caption { font-size: 1rem; max-width: 230px; }
}
@media (prefers-reduced-motion: reduce) {
    .competencies svg { transition: none; }
}

/* Three project examples: equal columns on wide screens, stacked on mobile. */
.projects .project-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.projects .project { display: flex; flex-direction: column; gap: 24px; align-items: stretch; }
.projects .project-media { flex-shrink: 0; max-height: none; }
.projects .project-copy { display: flex; flex-direction: column; align-items: flex-start; flex: 1; }
.projects .project h3 { font-size: 1.25rem; line-height: 1.25; overflow-wrap: anywhere; }
.projects .project p { font-size: .94rem; line-height: 1.55; }
.projects .project .text-link { margin-top: auto; padding-top: 8px; }
.project-number { color: var(--brand); text-transform: uppercase; letter-spacing: .1em; font-weight: 700; font-size: .72rem !important; margin-bottom: 10px; }
.project-status { display: inline-block; color: var(--brand); background: #f5e9ef; border-left: 2px solid var(--brand); padding: 7px 10px; font-size: .78rem !important; font-weight: 650; line-height: 1.45; }
.media-agents .media-placeholder { background: radial-gradient(ellipse at 85% 10%, #a4004633, transparent 65%), linear-gradient(140deg, #24364b, #112330); }
.project-jump-links { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-block: 28px 40px; }
.project-jump-links a { color: var(--brand); font-size: .9rem; padding-block: 6px; }
.project-detail { margin-top: 45px; padding-top: 32px; }
.project-detail h2 { font-size: clamp(1.5rem, 3vw, 2rem); }
.project-detail h3 { font-size: 1.06rem; margin-top: 26px; margin-bottom: 10px; letter-spacing: -.015em; }
.project-focus { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; padding-left: 20px; }
.editorial-note { color: var(--muted); font-size: .88rem; }
@media (min-width: 761px) and (max-width: 1050px) {
    .projects .project-grid { grid-template-columns: 1fr; gap: 36px; }
    .projects .project { display: grid; grid-template-columns: minmax(180px, 32%) minmax(0, 1fr); gap: 28px; }
    .projects .project-copy { align-self: stretch; }
}
@media (max-width: 760px) {
    .projects .project-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
    .projects .project { gap: 20px; }
    .project-focus { grid-template-columns: minmax(0, 1fr); }
    .project-jump-links { flex-direction: column; gap: 8px; }
    .project-detail { margin-top: 32px; }
}

/* Services page only: shared header, home page and other pages stay unchanged. */
.services-page {
    max-width: var(--content);
}
.services-page .services-intro {
    max-width: 800px;
    margin-bottom: 56px;
}
.services-page .services-intro h1::before {
    content: '';
    display: block;
    width: 36px;
    height: 3px;
    margin-bottom: 12px;
    background: var(--brand);
}
.services-page .services-intro .lead {
    color: var(--ink);
    margin-bottom: 28px;
}
.services-page .service-section {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    gap: clamp(32px, 5vw, 72px);
    padding-block: 48px;
    border-top: 1px solid var(--line);
}
.services-page .service-heading,
.services-page .service-content {
    min-width: 0;
}
.services-page .service-heading .eyebrow {
    color: var(--brand);
    margin-bottom: 18px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}
.services-page .service-heading .section-title {
    font-size: clamp(1.6rem, 2.6vw, 2rem);
    line-height: 1.2;
    text-wrap: balance;
}
.services-page .service-keywords {
    font-size: .88rem;
    color: var(--muted);
    line-height: 1.7;
}
.services-page .service-content > p {
    line-height: 1.65;
}
.services-page .service-content h3 {
    font-size: 1rem;
    margin-top: 28px;
    letter-spacing: -.01em;
}
.services-page .service-tasks {
    list-style: none;
    padding: 18px 24px;
    margin: 0 0 24px;
    background: var(--paper);
    border-left: 2px solid var(--brand);
}
.services-page .service-tasks li {
    position: relative;
    padding-left: 18px;
    margin-block: 12px;
    font-size: .94rem;
    line-height: 1.55;
}
.services-page .service-tasks li::before {
    content: '';
    position: absolute;
    left: 0;
    top: .65em;
    width: 5px;
    height: 5px;
    background: var(--brand);
    border-radius: 50%;
}
.services-page .services-closing {
    border-top: 1px solid var(--line);
    padding-top: 48px;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
    gap: clamp(32px, 5vw, 72px);
    align-items: center;
}
.services-page .services-closing-copy,
.services-page .services-closing-contact {
    min-width: 0;
}
.services-page .services-closing-contact {
    border-left: 1px solid var(--line);
    padding-left: clamp(24px, 3vw, 40px);
}
.services-page .services-closing-contact .services-contact-question {
    margin-top: 0;
}
.services-page .services-contact-question {
    font-weight: 650;
    margin-top: 28px;
    margin-bottom: 20px;
}
@media (max-width: 900px) {
    .services-page .services-closing {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
    }
    .services-page .services-closing-contact {
        border-left: 0;
        border-top: 1px solid var(--line);
        padding: 28px 0 0;
    }
    .services-page .service-section {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
        padding-block: 36px;
    }
    .services-page .service-keywords { margin-bottom: 0; }
    .services-page .services-intro { margin-bottom: 36px; }
}
@media (max-width: 420px) {
    .services-page .service-tasks { padding: 12px 16px; }
}

/* Project experience page: scoped to preserve the approved pages. */
.project-experience { max-width: var(--content); }
.project-experience .experience-intro { max-width: 810px; margin-bottom: 56px; }
.project-experience .experience-intro h1::before {
    content: ''; display: block; width: 36px; height: 3px;
    background: var(--brand); margin-bottom: 12px;
}
.project-experience .experience-intro .lead { color: var(--ink); margin-bottom: 28px; }
.project-experience .experience-project { border-top: 1px solid var(--line); padding-block: 48px; }
.project-experience .experience-project-heading { margin-bottom: 28px; }
.project-experience .experience-category { font-size: .84rem; color: var(--muted); margin-bottom: 20px; }
.project-experience .experience-subtitle { font-size: 1.1rem; color: var(--muted); margin-bottom: 0; }
.project-experience .experience-overview { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); align-items: center; margin-bottom: 36px; }
.project-experience .experience-image { border-radius: var(--radius); overflow: hidden; background: var(--media-blue); }
.project-experience .experience-image img { display: block; width: 100%; height: auto; }
.project-experience .experience-description p { font-size: 1.06rem; line-height: 1.65; }
.project-experience .experience-description p:last-child { margin-bottom: 0; }
.project-experience .experience-discussion { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); }
.project-experience .experience-discussion > div { min-width: 0; }
.project-experience .experience-discussion > div + div { border-left: 1px solid var(--line); padding-left: 28px; }
.project-experience h3 { font-size: 1.1rem; letter-spacing: -.015em; margin-bottom: 14px; }
.project-experience .experience-takeaway { margin-top: 20px; background: var(--paper); border-left: 3px solid var(--brand); padding: 24px 28px; }
.project-experience .experience-takeaway h3 { color: var(--brand); font-size: .9rem; }
.project-experience .experience-takeaway p { margin-bottom: 0; }
.project-experience .experience-closing { border-top: 1px solid var(--line); padding-top: 48px; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.project-experience .experience-contact { border-left: 1px solid var(--line); padding-left: clamp(24px, 3vw, 40px); }
.project-experience .experience-contact p { font-weight: 650; margin-bottom: 20px; }
@media (max-width: 900px) {
    .project-experience .experience-intro { margin-bottom: 36px; }
    .project-experience .experience-project { padding-block: 36px; }
    .project-experience .experience-overview,
    .project-experience .experience-discussion,
    .project-experience .experience-closing { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .project-experience .experience-image { max-width: 640px; }
    .project-experience .experience-discussion > div + div,
    .project-experience .experience-contact { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 24px; }
}
@media (max-width: 420px) {
    .project-experience .experience-takeaway { padding: 20px; }
}

/* Personal profile page only. */
.profile-page { max-width: var(--content); }
.profile-page .profile-heading { margin-bottom: 40px; }
.profile-page .profile-heading h1::before { content: ''; display: block; width: 36px; height: 3px; margin-bottom: 12px; background: var(--brand); }
.profile-page .profile-heading .lead { color: var(--ink); }
.profile-page .profile-intro { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: clamp(32px, 5vw, 72px); align-items: center; margin-bottom: 56px; }
.profile-page .portrait-placeholder { clip-path: none; min-height: 0; aspect-ratio: 9 / 11; margin: 0; align-self: center; border-radius: var(--radius); }
.profile-page .portrait-fallback { padding: 24px; flex-direction: column; }
.profile-page .profile-intro-copy { min-width: 0; }
.profile-page .qualification { line-height: 1.7; margin-bottom: 24px; }
.profile-page .profile-intro-copy > p:not(.qualification) { font-size: 1.05rem; line-height: 1.65; }
.profile-page .profile-section { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(32px, 5vw, 72px); padding-block: 44px; border-top: 1px solid var(--line); }
.profile-page .profile-section h2 { font-size: clamp(1.6rem, 2.6vw, 2rem); line-height: 1.2; text-wrap: balance; }
.profile-page .profile-section-copy { min-width: 0; }
.profile-page .profile-section-copy p { line-height: 1.65; }
.profile-page .profile-section-4 { background: var(--paper); padding-inline: 28px; }
.profile-page .profile-statement { border-left: 3px solid var(--brand); margin: 28px 0 0; padding: 5px 0 5px 22px; }
.profile-page .profile-statement p { margin: 0; font-weight: 600; }
.profile-page .profile-closing { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: center; gap: clamp(32px, 5vw, 72px); border-top: 1px solid var(--line); padding-top: 48px; }
.profile-page .profile-contact { border-left: 1px solid var(--line); padding-left: clamp(24px, 3vw, 40px); }
.profile-page .profile-contact p:first-child { font-weight: 650; }
.profile-page .profile-contact .button { margin-top: 6px; }
@media (max-width: 900px) {
    .profile-page .profile-intro { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 28px; }
    .profile-page .profile-section, .profile-page .profile-closing { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .profile-page .profile-contact { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 24px; }
}
@media (max-width: 760px) {
    .profile-page .profile-intro { grid-template-columns: minmax(0, 1fr); gap: 28px; margin-bottom: 36px; }
    .profile-page .portrait-placeholder { width: min(100%, 340px); justify-self: center; }
    .profile-page .profile-heading { margin-bottom: 28px; }
    .profile-page .profile-section { padding-block: 32px; }
    .profile-page .profile-section-4 { padding-inline: 20px; }
}

/* Personal contact page: shared portrait asset, unchanged global components. */
.contact-page { max-width: var(--content); }
.contact-page .contact-intro { max-width: 850px; margin-bottom: 48px; }
.contact-page .contact-intro .lead { color: var(--ink); line-height: 1.6; }
.contact-page .personal-contact {
    display: grid;
    grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
    gap: clamp(32px, 5vw, 72px);
    align-items: center;
    border-top: 1px solid var(--line);
    padding-top: 40px;
}
.contact-page .portrait-placeholder {
    clip-path: none;
    min-height: 0;
    aspect-ratio: 9 / 11;
    margin: 0;
    align-self: center;
    border-radius: var(--radius);
}
.contact-page .portrait-fallback { padding: 24px; flex-direction: column; }
.contact-page .personal-contact-copy { min-width: 0; }
.contact-page .qualification { line-height: 1.7; margin-bottom: 32px; }
.contact-page .personal-contact-copy h3 { font-size: 1.25rem; margin-bottom: 12px; }
.contact-page .personal-contact-copy > p:not(.qualification) { font-size: 1.05rem; line-height: 1.65; max-width: 520px; }
.contact-page .personal-contact-details { margin: 28px 0 0; }
.contact-page .personal-contact-details > div { margin-top: 20px; }
.contact-page .personal-contact-details dt { font-size: .8rem; font-weight: 650; color: var(--muted); margin-bottom: 4px; }
.contact-page .personal-contact-details dd { margin: 0; }
.contact-page .personal-contact-details a { display: inline-block; max-width: 100%; padding-block: 6px; color: var(--brand); font-size: clamp(1rem, 1.8vw, 1.25rem); font-weight: 650; overflow-wrap: anywhere; }
@media (max-width: 900px) {
    .contact-page .personal-contact { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 28px; }
}
@media (max-width: 760px) {
    .contact-page .contact-intro { margin-bottom: 32px; }
    .contact-page .personal-contact { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-top: 28px; }
    .contact-page .portrait-placeholder { width: min(100%, 340px); justify-self: center; }
    .contact-page .qualification { margin-bottom: 24px; }
}

/* Imprint only: plain, readable provider information. */
.imprint-page h1::before {
    content: '';
    display: block;
    width: 36px;
    height: 3px;
    margin-bottom: 12px;
    background: var(--brand);
}
.imprint-page .imprint-address { font-style: normal; line-height: 1.7; margin-block: 24px 32px; }
.imprint-page a { overflow-wrap: anywhere; }
.imprint-page h2 { overflow-wrap: anywhere; }

/* Privacy notice only: readable text without decorative content. */
.privacy-page h1::before {
    content: '';
    display: block;
    width: 36px;
    height: 3px;
    margin-bottom: 12px;
    background: var(--brand);
}
.privacy-page .privacy-address { font-style: normal; line-height: 1.7; margin-block: 20px; }
.privacy-page p, .privacy-page li { line-height: 1.65; }
.privacy-page h3 { margin-top: 28px; font-size: 1.1rem; }
.privacy-page a, .privacy-page h1, .privacy-page h2 { overflow-wrap: anywhere; }
.privacy-page .privacy-rights { padding-left: 22px; }
.privacy-page .privacy-rights li { margin-block: 16px; }
