/* Shared photo window; all motion is rendered from the real V3 layers. */
.demo-stage{position:relative;width:100%;aspect-ratio:4/5;overflow:hidden;background:#e8e0d6;isolation:isolate;touch-action:none;outline-offset:5px}
.demo-stage:focus-visible{outline:3px solid var(--rose)}
.demo-poster,.demo-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}
.demo-poster{z-index:1;pointer-events:none}
.demo-poster[hidden],.demo-canvas[hidden]{display:none!important}
.demo-stage[data-ready="true"]{cursor:grab}.demo-stage:active{cursor:grabbing}
.motion-button{display:block;margin:12px auto 0;border:0;border-bottom:1px solid #bda9a8;background:transparent;padding:5px 8px;font-size:12px;line-height:1.6;color:#74615e;min-height:36px}
.motion-button:hover{color:var(--rose);background:#f1e4e660}
button:disabled{cursor:default;opacity:.5}button:active:not(:disabled){transform:translateY(1px)}
.preview-link{display:block;color:inherit;text-decoration:none}.preview-link .demo-stage{touch-action:pan-y;cursor:pointer}.preview-link canvas{pointer-events:none}
.photo-frame .demo-poster{height:100%}.photo-frame .demo-stage{border-radius:inherit}
.hero-figure .image-credit{font-size:10px;margin-top:18px}.preview-hint{font-size:12px;display:block;text-align:center;margin-top:16px;color:var(--rose)}
.hero-figure .photo-note{pointer-events:none}.hero-figure .motion-button{font-size:11px;min-height:32px;margin-top:8px}
.back-link{font-size:12px;text-decoration:none}.demo-main{max-width:1100px;margin:auto;padding:42px 32px 24px}
.demo-heading{text-align:center;margin-bottom:30px}.demo-heading h1{font-size:36px;line-height:1.65;margin:12px 0}.demo-heading>p:last-child{font-size:13px;color:var(--muted)}
.mobile-only{display:none}.demo-layout{display:grid;grid-template-columns:420px 1fr;gap:90px;max-width:900px;margin:auto;align-items:center}
.demo-photo-column{min-width:0}.view-switch{display:flex;margin:0 auto 20px;padding:4px;background:#eee6e2;border-radius:40px;width:max-content;max-width:100%;gap:4px}
.view-switch button{border:0;background:transparent;padding:9px 19px;border-radius:30px;font-size:12px;min-height:42px;white-space:nowrap}
.view-switch button[aria-pressed="true"]{background:#fffdf9;color:var(--rose);box-shadow:0 2px 5px #73534c12}.view-switch button:hover:not(:disabled){background:#fff8}
.demo-photo-border{padding:9px;background:#fffdf9;border-radius:140px 140px 6px 6px;box-shadow:0 12px 40px #654c4214}
.demo-photo-border .demo-stage{border-radius:132px 132px 2px 2px}
.position-control{display:flex;align-items:center;gap:16px;margin:20px auto 0;width:70%;color:#977779;font-size:14px}.position-control input{width:100%;accent-color:var(--rose);cursor:ew-resize;height:24px}
.demo-aside h2{font-size:32px;line-height:1.8;margin:14px 0 22px}.demo-aside>p:not(.eyebrow){font-size:14px;line-height:2.1;color:#746d6b}
.demo-aside .demo-status{font-size:12px!important;min-height:64px;margin:24px 0 16px;padding-left:16px;border-left:2px solid #bd8b9d;color:#825d68!important}
.camera-section{padding:22px 0;border-block:1px solid var(--line)}.camera-button{font-size:12px;width:100%;padding:14px 16px}.camera-section p{font-size:11px;color:var(--muted);line-height:1.9;margin-top:12px}
.demo-return{display:block;font:19px/1.8 var(--serif);text-decoration:none;margin-top:28px}.demo-return span{display:block;font:12px/1.8 var(--sans);margin-top:7px;color:var(--rose)}
.demo-caption{font-size:10px;line-height:1.9;text-align:center;color:var(--muted);margin:38px auto 0;max-width:700px}.demo-page .footer{padding-top:0}.no-script{position:absolute;z-index:2;bottom:20px;background:#fff;padding:12px;font-size:12px}
@media(max-width:900px){.demo-layout{grid-template-columns:minmax(260px,380px) minmax(220px,1fr);gap:40px}.demo-aside h2{font-size:27px}.demo-main{padding-inline:28px}}
@media(max-width:600px){.demo-main{padding:26px 22px 20px}.demo-heading{margin-bottom:22px}.demo-heading h1{font-size:27px;margin:10px 0}.demo-heading>p:last-child{font-size:12px}.mobile-only{display:inline}.demo-layout{display:block}.demo-photo-column{width:min(350px,100%);margin:auto}.view-switch{margin-bottom:16px}.view-switch button{font-size:12px;padding:8px 17px}.demo-photo-border{border-radius:110px 110px 6px 6px;padding:7px}.demo-photo-border .demo-stage{border-radius:104px 104px 2px 2px}.position-control{margin-top:12px}.motion-button{margin-top:5px}.demo-aside{margin:32px auto 0;max-width:350px}.demo-aside>h2,.demo-aside>.eyebrow,.demo-aside>p:not(.demo-status){display:none}.demo-aside .demo-status{min-height:46px;margin:0 0 18px}.camera-section{padding:20px 0}.camera-button{font-size:12px}.demo-return{font-size:21px;text-align:center}.demo-caption{font-size:10px;text-align:left;margin-top:30px}.hero-figure .image-credit{font-size:9px}}
/* Keep the invitation and its action next to the photograph. */
.hero-figure .hero-actions{justify-content:center;margin-top:16px}.hero-figure .hero-actions .button{width:100%;background:var(--rose);border-color:var(--rose);font-size:14px;min-height:52px}.hero-figure .image-credit{margin-top:24px}.hero-figure .motion-button{margin-top:8px}
.demo-page .header-inner{min-height:76px}.demo-main{padding-top:24px}.demo-heading{margin-bottom:24px}.demo-heading h1{font-size:30px;margin:0 0 8px}.demo-layout{align-items:start}.demo-aside{padding-top:70px}
.demo-photo-border{position:relative}.camera-live{position:absolute;right:16px;bottom:16px;width:84px;height:106px;border-radius:18px;overflow:hidden;border:3px solid #fffdf9;background:#403c3b;box-shadow:0 3px 12px #403c3b33;z-index:3;pointer-events:none}.camera-live[hidden]{display:none!important}.camera-live video{display:block;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-live:after{content:"";position:absolute;inset:14px 12px;border:2px solid #fff9;border-radius:50%}.camera-live[data-tracking="found"]{border-color:#74947c}.camera-live[data-tracking="found"]:after{border-color:#c3e1c9}
.demo-photo-column .camera-section{border:0;padding:18px 0 0}.demo-photo-column .camera-button{width:100%;background:var(--rose);border-color:var(--rose);min-height:52px;font-size:15px;border-radius:6px}.camera-button:hover:not(:disabled){background:#82465b;border-color:#82465b}.camera-section p{text-align:center;margin-top:8px;font-size:11px}.demo-photo-column .demo-status{font-size:12px;line-height:1.8;text-align:center;color:#825d68;min-height:44px;margin:12px 0 8px;padding:0;border:0}.demo-secondary{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:12px}.demo-secondary .view-switch{margin:0;gap:0}.demo-secondary .view-switch button{padding:8px 14px;min-height:40px}.demo-secondary .motion-button{margin:0;font-size:11px;white-space:nowrap}.position-control{margin-top:10px}
@media(max-width:600px){.hero .hero-grid{gap:14px}.hero-figure .hero-actions .button{font-size:14px}.hero-figure .image-credit{font-size:10px}.demo-page .header-inner{min-height:64px}.demo-page .brand{font-size:22px}.demo-main{padding:18px 22px 20px}.demo-heading{margin-bottom:18px}.demo-heading h1{font-size:23px;line-height:1.6;white-space:nowrap}.demo-heading>p:last-child{font-size:11px}.demo-photo-column{width:min(100%,340px,calc((100svh - 300px)*.8))}.demo-photo-border{border-radius:92px 92px 6px 6px}.demo-photo-border .demo-stage{border-radius:86px 86px 2px 2px}.demo-photo-column .camera-section{padding-top:14px}.demo-photo-column .camera-button{font-size:14px;min-height:50px;padding:12px 10px}.demo-photo-column .demo-status{font-size:11px;margin-top:10px;min-height:40px}.demo-secondary{gap:8px}.demo-secondary .view-switch button{font-size:10px;padding:6px 10px;min-height:36px}.demo-secondary .motion-button{font-size:10px;padding:4px}.demo-aside{padding-top:0;margin-top:28px}.camera-live{width:68px;height:88px;right:12px;bottom:12px;border-radius:14px}.camera-live:after{inset:12px 9px}.camera-section p{font-size:10px}.demo-caption{margin-top:22px}}
@media(max-width:360px){.demo-heading h1{font-size:20px}.demo-photo-column .camera-button{font-size:12px}.demo-secondary{gap:5px}.demo-secondary .view-switch button{padding-inline:8px}}
