@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&family=Playfair+Display:ital,wght@0,600;1,500&display=swap');
:root{--ink:#0a0a09;--paper:#f4f1e9;--white:#fff;--line:#c8c3b8;--muted:#67635c}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,Arial,sans-serif}.shell{width:min(1220px,90%);margin:auto}a{color:inherit}.top{height:86px;background:var(--paper);border-bottom:1px solid var(--ink);position:relative;z-index:10}.nav{height:100%;display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:center;gap:11px;text-decoration:none;font-family:"Playfair Display",Georgia,serif;font-size:24px;font-weight:600;letter-spacing:.5px}.logo .cross{font-size:35px}.logo small{display:block;font:700 8px Inter;letter-spacing:3.5px;text-align:center;margin-top:3px}.links{display:flex;gap:34px}.links a{text-decoration:none;font-size:12px;font-weight:800;letter-spacing:1px;text-transform:uppercase}.nav-cta{background:var(--ink);color:#fff;padding:15px 20px;text-decoration:none;font-size:11px;font-weight:800;letter-spacing:1.5px}.hero{height:760px;position:relative;color:#fff;overflow:hidden}.hero-photo{position:absolute;inset:0;background:url("images/after.png") center 58%/cover;transform:scale(1.02)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.86) 0%,rgba(0,0,0,.63) 47%,rgba(0,0,0,.18) 100%),linear-gradient(0deg,rgba(0,0,0,.55),transparent 45%)}.hero-inner{position:relative;padding-top:105px}.kicker{font-size:11px;font-weight:800;letter-spacing:3px;margin:0 0 22px}.hero h1,.section-head h2,.easy h2,.work h2,.why h2,.quote h2{font-family:"Playfair Display",Georgia,serif;font-size:clamp(55px,8vw,108px);line-height:.88;letter-spacing:-3px;margin:0}.hero h1 em,h2 em{font-weight:500}.hero-copy{font-family:"Playfair Display",Georgia,serif;font-size:21px;line-height:1.55;max-width:650px;margin:32px 0}.hero-actions{display:flex;gap:12px}.button{padding:18px 23px;text-decoration:none;font-size:11px;font-weight:800;letter-spacing:1.3px}.button span{margin-left:22px}.white{background:#fff;color:#000}.glass{border:1px solid rgba(255,255,255,.7);background:rgba(0,0,0,.25)}.quick-proof{position:absolute;top:625px;display:flex;gap:35px;font-size:10px;font-weight:800;letter-spacing:2px}.services{padding:105px 0}.section-head{display:grid;grid-template-columns:1.35fr .65fr;gap:70px;align-items:end;margin-bottom:55px}.dark-kicker{color:#5e5a52}.section-head h2,.easy h2,.work h2,.why h2,.quote h2{font-size:clamp(43px,5.8vw,78px);letter-spacing:-2px}.section-copy{font:18px/1.65 "Playfair Display",Georgia,serif;color:var(--muted);max-width:440px}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--ink)}.service-grid article{padding:28px;min-height:390px;border-right:1px solid var(--ink);display:flex;flex-direction:column}.service-grid article:last-child{border-right:0}.num{font:13px "Playfair Display",Georgia,serif}.icon{font:58px "Playfair Display",Georgia,serif;margin:44px 0 35px}.service-grid h3{font:700 23px "Playfair Display",Georgia,serif;margin:0 0 14px}.service-grid p{font-size:13px;line-height:1.7;color:var(--muted);margin:0}.service-grid a{margin-top:auto;font-size:10px;font-weight:800;letter-spacing:1.5px;text-decoration:none}.easy{background:var(--ink);color:#fff;padding:105px 0}.easy-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}.steps>div{display:flex;gap:28px;padding:28px 0;border-bottom:1px solid #4a4a47}.steps b{font:18px "Playfair Display",Georgia,serif}.steps span{display:flex;flex-direction:column;gap:8px}.steps strong{font:18px "Playfair Display",Georgia,serif}.steps small{color:#aaa;font-size:13px;line-height:1.5}.work{background:#11110f;color:#fff;padding:110px 0}.work-title{display:grid;grid-template-columns:1.5fr .5fr;gap:60px;align-items:end;margin-bottom:55px}.work-title p{font:17px/1.6 "Playfair Display",Georgia,serif;color:#bbb}.feature{display:grid;grid-template-columns:1fr 1fr;gap:10px}.feature figure,.process figure{margin:0;position:relative;overflow:hidden;background:#222}.feature figure{height:610px}.process{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.process figure{height:340px}.feature img,.process img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.feature figure:hover img,.process figure:hover img{transform:scale(1.025)}figcaption{position:absolute;left:18px;bottom:18px;background:var(--paper);color:var(--ink);padding:12px 15px;display:flex;flex-direction:column;gap:3px}figcaption b{font-size:11px;letter-spacing:1.5px}figcaption span{font:14px "Playfair Display",Georgia,serif}.process figcaption{font-size:10px;font-weight:800;letter-spacing:1px}.why{padding:110px 0}.why-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:100px}.why-title{position:sticky;top:40px;align-self:start}.large-cross{font:75px "Playfair Display",Georgia,serif}.why-list article{display:grid;grid-template-columns:55px 1fr;gap:25px;padding:35px 0;border-bottom:1px solid var(--line)}.why-list article>span{font:17px "Playfair Display",Georgia,serif}.why-list h3{font:700 23px "Playfair Display",Georgia,serif;margin:0 0 12px}.why-list p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}.quote{background:#dedbd2;padding:110px 0}.quote-grid{display:grid;grid-template-columns:1fr .8fr;gap:90px}.quote-copy{font:18px/1.65 "Playfair Display",Georgia,serif;max-width:560px;color:#4d4942}.direct{margin-top:45px}.direct a{display:block;text-decoration:none;font:17px "Playfair Display",Georgia,serif;padding:16px 0;border-bottom:1px solid #aaa;overflow-wrap:anywhere}.direct small{display:block;font:800 9px Inter;letter-spacing:2px;margin-bottom:5px}form{background:var(--paper);border:1px solid var(--ink);padding:35px}label{display:block;font-size:9px;font-weight:800;letter-spacing:1.7px;margin-bottom:24px}input,select,textarea{width:100%;border:0;border-bottom:1px solid #8e8a81;background:transparent;border-radius:0;padding:13px 0;font:15px Inter;outline:none}textarea{height:100px;resize:vertical}form button{width:100%;border:0;background:var(--ink);color:#fff;padding:19px;text-align:left;font-size:11px;font-weight:800;letter-spacing:1.4px;cursor:pointer}form button span{float:right}.form-note{font-size:10px;color:#777;line-height:1.5;margin:14px 0 0}footer{background:#080807;color:#fff;padding:70px 0 30px}.footer-grid{display:grid;grid-template-columns:1.5fr .6fr 1fr;gap:50px;align-items:center}.footer-logo span{display:block;font:40px "Playfair Display",Georgia,serif}.footer-logo b{display:block;font:34px "Playfair Display",Georgia,serif}.footer-logo small,.footer-grid>div>small{font-size:8px;font-weight:800;letter-spacing:3px}.footer-grid p{font:15px/1.7 "Playfair Display",Georgia,serif}.footer-grid a{text-decoration:none}.bottom{border-top:1px solid #333;margin-top:50px;padding-top:25px;display:flex;justify-content:space-between;font-size:8px;font-weight:700;letter-spacing:1.8px;color:#888}.mobile-bar{display:none}
@media(max-width:850px){body{padding-bottom:58px}.top{height:72px}.links,.nav-cta{display:none}.logo{font-size:20px}.hero{height:690px}.hero-photo{background-position:60% center}.hero-shade{background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.45))}.hero-inner{padding-top:85px}.hero h1{font-size:59px;letter-spacing:-2px}.hero-copy{font-size:18px}.hero-actions{flex-direction:column;align-items:flex-start}.quick-proof{top:590px;gap:13px;font-size:8px}.section-head,.easy-grid,.work-title,.why-grid,.quote-grid,.footer-grid{grid-template-columns:1fr;gap:35px}.service-grid{grid-template-columns:1fr 1fr}.service-grid article{min-height:330px;border-bottom:1px solid var(--ink)}.service-grid article:nth-child(2){border-right:0}.section-head h2,.easy h2,.work h2,.why h2,.quote h2{font-size:49px}.section-copy{margin:0}.feature{grid-template-columns:1fr}.feature figure{height:480px}.process figure{height:250px}.why-title{position:static}.quote-grid{gap:55px}.bottom{flex-direction:column;gap:12px}.mobile-bar{position:fixed;display:grid;grid-template-columns:1fr 1fr 1.3fr;bottom:0;left:0;right:0;height:58px;background:#fff;border-top:1px solid #111;z-index:100}.mobile-bar a{display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:10px;font-weight:800;letter-spacing:1px;border-right:1px solid #111}.mobile-bar a:last-child{background:#111;color:#fff}}
@media(max-width:520px){.shell{width:88%}.service-grid{grid-template-columns:1fr}.service-grid article{border-right:0;min-height:290px}.icon{margin:28px 0 22px}.feature figure{height:400px}.process{grid-template-columns:1fr}.process figure{height:300px}form{padding:25px}.quick-proof span:last-child{display:none}}

.icon{height:62px;width:62px;margin:42px 0 34px}
.icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.seasonal{padding:105px 0;background:#e7e3da;border-top:1px solid var(--ink)}
.season-tabs{display:flex;border:1px solid var(--ink);width:max-content;margin-bottom:0}
.season-tab{border:0;border-right:1px solid var(--ink);background:transparent;padding:17px 30px;font:800 10px Inter;letter-spacing:1.8px;cursor:pointer}
.season-tab:last-child{border-right:0}.season-tab.active{background:var(--ink);color:#fff}
.season-panel{display:none;grid-template-columns:repeat(4,1fr);border:1px solid var(--ink);margin-top:-1px}
.season-panel.active{display:grid}.season-panel article{padding:30px;min-height:235px;border-right:1px solid var(--ink)}
.season-panel article:last-child{border-right:0}.season-panel span{font:13px "Playfair Display",Georgia,serif}
.season-panel h3{font:700 21px "Playfair Display",Georgia,serif;margin:58px 0 12px}
.season-panel p{font-size:13px;line-height:1.65;color:var(--muted);margin:0}.season-note{font-size:9px;font-weight:800;letter-spacing:1.6px;margin-top:18px}
@media(max-width:850px){.season-tabs{width:100%}.season-tab{flex:1;padding:16px 8px}.season-panel{grid-template-columns:1fr 1fr}.season-panel article:nth-child(2){border-right:0}.season-panel article{border-bottom:1px solid var(--ink)}}
@media(max-width:520px){.season-panel{grid-template-columns:1fr}.season-panel article{border-right:0;min-height:190px}.season-panel h3{margin-top:35px}}




/* V6 service card cleanup */
.services-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.icon{
  width:auto;
  height:78px;
  margin:34px 0 28px;
  display:flex;
  align-items:center;
}
.service-emblem{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.service-symbol{
  width:48px;
  height:48px;
  border:1px solid rgba(20,20,20,.28);
  border-radius:50%;
  display:grid;
  place-items:center;
  font:400 24px Georgia,serif;
  line-height:1;
}
.service-label{
  font:700 10px Inter,Arial,sans-serif;
  letter-spacing:2.1px;
  line-height:1.4;
  color:var(--muted);
}
.seasonal-nav-link{
  white-space:nowrap;
}
.btn-seasonal{
  background:rgba(255,255,255,.08);
  color:#fff;
  border:1px solid rgba(255,255,255,.55);
}
.btn-seasonal:hover{
  background:#fff;
  color:#111;
}
.season-panel{grid-template-columns:repeat(5,1fr)}
.season-panel article{min-width:0}
@media(max-width:1100px){
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .season-panel,.season-panel[data-panel="summer"]{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .seasonal-nav-link{display:inline-flex}
}
@media(max-width:620px){
  .services-grid{grid-template-columns:1fr}
  .season-panel,.season-panel[data-panel="summer"]{grid-template-columns:1fr}
  .hero-actions{gap:10px}
  .btn-seasonal{width:100%;justify-content:center}
}

/* V7: recognizable service icons + seasonal in primary navigation */
.service-emblem,.service-symbol,.service-label,.service-mark{display:none!important}
.icon{
  width:76px!important;
  height:76px!important;
  margin:34px 0 28px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.icon svg{
  width:72px;
  height:72px;
  overflow:visible;
  fill:none;
  stroke:var(--ink);
  stroke-width:2.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
nav a[href="#seasonal"]{
  white-space:nowrap;
}

.service-grid .icon svg{
  width:72px!important;
  height:72px!important;
  overflow:visible;
  fill:none!important;
  stroke:var(--ink)!important;
  stroke-width:2.7!important;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* V8: literal, unmistakable service pictograms */
.service-grid .icon{
  width:96px!important;
  height:82px!important;
  margin:28px 0 26px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
}
.service-grid .icon svg{
  width:96px!important;
  height:72px!important;
  fill:none!important;
  stroke:var(--ink)!important;
  stroke-width:3!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
.service-grid article p{
  max-width:34ch;
  line-height:1.65;
}

/* V13 mobile navigation */
.menu-toggle,.mobile-menu{display:none}
@media(max-width:850px){
  .menu-toggle{
    display:block;
    border:1px solid var(--ink);
    background:transparent;
    padding:11px 14px;
    font:800 10px Inter,Arial,sans-serif;
    letter-spacing:1.5px;
    cursor:pointer;
  }
  .mobile-menu{
    position:absolute;
    top:72px;
    left:0;
    right:0;
    z-index:200;
    background:var(--paper);
    border-bottom:1px solid var(--ink);
  }
  .mobile-menu.open{display:block}
  .mobile-menu a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:min(88%,1220px);
    margin:auto;
    padding:18px 0;
    border-bottom:1px solid var(--line);
    text-decoration:none;
    font:800 11px Inter,Arial,sans-serif;
    letter-spacing:1.5px;
  }
  .mobile-menu a::after{content:"→"}
  .mobile-menu a:last-child{border-bottom:0}
}

/* V14 clickable work gallery / lightbox */
#work .lightbox-image{
  cursor:zoom-in;
}
#work figure::after{
  content:"CLICK TO VIEW";
  position:absolute;
  top:16px;
  right:16px;
  z-index:2;
  background:rgba(10,10,9,.82);
  color:#fff;
  padding:9px 11px;
  font:800 8px Inter,Arial,sans-serif;
  letter-spacing:1.5px;
  pointer-events:none;
  opacity:0;
  transform:translateY(-4px);
  transition:opacity .2s ease,transform .2s ease;
}
#work figure:hover::after{
  opacity:1;
  transform:translateY(0);
}
.image-lightbox{
  position:fixed;
  inset:0;
  z-index:1000;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.94);
  padding:34px 76px;
}
.image-lightbox.open{
  display:flex;
}
.lightbox-stage{
  width:min(1200px,100%);
  height:min(86vh,900px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
}
.lightbox-photo{
  max-width:100%;
  max-height:calc(86vh - 52px);
  width:auto;
  height:auto;
  object-fit:contain;
  user-select:none;
}
.lightbox-caption{
  margin:0;
  color:#fff;
  font:700 10px Inter,Arial,sans-serif;
  letter-spacing:2px;
  text-transform:uppercase;
}
.lightbox-close,.lightbox-prev,.lightbox-next{
  position:absolute;
  border:1px solid rgba(255,255,255,.45);
  background:rgba(0,0,0,.4);
  color:#fff;
  cursor:pointer;
  display:grid;
  place-items:center;
}
.lightbox-close{
  top:22px;
  right:22px;
  width:48px;
  height:48px;
  font:300 34px/1 Arial,sans-serif;
}
.lightbox-prev,.lightbox-next{
  top:50%;
  transform:translateY(-50%);
  width:50px;
  height:66px;
  font:300 46px/1 Georgia,serif;
}
.lightbox-prev{left:18px}
.lightbox-next{right:18px}
body.lightbox-open{
  overflow:hidden;
}
@media(max-width:850px){
  #work figure::after{
    opacity:1;
    transform:none;
    top:12px;
    right:12px;
  }
  .image-lightbox{
    padding:70px 14px 28px;
  }
  .lightbox-stage{
    height:80vh;
  }
  .lightbox-photo{
    max-height:calc(80vh - 48px);
  }
  .lightbox-close{
    top:14px;
    right:14px;
  }
  .lightbox-prev,.lightbox-next{
    top:auto;
    bottom:18px;
    transform:none;
    width:58px;
    height:48px;
  }
  .lightbox-prev{left:18px}
  .lightbox-next{right:18px}
}

/* V15: true full-image viewer — never crop the opened photo */
.image-lightbox{
  overflow:auto!important;
  padding:64px 16px 90px!important;
  align-items:flex-start!important;
}
.lightbox-stage{
  width:100%!important;
  max-width:1400px!important;
  height:auto!important;
  min-height:calc(100vh - 154px)!important;
  margin:auto!important;
  justify-content:flex-start!important;
}
.lightbox-photo{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:auto!important;
}
.lightbox-caption{
  padding:14px 0 28px!important;
}
@media(max-width:850px){
  .image-lightbox{
    padding:66px 0 90px!important;
  }
  .lightbox-stage{
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
  }
  .lightbox-photo{
    width:100%!important;
    height:auto!important;
    max-width:100%!important;
    max-height:none!important;
    object-fit:contain!important;
  }
  .lightbox-caption{
    padding:14px 16px 24px!important;
  }
}

/* V16 — direct tap image viewer */
#work figure::after{display:none!important;content:none!important}
#work .work-photo{cursor:pointer!important;touch-action:manipulation}
.image-lightbox{display:none!important}

.photo-viewer{
  position:fixed;
  inset:0;
  z-index:99999;
  display:none;
  background:#000;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
.photo-viewer.open{display:block!important}
.photo-viewer img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  margin:0!important;
  padding:0!important;
}
.photo-viewer-close{
  position:fixed;
  top:14px;
  right:14px;
  z-index:100000;
  width:48px;
  height:48px;
  border:1px solid rgba(255,255,255,.65);
  background:rgba(0,0,0,.72);
  color:#fff;
  font:300 34px/1 Arial,sans-serif;
  display:grid;
  place-items:center;
  cursor:pointer;
}
body.photo-viewer-open{overflow:hidden!important}

/* V17 — smooth centered glass photo viewer */
.photo-viewer{
  position:fixed!important;
  inset:0!important;
  z-index:99999!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:auto!important;
  padding:32px!important;

  background:rgba(12,12,11,.68)!important;
  -webkit-backdrop-filter:blur(14px)!important;
  backdrop-filter:blur(14px)!important;

  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transition:opacity .28s ease,visibility 0s linear .28s!important;
}
.photo-viewer.open{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transition:opacity .28s ease,visibility 0s linear 0s!important;
}
.photo-viewer img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:min(92vw,1200px)!important;
  max-height:88vh!important;
  object-fit:contain!important;
  margin:auto!important;
  padding:0!important;

  box-shadow:0 28px 90px rgba(0,0,0,.48)!important;
  border:1px solid rgba(255,255,255,.14)!important;

  opacity:0!important;
  transform:scale(.965) translateY(8px)!important;
  transition:opacity .3s ease,transform .38s cubic-bezier(.2,.8,.2,1)!important;
}
.photo-viewer.open img{
  opacity:1!important;
  transform:scale(1) translateY(0)!important;
}
.photo-viewer-close{
  position:fixed!important;
  top:20px!important;
  right:20px!important;
  z-index:100000!important;
  width:46px!important;
  height:46px!important;
  border:1px solid rgba(255,255,255,.35)!important;
  border-radius:50%!important;
  background:rgba(15,15,14,.36)!important;
  -webkit-backdrop-filter:blur(10px)!important;
  backdrop-filter:blur(10px)!important;
  color:#fff!important;
  font:300 31px/1 Arial,sans-serif!important;
  display:grid!important;
  place-items:center!important;
  cursor:pointer!important;
  opacity:0!important;
  transform:translateY(-5px)!important;
  transition:opacity .25s ease .08s,transform .25s ease .08s,background .2s ease!important;
}
.photo-viewer.open .photo-viewer-close{
  opacity:1!important;
  transform:translateY(0)!important;
}
.photo-viewer-close:hover{
  background:rgba(15,15,14,.7)!important;
}
body.photo-viewer-open{
  overflow:hidden!important;
}
@media(max-width:850px){
  .photo-viewer{
    padding:18px!important;
    background:rgba(12,12,11,.62)!important;
    -webkit-backdrop-filter:blur(11px)!important;
    backdrop-filter:blur(11px)!important;
  }
  .photo-viewer img{
    max-width:100%!important;
    max-height:84vh!important;
  }
  .photo-viewer-close{
    top:14px!important;
    right:14px!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .photo-viewer,.photo-viewer img,.photo-viewer-close{
    transition:none!important;
  }
}

/* V18 — force photo into the exact center of the viewport */
.photo-viewer{
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
  padding:24px!important;
}
.photo-viewer img{
  position:relative!important;
  inset:auto!important;
  justify-self:center!important;
  align-self:center!important;
  margin:0!important;
  width:auto!important;
  height:auto!important;
  max-width:calc(100vw - 48px)!important;
  max-height:calc(100vh - 48px)!important;
  object-fit:contain!important;
  object-position:center center!important;
}
@media(max-width:850px){
  .photo-viewer{
    padding:18px!important;
  }
  .photo-viewer img{
    max-width:calc(100vw - 36px)!important;
    max-height:calc(100dvh - 36px)!important;
  }
}

/* V19 — smoother gallery motion, 35% less background blur, clear tap/click hint */
.gallery-hint{
  margin:12px 0 24px;
  font:700 10px Inter,Arial,sans-serif;
  letter-spacing:1.35px;
  text-transform:uppercase;
  color:var(--muted);
}

.photo-viewer{
  -webkit-backdrop-filter:blur(9.1px)!important;
  backdrop-filter:blur(9.1px)!important;
  transition:
    opacity .42s cubic-bezier(.22,1,.36,1),
    visibility 0s linear .42s!important;
}
.photo-viewer.open{
  transition:
    opacity .42s cubic-bezier(.22,1,.36,1),
    visibility 0s linear 0s!important;
}
.photo-viewer img{
  opacity:0!important;
  transform:scale(.975) translateY(5px)!important;
  transition:
    opacity .42s cubic-bezier(.22,1,.36,1),
    transform .52s cubic-bezier(.22,1,.36,1)!important;
  will-change:opacity,transform;
}
.photo-viewer.open img{
  opacity:1!important;
  transform:scale(1) translateY(0)!important;
}
.photo-viewer-close{
  transition:
    opacity .36s cubic-bezier(.22,1,.36,1) .06s,
    transform .4s cubic-bezier(.22,1,.36,1) .06s,
    background .2s ease!important;
}
@media(max-width:850px){
  .photo-viewer{
    -webkit-backdrop-filter:blur(7.15px)!important;
    backdrop-filter:blur(7.15px)!important;
  }
  .gallery-hint{
    margin:10px 0 20px;
    font-size:9px;
  }
}

/* V20 — another 25% less blur + visible gallery instruction */
.photo-viewer{
  -webkit-backdrop-filter:blur(6.825px)!important;
  backdrop-filter:blur(6.825px)!important;
}
.gallery-hint{
  display:block!important;
  width:100%!important;
  margin:18px 0 22px!important;
  padding:0!important;
  color:var(--ink)!important;
  font:700 10px Inter,Arial,sans-serif!important;
  letter-spacing:1.35px!important;
  line-height:1.5!important;
  text-transform:uppercase!important;
  opacity:.72!important;
}
@media(max-width:850px){
  .photo-viewer{
    -webkit-backdrop-filter:blur(5.3625px)!important;
    backdrop-filter:blur(5.3625px)!important;
  }
  .gallery-hint{
    margin:14px 0 18px!important;
    font-size:9px!important;
  }
}

/* V21 — 15% of original blur strength + on-image viewing instruction */
.photo-viewer{
  -webkit-backdrop-filter:blur(2.1px)!important;
  backdrop-filter:blur(2.1px)!important;
}
#work figure{
  position:relative!important;
}
#work figure::after{
  display:none!important;
  content:none!important;
}
.image-view-hint{
  position:absolute!important;
  left:50%!important;
  bottom:18px!important;
  transform:translateX(-50%)!important;
  z-index:5!important;
  display:block!important;
  width:max-content!important;
  max-width:calc(100% - 28px)!important;
  padding:10px 13px!important;
  background:rgba(10,10,9,.68)!important;
  -webkit-backdrop-filter:blur(4px)!important;
  backdrop-filter:blur(4px)!important;
  border:1px solid rgba(255,255,255,.28)!important;
  color:#fff!important;
  font:800 8px Inter,Arial,sans-serif!important;
  letter-spacing:1.35px!important;
  line-height:1.2!important;
  text-align:center!important;
  white-space:nowrap!important;
  pointer-events:none!important;
}
@media(max-width:850px){
  .photo-viewer{
    -webkit-backdrop-filter:blur(1.65px)!important;
    backdrop-filter:blur(1.65px)!important;
  }
  .image-view-hint{
    bottom:12px!important;
    padding:9px 10px!important;
    font-size:7px!important;
    letter-spacing:1px!important;
  }
}

/* V22 — viewer blur set to 23% of original strength */
.photo-viewer{
  -webkit-backdrop-filter:blur(3.22px)!important;
  backdrop-filter:blur(3.22px)!important;
}
@media(max-width:850px){
  .photo-viewer{
    -webkit-backdrop-filter:blur(2.53px)!important;
    backdrop-filter:blur(2.53px)!important;
  }
}

/* V23 — compact captions + top viewing hint */
#work figcaption{
  left:8px!important;
  bottom:8px!important;
  padding:7px 9px!important;
  gap:1px!important;
  width:max-content!important;
  max-width:calc(100% - 16px)!important;
}
#work figcaption b{
  font-size:9px!important;
  letter-spacing:1.15px!important;
}
#work figcaption span{
  font-size:11px!important;
  line-height:1.15!important;
}
#work .process figcaption{
  font-size:8px!important;
  letter-spacing:.8px!important;
  line-height:1.15!important;
}
.image-view-hint{
  top:8px!important;
  bottom:auto!important;
  padding:6px 9px!important;
  font-size:6.5px!important;
  letter-spacing:.9px!important;
  background:rgba(10,10,9,.60)!important;
}
@media(max-width:850px){
  #work figcaption{
    left:6px!important;
    bottom:6px!important;
    padding:6px 8px!important;
  }
  #work figcaption b{font-size:8px!important}
  #work figcaption span{font-size:10px!important}
  #work .process figcaption{font-size:7.5px!important}
  .image-view-hint{
    top:6px!important;
    bottom:auto!important;
    padding:5px 7px!important;
    font-size:5.8px!important;
    letter-spacing:.75px!important;
  }
}

/* V24 direct contact links */
.contact-link{color:inherit;text-decoration:none}
.contact-link:hover{text-decoration:underline;text-underline-offset:3px}

/* V25 — uniform 4:5 gallery cards, true mobile centering, labels +10% */

/* Gallery previews are all the exact same portrait ratio until opened. */
#work .uniform-work-card{
  position:relative!important;
  aspect-ratio:4 / 5!important;
  overflow:hidden!important;
  min-height:0!important;
}
#work .uniform-work-card .uniform-work-image{
  display:block!important;
  width:100%!important;
  height:100%!important;
  aspect-ratio:4 / 5!important;
  object-fit:cover!important;
  object-position:center center!important;
  margin:0!important;
}

/* Click/tap hint: 10% larger than V24. */
.image-view-hint{
  top:12px!important;
  bottom:auto!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  padding:9.9px 11px!important;
  font-size:7.7px!important;
  letter-spacing:1.1px!important;
}

/* White BEFORE / WORK IN PROGRESS / CLEANUP / AFTER labels: 10% larger. */
#work figure figcaption{
  left:7px!important;
  bottom:7px!important;
  padding:11px 13.2px!important;
  font-size:11px!important;
  line-height:1.1!important;
}

/* Viewer is fixed to the viewport and centered in the true screen middle. */
.photo-viewer{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  padding:24px!important;
}
.photo-viewer img{
  position:static!important;
  display:block!important;
  flex:0 0 auto!important;
  width:auto!important;
  height:auto!important;
  max-width:calc(100vw - 48px)!important;
  max-height:calc(100dvh - 48px)!important;
  margin:0!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform-origin:center center!important;
}
@media(max-width:850px){
  .photo-viewer{
    width:100vw!important;
    height:100dvh!important;
    min-height:100dvh!important;
    padding:18px!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .photo-viewer img{
    width:auto!important;
    height:auto!important;
    max-width:calc(100vw - 36px)!important;
    max-height:calc(100dvh - 36px)!important;
    margin:auto!important;
    align-self:center!important;
    object-fit:contain!important;
  }
  .image-view-hint{
    top:10px!important;
    bottom:auto!important;
    padding:9.9px 11px!important;
    font-size:7.7px!important;
    letter-spacing:1.1px!important;
  }
  #work figure figcaption{
    left:7px!important;
    bottom:7px!important;
    padding:11px 13.2px!important;
    font-size:11px!important;
  }
}

/* V26 — gallery previews 5% off square, slightly portrait */
#work .uniform-work-card{
  aspect-ratio:19 / 20!important;
}
#work .uniform-work-card .uniform-work-image{
  aspect-ratio:19 / 20!important;
}

/* V27 — ACTUAL uniform gallery grid fix */
#work .work-grid,
#work .gallery-grid,
#work .work-gallery{
  display:grid!important;
  grid-template-columns:repeat(2, minmax(0, 1fr))!important;
  grid-auto-flow:row!important;
  gap:10px!important;
  align-items:stretch!important;
}

#work .uniform-work-card{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  height:auto!important;
  aspect-ratio:19 / 20!important;
  grid-column:auto!important;
  grid-row:auto!important;
  align-self:stretch!important;
  justify-self:stretch!important;
  margin:0!important;
}

#work .uniform-work-card .uniform-work-image{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
  object-position:center!important;
}

@media(max-width:850px){
  #work .work-grid,
  #work .gallery-grid,
  #work .work-gallery{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
}
