/* PG Body — scoped to .pg-body. Ported from DRobb #bodyA / #bodyB (two-column
   prose + decorative animated SVG, mirrored). Reveal `.in` → `.pg-in`. */

.pg-body{ padding:200px 96px; background:var(--pg-bone-warm); border-top:1px solid var(--pg-ink-thread); position:relative; overflow:hidden; }
.pg-body .container{ max-width:1280px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:96px; align-items:center; }
.pg-body .anim-col{ display:flex; align-items:center; justify-content:center; }
.pg-body--map .anim-col{ justify-content:flex-start; }
.pg-body--hemi .text-col{ max-width:540px; justify-self:end; }
.pg-body--map .text-col{ max-width:540px; }

.pg-body .marker{ display:inline-flex; align-items:center; gap:14px; font-family:var(--pg-font-sans); font-size:10px; text-transform:uppercase; letter-spacing:.34em; color:var(--pg-ink-soft); margin-bottom:36px; }
.pg-body .marker .rule{ width:32px; height:1px; background:var(--pg-ink-thread); }
.pg-body .marker em{ color:var(--pg-terracotta); font-style:normal; }
.pg-body .hook{ margin:0 0 56px; font-family:var(--pg-font-display); font-weight:300; font-variation-settings:"opsz" 144; font-size:clamp(30px,3.6vw,46px); line-height:1.16; letter-spacing:-.014em; color:var(--pg-ink); }
.pg-body .hook em{ font-style:italic; color:var(--pg-terracotta); }
.pg-body .prose p{ font-family:var(--pg-font-italic); font-size:20px; line-height:1.66; color:var(--pg-ink); margin-bottom:1.3em; }
.pg-body .prose p:last-child{ margin-bottom:0; }
.pg-body .prose p em{ font-style:italic; color:var(--pg-terracotta); }
.pg-body .prose p strong{ font-weight:400; font-style:italic; background:linear-gradient(transparent 64%, rgba(200,146,61,.22) 64%); padding:0 2px; }

.pg-body .annotation{ position:relative; margin:36px 0; padding:14px 18px 14px 22px; font-family:'Caveat',cursive; font-size:18px; color:var(--pg-ink-soft); line-height:1.45; }
.pg-body .annotation::before{ content:''; position:absolute; left:0; top:14px; bottom:14px; width:1px; background:var(--pg-terracotta); transform-origin:top; transform:scaleY(0); transition:transform 1200ms var(--pg-ease) 600ms; }
.pg-body .annotation.pg-in::before{ transform:scaleY(1); }
.pg-body .annotation .lbl{ display:block; font-family:var(--pg-font-sans); font-size:9px; text-transform:uppercase; letter-spacing:.28em; color:var(--pg-ink-pale); margin-bottom:6px; }
.pg-body .annotation em{ font-style:italic; color:var(--pg-terracotta); }

/* ---- Twin hemispheres (variant hemi) ---- */
.pg-body .twin-hemi{ position:relative; width:100%; max-width:600px; aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; opacity:1; transform:none; transition:none; }
.pg-body .twin-hemi svg{ width:100%; height:auto; display:block; }
.pg-body .twin-hemi .h-outer{ fill:none; stroke:rgba(26,24,22,.45); stroke-width:.9; opacity:0; transition:opacity 2200ms var(--pg-ease) 200ms; }
.pg-body .twin-hemi .h-dash{ fill:none; stroke:rgba(26,24,22,.18); stroke-width:.7; stroke-dasharray:4 5; opacity:0; transition:opacity 2200ms var(--pg-ease) 400ms; }
.pg-body .twin-hemi .h-solid{ fill:none; stroke:rgba(26,24,22,.10); stroke-width:.7; opacity:0; transition:opacity 2200ms var(--pg-ease) 600ms; }
.pg-body .twin-hemi .h-int-merid{ stroke:rgba(26,24,22,.18); stroke-width:.6; fill:none; opacity:0; transition:opacity 2200ms var(--pg-ease) 800ms; }
.pg-body .twin-hemi .h-parallel{ stroke:rgba(26,24,22,.12); stroke-width:.5; fill:none; opacity:0; transition:opacity 2200ms var(--pg-ease) 1000ms; }
.pg-body .twin-hemi.pg-in .h-outer, .pg-body .twin-hemi.pg-in .h-dash, .pg-body .twin-hemi.pg-in .h-solid, .pg-body .twin-hemi.pg-in .h-int-merid, .pg-body .twin-hemi.pg-in .h-parallel{ opacity:1; }
.pg-body .twin-hemi .rot-l{ transform-origin:240px 290px; animation:pg-hemiL 80s linear infinite; }
.pg-body .twin-hemi .rot-r{ transform-origin:480px 290px; animation:pg-hemiR 90s linear infinite; }
@keyframes pg-hemiL{ to{ transform:rotate(360deg); } }
@keyframes pg-hemiR{ to{ transform:rotate(-360deg); } }
.pg-body .twin-hemi .meridian-bar{ stroke:var(--pg-terracotta); stroke-width:1.4; stroke-linecap:round; stroke-dasharray:420; stroke-dashoffset:420; transition:stroke-dashoffset 2400ms var(--pg-ease-soft) 1400ms; }
.pg-body .twin-hemi.pg-in .meridian-bar{ stroke-dashoffset:0; }
.pg-body .twin-hemi .meridian-pulse{ fill:var(--pg-terracotta); opacity:0; r:5; }
.pg-body .twin-hemi.pg-in .meridian-pulse{ animation:pg-meridianPulse 9s linear infinite 4200ms; }
@keyframes pg-meridianPulse{ 0%{ cy:80px; opacity:0; r:4; } 10%{ opacity:.9; r:6; } 50%{ cy:290px; opacity:1; r:7; } 90%{ opacity:.9; r:5; } 100%{ cy:500px; opacity:0; r:3; } }
.pg-body .twin-hemi .center-ring{ fill:none; stroke:var(--pg-terracotta); stroke-width:.7; opacity:0; transition:opacity 1400ms var(--pg-ease) 2200ms; }
.pg-body .twin-hemi.pg-in .center-ring{ opacity:.65; }
.pg-body .twin-hemi .center-dot{ fill:var(--pg-terracotta); opacity:0; transition:opacity 1400ms var(--pg-ease) 2400ms; }
.pg-body .twin-hemi.pg-in .center-dot{ opacity:1; }
.pg-body .twin-hemi .center-label{ position:absolute; bottom:6%; left:50%; transform:translateX(-50%); font-family:'Caveat',cursive; font-size:18px; color:var(--pg-ink-soft); white-space:nowrap; opacity:0; transition:opacity 1600ms var(--pg-ease) 2800ms; }
.pg-body .twin-hemi.pg-in .center-label{ opacity:1; }
.pg-body .twin-hemi .center-label em{ font-style:italic; color:var(--pg-terracotta); }

/* ---- Field map (variant map) ---- */
.pg-body .field-map{ width:100%; max-width:540px; aspect-ratio:3/4; background:var(--pg-bone); border:1px solid var(--pg-ink-thread); padding:32px 32px 22px; position:relative; overflow:hidden; box-shadow:0 1px 0 rgba(255,255,255,.4) inset, 0 30px 60px -28px rgba(26,24,22,.22); opacity:1; transform:none; transition:none; }
.pg-body .field-map::before{ content:''; position:absolute; inset:0; opacity:.5; mix-blend-mode:multiply; pointer-events:none; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><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.18 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>"); }
.pg-body .field-map .map-head{ display:flex; justify-content:space-between; font-family:var(--pg-font-sans); font-size:9px; text-transform:uppercase; letter-spacing:.28em; color:var(--pg-ink-soft); margin-bottom:18px; position:relative; z-index:2; }
.pg-body .field-map .map-head em{ font-family:var(--pg-font-italic); font-style:italic; letter-spacing:0; text-transform:none; color:var(--pg-terracotta); font-size:11px; }
.pg-body .field-map svg.map-art{ width:100%; height:calc(100% - 80px); display:block; position:relative; z-index:2; }
/* A pasted Custom SVG (no head/foot) fills the frame. */
.pg-body .field-map > svg:not(.map-art){ width:100%; height:auto; display:block; position:relative; z-index:2; }
.pg-body .field-map .map-foot{ position:absolute; left:32px; right:32px; bottom:22px; text-align:center; font-family:'Caveat',cursive; font-size:17px; color:var(--pg-ink-soft); border-top:1px dashed var(--pg-ink-thread); padding-top:10px; z-index:2; }
.pg-body .field-map .map-foot em{ font-style:italic; color:var(--pg-terracotta); }
.pg-body .field-map .sea-wave{ fill:none; stroke:var(--pg-ink-pale); stroke-width:.5; stroke-linecap:round; opacity:.55; }
.pg-body .field-map .map-label{ font-family:'Instrument Serif'; font-style:italic; fill:var(--pg-terracotta); font-size:9px; }
.pg-body .field-map .map-label.italic{ font-family:'Instrument Serif'; font-style:italic; fill:var(--pg-terracotta); font-size:12px; }
.pg-body .coast-main, .pg-body .coast-secondary, .pg-body .island-shape, .pg-body .route-path, .pg-body .meridian-line{ fill:none; stroke-linecap:round; stroke-linejoin:round; }
.pg-body .coast-main{ stroke:var(--pg-ink); stroke-width:1.1; stroke-dasharray:1200; stroke-dashoffset:1200; transition:stroke-dashoffset 3400ms var(--pg-ease-soft) 200ms; }
.pg-body .island-shape{ stroke:var(--pg-ink); stroke-width:.9; stroke-dasharray:480; stroke-dashoffset:480; transition:stroke-dashoffset 2400ms var(--pg-ease-soft) 1400ms; }
.pg-body .route-path{ stroke:var(--pg-terracotta); stroke-width:.9; stroke-dasharray:5 4; opacity:0; transition:opacity 2400ms var(--pg-ease) 1800ms; }
.pg-body .meridian-line{ stroke:var(--pg-ink-line); stroke-width:.4; stroke-dasharray:1 4; opacity:.7; }
.pg-body .field-map .start-mark{ opacity:0; transition:opacity 1400ms var(--pg-ease) 2400ms; }
.pg-body .field-map.pg-in .coast-main, .pg-body .field-map.pg-in .island-shape{ stroke-dashoffset:0; }
.pg-body .field-map.pg-in .route-path, .pg-body .field-map.pg-in .start-mark{ opacity:1; }
.pg-body .map-compass{ opacity:0; transition:opacity 1200ms var(--pg-ease) 2400ms; }
.pg-body .field-map.pg-in .map-compass{ opacity:1; }
.pg-body .map-needle{ transform-origin:50px 50px; transform:rotate(-92deg); transition:transform 2800ms cubic-bezier(.22,1,.18,1) 2800ms; }
.pg-body .field-map.pg-in .map-needle{ transform:rotate(0deg); }

@media (prefers-reduced-motion: reduce){
  .pg-body .twin-hemi .rot-l, .pg-body .twin-hemi .rot-r, .pg-body .twin-hemi.pg-in .meridian-pulse{ animation:none; }
  .pg-body .twin-hemi .meridian-bar, .pg-body .coast-main, .pg-body .island-shape{ stroke-dashoffset:0; }
  .pg-body .twin-hemi [class^="h-"], .pg-body .twin-hemi .center-ring, .pg-body .twin-hemi .center-dot, .pg-body .twin-hemi .center-label, .pg-body .route-path, .pg-body .map-compass, .pg-body .field-map .start-mark{ opacity:1; }
  .pg-body .map-needle{ transform:rotate(0deg); }
}
@media (max-width:920px){
  .pg-body{ padding:120px 24px; }
  .pg-body .container{ grid-template-columns:1fr; gap:56px; }
  .pg-body--hemi .text-col, .pg-body--map .text-col{ justify-self:start; max-width:none; }
  .pg-body--hemi .anim-col{ order:2; }
}
