:root{--paper:#fbfaf8;--ink:#272724;--muted:#868681;--line:#e8e6e0;--accent:#a18771;--card:#f3f1eb}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);margin:0;font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}body.locked{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}img{max-width:100%;display:block}.hidden{display:none!important}.wrap{max-width:1500px;margin:0 auto;padding-left:5.5%;padding-right:5.5%}.header{display:flex;justify-content:space-between;align-items:center;min-height:94px;border-bottom:1px solid var(--line)}.brand{font-weight:700;letter-spacing:.21em;font-size:18px}.brand span{display:block;font-size:8px;letter-spacing:.19em;font-weight:400;color:var(--muted);margin-top:8px}.header nav{display:flex;gap:34px;align-items:center}.header nav a,.header nav button,.eyebrow,.line-link,.back{font-size:10px;letter-spacing:.18em}.header nav a:hover,.header nav button:hover,a:hover{color:var(--accent)}.admin-link{color:var(--muted)}.eyebrow{font-weight:500;color:var(--muted)}h1,h2,h3{font-weight:400}h1,h2,.modal-title{font-family:Georgia,'Times New Roman',serif;letter-spacing:-.046em}h1 i,h2 i{font-weight:400}.hero{display:grid;grid-template-columns:45% 55%;align-items:center;min-height:690px;padding-top:68px;padding-bottom:94px}.hero h1{font-size:clamp(49px,6vw,98px);line-height:1.08;margin:35px 0}.hero p,.about p{font-size:14px;color:#777771;line-height:1.9;max-width:340px}.hero-image{height:620px;overflow:hidden}.hero-image img{width:100%;height:100%;object-fit:cover}.line-link{display:inline-flex;gap:45px;border-bottom:1px solid var(--ink);padding:23px 0 14px;margin-top:32px}.portfolio{padding-top:86px;padding-bottom:126px}.section-head{display:flex;align-items:end;justify-content:space-between;padding-bottom:46px}.section-head h2{font-size:clamp(47px,5vw,74px);margin:18px 0 0}.total{font:12px Arial;color:var(--muted);margin-left:15px;vertical-align:top;letter-spacing:0}.section-head p{color:var(--muted);font-size:13px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:65px 32px}.album{cursor:pointer;text-align:left;border:0;background:transparent;padding:0;color:inherit}.album:nth-child(even){padding-top:85px}.album .cover{aspect-ratio:1.15;overflow:hidden;background:#ecebe6}.album:nth-child(3n) .cover{aspect-ratio:1.45}.album img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.album:hover img{transform:scale(1.035)}.album .caption{display:flex;align-items:start;justify-content:space-between;padding-top:18px;gap:12px}.album h3{font-family:Georgia,serif;font-size:27px;margin:0}.album .category{font-size:10px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:10px}.album .arrow{font-size:25px}.subtle{font-size:12px;color:var(--muted);line-height:1.7}.about,.contact{display:grid;grid-template-columns:35% 65%;border-top:1px solid var(--line);padding-top:100px;padding-bottom:110px}.about h2,.contact h2{font-size:clamp(44px,5vw,80px);line-height:1.16;margin:0 0 32px}.about p{max-width:500px}.contact{padding-bottom:160px}.contact .line-link{margin:0 30px 0 0}.footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;padding-top:36px;padding-bottom:40px;color:var(--muted);font-size:10px;letter-spacing:.14em}.modal{position:fixed;inset:0;overflow:auto;background:var(--paper);z-index:20}.project-shell{max-width:1480px;margin:auto;padding:0 5.5% 90px}.modal-bar{padding:35px 0 18px;display:flex;justify-content:space-between;align-items:center;gap:15px}.back,.linkbutton{border:0;background:none;padding:5px 0}.project-intro{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:44px;align-items:start;padding:15px 0 54px;border-bottom:1px solid var(--line)}.modal-title{font-size:clamp(44px,6vw,90px);line-height:1.03;margin:18px 0 0}.project-meta{display:grid;grid-template-columns:1fr 1fr;gap:22px 28px;padding-top:16px}.meta-block{display:grid;gap:10px;align-content:start}.meta-label{font-size:10px;letter-spacing:.18em;color:var(--muted)}.meta-block strong{font-size:16px;font-weight:500}.meta-description{grid-column:1/-1}.meta-description p{margin:0;color:#777771;line-height:1.85;font-size:14px;max-width:450px}.editorial-grid{padding-top:42px;display:grid;grid-template-columns:repeat(12,1fr);gap:22px}.editorial-card{grid-column:span 6;display:block;background:transparent;border:0;padding:0;position:relative}.editorial-card.portrait{grid-column:span 5}.editorial-card.landscape{grid-column:span 7}.editorial-card.featured{grid-column:span 12}.editorial-card img{width:100%;height:auto;display:block;background:var(--card)}.editorial-card figure{margin:0}.editorial-card figcaption{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:12px}.editorial-card .caption-index{font-size:10px;letter-spacing:.18em;color:var(--muted)}.editorial-card .caption-action{font-size:10px;letter-spacing:.18em;color:var(--muted)}.lightbox{position:fixed;inset:0;background:rgba(13,13,13,.97);z-index:50;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:30px}.lightbox img{height:90%;width:80%;object-fit:contain}.lightbox button{background:none;color:white;border:0;font-size:30px;padding:12px}.lightbox #lightbox-close{position:absolute;right:22px;top:10px;font-size:42px}.lightbox #lightbox-count{color:white;position:absolute;bottom:15px;left:50%;transform:translateX(-50%);font-size:12px}.dashboard{min-height:70vh;padding-top:80px;padding-bottom:110px}.dashboard h1{font-size:clamp(48px,6vw,86px);margin:14px 0 50px}.panel{border:1px solid var(--line);background:#fff;padding:35px;max-width:950px;margin:22px 0}.panel h2{font-size:25px;margin:0 0 25px}.form{display:grid;gap:20px}.form label{display:grid;gap:9px;font-size:12px;color:#666}.form input:not([type=checkbox]),.form textarea{width:100%;border:1px solid var(--line);padding:13px 14px;background:white;color:var(--ink);outline-color:#aaa}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.primary{background:var(--ink);border:1px solid var(--ink);padding:13px 22px;color:white;font-size:11px;letter-spacing:.12em}.danger{background:#fff;border:1px solid #b25f59;color:#b25f59;padding:13px 22px}.admin-toolbar,.editor-top,.form-actions{display:flex;justify-content:space-between;align-items:center;gap:15px}.admin-toolbar h2{font-family:Georgia,serif;font-size:40px}.admin-list{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:30px 0 50px}.admin-card{border:1px solid var(--line);padding:0 0 16px;background:white;text-align:left;color:inherit}.admin-card img{width:100%;aspect-ratio:1.35;object-fit:cover;background:#eee}.admin-card strong,.admin-card span{display:block;margin:12px 15px;font-size:14px}.admin-card span{color:var(--muted);font-size:11px}.notice{margin:20px 0;padding:14px 17px;background:#f2efe8;color:#4a4138;max-width:950px;font-size:13px}.notice.error{background:#f9e7e5;color:#963e38}.inlinecheck{display:flex!important;align-items:center;flex-direction:row;gap:8px!important}.upload-zone{display:block;cursor:pointer;border:1px dashed #aaa;padding:25px;text-align:center;font-size:12px;letter-spacing:.12em}.upload-zone input{display:block;margin:15px auto 0;max-width:100%;font-size:12px}.photo-list{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:25px}.photo-card{border:1px solid var(--line);background:#fff;padding:9px}.photo-card img{width:100%;aspect-ratio:1.2;object-fit:contain;background:#f2f2ef}.photo-tools{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.photo-tools button{font-size:10px;border:1px solid var(--line);background:white;padding:8px}.photo-tools button:disabled{opacity:.3}@media(max-width:1100px){.project-intro{grid-template-columns:1fr}.project-meta{grid-template-columns:1fr 1fr}.editorial-card,.editorial-card.landscape,.editorial-card.portrait{grid-column:span 6}.editorial-card.featured{grid-column:span 12}}@media(max-width:820px){.header{min-height:77px}.header nav{gap:15px}.header nav a,.header nav button{font-size:9px}.hero{display:flex;flex-direction:column;align-items:stretch;padding-top:55px;gap:50px;min-height:0}.hero-image{height:450px}.hero h1{font-size:65px}.portfolio{padding-top:40px}.album:nth-child(even){padding-top:35px}.grid{gap:35px 15px}.album h3{font-size:20px}.about,.contact{grid-template-columns:1fr;gap:40px}.admin-list,.photo-list{grid-template-columns:1fr 1fr}.project-shell{padding-left:4.5%;padding-right:4.5%}.editorial-grid{grid-template-columns:repeat(6,1fr);gap:16px}.editorial-card,.editorial-card.landscape,.editorial-card.portrait{grid-column:span 3}.editorial-card.featured{grid-column:span 6}}@media(max-width:560px){.header nav a[href="#about"],.header nav a[href="#contact"]{display:none}.header nav{gap:12px}.brand{font-size:15px}.hero h1{font-size:51px}.hero-image{height:350px}.grid{grid-template-columns:1fr}.album:nth-child(even){padding-top:0}.section-head p{display:none}.album .cover{aspect-ratio:1.24}.footer{flex-wrap:wrap}.form-two{grid-template-columns:1fr}.admin-list,.photo-list{grid-template-columns:1fr}.panel{padding:20px}.modal-bar{padding:22px 0 10px}.project-intro{padding-bottom:28px;gap:22px}.project-meta{grid-template-columns:1fr}.modal-title{font-size:54px}.editorial-grid{grid-template-columns:1fr;gap:16px}.editorial-card,.editorial-card.landscape,.editorial-card.portrait,.editorial-card.featured{grid-column:span 1}.lightbox{padding:6px;gap:2px}.lightbox img{width:70%}.lightbox button{font-size:21px;padding:8px}}

/* V4 — edge-to-edge mobile lightbox: preserve the full photograph. */
@media (max-width: 820px) {
  .lightbox {
    display: block; width: 100%; height: 100%; height: 100dvh;
    padding: 0; margin: 0; overflow: hidden; touch-action: pan-y;
  }
  .lightbox #lightbox-image {
    position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
    width: calc(100% - 16px); height: auto;
    max-width: calc(100% - 16px);
    max-height: calc(100% - 110px);
    max-height: calc(100dvh - 110px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    object-fit: contain; object-position: center;
    -webkit-user-select: none; user-select: none;
  }
  .lightbox #lightbox-prev, .lightbox #lightbox-next {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
    display: grid; place-items: center; width: 42px; height: 48px;
    padding: 0; font-size: 25px; color: white;
    background: rgba(0,0,0,.30); border-radius: 4px;
    -webkit-tap-highlight-color: transparent;
  }
  .lightbox #lightbox-prev { left: 8px; }
  .lightbox #lightbox-next { right: 8px; }
  .lightbox #lightbox-close {
    top: calc(12px + env(safe-area-inset-top)); right: 12px;
    z-index: 3; width: 48px; height: 48px; padding: 0; font-size: 40px;
  }
  .lightbox #lightbox-count {
    bottom: calc(16px + env(safe-area-inset-bottom));
    white-space: nowrap; font-size: 13px; letter-spacing: .08em;
  }
}

/* V6: compression report (Admin only) */
.compression-report{margin:17px 0 22px;border:1px solid var(--line);background:#fbfaf8;padding:16px 18px}
.compression-report-title{font-size:11px;letter-spacing:.13em;font-weight:700;display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.compression-report-title span{font-weight:400;letter-spacing:0;color:#6b685f;line-height:1.6}
.compression-items{margin-top:13px;display:grid;gap:0}
.compression-row{padding:12px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;align-items:center}
.compression-name{font-size:12px;font-weight:600;overflow-wrap:anywhere}
.compression-stats{grid-column:1;font-size:12px;color:#706f69;line-height:1.65}
.compression-state{grid-column:2;grid-row:1 / span 2;font-size:11px;color:#8b7666;text-align:right}
.compression-success .compression-state{color:#356d4c}
.compression-error .compression-state{color:#a7473f}
@media(max-width:560px){.compression-report{padding:13px}.compression-row{grid-template-columns:1fr}.compression-state{grid-column:1;grid-row:auto;text-align:left}}

/* V7 content management and curated homepage slideshow */
.brand .brand-name{display:inline;font-size:inherit;letter-spacing:inherit;font-weight:inherit;color:inherit;margin:0}.hero-image{position:relative;background:#eeede9}.hero-dots{position:absolute;bottom:21px;left:50%;transform:translateX(-50%);display:flex;gap:10px;align-items:center;z-index:2}.hero-dots button{border:1px solid rgba(255,255,255,.85);padding:0;width:8px;height:8px;border-radius:50%;background:rgba(0,0,0,.22);box-shadow:0 1px 5px #3336}.hero-dots button.active{background:#fff}.site-panel{max-width:none;margin:0 0 65px}.site-panel h3{font-family:Georgia,serif;font-size:25px;font-weight:400;border-top:1px solid var(--line);padding-top:22px;margin:12px 0 0}.highlight-choices,.highlight-picked{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.highlight-picked:empty{display:none}.highlight-tile{border:1px solid var(--line);background:white;padding:5px;text-align:left;min-width:0}.highlight-tile.selected{border:2px solid #6b8068}.highlight-tile img{width:100%;aspect-ratio:1.4;object-fit:cover}.highlight-tile span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;padding:7px 2px}.site-panel #save-site{justify-self:start}@media(max-width:820px){.highlight-choices,.highlight-picked{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:560px){.highlight-choices,.highlight-picked{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V8 — image-first hero: wide 4:3 highlight frame, compact copy column. */
@media (min-width: 821px) {
  .hero {
    grid-template-columns: minmax(0, 34%) minmax(0, 66%);
    column-gap: 0;
    min-height: 0;
    padding-top: 60px;
    padding-bottom: 85px;
  }
  .hero > div:first-child {padding-right: clamp(18px, 3vw, 52px); min-width: 0;}
  .hero h1 {font-size: clamp(43px, 4.05vw, 68px); line-height: 1.12; margin: 29px 0;}
  .hero p {max-width: 290px;}
  .hero-image {height: auto; width: 100%; aspect-ratio: 4 / 3;}
  .hero-image img {width: 100%; height: 100%; object-fit: cover; object-position: center;}
}
@media (min-width: 821px) and (max-width: 1050px) {
  .hero {grid-template-columns: minmax(0, 36%) minmax(0, 64%);}
  .hero h1 {font-size: clamp(39px, 4vw, 50px);}
}
@media (max-width: 820px) {
  .hero-image {height: auto; width: 100%; aspect-ratio: 4 / 3;}
  .hero-image img {height: 100%; width: 100%; object-fit: cover;}
}

/* V9 — cinematic 16:9 desktop highlights, intentional 4:3 mobile crop */
@media (min-width:821px){
  .hero{grid-template-columns:minmax(0,30%) minmax(0,70%);padding-top:74px;padding-bottom:94px;align-items:center}
  .hero>div:first-child{padding-right:clamp(16px,2.5vw,42px)}
  .hero h1{font-size:clamp(39px,3.65vw,62px);line-height:1.12;margin:28px 0}
  .hero p{max-width:295px}
  .hero-image{width:100%;height:auto;aspect-ratio:16/9}
  .hero-image img{width:100%;height:100%;object-fit:cover}
}
@media (min-width:821px) and (max-width:1100px){.hero{grid-template-columns:minmax(0,32%) minmax(0,68%)}.hero h1{font-size:clamp(35px,3.7vw,48px)}}
@media (max-width:820px){.hero-image{width:100%;height:auto;aspect-ratio:4/3}.hero-image img{object-fit:cover;width:100%;height:100%}}
.highlight-adjust{display:grid;gap:9px;border:1px solid var(--line);padding:12px;background:#faf9f6;min-width:0}
.highlight-adjust-preview{width:100%;aspect-ratio:16/9;overflow:hidden;background:#eee}
.highlight-adjust-preview img{width:100%;height:100%;object-fit:cover}
.highlight-adjust-title{font-size:11px;overflow-wrap:anywhere}
.highlight-adjust label{display:flex;gap:10px;align-items:center;justify-content:space-between;font-size:11px;color:#666}
.highlight-adjust input[type=range]{width:100%;accent-color:#585852}
.highlight-adjust button{justify-self:start;border:1px solid var(--line);padding:8px 12px;background:white;font-size:11px}
.highlight-adjust-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media(max-width:620px){.highlight-adjust-grid{grid-template-columns:1fr}}

/* V10: layered, GPU-friendly horizontal highlight slide */
.hero-image{position:relative;isolation:isolate;overflow:hidden;touch-action:pan-y}
.hero-image .hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;will-change:transform;backface-visibility:hidden}
.hero-dots{z-index:3}
@media(prefers-reduced-motion:reduce){.hero-image .hero-slide{transition:none!important}}

/* V11 — drag-and-drop image upload */
.photo-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;min-height:230px;margin:16px 0 20px;padding:28px 20px;border:1.5px dashed #bbb7af;background:#f7f5f1;text-align:center;transition:background .2s,border-color .2s,box-shadow .2s;outline:none}
.photo-dropzone p{margin:0;color:var(--muted);font-size:13px}.photo-dropzone strong{font-size:12px;letter-spacing:.15em}.photo-drop-icon{font-size:36px;font-weight:300;line-height:1;color:#80766d}.photo-drop-hint{font-size:11px;color:var(--muted)}.photo-dropzone .upload-zone{margin:3px 0;padding:12px 22px;display:inline-block;cursor:pointer;background:var(--ink);color:white;border:0;letter-spacing:.12em;font-size:11px}.photo-dropzone .upload-zone:hover{background:#514f49}.photo-dropzone.is-dragover,.photo-dropzone:focus-visible{background:#edeae3;border-color:#8b7763;box-shadow:inset 0 0 0 2px #8b776333}.photo-dropzone.is-uploading{opacity:.7;pointer-events:none}.photo-dropzone.is-uploading .upload-zone{cursor:wait}
