:root { --paper:#ece8df; --ink:#151512; --muted:#68655e; --line:rgba(21,21,18,.2); --accent:#a43d25; --pad:clamp(1.25rem,4vw,4.5rem); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif; line-height:1.5; }
img { display:block; width:100%; height:auto; }
a { color:inherit; }
button { font:inherit; }
.skip-link { position:fixed; left:1rem; top:1rem; z-index:10; padding:.7rem 1rem; background:var(--ink); color:white; transform:translateY(-200%); }
.skip-link:focus { transform:translateY(0); }
.site-header { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:1.5rem var(--pad); border-bottom:1px solid var(--line); }
.wordmark { display:inline-flex; flex-direction:column; width:min-content; color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:1.15rem; font-weight:700; line-height:.78; letter-spacing:-.04em; text-decoration:none; }
.site-header nav { display:flex; gap:clamp(1.2rem,3vw,3rem); }
.site-header nav a,.language-toggle { font-size:.72rem; font-weight:700; letter-spacing:.14em; text-decoration:none; text-transform:uppercase; }
.site-header nav a { border-bottom:1px solid transparent; }
.site-header nav a:hover,.site-header nav a:focus-visible { border-color:currentColor; }
.language-toggle { justify-self:end; border:0; border-bottom:1px solid var(--ink); padding:.25rem 0; background:transparent; cursor:pointer; }
.hero { min-height:calc(100vh - 79px); display:grid; grid-template-columns:minmax(18rem,.85fr) minmax(22rem,1.15fr); gap:clamp(2rem,6vw,8rem); align-items:center; padding:clamp(3rem,7vw,7rem) var(--pad); }
.hero-copy { max-width:42rem; }
.eyebrow,.section-number { margin:0 0 2rem; color:var(--accent); font-size:.7rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase; }
h1,h2 { margin:0; font-family:Georgia,"Times New Roman",serif; font-weight:400; letter-spacing:-.055em; line-height:.92; }
h1 { font-size:clamp(3.4rem,7.1vw,8.5rem); }
h2 { font-size:clamp(3rem,5.4vw,6.8rem); }
.intro { max-width:35rem; margin:2.2rem 0; color:var(--muted); font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.05rem,1.5vw,1.35rem); }
.text-link { display:inline-block; padding-bottom:.35rem; border-bottom:1px solid currentColor; font-size:.75rem; font-weight:800; letter-spacing:.12em; text-decoration:none; text-transform:uppercase; }
.hero-image { margin:0; }
.hero-image img { aspect-ratio:1.35; object-fit:cover; }
.hero-image figcaption,.photo-card figcaption { display:flex; justify-content:space-between; gap:1rem; margin-top:.75rem; color:var(--muted); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }
.selected-work,.archive-section,.about-section { padding:clamp(5rem,10vw,10rem) var(--pad); }
.selected-work { background:var(--ink); color:var(--paper); }
.section-heading { display:grid; grid-template-columns:5rem 1fr minmax(16rem,.55fr); gap:2rem; align-items:end; margin-bottom:clamp(4rem,8vw,8rem); }
.section-heading .section-number { align-self:start; }
.section-heading>p:last-child { margin:0; color:#aaa69d; max-width:32rem; }
.gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(3rem,7vw,8rem) clamp(2rem,5vw,6rem); align-items:start; }
.photo-card { margin:0; }
.photo-card--tall { width:min(100%,31rem); }
.photo-card--offset { justify-self:end; margin-top:8vw; width:min(100%,34rem); }
.photo-card--wide { grid-column:1/-1; width:min(72%,62rem); margin:0 auto; }
.photo-card img { background:#2b2a27; object-fit:cover; }
.photo-card--tall img { aspect-ratio:2/3; }
.photo-card--offset img { aspect-ratio:4/3; }
.photo-card--wide img { aspect-ratio:1.55; }
.photo-card figcaption { color:#aaa69d; }
.photo-card figcaption span:first-child { color:var(--paper); }
.archive-section { display:flex; flex-direction:column; gap:clamp(2.5rem,5vw,4rem); }
.archive-header { display:grid; grid-template-columns:5rem 1fr minmax(16rem,.65fr); gap:2rem; align-items:end; }
.archive-header .section-number { align-self:start; }
.archive-header>p:last-child { margin:0; color:var(--muted); font-size:1.05rem; line-height:1.5; }
.filter-nav { display:flex; flex-wrap:wrap; gap:.75rem 1.25rem; border-bottom:1px solid var(--line); padding-bottom:1.25rem; }
.filter-btn { background:transparent; border:1px solid var(--line); border-radius:999px; padding:.45rem 1.1rem; color:var(--muted); font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; transition:all .2s ease; }
.filter-btn:hover { color:var(--ink); border-color:var(--ink); }
.filter-btn.active { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.explorer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1.5rem,3vw,2.5rem); }
.archive-card { display:flex; flex-direction:column; background:rgba(21,21,18,.02); border:1px solid var(--line); border-radius:4px; overflow:hidden; transition:transform .25s ease,box-shadow .25s ease,opacity .3s ease; }
.archive-card:hover { transform:translateY(-4px); box-shadow:0 12px 24px rgba(0,0,0,.08); }
.archive-card.hidden { display:none; }
.archive-card-image { position:relative; overflow:hidden; aspect-ratio:4/3; background:#2b2a27; }
.archive-card-image img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.archive-card:hover .archive-card-image img { transform:scale(1.04); }
.archive-card-info { padding:1.25rem 1.25rem 1.5rem; display:flex; flex-direction:column; gap:.35rem; }
.archive-card-tag { font-size:.65rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.archive-card-title { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:1.25rem; font-weight:400; line-height:1.2; }
.archive-card-meta { margin:0; font-size:.72rem; color:var(--muted); letter-spacing:.04em; }
.archive-stats-footer { margin-top:2rem; padding-top:2.5rem; border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.archive-stats-footer div { display:flex; flex-direction:column; gap:.35rem; }
.archive-stats-footer strong { font-family:Georgia,"Times New Roman",serif; font-size:clamp(2rem,3.5vw,3rem); font-weight:400; line-height:1; }
.archive-stats-footer span { color:var(--muted); font-size:.85rem; }
.about-section { display:grid; grid-template-columns:5rem minmax(0,1fr); gap:2rem; background:#b44a31; color:#f4ede3; }
.about-section .section-number { color:#f4cbbf; }
.about-section h2 { max-width:65rem; }
.about-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(2rem,4vw,4rem); margin-top:2.5rem; align-items:start; }
.about-copy p { margin:0 0 1.5rem; font-size:clamp(1rem,1.4vw,1.2rem); line-height:1.6; opacity:.95; }
.about-inquiry-card { background:rgba(0,0,0,.15); padding:2rem; border-radius:4px; border:1px solid rgba(255,255,255,.15); display:flex; flex-direction:column; gap:1rem; }
.about-inquiry-card h3 { margin:0; font-family:Georgia,serif; font-size:1.3rem; font-weight:400; color:#fff; }
.about-inquiry-card p { margin:0; font-size:.9rem; line-height:1.5; color:#f4ede3; }
.about-contact-btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; padding:.8rem 1.5rem; background:#ece8df; color:#151512; font-size:.78rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; text-decoration:none; border-radius:2px; transition:all .2s ease; margin-top:.5rem; }
.about-contact-btn:hover { background:#fff; transform:translateY(-2px); }
.about-badge { font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#f4cbbf; opacity:.85; }
footer { display:grid; grid-template-columns:1fr 1fr 1fr; align-items:end; gap:2rem; padding:4rem var(--pad); background:var(--ink); color:#aaa69d; font-size:.78rem; }
.wordmark--footer { color:var(--paper); font-size:2rem; }
footer p { margin:0; }
footer p:last-child { text-align:right; }
:focus-visible { outline:3px solid #3d83c5; outline-offset:4px; }
.collection-page { padding:clamp(2rem,5vw,5rem) var(--pad); max-width:86rem; margin:0 auto; }
.collection-nav-bar { display:flex; justify-content:space-between; align-items:center; margin-bottom:clamp(3rem,6vw,5rem); border-bottom:1px solid var(--line); padding-bottom:1.5rem; }
.collection-back-link { display:inline-flex; align-items:center; gap:.5rem; font-size:.75rem; font-weight:800; letter-spacing:.12em; text-decoration:none; text-transform:uppercase; color:var(--ink); transition:gap .2s ease; }
.collection-back-link:hover { gap:.8rem; }
.collection-hero { margin-bottom:clamp(3.5rem,7vw,6rem); max-width:54rem; }
.collection-hero h1 { font-size:clamp(3rem,6vw,5.5rem); margin-bottom:1.5rem; }
.collection-intro { font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.15rem,1.8vw,1.45rem); color:var(--muted); line-height:1.45; margin-bottom:2rem; }
.collection-tags { display:flex; flex-wrap:wrap; gap:.5rem .75rem; }
.collection-tag { font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:.3rem .75rem; border-radius:999px; background:rgba(21,21,18,.05); color:var(--ink); }
.collection-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1.5rem,3vw,2.5rem); margin-bottom:clamp(4rem,8vw,7rem); }
.collection-footer-nav { display:flex; justify-content:space-between; align-items:center; padding-top:2.5rem; border-top:1px solid var(--line); margin-top:3rem; }
.collection-footer-nav a { font-size:.75rem; font-weight:800; letter-spacing:.12em; text-decoration:none; text-transform:uppercase; border-bottom:1px solid currentColor; padding-bottom:.25rem; }
.collection-portals { margin-top:3rem; padding:2.5rem; background:rgba(21,21,18,.03); border:1px solid var(--line); border-radius:4px; }
.collection-portals-heading { margin-bottom:2rem; }
.collection-portals-heading h3 { font-family:Georgia,"Times New Roman",serif; font-size:1.5rem; font-weight:400; margin:0 0 .5rem; }
.collection-portals-heading p { margin:0; color:var(--muted); font-size:.95rem; }
.collection-links-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.25rem; }
.collection-link-card { display:grid; grid-template-columns:2rem 1fr auto; gap:1.25rem; align-items:center; padding:1.25rem 1.5rem; background:var(--paper); border:1px solid var(--line); border-radius:4px; text-decoration:none; color:var(--ink); transition:all .2s ease; }
.collection-link-card:hover { transform:translateY(-2px); border-color:var(--ink); box-shadow:0 6px 16px rgba(0,0,0,.06); }
.collection-link-num { font-size:.7rem; font-weight:800; color:var(--accent); letter-spacing:.1em; }
.collection-link-card div { display:flex; flex-direction:column; gap:.2rem; }
.collection-link-card strong { font-size:.95rem; font-weight:700; }
.collection-link-card span { font-size:.75rem; color:var(--muted); }
.collection-link-arrow { font-size:1.1rem; font-weight:700; transition:transform .2s ease; }
.collection-link-card:hover .collection-link-arrow { transform:translateX(4px); }
@media (max-width:960px) {
  .explorer-grid,.collection-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .archive-header { grid-template-columns:1fr; }
  .archive-header .section-number { margin-bottom:1rem; }
}
@media (max-width:820px) {
  .site-header { grid-template-columns:1fr auto; }
  .site-header nav { display:none; }
  .hero { grid-template-columns:1fr; min-height:auto; }
  .hero-image { margin-top:1rem; }
  .section-heading { grid-template-columns:1fr; gap:1rem; }
  .gallery-grid { gap:4rem 1.25rem; }
  .photo-card--wide { width:100%; }
  .about-section { grid-template-columns:1fr; }
  .about-grid { grid-template-columns:1fr; }
  .collection-links-grid { grid-template-columns:1fr; }
  .collection-portals { padding:1.5rem; }
  footer { grid-template-columns:1fr 1fr; }
  footer p:nth-child(2) { display:none; }
}
@media (max-width:560px) {
  h1 { font-size:clamp(3rem,15vw,5rem); }
  .gallery-grid,.explorer-grid,.collection-grid,.archive-stats-footer { grid-template-columns:1fr; }
  .photo-card--tall,.photo-card--offset { width:100%; margin-top:0; }
  .photo-card--wide { grid-column:auto; }
  footer { grid-template-columns:1fr; }
  footer p:last-child { text-align:left; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
