:root{color-scheme:light;--ink:#272335;--muted:#6b647c;--line:#ddd8e8;--accent:#6354a5;--surface:#fff}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:#f5f4f8}button,input,select{font:inherit}button,.upload-button{cursor:pointer;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);padding:10px 14px;min-height:44px;font-size:.9rem;font-weight:600}button:hover{background:#eeebf5}button:disabled{opacity:.5;cursor:default}button:focus-visible,select:focus-visible,canvas:focus-visible,.upload-button:focus-within{outline:3px solid #6354a5;outline-offset:3px}[hidden]{display:none!important}.app{min-height:100dvh;display:flex;flex-direction:column}.header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;background:#fff;border-bottom:1px solid var(--line)}.brand{font-size:.9rem;font-weight:800;letter-spacing:.025em;color:var(--accent)}h1{font-size:1.35rem;margin:2px 0 0;line-height:1.25}h2{font-size:1.15rem;margin:0 0 12px}.upload-button{background:var(--accent);color:#fff;border-color:var(--accent);flex-shrink:0}.header:has(input:disabled) .upload-button{opacity:.5;pointer-events:none}.header:has(input:focus-visible) .upload-button{outline:3px solid #6354a5;outline-offset:3px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding:16px;flex:1;min-height:600px}.viewer{position:relative;min-width:0;min-height:600px;border-radius:16px;overflow:hidden;background-color:#483b6d;background-image:linear-gradient(#8b7bbe45 1.5px,transparent 1px),linear-gradient(90deg,#8b7bbe45 1.5px,transparent 1px);background-size:40px 40px}.viewer canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;z-index:1}.empty{position:absolute;inset:0;display:grid;place-items:center;padding:70px 24px;text-align:center;color:#f6f4ff;pointer-events:none;z-index:2}.empty h2{font-size:1.6rem}.empty p{color:#e3def3;max-width:420px}.view-controls,.canvas-tools{position:absolute;left:50%;transform:translate(-50%);z-index:3;display:flex;gap:6px;max-width:calc(100% - 24px);padding:6px;background:#fffffff2;border-radius:14px;box-shadow:0 4px 16px #20193425}.view-controls{top:16px;white-space:nowrap}.view-controls button{border:0;background:transparent}.view-controls button[aria-pressed=true]{background:var(--accent);color:#fff}.canvas-tools{bottom:16px;white-space:nowrap;flex-wrap:wrap;justify-content:center;width:max-content}.canvas-tools button{border:0}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;min-width:0;overflow-wrap:anywhere}.status{margin:0 0 12px;font-size:1rem}.hint{font-size:.875rem;color:var(--muted);margin:14px 0;line-height:1.6}.notice{background:#eeebf5;color:#483b6d;padding:12px;border-radius:10px;font-size:.9rem;margin:14px 0}.record{border:1px solid var(--line);padding:12px;border-radius:12px;margin:12px 0}.record-name{font-size:.9rem;font-weight:650;margin:0 0 6px;overflow-wrap:anywhere}.record-meta{font-size:.8rem;color:var(--muted);margin:0 0 8px}.record label{display:block;font-size:.875rem;margin:6px 0}.record select{width:100%;padding:8px;border:1px solid #ddd8e8;border-radius:7px;background:#fff;color:var(--ink);font-size:.875rem;min-height:44px}.record button{margin-top:10px}.error,.issues{color:#a22832;font-size:.9rem}.issues{padding-left:20px}#progress{font-size:.9rem;color:var(--accent)}.workspace.drag .viewer{outline:4px solid #ded7ef;outline-offset:-4px}@media(min-width:1000px){.workspace{height:calc(100dvh - 96px)}.panel{overflow-y:auto}.viewer{min-height:480px}}@media(max-width:820px){.header{padding:12px;gap:10px}h1{font-size:1.05rem}.brand{font-size:.8rem}.upload-button{padding:9px 11px}.workspace{grid-template-columns:1fr;padding:8px;gap:8px;min-height:0}.viewer{height:62dvh;min-height:360px}.panel{padding:16px}.view-controls{top:12px}.view-controls button{padding:9px 12px}.canvas-tools{bottom:12px}.empty h2{font-size:1.35rem}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s}}.empty h2{max-width:520px}.empty.can-upload{pointer-events:auto;cursor:pointer}.empty button{margin-top:8px}.workspace:has(>.panel[hidden]){grid-template-columns:minmax(0,1fr)}dialog{width:min(480px,calc(100% - 24px));max-height:calc(100dvh - 32px);overflow-y:auto;border:0;border-radius:18px;padding:28px;color:var(--ink);box-shadow:0 24px 80px #111b3540}dialog::backdrop{background:#272335aa;backdrop-filter:blur(4px)}#contactForm h2{font-size:1.5rem;margin:4px 0 10px}#contactDescription{color:var(--muted);margin:0 0 20px}#contactForm label{display:block;font-size:.95rem;font-weight:650;margin:16px 0 6px}#contactForm input{width:100%;min-height:48px;padding:10px 12px;border:1px solid #ddd8e8;border-radius:9px;color:var(--ink);background:#fff}#contactForm input:focus{outline:3px solid #6354a544;border-color:var(--accent)}#contactForm input[aria-invalid=true]{border-color:#b72c3b}.field-error{font-size:.9rem;color:#a22832;margin:6px 0}.contact-actions{display:flex;flex-direction:column;gap:8px;margin-top:20px}.contact-actions button:first-child{background:var(--accent);color:#fff;border-color:var(--accent)}.contact-actions button:last-child{border-color:transparent;font-weight:500}.upload-feedback{grid-column:1/-1;padding:0 12px;color:var(--muted);font-size:.9rem}.upload-feedback .status{margin:8px 0}.upload-feedback button{margin:4px 8px 4px 0}.intake-progress{padding:14px 0 20px;margin-bottom:16px;border-bottom:1px solid var(--line)}.intake-progress p{margin:0 0 10px}.intake-progress progress{display:block;width:100%;height:10px;accent-color:#6354a5}.intake-progress button{margin:12px 8px 0 0}.header-actions{display:flex;align-items:center;gap:12px;margin-left:auto}#languageSelect{font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;min-height:44px}.locale-credit{padding:8px 20px;text-align:right;font-size:11px}.locale-credit a{color:var(--muted)}@media(max-width:600px){.header{flex-wrap:wrap}.header-actions{gap:8px}.header-actions .upload-button{font-size:.85rem}#languageSelect{font-size:.85rem;padding:8px}}.view-controls,.canvas-tools{gap:4px;padding:4px;flex-wrap:nowrap;width:max-content;border-radius:16px}.view-controls button,.canvas-tools button{display:grid;place-items:center;width:44px;height:44px;min-width:44px;padding:10px;border-radius:12px}.view-controls svg,.canvas-tools svg{width:24px;height:24px;pointer-events:none}.view-controls button:focus-visible,.canvas-tools button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.brand{display:inline-flex;align-items:center;gap:8px;font-size:1.1rem;letter-spacing:-.04em;color:var(--accent)}.brand-mark{width:34px;height:34px;flex:none}.brand-smile{font-weight:600}@media(max-width:600px){.header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.header-actions{display:flex;flex-direction:column-reverse;align-items:stretch;gap:6px}.header-actions select{max-width:140px}.header-actions .upload-button{padding:8px 10px;font-size:.8rem}.brand{font-size:1rem}.brand-mark{width:30px;height:30px}.header h1{font-size:.9rem;max-width:220px}}#languageSelect{width:66px;font-size:1.3rem;padding:6px;min-height:44px}.header-actions{flex-direction:row;align-items:center}.header-actions select{flex:none}@media(max-width:600px){.header{grid-template-columns:1fr}.header-actions{margin-left:0;justify-content:space-between;width:100%;flex-direction:row}.header h1{max-width:none}}.brand{font-family:Arial,Helvetica,sans-serif;font-size:1.45rem;font-weight:800;letter-spacing:-.065em;line-height:1.1;color:#6354a5}.header h1{margin-top:7px}@media(max-width:600px){.brand{font-size:1.35rem}}.view-controls button{display:block;width:auto;min-width:0;height:44px;padding:8px 12px;font-size:.85rem;white-space:nowrap}@media(max-width:600px){.view-controls button{padding:8px 10px;font-size:.8rem}}:root{--accent-hover:#514389;--highlight:#ded7ef;--soft:#eeebf5}.upload-button:hover,.contact-actions button:first-child:hover,.view-controls button[aria-pressed=true]:hover{background:var(--accent-hover)}.canvas-tools button:hover{background:var(--highlight);color:var(--ink)}.emptyUploadBtn{color:var(--ink)}html,body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif;font-weight:400;-webkit-font-smoothing:antialiased}button,.upload-button{font-weight:500}h1,h2{font-weight:500;letter-spacing:-.025em}.brand{font-family:inherit;font-weight:600;letter-spacing:-.045em}#contactForm label,.record-name{font-weight:500}.header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}.header-actions{margin-left:0;width:auto;align-self:start;justify-content:flex-end}.view-controls{padding:2px;gap:2px;border-radius:12px}.view-controls button{padding:6px 10px;border-radius:10px}.site-footer{text-align:center;padding:18px 12px;color:var(--muted);font-size:.75rem;font-weight:400}.upload-another{position:absolute;right:16px;bottom:16px;z-index:3;display:grid;place-items:center;width:44px;height:44px;padding:10px;border:0;border-radius:12px;background:var(--accent);color:#fff;box-shadow:0 4px 16px #20193425}.upload-another svg{width:24px;height:24px;pointer-events:none}.upload-another{transition:background-color .15s ease,box-shadow .15s ease}.upload-another:hover:not(:disabled),.upload-another:focus-visible{background:#7b6bbc;color:#fff;box-shadow:0 4px 18px #8b7bbe66}@media(max-width:600px){.upload-another{right:12px;bottom:12px}.canvas-tools{left:12px;transform:none}}.capture-toast{position:absolute;left:50%;bottom:76px;transform:translate(-50%,8px);z-index:5;max-width:calc(100% - 32px);padding:10px 16px;border-radius:12px;background:#fff;color:var(--ink);font-size:.85rem;text-align:center;pointer-events:none;opacity:0;transition:opacity .25s,transform .25s}.capture-toast.is-visible{opacity:1;transform:translate(-50%)}.canvas-tools{left:50%;transform:translate(-50%)}.canvas-tools .upload-another{position:static;box-shadow:none;background:var(--accent);color:#fff}.canvas-tools .upload-another:hover:not(:disabled),.canvas-tools .upload-another:focus-visible{background:#7b6bbc;color:#fff}.canvas-tools{left:16px;transform:none}.upload-another{right:16px;bottom:16px}@media(max-width:600px){.canvas-tools{left:12px}.upload-another{right:12px;bottom:12px}}.language-flags{display:flex;gap:4px}.language-flags button{display:grid;place-items:center;padding:7px;width:46px;height:44px;border-radius:10px;background:transparent}.language-flags img{display:block;width:30px;height:20px;border-radius:2px}.language-flags button[aria-pressed=true]{background:var(--soft,#eeebf5);border-color:var(--accent)}.empty p{max-width:none;margin-left:auto;margin-right:auto;text-align:center}@media(min-width:821px){.empty h2{max-width:none;white-space:nowrap;font-size:clamp(1.1rem,2.1vw,1.6rem)}}@media(max-width:820px){.empty h2{white-space:normal;max-width:520px}}.language-dropdown{position:relative;z-index:10}.language-dropdown summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.language-dropdown summary::-webkit-details-marker{display:none}.language-dropdown summary img{display:block;border-radius:2px}.language-dropdown .language-flags{position:absolute;right:0;top:calc(100% + 6px);padding:6px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 6px 20px #20193420}.language-dropdown summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.canvas-tools:not(:has(button:not([hidden]))){display:none}.empty.can-upload #emptyUploadBtn{animation:upload-breathe 2.73s ease-in-out infinite}@keyframes upload-breathe{0%,to{box-shadow:0 0 #cfc4ff00;background:#eeebf5}50%{box-shadow:0 0 0 8px #cfc4ff30;background:#fff}}@media(prefers-reduced-motion:reduce){.empty.can-upload #emptyUploadBtn{animation:none}}.language-chevron{display:block;flex:0 0 16px;align-self:center}.canvas-tools{padding:0;background:transparent;box-shadow:none;border-radius:12px}.canvas-tools #captureBtn,.upload-another{width:44px;height:44px;min-width:44px;min-height:44px;padding:10px;border-radius:12px;box-shadow:0 4px 16px #20193425}.canvas-tools #captureBtn svg,.upload-another svg{display:block;width:24px;height:24px}.canvas-tools #captureBtn svg,.upload-another svg{width:22px;height:22px;min-width:22px;max-width:22px;min-height:22px;max-height:22px;transform:none}.canvas-tools #captureBtn{color:var(--ink);opacity:1;transition:background-color .15s ease}.canvas-tools #captureBtn:disabled{opacity:1;color:var(--ink);background:var(--surface);cursor:default}.canvas-tools #captureBtn:hover:not(:disabled){background:var(--highlight);color:var(--ink)}.site-intro{width:min(100% - 40px,960px);margin:24px auto 0;padding:28px 0 12px;border-top:1px solid var(--line);color:var(--muted);font-size:.85rem;line-height:1.75}.site-intro h2{color:var(--ink);font-size:1.2rem;margin:0 0 16px}.site-intro p{margin:0 0 14px}@media(max-width:600px){.site-intro{width:calc(100% - 32px);margin-top:16px;padding-top:22px;font-size:.82rem}}.site-intro h2{font-size:1.05rem}.site-intro h3{font-size:.9rem;font-weight:500;color:var(--ink);margin:18px 0 8px}.canvas-tools #captureBtn,.upload-another{background:#eeebf5;color:#514389;border:1px solid #ddd8e8;box-shadow:none;opacity:1;transition:background-color .15s ease,border-color .15s ease}.canvas-tools #captureBtn:disabled,.upload-another:disabled{background:#eeebf5;color:#514389;opacity:1;box-shadow:none}.canvas-tools #captureBtn:hover:not(:disabled),.upload-another:hover:not(:disabled),.canvas-tools #captureBtn:focus-visible,.upload-another:focus-visible{background:#fff;color:#514389;border-color:#c6bcdf;box-shadow:none}.viewer-guide{position:absolute;inset:70px 12px;z-index:6;display:grid;place-items:center;pointer-events:none}.guide-card{position:relative;width:min(100%,340px);padding:20px 24px;text-align:center;border:1px solid #ffffff65;border-radius:18px;background:#f7f5ffee;box-shadow:0 8px 32px #20193426;color:#483b6d;backdrop-filter:blur(5px)}.guide-card h3{font-size:1rem;font-weight:500;margin:0 20px 8px}.guide-card p{font-size:.85rem;line-height:1.5;margin:6px 0}.guide-card button{pointer-events:auto}.guide-close{position:absolute;right:4px;top:4px;background:transparent;border:0;padding:4px;width:36px;min-height:36px;font-size:1.25rem}.guide-done{margin-top:10px;background:#6354a5;color:#fff;border:0}.guide-demo{height:50px;position:relative;margin:8px auto;width:120px}.guide-dot{position:absolute;top:14px;left:50px;width:20px;height:26px;border:2px solid #6354a5;border-radius:10px;background:#ffffffb0;animation:guide-drag 3s ease-in-out infinite}.guide-dot-two{display:none}.guide-touch .guide-dot{border-radius:50%;height:20px;animation:guide-pinch-one 3s ease-in-out infinite}.guide-touch .guide-dot-two{display:block;animation-name:guide-pinch-two}@keyframes guide-drag{0%,to{transform:translate(-24px)}50%{transform:translate(24px)}}@keyframes guide-pinch-one{0%,to{transform:translate(-10px)}50%{transform:translate(-36px)}}@keyframes guide-pinch-two{0%,to{transform:translate(10px)}50%{transform:translate(36px)}}@media(prefers-reduced-motion:reduce){.guide-dot{animation:none!important}.guide-dot-one{transform:translate(-16px)}.guide-dot-two{transform:translate(16px)}}.guide-preview{display:block;margin:0 auto 12px;background:var(--soft);color:var(--accent);font-size:.8rem}.guide-card{width:min(100%,460px);padding:18px 20px;background:#f7f5fff2}.guide-steps{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0 8px}.guide-step{padding:10px 8px;background:#ffffff90;border:1px solid #ddd8e8;border-radius:12px}.guide-step-title{display:flex;justify-content:center;align-items:center;gap:6px;font-size:.8rem}.guide-step-title span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#6354a5;color:#fff}.guide-step-title strong{font-weight:500}.guide-card .guide-step p{font-size:.8rem}.gesture-demo{display:block;width:100%;height:110px;overflow:visible}.gesture-hand{fill:#fff;stroke:#514389;stroke-width:2.5;stroke-linejoin:round}.gesture-arrow{fill:none;stroke:#8b7bbe;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.gesture-touch-point{fill:#6354a51c;stroke:#8b7bbe;stroke-width:1.5}.gesture-hand-drag{animation:hand-drag 3.6s ease-in-out infinite}.gesture-zoom-target{fill:#ded7ef;stroke:#6354a5;stroke-width:2;transform-origin:51px 48px;animation:hand-zoom 3.6s ease-in-out infinite}@keyframes hand-drag{0%,to{transform:translate(-18px)}50%{transform:translate(18px)}}@keyframes hand-zoom{0%,to{transform:scale(.8)}50%{transform:scale(1.3)}}@media(max-width:420px){.guide-card{padding:16px 12px}.guide-steps{gap:8px}.guide-step{padding:10px 4px}.gesture-demo{height:95px}.guide-step-title{font-size:.74rem}}@media(prefers-reduced-motion:reduce){.gesture-hand-drag,.gesture-zoom-target{animation:none}}.gesture-hand{filter:drop-shadow(0 2px 2px #67452e20)}.guide-wheel{animation:guide-wheel-scroll .8s ease-in-out infinite}@keyframes guide-wheel-scroll{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.gesture-hand-drag,.gesture-zoom-target{animation-duration:1s}@media(prefers-reduced-motion:reduce){.guide-wheel{animation:none}}.guide-touch .gesture-hand-drag{animation:hand-drag 2.6s ease-in-out infinite}.guide-touch .pinch-skin{fill:url(#guide-pinch-skin);stroke:#ad7958;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.guide-touch .pinch-nail{fill:#ffe9da;stroke:#d0a082;stroke-width:.7}.guide-touch .pinch-crease{fill:none;stroke:#c58d69;stroke-width:1;stroke-linecap:round}.pinch-index{transform-origin:105px 82px;animation:guide-index-pinch 2.6s ease-in-out infinite}.pinch-thumb{transform-origin:126px 99px;animation:guide-thumb-pinch 2.6s ease-in-out infinite}.pinch-direction{stroke-width:1.8;opacity:.65}@keyframes guide-index-pinch{0%,12%,to{transform:rotate(16deg)}48%,62%{transform:rotate(-12deg)}}@keyframes guide-thumb-pinch{0%,12%,to{transform:rotate(-16deg)}48%,62%{transform:rotate(12deg)}}@media(prefers-reduced-motion:reduce){.guide-touch .gesture-hand-drag,.pinch-index,.pinch-thumb{animation:none}}.gesture-flat-drag,.gesture-flat-pinch{height:154px;overflow:hidden;border-radius:8px;background:#f7f5ff}.gesture-flat-drag .flat-hand-art{animation:flat-guide-drag 2.6s ease-in-out infinite}.flat-contact-cue{fill:none;stroke:#6354a5;stroke-width:6;opacity:0;animation:flat-guide-contact 2.6s ease-in-out infinite}@keyframes flat-guide-drag{0%,to{transform:translate(-14px)}50%{transform:translate(14px)}}@keyframes flat-guide-contact{0%,to{opacity:.1}45%,60%{opacity:.55}}@media(max-width:420px){.gesture-flat-drag,.gesture-flat-pinch{height:140px}}@media(prefers-reduced-motion:reduce){.gesture-flat-drag .flat-hand-art,.flat-contact-cue{animation:none}.flat-contact-cue{opacity:.25}}.gesture-flat-mouse{height:154px;border-radius:8px;background:#f7f5ff}.guide-flat-wheel{animation:flat-wheel-scroll 2.6s ease-in-out infinite}@keyframes flat-wheel-scroll{0%,to{transform:translateY(-3px)}50%{transform:translateY(6px)}}@media(max-width:420px){.gesture-flat-mouse{height:140px}}@media(prefers-reduced-motion:reduce){.guide-flat-wheel{animation:none}}#contactForm .remember-contact{display:flex;align-items:center;gap:10px;font-size:.875rem;font-weight:400;cursor:pointer}#contactForm .remember-contact input{width:18px;min-height:18px;height:18px;padding:0;flex:0 0 18px;accent-color:var(--accent)}#forgetContactBtn{font-size:.8rem;padding:4px 8px;margin-left:8px;background:transparent;border:1px solid #ddd8e8;color:inherit;border-radius:6px}#rememberNotice{display:block;font-size:.8rem;margin-top:4px}html.locale-pending body{visibility:hidden}body[data-shared=true] #uploadAnotherBtn,body[data-shared=true] #emptyState,body[data-shared=true] #fileInput,body[data-shared=true] #clearBtn{display:none!important}
