.editor-shell{width:min(100% - 48px,1120px);margin:0 auto}.editor-header{padding:32px 0 24px;border-bottom:1px solid #e3e3dd}.editor-main{margin:32px 0 48px}.editor-intro .back-button{display:inline-flex;text-decoration:none;margin:0 0 22px}.editor-intro h1{font-size:clamp(30px,5vw,44px);line-height:1.3;letter-spacing:-1.5px;margin-bottom:12px}.editor-intro h1 span{background:#ffed00;padding:0 6px;margin-left:-6px}.editor-intro>p{margin:0 0 28px;color:#666;font-size:13px}.editor-workspace{display:grid;gap:28px}.editor-preview{min-width:0}.editor-stage{position:relative;aspect-ratio:4 / 5;overflow:hidden;background:#e9e8e2;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.editor-stage:active{cursor:grabbing}.editor-stage:focus-visible{outline:2px solid #171717;outline-offset:5px}.editor-stage>svg{display:block;width:100%;height:100%;pointer-events:none}.editor-loading{position:absolute;inset:0;display:grid;place-items:center;background:#ffffffb8;font-size:13px}.gesture-hint{margin:12px 0 0;text-align:center;color:#666;font-size:10px;line-height:1.6}.editor-controls{min-width:0}.editor-controls h2{margin:0 0 16px;font-size:16px}.editor-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:30px}.editor-presets button{background:#f6f6f2;border:1px solid #d7d7d0;padding:4px;aspect-ratio:4 / 5;min-width:0}.editor-presets button[aria-pressed=true]{border:2px solid #171717;background:#ffed00;padding:3px;box-shadow:3px 3px #ffed00}.editor-presets img{display:block;width:100%;height:100%;object-fit:cover}.editor-upload{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:9px;font-size:10px}.editor-slider-label{display:flex;justify-content:space-between;align-items:center;font-size:13px}.editor-slider-label label{margin:0;font-size:inherit}.editor-slider-label output{color:#666;font-size:12px;font-variant-numeric:tabular-nums}.editor-controls input[type=range]{display:block;width:100%;height:40px;margin:0 0 12px;padding:0;border:0;background:transparent;appearance:none;-webkit-appearance:none;cursor:pointer}.editor-controls input[type=range]::-webkit-slider-runnable-track{height:3px;background:#d6d6d0}.editor-controls input[type=range]::-moz-range-track{height:3px;background:#d6d6d0}.editor-controls input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:20px;height:24px;margin-top:-10px;border:2px solid #171717;background:#ffed00;border-radius:0}.editor-controls input[type=range]::-moz-range-thumb{width:16px;height:20px;border:2px solid #171717;background:#ffed00;border-radius:0}.editor-reset{display:flex;align-items:center;gap:8px;border:0;background:transparent;padding:0;min-height:44px;font-size:12px;color:#666;margin-bottom:24px}.editor-template-note{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #deded8;padding:20px 0;font-size:12px}.editor-template-note span:last-child{color:#666}.editor-download{display:flex;align-items:center;justify-content:center;gap:10px}.editor-local-note,.editor-notice{font-size:10px;color:#666;text-align:center;line-height:1.7}.editor-notice{color:#171717;font-size:12px}.editor-link{text-align:center;text-underline-offset:3px}@media(min-width:760px){.editor-main{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,2fr);gap:40px;margin-top:48px}.editor-workspace{grid-template-columns:minmax(0,1.2fr) minmax(240px,1fr);align-items:start;gap:32px}.editor-intro h1{font-size:36px}.editor-controls{padding-top:4px}}@media(min-width:760px)and (max-width:1060px){.editor-main{grid-template-columns:1fr;gap:24px}.editor-intro h1 br{display:none}.editor-intro h1 span{margin-left:4px}.editor-intro>p{margin-bottom:0}.editor-workspace{max-width:820px}}@media(max-width:759px){.editor-shell{max-width:440px}.editor-header{padding-top:24px}.editor-main{margin-top:20px}.editor-intro .back-button{margin-bottom:12px}.editor-intro h1 br{display:none}.editor-intro h1 span{display:inline;margin-left:4px}.editor-intro h1{font-size:29px}}@font-face{font-family:Readex Pro;src:url(/assets/readex-pro.woff2) format("woff2");font-weight:160 700;font-display:swap}:root{font-family:Readex Pro,Arial,sans-serif;color:#171717;background:#fff;font-synthesis:none;font-weight:700}*{box-sizing:border-box;border-radius:0}body{margin:0}button,input{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #171717;outline-offset:4px}h1:focus{outline:none}.app-shell{width:min(100% - 48px,400px);margin:0 auto}header{padding-top:40px}header img{display:block;width:60px;height:auto}main{margin:48px 0}h1{margin:0 0 24px;font-size:26px;font-weight:700;line-height:1.35;letter-spacing:-.6px}.description{margin:-12px 0 24px;color:#666;font-size:14px;line-height:1.6}.primary{display:block;width:100%;min-height:48px;padding:12px 16px;border:0;border-radius:0;background:#ffed00;font-size:14px;font-weight:700}.primary:hover:not(:disabled){background:#f0df00}.text-button{display:block;min-height:44px;padding:12px 0;margin:4px auto 0;background:none;border:0;color:#666;font-size:13px}.text-button:hover{color:#171717;text-decoration:underline}.back-button{display:flex;align-items:center;gap:7px;min-height:44px;padding:0;margin:-12px 0 16px;background:none;border:0;color:#666;font-size:13px}.viewfinder{position:relative;width:100%;aspect-ratio:1;margin-bottom:20px;background:#f4f4f4;border-radius:0;overflow:hidden}.viewfinder video,.selfie-preview{display:block;width:100%;height:100%;object-fit:cover}.viewfinder video{position:absolute;opacity:0;transform:scaleX(-1)}.viewfinder video.visible{opacity:1}.camera-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;gap:16px;align-items:center;justify-content:center;color:#888;font-size:13px}.selfie-summary{display:flex;align-items:center;gap:16px;margin-bottom:24px}.selfie-summary img{width:48px;height:48px;object-fit:cover;border-radius:0}.selfie-summary .text-button{margin:0}label{display:block;margin-bottom:8px;font-size:14px}input:not([type=file]){display:block;width:100%;min-width:0;height:48px;padding:10px 12px;margin-bottom:24px;border:1px solid #ccc;border-radius:0;background:#fff;font-size:16px}input[aria-invalid=true]{border-color:#a52a20}.error{color:#a52a20;font-size:13px;line-height:1.6;margin:12px 0 20px}input+.error{margin-top:-16px}.demo-note{margin:12px 0 0;color:#777;font-size:12px;text-align:center;line-height:1.6}footer{display:flex;gap:20px;padding:0 0 24px}footer a{color:#777;font-size:12px;text-decoration:none;padding:8px 0}footer a:hover{text-decoration:underline}@media(max-width:480px){header{padding-top:24px}main{margin-top:32px;margin-bottom:32px}h1{font-size:24px}}.camera-icon{display:block;width:32px;height:32px}.photo-thumbnail{display:block;padding:0;border:0;background:#f4f4f4;cursor:zoom-in;flex-shrink:0}.photo-thumbnail img{display:block;width:88px;height:104px;object-fit:cover}.photo-actions .text-button{text-align:left;margin:0;padding:10px 0}.photo-actions .text-button:first-child{color:#171717}.selfie-note{font-size:12px}.selfie-preview-button{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}.photo-viewer{position:fixed;inset:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));border:0;background:#111;color:#fff;overflow:hidden}.photo-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:14px}.photo-viewer::backdrop{background:#111}.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;font-size:14px}.viewer-close,.viewer-controls button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #777;background:#111;color:#fff;flex-shrink:0}.viewer-close:focus-visible,.viewer-controls button:focus-visible{outline-color:#ffed00}.viewer-controls button:disabled{cursor:default;opacity:.35}.zoom-surface{min-height:0;touch-action:none;cursor:grab}.zoom-surface:active{cursor:grabbing}.zoom-image>img{display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-select:none;pointer-events:none}.viewer-controls{display:flex;justify-content:center;align-items:center;gap:12px}.viewer-controls output{min-width:64px;text-align:center;font-size:14px;font-variant-numeric:tabular-nums}.viewer-hint{margin:0;text-align:center;color:#bbb;font-size:11px;line-height:1.5}.delivery-scene{position:relative;width:min(100%,320px);height:230px;margin:0 auto 28px}.delivery-camera{position:absolute;left:calc(50% - 46px);top:50px;width:92px;height:92px;display:grid;place-items:center;z-index:5;animation:delivery-camera 5s both}.delivery-camera .camera-icon{width:80px;height:80px}.camera-glint{position:absolute;top:5px;right:-2px;width:24px;height:24px;background:#ffed00;clip-path:polygon(50% 0,60% 38%,100% 50%,60% 62%,50% 100%,40% 62%,0 50%,40% 38%);animation:delivery-glint 5s both}.delivery-photos{position:absolute;inset:0;z-index:2}.delivery-photo{position:absolute;top:24px;left:calc(50% - 46px);width:92px;height:116px;padding:5px 5px 18px;border:1px solid #171717;background:#fff;opacity:0;animation:delivery-photo 5s both}.delivery-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 35%}.delivery-photo-1{--fan-x: -64px;--fan-angle: -14deg}.delivery-photo-2{--fan-x: 0px;--fan-angle: -2deg;z-index:1}.delivery-photo-3{--fan-x: 64px;--fan-angle: 12deg}.delivery-envelope,.envelope-front{position:absolute;width:160px;height:112px;left:calc(50% - 80px);top:98px;animation:delivery-envelope 5s both}.delivery-envelope{z-index:1}.envelope-front{z-index:3}.delivery-envelope svg,.envelope-front svg{display:block;width:100%;height:100%;overflow:visible}.envelope-flap{transform-origin:80px 40px;animation:delivery-flap 5s both}.envelope-open-flap{transform-origin:80px 40px;animation:delivery-open-flap 5s both}@keyframes delivery-open-flap{0%,70%{transform:scaleY(1)}82%,to{transform:scaleY(0)}}.delivery-trail{position:absolute;top:145px;left:calc(50% - 110px);display:grid;gap:9px;animation:delivery-trail 5s both}.delivery-trail i{display:block;width:24px;height:2px;background:#171717}.delivery-trail i:nth-child(2){width:36px;margin-left:-12px}@keyframes delivery-camera{0%{opacity:0;transform:translateY(10px) scale(.9)}8%,20%{opacity:1;transform:none}29%,to{opacity:0;transform:scale(.85)}}@keyframes delivery-glint{0%,12%{opacity:0;transform:scale(.3)}18%{opacity:1;transform:scale(1)}25%,to{opacity:0;transform:scale(1.2)}}@keyframes delivery-photo{0%,19%{opacity:0;transform:translateY(50px) scale(.5)}32%,43%{opacity:1;transform:translate(var(--fan-x)) rotate(var(--fan-angle))}57%{opacity:1;transform:translateY(28px) scale(.78)}70%{opacity:1;transform:translateY(68px) scale(.75)}79%,to{opacity:0;transform:translateY(100px) scale(.7)}}@keyframes delivery-envelope{0%,40%{opacity:0;transform:translateY(18px)}50%,80%{opacity:1;transform:none}92%,to{opacity:1;transform:translate(18px,-8px) rotate(-5deg)}}@keyframes delivery-flap{0%,70%{opacity:0;transform:scaleY(0)}82%,to{opacity:1;transform:scaleY(1)}}@keyframes delivery-trail{0%,80%{opacity:0;transform:translate(0)}87%{opacity:1}to{opacity:0;transform:translate(-18px)}}.completed{padding-top:20px;text-align:center}.completed h1{max-width:320px;margin-left:auto;margin-right:auto}.completed .description{margin-bottom:32px}.completed h1,.completed .description{animation:reveal .5s .1s both}.close-note{margin:0;padding:16px 0;border-top:1px solid #e5e5e5;color:#666;font-size:13px;line-height:1.6}.submit-button{position:relative;overflow:hidden}.submit-button.submitting{opacity:1}.submit-button.submitting:after{content:"";position:absolute;left:0;bottom:0;width:35%;height:3px;background:#171717;animation:submitting .9s ease-in-out infinite alternate}@keyframes reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes submitting{0%{transform:translate(0)}to{transform:translate(190%)}}@media(prefers-reduced-motion:reduce){.delivery-scene *,.completed h1,.completed .description,.submit-button.submitting:after{animation:none}.delivery-camera,.delivery-trail,.envelope-flap{display:none}.delivery-photo{opacity:1;transform:translate(calc(var(--fan-x) * .5),35px) scale(.75) rotate(var(--fan-angle))}}header{display:flex;align-items:center;justify-content:space-between}header>span{font-size:12px}.welcome{margin-top:28px}.polaroid-gallery{position:relative;aspect-ratio:1.38;margin:0 -4px 24px}.polaroid{position:absolute;width:40%;margin:0;padding:7px 7px 25px;border:1px solid #deded8;background:#fff;box-shadow:0 4px 12px #17171714}.polaroid img{display:block;width:100%;height:auto;aspect-ratio:3 / 4;object-fit:cover;object-position:50% 40%}.polaroid-left{top:36px;left:0;z-index:1;transform:rotate(-12deg)}.polaroid-center{top:8px;left:30%;z-index:3;transform:rotate(-3deg)}.polaroid-right{top:28px;right:0;z-index:2;transform:rotate(9deg)}.welcome h1{font-size:30px;line-height:1.25;letter-spacing:-1px;margin-bottom:28px}.welcome .primary{min-height:52px}@media(max-width:380px){.welcome h1{font-size:27px}}.desktop-qr{display:none}@media(min-width:1000px){.page-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100svh}.desktop-qr{display:grid;place-items:center;position:sticky;top:0;height:100svh;padding:32px;background:#f6f6f2;border-right:1px solid #e5e5df}.qr-content{width:min(100%,340px);text-align:center}.qr-content h2{margin:0;font-size:32px;line-height:1.5;letter-spacing:-.6px}.qr-content h2 span{display:inline-block;padding:0 10px;color:#171717;background:#ffed00;transform:rotate(-2deg)}.qr-arrow{display:block;width:160px;height:100px;margin:8px auto 0;color:#171717}.qr-code{display:block;width:fit-content;max-width:100%;margin:0 auto;padding:12px;background:#fff;border:1px solid #e5e5df}.qr-code svg{display:block;max-width:100%;height:auto}.qr-content p{margin:24px 0 8px;font-size:14px}.qr-content a{display:inline-block;padding:8px 0;max-width:100%;color:#666;font-size:12px;line-height:1.5;overflow-wrap:anywhere;text-underline-offset:3px}.page-layout>.app-shell{width:min(100% - 64px,400px);min-width:0}}@media(min-width:1000px)and (max-height:720px){.desktop-qr{position:static;height:auto;min-height:100svh}}
