/* Same artwork, separated into a fixed machine and a moving receipt layer. */
.result-hero .printer-machine{position:relative;display:block;width:100%;height:auto}
.receipt-viewport{position:absolute;inset:0;clip-path:inset(31% 0 0 0);overflow:hidden;pointer-events:none}
.receipt-strip{position:absolute;inset:0;transform:translateY(0);will-change:auto}
.receipt-art{display:block;width:100%;height:auto}
[data-printer-state=printing] .receipt-viewport{will-change:clip-path}
.printer-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 27px 0;color:#6889af;font-family:var(--fortune-font-pixel);font-size:12px;line-height:1.5}
.printer-controls button{padding:7px 8px;background:transparent;border:1px solid #cbdff1;border-radius:4px;color:#315e92;font-family:inherit;font-size:12px;white-space:nowrap;min-height:34px}
.printer-controls button:disabled{opacity:.55;cursor:default}
.printer-led{position:absolute;width:2.5%;height:1.5%;top:51%;right:15.5%;background:#4d91ff;opacity:0;box-shadow:0 0 8px #8edcff}
[data-printer-state=printing] .printer-led{opacity:1;animation:printer-led-blink .18s steps(2,end) infinite}
.result-body{transition:opacity .2s ease}
[data-fortune-screen=result][aria-busy=true] .result-body{opacity:0;pointer-events:none}
@keyframes printer-led-blink{50%{opacity:.2}}
@media(prefers-reduced-motion:reduce){.printer-led{animation:none!important}.result-body{transition:none}}
/* Keep live headline inside the tapered paper, including while it moves. */
[data-receipt-printer] h1{left:20%;width:60%}
.print-mode-picker{margin:10px 16px 20px;padding:14px;background:#edf5ff;border:2px solid #1d3b74;border-radius:8px;font-family:var(--fortune-font-pixel)}.print-mode-picker strong{font-size:16px;font-weight:400}.print-mode-picker>div{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.print-mode-picker button{background:#fffdf5;border:1px solid #8da7c8;padding:8px;font-family:inherit;font-size:12px;color:#081241}.print-mode-picker button[aria-pressed=true]{background:#ffe25c;border-color:#081241}.print-mode-picker p{font-size:12px;line-height:1.6;margin-bottom:0}
.printer-hardware{position:absolute;inset:0;pointer-events:none;z-index:6}.roller{position:absolute;top:30%;width:9%;height:2.8%;border:2px solid #0a1846;background:repeating-linear-gradient(90deg,#9daec3 0 4px,#e5f0ff 4px 8px);border-radius:5px;opacity:0}.roller-left{left:24%}.roller-right{right:24%}[data-print-mode=roller][data-printer-state=printing] .roller{opacity:1}
.cutter-rail{position:absolute;top:31%;left:22%;width:56%;height:3px;background:#768eac;opacity:0}.cutter-blade{position:absolute;top:29%;left:22%;width:5%;height:6%;background:linear-gradient(90deg,#a7bbd0,#f7fbff);border:2px solid #17345d;border-radius:2px;opacity:0}[data-print-mode=tear][data-printer-state=printing] .cutter-rail{opacity:1}
.dot-print-canvas{position:absolute;inset:0;width:100%;height:auto;pointer-events:none;clip-path:inset(31% 0 0 0);z-index:4}
[data-print-mode=tear]{padding-bottom:22px}[data-print-mode=tear] .receipt-viewport{bottom:22px;overflow:visible;clip-path:inset(31% 0 -22px 0)}[data-print-mode=tear][data-printer-state=ready] .receipt-strip{transform:translateY(14px)}
.print-embed .result-body,.print-embed .dog-footer{display:none!important}.print-embed .dog-app{min-height:0;padding-bottom:0}.print-embed .printer-controls{padding-left:18px;padding-right:18px}.print-embed .printer-controls button{min-height:38px}
body.print-embed{background:#fffdf5}

/* Each zodiac supplies only its transparent character; all paper/housing is shared. */
.receipt-character{position:absolute;inset:0;display:block;width:100%;height:auto;pointer-events:none}
