.interactive-gallery,.sticker-zoom{--gallery-x:0deg;--gallery-y:0deg;--light-x:50%;--light-y:50%;--light-angle:115deg}
.reveal-steps{display:flex;justify-content:center;gap:26px;list-style:none;padding:0;margin:0 0 24px;color:#747b84;font-size:14px}
.reveal-steps{gap:18px}
.sticker-sheet{position:relative;width:100%;height:100%;isolation:isolate;overflow:hidden;border-radius:5px;background:#fff;color:#30343a;box-shadow:0 1px 1px #26324718,0 12px 24px #26324712}
.sheet-stock{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;z-index:-1}
.sheet-number{position:absolute;top:5%;right:7%;font:10px ui-monospace,monospace;color:#899098;letter-spacing:.08em;pointer-events:none}
.sheet-edition{position:absolute;bottom:4%;left:7%;color:#9b9fa5;font:8px ui-monospace,monospace;letter-spacing:.16em;pointer-events:none}
.sheet-printed-art{position:absolute;width:86%;height:76%;left:7%;top:14%;object-fit:contain;filter:drop-shadow(0 1px 1px #23304712);pointer-events:none}
.sticker-printer{position:relative;aspect-ratio:10/13;width:100%;isolation:isolate}
.printer-housing{position:absolute;top:-6%;left:0;width:100%;height:auto;z-index:3;pointer-events:none;filter:drop-shadow(0 9px 7px #19253218)}
.printer-mechanism{position:absolute;inset:0;transform-origin:50% 35%}
/* The paper exits at the slot center, in FRONT of the lower casing. */
.printer-feed-window{position:absolute;top:35%;left:23%;width:54%;height:56.25%;overflow:hidden;z-index:4;filter:drop-shadow(0 10px 10px #23304712)}
.printer-feed-sheet .sticker-sheet{border-radius:0 0 5px 5px}
.printer-feed-sheet{width:100%;height:100%;transform:translateY(-102%);will-change:transform}
.sticker-printer[data-running=true] .printer-feed-sheet{animation:sheet-feed-out 3.8s cubic-bezier(.22,.55,.25,1) both}
.sticker-printer[data-done=true] .printer-feed-sheet{transform:translateY(0);animation:none;will-change:auto}
.printer-status{position:absolute;left:0;right:0;bottom:0;text-align:center;font-size:13px;color:#626b76}
.sticker-printer[data-done=true] .printer-feed-window{overflow:visible;touch-action:none;cursor:grab;outline-offset:6px}
.sticker-printer[data-dragging=true] .printer-feed-window{cursor:grabbing}
.sticker-printer[data-done=true] .printer-feed-sheet{transform-origin:var(--tear-origin,50% 0%);transform:translateY(calc(var(--tear-pull,0) * 8px)) rotate(calc(var(--tear-pull,0) * var(--tear-side,1) * 6deg));transition:transform .28s cubic-bezier(.2,.8,.2,1);user-select:none;-webkit-user-select:none}
.sticker-printer[data-dragging=true] .printer-feed-sheet{transition:none}
.printer-tear-guide{position:absolute;left:4px;right:4px;top:5px;border-top:2px dashed #66758a88;pointer-events:none;opacity:calc(1 - var(--tear-pull,0))}
.sticker-printer[data-torn=true] .printer-feed-sheet{transform:translateY(32px) rotate(calc(var(--tear-side,1) * 3deg));transition:transform .42s cubic-bezier(.16,.9,.25,1)}
.sticker-printer[data-torn=true] .printer-feed-sheet .sticker-sheet,.cut-backing .sticker-sheet,.peel-release-paper .sticker-sheet{border-radius:0 0 5px 5px;mask:linear-gradient(#000 0 0) 0 4px/100% calc(100% - 4px) no-repeat,repeating-linear-gradient(135deg,#000 0 3px,transparent 3px 6px) 0 0/100% 4px no-repeat}
.sticker-printer[data-torn=true] .printer-housing{opacity:0;transition:opacity .35s ease-out}
.sticker-printer[data-torn=true] .printer-feed-window{pointer-events:none}
@media(prefers-reduced-motion:reduce){.sticker-printer[data-done=true] .printer-feed-sheet{transform:none!important;transition:none!important}.sticker-printer .printer-housing{transition:none!important}}
.reveal-workbench:not(.native-workbench) .sticker-printer{aspect-ratio:10/12}
.reveal-workbench:not(.native-workbench) .printer-feed-window{top:35%;left:23%;width:54%;height:56.25%}
.reveal-workbench:not(.native-workbench) .printer-housing{transform-origin:50% 90%;filter:drop-shadow(0 5px 0 #2330470b)}
.reveal-workbench:not(.native-workbench) .sticker-printer[data-running=true][data-done=false] .printer-mechanism{animation:web-printer-wake .45s cubic-bezier(.2,.8,.3,1) both,web-printer-chug .48s .45s ease-in-out infinite}
.reveal-workbench:not(.native-workbench) .sticker-printer[data-done=true] .printer-mechanism{animation:web-printer-settle .45s ease-out both}
@keyframes web-printer-wake{0%{transform:translateY(5px) scale(.97)}55%{transform:translateY(-3px) scale(1.015,.99)}100%{transform:none}}
@keyframes web-printer-chug{0%,100%{transform:translateY(0) rotate(-.35deg)}50%{transform:translateY(-1.5px) rotate(.35deg)}}
@keyframes web-printer-settle{0%{transform:translateY(-2px)}45%{transform:translateY(1px) scale(1.008,.995)}100%{transform:none}}
@media(prefers-reduced-motion:reduce){.reveal-workbench:not(.native-workbench) .printer-mechanism{animation:none!important;transform:none!important}}
.print-ready-action{padding:0 25px;background:#191b1e;border-radius:100px;color:#fff!important;text-decoration:none;font-weight:600;min-height:48px}
@keyframes sheet-feed-out{0%{transform:translateY(-102%)}12%{transform:translateY(-95%)}25%{transform:translateY(-76%)}42%{transform:translateY(-60%)}59%{transform:translateY(-41%)}76%{transform:translateY(-22%)}100%{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.sticker-printer[data-running=true] .printer-feed-sheet{animation:none;transform:none}}
.reveal-steps li{display:flex;align-items:center;gap:8px}.reveal-steps li span{display:grid;place-items:center;width:24px;height:24px;border:1px solid #ced3db;border-radius:50%;font-size:12px}.reveal-steps [aria-current=step]{color:#2346ad;font-weight:600}.reveal-steps [aria-current=step] span,.reveal-steps [data-done=true] span{background:#e8efff;border-color:#c8d5f5;color:#2346ad}
.reveal-heading{text-align:center;margin:0 12px 12px}.reveal-heading h2{font-size:clamp(22px,2.3vw,30px);line-height:1.15;letter-spacing:-.035em;margin:0 0 10px}.reveal-heading p{font-size:14px;line-height:1.5;color:#626b76;margin:0}
.reveal-actions{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:10px}.reveal-assist{min-height:44px;background:none;border:0;color:#5a6574;text-decoration:underline;text-underline-offset:4px;font:inherit;font-size:14px;cursor:pointer}.reveal-assist:disabled{opacity:.55;cursor:default}.reveal-keep{display:flex;align-items:center;justify-content:center;gap:32px;min-height:54px;padding:12px 28px;border:0;border-radius:100px;background:#191b1e;color:#fff!important;font:inherit;font-weight:600;text-decoration:none;cursor:pointer;box-shadow:0 8px 24px #10182814}
.reveal-peel,.reveal-reward{position:relative;aspect-ratio:1;width:100%}.peel-release-paper{position:absolute;inset:7%;border-radius:18px;background:linear-gradient(135deg,#fff,#e9edf3);box-shadow:0 8px 22px #152b4910;border:1px solid #dfe4eb}.reveal-peel .peel-surface{z-index:1}.reveal-reward{display:grid;place-items:center;animation:sticker-collected .65s cubic-bezier(.2,.8,.2,1)}.reveal-reward img{width:86%;height:86%;object-fit:contain;filter:drop-shadow(0 14px 12px #20385823);transform:rotate(-5deg)}.reward-seal{position:absolute;right:12%;bottom:10%;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#e8efff;color:#2346ad;border:4px solid #fff;font-size:24px}
@keyframes sticker-collected{from{opacity:0;transform:translateY(25px) scale(.84) rotate(4deg)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.reveal-reward{animation:none}}
.gallery-trigger{width:100%;border:0;padding:0;color:var(--ink);cursor:zoom-in;perspective:900px;-webkit-appearance:none}
.collection-sticker{position:relative;display:block;width:77%;aspect-ratio:1;transform:rotateX(var(--gallery-y)) rotateY(var(--gallery-x));transition:transform .22s ease-out;pointer-events:none;filter:drop-shadow(0 8px 5px #20304713)}
.work-image .collection-sticker img,.zoom-artwork .collection-sticker img{width:100%;height:100%;object-fit:contain;transform:none;transition:none;user-select:none;-webkit-user-select:none}
.collection-foil,.collection-gloss{position:absolute;inset:0;pointer-events:none;mask:var(--art) center/contain no-repeat;-webkit-mask:var(--art) center/contain no-repeat}
.collection-foil{background:linear-gradient(var(--light-angle),#c0b0f6,#ace1ef,#e6ecb2,#f4c5d5,#bbcef6);background-size:250% 250%;background-position:var(--light-x) var(--light-y);mix-blend-mode:soft-light;opacity:.38}
.collection-gloss{background:linear-gradient(var(--light-angle),transparent 28%,#fff2 39%,#fff 46%,#fff2 51%,transparent 63%);background-size:230% 230%;background-position:var(--light-x) var(--light-y);mix-blend-mode:screen;opacity:.25;transition:opacity .2s}
.zoom-affordance{position:absolute;bottom:16px;right:16px;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#ffffffc9;color:#343b40;opacity:.65;transition:opacity .2s,transform .2s}
.gallery-trigger:focus-visible{outline-offset:4px}.gallery-trigger:focus-visible .zoom-affordance{opacity:1}
@media(hover:hover){.gallery-trigger:hover .collection-sticker{transform:translateY(-7px) rotateX(var(--gallery-y)) rotateY(var(--gallery-x)) scale(1.06)}.gallery-trigger:hover .collection-gloss{opacity:.5}.gallery-trigger:hover .zoom-affordance{opacity:1;transform:scale(1.08)}}
.sticker-zoom{position:fixed;inset:0;width:min(850px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 40px);margin:auto;padding:0;border:1px solid #ffffffa0;border-radius:22px;color:var(--ink);background:var(--paper);overflow:auto;overscroll-behavior:contain;box-shadow:0 30px 100px #0004}
.sticker-zoom::backdrop{background:#101724a6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.sticker-zoom[open]{animation:sticker-zoom-in .28s cubic-bezier(.2,.8,.2,1)}
.zoom-content{position:relative;padding:32px}
.zoom-close{position:sticky;top:0;float:right;z-index:3;display:grid;place-items:center;width:46px;height:46px;margin-bottom:-46px;border:1px solid #22232120;border-radius:50%;background:#fffffff0;color:#222321;cursor:pointer;transition:background .2s,transform .2s}
.zoom-close:hover{background:#fff;transform:rotate(5deg)}
.zoom-artwork{display:grid;place-items:center;perspective:1100px;min-height:0;touch-action:none;height:min(64dvh,650px)}
.zoom-artwork .collection-sticker{width:min(100%,62dvh,650px);filter:drop-shadow(0 18px 10px #20304720)}
.zoom-artwork .collection-gloss{opacity:.38}
.zoom-caption{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-top:20px;border-top:1px solid #22232120;padding-top:22px}
.zoom-caption h2{font-size:26px;letter-spacing:-.035em}.zoom-caption p{font-size:14px;line-height:1.5;color:#60666b;margin:7px 0 0}.zoom-caption>p{text-align:right;max-width:180px}
@keyframes sticker-zoom-in{from{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:none}}
.peel-surface{position:relative;display:block;width:100%;aspect-ratio:1;pointer-events:auto}
.peel-surface .peel-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;cursor:grab;touch-action:none;border-radius:18px}
.peel-surface[data-ready=true] .peel-canvas{opacity:1}
.peel-surface .peel-fallback{width:100%;height:100%;object-fit:contain;pointer-events:none}
.peel-surface[data-ready=true] .peel-fallback{visibility:hidden}
.peel-canvas[data-peeling=true],.peel-playground[data-peeling=true],.peel-playground[data-peeling=true] .peel-canvas{cursor:grabbing}
.peel-playground{padding:0;touch-action:none}
.zoom-artwork>.peel-surface{width:min(100%,62dvh,680px)}
.peel-canvas:focus-visible{outline:3px solid var(--blue);outline-offset:-5px}
.sticker-workbench{width:100%;min-width:0;position:relative}
.sticker-workbench [hidden]{display:none!important}
.workbench-tools{display:flex;justify-content:center;gap:4px;width:max-content;margin:0 auto 8px;padding:4px;border:1px solid #d6dce3;border-radius:100px;background:#ffffffda;position:relative;z-index:5}
.workbench-tools button{display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:100px;background:transparent;color:#545e67;min-height:40px;padding:8px 20px;font-size:14px;cursor:pointer}
.workbench-tools button[aria-pressed=true]{background:#e8efff;color:#2446aa;border-color:#c8d5f5}
.workbench-hint{font-size:14px;text-align:center;color:#656b71;margin:5px 0 0}
.hero-workbench{padding-top:30px;perspective:1100px}
.hero-workbench .workbench-peel{transform:rotateX(var(--rx)) rotateY(var(--ry)) rotateZ(-4deg);transform-style:preserve-3d}
.hero-object{aspect-ratio:auto;min-height:640px}
.cut-stage{position:relative;width:100%;aspect-ratio:1;isolation:isolate}
.cut-backing{position:absolute;inset:5%;background:#fff;border:1px solid #e1e4e8;border-radius:12px;box-shadow:0 9px 25px #1834560c;transition:opacity .65s,transform .65s}
.cut-backing{inset:2%;border:0;border-radius:5px;background:none;box-shadow:none}
.reveal-peel .peel-release-paper{inset:2%;border:0;border-radius:5px;background:none;box-shadow:none}
.cut-art{position:absolute;inset:7%;width:86%;height:86%;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-select:none;transition:filter .5s,transform .5s}
.cut-guide{position:absolute;inset:0;width:100%;height:100%;overflow:visible;touch-action:none;cursor:crosshair;z-index:2}
.uncut-guide{fill:none;stroke:#7c8b9c;stroke-width:2;stroke-dasharray:2 9;stroke-linecap:round}
.cut-paper-edge{fill:none;stroke:#fff;stroke-width:5;stroke-linecap:round;filter:drop-shadow(1px 2px 1px #17294030)}
.cut-slit{fill:none;stroke:#344456;stroke-width:1.5;stroke-linecap:round}
.scissors-cursor{position:absolute;width:168px;height:168px;transform-origin:50% 26%;pointer-events:none;z-index:4;filter:drop-shadow(3px 7px 3px #1c325730)}
.scissors-cursor canvas{display:block;width:168px!important;height:168px!important}
.cut-status{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;font-size:13px;color:#606873;padding:0 10px}
.cut-status button{border:0;background:transparent;color:#2346ad;text-decoration:underline;text-underline-offset:4px;font-size:13px;min-height:40px;cursor:pointer}
.cut-status button:disabled{color:#899099;cursor:default;text-decoration:none}
.cut-workspace[data-complete=true] .cut-backing{opacity:0;transform:translateY(12px) scale(1.015)}
.cut-workspace[data-complete=true] .cut-art{filter:drop-shadow(0 12px 8px #192e5122);transform:translateY(-4px)}
.cut-workspace[data-complete=true] .cut-guide{opacity:0;transition:opacity .4s}
.keyboard-cut{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.keyboard-cut:focus-visible{position:relative;width:auto;height:auto;clip-path:none;padding:12px 18px;border:1px solid #b6c5e7;background:#fff;color:#2346ad;border-radius:8px}
.zoom-artwork{height:auto;min-height:0}
.zoom-artwork>.sticker-workbench{width:min(100%,58dvh,650px)}
@media(max-width:700px){.hero-object{min-height:0;aspect-ratio:auto}.hero-workbench{padding-top:24px}.workbench-tools button{min-height:40px;padding-inline:16px}.scissors-cursor,.scissors-cursor canvas{width:132px!important;height:132px!important}.cut-status{font-size:12px;padding-inline:0}.zoom-artwork>.sticker-workbench{width:min(100%,56dvh)}.workbench-hint{font-size:13px}}
@media(prefers-reduced-motion:reduce){.hero-workbench .workbench-peel{transform:none}.cut-backing,.cut-art,.cut-guide{transition:none!important}}
@media(max-width:700px){.work-image .collection-sticker{width:85%}.zoom-affordance{width:30px;height:30px;bottom:10px;right:10px}.sticker-zoom{width:calc(100vw - 24px);max-height:calc(100dvh - 24px);border-radius:18px}.zoom-content{padding:20px}.zoom-artwork{height:auto}.zoom-caption{gap:12px;align-items:flex-start}.zoom-caption h2{font-size:22px}.zoom-caption>p{max-width:110px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.collection-sticker,.gallery-trigger:hover .collection-sticker{transform:none!important;transition:none}.sticker-zoom[open]{animation:none}.collection-gloss{transition:none}}
