/* A sheet travels through a masked output path, rather than revealing in place. */
.print-visual{--paper-width:clamp(215px,24vw,340px);--feed:1;--curl:0deg;--settle:0deg;max-width:460px;padding-top:0}
.photo-printer{--outlet-bottom:9px;--outlet-height:10px;--outlet-line:calc(var(--outlet-bottom) + var(--outlet-height)/2 + 1px);position:relative;width:100%;isolation:isolate}
.printer-body{height:73px;position:relative;z-index:5;border-radius:16px 16px 8px 8px;background:linear-gradient(160deg,#e6e7e5,#b7bebf 62%,#a4adaf);border:1px solid #edf0ee50;box-shadow:0 15px 26px #07152255,inset 0 1px 0 #fff9,inset 0 -7px 12px #626e7540}
.printer-wordmark{position:absolute;left:26px;top:18px;font-size:9px;letter-spacing:.21em;font-weight:600;color:#52616b;text-shadow:0 1px #fff5}
.printer-light{position:absolute;width:5px;height:5px;border-radius:50%;right:26px;top:24px;background:#c3e7cb;box-shadow:0 0 8px #9dfdb877}
.printer-body .print-slot{position:absolute;left:50%;bottom:var(--outlet-bottom);width:calc(var(--paper-width) + 30px);height:var(--outlet-height);transform:translateX(-50%);background:#0a141c;border:1px solid #627078;border-radius:5px;box-shadow:inset 0 3px 4px #000c,0 1px 0 #edf0ec80}
/* Clip the moving sheet at the slot centre, in front of the lower printer lip. */
.paper-path{height:calc(var(--paper-width) * 1.5 + 35px);overflow:hidden;position:relative;margin-top:calc(-1 * var(--outlet-line));padding-bottom:35px;perspective:900px;z-index:6}
.paper-path:after{content:"";position:absolute;z-index:4;top:0;left:50%;width:calc(var(--paper-width) + 3px);height:14px;transform:translateX(-50%);background:linear-gradient(#0007,transparent);pointer-events:none}
.print-visual .print-paper,.motion-ready .print-visual .print-paper{width:var(--paper-width);margin:0 auto;transform:translateY(calc((var(--feed) - 1) * 100%)) rotateX(var(--curl)) rotate(var(--settle));transform-origin:center top;clip-path:none;filter:drop-shadow(0 17px 17px #06132166);will-change:transform}
.print-paper:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,#fff3 52%,transparent 72%);pointer-events:none;opacity:calc(1 - var(--feed) * .5)}
.print-visual .print-paper figure{padding:0;margin:0;background:#fff}
.print-visual .print-paper img,.motion-ready .print-visual .print-paper img{width:100%;height:auto;max-height:none;aspect-ratio:2/3;object-fit:contain}
.print-visual .print-paper figcaption{display:none}
.print-output-caption{min-height:20px;margin:2px 0 0;text-align:center;font-size:13px;color:#d2d8dc}
.print-visual .template-control{margin-top:18px}
.print-replay{display:block;margin:16px auto 0;padding:8px 14px;min-height:40px;border:0;border-bottom:1px solid #a5b3bf66;border-radius:0;background:transparent;color:#d0d8df;font:inherit;font-size:13px;cursor:pointer}
.print-replay:hover{color:white;border-color:#d7bc93}
.print-replay:focus-visible{outline:2px solid #d7bc93;outline-offset:4px}
.print-visual>.fine{font-size:12px;margin-top:17px}
.motion-ready .print-story{height:245svh}
.print-visual.is-printing .printer-light{background:#c8f1d6;box-shadow:0 0 8px #a9fac599}
@media(min-width:701px) and (max-height:899px){
  .print-visual{--paper-width:clamp(215px,calc((100svh - 355px)/1.5),300px)}
  .motion-ready .print-sticky{padding-block:30px}
}
@media(min-width:701px) and (max-height:819px){
  .motion-ready .print-story{height:auto;padding:90px 0}
  .motion-ready .print-sticky{position:relative;height:auto;min-height:0;padding-block:0}
}
@media(max-width:1100px) and (min-width:701px){.print-visual{--paper-width:clamp(210px,23vw,270px)}.print-visual>.fine{font-size:11px}.printer-wordmark{font-size:8px;left:17px}.printer-body{height:63px}.printer-light{right:17px;top:22px}}
@media(max-width:700px){
  .print-visual,.motion-ready .print-visual{--paper-width:clamp(220px,65vw,275px);max-width:340px;padding-top:0}
  .motion-ready .print-story{height:auto;padding:70px 0}
  .printer-body{height:67px;border-radius:13px 13px 7px 7px}
  .printer-wordmark{left:18px;font-size:8px;top:16px}
  .printer-light{right:18px;top:19px}
  .print-visual .print-output-caption{font-size:13px;margin-top:5px}
  .print-visual .template-control{margin-top:18px}
  .print-visual .template-control button{width:44px;height:44px}
  .print-replay{margin-top:12px;font-size:13px}
}
@media(prefers-reduced-motion:reduce),(max-height:620px){
  .motion-ready .print-story{height:auto;padding:70px 0}
  .print-visual .print-paper,.motion-ready .print-visual .print-paper{transform:none;filter:drop-shadow(0 10px 12px #06132144);will-change:auto}
  .print-replay{display:none}
}
