
:root { --ink:#323232; --muted:#858585; --paper:#fff; --accent:#592a28; --sidebar:270px; }
* { box-sizing:border-box; }
body { margin:0; min-height:100svh; background:var(--paper); color:var(--ink); font:14px/1.5 Arial,Helvetica,sans-serif; }
img { display:block; max-width:100%; } a { color:inherit; } button { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
.skip-link { position:fixed; left:16px; top:12px; z-index:100; padding:8px 12px; background:var(--ink); color:white; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.site-nav { position:fixed; inset:0 auto 0 0; width:var(--sidebar); z-index:20; display:flex; flex-direction:column; padding:35px 28px 22px 30px; background:#fff; overflow-y:auto; }
.brand { margin-bottom:34px; text-decoration:none; }
.brand-name { display:block; color:var(--accent); font-family:Arial,Helvetica,sans-serif; font-weight:400; font-size:27px; letter-spacing:-.8px; white-space:nowrap; line-height:1.3; }
.brand-discipline { display:block; color:var(--muted); font-size:10px; letter-spacing:1.5px; margin-top:6px; text-transform:uppercase; }
.site-nav ul { margin:0; padding:0; list-style:none; }
.site-nav li { text-align:right; margin:0 0 18px; }
.site-nav nav a { text-decoration:none; color:var(--muted); display:inline-block; font-size:13px; line-height:1.7; transition:color .15s; }
.site-nav nav a:hover,.site-nav nav a[aria-current="page"] { color:var(--accent); }
.nav-secondary { padding-top:24px; }
.copyright { margin:auto 0 0; padding-top:48px; color:#929292; font-size:9px; }
.menu-toggle { display:none; }
.gallery-stage { position:relative; margin-left:var(--sidebar); height:100svh; padding:74px 54px 66px; }
.photo-frame { width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.photo-frame img { height:100%; width:100%; object-fit:contain; object-position:center; transition:opacity .18s ease; }
.photo-frame img.is-loading { opacity:.4; }
.gallery-control { position:absolute; top:auto; bottom:17px; width:38px; height:38px; border:0; background:transparent; color:#8a8a8a; cursor:pointer; font:32px/1 Georgia,serif; transform:none; transition:color .15s; }
.gallery-control:hover { color:var(--accent); }
.gallery-control.prev { right:92px; } .gallery-control.next { right:50px; }
.gallery-footer { position:absolute; left:54px; right:148px; bottom:27px; display:flex; gap:16px; align-items:center; justify-content:space-between; color:var(--muted); font-size:11px; }
.gallery-title,.gallery-status { margin:0; } .gallery-tools { display:flex; gap:24px; align-items:center; }
.gallery-status { min-width:44px; text-align:right; font-variant-numeric:tabular-nums; }
.thumbnail-toggle { border:0; padding:5px 0; color:var(--muted); background:none; cursor:pointer; font-size:11px; }
.thumbnail-toggle:hover,.thumbnail-toggle[aria-expanded="true"] { color:var(--accent); }
.thumbnail-tray { position:absolute; left:54px; right:50px; bottom:62px; display:flex; gap:10px; overflow-x:auto; padding:14px; background:rgba(255,255,255,.97); box-shadow:0 0 0 1px #ececec; }
[hidden] { display:none!important; }
.thumbnail-tray button { flex:0 0 64px; width:64px; height:56px; background:white; padding:3px; border:1px solid transparent; cursor:pointer; }
.thumbnail-tray button[aria-current="true"] { border-color:var(--accent); }
.thumbnail-tray img { width:100%; height:100%; object-fit:contain; }
.page-shell { margin-left:var(--sidebar); min-height:100svh; }
.page-inner { padding:74px 50px 70px 54px; max-width:1280px; }
.page-kicker { display:none; }
.page-title { font:400 26px/1.3 Georgia,'Times New Roman',serif; color:var(--accent); margin:0 0 20px; }
.page-intro { max-width:550px; margin:0 0 40px; font-size:13px; color:var(--muted); }
.collection-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:38px 28px; }
.collection-card { text-decoration:none; } figure { margin:0; }
.collection-card img { width:100%; aspect-ratio:4/3; object-fit:contain; object-position:left bottom; }
.collection-card figcaption { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding-top:12px; color:var(--muted); }
.collection-card h2 { margin:0; font:400 13px/1.5 Arial,sans-serif; }
.collection-card span { font-size:10px; } .collection-card:hover h2 { color:var(--accent); }
.new-grid { columns:2; column-gap:28px; }
.new-grid figure { break-inside:avoid; margin:0 0 30px; }
.new-grid img { width:100%; height:auto; }
.new-grid figcaption { padding-top:8px; color:var(--muted); font-size:11px; }
.recent-photo { text-decoration:none; }
.about-layout,.contact-layout { display:grid; grid-template-columns:minmax(180px,.85fr) minmax(240px,1fr); gap:42px; margin-top:34px; align-items:start; }
.about-layout img { width:100%; }
.prose { max-width:500px; font-size:13px; line-height:1.85; }
.prose p { margin:0 0 20px; }
.text-link { color:var(--accent); text-underline-offset:4px; }
.contact-panel { font-size:13px; border-top:1px solid #ddd; padding-top:22px; }
.contact-panel h2 { font:400 18px/1.5 Georgia,serif; color:var(--accent); margin:0 0 18px; }
.contact-panel p { color:var(--muted); }.contact-placeholder { display:block; margin-top:20px; color:var(--muted); }

@media(max-width:1000px) and (min-width:701px) { :root { --sidebar:235px; } .site-nav { padding-left:24px; padding-right:24px; } .brand-name { font-size:25px; } .gallery-stage { padding-left:38px; padding-right:38px; } .page-inner { padding-left:38px; padding-right:34px; } .gallery-footer { left:38px; right:132px; } .gallery-control.next { right:34px; } .gallery-control.prev { right:76px; } .about-layout,.contact-layout { grid-template-columns:1fr; } }
@media(max-width:700px) {
  :root { --sidebar:0px; }
  .site-nav { position:relative; width:100%; min-height:110px; padding:24px 22px 16px; flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:space-between; overflow:visible; }
  .brand { margin:0; } .brand-name { font-size:26px; } .brand-discipline { font-size:9px; }
  .menu-toggle { display:block; border:0; background:none; color:var(--muted); padding:12px 0 12px 18px; font-size:12px; cursor:pointer; }
  .menu-toggle span { display:inline-block; margin-left:7px; }
  .site-nav nav { width:100%; padding-top:22px; }
  .site-nav ul { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .site-nav li { margin:0; text-align:left; }.nav-secondary { padding:0; }
  .js .site-nav nav { display:none; }.js .site-nav.is-open nav { display:block; }
  .copyright { display:none; }
  .gallery-stage { margin:0; height:calc(100svh - 110px); min-height:350px; padding:15px 22px 70px; }
  .photo-frame { align-items:center; }.photo-frame img { object-position:center; }
  .gallery-control { top:auto; bottom:13px; transform:none; width:44px; height:38px; }
  .gallery-control.prev { left:auto; right:70px; }.gallery-control.next { right:22px; }
  .gallery-footer { left:22px; right:130px; bottom:22px; gap:12px; }
  .gallery-tools { gap:12px; }.gallery-title { display:none; }
  .thumbnail-tray { left:22px; right:22px; bottom:65px; }
  .page-shell { margin:0; }.page-inner { padding:26px 22px 60px; }
  .collection-grid { gap:28px; grid-template-columns:1fr; }.new-grid { columns:1; }
  .page-title { font-size:25px; }.page-intro { margin-bottom:30px; }
  .about-layout,.contact-layout { grid-template-columns:1fr; gap:28px; }.about-layout img { max-width:420px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none!important; scroll-behavior:auto!important; } }

/* Photograph-led entrance, before the sidebar and portfolio. */
.opening-page { background:#fff; }
.opening-stage { min-height:100svh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:36px 32px; }
.opening-photo { display:block; width:min(920px,100%); text-decoration:none; }
.opening-photo img { width:100%; height:auto; max-height:calc(100svh - 230px); object-fit:contain; }
.opening-identity { text-align:center; margin-top:26px; }
.opening-identity h1 { margin:0; color:var(--accent); font:400 clamp(25px,3vw,32px)/1.3 Arial,Helvetica,sans-serif; letter-spacing:-.7px; }
.opening-identity p { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:2px; margin:7px 0 19px; }
.opening-enter { display:inline-block; color:var(--muted); font-size:12px; text-decoration:none; padding:7px; }
.opening-enter span { display:inline-block; margin-left:8px; transition:transform .18s; }
.opening-enter:hover { color:var(--accent); }.opening-enter:hover span { transform:translateX(3px); }
@media(max-width:700px) {
 .opening-stage { padding:28px 22px; }
 .opening-photo img { max-height:calc(100svh - 210px); }
 .opening-identity { margin-top:25px; }
}

/* Center the information pages within the space beside the sidebar. */
.info-page .page-inner { width:min(1100px,100%); margin-inline:auto; padding-inline:54px; }
@media(max-width:1000px) and (min-width:701px) {
 .info-page .page-inner { padding-inline:38px; }
}
@media(max-width:700px) {
 .info-page .page-inner { padding-inline:22px; }
}

.page-title,
.contact-panel h2 {
  font-family: Arial, Helvetica, sans-serif;
}
