:root{--bg:#fafaf8;--fg:#151515;--muted:#747474;--line:rgba(0,0,0,.12);--header-h:72px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--fg);font-size:14px;letter-spacing:.01em}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea{font:inherit}.theme-black{--bg:#050505;--fg:#f7f7f3;--muted:#aaa;--line:rgba(255,255,255,.16)}.site-header{position:fixed;top:0;left:0;right:0;height:var(--header-h);z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 34px;color:var(--fg);background:transparent}.page-how .site-header,.page-now .site-header{background:transparent;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.55)}.brand{font-size:16px;letter-spacing:.02em}.site-nav{display:flex;gap:26px;justify-self:center}.site-nav a,.mobile-panel a{font-size:15px;opacity:.72}.site-nav a.active,.site-nav a:hover,.mobile-panel a.active{opacity:1}.lang{justify-self:end;display:flex;align-items:center;gap:6px;font-size:14px}.lang button{border:0;background:transparent;color:inherit;padding:4px;opacity:.65;cursor:pointer}.lang button.active{opacity:1}.nav-toggle{display:none;justify-self:center;border:0;background:transparent;color:inherit;font-size:19px;cursor:pointer}.mobile-panel{display:none}.site-footer{position:relative;z-index:10;display:flex;justify-content:center;align-items:center;gap:18px;padding:26px 28px 22px;color:var(--fg);background:transparent;font-size:11px;text-align:center}.page-how .site-footer,.page-now .site-footer{position:fixed;left:0;right:0;bottom:0;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.55);padding:18px 28px;background:transparent}.socials{display:flex;gap:12px}.ig-icon{width:17px;height:17px;display:inline-block}.content{max-width:1280px;margin:0 auto;padding:132px 34px 70px}.content h1{font-size:15px;font-weight:400;margin:0 0 44px}.how,.now{height:100svh;width:100vw;overflow:hidden;background:#0b0b0b}.how-stage,.how-slide,.now-stage,.now-slide{position:absolute;inset:0}.how-slide,.now-slide{opacity:0;transition:opacity 1.2s ease}.how-slide.active,.now-slide.active{opacity:1}.how-slide img,.now-slide img{width:100%;height:100%;object-fit:cover}.how-slide.pos-left img,.now-slide.pos-left img{object-position:left center}.how-slide.pos-center img,.now-slide.pos-center img{object-position:center center}.how-slide.pos-right img,.now-slide.pos-right img{object-position:right center}.how-arrow,.now-arrow{position:fixed;top:50%;z-index:21;transform:translateY(-50%);border:0;background:rgba(255,255,255,.08);color:#fff;width:48px;height:78px;font-size:38px;font-weight:200;cursor:pointer;opacity:.38;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:opacity .25s ease,background .25s ease}.how-arrow:hover,.now-arrow:hover{opacity:.8;background:rgba(255,255,255,.14)}.how-prev,.now-prev{left:16px}.how-next,.now-next{right:16px}.series-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 34px}.series-card{display:block}.series-card figure{margin:0}.thumb-frame{width:100%;aspect-ratio:4/5;overflow:hidden;background:#ddd}.theme-black .thumb-frame{background:#1a1a1a}.thumb-frame img{width:100%;height:auto;max-width:none;object-fit:unset;object-position:top center}.series-card figcaption{padding-top:14px}.series-title{font-size:13px}.series-meta{font-size:11px;color:var(--muted);margin-top:5px}.back-link{font-size:11px;color:var(--muted);display:inline-block;margin-bottom:38px}.series-statement{max-width:560px;color:var(--muted);line-height:1.65;white-space:pre-line;margin:-24px 0 44px}.image-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px}.image-card{cursor:pointer}.image-card .thumb-frame{cursor:pointer}.image-card .caption{font-size:11px;color:var(--muted);padding-top:9px}.lightbox{position:fixed;inset:0;z-index:40;background:rgba(0,0,0,.94);display:none;align-items:center;justify-content:center}.lightbox.open{display:flex}.lightbox img{max-width:92vw;max-height:86vh;object-fit:contain}.lightbox-close,.lightbox-nav{position:fixed;border:0;background:transparent;color:#fff;cursor:pointer;font-weight:200}.lightbox-close{right:24px;top:16px;font-size:34px}.lightbox-nav{top:50%;transform:translateY(-50%);font-size:54px;opacity:.55}.lightbox-prev{left:26px}.lightbox-next{right:26px}.lightbox-meta{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);color:#ddd;font-size:11px;text-align:center;max-width:80vw}.about-layout{display:grid;grid-template-columns:280px minmax(0,560px);gap:62px 72px}.about-photo{width:100%;height:auto;object-fit:contain;background:transparent}.contact-lines{margin-top:18px;display:grid;gap:7px;font-size:11px;color:var(--muted)}.about-text{line-height:1.7}.about-block{margin-bottom:30px}.about-block h2{font-size:12px;font-weight:400;margin:0 0 12px}.about-block p{white-space:pre-line;margin:0;color:var(--muted)}.about-text a{text-decoration:underline;text-underline-offset:3px}.contact-lines a{text-decoration:none}.contact-form{grid-column:2;display:grid;gap:13px;margin-top:-28px}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--line);background:transparent;color:var(--fg);padding:10px 12px;border-radius:0;font-size:11px}.contact-form textarea{min-height:130px;resize:vertical}.contact-form button{justify-self:start;border:0;border-bottom:1px solid var(--fg);background:transparent;color:var(--fg);padding:8px 0 4px;cursor:pointer;font-size:11px;letter-spacing:.04em}.form-status{font-size:12px;color:var(--muted);min-height:18px}@media(max-width:800px){:root{--header-h:62px}.site-header{grid-template-columns:1fr auto 1fr;padding:0 18px}.site-nav{display:none}.nav-toggle{display:block}.brand{font-size:12px}.lang{font-size:10px}.menu-open .mobile-panel{display:flex;position:fixed;top:var(--header-h);left:0;right:0;z-index:19;flex-direction:column;align-items:center;gap:20px;padding:22px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.page-how.menu-open .mobile-panel,.page-now.menu-open .mobile-panel{background:rgba(0,0,0,.42);color:#fff}.content{padding:112px 22px 96px}.series-grid,.image-grid{grid-template-columns:1fr 1fr;gap:30px 18px}.about-layout{display:block}.about-photo{max-width:260px}.about-text{margin-top:36px}.contact-form{margin-top:34px}.how-arrow,.now-arrow{width:38px;height:64px;font-size:31px}.how-prev,.now-prev{left:8px}.how-next,.now-next{right:8px}.site-footer{font-size:10px;gap:15px;flex-wrap:wrap}}@media(max-width:520px){.series-grid,.image-grid{grid-template-columns:1fr}.site-footer{padding:10px 18px}.copyright{width:100%;text-align:center}.socials{justify-content:center}.content h1{margin-bottom:34px}}

img{user-select:none;-webkit-user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}.is-hidden{display:none!important}


/* v3 refinements */
html,body{min-height:100%;}
body:not(.page-now):not(.page-how){min-height:100vh;display:flex;flex-direction:column;background:var(--bg);}
body:not(.page-now):not(.page-how) .content{flex:1;width:100%;}
.site-header{background:var(--bg);font-weight:400;}
.page-now .site-header,.page-how .site-header{background:transparent;}
.site-nav a,.mobile-panel a,.lang,.lang button{font-weight:400;}
.site-nav a.active,.mobile-panel a.active,.lang button.active{opacity:.72;font-weight:400;}
.site-nav a:hover,.mobile-panel a:hover,.lang button:hover{opacity:1;}
.lang{font-size:15px;}
.site-footer{margin-top:auto;background:var(--bg);}
.page-now .site-footer,.page-how .site-footer{position:relative;margin-top:0;background:transparent;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.55);}
.now,.how{min-height:100vh;height:100vh;}
.thumb-frame{background:var(--bg);display:flex;align-items:center;justify-content:center;}
.theme-black .thumb-frame{background:var(--bg);}
.thumb-frame img{width:100%;height:100%;object-fit:contain;object-position:center center;}
.item-content{min-height:calc(100vh - 92px);}
.image-grid{gap:48px 34px;}
.about-layout{max-width:1080px;justify-content:center;grid-template-columns:280px minmax(0,660px);gap:62px 76px;}
.contact-lines{gap:11px;line-height:1.55;}
.contact-form input,.contact-form textarea{border:0;border-bottom:1px solid var(--line);padding:10px 0 8px;}
.contact-form textarea{min-height:118px;}
.about-text a{text-decoration:none;}

@media(max-width:800px){
  .site-header{background:var(--bg);}
  .page-now .site-header,.page-how .site-header{background:transparent;}
  .menu-open .site-header{position:absolute;}
  .menu-open .mobile-panel{position:absolute;top:var(--header-h);}
  .page-now.menu-open .site-header,.page-how.menu-open .site-header{background:rgba(0,0,0,.42);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);}
  .page-now.menu-open .mobile-panel,.page-how.menu-open .mobile-panel{background:rgba(0,0,0,.42);color:#fff;}
  .mobile-panel a{font-size:13px;line-height:1.15;}
  .brand,.lang{font-size:13px;}
  .nav-toggle{font-size:20px;}
  .menu-open .mobile-panel{gap:12px;padding:16px 22px 18px;}
  .now,.how{height:100vh;min-height:100vh;}
  .content{padding-bottom:110px;}
  .about-layout{max-width:none;}
}
@media(max-width:520px){
  .series-grid,.image-grid{grid-template-columns:1fr;}
  .site-footer{padding:22px 18px;}
  .page-now .site-footer,.page-how .site-footer{padding:22px 18px;}
}


/* v4 refinements: Now keeps full-screen overlay behavior; menu language sizing */
.lang,.lang button{font-size:15px;line-height:1;}
body.page-now,body.page-how{height:100svh;min-height:100svh;overflow:hidden;background:#0b0b0b;display:block;}
.page-now .now,.page-how .how{position:fixed;inset:0;width:100vw;height:100svh;min-height:100svh;overflow:hidden;}
.page-now .site-footer,.page-how .site-footer{position:fixed;left:0;right:0;bottom:16px;z-index:22;margin:0;padding:0 28px;background:transparent;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.65);pointer-events:auto;}
.page-now .copyright,.page-how .copyright{width:auto;}
@supports(height:100dvh){
  body.page-now,body.page-how{height:100dvh;min-height:100dvh;}
  .page-now .now,.page-how .how{height:100dvh;min-height:100dvh;}
}
@media(max-width:800px){
  .lang,.lang button{font-size:13px;line-height:1;}
  body.page-now,body.page-how{height:100svh;min-height:100svh;overflow:hidden;}
  .page-now .now,.page-how .how{height:100svh;min-height:100svh;}
  .page-now .site-footer,.page-how .site-footer{bottom:calc(env(safe-area-inset-bottom) + 76px);padding:0 18px;font-size:9px;opacity:.72;gap:10px;}
  .page-now .socials,.page-how .socials{gap:8px;}
  .page-now .ig-icon,.page-how .ig-icon{width:13px;height:13px;}
}
@media(max-width:520px){
  .page-now .site-footer,.page-how .site-footer{padding:0 18px;}
  .page-now .copyright,.page-how .copyright{width:auto;}
}

/* v5 refinement: extend Now image underneath iPhone Safari bottom UI */
@media(max-width:800px){
  body.page-now,body.page-how{
    height:100dvh;
    min-height:100dvh;
    overflow:hidden;
    background:#0b0b0b;
  }
  .page-now .now,.page-how .how{
    position:fixed;
    top:0;
    left:0;
    right:0;
    bottom:-140px;
    width:100vw;
    height:auto;
    min-height:calc(100dvh + 140px);
    overflow:hidden;
  }
  .page-now .now-stage,.page-now .now-slide,
  .page-how .how-stage,.page-how .how-slide{
    position:absolute;
    inset:0;
  }
  .page-now .now-slide img,.page-how .how-slide img{
    width:100%;
    height:100%;
    object-fit:cover;
  }
  .page-now .site-footer,.page-how .site-footer{
    bottom:calc(env(safe-area-inset-bottom) + 92px);
  }
}

/* v6 refinements */
/* iPhone/Safari Now: avoid fixed visual-viewport clipping; let the image live in the page canvas */
@media(max-width:800px){
  html:has(body.page-now),html:has(body.page-how){
    min-height:100%;
    background:#0b0b0b;
    overflow:hidden;
  }
  body.page-now,body.page-how{
    position:relative;
    width:100vw;
    min-height:100vh;
    height:100vh;
    overflow:hidden;
    background:#0b0b0b;
    display:block;
  }
  .page-now .now,.page-how .how{
    position:absolute;
    top:0;
    left:0;
    width:100vw;
    height:calc(100vh + 150px);
    min-height:calc(100vh + 150px);
    right:auto;
    bottom:auto;
    overflow:hidden;
  }
  .page-now .now-stage,.page-now .now-slide,
  .page-how .how-stage,.page-how .how-slide{position:absolute;inset:0;}
  .page-now .now-slide img,.page-how .how-slide img{
    width:100%;height:100%;object-fit:cover;
  }
  .page-now .site-footer,.page-how .site-footer{
    position:absolute;
    bottom:112px;
    left:0;right:0;
  }
}

/* Item cards: match portfolio card scale on desktop */
@media(min-width:801px){
  .page-item .image-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:48px 34px;
  }
  .page-item .image-card .thumb-frame{
    aspect-ratio:4/5;
    width:100%;
  }
}

/* v7 fixes: iPhone Now must use large viewport canvas; item cards equal portfolio cards */
@media(max-width:800px){
  html:has(body.page-now),html:has(body.page-how){
    height:auto;
    min-height:100lvh;
    overflow:auto;
    background:#0b0b0b;
  }
  body.page-now,body.page-how{
    height:auto !important;
    min-height:100lvh !important;
    overflow:auto !important;
    background:#0b0b0b;
    position:relative;
  }
  .page-now .now,.page-how .how{
    position:relative !important;
    top:auto !important;
    left:auto !important;
    right:auto !important;
    bottom:auto !important;
    width:100vw !important;
    height:100lvh !important;
    min-height:100lvh !important;
    overflow:hidden !important;
    background:#0b0b0b;
  }
  .page-now .now-stage,.page-now .now-slide,
  .page-how .how-stage,.page-how .how-slide{
    position:absolute !important;
    inset:0 !important;
  }
  .page-now .now-slide img,.page-how .how-slide img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
  }
  .page-now .now-slide.pos-left img,.page-how .how-slide.pos-left img{object-position:left center !important;}
  .page-now .now-slide.pos-center img,.page-how .how-slide.pos-center img{object-position:center center !important;}
  .page-now .now-slide.pos-right img,.page-how .how-slide.pos-right img{object-position:right center !important;}
  .page-now .site-footer,.page-how .site-footer{
    position:fixed !important;
    bottom:calc(env(safe-area-inset-bottom) + 88px) !important;
    left:0 !important;
    right:0 !important;
    z-index:22 !important;
  }
}
@media(min-width:801px){
  .series-grid,
  .page-item .image-grid{
    grid-template-columns:repeat(3, minmax(0, 320px)) !important;
    justify-content:space-between !important;
    gap:48px 34px !important;
  }
  .series-card,
  .page-item .image-card{
    width:320px !important;
    max-width:100% !important;
  }
  .series-card .thumb-frame,
  .page-item .image-card .thumb-frame{
    width:320px !important;
    max-width:100% !important;
    aspect-ratio:4/5 !important;
  }
}

/* v8 corrections */
/* Restore fluid card scale: items and portfolio covers share the same large 4:5 card system */
@media(min-width:801px){
  .series-grid,
  .page-item .image-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    justify-content:initial !important;
    gap:48px 34px !important;
  }
  .series-card,
  .page-item .image-card{
    width:auto !important;
    max-width:none !important;
  }
  .series-card .thumb-frame,
  .page-item .image-card .thumb-frame{
    width:100% !important;
    max-width:none !important;
    aspect-ratio:4/5 !important;
  }
}
@media(max-width:800px){
  .page-item .image-grid{grid-template-columns:1fr !important;gap:30px 18px !important;}
  .page-item .image-card,
  .page-item .image-card .thumb-frame{width:100% !important;max-width:none !important;aspect-ratio:4/5 !important;}
}

/* iPhone Safari Now: oversize the visual canvas below the viewport so the photo continues behind the floating Safari bar */
@media(max-width:800px){
  html:has(body.page-now),html:has(body.page-how){
    height:auto !important;
    min-height:calc(100svh + 180px) !important;
    overflow:hidden !important;
    background:#0b0b0b !important;
  }
  body.page-now,body.page-how{
    height:calc(100svh + 180px) !important;
    min-height:calc(100svh + 180px) !important;
    overflow:hidden !important;
    background:#0b0b0b !important;
    position:relative !important;
    margin:0 !important;
  }
  .page-now .now,.page-how .how{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    bottom:auto !important;
    width:100vw !important;
    height:calc(100svh + 180px) !important;
    min-height:calc(100svh + 180px) !important;
    overflow:hidden !important;
    background:#0b0b0b !important;
  }
  @supports(height:100dvh){
    html:has(body.page-now),html:has(body.page-how),
    body.page-now,body.page-how,
    .page-now .now,.page-how .how{
      height:calc(100dvh + 180px) !important;
      min-height:calc(100dvh + 180px) !important;
    }
  }
  .page-now .now-stage,.page-now .now-slide,
  .page-how .how-stage,.page-how .how-slide{position:absolute !important;inset:0 !important;}
  .page-now .now-slide img,.page-how .how-slide img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
  }
  .page-now .site-footer,.page-how .site-footer{
    position:fixed !important;
    bottom:calc(env(safe-area-inset-bottom) + 88px) !important;
  }
}

/* v9 consolidation: card parity, mobile footer line, iPhone Now canvas */
@media (min-width:801px){
  .page-portfolio .content,
  .page-item .content{max-width:1280px !important;}
  .page-portfolio .series-grid,
  .page-item .image-grid{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:48px 34px !important;
    justify-content:stretch !important;
    align-items:start !important;
  }
  .page-portfolio .series-card,
  .page-item .image-card{width:100% !important;max-width:none !important;}
  .page-portfolio .thumb-frame,
  .page-item .thumb-frame{
    width:100% !important;
    max-width:none !important;
    aspect-ratio:4/5 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    overflow:hidden !important;
    background:var(--bg) !important;
  }
  .page-portfolio .thumb-frame img,
  .page-item .thumb-frame img{width:100% !important;height:100% !important;object-fit:contain !important;object-position:center center !important;}
}

@media (max-width:800px){
  .page-portfolio .series-grid,
  .page-item .image-grid{grid-template-columns:1fr !important;gap:30px 18px !important;}
  .page-portfolio .series-card,
  .page-item .image-card{width:100% !important;max-width:100% !important;margin:0 auto !important;}
  .page-portfolio .thumb-frame,
  .page-item .thumb-frame{
    width:100% !important;
    max-width:100% !important;
    aspect-ratio:4/5 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    overflow:hidden !important;
    background:var(--bg) !important;
  }
  .page-portfolio .thumb-frame img,
  .page-item .thumb-frame img{width:100% !important;height:100% !important;object-fit:contain !important;object-position:center center !important;}

  .site-footer{display:flex !important;flex-direction:row !important;flex-wrap:nowrap !important;justify-content:center !important;align-items:center !important;gap:12px !important;white-space:nowrap !important;}
  .site-footer .copyright{width:auto !important;text-align:center !important;}
  .site-footer .socials{display:flex !important;justify-content:center !important;align-items:center !important;gap:10px !important;}
  .site-footer .ig-icon{width:15px !important;height:15px !important;}

  body.page-now,body.page-how{height:100vh !important;min-height:100vh !important;overflow:hidden !important;position:fixed !important;inset:0 !important;width:100vw !important;}
  .page-now .now,.page-how .how{position:absolute !important;top:0 !important;left:0 !important;width:100vw !important;height:var(--mobile-now-h,100vh) !important;min-height:var(--mobile-now-h,100vh) !important;overflow:hidden !important;}
  .page-now .now-stage,.page-now .now-slide,.page-how .how-stage,.page-how .how-slide{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;}
  .page-now .now-slide img,.page-how .how-slide img{width:100% !important;height:100% !important;object-fit:cover !important;object-position:center center !important;}
  .page-now .now-slide.pos-left img,.page-how .how-slide.pos-left img{object-position:left center !important;}
  .page-now .now-slide.pos-center img,.page-how .how-slide.pos-center img{object-position:center center !important;}
  .page-now .now-slide.pos-right img,.page-how .how-slide.pos-right img{object-position:right center !important;}
  .page-now .site-footer,.page-how .site-footer{position:fixed !important;left:0 !important;right:0 !important;bottom:calc(env(safe-area-inset-bottom) + 58px) !important;z-index:30 !important;padding:0 14px !important;color:#fff !important;background:transparent !important;text-shadow:0 1px 10px rgba(0,0,0,.65) !important;}
}

/* v10 final refinements */
/* Prevent the thin white browser/page seam on black item pages */
body.theme-black{background:#050505 !important;}
body.theme-black::after{content:"";position:fixed;left:0;right:0;bottom:0;height:4px;background:#050505;z-index:9998;pointer-events:none;}
body.theme-black .site-footer{background:#050505 !important;}

/* Keep portfolio cover cards and item cards at the same large scale */
@media (min-width:801px){
  .page-portfolio .series-grid,
  .page-item .image-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:48px 34px !important;
  }
  .page-portfolio .thumb-frame,
  .page-item .thumb-frame{
    width:100% !important;
    aspect-ratio:4/5 !important;
  }
}

/* Mobile: one-line footer, lower and closer to Safari chrome */
@media(max-width:800px){
  body:not(.page-now):not(.page-how) .content{padding-bottom:24px !important;}
  body:not(.page-now):not(.page-how) .site-footer{
    margin-top:auto !important;
    padding:8px 14px calc(env(safe-area-inset-bottom) + 6px) !important;
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    gap:10px !important;
    line-height:1 !important;
  }
  body:not(.page-now):not(.page-how) .site-footer .copyright{width:auto !important;}
  body:not(.page-now):not(.page-how) .site-footer .socials{display:flex !important;gap:9px !important;}

  /* Now on iPhone: use the large viewport canvas rather than a fixed visual viewport.
     This is the closest Safari-compatible way to let the image continue under the floating bar. */
  html:has(body.page-now),html:has(body.page-how){
    height:100lvh !important;
    min-height:100lvh !important;
    overflow:hidden !important;
    background:#0b0b0b !important;
  }
  body.page-now,body.page-how{
    position:relative !important;
    inset:auto !important;
    width:100vw !important;
    height:100lvh !important;
    min-height:100lvh !important;
    overflow:hidden !important;
    background:#0b0b0b !important;
  }
  .page-now .now,.page-how .how{
    position:absolute !important;
    inset:0 !important;
    width:100vw !important;
    height:100lvh !important;
    min-height:100lvh !important;
    overflow:hidden !important;
  }
  .page-now .now-stage,.page-now .now-slide,
  .page-how .how-stage,.page-how .how-slide{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;}
  .page-now .now-slide img,.page-how .how-slide img{width:100% !important;height:100% !important;object-fit:cover !important;}
  .page-now .now-slide.pos-left img,.page-how .how-slide.pos-left img{object-position:left center !important;}
  .page-now .now-slide.pos-center img,.page-how .how-slide.pos-center img{object-position:center center !important;}
  .page-now .now-slide.pos-right img,.page-how .how-slide.pos-right img{object-position:right center !important;}
  .page-now .site-footer,.page-how .site-footer{
    position:fixed !important;
    left:0 !important;right:0 !important;
    bottom:calc(env(safe-area-inset-bottom) + 46px) !important;
    padding:0 14px !important;
    display:flex !important;flex-direction:row !important;flex-wrap:nowrap !important;
    gap:10px !important;line-height:1 !important;
  }
}

/* v11 — Now Mobile independent viewer + final mobile card containment
   Desktop rules remain untouched. */
@media (max-width:800px){
  /* Portfolio / Item mobile cards: same available width, never wider than screen */
  .page-portfolio .content,
  .page-item .content{padding-left:22px !important;padding-right:22px !important;}
  .page-portfolio .series-grid,
  .page-item .image-grid{grid-template-columns:1fr !important;gap:34px !important;}
  .page-portfolio .series-card,
  .page-item .image-card{width:100% !important;max-width:100% !important;margin:0 !important;}
  .page-portfolio .thumb-frame,
  .page-item .thumb-frame{width:100% !important;max-width:100% !important;aspect-ratio:4/5 !important;}

  /* Shared mobile footer: one line and as low as the browser allows */
  body:not(.page-now):not(.page-how) .site-footer{
    padding-top:6px !important;
    padding-bottom:calc(env(safe-area-inset-bottom) + 2px) !important;
    min-height:auto !important;
  }

  /* NOW MOBILE: separate from document flow.
     The page is a single image viewer; header/footer/arrows are overlays. */
  html:has(body.page-now),
  html:has(body.page-how){
    width:100% !important;
    min-height:100% !important;
    overflow:hidden !important;
    background:#0b0b0b !important;
  }
  body.page-now,
  body.page-how{
    margin:0 !important;
    width:100vw !important;
    min-height:100% !important;
    overflow:hidden !important;
    background:#0b0b0b !important;
    position:relative !important;
  }
  .page-now .site-header,
  .page-how .site-header{
    position:fixed !important;
    top:0 !important;left:0 !important;right:0 !important;
    z-index:50 !important;
    background:transparent !important;
  }
  .page-now .now,
  .page-how .how{
    position:fixed !important;
    left:0 !important;top:0 !important;
    width:100vw !important;
    height:var(--now-mobile-height, 100dvh) !important;
    min-height:var(--now-mobile-height, 100dvh) !important;
    overflow:hidden !important;
    z-index:1 !important;
    background:#0b0b0b !important;
  }
  .page-now .now-stage,.page-now .now-slide,
  .page-how .how-stage,.page-how .how-slide{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
  }
  .page-now .now-slide img,
  .page-how .how-slide img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
  }
  .page-now .now-slide.pos-left img,.page-how .how-slide.pos-left img{object-position:left center !important;}
  .page-now .now-slide.pos-center img,.page-how .how-slide.pos-center img{object-position:center center !important;}
  .page-now .now-slide.pos-right img,.page-how .how-slide.pos-right img{object-position:right center !important;}
  .page-now .now-arrow,
  .page-how .how-arrow{z-index:55 !important;}
  .page-now .site-footer,
  .page-how .site-footer{
    position:fixed !important;
    left:0 !important;right:0 !important;
    bottom:calc(env(safe-area-inset-bottom) + 8px) !important;
    z-index:56 !important;
    padding:0 14px !important;
    margin:0 !important;
    background:transparent !important;
    color:#fff !important;
    text-shadow:0 1px 10px rgba(0,0,0,.75) !important;
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    justify-content:center !important;
    align-items:center !important;
    gap:10px !important;
    line-height:1 !important;
  }
  .page-now .site-footer .copyright,
  .page-how .site-footer .copyright{width:auto !important;}
  .page-now .site-footer .socials,
  .page-how .site-footer .socials{display:flex !important;gap:9px !important;align-items:center !important;}
}

/* v12 — iPhone Now true mobile viewer overscan
   Desktop remains untouched. This overrides previous mobile Now attempts. */
@media (max-width:800px){
  html:has(body.page-now),
  html:has(body.page-how){
    width:100% !important;
    height:calc(var(--now-vvh, 100dvh) + var(--now-safari-overscan, 150px)) !important;
    min-height:calc(var(--now-vvh, 100dvh) + var(--now-safari-overscan, 150px)) !important;
    overflow:hidden !important;
    background:#0b0b0b !important;
  }
  body.page-now,
  body.page-how{
    margin:0 !important;
    width:100vw !important;
    height:calc(var(--now-vvh, 100dvh) + var(--now-safari-overscan, 150px)) !important;
    min-height:calc(var(--now-vvh, 100dvh) + var(--now-safari-overscan, 150px)) !important;
    overflow:hidden !important;
    background:#0b0b0b !important;
    position:relative !important;
  }
  .page-now .now,
  .page-how .how{
    position:absolute !important;
    left:0 !important;
    top:0 !important;
    width:100vw !important;
    height:calc(var(--now-vvh, 100dvh) + var(--now-safari-overscan, 150px)) !important;
    min-height:calc(var(--now-vvh, 100dvh) + var(--now-safari-overscan, 150px)) !important;
    overflow:hidden !important;
    z-index:1 !important;
    background:#0b0b0b !important;
  }
  .page-now .now-stage,
  .page-now .now-slide,
  .page-how .how-stage,
  .page-how .how-slide{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
  }
  .page-now .now-slide img,
  .page-how .how-slide img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    display:block !important;
  }
  .page-now .now-slide.pos-left img,.page-how .how-slide.pos-left img{object-position:left center !important;}
  .page-now .now-slide.pos-center img,.page-how .how-slide.pos-center img{object-position:center center !important;}
  .page-now .now-slide.pos-right img,.page-how .how-slide.pos-right img{object-position:right center !important;}

  .page-now .site-header,
  .page-how .site-header{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    z-index:50 !important;
    background:transparent !important;
  }
  .page-now .now-arrow,
  .page-how .how-arrow{position:fixed !important;z-index:55 !important;}
  .page-now .site-footer,
  .page-how .site-footer{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:calc(env(safe-area-inset-bottom) + 2px) !important;
    z-index:56 !important;
    padding:0 12px !important;
    margin:0 !important;
    background:transparent !important;
    color:#fff !important;
    text-shadow:0 1px 10px rgba(0,0,0,.8) !important;
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    justify-content:center !important;
    align-items:center !important;
    gap:9px !important;
    line-height:1 !important;
    font-size:10px !important;
  }
  .page-now .site-footer .copyright,
  .page-how .site-footer .copyright{width:auto !important;white-space:nowrap !important;}
  .page-now .site-footer .socials,
  .page-how .site-footer .socials{display:flex !important;gap:8px !important;align-items:center !important;}
}

/* v13 — final mobile architecture pass: non-Now header scrolls as part of page; remove bottom flash lines */
@media (max-width:800px){
  /* Portfolio / Item / About: header is part of the document, not fixed. If the user scrolls, it leaves with the page. */
  body:not(.page-now):not(.page-how) .site-header{
    position:absolute !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    background:var(--bg) !important;
    z-index:30 !important;
  }
  body:not(.page-now):not(.page-how).menu-open .mobile-panel{
    position:absolute !important;
    top:var(--header-h) !important;
    left:0 !important;
    right:0 !important;
    z-index:29 !important;
    background:color-mix(in srgb,var(--bg) 92%,transparent) !important;
  }
  /* Keep black pages black during iOS overscroll/bounce and at the browser edge. */
  html:has(body.theme-black),
  body.theme-black,
  body.theme-black .site-footer{
    background:#050505 !important;
  }
  html:has(body.theme-white),
  body.theme-white,
  body.theme-white .site-footer{
    background:#fafaf8 !important;
  }
  body:not(.page-now):not(.page-how){
    overflow-x:hidden !important;
  }
  body:not(.page-now):not(.page-how) .site-footer{
    border:0 !important;
    box-shadow:none !important;
    outline:0 !important;
    padding-top:6px !important;
    padding-bottom:calc(env(safe-area-inset-bottom) + 0px) !important;
    margin-bottom:0 !important;
  }
  body:not(.page-now):not(.page-how) .site-footer::before,
  body:not(.page-now):not(.page-how) .site-footer::after{
    content:none !important;
    display:none !important;
  }
}

/* v14 — mobile architecture final micro-fixes
   Desktop remains untouched. */
@media (max-width:800px){
  /* Remove the fixed anti-seam strip on mobile item pages: on iPhone it appeared as a black line above Safari. */
  body.theme-black::after,
  body.theme-white::after{
    content:none !important;
    display:none !important;
  }

  /* Now Mobile: restore unified translucent block when hamburger is open. */
  .page-now.menu-open .site-header,
  .page-how.menu-open .site-header{
    background:rgba(0,0,0,.42) !important;
    backdrop-filter:blur(12px) !important;
    -webkit-backdrop-filter:blur(12px) !important;
  }
  .page-now.menu-open .mobile-panel,
  .page-how.menu-open .mobile-panel{
    background:rgba(0,0,0,.42) !important;
    color:#fff !important;
    backdrop-filter:blur(12px) !important;
    -webkit-backdrop-filter:blur(12px) !important;
  }

  /* Keep accepted v12 Now Mobile viewer geometry; avoid additional image enlargement from later passes. */
  html:has(body.page-now),
  html:has(body.page-how){
    height:calc(var(--now-vvh, 100dvh) + var(--now-safari-overscan, 170px)) !important;
    min-height:calc(var(--now-vvh, 100dvh) + var(--now-safari-overscan, 170px)) !important;
    overflow:hidden !important;
  }
  body.page-now,
  body.page-how,
  .page-now .now,
  .page-how .how{
    height:calc(var(--now-vvh, 100dvh) + var(--now-safari-overscan, 170px)) !important;
    min-height:calc(var(--now-vvh, 100dvh) + var(--now-safari-overscan, 170px)) !important;
  }
}

/* v15 — final mobile architecture micro-pass
   Scope: iPhone/mobile only. Desktop remains untouched. */
@media (max-width:800px){
  /* v16: Now Mobile open menu blur block tightened to menu height. */
  .page-now.menu-open::before,
  .page-how.menu-open::before{
    content:"";
    position:fixed;
    top:0;
    left:0;
    right:0;
    height:calc(var(--header-h) + 128px);
    z-index:48;
    background:rgba(0,0,0,.42);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    pointer-events:none;
  }
  .page-now.menu-open .site-header,
  .page-how.menu-open .site-header,
  .page-now.menu-open .mobile-panel,
  .page-how.menu-open .mobile-panel{
    background:transparent !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
  .page-now.menu-open .site-header,
  .page-how.menu-open .site-header{z-index:50 !important;}
  .page-now.menu-open .mobile-panel,
  .page-how.menu-open .mobile-panel{z-index:49 !important;}

  /* Restore the accepted v12 Now Mobile geometry: full-screen photograph with controlled overscan, not extra enlargement. */
  html:has(body.page-now),
  html:has(body.page-how),
  body.page-now,
  body.page-how,
  .page-now .now,
  .page-how .how{
    height:calc(var(--now-vvh, 100dvh) + var(--now-safari-overscan, 150px)) !important;
    min-height:calc(var(--now-vvh, 100dvh) + var(--now-safari-overscan, 150px)) !important;
  }

  /* Landscape mobile: give Portfolio / Item more horizontal breathing room. */
  @media (orientation:landscape){
    .page-portfolio .content,
    .page-item .content{
      padding-left:48px !important;
      padding-right:48px !important;
    }

    /* Black pages: cover iOS/Safari bounce seam at page end only in landscape. */
    html:has(body.theme-black),
    body.theme-black{
      background:#050505 !important;
      overscroll-behavior-y:none;
    }
    body.theme-black::after{
      content:"" !important;
      display:block !important;
      position:fixed !important;
      left:0 !important;
      right:0 !important;
      bottom:0 !important;
      height:18px !important;
      background:#050505 !important;
      z-index:9998 !important;
      pointer-events:none !important;
    }
  }
}

/* v17 — Now Mobile support for 9x16 source images + rotation repaint stability.
   Desktop remains untouched. */
@media (max-width:800px){
  /* 9x16 is a curatorial hint: if a vertical crop is supplied, this keeps it as the natural mobile source.
     It still covers the viewport and continues to use position left/center/right from JSON. */
  .page-now .now-slide.aspect-9x16 img,
  .page-how .how-slide.aspect-9x16 img{
    object-fit:cover !important;
  }
  html.now-reflow .page-now .now,
  html.now-reflow .page-how .how{
    transform:translateZ(0) scale(1.0001);
  }
  html:has(body.page-now),
  html:has(body.page-how){
    background:#0b0b0b !important;
  }
  body.page-now::after,
  body.page-how::after{
    content:"";
    position:fixed;
    left:0;
    right:0;
    bottom:-160px;
    height:220px;
    background:transparent;
    pointer-events:none;
    z-index:2;
  }
}

/* Stage 4 — Curatorial refinement 01: Portfolio as image + wall label */
@media (min-width:801px){
  .page-portfolio .content{
    max-width:1360px;
    padding-top:116px;
  }
  .page-portfolio .content h1{
    margin-bottom:38px;
  }
  .page-portfolio .series-grid{
    column-gap:34px !important;
    row-gap:34px !important;
  }
  .page-portfolio .series-card figcaption{
    width:50%;
    margin-left:auto;
    padding-top:10px;
    text-align:right;
  }
  .page-portfolio .series-title{
    font-size:12px;
    line-height:1.25;
    font-weight:400;
  }
  .page-portfolio .series-meta{
    margin-top:3px;
    font-size:10.5px;
    line-height:1.35;
    color:var(--muted);
  }
}


/* Stage 4 — Curatorial refinement 02: Item as series + individual works */
@media (min-width:801px){
  .page-item .content{
    max-width:1360px !important;
    padding-top:116px;
  }
  .page-item .item-intro{
    width:33.333%;
    margin-left:auto;
    margin-bottom:38px;
    text-align:right;
  }
  .page-item .item-intro .back-link{
    margin:0 0 18px;
  }
  .page-item .item-intro h1{
    margin:0 0 10px;
    font-size:15px;
    line-height:1.25;
    font-weight:400;
  }
  .page-item .item-intro .series-statement{
    max-width:none;
    margin:0;
    color:var(--muted);
    font-size:11px;
    line-height:1.5;
    white-space:pre-line;
  }
  .page-item .image-grid{
    width:100%;
    margin:0;
    column-gap:34px !important;
    row-gap:34px !important;
  }
  .page-item .image-card .item-work-meta{
    width:40%;
    margin-left:auto;
    padding-top:10px;
    text-align:right;
  }
  .page-item .item-work-title{
    font-size:12px;
    line-height:1.25;
    font-weight:400;
  }
  .page-item .item-work-caption{
    margin-top:3px;
    color:var(--muted);
    font-size:10.5px;
    line-height:1.35;
    white-space:pre-line;
  }
}

/* Lightbox: centered editorial block, left-aligned reading */
.lightbox-meta{
  width:min(80vw,900px);
  max-width:80vw;
  bottom:18px;
  text-align:left;
  line-height:1.3;
}
.lightbox-title{
  color:#fff;
  font-size:11px;
  font-weight:400;
  line-height:1.25;
}
.lightbox-caption{
  margin-top:3px;
  color:#aaa;
  font-size:10.5px;
  line-height:1.3;
  white-space:pre-line;
}

@media (max-width:800px){
  .page-item .item-work-meta{
    padding-top:9px;
  }
  .page-item .item-work-title{
    font-size:11px;
    line-height:1.25;
  }
  .page-item .item-work-caption{
    margin-top:3px;
    color:var(--muted);
    font-size:10px;
    line-height:1.35;
    white-space:pre-line;
  }
  .lightbox-meta{
    width:min(82vw,640px);
    max-width:82vw;
    bottom:calc(env(safe-area-inset-bottom) + 14px);
  }
}


/* Stage 4 — Curatorial refinement 03: Desktop closure */
:root{--caption-muted:#858585;}
.theme-black{--caption-muted:#929292;}
.page-portfolio .series-meta,
.page-item .item-work-caption{color:var(--caption-muted) !important;}
.lightbox-caption{color:#969696 !important;}

@media (min-width:801px){
  .page-item .item-content{width:min(100%,1360px) !important;margin-left:auto !important;margin-right:auto !important;}
  .page-item .image-grid{width:100% !important;margin-left:auto !important;margin-right:auto !important;justify-content:stretch !important;}
  .page-about .about-layout{max-width:1080px !important;grid-template-columns:280px minmax(0,660px) !important;gap:76px !important;align-items:start;padding-top:116px;}
  .page-about .about-aside{position:sticky;top:116px;align-self:start;}
  .page-about .about-flow{min-width:0;}
  .page-about .about-text{line-height:1.7;}
  .page-about .contact-form{display:grid;gap:13px;margin-top:12px;}
  .page-about .contact-lines{margin-top:18px;gap:8px;}
}
.lightbox-meta{max-width:80vw !important;text-align:left !important;}
@media (max-width:800px){
  .page-about .about-flow{margin-top:36px;}
  .page-about .about-text{margin-top:0;}
  .page-about .contact-form{margin-top:34px;}
}

/* Stage 4 — Curatorial refinement 04: final Desktop geometry + About hierarchy */
@media (min-width:801px){
  /* Center the complete Item image line on the viewport, independently of the intro column. */
  .page-item .image-grid{
    width:100% !important;
    max-width:none !important;
    position:static !important;
    left:auto !important;
    transform:none !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  /* Section titles act as gentle reading pauses, not interface labels. */
  .page-about .about-block{
    margin-bottom:34px;
  }
  .page-about .about-block h2{
    margin:0 0 13px;
    font-size:15px;
    line-height:1.35;
    font-weight:500;
    color:#454545;
  }
}

/* Stage 4 — Curatorial refinement 06: shared exhibition wall for Portfolio and Item */
@media (min-width:801px){
  /*
   * Portfolio's outer content is 1360px including 34px side padding.
   * Give Item the exact same inner wall (1292px max), but center it
   * directly on the viewport so the intro column can never offset it.
   */
  .page-item .image-grid{
    width:min(calc(100vw - 68px),1292px) !important;
    max-width:1292px !important;
    position:relative !important;
    left:50% !important;
    transform:translateX(-50%) !important;
    margin-left:0 !important;
    margin-right:0 !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    column-gap:34px !important;
    row-gap:34px !important;
  }
}

/* Stage 4 — Curatorial refinement 07: one explicit wall for Item */
@media (min-width:801px){
  /*
   * The Item page now uses the same 1360px outer content box and the same
   * 34px side padding as Portfolio. Both the intro and the image grid live
   * inside that single 1292px inner wall.
   */
  .page-item .content,
  .page-item .item-content{
    width:100% !important;
    max-width:1360px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:34px !important;
    padding-right:34px !important;
  }

  .page-item .item-intro{
    width:33.333333% !important;
    margin-left:auto !important;
    margin-right:0 !important;
  }

  .page-item .image-grid{
    width:100% !important;
    max-width:none !important;
    position:static !important;
    left:auto !important;
    right:auto !important;
    transform:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    column-gap:34px !important;
    row-gap:34px !important;
  }
}

/* Stage 4 — Curatorial refinement 08: true Item card parity
 * Item cards are <figure> elements and were still inheriting the browser's
 * default figure margin (1em 40px). Portfolio already resets the nested
 * figure margin. Removing it here makes both grids use the full shared wall.
 */
.page-item .image-card{
  margin:0 !important;
}

/* Stage 4 — Curatorial refinement 09: exact Portfolio / Item scale parity */
@media (min-width:801px){
  /* Portfolio's approved wall remains the reference: 1280px outer box. */
  .page-portfolio .content,
  .page-item .content,
  .page-item .item-content{
    width:100% !important;
    max-width:1280px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:34px !important;
    padding-right:34px !important;
  }

  .page-portfolio .series-grid,
  .page-item .image-grid{
    width:100% !important;
    max-width:none !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    column-gap:34px !important;
  }
}

/* Stage 5 — iPhone as artist notebook.
   Mobile-only curatorial refinement. Desktop geometry remains untouched. */
@media (max-width:800px){
  /* Menu: preserve ES / EN, enlarge navigation and touch targets. */
  .nav-toggle{
    min-width:44px;
    min-height:44px;
    padding:8px;
    font-size:24px;
    line-height:1;
  }
  .mobile-panel a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:44px;
    padding:10px 18px;
    font-size:16px;
    line-height:1.2;
  }
  .menu-open .mobile-panel{
    gap:2px;
    padding:10px 22px 14px;
  }
  .page-now.menu-open::before,
  .page-how.menu-open::before{
    height:calc(var(--header-h) + 194px);
  }

  /* Portfolio: image first, compact wall label aligned right. */
  .page-portfolio .series-grid{
    row-gap:34px !important;
  }
  .page-portfolio .series-card figcaption{
    width:52%;
    margin-left:auto;
    padding-top:9px;
    text-align:right;
  }
  .page-portfolio .series-title{
    font-size:11px;
    line-height:1.2;
    font-weight:400;
  }
  .page-portfolio .series-meta{
    margin-top:2px;
    font-size:9.5px;
    line-height:1.2;
  }

  /* Item: a quiet right-aligned prologue, then editorial pages. */
  .page-item .item-intro{
    width:72%;
    margin:0 0 34px auto;
    text-align:right;
  }
  .page-item .item-intro .back-link{
    margin:0 0 14px;
    font-size:10px;
    line-height:1.2;
  }
  .page-item .item-intro h1{
    margin:0 0 8px;
    font-size:13px;
    line-height:1.25;
    font-weight:400;
  }
  .page-item .item-intro .series-statement{
    max-width:none;
    margin:0;
    font-size:10px;
    line-height:1.45;
    white-space:pre-line;
  }
  .page-item .image-grid{
    row-gap:38px !important;
  }
  .page-item .image-card{
    display:flex;
    flex-direction:column;
  }
  .page-item .image-card .item-work-meta{
    width:100%;
    min-height:76px;
    margin:0;
    padding-top:10px;
    text-align:left;
  }
  .page-item .item-work-title{
    font-size:11px;
    line-height:1.25;
    font-weight:400;
  }
  .page-item .item-work-caption{
    margin-top:3px;
    font-size:10px;
    line-height:1.35;
    white-space:pre-line;
  }

  /* Lightbox: bring the editorial note closer to the photograph. */
  .lightbox-meta{
    bottom:calc(env(safe-area-inset-bottom) + 24px);
  }

  /* About: tighter contact block and Desktop-equivalent hierarchy. */
  .page-about .contact-lines{
    margin-top:14px;
    gap:4px;
    line-height:1.25;
  }
  .page-about .about-block{
    margin-bottom:30px;
  }
  .page-about .about-block h2{
    margin:0 0 11px;
    font-size:15px;
    line-height:1.3;
    font-weight:500;
    color:#454545;
  }
  .page-about .about-link-emphasis{
    color:#575757;
  }
  .theme-black.page-about .about-link-emphasis{
    color:#b8b8b8;
  }
}

/* Stage 5.1 — iPhone final spacing and editorial-width correction.
   Mobile only. Desktop remains untouched. */
@media (max-width:800px){
  /* Portfolio: keep the wall label compact and bring the next image slightly closer. */
  .page-portfolio .series-grid{
    row-gap:22px !important;
  }

  /* Item prologue: the right-aligned text occupies only part of the useful wall,
     leaving the left visual path clear, as on Desktop. */
  .page-item .content,
  .page-item .item-content{
    padding-top:94px !important;
  }
  .page-item .item-intro{
    width:60% !important;
    margin-left:auto !important;
    margin-right:0 !important;
    margin-bottom:30px !important;
  }

  /* One shared editorial wall:
     intro reaches the right edge, photograph spans the full useful width,
     and the editorial note begins at the left edge. */
  .page-item .image-grid{
    width:100% !important;
    max-width:none !important;
    position:static !important;
    left:auto !important;
    transform:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
  .page-item .image-card,
  .page-item .image-card .thumb-frame{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
  .page-item .image-card .item-work-meta{
    width:60% !important;
    max-width:60% !important;
    align-self:flex-start !important;
    margin-left:0 !important;
    margin-right:auto !important;
  }

  /* Lightbox: keep the note visually attached to the photograph. */
  .lightbox-meta{
    bottom:calc(env(safe-area-inset-bottom) + 34px) !important;
  }

  /* Subtle functional emphasis: darker, never louder. */
  .page-about .about-link-emphasis{
    color:#4f4f4f !important;
  }
  .theme-black.page-about .about-link-emphasis{
    color:#c0c0c0 !important;
  }
}

/* v1.0 FINAL STABLE — functional link emphasis on every viewport. */
.page-about .about-link-emphasis{color:#4f4f4f;}
.theme-black.page-about .about-link-emphasis{color:#c0c0c0;}
@media (max-width:800px){.page-item .content,.page-item .item-content{padding-top:84px !important;}}

/* v1.0.1 HOTFIX — iPad landscape Item lightbox.
   Reserve real flow space below the enlarged photograph so the complete
   editorial title and caption always remain beneath the image. Desktop and
   iPhone behavior are unchanged. */
@media (min-width:801px) and (max-width:1366px) and (orientation:landscape) and (max-height:1024px){
  .page-item .lightbox.open{
    flex-direction:column;
    gap:9px;
    padding:48px 72px 20px;
  }
  .page-item .lightbox img{
    max-width:92vw;
    max-height:calc(100dvh - 150px);
    flex:0 1 auto;
  }
  .page-item .lightbox-meta{
    position:static;
    left:auto;
    bottom:auto;
    transform:none;
    flex:0 0 auto;
    margin:0;
  }
}
