/* Isolated decorative layer: never changes the dimensions or colours of site components. */
#qt-seasonal-layer{position:fixed;inset:0;pointer-events:none;z-index:45;overflow:hidden;contain:strict}
#qt-seasonal-layer .qt-seasonal-motif{position:absolute;width:100px;height:100px;object-fit:contain;opacity:0;visibility:hidden;transform:translateY(10px) rotate(var(--qt-motif-rotation,0deg));transition:opacity .28s ease,transform .36s cubic-bezier(.2,.8,.2,1.12),visibility 0s linear .28s;top:var(--qt-seasonal-motif-top,140px);pointer-events:none}
#qt-seasonal-layer .qt-seasonal-motif--left{left:12px;--qt-motif-rotation:-12deg}
#qt-seasonal-layer .qt-seasonal-motif--right{right:12px;--qt-motif-rotation:12deg}
#qt-seasonal-layer canvas{display:block;width:100%;height:100%;pointer-events:none}
#qt-seasonal-dismiss{position:fixed;left:12px;bottom:20px;z-index:46;display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid var(--qt-colour-border,#dfced9);border-radius:50%;background:var(--qt-colour-surface,#fffdfb);color:var(--qt-colour-primary,#78345e);box-shadow:none;cursor:pointer;font-family:var(--qt-font-body,inherit);font-size:20px;line-height:1}
#qt-seasonal-dismiss:hover{background:var(--qt-colour-primary,#78345e);color:#fff}
#qt-seasonal-dismiss:focus-visible{outline:2px solid var(--qt-colour-primary,#78345e);outline-offset:3px}
#qt-seasonal-preview{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:46;max-width:calc(100% - 100px);padding:8px 14px;border:1px solid #dfced9;border-radius:10px;background:#fffdfb;color:#34252f;font:12px/1.4 var(--qt-font-body, sans-serif);text-align:center;pointer-events:none}
@media(max-width:999.98px){#qt-seasonal-layer .qt-seasonal-motif{width:64px;height:64px;top:var(--qt-seasonal-motif-top,112px);--qt-motif-opacity:.24}#qt-seasonal-layer .qt-seasonal-motif--left{left:8px}#qt-seasonal-layer .qt-seasonal-motif--right{right:8px}#qt-seasonal-dismiss{bottom:calc(88px + env(safe-area-inset-bottom,0px))}#qt-seasonal-preview{bottom:calc(88px + env(safe-area-inset-bottom,0px))}}
@media(prefers-reduced-motion:reduce){#qt-seasonal-layer canvas{display:none}}
@media print{#qt-seasonal-layer,#qt-seasonal-dismiss,#qt-seasonal-preview{display:none!important}}

#qt-seasonal-layer.qt-seasonal-motifs-visible .qt-seasonal-motif{visibility:visible;opacity:var(--qt-motif-opacity,.3);transform:translateY(0) rotate(var(--qt-motif-rotation,0deg));transition-delay:0s}

@media(prefers-reduced-motion:reduce){#qt-seasonal-layer .qt-seasonal-motif{transition:none;transform:rotate(var(--qt-motif-rotation,0deg))}}

/* Sway the artwork separately so the scroll fade/lift remains smooth. */
#qt-seasonal-layer .qt-seasonal-motif-art{display:block;width:100%;height:100%;object-fit:contain;transform-origin:50% 12%;animation:qt-seasonal-pendulum 5.4s ease-in-out infinite;animation-play-state:paused}
#qt-seasonal-layer .qt-seasonal-motif--right .qt-seasonal-motif-art{animation-delay:-2.7s}
#qt-seasonal-layer.qt-seasonal-motifs-visible .qt-seasonal-motif-art{animation-play-state:running}
@keyframes qt-seasonal-pendulum{0%,100%{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}
@media(prefers-reduced-motion:reduce){#qt-seasonal-layer .qt-seasonal-motif-art{animation:none;transform:none}}
