/* Photo-led closing section, inspired by MONOLOG. Existing SHOU palette and fonts. */
.footer.footer-photo { padding: 0; background: var(--bg); scroll-margin-top: 80px; }
.footer-visual { position: relative; isolation: isolate; display: grid; place-items: center; overflow: hidden; width: 100%; min-width: 0; min-height: 650px; aspect-ratio: 16 / 9; padding: 64px 6%; color: #faf8f4; background: #555; view-timeline: --footer-photo block; }
.footer-photo-image { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; object-position: 50% 65%; }
.footer-visual::before { content: ''; position: absolute; inset: 0; z-index: -2; pointer-events: none; background: linear-gradient(180deg,#0004 0%,#0002 45%,#0006 100%); }
.footer-visual-body { width: 100%; min-width: 0; max-width: 1400px; display: flex; flex-direction: column; align-items: center; gap: 38px; padding-bottom: 36px; }
.footer-title { width: min(100%,1120px); display: flex; flex-direction: column; font: 600 clamp(66px,8.7vw,164px)/1.08 'Unbounded',var(--display); letter-spacing: -.065em; text-transform: uppercase; text-shadow: 0 2px 24px #0002; }
.footer-title-line { display: block; overflow: hidden; padding: .04em .07em .12em; margin-bottom: -.1em; }
.footer-title-line:nth-child(1) { align-self: flex-start; }
.footer-title-line:nth-child(2) { align-self: center; }
.footer-title-line:nth-child(3) { align-self: flex-end; }
.footer-word { display: inline-flex; align-items: center; gap: .14em; transition: transform 1.05s cubic-bezier(.22,1,.36,1),opacity .7s; }
.footer-title-line:nth-child(2) .footer-word { transition-delay: .12s; }
.footer-title-line:nth-child(3) .footer-word { transition-delay: .24s; }
.footer-title-arrow { font-size: .72em; width: 1em; height: 1em; flex: none; color: var(--accent); }
/* User's animated-button reference: white rectangle and a diagonal colour sweep. */
.footer-invite { position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; overflow: hidden; min-height: 56px; max-width: 100%; padding: 15px 28px; border: 1px solid #f5f3ef; border-radius: 4px; background: #f5f3ef; color: #101112; font-family: inherit; font-size: 17px; font-weight: 500; line-height: 1.25; white-space: nowrap; box-shadow: 0 5px 20px #0002; }
.footer-invite-label { position: relative; }
.footer-invite-fill { position: absolute; inset: 0; display: grid; place-items: center; background: #97563f; color: #fff; clip-path: polygon(0 100%,0 100%,0 100%); transition: clip-path .5s cubic-bezier(.22,.61,.36,1); pointer-events: none; }
.footer-invite-fill > span { font: inherit; }
.footer-invite:is(:hover,:focus-visible,:active) .footer-invite-fill { clip-path: polygon(0 -200%,200% 100%,0 100%); }
.footer-invite:focus-visible { outline: 2px solid #faf8f4; outline-offset: 6px; }
.footer-photo-caption { position: absolute; right: 4%; bottom: 32px; font-size: 13px; line-height: 1.6; text-align: right; color: #f0eeeb; }
.footer-corner { position: absolute; width: 28px; height: 28px; color: #f0eeeb90; pointer-events: none; }
.corner-top { left: 32px; top: 32px; border-top: 1px solid; border-left: 1px solid; }
.corner-bottom { right: 32px; bottom: 32px; border-right: 1px solid; border-bottom: 1px solid; }
.footer-asterisk { position: absolute; right: 5%; top: 48px; color: var(--accent); font: 400 clamp(56px,5vw,88px)/1 var(--display); pointer-events: none; transform: translate(var(--decor-x,0px),var(--decor-y,0px)); transition: transform .6s cubic-bezier(.22,1,.36,1); }
/* Editorial directory: broad navigation rows, compact personal details. */
.footer-directory { --footer-highlight: #c9c8c5; color: #d6d5d2; display: grid; grid-template-columns: minmax(0,1.65fr) minmax(0,.65fr) minmax(0,.6fr); align-items: start; gap: 6%; min-height: 660px; padding-block: 54px 100px; }
.footer-directory h3 { margin: 0 0 36px; font-size: 11px; font-weight: 400; line-height: 1.5; letter-spacing: .03em; text-transform: uppercase; color: var(--muted); }
.footer-directory h3::before { content: '('; }
.footer-directory h3::after { content: ')'; }
.footer-directory .footer-nav h3 { display: flex; align-items: center; gap: 10px; margin-bottom: 36px; font: 600 15px/1.5 var(--font); text-transform: none; letter-spacing: -.02em; color: var(--text); }
.footer-directory .footer-nav h3::before { content: ''; width: 9px; height: 9px; border-radius: 50%; background: var(--accent); }
.footer-directory .footer-nav h3::after { content: none; }
.footer-directory ul { list-style: none; padding: 0; margin: 0; }
.footer-directory a { max-width: 100%; }
.footer-nav a { position: relative; isolation: isolate; display: flex; align-items: center; justify-content: space-between; gap: 20px; width: 100%; min-height: 78px; padding: 8px 12px 12px 0; border-bottom: 1px solid #f0eeeb12; font: 600 clamp(36px,3.65vw,62px)/1.12 var(--font); letter-spacing: -.055em; }
.footer-nav a::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--footer-highlight); transform: scaleY(0); transform-origin: bottom; transition: transform .5s cubic-bezier(.16,1,.35,1); }
.footer-link-label { display: block; transition: transform .65s cubic-bezier(.16,1,.35,1),color .25s; }
.footer-row-arrow { flex: none; width: .65em; height: .65em; opacity: 0; transform: translateX(-12px) rotate(45deg); transition: transform .65s cubic-bezier(.16,1,.35,1),opacity .25s; }
.footer-nav a:focus-visible { outline-offset: 4px; }
.footer-nav a:focus-visible::before { transform: scaleY(1); }
.footer-nav a:focus-visible .footer-link-label { transform: translateX(12px); color: var(--bg); }
.footer-nav a:focus-visible .footer-row-arrow { opacity: 1; transform: translateX(-16px) rotate(45deg); color: var(--bg); }
@media (hover:hover) and (pointer:fine) {
  .footer-nav a:hover::before { transform: scaleY(1); }
  .footer-nav a:hover .footer-link-label { transform: translateX(12px); color: var(--bg); }
  .footer-nav a:hover .footer-row-arrow { opacity: 1; transform: translateX(-16px) rotate(45deg); color: var(--bg); }
}
.footer-email { min-width: 0; }
.footer-email p { font-size: 15px; line-height: 1.6; color: var(--muted); }
.footer-email .footer-person { margin: 0 0 14px; font-size: 18px; font-weight: 600; color: var(--text); }
.footer-email-link { display: inline-block; font-size: clamp(14px,1.15vw,18px); font-weight: 500; line-height: 1.6; letter-spacing: -.025em; text-decoration: underline; text-decoration-color: #f0eeeb65; text-underline-offset: 4px; overflow-wrap: anywhere; transition: color .25s,text-decoration-color .25s; }
.footer-email-link:is(:hover,:focus-visible) { color: var(--accent); text-decoration-color: var(--accent); }
.footer-email .footer-bio { margin-top: 26px; }
.footer-pione-link { display: inline-flex; align-items: center; gap: 20px; margin-top: 54px; padding: 10px 0; }
.footer-pione-link img { width: 100px; height: auto; }
.footer-pione-link .icon-arrow { width: 14px; height: 14px; color: var(--muted); transition: transform .3s,color .3s; }
.footer-pione-link:is(:hover,:focus-visible) .icon-arrow { color: var(--accent); transform: translate(2px,-2px); }
.footer-socials ul { display: grid; gap: 6px; }
.footer-socials a { display: inline-flex; align-items: center; gap: 6px; font: 600 clamp(20px,1.65vw,28px)/1.35 var(--font); letter-spacing: -.045em; transition: color .25s; }
.footer-socials .icon-arrow { width: .55em; height: .55em; transition: transform .35s cubic-bezier(.16,1,.35,1); }
.footer-socials a:is(:hover,:focus-visible) { color: var(--accent); }
.footer-socials a:is(:hover,:focus-visible) .icon-arrow { transform: translate(3px,-3px); }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-block: 28px; border-top: 1px solid var(--line); }
.footer-bottom > span { font-size: 12px; color: var(--muted); }
.footer-signature { font: 700 36px/.9 var(--display); letter-spacing: -.07em; }
.footer-signature > span { color: var(--accent); margin-left: 2px; }
.footer-top-link { display: flex; align-items: center; gap: 22px; font-size: 13px; }
.footer-top-link > span { font-size: 22px; color: var(--accent); transition: transform .25s; }
.footer-top-link:hover > span { transform: translateY(-4px); }
/* Progressive enhancement: text is visible when scripts or motion are unavailable. */
.footer-visual[data-motion]:not(.is-in-view) .footer-word { transform: translateY(115%); opacity: 0; }
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    .footer-photo-image { animation: footer-photo-drift linear both; animation-timeline: --footer-photo; animation-range: entry 0% exit 100%; }
  }
}
@keyframes footer-photo-drift { from { transform: scale(1.08) translateY(-1%); } to { transform: scale(1.01) translateY(1%); } }
@media (max-width: 1023px) {
  .footer-visual { min-height: 610px; padding-inline: 5%; }
  .footer-title { font-size: clamp(64px,8.7vw,102px); }
  .footer-directory { grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); gap: 44px 8%; min-height: 0; padding-block: 44px 64px; }
  .footer-nav { grid-row: 1 / 3; }
  .footer-nav a { font-size: clamp(32px,4.5vw,46px); min-height: 70px; }
  .footer-socials { grid-column: 2; }
  .footer-pione-link { margin-top: 28px; }
}
@media (max-width: 767px) {
  .footer-visual { aspect-ratio: auto; min-height: 650px; padding: 72px 20px 128px; align-items: start; }
  .footer-photo-image { object-position: 34% center; }
  .footer-visual::before { background: linear-gradient(#0005,#0002 60%,#0005); }
  .footer-visual-body { gap: 32px; padding: 0; }
  .footer-title { font-size: clamp(36px,10.7vw,82px); line-height: 1.12; }
  .footer-title-line:nth-child(1) { align-self: flex-start; }
  .footer-title-line:nth-child(2) { align-self: flex-start; padding-left: 10%; }
  .footer-title-line:nth-child(3) { align-self: flex-end; }
  .footer-invite { min-height: 52px; font-size: 15px; padding: 13px 24px; }
  .footer-photo-caption { right: 24px; bottom: 30px; font-size: 12px; }
  .footer-asterisk { right: 24px; top: 24px; font-size: 38px; }
  .corner-top { left: 20px; top: 24px; width: 20px; height: 20px; }
  .corner-bottom { right: 18px; bottom: 24px; width: 20px; height: 20px; }
  .footer-directory { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 38px 24px; padding-block: 36px 52px; }
  .footer-nav { grid-column: 1 / -1; grid-row: auto; }
  .footer-directory h3 { font-size: 10px; margin-bottom: 24px; }
  .footer-directory .footer-nav h3 { margin-bottom: 24px; font-size: 14px; }
  .footer-nav a { font-size: clamp(32px,8.7vw,50px); min-height: 64px; padding-block: 10px; }
  .footer-row-arrow { opacity: 1; transform: rotate(45deg); color: var(--muted); }
  .footer-email { grid-column: 1; }
  .footer-socials { grid-column: 2; }
  .footer-email .footer-person { font-size: 16px; }
  .footer-email-link { font-size: 13px; }
  .footer-email p { font-size: 12px; }
  .footer-email .footer-bio { margin-top: 20px; }
  .footer-pione-link { margin-top: 24px; gap: 12px; }
  .footer-pione-link img { width: 82px; }
  .footer-socials a { font-size: 20px; }
  .footer-bottom { display: grid; grid-template-columns: 1fr 1fr; padding-block: 24px; gap: 24px; }
  .footer-signature { font-size: 32px; }
  .footer-top-link { justify-self: end; grid-column: 2; grid-row: 1; }
  .footer-bottom > span { grid-column: 1 / -1; font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .footer-photo *, .footer-photo *::before, .footer-photo *::after { animation: none !important; transition: none !important; }
  .footer-visual[data-motion] .footer-word { opacity: 1; transform: none; }
  .footer-asterisk { transform: none; }
}

