/* Minimal, borderless portfolio styling. Times New Roman throughout. */
:root { --page-padding: 3rem; --text: #111; --background: #fff; }
* { box-sizing: border-box; }
html { background: var(--background); color: var(--text); font-family: "Times New Roman", Times, serif; font-size: 16px; line-height: 1.25; }
body { margin: 0; min-height: 100vh; background: var(--background); }
a { color: inherit; text-decoration: none; }
a:hover { opacity: .6; }
.site-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; padding: var(--page-padding); }
.site-title { white-space: nowrap; }
.main-nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .35rem 1.25rem; }
.main-nav a[aria-current="page"] { text-decoration: underline; text-underline-offset: 3px; }
main { width: 100%; padding: 0 var(--page-padding) var(--page-padding); }
.page[hidden] { display: none; }
.archive-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; width: 100%; }
.archive-frame { position: relative; width: 100%; aspect-ratio: 1 / 1; overflow: hidden; background: #fff; }
.archive-frame img { display: block; width: 100%; height: 100%; object-fit: contain; opacity: 0; transition: opacity .25s ease; }
.archive-frame.has-image img { opacity: 1; }
.image-placeholder { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #777; font-size: .9rem; }
.archive-frame.has-image .image-placeholder { display: none; }
h1 { margin: 0 0 2rem; font-size: 1rem; font-weight: 400; }
.empty-note { min-height: 45vh; }
.bio-copy { max-width: 42rem; margin-bottom: 3rem; }
.bio-copy p { margin: 0; }
.contact { display: flex; flex-direction: column; align-items: flex-start; gap: .2rem; font-size: .875rem; }
.contact-label { margin: 0 0 .2rem; text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 700px) { :root { --page-padding: 1.25rem; } .site-header { flex-direction: column; gap: 1.25rem; } .main-nav { justify-content: flex-start; gap: .4rem 1rem; } main { padding-top: 1.5rem; } .archive-pair { gap: 10px; } .archive-frame { aspect-ratio: 3 / 4; } .empty-note { min-height: 35vh; } }
@media (prefers-reduced-motion: reduce) { .archive-frame img { transition: none; } }
