:root{--color-paper:oklch(98.5% 0.004 90);--color-paper-2:oklch(96% 0.008 90);--color-paper-3:oklch(92% 0.012 90);--color-ink:oklch(24% 0.015 70);--color-ink-2:oklch(36% 0.015 70);--color-accent:oklch(44% 0.09 165);--color-accent-ink:oklch(99% 0.004 90);--color-line:oklch(89% 0.01 90);--color-rule:oklch(82% 0.014 90);--color-muted:oklch(48% 0.02 75);--color-focus:oklch(44% 0.09 165);--color-success:oklch(55% 0.14 160);--color-error:oklch(55% 0.18 25);--font-display:"Plus Jakarta Sans",system-ui,sans-serif;--font-body:"Plus Jakarta Sans",system-ui,sans-serif;--font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;--radius-card:10px;--radius-pill:999px}*,:after,:before{box-sizing:border-box}body,html{overflow-x:clip;margin:0;font-family:var(--font-body);background:var(--color-paper);color:var(--color-ink)}a{color:var(--color-accent)}a:visited{color:oklch(38% .09 165)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}::selection{background:var(--color-accent);color:var(--color-accent-ink)}h1,h2{font-family:var(--font-display);font-style:normal;font-weight:800;letter-spacing:-.03em;margin:0;overflow-wrap:anywhere;min-width:0}h1{font-size:clamp(2rem,1.4rem + 3vw,3.25rem);line-height:1;text-wrap:balance;max-width:40ch}h2{font-size:1.25rem}main{display:grid;max-width:72rem;margin:0 auto;padding:1rem 1rem 0}@media (min-width:768px){main{padding:1.5rem 1.5rem 0}}.site-head{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1rem;padding:.5rem 1rem;border-bottom:1px solid var(--color-rule);background:var(--color-paper)}@media (min-width:768px){.site-head{padding:.5rem 1.5rem}}.site-head .brand{margin:0;font-family:var(--font-display);font-weight:800;letter-spacing:-.02em}.site-head nav{display:flex;gap:1rem;font-size:.9375rem;font-weight:600}.site-head nav a{display:inline-block;padding:.5rem 0}.hero{display:grid;grid-gap:.75rem;gap:.75rem;padding:1.5rem 0;border-bottom:1px solid var(--color-rule);animation:rise .4s ease-out both}.hero .price{margin:0;font-family:var(--font-display);font-weight:700}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (min-width:768px){.hero{padding:2.5rem 0 2rem}}@media (max-width:480px){.hero{gap:.5rem;padding-top:1rem}}.kicker{font-size:.9375rem;font-weight:600}.kicker,.lede{color:var(--color-muted);margin:0}.lede{max-width:52ch;font-size:1.0625rem;line-height:1.5}.workbench{display:grid;grid-gap:1rem;gap:1rem;padding:1.5rem 0}@media (min-width:768px){.workbench{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:2rem;padding:2rem 0}.workbench>figure:has(>.hint){align-self:stretch;grid-template-rows:1fr auto}}.panel{display:grid;grid-gap:1.5rem;gap:1.5rem;align-content:start;min-width:0;padding:1.25rem;border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-paper-2)}.dropzone{display:grid;grid-gap:.5rem;gap:.5rem;place-items:center;align-content:center;min-height:15rem;padding:2rem 1rem;border:2px dashed var(--color-rule);border-radius:var(--radius-card);background:var(--color-paper-2);text-align:center;cursor:pointer}.panel .dropzone{background:var(--color-paper)}.dropzone.has-photo{border-style:solid;min-height:0}.dropzone>*{min-width:0;max-width:100%}.dropzone strong{overflow-wrap:anywhere}.dropzone input{position:absolute;width:1px;height:1px;opacity:0}.drop-icon{display:inline-flex;color:var(--color-accent)}.drop-icon svg{width:2rem;height:2rem}.thumb{display:block;width:100%;max-height:20rem;object-fit:contain;border-radius:var(--radius-card);background:var(--color-paper)}.shots{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:1.25rem;gap:1.25rem;margin:1.25rem 0 0;padding:0;list-style:none}.shots .thumb{max-height:none;aspect-ratio:3/4;object-fit:cover}@media (min-width:480px){.shots{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:768px){.shots{grid-template-columns:repeat(3,minmax(0,1fr))}}.presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.5rem;gap:.5rem;margin:0;min-width:0;padding:0;border:0}.presets legend{font-size:.9375rem;font-weight:600;color:var(--color-ink);padding:0 0 .5rem;padding-inline:0}.swatch{display:grid;grid-gap:.5rem;gap:.5rem;justify-items:center;min-height:3.5rem;padding:.75rem .5rem;border:2px solid var(--color-rule);border-radius:var(--radius-card);background:var(--color-paper);font-weight:700;cursor:pointer}.swatch.is-on{border-color:var(--color-ink);background:var(--color-ink)}.swatch.is-on,.swatch.is-on .muted{color:var(--color-paper)}.swatch input{position:absolute;width:1px;height:1px;opacity:0}.swatch:focus-within{outline:2px solid var(--color-focus);outline-offset:2px}.swatch-dot{width:2rem;height:2rem;border-radius:var(--radius-pill);border:1px solid var(--color-rule)}.swatch[data-preset=white] .swatch-dot{background:#fff}.swatch[data-preset=beige] .swatch-dot{background:#e8dcc8}.swatch[data-preset=auto] .swatch-dot{background:var(--color-accent)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;width:100%;font:inherit;font-weight:700;font-size:1rem;white-space:normal;text-align:center;text-decoration:none;text-wrap:balance;padding:.875rem 1.25rem;border:1px solid var(--color-ink);border-radius:var(--radius-card);background:var(--color-ink);color:var(--color-paper);cursor:pointer}.cta-bar{display:grid;grid-gap:.5rem;gap:.5rem}.cta-sub{text-align:center}@media (min-width:768px){.cta-sub{text-align:left}.panel>.cta-bar .btn{width:auto;justify-self:start}}.btn:hover:not(:disabled){background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}.btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{cursor:not-allowed}.btn:disabled,.btn[aria-busy=true]{background:var(--color-paper-3);border-color:var(--color-line);color:var(--color-muted)}.btn[aria-busy=true]{cursor:progress}.muted{color:var(--color-muted);font-size:.875rem;margin:0}figure{display:grid;grid-gap:.5rem;gap:.5rem;margin:0;min-width:0;align-content:start;scroll-margin-top:1rem}.result{display:block;aspect-ratio:4/5;width:100%;object-fit:cover;border:1px solid var(--color-rule);border-radius:var(--radius-card);background:var(--color-paper-2)}figure figcaption{margin:0;color:var(--color-muted);font-size:.875rem;line-height:1.5}.proof{grid-template-columns:repeat(2,minmax(0,1fr))}.proof img{display:block;width:100%;height:auto;border:1px solid var(--color-rule);border-radius:var(--radius-card);background:var(--color-paper-2)}.proof figcaption{grid-column:1/-1}@media (min-width:768px){.proof{gap:1rem}}.shot{grid-gap:.5rem;gap:.5rem;min-width:0}.hint,.shot{display:grid}.hint{margin:0;place-content:center;justify-items:center;grid-gap:.75rem;gap:.75rem;min-height:15rem;padding:2rem 1rem;border:2px dashed var(--color-rule);border-radius:var(--radius-card);background:var(--color-paper-2);text-align:center}.spinner{width:2rem;height:2rem;border:3px solid var(--color-rule);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.hero,.spinner{animation:none}.spinner{border-top-color:var(--color-rule)}}.status{margin:0;min-height:1.25rem;color:var(--color-ink);border:1px solid var(--color-rule);border-radius:var(--radius-card);background:var(--color-paper-2);padding:.625rem .75rem}.status:empty{display:none}.how{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--color-rule);padding:1.5rem 0}@media (min-width:768px){.how{grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;padding:2rem 0}}.how article{display:grid;grid-gap:.5rem;gap:.5rem;align-content:start}.how h3{font-family:var(--font-display);font-style:normal;font-weight:700;font-size:1.125rem;line-height:1.3;margin:0}.how p{margin:0;color:var(--color-muted);font-size:.9375rem;line-height:1.5}.strip{display:grid;grid-gap:.75rem;gap:.75rem;justify-items:start;padding:1.5rem 0 2.5rem;border-top:2px solid var(--color-ink)}@media (min-width:768px){.strip{padding:2rem 0 3rem}.strip .btn{width:auto}}.strip .price{font-family:var(--font-display);font-size:clamp(1.5rem,1.2rem + 1.5vw,2rem);margin:0}.foot{border-top:1px solid var(--color-rule)}.foot-row{display:grid;grid-gap:.5rem;gap:.5rem;max-width:72rem;margin:0 auto;padding:1.5rem 1rem 2rem}@media (min-width:768px){.foot-row{padding:2rem 1.5rem}}.foot-statement{font-family:var(--font-display);font-style:normal;font-size:clamp(1.25rem,1rem + 1.5vw,1.75rem);letter-spacing:-.015em;margin:0;max-width:24ch}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}.__className_7c98a1{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.__variable_7c98a1{--font-display:"Plus Jakarta Sans","Plus Jakarta Sans Fallback"}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans Fallback;src:local("Arial");ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.00%;size-adjust:104.98%}.__className_14db65{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.__variable_14db65{--font-body:"Plus Jakarta Sans","Plus Jakarta Sans Fallback"}