/* Video Shotcraft: paper-title-card. Words press into place in 9 frames,
   staggered by 4 frames. A coral rule draws over frames 16 through 34.
   Adapted for the selected Common Ground palette and a persistent web section. */
.paper-motion { padding: clamp(48px, 6vw, 84px) 0; background: #f4eddf; text-align: center; }
.paper-motion h2 { max-width: 23ch; margin: 0 auto; font-family: var(--ch-display); font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 600; line-height: 1.12; letter-spacing: -.012em; color: var(--ch-ink); }
.paper-motion h2 span, .paper-motion h2 em { display: inline-block; }
.paper-motion h2 em { color: #91391e; font-weight: inherit; }
.paper-motion h2::after { content: ''; display: block; width: 100px; height: 3px; margin: 25px auto 0; background: var(--ch-orange); }
.paper-motion p { max-width: 55ch; margin: 24px auto 18px; color: var(--ch-body); }
.paper-motion.is-playing h2 span, .paper-motion.is-playing h2 em { animation: paper-impress .3s cubic-bezier(.2,.75,.3,1) both; animation-delay: calc(.133s + var(--word) * .133s); }
.paper-motion.is-playing h2::after { animation: paper-underline .6s cubic-bezier(.3,0,.2,1) .533s both; }
@keyframes paper-impress { from { opacity: 0; transform: scale(1.28); filter: blur(7px); } to { opacity: 1; transform: scale(1); filter: blur(0); } }
@keyframes paper-underline { from { transform: scaleX(0); } to { transform: scaleX(1); } }
/* Shotcraft product-card-progressive-assemble: a single focus frame hops between
   real release rows in 6 frames and holds across the 5-row sequence. */
.ip-table { position: relative; }
.release-focus { position: absolute; left: 0; right: 0; top: 0; border: 1px solid #91391e; border-radius: 8px; opacity: 0; pointer-events: none; transition: translate .2s cubic-bezier(.3,0,.2,1), height .2s cubic-bezier(.3,0,.2,1), opacity .14s ease; }
.release-focus.is-active { opacity: 1; }
/* Shotcraft hashtag-to-pill-materialize: each masthead metadata item pops a
   tinted pill capsule into place in turn and releases back to paper. */
.ip-masthead-meta span { position: relative; display: inline-block; padding: 3px 8px; border-radius: 99px; }
.ip-masthead-meta.is-materializing span { animation: pill-materialize .64s cubic-bezier(.18,1.35,.32,1) calc(.12s + var(--pill) * .28s) both; }
@keyframes pill-materialize { 0%, 100% { background-color: transparent; color: var(--ch-label); transform: scale(1); } 42% { background-color: #1b2f5c; color: #f6efe0; transform: scale(1.06); } 75% { background-color: #1b2f5c; color: #f6efe0; transform: scale(.99); } }
/* Shotcraft riso-print-hits: the Open foundations title runs a brief print
   registration offset and snap while its left coral rule draws downward. */
.ip-foundation.is-hitting h2 { animation: foundation-riso-hit .52s cubic-bezier(.18,1.35,.32,1) .1s both; }
@keyframes foundation-riso-hit { 0%, 100% { text-shadow: none; transform: translateX(0); } 25% { text-shadow: 2px 1px 0 rgba(178,63,29,.42), -1.5px -1px 0 rgba(27,47,92,.28); transform: translateX(2px); } 62% { text-shadow: .6px .4px 0 rgba(178,63,29,.18); transform: translateX(-.6px); } }
@media (prefers-reduced-motion: reduce) { .paper-motion.is-playing h2 span, .paper-motion.is-playing h2 em, .paper-motion.is-playing h2::after, .ip-masthead-meta.is-materializing span, .ip-foundation.is-hitting h2 { animation: none; } .release-focus { display: none; } }
