:root{--paper:#f2eee5;--surface:#fffdf8;--ink:#1b1916;--muted:#6f6a61;--line:#ded7ca;--line-strong:#bdb4a5;--disabled:#eeeae2;--accent:#e15d3c;--accent-strong:#a83c24;--marker:#d93a24;--focus:#2563eb8c;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{background:radial-gradient(circle at 12% 0%, #e15d3c21, transparent 28rem), var(--paper);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button,label{-webkit-tap-highlight-color:transparent}::selection{background:#e15d3c3d}.app-shell{width:min(100% - 32px,820px);margin:0 auto;padding:44px 0 72px}.hero{margin-bottom:22px}.eyebrow,.step-label{color:var(--accent-strong);letter-spacing:.14em;text-transform:uppercase;margin:0 0 8px;font-size:.72rem;font-weight:800}.hero h1{max-width:700px;color:var(--ink);letter-spacing:-.06em;margin:0;font-size:clamp(2.1rem,8vw,3.1rem);line-height:.98}.lead{max-width:680px;color:var(--muted);margin:20px 0 0;font-size:1rem}.hero-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px;display:flex}.hero-cta{box-sizing:border-box;background:var(--ink);color:#fff;border-radius:13px;justify-content:center;align-items:center;min-height:46px;padding:0 18px;font-size:.88rem;font-weight:900;text-decoration:none;display:inline-flex}.privacy-chip{color:#21633a;background:#edf8f0;border:1px solid #b9d7c3;border-radius:999px;margin:0;padding:7px 11px;font-size:.76rem;font-weight:800;display:inline-flex}.analytics-consent{background:#fff8e6;border:1px solid #e2c77d;border-radius:18px;justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px;padding:16px 18px;display:flex}.analytics-consent-granted{background:#edf8f0;border-color:#b9d7c3}.analytics-consent-denied{border-color:var(--line);background:var(--surface)}.analytics-consent h2{color:var(--ink);letter-spacing:-.02em;margin:0;font-size:1.08rem}.analytics-consent p:not(.step-label){max-width:590px;color:var(--muted);margin:6px 0 0;font-size:.82rem}.analytics-consent .analytics-consent-note{font-weight:700}.analytics-consent-actions{flex:none;gap:8px;display:grid}.analytics-consent-actions button{min-height:42px;font:inherit;cursor:pointer;border-radius:12px;padding:0 14px;font-size:.82rem;font-weight:900}.consent-primary{border:1px solid var(--ink);background:var(--ink);color:#fff}.consent-secondary{border:1px solid var(--line-strong);color:var(--ink);background:0 0}.sample-showcase{border:1px solid var(--line);background:var(--surface);border-radius:24px;margin-bottom:16px;padding:22px;box-shadow:0 18px 60px #1c171112}.sample-heading{margin-bottom:18px}.sample-heading h2{color:var(--ink);letter-spacing:-.03em;margin:0;font-size:clamp(1.45rem,4vw,2rem)}.sample-story{gap:14px;margin:0;padding:0;list-style:none;display:grid}.sample-story-step{border:1px solid var(--line);background:#fcfaf6;border-radius:18px;padding:16px}.sample-story-heading{align-items:center;gap:11px;margin-bottom:13px;display:flex}.sample-story-heading>span{background:var(--accent);color:#fff;border-radius:50%;flex:0 0 31px;place-items:center;width:31px;height:31px;font-size:.82rem;font-weight:900;display:grid}.sample-story-heading small{color:var(--accent-strong);letter-spacing:.08em;margin-bottom:2px;font-size:.68rem;font-weight:900;display:block}.sample-story-heading h3{color:var(--ink);margin:0;font-size:1rem;line-height:1.35}.sample-source-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.sample-source-photo,.sample-result-photo{border:1px solid var(--line);background:#e9e7e1;border-radius:14px;margin:0;overflow:hidden}.sample-source-photo img,.sample-result-photo img{width:100%;height:auto;display:block}.sample-source-photo figcaption,.sample-result-photo figcaption{color:var(--muted);background:#fff;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:.74rem;display:flex}.sample-source-photo figcaption strong,.sample-result-photo figcaption strong{color:var(--ink);font-size:.82rem}.sample-source-note{color:var(--muted);text-align:right;margin:9px 2px 0;font-size:.72rem}.sample-photo-sequence{grid-template-columns:minmax(0,1fr) 126px minmax(0,1fr);align-items:center;gap:10px;display:grid}.sample-result-photo{border-color:#e0aa9c}.sample-result-photo figcaption{background:#fff5f1;font-weight:800}.sample-continuation{color:var(--accent-strong);text-align:center;background:#f7e9e4;border-radius:12px;gap:3px;margin:0;padding:11px 8px;display:grid}.sample-continuation span{font-size:.68rem;font-weight:800}.sample-continuation strong{font-size:.79rem;line-height:1.3}.sample-export-preview{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:12px;display:grid}.sample-file-preview,.sample-csv-preview{border:1px solid var(--line);background:#fff;border-radius:14px;min-width:0;overflow:hidden}.sample-export-title{border-bottom:1px solid var(--line);background:#f4f0e8;justify-content:space-between;align-items:baseline;gap:8px;padding:10px 12px;display:flex}.sample-export-title strong{color:var(--ink);font-size:.79rem}.sample-export-title span{color:var(--muted);text-align:right;font-size:.66rem}.sample-file-preview ul{gap:9px;margin:0;padding:10px;list-style:none;display:grid}.sample-file-preview li{grid-template-columns:86px minmax(0,1fr);align-items:center;gap:9px;display:grid}.sample-file-preview li img{object-fit:cover;border-radius:7px;width:86px;height:48px;display:block}.sample-file-preview li>span{min-width:0}.sample-file-preview li strong,.sample-file-preview li small{display:block}.sample-file-preview li strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.sample-file-preview li small{color:var(--muted);margin-top:2px;font-size:.66rem}.sample-csv-scroll{overflow-x:auto}.sample-csv-scroll:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.sample-csv-preview table{border-collapse:collapse;width:100%;min-width:290px;color:var(--muted);text-align:left;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.63rem}.sample-csv-preview th,.sample-csv-preview td{white-space:nowrap;border-bottom:1px solid #eee9df;padding:6px 8px}.sample-csv-preview th{color:var(--accent-strong);background:#fffaf7;font-weight:900}.sample-csv-preview tbody tr:last-child td{border-bottom:0}.sample-cta{border:1px solid var(--ink);min-height:44px;color:var(--ink);border-radius:12px;justify-content:center;align-items:center;margin-top:16px;padding:0 16px;font-size:.82rem;font-weight:900;text-decoration:none;display:inline-flex}.beta-panel{background:#f7fcf8;border:1px solid #b9d7c3;border-radius:20px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px;padding:20px;display:flex;box-shadow:0 18px 60px #1c171112}.beta-panel h2{color:var(--ink);margin:0;font-size:1.2rem}.beta-panel p:not(.step-label){max-width:560px;color:var(--muted);margin:7px 0 0;font-size:.84rem}.beta-guidance{max-width:560px;color:var(--ink);gap:6px;margin:12px 0 0;padding-left:1.2rem;font-size:.84rem;line-height:1.6;display:grid}.beta-status{color:#21633a;text-align:center;background:#dff3e5;border-radius:999px;flex:none;padding:9px 12px;font-size:.78rem}.control-panel,.workspace,.export-panel,.scope-note{border:1px solid var(--line);background:var(--surface);box-shadow:0 18px 60px #1c171112}.control-panel{border-radius:22px 22px 0 0;grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:16px;padding:20px;display:grid}.control-panel h2,.workspace h2,.export-panel h2{color:var(--ink);margin:0;font-size:1.2rem}.photo-selection-actions{gap:8px;min-width:172px;display:grid}.file-picker,.replace-photo-picker{cursor:pointer;border-radius:14px;justify-content:center;align-items:center;font-weight:800;display:inline-flex;position:relative;overflow:hidden}.file-picker{background:var(--accent);color:#fff;min-height:48px;padding:0 18px}.replace-photo-picker{border:1px solid var(--line-strong);min-height:40px;color:var(--muted);background:#fff;padding:0 14px;font-size:.78rem}.file-picker.is-busy{cursor:wait;opacity:.72}.file-picker:focus-within,.replace-photo-picker:focus-within{outline:3px solid var(--focus);outline-offset:3px}.file-picker input,.replace-photo-picker input{opacity:0;width:1px;height:1px;position:absolute}.file-picker.is-disabled,.replace-photo-picker.is-disabled{cursor:not-allowed;opacity:.42}.number-field{color:var(--muted);gap:6px;font-size:.78rem;font-weight:700;display:grid}.number-field input{box-sizing:border-box;border:1px solid var(--line-strong);width:82px;min-height:44px;color:var(--ink);font:inherit;background:#fff;border-radius:12px;padding:0 10px;font-size:1rem}.number-field input:disabled{background:var(--disabled);color:var(--muted)}.workspace{border-top:0;border-radius:0 0 22px 22px;padding:20px}.workspace-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;display:flex}.sequence-status{color:var(--muted);align-items:center;gap:10px;font-size:.82rem;font-weight:700;display:flex}.sequence-status>span:first-child{white-space:nowrap}.sequence-status strong{background:var(--ink);color:#fff;border-radius:50%;place-items:center;min-width:48px;height:48px;font-size:1rem;display:grid}.next-number{border:1px solid var(--line-strong);color:var(--ink);white-space:nowrap;background:#fff;border-radius:999px;padding:6px 9px}.photo-tabs{gap:8px;margin:0 -2px 12px;padding:2px 2px 6px;display:flex;overflow-x:auto}.photo-tabs button{border:1px solid var(--line);max-width:240px;min-height:42px;color:var(--muted);cursor:pointer;font:inherit;background:#fff;border-radius:999px;flex:none;align-items:center;gap:8px;padding:7px 11px;font-size:.78rem;display:flex;overflow:hidden}.photo-index{background:var(--paper);width:24px;height:24px;color:var(--ink);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.photo-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.photo-marker-count{background:var(--marker);color:#fff;border-radius:999px;flex:none;place-items:center;min-width:21px;height:21px;font-size:.7rem;font-weight:900;display:grid}.photo-tabs button.is-active{border-color:var(--ink);background:var(--ink);color:#fff}.photo-tabs button.is-active .photo-index{background:var(--accent);color:#fff}.gesture-guide{color:var(--muted);flex-wrap:wrap;gap:8px 18px;margin-bottom:10px;font-size:.76rem;font-weight:700;display:flex}.image-stage{cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;background-color:#f7f4ed;background-image:linear-gradient(45deg,#e8e4dc 25%,#0000 25%),linear-gradient(-45deg,#e8e4dc 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#e8e4dc 75%),linear-gradient(-45deg,#0000 75%,#e8e4dc 75%),none;background-position:0 0,0 8px,8px -8px,-8px 0;background-repeat:repeat,repeat,repeat,repeat,repeat;background-size:16px 16px;background-attachment:scroll,scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box;border-radius:14px;width:100%;position:relative;overflow:hidden}.image-layer{transform-origin:0 0;will-change:transform;position:absolute;inset:0}.image-layer img{object-fit:fill;pointer-events:none;width:100%;height:100%;display:block}.marker{box-sizing:border-box;background:var(--marker);color:#fff;pointer-events:none;border:2px solid #fff;border-radius:999px;place-items:center;min-width:28px;height:28px;padding:0 6px;font-size:.76rem;font-weight:900;line-height:1;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 3px 12px #00000059}.viewport-controls{align-items:center;gap:8px;margin-top:12px;display:flex}.viewport-controls button{border:1px solid var(--line-strong);min-width:42px;min-height:42px;color:var(--ink);cursor:pointer;font:inherit;background:#fff;border-radius:12px;padding:0 12px;font-weight:900}.viewport-controls output{min-width:54px;color:var(--muted);text-align:center;font-size:.8rem;font-weight:800}.viewport-controls .reset-view-button{margin-left:auto;font-size:.78rem;font-weight:800}.action-bar{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:14px;padding-top:14px;display:flex}.action-bar p{color:var(--muted);margin:0;font-size:.9rem}.action-bar strong{color:var(--ink)}.undo-button{border:1px solid var(--line-strong);min-height:42px;color:var(--ink);cursor:pointer;font:inherit;background:#fff;border-radius:12px;padding:0 16px;font-size:.85rem;font-weight:800}.empty-state{border:1px dashed var(--line-strong);background:var(--paper);min-height:280px;color:var(--muted);text-align:center;border-radius:14px;align-content:center;place-items:center;padding:20px;display:grid}.empty-state span{color:var(--accent-strong);letter-spacing:-.08em;font-size:clamp(2rem,10vw,4.5rem);font-weight:900}.empty-state p{margin:12px 0 0}.export-panel{border-radius:20px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin-top:16px;padding:20px;display:grid}.export-panel p{max-width:560px;color:var(--muted);margin:7px 0 0;font-size:.84rem}.export-button{background:var(--ink);color:#fff;cursor:pointer;min-height:50px;font:inherit;border:0;border-radius:14px;padding:0 20px;font-weight:900}.export-progress,.export-hint{grid-column:1/-1}.export-result{border-top:1px solid var(--line);grid-column:1/-1;padding-top:18px}.export-panel .export-result-status{color:#21633a;letter-spacing:.08em;margin:0 0 6px;font-size:.76rem;font-weight:900}.export-result h3{overflow-wrap:anywhere;color:var(--ink);margin:0;font-size:1rem}.export-result code{color:var(--ink);font:inherit;font-weight:800}.export-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.export-action-button{border:1px solid var(--ink);cursor:pointer;min-height:48px;font:inherit;border-radius:13px;padding:0 18px;font-weight:900}.export-action-button.is-primary{background:var(--ink);color:#fff}.export-action-button.is-secondary{color:var(--ink);background:#fff}.export-panel .export-next-step{color:var(--ink);margin-top:14px;font-weight:800}.export-panel .export-share-note{margin-top:5px;font-size:.78rem}.notice{border:1px solid;border-radius:14px;margin:14px 0 0;padding:13px 15px;font-size:.84rem;font-weight:700}.notice-success{color:#21633a;background:#edf8f0;border-color:#b9d7c3}.notice-error{color:#8f271c;background:#fff1ef;border-color:#e5b9b4}.scope-note{border-radius:16px;margin-top:16px;padding:16px 18px}.scope-note strong{color:var(--ink)}.scope-note p{color:var(--muted);margin:4px 0 0;font-size:.84rem}.scope-note a{overflow-wrap:anywhere;color:var(--accent-strong);font-weight:700}.number-field input:focus-visible,.hero-cta:focus-visible,.sample-cta:focus-visible,.photo-tabs button:focus-visible,.viewport-controls button:focus-visible,.undo-button:focus-visible,.export-button:focus-visible,.export-action-button:focus-visible,.analytics-consent-actions button:focus-visible,.scope-note a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}button:disabled,.export-button:disabled,.viewport-controls button:disabled,.undo-button:disabled{cursor:not-allowed;opacity:.42}@media (width<=620px){.app-shell{width:min(100% - 20px,820px);padding:24px 0 44px}.control-panel{grid-template-columns:1fr auto}.control-panel>div:first-child{grid-column:1/-1}.photo-selection-actions,.file-picker,.replace-photo-picker{box-sizing:border-box;width:100%}.workspace,.control-panel,.beta-panel,.export-panel,.analytics-consent,.sample-showcase{padding:15px}.analytics-consent{display:grid}.analytics-consent-actions{grid-template-columns:1fr 1fr}.analytics-consent-actions button:only-child{grid-column:1/-1}.hero-actions{display:grid}.hero-cta{width:100%}.privacy-chip{width:fit-content}.sample-story-step{padding:12px}.sample-photo-sequence,.sample-export-preview{grid-template-columns:1fr}.sample-continuation{justify-self:center;width:fit-content;padding:9px 14px}.sample-export-title{align-items:flex-start}.sample-cta{box-sizing:border-box;width:100%}.beta-panel{display:grid}.beta-status{width:fit-content}.workspace-heading{align-items:start;gap:12px;display:grid}.sequence-status{justify-content:flex-start}.export-panel{grid-template-columns:1fr}.export-button{width:100%}.export-actions{display:grid}.export-action-button{width:100%}.export-progress,.export-hint{grid-column:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}}
