.pp-header{padding:0 0 2rem}.pp-logo{display:block;height:2.5rem;width:auto;object-fit:contain;margin-bottom:1.25rem}.pp-badge{display:inline-block;font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;padding:.15em .5em;margin-bottom:1rem}.pp-badge--live{background:#228b221a;color:#228b22}.pp-badge--in-progress{background:#ff4f1f1a;color:var(--c-accent)}.pp-badge--concept,.pp-badge--paused{background:#0a09080f;color:var(--c-muted)}.pp-badge--discontinued{background:#0a09080a;color:var(--c-faint)}.pp-name{font-family:JetBrains Mono,Courier New,monospace;font-weight:400;font-size:1.6rem;line-height:1.2;color:var(--c-ink);margin:0 0 .5rem}.pp-tagline{font-size:.8rem;color:var(--c-muted);margin:0 0 1.5rem}.pp-meta{display:flex;flex-wrap:wrap;gap:2rem;align-items:baseline}.pp-meta-item{display:flex;flex-direction:column;gap:.15rem}.pp-meta-label{font-size:.55rem;color:var(--c-muted);letter-spacing:.1em;text-transform:uppercase}.pp-meta-value{font-size:.75rem;color:var(--c-ink)}.pp-url{font-size:.75rem;color:var(--c-accent);text-decoration:none;border-bottom:1px solid rgba(255,79,31,.3);transition:border-color .15s ease}.pp-url:hover{border-color:var(--c-accent)}.pp-rule{height:1px;background:#0a09081f;margin:0}.pp-metrics{display:flex;flex-wrap:wrap;gap:0;margin:0;border-top:1px solid rgba(10,9,8,.12);border-left:1px solid rgba(10,9,8,.12);max-width:760px}.pp-metric{flex:1;min-width:8rem;padding:1.25rem 1.5rem 1rem;border-right:1px solid rgba(10,9,8,.12);border-bottom:1px solid rgba(10,9,8,.12)}.pp-metric-val{font-weight:400;font-size:1.8rem;line-height:1;color:var(--c-accent);display:block;margin-bottom:.35rem}.pp-metric-lbl{font-size:.58rem;color:var(--c-muted);letter-spacing:.08em;text-transform:uppercase;line-height:1.4}.pp-section{padding:2rem 0}.pp-section-label{font-size:.6rem;color:var(--c-muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.75rem;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#0a09084d}.pp-stack{display:flex;flex-direction:column;gap:.75rem}.pp-stack-row{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}.pp-stack-cat{font-size:.58rem;color:var(--c-muted);letter-spacing:.08em;text-transform:uppercase;min-width:5rem;flex-shrink:0}.pp-tags{display:flex;flex-wrap:wrap;gap:.4rem}.pp-tag{font-family:JetBrains Mono,Courier New,monospace;font-size:.62rem;color:var(--c-muted);border:1px solid rgba(10,9,8,.15);padding:.2em .6em;letter-spacing:.04em}:root[data-theme=dark] .pp-tag{border-color:#ede9e12e}.pp-desc p{font-size:.82rem;line-height:1.9;color:var(--c-ink);margin:0 0 1.25rem}.pp-desc p:last-child{margin-bottom:0}.pp-features{display:flex;flex-direction:column;gap:1.25rem}.pp-feature{border-left:2px solid rgba(10,9,8,.12);padding:.25rem 0 .25rem 1rem}.pp-feature-title{font-size:.75rem;font-weight:400;color:var(--c-ink);margin-bottom:.25rem}.pp-feature-desc{font-size:.72rem;color:var(--c-muted);line-height:1.7}.pp-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;max-width:860px}.pp-shot{cursor:pointer;line-height:0}.pp-shot img{width:100%;height:auto;display:block;object-fit:cover;transition:opacity .15s ease}.pp-shot:hover img{opacity:.85}.pp-shot-caption{font-size:.6rem;color:var(--c-muted);letter-spacing:.04em;padding-top:.4rem;line-height:1.5}.pp-related-list{display:flex;flex-direction:column;gap:.5rem}.pp-related-list{display:flex;flex-direction:column;gap:0}.pp-related-link{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.75rem 0;border-bottom:1px solid rgba(10,9,8,.08);text-decoration:none;transition:opacity .1s ease}.pp-related-link:hover{opacity:.7}.pp-related-title{font-size:.75rem;color:var(--c-accent);font-weight:400}.pp-related-date{font-size:.62rem;color:var(--c-muted);flex-shrink:0}.pp-charts-row{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem}.pp-chart-wrap{flex:0 0 calc(50% - .5rem);min-width:280px;background:#fff6;padding:1.5rem}.pp-chart-title{font-size:.6rem;color:var(--c-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:1rem}.pp-chart-wrap canvas{max-height:280px}
