:root{
  --ink:#101216;--muted:#6f7480;--paper:#f7f6f2;--white:#fff;--line:#deded9;--accent:#c78a3a;
  --max:1760px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}.site-header{position:sticky;top:0;z-index:50;height:76px;display:flex;align-items:center;padding:0 4vw;background:rgba(247,246,242,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.brand{font-size:30px;font-weight:800;letter-spacing:-.05em}.brand span{color:var(--accent)}.nav{display:flex;gap:36px;margin-left:52px}.nav a,.cv-link{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.header-actions{margin-left:auto;display:flex;align-items:center;gap:30px}.lang-switch{display:flex;border:1px solid var(--line);border-radius:20px;padding:3px}.lang-switch button{border:0;background:transparent;padding:7px 10px;border-radius:16px;font:700 11px Arial;cursor:pointer;color:var(--muted)}.lang-switch button.active{background:var(--ink);color:white}.hero{display:grid;grid-template-columns:35% 65%;min-height:690px;max-width:var(--max);margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line)}.hero-copy{padding:8vh 4vw 5vh;display:flex;flex-direction:column;justify-content:center}.eyebrow{margin:0 0 30px;font-size:11px;line-height:1.6;font-weight:700;letter-spacing:.2em}.hero h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(58px,5.3vw,98px);line-height:.86;letter-spacing:-.055em;margin:0;max-width:7ch}.accent-line{width:42px;height:2px;background:var(--accent);margin:28px 0}.hero-lead{max-width:520px;color:#6a6e78;font-size:clamp(18px,1.5vw,27px);line-height:1.35;margin:0 0 42px}.hero-meta{display:grid;grid-template-columns:120px 1fr;gap:28px;align-items:center;margin-bottom:34px}.hero-meta>div:first-child{border-right:1px solid #c7c7c3;padding-right:20px}.hero-meta strong{display:block;font-size:22px}.hero-meta span,.regions{display:block;font-size:10px;letter-spacing:.16em;line-height:1.8;color:#737783}.hero-cta{display:flex;gap:14px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 26px;border:1px solid var(--ink);font-size:11px;font-weight:700;letter-spacing:.1em}.button.primary{background:var(--ink);color:white}.button.secondary{background:transparent}.hero-image{margin:0;position:relative;min-height:690px;overflow:hidden}.hero-image figcaption{position:absolute;right:28px;bottom:24px;padding:8px 10px;background:rgba(10,12,16,.72);color:white;font-size:10px;letter-spacing:.14em}.categories{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-top:0}.category{padding:28px 24px 22px;min-width:0}.category+.category{border-left:1px solid var(--line)}.category-heading{display:grid;grid-template-columns:56px 1fr;gap:12px;min-height:116px}.index{font-family:Georgia,serif;color:var(--accent);font-size:24px;border-right:1px solid #aaa;padding-right:18px;height:28px}.category h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(29px,2vw,42px);margin:0 0 10px;letter-spacing:-.03em}.category p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.media-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:160px 160px;gap:6px;margin-top:8px}.media-card{position:relative;overflow:hidden;background:#e8e6e0;min-height:0}.media-card.large{grid-row:1/3}.media-card span:not(.placeholder-mark){position:absolute;left:0;right:0;bottom:0;padding:28px 14px 12px;color:white;font-size:11px;background:linear-gradient(transparent,rgba(0,0,0,.65));line-height:1.35}.placeholder{display:flex;align-items:center;justify-content:center;background:#dad8d1}.placeholder .placeholder-mark{font-family:Georgia,serif;font-size:64px;color:#7d7a72}.text-link{display:inline-block;margin-top:18px;font-size:10px;letter-spacing:.12em;font-weight:700}.project-archive{padding:90px 4vw;background:#101216;color:white}.project-archive.light{background:#efeee9;color:#111}.section-title{max-width:var(--max);margin:0 auto 36px;display:flex;align-items:baseline;gap:20px;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:18px}.light .section-title{border-bottom-color:#ccc}.section-title p{color:var(--accent);font-family:Georgia,serif;font-size:22px;margin:0}.section-title h2{font-family:Georgia,serif;font-size:44px;font-weight:400;margin:0}.project-grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.project-card{background:white;color:#111}.project-card img{aspect-ratio:4/3}.project-card>div:last-child{padding:16px}.project-card span{font-size:9px;letter-spacing:.15em;color:#7a7a7a}.project-card h3{font-family:Georgia,serif;font-weight:400;font-size:22px;margin:9px 0 5px}.project-card p{font-size:12px;color:#777;margin:0}.infra-row{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.placeholder-card{display:flex;flex-direction:column;min-height:330px}.placeholder-card>.placeholder-mark{flex:1;display:flex;align-items:center;justify-content:center;background:#d8d5cd;font-family:Georgia,serif;font-size:110px;color:#777}.experience{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1fr 1.5fr;gap:8vw;padding:110px 4vw;border-left:1px solid var(--line);border-right:1px solid var(--line)}.experience-intro h2{font-family:Georgia,serif;font-size:clamp(40px,4vw,70px);font-weight:400;line-height:1.03;margin:0}.timeline article{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid #ccc}.timeline time{font-weight:700;font-size:13px}.timeline h3{margin:0 0 8px;font-size:16px}.timeline p{margin:0;color:var(--muted);font-size:13px}.contact{max-width:var(--max);margin:0 auto;padding:86px 4vw;display:grid;grid-template-columns:1.4fr 1fr;gap:60px;background:#eceae4;border:1px solid var(--line)}.contact h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(34px,3vw,56px);margin:0}.contact-details{display:flex;flex-direction:column;gap:16px;justify-content:center;font-size:15px}.contact-details a{border-bottom:1px solid #bbb;padding-bottom:10px}footer{max-width:var(--max);margin:0 auto;padding:24px 4vw;display:flex;justify-content:space-between;color:#747474;font-size:10px;letter-spacing:.12em;border-left:1px solid var(--line);border-right:1px solid var(--line)}
@media (max-width:1050px){.nav{display:none}.hero{grid-template-columns:1fr}.hero-copy{padding:70px 7vw}.hero-image{min-height:500px}.categories{grid-template-columns:1fr}.category+.category{border-left:0;border-top:1px solid var(--line)}.project-grid{grid-template-columns:repeat(2,1fr)}.experience{grid-template-columns:1fr}.contact{grid-template-columns:1fr}.infra-row{grid-template-columns:1fr 1fr}.header-actions{gap:14px}}
@media (max-width:650px){.site-header{height:64px;padding:0 5vw}.brand{font-size:25px}.cv-link{display:none}.hero-copy{padding:56px 6vw}.hero h1{font-size:58px}.hero-image{min-height:360px}.hero-meta{grid-template-columns:110px 1fr}.categories{border-left:0;border-right:0}.category{padding:24px 5vw}.media-grid{grid-template-rows:140px 140px}.project-archive{padding:65px 5vw}.project-grid,.infra-row{grid-template-columns:1fr}.section-title h2{font-size:34px}.experience,.contact{padding:70px 6vw}.timeline article{grid-template-columns:1fr}.contact{gap:28px}footer{flex-direction:column;gap:8px;padding:20px 5vw}.hero-image figcaption{font-size:9px;right:14px;bottom:14px}}

/* Project metadata shown on image hover — sourced from the uploaded Excel file */
.hover-meta-host{position:relative;overflow:hidden;outline:none}.project-image-wrap{position:relative;overflow:hidden;aspect-ratio:4/3}.project-image-wrap>img{width:100%;height:100%;object-fit:cover;aspect-ratio:auto}.project-hover{position:absolute;inset:0;z-index:8;display:flex;align-items:flex-end;padding:20px;background:linear-gradient(180deg,rgba(9,12,17,.16) 0%,rgba(9,12,17,.88) 66%,rgba(9,12,17,.96) 100%);color:#fff;opacity:0;transform:translateY(8px);transition:opacity .22s ease,transform .22s ease;pointer-events:none}.hover-meta-host:hover>.project-hover,.hover-meta-host:focus>.project-hover,.hover-meta-host:focus-within>.project-hover{opacity:1;transform:translateY(0)}.project-hover-inner{max-width:100%}.project-hover-title{margin:0 0 12px!important;color:#fff!important;font-family:Georgia,'Times New Roman',serif!important;font-weight:400!important;font-size:20px!important;line-height:1.08!important;letter-spacing:-.01em!important}.project-hover-line{margin:6px 0 0!important;color:rgba(255,255,255,.94)!important;font-size:11px!important;line-height:1.45!important}.project-hover-line>span{display:block;margin-bottom:3px;color:#d8a15a!important;font-size:8px!important;font-weight:700!important;letter-spacing:.16em!important}.project-hover-scope{max-width:54ch}.hero-image>.project-hover{padding:34px}.hero-image .project-hover-title{font-size:30px!important}.hero-image .project-hover-line{font-size:13px!important}.media-card>.project-hover{padding:16px}.media-card .project-hover-title{font-size:16px!important}.media-card .project-hover-line{font-size:10px!important}.media-card:hover>span:not(.placeholder-mark),.media-card:focus>span:not(.placeholder-mark){opacity:0}.media-card>span:not(.placeholder-mark){transition:opacity .18s ease}.project-card .project-image-wrap{width:100%}.project-card .project-hover{padding:16px}.project-card .project-hover-title{font-size:17px!important}.project-card .project-hover-line{font-size:10px!important}
@media (max-width:650px){.project-hover{padding:14px}.hero-image>.project-hover{padding:18px}.hero-image .project-hover-title{font-size:22px!important}.hero-image .project-hover-line{font-size:11px!important}.project-hover-title{font-size:16px!important}.project-hover-line{font-size:10px!important}}


/* CV portrait below the name */
.profile-photo-block{margin-top:24px;display:flex;align-items:center}
.profile-photo{width:94px;height:94px;border-radius:50%;object-fit:cover;border:1px solid rgba(16,18,22,.16);box-shadow:0 10px 28px rgba(16,18,22,.10)}
@media (max-width:650px){.profile-photo{width:78px;height:78px}.profile-photo-block{margin-top:20px}}

/* Full-size project image lightbox — images are shown uncropped */
.hero-image img,.media-card img,.project-card img{cursor:zoom-in}
.lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(7,9,12,.94);opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease;padding:34px 82px}
.lightbox.is-open{opacity:1;visibility:visible}
.lightbox-content{margin:0;max-width:min(1500px,92vw);max-height:92vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.lightbox-content img{width:auto;height:auto;max-width:100%;max-height:82vh;object-fit:contain;background:#111;box-shadow:0 20px 70px rgba(0,0,0,.5)}
.lightbox-content figcaption{max-width:min(1200px,86vw);color:rgba(255,255,255,.9);font-size:13px;line-height:1.5;text-align:center;letter-spacing:.02em}
.lightbox-close{position:absolute;top:20px;right:24px;width:46px;height:46px;border:1px solid rgba(255,255,255,.32);background:rgba(0,0,0,.25);color:white;font-size:32px;line-height:1;cursor:pointer;border-radius:50%}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:66px;border:1px solid rgba(255,255,255,.24);background:rgba(0,0,0,.24);color:white;font-size:42px;line-height:1;cursor:pointer}
.lightbox-prev{left:18px}.lightbox-next{right:18px}
.lightbox-close:hover,.lightbox-nav:hover{background:rgba(255,255,255,.12)}
body.lightbox-open{overflow:hidden}
@media (max-width:700px){.lightbox{padding:58px 14px 24px}.lightbox-content img{max-height:72vh}.lightbox-nav{width:42px;height:58px;font-size:34px;top:auto;bottom:18px;transform:none}.lightbox-prev{left:18px}.lightbox-next{right:18px}.lightbox-close{top:12px;right:12px}.lightbox-content figcaption{font-size:11px;padding:0 44px}}
