/* The photo remains an authentic local image; this layer only choreographs its reveal. */
.portrait-layer{--background:0;--reveal:0;--layout:0;--copy:0;position:absolute;inset:0;z-index:0;pointer-events:none;visibility:hidden;color:#283b32}
.portrait-paper{position:absolute;inset:0;background:#f5f1e8;opacity:1}
.portrait-heading{position:absolute;left:7%;right:7%;top:7%;display:flex;justify-content:space-between;opacity:var(--copy);font:9px/1.5 monospace;letter-spacing:2px;color:#687769}
.portrait-figure{position:absolute;left:calc(50% + var(--layout)*17%);top:calc(48% + var(--layout)*2%);width:clamp(280px,39vw,490px);margin:0;transform:translate(-50%,-50%) scale(calc(.88 + var(--layout)*.12));mix-blend-mode:multiply;opacity:1}
.portrait-figure img{display:block;width:100%;height:auto;mask-image:linear-gradient(to bottom,#000 83%,transparent 100%);filter:saturate(1)}
.portrait-scan{display:none;position:absolute;left:8%;right:8%;top:var(--wipe);height:1px;background:#79e5f1;box-shadow:0 0 13px 3px #8ce7e777;opacity:calc(4*var(--reveal)*(1 - var(--reveal)));mix-blend-mode:screen}
.portrait-copy{position:absolute;left:10%;top:29%;opacity:var(--copy);transform:translateY(calc((1 - var(--copy))*16px));max-width:38%}
.portrait-kicker{font-size:11px;color:#7b806e;letter-spacing:1px}
.portrait-copy h2{font-size:clamp(42px,5vw,72px);line-height:1.25;font-weight:400;letter-spacing:3px;margin:24px 0}
.portrait-copy h2 span{color:#527060}.portrait-copy p{font-size:13px;letter-spacing:2px;margin:0;color:#657263}
.portrait-rule{width:38px;height:1px;background:#a4b19b;margin:28px 0 20px}.portrait-copy .portrait-note{font-size:11px;letter-spacing:1px;color:#848a79}
.portrait-footer{position:absolute;left:7%;right:7%;bottom:13%;display:flex;justify-content:space-between;opacity:var(--copy);font-size:10px;letter-spacing:1px;color:#89917e}
.act3-active #next-act{color:#526b5c;background:#faf8efbb;border-color:#a7b79b80;bottom:20px}
@media(max-width:700px){.portrait-heading{top:6%;font-size:7px;letter-spacing:1px}.portrait-figure{left:50%;top:calc(48% + var(--layout)*10%);width:min(86vw,390px)}.portrait-copy{left:8%;top:12%;max-width:84%}.portrait-kicker{font-size:10px}.portrait-copy h2{font-size:36px;line-height:1.2;margin:14px 0}.portrait-copy h2 br{display:none}.portrait-copy p{font-size:11px}.portrait-rule,.portrait-copy .portrait-note{display:none}.portrait-footer{bottom:9%;font-size:9px}.portrait-footer span:last-child{display:none}}

/* A feathered screen-space scan replaces pixels, preventing a double face. */
#scene{z-index:1;--curtain:-15%;mask-image:linear-gradient(to bottom,transparent calc(var(--curtain) - 3%),#000 calc(var(--curtain) + 3%))}
#studio>.intro,#studio>.corner,#studio>.tools,#studio>.drag-cue{z-index:2}
.portrait-sweep{position:absolute;pointer-events:none;z-index:2;left:15%;right:15%;top:var(--curtain,-15%);height:1px;background:linear-gradient(90deg,transparent,#c0f8fb88,transparent);box-shadow:0 0 28px 7px #91d4e321;opacity:var(--sweep,0)}

.portrait-layer{z-index:auto}.portrait-copy{z-index:3;pointer-events:auto;top:23%;max-width:40%}.portrait-heading,.portrait-footer{z-index:2}
.portrait-copy h2{font-size:clamp(36px,4.5vw,64px);margin:18px 0}.portrait-rule{margin:20px 0 16px}
.portrait-copy .portrait-note{display:block;color:#455e50;font-size:14px;line-height:1.9;letter-spacing:.3px}
.portrait-copy .portrait-intro{font-size:12px;line-height:1.9;letter-spacing:.3px;margin-top:14px;color:#697667;max-width:360px}
.portrait-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.portrait-actions :is(button,a){background:#ffffff66;border:1px solid #879b7f66;color:#3f5d49;padding:11px 15px;border-radius:24px;cursor:pointer;font-size:12px}.portrait-actions :is(button,a):hover{background:#fff}.portrait-actions :is(button,a):focus-visible{outline:2px solid #527060;outline-offset:3px}
@media(max-width:700px){.portrait-copy{top:12%;left:7%;max-width:86%}.portrait-copy h2{font-size:32px;margin:12px 0}.portrait-copy .portrait-note{font-size:12px;line-height:1.7}.portrait-copy .portrait-intro{font-size:11px;line-height:1.65;margin-top:9px;max-width:100%}.portrait-actions{margin-top:14px;gap:8px}.portrait-actions :is(button,a){font-size:11px;padding:9px 12px}.portrait-figure{top:73%;width:min(65vw,310px)}.portrait-footer{bottom:9%;font-size:9px}.portrait-rule{display:none}}

.portrait-actions a{text-decoration:none;display:inline-block}

.portrait-copy .portrait-contact{font-size:12px;letter-spacing:0;margin-top:15px}.portrait-contact a{color:#466651;text-underline-offset:4px}@media(max-width:700px){.portrait-copy .portrait-contact{font-size:11px;margin-top:10px}}

/* Keep the invitation and contact details in one flow; reserve space for home. */
.portrait-copy{top:14%;bottom:28px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:12px;max-width:40%;box-sizing:border-box}
.portrait-copy h2{font-size:clamp(36px,4.2vw,56px);margin:14px 0}
.portrait-copy .portrait-invite{font-size:13px;line-height:1.9;letter-spacing:.3px;color:#47654f;margin-top:20px}
.portrait-actions{margin-top:16px;padding-bottom:4px}
.portrait-copy:focus-visible{outline:1px solid #92a78a;outline-offset:5px}
@media(max-width:700px){.portrait-copy{top:12%;bottom:auto;max-height:48%;max-width:86%}.portrait-copy h2{font-size:32px;margin:12px 0}.portrait-copy .portrait-invite{font-size:12px;line-height:1.7;margin-top:14px}.portrait-figure{top:80%;width:min(58vw,240px)}.portrait-actions{margin-top:12px}}
