.brandLoader{display:grid;place-items:center;position:absolute;inset:auto;z-index:2;pointer-events:none;background:transparent}
.brandLoader img,.buttonLoader{width:84px;height:84px;object-fit:contain;animation:daleSpin .2s linear infinite;will-change:transform}
#loading{display:grid!important;top:calc(50% - 55px);left:50%;transform:translate(-50%,-50%)}
@keyframes daleSpin{to{transform:rotate(360deg)}}
.detailLayout{position:relative}
#detailTitle span{display:inline-block;transform-origin:50% 100%}
.is-glitching .detailLayout{animation:none;pointer-events:none;overflow:hidden}
.is-glitching #detailTitle span{animation:letterFall 1s cubic-bezier(.55,0,1,.5) both;animation-delay:var(--letter-delay)}
.is-glitching .productInfo>p,.is-glitching .specs,.is-glitching .coming,.is-glitching .note{animation:infoSlip .8s ease-in both}
.is-glitching #viewerControls,.is-glitching #viewerHint{opacity:0;transition:opacity .15s}
.is-glitching #detailImage{animation:canvasFall 1.1s ease-in both}
.is-preview-locked .detailLayout{filter:blur(16px);opacity:.35;transform:translateY(18px);pointer-events:none;user-select:none;max-height:calc(100svh - 160px);overflow:hidden}
@keyframes signalSlip{0%{filter:blur(0);transform:none}14%{transform:translateX(-5px) skewX(-1.5deg);filter:drop-shadow(5px 0 #ff620050)}26%{transform:translateX(7px) skewX(2deg)}38%{transform:translateX(-3px);filter:drop-shadow(-5px 0 #437dff50)}55%{transform:translateX(4px);filter:blur(2px)}100%{transform:translateY(18px);filter:blur(16px);opacity:.35}}
@keyframes letterFall{0%,15%{transform:none;opacity:1}40%{transform:translateY(8px) rotate(var(--letter-turn))}100%{transform:translate(var(--letter-x),var(--letter-y)) rotate(var(--letter-turn));opacity:0}}
@keyframes infoSlip{0%,20%{transform:none;opacity:1}50%{transform:translate(8px,18px) skewX(-3deg)}100%{transform:translate(-10px,80px);opacity:0}}
@keyframes canvasFall{0%{transform:scale(1);opacity:1}85%{opacity:1}100%{transform:scale(5) rotate(8deg);opacity:0}}
.previewDialog{width:min(460px,calc(100% - 32px));padding:34px;border:1px solid #dedfd6;border-radius:24px;background:var(--paper);color:var(--ink);box-shadow:0 24px 100px #20232226;max-height:calc(100svh - 32px);overflow:auto}
.previewDialog::backdrop{background:#20232230;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.previewDialog[open]{animation:windowArrives .3s ease-out}
@keyframes windowArrives{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
.previewMark{width:52px;height:52px;object-fit:contain;mix-blend-mode:multiply}
.previewDialog h2{font-family:'Space Grotesk',Arial,sans-serif;font-size:32px;font-weight:500;line-height:1.08;letter-spacing:-1.3px;margin:20px 0 14px}
.previewDialog p{font-size:16px;line-height:1.55;color:#687062;margin:0 0 20px}
.previewDialog label{display:block;font-size:14px;margin-bottom:8px}
.previewDialog input[type=email]{font:inherit;font-size:16px;width:100%;border:1px solid #c4cbbf;border-radius:12px;background:#fff;padding:14px;color:var(--ink)}
.previewDialog .consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.5;margin:14px 0 18px;color:#687062}
.consent input{accent-color:var(--orange);margin-top:3px;flex:none}
.previewSubmit,.previewReturn{width:100%;border-radius:30px;padding:15px 18px;font-size:16px;min-height:50px}
.previewSubmit{position:relative;background:var(--ink);color:white;display:flex;align-items:center;justify-content:center}
.previewSubmit .buttonLoader{display:none;width:32px;height:32px;mix-blend-mode:normal;border-radius:0}
.previewSubmit.is-busy .buttonLoader{display:block}.previewSubmit.is-busy .submitLabel{display:none}
.previewReturn{border:1px solid #c4cbbf;margin-top:12px;background:transparent}
#newsletterStatus{font-size:15px;line-height:1.5;margin:14px 0 0;color:var(--ink)}
#newsletterStatus:empty{display:none}
@media(max-width:560px){.previewDialog{padding:26px}.previewDialog h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){.brandLoader img,.buttonLoader{animation:none}.is-glitching .detailLayout,.is-glitching #detailTitle span,.is-glitching .productInfo>p,.is-glitching .specs,.is-glitching .coming,.is-glitching .note,.is-glitching #detailImage,.previewDialog[open]{animation:none}.is-glitching .detailLayout{filter:blur(12px);opacity:.35}.is-glitching #viewerControls,.is-glitching #viewerHint{transition:none}}

