/* PiHunter's shared 3D editorial system. All raster art is local and alpha-aware. */
.ph-visual{position:relative;isolation:isolate;display:grid;place-items:center;min-width:0;margin:0;overflow:hidden;border:0;background:radial-gradient(ellipse at 50% 65%,var(--accent-soft),transparent 69%);box-shadow:none}
.ph-visual::before{content:"";position:absolute;inset:14% 17%;border:1px solid var(--line);clip-path:polygon(0 0,18% 0,18% 1%,1% 1%,1% 18%,0 18%,0 0,100% 100%,82% 100%,82% 99%,99% 99%,99% 82%,100% 82%,100% 100%);pointer-events:none;z-index:-1}
.ph-visual img,.prose .ph-visual img,.wiki-doc .ph-visual img,.blog-featured .ph-visual img{display:block;position:relative;width:100%;height:100%;max-width:100%;max-height:100%;min-height:0;aspect-ratio:1;object-fit:contain;margin:0;border:0;border-radius:0;box-shadow:none}
.ph-hero-split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(24px,4vw,64px);align-items:center}
.ph-hero-copy{min-width:0}
.ph-hero-copy h1{font-size:clamp(1.9rem,3.3vw,3.25rem);line-height:1.5;max-width:100%!important;text-wrap:balance;overflow:visible;overflow-wrap:break-word}
.ph-hero-copy .lead{line-height:2;max-width:65ch}
.ph-hero-copy .article-hero-meta{flex-wrap:wrap}
.ph-visual--hero{height:clamp(280px,31vw,400px);width:100%;align-self:center}
.page-hero:has(.ph-hero-split) .fx-chip{display:none}
.ph-visual--card{height:210px;border-bottom:1px solid var(--line);margin:0;background-color:var(--bg)}
.ph-visual--card img{padding:9px}
.blog-featured>.ph-visual{height:100%;min-height:290px}
.ph-story-panel,.ph-section-visual{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(150px,.65fr);gap:clamp(20px,3vw,42px);align-items:center;text-align:start;max-width:none}
.ph-story-panel{margin:44px 0 30px;padding:24px 0;border-block:1px solid var(--line)}
.ph-story-copy{min-width:0}
.prose .ph-story-copy h2{margin-top:0}
.prose .ph-story-copy p:last-child{margin-bottom:0}
.ph-story-panel .ph-visual{height:220px;align-self:center}
.ph-section-visual .ph-visual{height:260px}
.ph-section-visual .ph-story-copy>p{max-width:70ch}
.ph-visual--award{height:215px;margin:-8px -14px 18px}
.awards .award{position:relative;overflow:hidden;padding-top:14px}
.awards .award .medal{position:relative}
.ph-visual--service{height:190px;margin:-18px -16px 16px}
.ph-service-art .ico{display:none}
.ph-service-art{overflow:hidden}
.ph-service-art .ph-visual img,.award .ph-visual img{transition:transform .35s ease}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.ph-service-art:hover .ph-visual img,.award:hover .ph-visual img{transform:translateY(-5px) rotate(-2deg)}}
.ph-visual--compact{height:240px;max-width:380px;margin:26px auto 0}
.e404 .ph-visual--compact{height:180px;margin:0 auto 12px}
.e404:has(.ph-visual) .e404-code{font-size:clamp(4rem,10vw,8rem)}
@media(max-width:900px){
 .ph-hero-split{grid-template-columns:minmax(0,1fr);gap:14px}
 .ph-hero-copy h1{font-size:clamp(1.8rem,5.2vw,2.8rem);line-height:1.5}
 .ph-visual--hero{height:280px;max-width:480px;justify-self:center}
 .ph-story-panel{grid-template-columns:minmax(0,1.4fr) minmax(140px,.6fr);gap:20px}
 .ph-story-panel .ph-visual{height:180px}
 .ph-visual--award{height:190px}
}
@media(max-width:600px){
 .ph-hero-split{gap:8px}
 .ph-visual--hero{height:235px}
 .ph-story-panel,.ph-section-visual{grid-template-columns:minmax(0,1fr);gap:14px}
 .ph-story-panel{margin:32px 0;padding:20px 0}
 .ph-story-panel .ph-visual,.ph-section-visual .ph-visual{height:190px;max-width:310px;width:100%;justify-self:center}
 .ph-visual--card{height:190px}
 .ph-visual--service{height:180px}
 .ph-visual--award{height:180px}
 .blog-featured>.ph-visual{min-height:220px}
 .ph-visual--compact{height:200px}
}
@media(prefers-reduced-motion:reduce){.ph-visual img{transition:none!important}}
