
:root{--ink:#0a0a0a;--ink-soft:#1c1c1c;--cream:#f4f1ec;--paper:#faf8f4;--gold:#c89f6b;--rule-light:#e6e0d6;
--serif:'Cormorant Garamond',Georgia,serif;--sans:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
--mono:'JetBrains Mono',ui-monospace,monospace;}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{font-family:var(--sans);font-weight:300;background:var(--paper);color:var(--ink);overflow-x:hidden;font-size:15px;line-height:1.55}
img{display:block;max-width:100%}a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--sans);font-size:10.5px;font-weight:500;letter-spacing:0.28em;text-transform:uppercase;color:var(--ink);opacity:0.45}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:0.04em}
header{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:24px 36px;transition:padding .35s ease,background .4s ease,color .4s ease,border-color .4s ease;mix-blend-mode:difference;color:#fff}
header.scrolled{padding:14px 36px;background:rgba(250,248,244,.92);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--rule-light);mix-blend-mode:normal;color:var(--ink)}
.wordmark{font-family:var(--serif);font-size:16px;font-weight:500;letter-spacing:0.32em;text-transform:uppercase}
.wordmark .dot{display:inline-block;width:5px;height:5px;background:var(--gold);border-radius:50%;margin:0 1px 3px 1px;vertical-align:middle}
.navlinks{display:flex;align-items:center;gap:34px}
.navlinks a{font-size:11px;letter-spacing:0.22em;text-transform:uppercase;font-weight:500;position:relative;padding:4px 0;transition:opacity .2s}
.navlinks a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform-origin:left;transform:scaleX(0);transition:transform .35s ease}
.navlinks a:hover::after{transform:scaleX(1)}
@keyframes kenburns{from{transform:scale(1.0)}to{transform:scale(1.07)}}
@keyframes pulse{0%,100%{opacity:0.4}50%{opacity:1}}
/* Subpage hero */
.pg-hero{position:relative;height:78vh;min-height:560px;background:var(--ink);overflow:hidden}
.pg-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:kenburns 22s ease-in-out infinite alternate;filter:contrast(1.03)}
.pg-hero-grad{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(10,10,10,0.55) 0%,rgba(10,10,10,0.1) 30%,rgba(10,10,10,0.0) 55%,rgba(10,10,10,0.6) 100%);z-index:1}
.pg-hero-meta-tl{position:absolute;top:90px;left:36px;z-index:2;color:rgba(255,255,255,.7);font-family:var(--mono);font-size:10.5px;letter-spacing:0.18em}
.pg-hero-content{position:absolute;left:36px;right:36px;bottom:80px;z-index:2;color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:end}
.pg-hero-content h1{font-family:var(--serif);font-weight:300;font-size:clamp(56px,8.5vw,128px);line-height:0.88;letter-spacing:-0.024em}
.pg-hero-content h1 em{font-style:italic;color:var(--gold)}
.pg-hero-tag{max-width:380px;justify-self:end;text-align:right}
.pg-hero-tag p{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(17px,1.5vw,22px);line-height:1.4;color:rgba(255,255,255,0.85)}
.pg-hero-tag .eyebrow{color:rgba(255,255,255,.55);margin-bottom:14px}
.crumb{position:absolute;top:90px;right:36px;z-index:2;font-family:var(--mono);font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.crumb a{color:rgba(255,255,255,.55);transition:color .2s}
.crumb a:hover{color:var(--gold)}
/* Story hero — photo IS the article (no big category hero, no overlay text on image) */
.storyhero{background:var(--paper);padding:96px 36px 0}
.storyhero-nav{max-width:1240px;margin:0 auto 22px;display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(10,10,10,.55)}
.storyhero-nav a{color:rgba(10,10,10,.55);transition:color .2s}
.storyhero-nav a:hover{color:var(--gold)}
.storyhero-fig{max-width:1240px;margin:0 auto;padding:0}
.storyhero-fig img{width:100%;height:auto;display:block;border-radius:2px}
.storyhero-fig figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:14px 4px 0;font-family:var(--mono);font-size:10.5px;letter-spacing:0.18em;text-transform:uppercase;color:rgba(10,10,10,.5)}
.storyhero-fig figcaption .frame-no{color:var(--gold)}
@media (max-width:760px){
  .storyhero{padding:78px 22px 0}
  .storyhero-nav{font-size:10px;letter-spacing:0.16em;margin-bottom:16px}
  .storyhero-fig figcaption{flex-direction:column;align-items:flex-start;gap:6px;font-size:10px}
}
/* Story block */
.story{background:var(--cream);padding:80px 36px 120px}
.story-inner{max-width:920px;margin:0 auto}
.story .eyebrow{margin-bottom:32px;color:rgba(10,10,10,.55)}
.story h2{font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(28px,3.6vw,46px);line-height:1.25;letter-spacing:-0.012em;color:var(--ink);margin-bottom:24px}
.story h2 em{font-style:normal;color:var(--gold)}
.story p{font-size:15.5px;line-height:1.85;color:#3a3a3a;margin-bottom:18px;max-width:680px}
.story .note{margin-top:36px;padding-top:24px;border-top:1px solid var(--rule-light);font-family:var(--mono);font-size:11px;letter-spacing:0.12em;color:rgba(10,10,10,.45);text-transform:uppercase}
/* Gallery */
.gal{padding:120px 36px;background:var(--paper)}
.gal-head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:36px;padding-bottom:24px;margin-bottom:48px;border-bottom:1px solid var(--rule-light)}
.gal-head h3{font-family:var(--serif);font-weight:300;font-size:clamp(28px,3.6vw,42px);line-height:1;letter-spacing:-0.018em}
.gal-head h3 em{font-style:italic;color:var(--gold)}
.gal-head .meta{font-family:var(--mono);font-size:11px;letter-spacing:0.14em;color:rgba(10,10,10,.45);text-align:right}
.gal-group{margin-bottom:80px}
.gal-group:last-child{margin-bottom:0}
.gal-group-head{display:flex;align-items:center;gap:18px;margin-bottom:24px;font-family:var(--mono);font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(10,10,10,.55)}
.gal-group-head .line{flex:1;height:1px;background:var(--rule-light)}
.gal-group-head .gold{color:var(--gold)}
/* Masonry — preserves every image's natural ratio. No forced crops. */
.gal-grid{column-count:3;column-gap:14px}
.gp{break-inside:avoid;display:block;margin-bottom:14px;position:relative;overflow:hidden;background:#1a1a1a;cursor:zoom-in;border-radius:2px}
.gp img{width:100%;height:auto;display:block;transition:transform 1.4s cubic-bezier(.2,.6,.2,1);filter:contrast(1.02)}
.gp:hover img{transform:scale(1.04)}
.gp::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.55),transparent 50%);opacity:0;transition:opacity .35s;z-index:1;pointer-events:none}
.gp:hover::after{opacity:1}
.gp .tag{position:absolute;bottom:14px;left:16px;right:16px;color:#fff;font-family:var(--mono);font-size:10.5px;letter-spacing:0.16em;text-transform:uppercase;opacity:0;transform:translateY(8px);transition:all .35s;z-index:2}
.gp:hover .tag{opacity:1;transform:translateY(0)}
/* Layout-span hint classes no longer affect grid — kept for future use */
/* Related */
.related{background:var(--ink);color:var(--cream);padding:100px 36px}
.related-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(244,241,236,.12);padding-bottom:22px;margin-bottom:36px}
.related-head h3{font-family:var(--serif);font-weight:300;font-size:clamp(26px,3vw,36px);font-style:italic}
.related-head h3 em{color:var(--gold);font-style:italic}
.related-head a{font-family:var(--mono);font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(244,241,236,.55);transition:color .2s}
.related-head a:hover{color:var(--gold)}
.related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.related-tile{aspect-ratio:3/4;overflow:hidden;background:#1a1a1a;position:relative;display:block}
.related-tile img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease}
.related-tile:hover img{transform:scale(1.06)}
.related-tile .lbl{position:absolute;left:16px;bottom:16px;font-family:var(--serif);font-style:italic;font-size:22px;color:#fff;z-index:2}
.related-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.6),transparent 55%);z-index:1}
@media (max-width:900px){.related-grid{grid-template-columns:1fr 1fr}}
/* Quiet contact line */
.cta-quiet{padding:100px 36px;text-align:center;background:var(--paper);border-top:1px solid var(--rule-light)}
.cta-quiet .cta-line{font-family:var(--serif);font-style:italic;font-size:clamp(20px,2.2vw,28px);color:var(--ink);font-weight:300}
.cta-quiet .cta-line a{color:var(--ink);border-bottom:1px solid var(--gold);padding-bottom:3px;transition:color .25s ease}
.cta-quiet .cta-line a:hover{color:var(--gold)}
/* Footer */
footer{background:var(--paper);color:#8a8580;padding:40px 36px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;border-top:1px solid var(--rule-light)}
footer .wm{font-family:var(--serif);font-size:14px;font-weight:500;letter-spacing:0.32em;text-transform:uppercase;color:var(--ink)}
footer .copy{font-family:var(--mono);font-size:10.5px;letter-spacing:0.14em;text-align:center}
footer .links{display:flex;gap:24px;justify-content:flex-end;font-family:var(--mono);font-size:10.5px;letter-spacing:0.18em;text-transform:uppercase}
footer .links a{transition:color .2s}
footer .links a:hover{color:var(--gold)}
/* Lightbox */
.lb{position:fixed;inset:0;z-index:999;background:rgba(0,0,0,.97);display:none;align-items:center;justify-content:center;padding:60px}
.lb.on{display:flex}
.lb img{max-width:92vw;max-height:90vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.lb-close{position:absolute;top:24px;right:32px;font-family:var(--mono);font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(255,255,255,.55);cursor:pointer}
.lb-close:hover{color:#fff}
.lb-meta{position:absolute;left:32px;bottom:24px;font-family:var(--mono);font-size:11px;color:rgba(255,255,255,.55);letter-spacing:0.18em}
/* Fade */
.fade{opacity:0;transform:translateY(28px);transition:opacity 1s cubic-bezier(.2,.6,.2,1),transform 1s cubic-bezier(.2,.6,.2,1)}
.fade.on{opacity:1;transform:translateY(0)}
/* Index pages grid */
.idx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px;padding:0 36px 80px}
.idx-tile{aspect-ratio:5/4;position:relative;overflow:hidden;background:#1a1a1a;display:block}
.idx-tile img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease}
.idx-tile:hover img{transform:scale(1.05)}
.idx-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.65),transparent 55%);z-index:1}
.idx-tile .lbl{position:absolute;left:22px;right:22px;bottom:20px;color:#fff;z-index:2;display:flex;justify-content:space-between;align-items:flex-end;gap:18px}
.idx-tile .name{font-family:var(--serif);font-style:italic;font-size:clamp(22px,2.2vw,32px);line-height:1}
.idx-tile .meta{font-family:var(--mono);font-size:10.5px;letter-spacing:0.16em;opacity:0.8;text-transform:uppercase}
.idx-hero{padding:140px 36px 56px;background:var(--paper)}
.idx-hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(46px,7vw,96px);line-height:0.96;letter-spacing:-0.022em;margin-bottom:18px}
.idx-hero h1 em{font-style:italic;color:var(--gold)}
.idx-hero .lead{font-family:var(--serif);font-style:italic;font-size:clamp(18px,1.8vw,24px);color:#4a4a4a;max-width:680px;line-height:1.5}
.idx-hero .meta{margin-top:32px;font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:rgba(10,10,10,.55)}
@media (max-width:900px){
  header,header.scrolled{padding:18px 22px}
  .navlinks{gap:14px}.navlinks a{font-size:10px;letter-spacing:0.14em}
  .pg-hero-content{left:22px;right:22px;bottom:56px;grid-template-columns:1fr;gap:18px}
  .pg-hero-tag{justify-self:start;text-align:left}
  .pg-hero-meta-tl,.crumb{top:74px}
  .pg-hero-meta-tl{left:22px}.crumb{right:22px}
  .story,.gal,.related{padding:70px 22px}
  .gal-grid{column-count:2}
  .idx-hero{padding:96px 22px 36px}.idx-grid{padding:0 22px 60px;grid-template-columns:1fr 1fr;gap:12px}
  footer{grid-template-columns:1fr;text-align:center}footer .links{justify-content:center}
}


/* ===== PENDLEY-ENHANCE-V1 : layered polish for all subpages ===== */
::selection{background:#c89f6b;color:#0a0a0a}
:focus-visible{outline:2px solid #c89f6b;outline-offset:3px}
img[data-fade]{opacity:0;transition:opacity .9s ease}
img[data-fade].is-loaded{opacity:1}
#pe-bar{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,#c89f6b,#e7c89c);z-index:10001;pointer-events:none;transition:width .12s linear;box-shadow:0 0 12px rgba(200,159,107,.55)}
#pe-top{position:fixed;bottom:1.4rem;left:1.4rem;width:46px;height:46px;border-radius:50%;border:1px solid #c89f6b;background:rgba(10,10,10,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#c89f6b;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .4s,transform .4s,background .3s,color .3s;z-index:9500;cursor:pointer;font-size:1.05rem;line-height:1}
#pe-top.show{opacity:1;pointer-events:auto;transform:none}
#pe-top:hover{background:#c89f6b;color:#0a0a0a}
@media (max-width:560px){.gal-grid{column-count:1}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .hero-img,.pg-hero-img{animation:none!important}
}


/* ===== PENDLEY-MOBILE-V2 : mobile-first nav + layout fixes ===== */
#pe-burger{display:none}
#pe-menu{position:fixed;inset:0;z-index:9840;background:rgba(10,10,10,.985);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;opacity:0;pointer-events:none;transition:opacity .45s ease}
body.pe-menu-open #pe-menu{opacity:1;pointer-events:auto}
#pe-menu a{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(30px,9vw,40px);line-height:1;color:#f4f1ec;letter-spacing:-0.01em;padding:6px 12px}
#pe-menu a:active{color:#c89f6b}
#pe-menu .pe-menu-cta{font-family:'JetBrains Mono',ui-monospace,monospace;font-style:normal;font-size:12px;letter-spacing:0.22em;text-transform:uppercase;border:1px solid #c89f6b;color:#c89f6b;padding:14px 28px;border-radius:999px;margin-top:14px}
#pe-menu .pe-menu-tag{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10px;letter-spacing:0.24em;text-transform:uppercase;color:rgba(244,241,236,.4);margin-top:8px}
@media (max-width:760px){
  header .navlinks{display:none!important}
  #pe-burger{position:fixed;top:14px;right:16px;z-index:9850;width:46px;height:46px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:rgba(10,10,10,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(200,159,107,.55);border-radius:50%;cursor:pointer;padding:0}
  #pe-burger span{display:block;width:18px;height:1.6px;background:#f4f1ec;transition:transform .3s ease,opacity .3s ease}
  body.pe-menu-open #pe-burger span:nth-child(1){transform:translateY(6.6px) rotate(45deg)}
  body.pe-menu-open #pe-burger span:nth-child(2){opacity:0}
  body.pe-menu-open #pe-burger span:nth-child(3){transform:translateY(-6.6px) rotate(-45deg)}
  /* dynamic viewport height: kills URL-bar jump */
  .hero{height:100svh}
  .contact{min-height:100svh}
  .pg-hero{height:72svh;min-height:480px}
  /* comfortable tap targets + spacing */
  footer .links a{padding:10px 0;display:inline-block}
  .contact-row{gap:16px 26px}
  .avail-card{padding:34px 24px 30px}
  /* belt-and-suspenders: no sideways scroll */
  html,body{max-width:100%;overflow-x:hidden}
  .marquee{max-width:100vw}
  /* tighten oversized hero meta on tiny screens */
  .hero-meta-tl,.pg-hero-meta-tl{font-size:9.5px}
}
@media (max-width:380px){
  #pe-menu a{font-size:28px;gap:18px}
  .hero-headline h1{font-size:clamp(48px,16vw,64px)}
}
