/* Publishing Core motion: real CSS pages, moving ink and quiet artwork depth.
   Only transform/opacity animate; JavaScript suspends every offscreen accent. */
.pc-page-book {
  --page-ink: #24473f;
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: 49px;
  height: 34px;
  margin: -8px 0 -8px 16px;
  color: var(--page-ink);
  vertical-align: middle;
  perspective: 180px;
  isolation: isolate;
}
.pc-page-book::after {
  position: absolute;
  z-index: -1;
  right: 1px;
  bottom: -5px;
  left: 1px;
  height: 3px;
  border-radius: 50%;
  background: #152d3426;
  content: "";
  animation: pc-book-shadow 4.6s ease-in-out infinite;
}
.pc-page-book-spread {
  position: absolute;
  inset: 2px 0;
  transform: rotateX(12deg) rotateZ(-5deg);
  transform-style: preserve-3d;
  animation: pc-book-breathe 4.6s ease-in-out infinite;
}
.pc-page-book-leaf {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50%;
  border: 1px solid #a6aa90;
  border-bottom: 3px solid var(--page-ink);
  background: linear-gradient(90deg, #ede5ce, #fff9e8 18%, #fffdf4);
  box-shadow: inset 0 -2px 0 #c8c3ad;
}
.pc-page-book-leaf::after {
  position: absolute;
  top: 7px;
  right: 5px;
  left: 5px;
  height: 12px;
  background: repeating-linear-gradient(180deg, #70807890 0 1px, transparent 1px 4px);
  content: "";
}
.pc-page-book-left { left: 0; border-radius: 4px 1px 1px 5px; transform: rotateY(17deg); transform-origin: right center; }
.pc-page-book-right { right: 0; border-radius: 1px 4px 5px 1px; transform: rotateY(-17deg); transform-origin: left center; }
.pc-page-book-turn {
  z-index: 2;
  right: 0;
  border-radius: 1px 4px 5px 1px;
  border-bottom-color: #ce9b2c;
  transform-origin: left center;
  animation: pc-page-turn 4.6s cubic-bezier(.4,0,.2,1) infinite;
}
.experience-kicker .pc-page-book, .service-hero .pc-page-book { --page-ink: #e4be58; }
.pc-ink-accent { position: relative; }
.pc-ink-accent::after {
  position: absolute;
  z-index: -1;
  right: -.02em;
  bottom: -.055em;
  left: .015em;
  height: .065em;
  min-height: 2px;
  border-radius: 100%;
  background: currentColor;
  opacity: .23;
  pointer-events: none;
  transform-origin: left center;
  content: "";
  animation: pc-ink-write 6.8s cubic-bezier(.4,0,.2,1) infinite;
}
.pc-ink-accent { isolation: isolate; }
.pc-section-ink {
  position: relative;
  display: inline-block;
  width: 38px;
  height: 2px;
  margin-left: 13px;
  overflow: hidden;
  vertical-align: middle;
  background: currentColor;
  opacity: .55;
}
.pc-section-ink::after {
  position: absolute;
  inset: 0;
  background: #f5c84b;
  transform: translateX(-105%);
  content: "";
  animation: pc-ink-travel 4.8s ease-in-out infinite;
}
.pc-motion-art {
  animation: pc-art-depth 8s ease-in-out infinite;
  transform-origin: center center;
}
.pc-motion-cover {
  animation: pc-cover-depth 8s ease-in-out infinite;
  transform-origin: center center;
}
.pc-motion-photo { animation: pc-photo-drift 10s ease-in-out infinite; }
.pc-motion-art:nth-child(even), .pc-motion-photo:nth-child(even) { animation-delay: -3.5s; }
.pc-motion-art:hover, .pc-motion-cover:hover, .pc-motion-photo:hover,
.book-preview-button:focus-visible.pc-motion-art,
.pc-detail-preview:focus-visible .pc-motion-cover { animation-play-state: paused; }
.pc-enter {
  opacity: .01;
  transform: translate3d(0, 24px, 0);
  transition: opacity 650ms ease, transform 750ms cubic-bezier(.2,.65,.25,1);
  transition-delay: var(--pc-enter-delay, 0ms);
}
.pc-enter.pc-entered { opacity: 1; transform: translate3d(0, 0, 0); }
.pc-enter:focus-within { opacity: 1; transform: none; transition-delay: 0ms; }
.pc-motion-idle, .pc-motion-idle::after,
.pc-motion-idle .pc-page-book-spread,
.pc-motion-idle .pc-page-book-turn,
html.pc-motion-sleep .pc-page-book::after,
html.pc-motion-sleep .pc-page-book-spread,
html.pc-motion-sleep .pc-page-book-turn,
html.pc-motion-sleep .pc-ink-accent::after,
html.pc-motion-sleep .pc-section-ink::after,
html.pc-motion-sleep .pc-motion-art,
html.pc-motion-sleep .pc-motion-cover,
html.pc-motion-sleep .pc-motion-photo { animation-play-state: paused; }
@keyframes pc-page-turn {
  0%, 12% { transform: rotateY(-17deg); opacity: 1; }
  52%, 74% { transform: rotateY(-166deg); opacity: 1; }
  78% { transform: rotateY(-166deg); opacity: 0; }
  79% { transform: rotateY(-17deg); opacity: 0; }
  92%, 100% { transform: rotateY(-17deg); opacity: 1; }
}
@keyframes pc-book-breathe {
  0%, 100% { transform: translateY(1px) rotateX(12deg) rotateZ(-5deg); }
  50% { transform: translateY(-3px) rotateX(4deg) rotateZ(3deg); }
}
@keyframes pc-book-shadow { 0%, 100% { transform: scaleX(1); opacity: .7; } 50% { transform: scaleX(.8); opacity: .35; } }
@keyframes pc-ink-write { 0%, 8% { transform: scaleX(.12); opacity: .1; } 42%, 72% { transform: scaleX(1); opacity: .28; } 100% { transform: scaleX(.12); opacity: .1; } }
@keyframes pc-ink-travel { 0%, 12% { transform: translateX(-105%); } 65%, 100% { transform: translateX(105%); } }
@keyframes pc-art-depth {
  0%, 100% { transform: perspective(1000px) translateY(3px) rotateY(-3deg) rotateZ(-1deg); }
  50% { transform: perspective(1000px) translateY(-6px) rotateY(3deg) rotateZ(1deg); }
}
@keyframes pc-cover-depth {
  0%, 100% { transform: perspective(900px) translateY(3px) rotateY(-10deg) rotateZ(-2deg); }
  50% { transform: perspective(900px) translateY(-7px) rotateY(-3deg) rotateZ(0deg); }
}
@keyframes pc-photo-drift { 0%, 100% { transform: translateY(2px) rotate(-.35deg); } 50% { transform: translateY(-5px) rotate(.35deg); } }
@media (max-width: 680px) {
  .pc-page-book { width: 39px; height: 28px; margin-left: 11px; }
  .pc-page-book-leaf::after { top: 6px; right: 4px; left: 4px; height: 10px; }
  .pc-section-ink { width: 25px; margin-left: 9px; }
  .pc-enter { transform: translate3d(0, 16px, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .pc-page-book::after, .pc-page-book-spread, .pc-page-book-turn,
  .pc-ink-accent::after, .pc-section-ink::after,
  .pc-motion-art, .pc-motion-cover, .pc-motion-photo { animation: none !important; }
  .pc-page-book-turn { transform: rotateY(-35deg); }
  .pc-ink-accent::after { transform: none; opacity: .2; }
  .pc-enter { opacity: 1; transform: none; transition: none; }
}
@media print {
  .pc-page-book, .pc-section-ink, .pc-ink-accent::after { display: none; }
  .pc-motion-art, .pc-motion-cover, .pc-motion-photo { animation: none; }
  .pc-enter { opacity: 1; transform: none; }
}
