.p3-showcase{overflow:visible;position:relative;width:92%;max-width:1440px;aspect-ratio:2048/1152;margin:64px auto 80px}
.p3-piece{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);margin:0}
.p3-piece:focus-within,.p3-piece:hover{z-index:2}
.p3-hover-surface{position:relative;width:100%;height:100%;transition:transform 400ms cubic-bezier(.2,.7,.3,1),filter 400ms ease;transform-origin:center;outline:none}
.p3-piece svg{display:block;width:100%;height:100%}
.p3-detail{position:absolute;outline:none;transition:transform 350ms cubic-bezier(.2,.7,.3,1);border-radius:12px}
.p3-detail svg{overflow:visible}.p3-detail-image{transition:transform 650ms cubic-bezier(.2,.7,.3,1)}
.p3-detail:focus-visible,.p3-hover-surface:focus-visible{outline:2px solid #657368;outline-offset:4px;border-radius:16px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .p3-hover-surface:hover{transform:perspective(900px) translateY(-4px) scale(1.015) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));filter:drop-shadow(0 8px 6px #34403714);transition-duration:250ms}
 .p3-detail-papers:hover .p3-detail-image{transform:scale(1.05)}
 .p3-detail-notes:hover{transform:translateY(-6px) rotate(var(--tilt));z-index:2}
}
@media(prefers-reduced-motion:no-preference){
 .p3-hover-surface:focus-visible{transform:translateY(-4px) scale(1.015);filter:drop-shadow(0 8px 6px #34403714)}
 .p3-detail-papers:focus-visible .p3-detail-image{transform:scale(1.05)}
 .p3-detail-notes:focus-visible{transform:translateY(-6px) rotate(var(--tilt));z-index:2}
}
@media(max-width:650px){.p3-showcase{position:static;display:grid;grid-template-columns:1fr;gap:20px;width:88%;aspect-ratio:auto;margin:40px auto 48px}.p3-piece{position:relative;left:auto;top:auto;width:100%;height:auto;aspect-ratio:var(--ratio)}.p3-color-icons{width:72%;justify-self:center;order:9}.p3-writing{width:78%;justify-self:center}}
@media(prefers-reduced-motion:reduce){.p3-piece{opacity:1!important;transform:none!important}.p3-hover-surface,.p3-detail,.p3-detail-image{transition:none}}
