/* Page integration only. Canvas graphics and all motion are the original component. */
.lab-photo-section{width:calc(100% - 2 * var(--gutter,6vw));max-width:1440px;margin:0 auto;padding:12px 0 66px;scroll-margin-top:145px}
.lab-photo-section>h2{font-size:clamp(30px,4vw,50px);font-weight:400;line-height:1.35;letter-spacing:-.04em;text-align:center;margin:0 0 35px}
.lab-photo-frame{position:relative;height:clamp(430px,44vw,660px);isolation:isolate;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#000}
#lab-photo-gallery-root{position:absolute;inset:0}
.lab-photo-hint{position:absolute;z-index:1000000;bottom:23px;left:50%;transform:translateX(-50%);display:flex;gap:28px;align-items:center;white-space:nowrap;padding:10px 19px;border:1px solid #ffffff24;border-radius:40px;background:#111b;backdrop-filter:blur(14px);color:#dededc;font-size:11px;line-height:1.5;pointer-events:none}
.lab-photo-demo{margin-top:16px;font-size:12px;color:var(--muted);text-align:center;line-height:1.6}
@media(max-width:720px){.lab-photo-section{padding:12px 0 40px;scroll-margin-top:110px}.lab-photo-section>h2{margin-bottom:26px}.lab-photo-frame{height:470px;border-radius:15px}.lab-photo-hint{bottom:18px;font-size:10px;padding:9px 14px}.lab-photo-hint>span:last-child{display:none}.lab-photo-demo{font-size:11px;max-width:290px;margin:14px auto 0}}

/* Fit every original photo inside its tile while keeping its natural ratio.
   The transparent square is only the animation anchor, never an image crop. */
.lab-photo-canvas img{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:auto!important;height:auto!important;max-width:100%;max-height:100%;object-fit:contain!important}
