/* Personal page: scroll-driven photo mosaics */
.pv{--hh:0px}
.pz{position:relative;height:300vh}
.pz+.pz{margin-top:clamp(24px,4vw,48px)}
.pzs{position:sticky;top:var(--hh);height:calc(100vh - var(--hh));height:calc(100svh - var(--hh));overflow:hidden;border-radius:20px;background:var(--panel);contain:paint}
.stage{position:absolute;inset:-6% -4%;display:flex;gap:10px;padding:10px;align-items:center;will-change:transform;transform:scale(1.25)}
.pcol{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px;will-change:transform}
.pcol .tile{flex-grow:1!important}
.pz .tile{margin:0;border-radius:14px;overflow:hidden;background:#E9E9E9;aspect-ratio:3/2;flex:none}
.pz .tile:nth-child(even){aspect-ratio:16/10}
.pz .tile img{width:100%;height:100%;object-fit:cover;display:block}
.scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(244,244,244,.8) 0%,rgba(244,244,244,.62) 22%,rgba(244,244,244,.25) 42%,rgba(244,244,244,.12) 60%,rgba(244,244,244,.1)),radial-gradient(ellipse 75% 55% at 0% 100%,rgba(244,244,244,.55),rgba(244,244,244,0) 70%);opacity:0;pointer-events:none}
.ptxt{position:absolute;left:clamp(20px,4vw,56px);right:clamp(20px,4vw,56px);bottom:clamp(24px,5vw,56px);max-width:640px;color:#0F1419;opacity:0;transform:translateY(24px);will-change:transform,opacity}
.ptxt{text-shadow:0 0 18px rgba(244,244,244,.95),0 0 4px rgba(244,244,244,.9)}
.ptxt .n{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#3f4a54}
.ptxt h2{font-size:clamp(40px,6vw,84px);font-weight:600;letter-spacing:-.05em;line-height:.95;margin:12px 0 16px;color:#0F1419;text-wrap:wrap}
.ptxt p{font-size:clamp(15px,1.4vw,18px);line-height:1.5;color:#3f4a54;font-weight:500}
@media (max-width:860px){.pz{height:260vh}.pzs{border-radius:16px}.ptxt{bottom:92px}}
@media (prefers-reduced-motion:reduce){.pz{height:auto}.pzs{position:relative;top:0;height:min(100svh,820px)}.stage{transform:scale(.82)}.scrim,.ptxt{opacity:1;transform:none}}
