*{box-sizing:border-box}body{margin:0;background:#fdfdfd;color:#131313;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}header{height:88px;border-bottom:1px solid #e5e5e5;display:flex;align-items:center;justify-content:space-between;padding:0 16px;font-weight:700}nav{display:flex;gap:42px;align-items:center}nav svg{display:block}.grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px;padding:42px 14px;align-items:start}.card{display:block;font-size:clamp(14px,1vw,20px);line-height:1.08}.card.wide{grid-column:span 2}.card img,.placeholder{display:block;width:100%;margin-bottom:11px}.placeholder{aspect-ratio:4/5;background:#ecebe8;position:relative}.wide .placeholder{aspect-ratio:16/9}.placeholder video{width:100%;height:100%;object-fit:cover}.placeholder span{position:absolute;inset:0;display:grid;place-items:center;color:white;font-size:4rem;text-shadow:0 1px 8px #111}.contact{max-width:824px;margin:70px auto;padding:0 24px;font-size:clamp(22px,2vw,34px);font-weight:700}.contact p{margin:0 0 1.65em}.detail{text-align:center;padding:24px}.detail h1{font-size:clamp(18px,2vw,28px);font-weight:500}figure{margin:0}.gallery :is(img,video){max-width:100%;max-height:72vh;object-fit:contain}.controls{display:flex;align-items:center;justify-content:center;gap:20px}.controls[hidden]{display:none}button{font:inherit;cursor:pointer}.controls button,.close{background:transparent;color:inherit;border:0;font-size:28px;padding:8px 14px}.caption{white-space:normal}dialog{width:min(96vw,1300px);max-height:95vh;border:0;background:#fdfdfd;color:#131313;padding:25px}dialog::backdrop{background:#000a}.close{position:absolute;right:4px;top:0;z-index:1}body:has(dialog[open]){overflow:hidden}@media(max-width:1000px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:650px){header{height:64px}nav{gap:22px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px;padding:22px 12px}.contact{margin-top:46px}dialog{padding:20px 4px}}
.grid.masonry{grid-auto-rows:1px;row-gap:0}.grid.masonry .card{grid-row-end:span var(--rows,400)}

/* Project headings and slideshow spacing */
main h1, main .card h2, dialog h2, dialog h1 { font-size: clamp(16px, 2.2vw, 24px); }
.gallery { padding: 10px; }
