/* PG Closing — scoped to .pg-closing. Ported from the DRobb terracotta closing
   plate. The section uses .pg-reveal only to receive .pg-in; its own fade is
   neutralised so the children run the staged choreography. */

.pg-closing.pg-reveal{ opacity:1; transform:none; filter:none; transition:none; will-change:auto; }
.pg-closing{ background:var(--pg-terracotta); color:var(--pg-bone); padding:180px 56px; position:relative; overflow:hidden; }
.pg-closing::before{ content:''; position:absolute; inset:0; pointer-events:none; background:radial-gradient(ellipse at 30% 50%, rgba(244,239,230,.18) 0%, transparent 60%); }
.pg-closing .container{ position:relative; z-index:2; max-width:1100px; margin:0 auto; text-align:center; }

.pg-closing .statement{ font-family:var(--pg-font-display); font-weight:300; font-variation-settings:"opsz" 144; font-size:clamp(56px,8.4vw,132px); line-height:.94; letter-spacing:-.026em; color:var(--pg-bone); text-transform:lowercase; margin-bottom:64px; }
.pg-closing .statement em{ font-style:italic; color:var(--pg-cl-accent, inherit); }
.pg-closing .statement .line{ display:block; overflow:hidden; padding-bottom:.22em; margin-bottom:-.18em; line-height:1.0; }
.pg-closing .statement .line > span{ display:inline-block; transform:translateY(115%); transition:transform 1800ms var(--pg-ease); padding:0 .14em .05em .04em; }
.pg-closing.pg-in .statement .line:nth-child(1) > span{ transform:translateY(0); transition-delay:300ms; }
.pg-closing.pg-in .statement .line:nth-child(2) > span{ transform:translateY(0); transition-delay:900ms; }
.pg-closing .statement .reveal-rule{ display:block; width:88px; height:1px; background:rgba(244,239,230,.7); margin:36px auto 0; transform:scaleX(0); transform-origin:center; transition:transform 1600ms var(--pg-ease) 2200ms; }
.pg-closing.pg-in .statement .reveal-rule{ transform:scaleX(1); }

.pg-closing .signoff{ font-family:var(--pg-font-italic); font-style:italic; font-size:clamp(26px,2.4vw,36px); line-height:1.45; color:rgba(244,239,230,.96); display:inline-flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:center; opacity:0; transform:translateY(16px); transition:opacity 1400ms var(--pg-ease) 2800ms, transform 1400ms var(--pg-ease) 2800ms; }
.pg-closing.pg-in .signoff{ opacity:1; transform:translateY(0); }
.pg-closing .signoff .compass-mark{ width:22px; height:22px; color:var(--pg-bone); display:inline-block; vertical-align:-3px; opacity:0; transform:rotate(-30deg); transition:opacity 1200ms var(--pg-ease) 3800ms, transform 2000ms var(--pg-ease) 3800ms; }
.pg-closing.pg-in .signoff .compass-mark{ opacity:1; transform:rotate(0); }

.pg-closing .tag-line{ margin-top:44px; font-family:var(--pg-font-sans); font-weight:400; text-transform:uppercase; letter-spacing:.16em; font-size:11px; color:rgba(244,239,230,.8); opacity:0; transition:opacity 1800ms var(--pg-ease) 3600ms, letter-spacing 2200ms var(--pg-ease) 3600ms; }
.pg-closing.pg-in .tag-line{ opacity:1; letter-spacing:.32em; }

@media (prefers-reduced-motion: reduce){
  .pg-closing .statement .line > span{ transform:none; transition:none; }
  .pg-closing .statement .reveal-rule{ transform:scaleX(1); }
  .pg-closing .signoff, .pg-closing .signoff .compass-mark, .pg-closing .tag-line{ opacity:1; transform:none; letter-spacing:.32em; transition:none; }
}
@media (max-width:768px){ .pg-closing{ padding:120px 24px; } }

/* ── Photo variant — full-bleed image closing ("the road is open."). ───────── */
.pg-closing--photo{ background:var(--pg-ink); padding:0; min-height:80vh; display:flex; }
.pg-closing--photo::before{ display:none; }
.pg-closing--photo .photo{ position:absolute; inset:-4%; background-size:cover; background-position:center; background-color:var(--pg-ink); filter:saturate(.72) contrast(1.05) brightness(.88) sepia(.22); animation:pg-cl-kenburns 40s var(--pg-ease-soft) infinite alternate; }
.pg-closing--photo .photo::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(26,24,22,.55) 0%,rgba(26,24,22,.30) 50%,rgba(26,24,22,.75) 100%); }
@keyframes pg-cl-kenburns{ 0%{ transform:scale(1.02) translate3d(1%,0,0); } 100%{ transform:scale(1.10) translate3d(-2%,1%,0); } }
.pg-closing--photo .grain{ position:absolute; inset:0; pointer-events:none; opacity:.42; mix-blend-mode:overlay; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.45 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>"); }
.pg-closing--no-grain .grain{ display:none; }
.pg-closing--photo .stage{ position:relative; z-index:2; width:100%; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:120px 56px; text-align:center; }
.pg-closing--photo .eyebrow{ display:flex; align-items:center; gap:14px; font-family:var(--pg-font-sans); font-weight:300; text-transform:uppercase; letter-spacing:.32em; font-size:10px; color:rgba(244,239,230,.78); margin-bottom:32px; }
.pg-closing--photo .eyebrow .rule{ width:48px; height:1px; background:rgba(244,239,230,.4); }
.pg-closing--photo .statement{ margin-bottom:0; max-width:14ch; }
.pg-closing--photo .statement em{ color:var(--pg-cl-accent, var(--pg-ochre)); }
.pg-closing--photo .below{ margin-top:48px; font-family:var(--pg-font-italic); font-style:italic; font-size:21px; color:rgba(244,239,230,.88); max-width:32ch; line-height:1.55; opacity:0; transform:translateY(14px); transition:opacity 1600ms var(--pg-ease) 2500ms, transform 1600ms var(--pg-ease) 2500ms; }
.pg-closing--photo.pg-in .below{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce){ .pg-closing--photo .photo{ animation:none; } .pg-closing--photo .below{ opacity:1; transform:none; transition:none; } }
@media (max-width:768px){ .pg-closing--photo .stage{ padding:96px 24px; } }
