/* Chapter 2 canvas: fixed, between the hero stage (z 0) and the page (z 2). */
.ptech-bricks-canvas { position: fixed; inset: 0; width: 100vw; height: 100svh; z-index: 1; pointer-events: none; opacity: 0; transition: opacity .35s linear; }
/* Progress rail */
.ptech-rail { position: fixed; right: 1.4rem; top: 50%; transform: translateY(-50%); z-index: 40; display: flex; flex-direction: column; gap: 0; pointer-events: none; opacity: 1; transition: opacity .5s ease; }
.ptech-rail.is-hero { opacity: 0; }
.ptech-rail ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 22px; position: relative; }
.ptech-rail ol::before { content: ""; position: absolute; left: 3px; top: 0; bottom: 0; width: 1px; background: rgba(236,236,232,.16); }
.ptech-rail-progress { position: absolute; left: 3px; top: 0; width: 1px; height: 100%; transform-origin: top; transform: scaleY(var(--rail-p, 0)); background: rgba(236,236,232,.7); }
.ptech-rail a { pointer-events: auto; display: flex; align-items: center; gap: 12px; min-height: 24px; text-decoration: none; color: #8a9099; }
.ptech-rail-tick { width: 7px; height: 7px; border-radius: 50%; background: #08090a; border: 1px solid rgba(236,236,232,.35); transition: background .3s, border-color .3s, transform .3s; }
.ptech-rail-label { font-family: "Soehne Buch", sans-serif; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; opacity: 0; transform: translateX(6px); transition: opacity .3s, transform .3s; white-space: nowrap; order: -1; }
.ptech-rail li.is-active .ptech-rail-tick { background: #ecece8; border-color: #ecece8; transform: scale(1.3); box-shadow: 0 0 12px rgba(236,236,232,.6); }
.ptech-rail li.is-active .ptech-rail-label, .ptech-rail a:hover .ptech-rail-label { opacity: 1; transform: none; }
.ptech-rail ol { align-items: flex-end; }
.ptech-rail a { flex-direction: row-reverse; }
@media (max-width: 991px) { .ptech-rail { right: .9rem; } .ptech-rail-label { display: none; } .ptech-rail ol { gap: 16px; } }
@media (max-width: 767px) { .ptech-rail { display: none; } }
@media (prefers-reduced-motion: reduce) { .ptech-rail-progress { transition: none; } }
/* Words + signoff chapters draw the bricks over the page; About stays underneath the copy. */
.ptech-bricks-canvas.is-over { z-index: 3; }
