@font-face{font-family:Playfair Display;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/playfair-display-cyrillic-400-italic-drKdN10-.woff2)format("woff2"),url(/assets/playfair-display-cyrillic-400-italic-24vVh5t9.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/playfair-display-vietnamese-400-italic-CD15TOr5.woff2)format("woff2"),url(/assets/playfair-display-vietnamese-400-italic-Cpv4sfwY.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/playfair-display-latin-ext-400-italic-zVOgzDMq.woff2)format("woff2"),url(/assets/playfair-display-latin-ext-400-italic-CZOjvne0.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/playfair-display-latin-400-italic-LeeEXsx5.woff2)format("woff2"),url(/assets/playfair-display-latin-400-italic-hIeePEuE.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:italic;font-display:swap;font-weight:900;src:url(/assets/playfair-display-cyrillic-900-italic-CdoBb79Q.woff2)format("woff2"),url(/assets/playfair-display-cyrillic-900-italic-BaaGcQ77.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:italic;font-display:swap;font-weight:900;src:url(/assets/playfair-display-vietnamese-900-italic-DNYETYOH.woff2)format("woff2"),url(/assets/playfair-display-vietnamese-900-italic-RaqjuC4H.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display;font-style:italic;font-display:swap;font-weight:900;src:url(/assets/playfair-display-latin-ext-900-italic-DJJhuUDA.woff2)format("woff2"),url(/assets/playfair-display-latin-ext-900-italic-BeVhSWUX.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display;font-style:italic;font-display:swap;font-weight:900;src:url(/assets/playfair-display-latin-900-italic-DZvaZDOm.woff2)format("woff2"),url(/assets/playfair-display-latin-900-italic-Coa6X-ET.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:VCR OSD Mono;src:url(/assets/vcr-osd-mono-rus-DUQUXtM4.ttf)format("truetype");font-display:swap}:root{--nav-a:#f2b38a;--nav-b:#e48f8c;--nav-c:#a88bc7;--linen:#f6e9e2;--linen-out:#e6d3cc;--tray-a:#4a3a5e;--tray-b:#3a2d4c;--tab-a:#3a2d4c;--tab-b:#1a1226;--tab-idle:#8f7fa6;--accent:#ffb38a;--plum-a:#6d5a91;--plum-b:#3f305d;--ink:#3a2d4c;--ui:"Helvetica Neue", Helvetica, Arial, sans-serif;--linen-tex:repeating-linear-gradient(0deg, #ffffff59 0 1px, transparent 1px 3px), repeating-linear-gradient(90deg, #783c3c0d 0 1px, transparent 1px 3px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{overscroll-behavior:none;height:100%;margin:0}body{font-family:var(--ui);background-color:var(--linen-out);background-image:var(--linen-tex);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea{-webkit-user-select:text;user-select:text}button{font:inherit;color:inherit}[hidden]{display:none!important}svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.app{height:var(--app-full,100dvh);background-color:var(--linen);background-image:var(--linen-tex);flex-direction:column;max-width:600px;margin:0 auto;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 1px #3c1e3226,0 10px 40px #3c1e324d}.app.kb{left:0;right:0;top:var(--app-top);height:var(--app-h);position:fixed}.app.kb .stage{left:0;right:0;top:var(--stage-top);height:var(--stage-h);z-index:3;padding:10px;position:absolute}.app.kb .tray{margin-top:auto}.navbar{z-index:2;height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 10px 0;background:linear-gradient(90deg, var(--nav-a), var(--nav-b) 50%, var(--nav-c));flex:none;justify-content:space-between;align-items:center;gap:8px;display:flex;position:relative;box-shadow:inset 0 1px #ffffff8c,0 1px #5a284659,0 3px 6px #5028464d}.navbar:before{content:"";pointer-events:none;background:linear-gradient(#ffffff47,#ffffff14);position:absolute;inset:0 0 28px}.logo{left:50%;top:env(safe-area-inset-top);color:#fff;text-shadow:0 1px 2px #78323c73;white-space:nowrap;pointer-events:none;align-items:center;height:56px;margin:0;font:italic 900 31px/1 Playfair Display,Georgia,serif;display:flex;position:absolute;transform:translate(-50%)}.gbtn{color:#fff;font:bold 13px var(--ui);text-shadow:0 -1px #00000059;cursor:pointer;z-index:1;background:linear-gradient(#ffffff52,#ffffff1a 50%,#0000000a 51%,#00000005);border:1px solid #6e3c5080;border-radius:6px;align-items:center;gap:6px;padding:7px 12px;display:inline-flex;position:relative;box-shadow:inset 0 1px #ffffff73,0 1px #ffffff40}.gbtn svg{width:16px;height:16px}.gbtn:active{filter:brightness(.9);box-shadow:inset 0 2px 6px #00000073,0 1px #fff3}.gbtn:active>*{transform:translateY(1px)}.gbtn:disabled{opacity:.55;cursor:default;filter:none;box-shadow:inset 0 1px #ffffff73}.gbtn:disabled>*{transform:none}.gbtn.plum{background:linear-gradient(#8a76ae, var(--plum-a) 50%, var(--plum-b) 51%, #4a3a69);border-color:#241a38}.gbtn.dark{background:linear-gradient(#5e5070,#43365a 50%,#362a4a 51%,#3f3255);border-color:#120c1a;box-shadow:inset 0 1px #fff3,0 1px #ffffff14}.gbtn.big{background:linear-gradient(90deg, var(--nav-a), var(--nav-b) 50%, var(--nav-c));border-color:#b35f6a;padding:11px 26px;font-size:16px;box-shadow:inset 0 1px #ffffff8c,0 2px 5px #5a284659}.gbtn.big:before{content:"";background:#fff3;border-radius:5px 5px 0 0;position:absolute;inset:0 0 50%}.stage{flex:1;justify-content:center;align-items:center;min-height:0;padding:18px;display:flex;position:relative}.print{background:#fffdf8;padding:5px;transition:transform .25s;position:relative;transform:rotate(-1deg);box-shadow:0 4px 14px #461e3259,0 0 0 1px #0000000f}.print.cropping{touch-action:none;overflow:hidden;transform:none}#view{display:block}.empty{text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.empty-card{background:#fffdf8;padding:12px 12px 14px;transform:rotate(-2deg);box-shadow:0 4px 12px #461e324d}.empty-photo{background:linear-gradient(#a88bc7,#e48f8c 55%,#f6b98c);justify-content:center;align-items:center;width:200px;height:200px;display:flex}.empty-photo svg{stroke:#fff;stroke-width:3px;width:120px;height:120px}.empty-card p{color:#6a5a6e;max-width:200px;margin:12px 0 0;font:italic 17px Playfair Display,Georgia,serif}.cropbox{touch-action:none;cursor:move;border:2px solid #fff;position:absolute;box-shadow:0 0 0 9999px #1e14288c}.cropbox .grid{pointer-events:none;background:linear-gradient(90deg,#0000 calc(33.33% - .5px),#fff9 calc(33.33% - .5px) calc(33.33% + .5px),#0000 calc(33.33% + .5px) calc(66.66% - .5px),#fff9 calc(66.66% - .5px) calc(66.66% + .5px),#0000 calc(66.66% + .5px)),linear-gradient(#0000 calc(33.33% - .5px),#fff9 calc(33.33% - .5px) calc(33.33% + .5px),#0000 calc(33.33% + .5px) calc(66.66% - .5px),#fff9 calc(66.66% - .5px) calc(66.66% + .5px),#0000 calc(66.66% + .5px));position:absolute;inset:0}.cropbox .h{touch-action:none;border:4px solid #fff;width:22px;height:22px;position:absolute}.cropbox .nw{cursor:nwse-resize;border-bottom:0;border-right:0;top:-5px;left:-5px}.cropbox .ne{cursor:nesw-resize;border-bottom:0;border-left:0;top:-5px;right:-5px}.cropbox .sw{cursor:nesw-resize;border-top:0;border-right:0;bottom:-5px;left:-5px}.cropbox .se{cursor:nwse-resize;border-top:0;border-left:0;bottom:-5px;right:-5px}.tray{background:linear-gradient(var(--tray-a), var(--tray-b));border-top:1px solid #2a1f38;flex:none;padding:10px;box-shadow:inset 0 1px #ffffff1a,0 -2px 6px #3c1e3240}.stitch{border:1px dashed #ffdcc840;border-radius:8px;align-items:center;min-height:116px;padding:10px;display:flex}.panel{width:100%}#p-filters{align-items:center;gap:10px;display:flex}#p-filters .strip{flex:1}.strip{scrollbar-width:none;scroll-snap-type:x proximity;gap:10px;margin:-10px;padding:10px;scroll-padding:10px;display:flex;overflow-x:auto}.strip::-webkit-scrollbar{display:none}.thumb{text-align:center;width:66px;font:bold 11px var(--ui);color:#d8cde4;text-shadow:0 -1px #000;cursor:pointer;scroll-snap-align:start;background:0 0;border:0;flex:none;padding:0}.thumb .im{background:#2a1f38;border:2px solid #1d1528;border-radius:7px;width:62px;height:62px;margin:0 auto 5px;display:block;overflow:hidden;box-shadow:0 1px #ffffff1f}.thumb canvas{object-fit:cover;width:100%;height:100%;display:block}.thumb.on{color:#fff}.thumb .im{transition:transform 80ms}.thumb:active .im{filter:brightness(.75);transform:scale(.93)}.thumb.on .im{border-color:var(--accent);box-shadow:0 0 8px #ffb38ad9}.thumb.preset{width:84px}.thumb.preset .im{color:#fff;width:80px;height:46px;text-shadow:none;background:linear-gradient(#7b6a93,#3a2d4c);justify-content:center;align-items:center;font-size:19px;display:flex}.thumb small{color:#9b8bb2;margin-top:1px;font-size:10px;font-weight:400;display:block}#p-filters .strip{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),#0000)}.groove{background:linear-gradient(90deg,#00000073 50%,#ffffff1a 50%);flex:none;align-self:stretch;width:2px;margin:4px 0}.dustbox{width:56px;font:bold 11px var(--ui);color:#d8cde4;text-shadow:0 -1px #000;flex-direction:column;flex:none;align-items:center;gap:6px;display:flex}.switch{cursor:pointer;background:linear-gradient(#d4d4d4,#f6f6f6);border:1px solid #120c1a;border-radius:14px;width:48px;height:28px;padding:0;transition:background .2s;position:relative;box-shadow:inset 0 2px 3px #0006,0 1px #ffffff1f}.switch[aria-checked=true]{background:linear-gradient(#d97f7f,#f2b38a)}.switch .knob{background:linear-gradient(#fdfdfd,#d2d2d2);border-radius:50%;width:26px;height:26px;transition:transform .2s;position:absolute;top:0;left:0;box-shadow:0 0 0 1px #00000059,0 1px 3px #00000073}.switch[aria-checked=true] .knob{transform:translate(20px)}.switch:active .knob{background:linear-gradient(#e4e4e4,#bcbcbc)}.inputwrap{margin-bottom:10px;position:relative}.field{cursor:text;align-items:center;display:flex}.field span{white-space:pre;min-width:0;display:block;overflow:hidden}.field span.ph{color:#9a93a3}.field.focused:after{content:"";background:#d97f7f;flex:none;width:2px;height:20px;margin-left:1px;animation:1s step-end infinite caret}@keyframes caret{50%{opacity:0}}.ghost{opacity:0;resize:none;pointer-events:none;z-index:-1;border:0;width:100%;height:40px;padding:0;font-size:16px;position:fixed;top:0;left:0}.inset{resize:none;width:100%;height:38px;font:16px/36px var(--ui);color:#222;background:linear-gradient(#e9e6ee,#fff 35%);border:1px solid #120c1a;border-radius:16px;outline:none;padding:0 34px 0 14px;display:block;overflow:hidden;box-shadow:inset 0 2px 3px #00000073,0 1px #ffffff1f}.clear{color:#fff;width:20px;height:20px;font:bold 15px/20px var(--ui);cursor:pointer;background:#b9b2c2;border:0;border-radius:50%;padding:0;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.clear:active{background:#8f8798}.seg{border:1px solid #120c1a;border-radius:7px;margin-bottom:12px;display:flex;overflow:hidden;box-shadow:0 1px #ffffff1a}.seg button{font:bold 13px var(--ui);color:#e3d9ee;text-shadow:0 -1px #000;cursor:pointer;background:linear-gradient(#5e5070,#43365a 50%,#362a4a 51%,#3f3255);border:0;border-right:1px solid #120c1a;flex:1;padding:8px 4px}.seg button:last-child{border-right:0}.seg button.on{color:#fff;text-shadow:0 -1px #5a1e2873;background:linear-gradient(#c97a7c,#e48f8c);box-shadow:inset 0 2px 5px #00000073}.seg button:active{background:linear-gradient(#2c2240,#3a2d4c);box-shadow:inset 0 2px 5px #0009}.seg button.on:active{background:linear-gradient(#b56a6c,#d27f7c)}.btnrow{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.tabbar{padding:5px 5px calc(5px + env(safe-area-inset-bottom));background:linear-gradient(var(--tab-a), #241a33 30px, var(--tab-b) 30px, #20172c 60px);border-top:1px solid #120c1a;flex:none;gap:4px;display:flex}.tabbar button{color:var(--tab-idle);font:bold 11px var(--ui);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:1;padding:5px 0 4px}.tabbar svg{width:24px;height:24px;margin:0 auto 2px;display:block}.tabbar button:active{background:#0000004d;box-shadow:inset 0 2px 5px #000000b3}.tabbar button:active svg{transform:translateY(1px)}.tabbar button.on{color:#fff;background:#ffffff17;box-shadow:inset 0 1px 3px #0009,0 1px #ffffff0f}.tabbar button.on svg{color:var(--accent);filter:drop-shadow(0 0 4px #ffb38ae6)}.drop{z-index:10;pointer-events:none;background:#3a2d4cb3;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.drop span{color:#fff;border:2px dashed #ffd9c2;border-radius:12px;padding:18px 26px;font:italic 900 24px Playfair Display,serif}@media (width<=420px){#open span,#save span{display:none}#open,#save{padding:7px 10px}.logo{font-size:28px}}@media (width>=640px){body{padding:24px 0}.app{border-radius:10px;height:calc(100dvh - 48px)}}.rotate{z-index:50;background-color:var(--linen);background-image:var(--linen-tex);color:var(--ink);flex-direction:column;justify-content:center;align-items:center;gap:14px;font:italic 900 24px Playfair Display,Georgia,serif;display:none;position:fixed;inset:0}.rotate svg{color:#d97f7f;width:56px;height:56px}@media (orientation:landscape) and (height<=500px) and (pointer:coarse){.rotate{display:flex}}
