/* Short, quiet motion shared by every island and edition. */
:root{--shop-motion-time:220ms;--shop-motion-ease:cubic-bezier(.22,1,.36,1)}
#mockup-art{position:relative}
#poster img.artwork-outgoing,#mockup-art img.artwork-outgoing,#full-art img.artwork-outgoing{position:absolute;pointer-events:none}
.preview.has-artwork #loading{top:auto;bottom:8px;left:50%;padding:4px 9px;font-size:11px;box-shadow:none}
.preview.has-artwork #loading .loading-spinner{display:none}
.memory-saved{display:flex;align-items:center;gap:8px;color:#284d3d}
.save-check{width:20px;height:20px;flex:none;overflow:visible}
.save-check path{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}
.interview-summary .just-saved,.places .just-saved{border-left:2px solid #607d66;padding-left:10px;background:#e7eee280}
.interview-about[data-research-loading=true] textarea{background-color:#f1f3ed}
.interview-about[data-research-loading=true] .hint{color:#526a5a}
.motion-details-content{display:flow-root}
/* Discrete display/overlay transitions retain native Escape and focus restoration. */
@supports (transition-behavior:allow-discrete){
 body.print-workspace dialog{opacity:0;transform:translateY(6px) scale(.985);transition:opacity 180ms var(--shop-motion-ease),transform 180ms var(--shop-motion-ease),display 180ms allow-discrete,overlay 180ms allow-discrete}
 body.print-workspace dialog[open]{opacity:1;transform:translateY(0) scale(1)}
 body.print-workspace dialog::backdrop{opacity:0;transition:opacity 180ms var(--shop-motion-ease),display 180ms allow-discrete,overlay 180ms allow-discrete}
 body.print-workspace dialog[open]::backdrop{opacity:1}
 @starting-style{body.print-workspace dialog[open]{opacity:0;transform:translateY(6px) scale(.985)}body.print-workspace dialog[open]::backdrop{opacity:0}}
 details::details-content{opacity:0;transition:opacity 180ms var(--shop-motion-ease),content-visibility 180ms allow-discrete}
 details[open]::details-content{opacity:1}
 @starting-style{details[open]::details-content{opacity:0}}
}
@media(prefers-reduced-motion:reduce){
 body.print-workspace dialog,body.print-workspace dialog::backdrop,details::details-content{transition:none!important;transform:none!important}
 .save-check path{stroke-dashoffset:0}
}
