/* Kyle's Cards approved studio theme — original photo pixels with alpha masks. */
.studio-photo{display:block;position:relative;isolation:isolate;width:100%;aspect-ratio:4/5;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#31594f 0%,#193b34 52%,#0d2520 100%);border-radius:5px;flex:none}
.studio-photo:before{content:"";position:absolute;inset:3%;border:1px solid #e8dcc08c;pointer-events:none;z-index:2}
.studio-brand{position:absolute;top:5.1%;left:10%;right:10%;z-index:2;color:#efe4ca;font:500 clamp(7px,1vw,13px)/1.2 Georgia,serif;letter-spacing:.25em;text-align:center;white-space:nowrap}
.studio-rule{position:absolute;bottom:5.5%;left:19%;right:19%;height:1px;background:#e8dcc08c;z-index:2}
.studio-photo>img{position:absolute!important;left:var(--studio-left)!important;top:var(--studio-top)!important;width:var(--studio-width)!important;height:var(--studio-height)!important;max-width:none!important;max-height:none!important;object-fit:fill!important;margin:0!important;transform:none!important;filter:none!important;mix-blend-mode:normal!important;mask-size:100% 100%;-webkit-mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.card-visual:has(.studio-photo){padding:0;aspect-ratio:4/5;border:0;background:#193b34}
.card-visual:has(.studio-photo) .badge{top:12%;left:4%;z-index:3;font-size:8px;background:#faf7edeb}
.photo-open:has(.studio-photo){display:block;padding:0;border:0;min-height:0;background:none;width:min(100%,480px);margin:auto}
.photo-choices .studio-photo{width:48px}.photo-choices .studio-brand,.photo-choices .studio-rule{display:none}.photo-choices button:has(.studio-photo){padding:0;background:#193b34}
.cart-line>.studio-photo{width:65px}.cart-line .studio-brand,.cart-line .studio-rule{display:none}
.photo-frame>.studio-photo{width:min(100%,calc((94dvh - 118px)*.8));max-width:780px;margin:auto}
.photo-viewer.actual-size .photo-frame>.studio-photo{width:var(--studio-original-width);height:var(--studio-original-height);max-width:none;aspect-ratio:auto}
.photo-viewer.actual-size .studio-photo>img{left:0!important;top:0!important;width:100%!important;height:100%!important}
.photo-viewer.actual-size .studio-brand,.photo-viewer.actual-size .studio-rule,.photo-viewer.actual-size .studio-photo:before{display:none}

/* Uniform framing and measured deskew; source photos remain unchanged. */
.studio-photo>img{transform:rotate(var(--studio-angle,0deg))!important;transform-origin:var(--studio-origin,50% 50%)!important}
.studio-contained>img{left:8%!important;top:15%!important;width:84%!important;height:78%!important;object-fit:contain!important;transform:none!important}
.card-visual{aspect-ratio:4/5}
.card-visual:hover img{transform:none}
.photo-viewer.actual-size .studio-photo>img{transform:none!important}
.hero-cards{gap:14px}
.hero-cards img,.hero-cards img+img{position:relative;transform:none;max-width:42%;object-fit:contain}

/* Four measured holder edges map to a rectangle; photograph detail is retained. */
.studio-photo{background:radial-gradient(ellipse at 50% 49%,#235448 0%,#103b30 52%,#03251d 100%)}
.studio-photo>.studio-plane{display:block;position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.studio-plane img{border-radius:0!important;box-shadow:none!important;mix-blend-mode:normal!important}
.card-visual:has(.studio-photo) .badge{display:none}
.studio-photo .studio-brand:before,.studio-photo .studio-brand:after{content:"";display:inline-block;width:12%;height:1px;background:#e8dcc08c;vertical-align:middle;margin:0 5%}
.studio-brand{left:4%;right:4%;letter-spacing:.22em}
.photo-viewer.actual-size .studio-perspective{width:1080px;height:1350px;aspect-ratio:4/5}
.hero-cards>.studio-photo{width:38%;max-width:190px;box-shadow:0 14px 25px #193b3424}
.hero-cards:has(.studio-photo){padding-bottom:28px}

/* Render perspective photos as HTML so masked projective transforms remain visible. */
.studio-photo{container-type:inline-size}
.studio-html-plane{position:absolute;display:block;left:0;top:0;width:1080px;height:1350px;transform-origin:0 0;transform:scale(calc(100cqw / 1080px));z-index:1;pointer-events:none}
.studio-html-plane img{border-radius:0!important;box-shadow:none!important;mix-blend-mode:normal!important}
