@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Serif+SC:wght@500;600&display=swap";:root{color:#554a40;background:#dedad0;font-family:DM Mono,ui-monospace,monospace;font-synthesis:none;--editor-surface: 248 244 235;--editor-ink: 84 72 62;--editor-muted: 129 113 100;--editor-line: 110 91 73;--editor-accent: 116 98 82;--editor-stage: 216 208 195;--editor-on-dark: 245 236 220;--editor-danger: 155 73 60;--editor-success: 79 115 93}*{box-sizing:border-box}html,body{min-width:320px;min-height:100%}body{margin:0}button{font:inherit}main{min-height:100vh;display:grid;place-items:center;padding:18px}.scene-shell{position:relative;width:min(1120px,100%);height:min(820px,calc(100vh - 36px));min-height:580px;overflow:hidden;border:1px solid rgba(117,101,83,.12);border-radius:30px;background:radial-gradient(circle at 48% 38%,rgba(255,255,252,.98) 0 20%,transparent 56%),linear-gradient(145deg,#f7f4ec,#e7e2d7 70%,#d8d2c6);box-shadow:0 28px 80px #54493d33,inset 0 1px #ffffffeb}.scene-shell:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.22;background-image:radial-gradient(rgba(91,76,62,.26) .45px,transparent .65px);background-size:5px 5px;mix-blend-mode:multiply}.background-media{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.background-media img,.background-media video{width:100%;height:100%;display:block;object-fit:cover}.background-media img[hidden],.background-media video[hidden]{display:none}.background-media:after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(180deg,#f8f4eb3b,#493b3024)}.background-media:before{content:"";position:absolute;inset:-3%;z-index:2;pointer-events:none;opacity:0}.background-media img,.background-media video{transition:filter .32s ease,transform .32s ease}.background-media[data-effect]:not([data-effect=original]) img,.background-media[data-effect]:not([data-effect=original]) video{filter:brightness(var(--background-effect-brightness, 1)) contrast(var(--background-effect-contrast, 1)) saturate(var(--background-effect-saturation, 1)) grayscale(var(--background-effect-grayscale, 0)) sepia(var(--background-effect-sepia, 0)) hue-rotate(var(--background-effect-hue, 0deg))}.background-media[data-effect=glitch] img,.background-media[data-effect=glitch] video{animation:background-glitch-jitter 2.7s steps(2,end) infinite}.background-media[data-effect=glitch]:before{opacity:var(--background-effect-overlay, .56);background:linear-gradient(90deg,rgba(255,31,88,.34),transparent 24%,transparent 72%,rgba(0,224,255,.32)),repeating-linear-gradient(0deg,transparent 0 9px,rgba(20,13,28,.22) 10px 12px,transparent 13px 28px);background-size:100% 100%,100% 74px;mix-blend-mode:screen;animation:background-glitch-scan 1.35s steps(5,end) infinite}.background-media[data-effect=glitch]:after{background:repeating-linear-gradient(180deg,transparent 0 16%,rgba(250,33,102,.2) 16.5% 18%,transparent 18.5% 46%,rgba(0,229,255,.18) 46.5% 49%,transparent 49.5% 100%),linear-gradient(180deg,#f8f4eb14,#271f3429);mix-blend-mode:screen;transform:translate(var(--background-effect-shift, 8px))}.background-media[data-effect=vhs] img,.background-media[data-effect=vhs] video{animation:background-vhs-drift 5.6s ease-in-out infinite}.background-media[data-effect=vhs]:before{opacity:var(--background-effect-overlay, .56);background:repeating-linear-gradient(0deg,rgba(16,18,24,.18) 0 1px,transparent 2px 5px),linear-gradient(90deg,rgba(255,50,85,.1),transparent 38%,rgba(58,210,255,.1));mix-blend-mode:multiply;animation:background-vhs-scan 7s linear infinite}.background-media[data-effect=vhs]:after{background:radial-gradient(ellipse at center,transparent 35%,rgba(31,25,35,.42) 100%)}.background-media[data-effect=halftone]:before{opacity:var(--background-effect-overlay, .56);background-image:radial-gradient(circle,rgba(41,34,30,.7) 0 1.25px,transparent 1.4px);background-size:var(--background-effect-dot-size, 6px) var(--background-effect-dot-size, 6px);mix-blend-mode:multiply;transform:rotate(-1.5deg) scale(1.04)}.background-media[data-effect=halftone]:after{background:linear-gradient(135deg,#e751351f,#f4d56e1f 52%,#1c717724);mix-blend-mode:color}.background-media[data-effect=cyanotype]:before{opacity:var(--background-effect-grain, .26);background:radial-gradient(circle at 24% 22%,rgba(238,246,231,.42),transparent 30%),repeating-radial-gradient(circle at 70% 40%,rgba(235,244,228,.14) 0 .6px,transparent .8px 4px);mix-blend-mode:screen}.background-media[data-effect=cyanotype]:after{background:linear-gradient(145deg,#072d5b4d,#14537e1f 55%,#e0eed92e);mix-blend-mode:color-burn}.background-media[data-effect=newspaper]:before{opacity:var(--background-effect-grain, .26);background:radial-gradient(circle,rgba(39,34,29,.62) 0 .8px,transparent 1px),repeating-linear-gradient(92deg,rgba(72,58,44,.08) 0 1px,transparent 1px 7px);background-size:var(--background-effect-dot-size, 6px) var(--background-effect-dot-size, 6px),auto;mix-blend-mode:multiply}.background-media[data-effect=newspaper]:after{background:linear-gradient(180deg,#f4ebcf33,#6f583f24);mix-blend-mode:multiply}@keyframes background-glitch-jitter{0%,88%,to{transform:translate(0) scale(1)}90%{transform:translate(var(--background-effect-shift-half-negative, -4px)) scale(1.012)}93%{transform:translate(var(--background-effect-shift, 8px)) scale(1.006)}96%{transform:translate(var(--background-effect-shift-negative, -8px)) scale(1.01)}}@keyframes background-glitch-scan{0%{background-position:0 0,0 0;transform:translate(0)}45%{transform:translate(var(--background-effect-shift, 8px))}55%{transform:translate(var(--background-effect-shift-negative, -8px))}to{background-position:0 0,0 148px;transform:translate(0)}}@keyframes background-vhs-drift{0%,to{transform:scale(1.01) translate(0)}50%{transform:scale(1.016) translate(var(--background-effect-shift-quarter, 2px))}}@keyframes background-vhs-scan{0%{background-position:0 0,0 0}to{background-position:0 80px,0 0}}.scene-shell:has(.background-media.is-custom) .masthead,.scene-shell:has(.background-media.is-custom) .page-status,.scene-shell:has(.background-media.is-custom) .hint{text-shadow:0 1px 9px rgba(255,252,244,.96),0 0 2px rgba(255,252,244,.95)}canvas{position:absolute;inset:0;z-index:1;width:100%;height:100%;display:block;cursor:grab;touch-action:none}canvas:active{cursor:grabbing}.masthead{position:absolute;z-index:2;top:30px;left:34px;pointer-events:none}.masthead span{display:block;font-size:9px;letter-spacing:.18em;color:#786b5f}h1{margin:8px 0 0;font:600 clamp(20px,2.6vw,30px) "Noto Serif SC",serif;letter-spacing:.08em;color:#56493e}.page-status{position:absolute;z-index:3;top:32px;right:34px;min-width:78px;padding:7px 12px;border:1px solid rgba(104,88,71,.22);border-radius:999px;background:#faf7efb8;color:#6e6054;font-size:10px;letter-spacing:.08em;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hint{position:absolute;z-index:2;left:50%;bottom:91px;transform:translate(-50%);margin:0;color:#57483c9e;font-size:10px;letter-spacing:.12em;white-space:nowrap;pointer-events:none}.controls{position:absolute;z-index:4;bottom:27px;width:100%;display:flex;justify-content:center;flex-wrap:wrap;gap:8px;padding:0 18px}.background-effects-panel{position:absolute;z-index:7;left:50%;bottom:82px;width:min(690px,calc(100% - 36px));transform:translate(-50%);padding:14px;border:1px solid rgb(var(--editor-line) / .24);border-radius:19px;background:rgb(var(--editor-surface) / .94);box-shadow:0 20px 56px #372c233b,inset 0 1px #ffffffd1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:background-panel-in .2s ease-out both}.background-effects-panel[hidden]{display:none}.background-effects-panel__header{display:flex;align-items:center;justify-content:space-between;padding:0 1px 11px 5px}.background-effects-panel__header span{display:block;color:rgb(var(--editor-muted));font-size:7px;letter-spacing:.18em}.background-effects-panel__header strong{display:block;margin-top:3px;color:rgb(var(--editor-ink));font:600 14px "Noto Serif SC",serif;letter-spacing:.06em}button#close-background-effects{width:34px;min-width:34px;height:34px;min-height:34px;padding:0;font-size:20px}.background-effects-list{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.background-effects-list button{min-height:36px;padding:7px 5px;border-radius:10px;font-size:9px;box-shadow:none}.background-effects-list button[aria-pressed=true]{border-color:rgb(var(--editor-accent) / .78);background:rgb(var(--editor-accent) / .14);box-shadow:inset 0 0 0 1px rgb(var(--editor-accent) / .17)}.background-effect-intensity{display:grid;grid-template-columns:auto minmax(0,1fr) 42px;align-items:center;gap:10px;padding:12px 4px 0;color:rgb(var(--editor-muted));font-size:9px}.background-effect-intensity input{width:100%;accent-color:rgb(var(--editor-accent))}.background-effect-intensity output{text-align:right;font-variant-numeric:tabular-nums}@keyframes background-panel-in{0%{opacity:0;transform:translate(-50%,8px) scale(.985)}to{opacity:1;transform:translate(-50%) scale(1)}}button{min-height:40px;padding:9px 15px;border:1px solid #b7a693;border-radius:999px;background:#faf7eeeb;color:#5a4b3f;box-shadow:0 7px 18px #5b49391a;font-size:11px;letter-spacing:.03em;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .18s ease,background .18s ease,opacity .18s ease}button.primary{background:#746252;border-color:#746252;color:#fffaf0}button:hover:not(:disabled){transform:translateY(-2px);background:#fffdf8}button.primary:hover:not(:disabled){background:#645345}button:disabled{opacity:.35;cursor:default}button:focus-visible{outline:3px solid rgba(196,132,79,.55);outline-offset:3px}.stamp-viewer{position:absolute;inset:0;z-index:10;display:grid;place-items:center;padding:26px;background:#493f3557;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.stamp-viewer[hidden]{display:none}.stamp-viewer__panel{width:min(560px,100%);padding:18px;border:1px solid rgba(110,91,73,.22);border-radius:24px;background:#f8f4ebf5;box-shadow:0 28px 80px #372c2347,inset 0 1px #ffffffe6;animation:viewer-in .24s ease-out both}.stamp-viewer__header{display:flex;align-items:center;justify-content:space-between;min-height:46px;padding:0 2px 12px 8px}.stamp-viewer__header span{display:block;color:#8a796a;font-size:8px;letter-spacing:.18em}.stamp-viewer__header h2{margin:5px 0 0;color:#54483e;font:600 18px "Noto Serif SC",serif;letter-spacing:.06em}button.stamp-viewer__close{min-width:40px;width:40px;height:40px;min-height:40px;padding:0;border-color:#78645240;background:#fffdf7d1;font:400 24px/1 DM Mono,monospace}.stamp-viewer__stage{position:relative;height:min(58vh,520px);min-height:360px;overflow:hidden;border:1px solid rgba(112,94,77,.12);border-radius:17px;background:radial-gradient(circle at 50% 42%,#fffffafa,#ebe5d9eb 68%,#d6cdbfeb);box-shadow:inset 0 1px #ffffffe6}#stamp-viewer-canvas{cursor:grab}#stamp-viewer-canvas:active{cursor:grabbing}.stamp-viewer__actions{display:flex;justify-content:center;gap:8px;margin-top:12px}.stamp-viewer__actions button{min-height:36px;padding:7px 14px;font-size:10px}.stamp-viewer__hint{position:static;transform:none;margin:9px 0 1px;color:#817164;font-size:9px;letter-spacing:.09em;text-align:center}.stamp-editor{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:24px;background:#3a312a85;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.stamp-editor[hidden]{display:none}.stamp-editor__panel{width:min(940px,100%);max-height:calc(100vh - 48px);overflow:auto;padding:19px;border:1px solid rgb(var(--editor-line) / .28);border-radius:25px;background:rgb(var(--editor-surface) / .98);box-shadow:0 32px 90px #30261e57,inset 0 1px #ffffffeb;animation:viewer-in .24s ease-out both}.stamp-editor__header,.stamp-editor__footer{display:flex;align-items:center;justify-content:space-between}.stamp-editor__header{padding:1px 2px 15px 8px}.stamp-editor__header span,.stamp-editor__tool-heading span{display:block;color:rgb(var(--editor-muted));font-size:8px;letter-spacing:.18em}.stamp-editor__header h2{margin:5px 0 0;color:rgb(var(--editor-ink));font:600 19px "Noto Serif SC",serif;letter-spacing:.06em}button.stamp-editor__close{width:40px;min-width:40px;height:40px;min-height:40px;padding:0;font-size:24px}.stamp-editor__layout{display:grid;grid-template-columns:minmax(0,1fr) 286px;gap:16px}.stamp-editor__workspace,.stamp-editor__tools{border:1px solid rgb(var(--editor-line) / .16);border-radius:18px;background:#fffdf794}.stamp-editor__workspace{padding:12px}.stamp-editor__canvas-wrap{position:relative;height:min(56vh,520px);min-height:390px;overflow:hidden;border-radius:13px;background:rgb(var(--editor-stage));box-shadow:inset 0 0 0 1px rgb(var(--editor-line) / .14)}canvas.stamp-editor__canvas{position:relative;inset:auto;z-index:auto;width:100%;height:100%;cursor:move;touch-action:none}.stamp-editor__frame-label{position:absolute;left:50%;top:13px;transform:translate(-50%);padding:5px 9px;border-radius:999px;background:#2d251fb8;color:rgb(var(--editor-on-dark));font-size:8px;letter-spacing:.11em;pointer-events:none}.stamp-editor__zoom{display:grid;grid-template-columns:36px minmax(0,1fr) 36px auto;align-items:center;gap:7px;padding-top:10px}.stamp-editor__zoom button{min-height:34px;padding:5px 10px}.stamp-editor__zoom input{width:100%;accent-color:rgb(var(--editor-accent))}.stamp-editor__workspace>p{margin:7px 0 0;color:rgb(var(--editor-muted));font-size:8px;letter-spacing:.08em;text-align:center}.stamp-editor__tools{display:flex;flex-direction:column;padding:16px}.stamp-editor__tool-heading{display:flex;align-items:end;justify-content:space-between;padding-bottom:13px;border-bottom:1px solid rgb(var(--editor-line) / .14)}.stamp-editor__tool-heading strong{color:rgb(var(--editor-ink));font:600 13px "Noto Serif SC",serif}.stamp-editor__video-note{margin:12px 0 0;padding:9px 10px;border:1px solid rgb(var(--editor-accent) / .2);border-radius:10px;background:rgb(var(--editor-accent) / .08);color:rgb(var(--editor-muted));font-size:9px;line-height:1.55}.stamp-editor__video-note[hidden]{display:none}.style-options{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:15px 0;padding:0;border:0}.style-options legend{grid-column:1 / -1;margin-bottom:3px;color:rgb(var(--editor-muted));font-size:9px}.style-options label{cursor:pointer}.style-options input{position:absolute;opacity:0;pointer-events:none}.style-options span{display:block;padding:8px 6px;border:1px solid rgb(var(--editor-line) / .22);border-radius:10px;color:rgb(var(--editor-ink));font-size:9px;text-align:center;transition:border-color .18s ease,background .18s ease}.style-options input:checked+span{border-color:rgb(var(--editor-accent) / .72);background:rgb(var(--editor-accent) / .12);box-shadow:inset 0 0 0 1px rgb(var(--editor-accent) / .18)}.style-options input:focus-visible+span{outline:3px solid rgba(196,132,79,.5);outline-offset:2px}.stamp-editor__prompt span{display:block;margin-bottom:6px;color:rgb(var(--editor-muted));font-size:9px}.stamp-editor__prompt textarea{width:100%;resize:vertical;min-height:76px;padding:10px;border:1px solid rgb(var(--editor-line) / .24);border-radius:11px;outline:none;background:#fffdf8d1;color:rgb(var(--editor-ink));font:10px/1.6 DM Mono,monospace}.stamp-editor__prompt textarea:focus{border-color:rgb(var(--editor-accent) / .72);box-shadow:0 0 0 3px rgb(var(--editor-accent) / .1)}.stamp-editor__generate{width:100%;margin-top:12px}.stamp-motion-tool{margin-top:14px;padding-top:13px;border-top:1px solid rgb(var(--editor-line) / .14)}.stamp-motion-tool__heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:10px}.stamp-motion-tool__heading span{color:rgb(var(--editor-muted));font-size:8px;letter-spacing:.16em}.stamp-motion-tool__heading strong{color:rgb(var(--editor-ink));font:600 11px "Noto Serif SC",serif}#restore-uploaded-artwork{width:100%;margin-top:7px}.stamp-editor__status{min-height:34px;margin:10px 2px 0;color:rgb(var(--editor-muted));font-size:9px;line-height:1.55}.stamp-editor__status[data-state=error]{color:rgb(var(--editor-danger))}.stamp-editor__status[data-state=success]{color:rgb(var(--editor-success))}.stamp-editor__footer{justify-content:flex-end;gap:8px;padding-top:14px}@keyframes viewer-in{0%{opacity:0;transform:translateY(10px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:620px){main{padding:0}.scene-shell{width:100%;height:100vh;min-height:0;border:0;border-radius:0}.masthead{top:21px;left:21px}.masthead span{font-size:8px}.page-status{top:21px;right:18px}.hint{bottom:108px}.controls{bottom:14px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}button{min-height:37px;padding:7px 6px;font-size:8.5px}.background-effects-panel{bottom:103px;width:calc(100% - 20px);padding:11px;border-radius:16px}.background-effects-list{grid-template-columns:repeat(3,minmax(0,1fr))}.background-effects-list button{min-height:33px}.background-effect-intensity{gap:7px}.stamp-viewer{padding:14px}.stamp-viewer__panel{padding:13px;border-radius:20px}.stamp-viewer__header{padding:0 0 10px 5px}.stamp-viewer__header h2{font-size:16px}.stamp-viewer__stage{height:min(57vh,480px);min-height:300px}.stamp-viewer__actions{margin-top:9px}.stamp-viewer__actions button{min-height:34px;padding:6px 11px;font-size:9px}button.stamp-viewer__close{width:38px;min-width:38px;height:38px;min-height:38px;padding:0}.stamp-editor{padding:8px;align-items:start}.stamp-editor__panel{max-height:calc(100vh - 16px);padding:12px;border-radius:19px}.stamp-editor__header{padding:2px 1px 10px 5px}.stamp-editor__layout{grid-template-columns:1fr;gap:10px}.stamp-editor__canvas-wrap{height:48vh;min-height:300px}.stamp-editor__tools{padding:13px}.stamp-editor__zoom{grid-template-columns:34px minmax(0,1fr) 34px auto}.stamp-editor__footer{position:sticky;bottom:-12px;margin:0 -12px -12px;padding:10px 12px 12px;background:rgb(var(--editor-surface) / .96)}}@media(max-height:650px){.masthead,.page-status{top:18px}.hint{display:none}.controls{bottom:10px}button{min-height:34px}}@media(prefers-reduced-motion:reduce){button{transition:none}.stamp-viewer__panel,.stamp-editor__panel,.background-effects-panel{animation:none}.style-options span{transition:none}.background-media img,.background-media video,.background-media:before{animation:none!important}}
