@font-face{font-family:Fraunces;src:url(/fonts/fraunces-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap;unicode-range:U+20-7E,U+A0-FF,U+2013-2014,U+2018-201D,U+2026,U+2032-2033}@font-face{font-family:Fraunces Fallback;src:local(Georgia);font-weight:600;size-adjust:99.3717%;ascent-override:98.4183%;descent-override:25.6612%;line-gap-override:0%}:root{color-scheme:light dark;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Fraunces", "Fraunces Fallback", Georgia, serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--bg:#fbf6ee;--surface:#fff;--sunken:#f3ece0;--track:#ede4d6;--ink:#1c2150;--ink-2:#4b4f70;--line:#e4daca;--line-strong:#8a8172;--accent:#b84a1b;--accent-hover:#9e3e14;--accent-press:#8a3510;--on-accent:#fff;--link:#a8461f;--link-hover:#8a3510;--selected:#1c2150;--on-selected:#fbf6ee;--selected-hover:#2e3577;--focus:#2e3577;--stage:#e6e6e6;--band:#1a1e4a;--on-band:#fbf6ee;--on-band-2:#c9cbe0;--band-accent:#f39b3c;--highlight:#ff40a0;--error:#b3261e;--error-bg:#fce9e7;--error-ink:#8c1d18;--icon-ring:#0000000f;--device-ring:#3b3d4a;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--section:clamp(4rem, 2.5rem + 5vw, 7rem);--gutter:16px;--page-max:1200px;--measure:68ch;--panel-w:336px;--head-h:56px;--r-1:6px;--r-2:10px;--r-3:14px;--r-4:20px;--r-pill:999px;--shadow-1:0 1px 2px #1c21500f;--shadow-2:0 2px 6px #1c21501a, 0 12px 24px -8px #1c21501f;--shadow-device:0 30px 60px -24px #14183c73, 0 12px 24px -12px #14183c40;--ease:cubic-bezier(.2, .7, .2, 1);--dur:.15s}@media (prefers-color-scheme:dark){:root{--bg:#161a3d;--surface:#20255a;--sunken:#0f1230;--track:#0f1230;--ink:#f3eee6;--ink-2:#bcbfd8;--line:#2f3570;--line-strong:#7c83be;--accent:#f28c3c;--accent-hover:#f7a563;--accent-press:#e07a2a;--on-accent:#161a3d;--link:#f5a65a;--link-hover:#ffc48a;--selected:#f3eee6;--on-selected:#161a3d;--selected-hover:#fff;--focus:#f5a65a;--stage:#262626;--band:#232862;--on-band:#f3eee6;--on-band-2:#bcbfd8;--error:#ff9b8f;--error-bg:#3b1a2b;--error-ink:#ffb4ab;--icon-ring:#ffffff2e;--shadow-1:none;--shadow-2:0 12px 24px -8px #00000073}}@media (width>=640px){:root{--gutter:24px}}@media (width>=1024px){:root{--gutter:32px;--head-h:64px}}@media (width>=1280px){:root{--panel-w:368px}}body[data-layout=tool]{--page-max:1360px}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:400 1rem/1.65 var(--font-sans);margin:0}@media (width>=1024px){body{font-size:1.0625rem}}img,svg,canvas{max-width:100%}img{height:auto}a{color:var(--link);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--link-hover)}p{text-wrap:pretty;margin:0 0 1em}ul,ol{padding-left:1.2em}h1,h2,h3{color:var(--ink);text-wrap:balance;font-synthesis:none;margin:0}h1,h2{font-family:var(--font-display);font-variant-numeric:lining-nums;font-weight:600}h1{letter-spacing:-.02em;font-size:clamp(2rem,1.45rem + 2vw,3rem);line-height:1.08}h2{letter-spacing:-.01em;font-size:clamp(1.5rem,1.3rem + .7vw,1.875rem);line-height:1.2}h3{font:600 1.125rem/1.3 var(--font-sans);letter-spacing:-.005em}@media (width>=1024px){h3{font-size:1.25rem}}strong{font-weight:600}table{font-variant-numeric:tabular-nums}:where(a,button,input,select,summary,textarea,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:2px}:where(a,button,input,select,summary):focus:not(:focus-visible){outline:none}.vh{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip{z-index:50;background:var(--surface);color:var(--ink);border-radius:var(--r-2);padding:8px 14px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.container{width:min(100% - 2 * var(--gutter), var(--page-max));margin-inline:auto}.section{padding-block:var(--section)}.section+.section{padding-top:0}.eyebrow{font:600 .8125rem/1.2 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--link);margin-bottom:var(--s-3);display:block}.lede{color:var(--ink-2);max-width:36em;font-size:clamp(1.0625rem,.95rem + .5vw,1.25rem);line-height:1.5}.muted{color:var(--ink-2)}.small{font-size:.9375rem;line-height:1.5}.note{color:var(--ink-2);margin:0;font-size:.8125rem;line-height:1.45}.meta{color:var(--ink-2);font-size:.875rem}.display{letter-spacing:-.025em;font-size:clamp(2.5rem,1.5rem + 3.6vw,4rem);line-height:1.04}.section-title{letter-spacing:-.015em;font-size:clamp(1.75rem,1.35rem + 1.5vw,2.5rem);line-height:1.12}.go{color:var(--link);font-weight:600}.go:after{content:" →"}.site-head{border-bottom:1px solid var(--line);background:var(--bg);z-index:20;position:relative}.site-head .container{height:var(--head-h);align-items:center;gap:var(--s-5);display:flex}.wordmark{font:600 1.25rem/1 var(--font-display);letter-spacing:-.01em;color:var(--ink);align-items:center;gap:10px;margin-right:auto;text-decoration:none;display:inline-flex}.wordmark:hover{color:var(--ink)}.app-icon{box-shadow:inset 0 0 0 1px var(--icon-ring), 0 0 0 1px var(--icon-ring);border-radius:22.5%;flex:none;display:block}.site-nav{gap:2px;display:none}.site-nav a{color:var(--ink);font:500 .9375rem/1 var(--font-sans);white-space:nowrap;border-radius:8px;padding:10px 12px;text-decoration:none}.site-nav a:hover{background:var(--sunken);color:var(--ink)}.site-nav a[aria-current=page]{box-shadow:inset 0 -2px 0 var(--accent);border-radius:8px 8px 0 0}.head-cta{border-radius:var(--r-pill);background:var(--selected);height:36px;color:var(--on-selected);font:600 .875rem/1 var(--font-sans);white-space:nowrap;transition:background var(--dur) var(--ease);align-items:center;padding:0 16px;text-decoration:none;display:inline-flex}.head-cta:hover{background:var(--selected-hover);color:var(--on-selected)}.head-cta:active{transform:translateY(1px)}.menu-button{width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;margin-right:-10px;display:grid}.menu-button:hover{background:var(--sunken)}.site-menu{inset:var(--head-h) 0 auto;border:0;border-bottom:1px solid var(--line);width:100%;max-width:none;padding:8px var(--gutter) 24px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-2);max-height:calc(100svh - var(--head-h));margin:0;position:fixed;overflow-y:auto}.site-menu p{font:600 .8125rem/1 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin:20px 0 6px}.site-menu a{min-height:48px;font:500 1.0625rem/1.2 var(--font-sans);color:var(--ink);border-bottom:1px solid var(--line);align-items:center;text-decoration:none;display:flex}.site-menu a[aria-current=page]{color:var(--link)}@media (width>=1024px){.site-nav{display:flex}.menu-button,.site-menu{display:none}}.site-foot{background:var(--sunken);border-top:1px solid var(--line);margin-top:var(--section);color:var(--ink-2);padding:56px 0 40px;font-size:.9375rem}.site-foot .container{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px;display:grid}.foot-brand{grid-column:1/-1}.foot-brand .wordmark{margin-bottom:10px}.foot-brand p{max-width:28em;margin:0}.foot-group p{font:600 .8125rem/1 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin:0 0 10px}.foot-group ul{margin:0;padding:0;list-style:none}.foot-group a{min-height:32px;color:var(--ink-2);align-items:center;text-decoration:none;display:inline-flex}.foot-group a:hover{color:var(--ink);text-decoration:underline}.foot-legal{border-top:1px solid var(--line);grid-column:1/-1;margin:0;padding-top:20px;font-size:.8125rem}@media (prefers-color-scheme:dark){.site-foot{background:var(--bg)}}@media (width>=1024px){.site-foot .container{grid-template-columns:4fr 2fr 2fr 2fr 2fr}.foot-brand{grid-column:auto}}.button{border-radius:var(--r-pill);height:44px;font:600 .9375rem/1 var(--font-sans);cursor:pointer;white-space:nowrap;background:var(--accent);color:var(--on-accent);transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 20px;text-decoration:none;display:inline-flex}.button:hover{background:var(--accent-hover);color:var(--on-accent)}.button:active{background:var(--accent-press);transform:translateY(1px)}.button.secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.button.secondary:hover{background:var(--sunken)}.button.secondary:active{background:var(--track)}.button.ghost{color:var(--ink);background:0 0}.button.ghost:hover{background:var(--sunken)}.button.small{height:36px;padding:0 14px;font-size:.875rem}.button:disabled{background:var(--track);color:var(--ink-2);cursor:not-allowed;border-color:#0000;transform:none}.button:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.badge{border-radius:10px;line-height:0;display:inline-block}.badge img{width:auto;height:48px;display:block}.badge.compact img{height:40px}.badge:focus-visible{outline-offset:3px}.app-aside{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--shadow-1);grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.app-aside .app-title{font:600 1rem/1.3 var(--font-sans);color:var(--ink);margin:0;display:none}.app-aside .app-sub{font:600 .875rem/1.3 var(--font-sans);color:var(--ink);margin:0}.app-aside .badge{grid-area:1/3}.app-aside .app-text{min-width:0}@media (width>=640px){.app-aside .app-title{display:block}.app-aside .app-sub{color:var(--ink-2);font-weight:400}}@media (width>=1024px){.app-aside{grid-template-columns:48px minmax(0,1fr);align-items:start;gap:4px 14px;padding:16px}.app-aside .app-icon{grid-row:1/span 1;width:48px;height:48px}.app-aside .badge{grid-area:auto/1/auto/-1;justify-self:start;margin-top:12px}}.app-band{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-4);margin-top:var(--section);align-items:center;gap:28px;padding:32px 24px;display:grid}.app-band h2{margin-bottom:12px;font-size:clamp(1.5rem,1.3rem + .7vw,1.875rem)}.app-band p{color:var(--ink-2);max-width:40em}.app-band .band-visual{justify-self:center;width:min(60%,240px)}.app-band .requirement{color:var(--ink-2);margin:10px 0 0;font-size:.8125rem}@media (width>=1024px){.app-band{grid-template-columns:5fr 7fr;gap:56px;padding:40px 56px}.app-band .band-visual{width:240px}}.app-band.dark{background:var(--band);color:var(--on-band);border:0;border-radius:0;margin:0}.app-band.dark h2{color:var(--on-band)}.app-band.dark p,.app-band.dark .requirement{color:var(--on-band-2)}.device{box-shadow:inset 0 0 0 1px var(--device-ring), var(--shadow-device);background:#0d0e14;border-radius:13%/6%;padding:2.4%;display:block}.device img{border-radius:10.5%/4.8%;width:100%;height:auto;display:block}.device.ipad{border-radius:4.5%/3.4%;padding:2%}.device.ipad img{border-radius:3%/2.2%}.hero{align-items:center;gap:40px;padding-block:32px 56px;display:grid}.hero .lede{margin-block:20px 28px}.hero-visual{aspect-ratio:6/5;justify-self:center;width:100%;max-width:560px;position:relative}.hero-visual .ipad{width:66%;position:absolute;top:2%;left:4%}.hero-visual .phone{z-index:2;width:30%;position:absolute;bottom:0;right:2%}@media (width>=1024px){.hero{grid-template-columns:6fr 6fr;gap:48px;padding-block:72px 96px}.hero-visual{max-width:none}}.section-head{gap:12px 48px;margin-bottom:32px;display:grid}.section-head p{color:var(--ink-2);max-width:36em;margin:0}@media (width>=1024px){.section-head{grid-template-columns:6fr 6fr;align-items:end}}.card-grid{gap:16px;display:grid}@media (width>=640px){.card-grid.three,.card-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){.card-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.card-grid.two{gap:24px}}.tool-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--shadow-1);color:var(--ink);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);grid-template-columns:96px minmax(0,1fr);align-items:center;gap:16px;padding:12px;text-decoration:none;display:grid}.tool-card:hover{color:var(--ink);border-color:var(--line-strong);box-shadow:var(--shadow-2)}.tool-card:active{transform:translateY(1px)}.tool-card .card-media{aspect-ratio:1;border-radius:var(--r-2);background:var(--stage);place-items:center;display:grid;overflow:hidden}.tool-card .card-media img{object-fit:contain;width:100%;height:100%;transition:transform .2s var(--ease)}.tool-card h3{margin-bottom:4px;font-size:1.0625rem}.tool-card p{color:var(--ink-2);margin:0;font-size:.875rem;line-height:1.45}.tool-card .go{display:none}@media (width>=1024px){.card-grid.three .tool-card{grid-template-columns:1fr;align-items:start;padding:0;overflow:hidden}.card-grid.three .tool-card .card-media{aspect-ratio:4/3;border-radius:0}.card-grid.three .tool-card .card-body{padding:16px 20px 20px}.card-grid.three .tool-card h3{margin-bottom:6px;font-size:1.25rem}.card-grid.three .tool-card p{margin-bottom:12px;font-size:.9375rem}.card-grid.three .tool-card .go{font-size:.9375rem;display:inline}.tool-card:hover .card-media img{transform:scale(1.02)}}.ref-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--shadow-1);color:var(--ink);grid-template-columns:112px minmax(0,1fr);align-items:center;gap:16px;padding:12px;text-decoration:none;display:grid}.ref-card:hover{color:var(--ink);border-color:var(--line-strong);box-shadow:var(--shadow-2)}.ref-card h3{margin-bottom:4px;font-size:1.0625rem}.ref-card p{color:var(--ink-2);margin:0;font-size:.875rem}.ref-visual{border-radius:var(--r-2);background:var(--sunken);height:84px;color:var(--ink-2);place-items:center;display:grid;overflow:hidden}.ref-visual.thumbs{background:var(--stage);position:relative}.ref-visual.thumbs img{border-radius:4px;width:auto;height:72px;position:absolute;box-shadow:0 2px 6px #00000040}.ref-visual.thumbs img:first-child{top:6px;left:8px;transform:rotate(-4deg)}.ref-visual.thumbs img:nth-child(2){z-index:1;top:4px;left:34px}.ref-visual.thumbs img:nth-child(3){z-index:2;top:7px;left:60px;transform:rotate(4deg)}.feature-grid{gap:40px 24px;display:grid}@media (width>=640px){.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.feature-panel{background:var(--sunken);border-radius:var(--r-4);aspect-ratio:3/2;justify-items:center;margin-bottom:18px;padding-top:24px;display:grid;overflow:hidden}.feature-panel .device{width:46%;height:max-content}@media (width>=1024px){.feature-panel{aspect-ratio:16/10;padding-top:28px}}.feature h3{margin-bottom:8px}.feature p{color:var(--ink-2);max-width:34em;margin:0;font-size:.9375rem;line-height:1.6}@media (width>=1024px){.feature p{font-size:1rem}}.ipad-band{background:var(--surface);border-block:1px solid var(--line);padding-block:var(--section)}.ipad-band .container{align-items:center;gap:40px;display:grid}.ipad-pair{grid-template-columns:1fr 1fr;gap:20px;display:grid;position:relative}.ipad-pair .device:nth-child(2){margin-top:48px}@media (width>=1024px){.ipad-band .container{grid-template-columns:7fr 5fr;gap:64px}}.qa{gap:24px 48px;display:grid}@media (width>=1024px){.qa{grid-template-columns:4fr 8fr}}.faq details{border-bottom:1px solid var(--line)}.faq details:first-of-type{border-top:1px solid var(--line)}.faq summary{font:600 1rem/1.4 var(--font-sans);color:var(--ink);cursor:pointer;border-radius:6px;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"";border-right:2px solid var(--ink-2);border-bottom:2px solid var(--ink-2);width:10px;height:10px;transition:transform var(--dur) var(--ease);flex:none;transform:translateY(-3px)rotate(45deg)}.faq details[open] summary:after{transform:translateY(2px)rotate(-135deg)}.faq summary:hover{color:var(--link)}.faq details>p,.faq details>div{max-width:var(--measure);color:var(--ink);margin:0;padding-bottom:18px}@media (width>=1024px){.faq summary{font-size:1.0625rem}}.guide-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--shadow-1);color:var(--ink);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:20px;text-decoration:none;display:block}.guide-card:hover{color:var(--ink);border-color:var(--line-strong);box-shadow:var(--shadow-2)}.guide-card .eyebrow{margin-bottom:8px}.guide-card h3{margin-bottom:6px;font-size:1.125rem}.guide-card p{color:var(--ink-2);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.9375rem;line-height:1.5;display:-webkit-box;overflow:hidden}.row-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:24px;display:flex}.tool-head{max-width:80ch;padding-block:16px}.tool-head h1{letter-spacing:-.015em;font-size:clamp(1.625rem,1.25rem + 1.3vw,2.25rem);line-height:1.12}.tool-head p{color:var(--ink-2);margin:8px 0 0;font-size:.9375rem;line-height:1.45}@media (width>=1024px){.tool-head{padding-block:24px 20px}.tool-head p{font-size:1.0625rem}}.tool{grid-template-columns:minmax(0,1fr);grid-template-areas:"stage""app""panel";gap:12px;display:grid}@media (width>=1024px){.tool{grid-template-columns:minmax(0, 1fr) var(--panel-w);grid-template-rows:auto 1fr;grid-template-areas:"stage app""stage panel";align-items:start;gap:16px 24px}}.tool>.stage{grid-area:stage}.tool>.app-aside{grid-area:app}.tool>.panel{grid-area:panel}.stage{z-index:5;background:var(--stage);margin-inline:calc(var(--gutter) * -1);border-bottom:1px solid var(--line);grid-template-rows:minmax(0,1fr) auto;display:grid;position:sticky;top:0}.stage-image{grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;height:min(38svh,320px);min-height:0;padding:8px;display:grid;position:relative;overflow:hidden}.stage-image>*{grid-area:1/1}.stage-image canvas{cursor:crosshair;width:auto;max-width:100%;height:auto;max-height:100%;display:block;box-shadow:0 1px 3px #0000002e}.stage[data-busy] canvas{opacity:.5}.stage-toolbar{background:var(--surface);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;min-height:52px;padding:6px 12px;display:flex}.stage-toolbar .toolbar-left{align-items:center;gap:8px;min-width:0;display:flex}.stage-toolbar .toolbar-right{flex:none;align-items:center;gap:8px;display:flex}.stage-toolbar .button{height:40px;padding:0 14px;font-size:.875rem}.stage-toolbar .file-name{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;max-width:28ch;font-size:.8125rem;font-weight:600;overflow:hidden}.stage-toolbar .sample-label{font:600 .8125rem/1 var(--font-sans);color:var(--ink-2);white-space:nowrap}.stage[data-source=sample] .when-user,.stage:not([data-source=sample]) .when-sample{display:none}.stage[data-source=sample] [data-download]{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.stage[data-source=sample] [data-download]:hover{background:var(--sunken)}.stage:not([data-source=sample]) .open-photo{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.stage:not([data-source=sample]) .open-photo:hover{background:var(--sunken)}@media (width<=639px){.stage-toolbar .sample-label,.stage-toolbar .file-name,.stage-toolbar .seg,.stage-toolbar .toolbar-left{display:none}.stage-toolbar .toolbar-right,.stage-toolbar .toolbar-right>*{flex:1}}@media (width>=640px){.stage{border:0;border-radius:16px;margin-inline:0;overflow:hidden}.stage-image{height:min(45svh,460px);padding:16px}}@media (width>=1024px){.stage{border-radius:var(--r-4);align-self:start;height:clamp(420px,100svh - 212px,900px);top:16px}.stage-image{height:auto;padding:24px}.stage-toolbar{min-height:56px;padding:0 12px}}.stage-status{border-radius:var(--r-pill);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-2);white-space:nowrap;z-index:3;margin:0;padding:8px 14px 8px 36px;font-size:.8125rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.stage-status:before{content:"";border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;margin-top:-7px;animation:.8s linear infinite spin;position:absolute;top:50%;left:14px}@keyframes spin{to{transform:rotate(360deg)}}.stage-error{border-radius:var(--r-2);background:var(--error-bg);color:var(--error-ink);z-index:3;margin:0;padding:10px 14px;font-size:.875rem;position:absolute;top:12px;left:12px;right:12px}.stage-status:empty,.stage-error:empty{display:none}.stage-image.dragging:after{content:"Drop the photo to open it";border:2px dashed var(--accent);border-radius:var(--r-3);background:color-mix(in srgb, var(--surface) 88%, transparent);font:600 .9375rem/1.3 var(--font-sans);color:var(--ink);z-index:4;place-items:center;display:grid;position:absolute;inset:8px}.drop{text-align:center;color:var(--ink);justify-items:center;gap:8px;padding:24px;display:grid}.drop .note{margin:0}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--shadow-1);margin:0;overflow:hidden}.panel-section{border:0;border-top:1px solid var(--line);gap:10px;min-width:0;margin:0;padding:16px 20px;display:grid}.panel-section:first-child{border-top:0}.panel-section>legend{float:left;width:100%;padding:0}.panel-section>legend+*{clear:both}.panel-label{font:600 .875rem/1.3 var(--font-sans);color:var(--ink);justify-content:space-between;align-items:baseline;gap:12px;margin:0;display:flex}.panel-label output,.panel-label .value{color:var(--ink-2);font-variant-numeric:tabular-nums;font-weight:500}.panel-privacy{color:var(--ink-2);padding-block:12px;font-size:.8125rem}@media (width>=640px) and (width<=1023px){.panel{grid-template-columns:1fr 1fr;display:grid}.panel-section,.panel-section:nth-child(2){border-top:1px solid var(--line)}.panel-section.wide,.panel-privacy{grid-column:1/-1}.panel-section:nth-child(2n):not(.wide){border-left:1px solid var(--line)}}.seg{background:var(--track);border-radius:var(--r-2);border:0;grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;min-width:0;margin:0;padding:3px;display:grid}.seg label{min-width:0;display:block;position:relative}.seg input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.seg span{height:34px;font:600 .875rem/1 var(--font-sans);color:var(--ink-2);white-space:nowrap;cursor:pointer;transition:background var(--dur) var(--ease), color var(--dur) var(--ease);border-radius:8px;place-items:center;padding:0 8px;display:grid}.seg label:hover span{background:color-mix(in srgb, var(--track), var(--ink) 6%);color:var(--ink)}.seg input:checked+span{background:var(--selected);color:var(--on-selected);box-shadow:var(--shadow-1)}.seg input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}.seg input:disabled+span{opacity:.45;cursor:not-allowed}.seg.small span{height:30px;padding:0 10px;font-size:.8125rem}fieldset:disabled .seg span{opacity:.45;cursor:not-allowed}.radio-list{border:1px solid var(--line);border-radius:var(--r-2);display:grid;overflow:hidden}.radio-row{border-top:1px solid var(--line);cursor:pointer;align-items:center;gap:12px;min-height:44px;padding:0 14px;font-size:.9375rem;display:flex}.radio-row:first-child{border-top:0}.radio-row:hover{background:var(--sunken)}.radio-row input{width:18px;height:18px;accent-color:var(--selected);flex:none;margin:0}.radio-row:has(input:checked){background:var(--sunken);font-weight:600}.radio-row:has(input:disabled){color:var(--ink-2);cursor:not-allowed}.radio-row:has(input:disabled):hover{background:0 0}.switch{min-height:44px;color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;font-size:.9375rem;display:flex}.switch input{-webkit-appearance:none;appearance:none;border-radius:var(--r-pill);background:var(--track);width:40px;height:24px;box-shadow:inset 0 0 0 1px var(--line-strong);cursor:pointer;transition:background var(--dur) var(--ease);flex:none;margin:0;position:relative}.switch input:after{content:"";background:var(--surface);width:20px;height:20px;transition:transform var(--dur) var(--ease);border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.switch input:checked{background:var(--selected);box-shadow:none}.switch input:checked:after{background:var(--on-selected);transform:translate(16px)}.switch input:disabled{opacity:.45;cursor:not-allowed}.field,.controls-select{height:40px;font:400 .9375rem/1 var(--font-sans);color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-2);min-width:0;padding:0 12px}.field:hover{border-color:var(--ink-2)}.field:focus-visible{outline-offset:1px}select.field{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%234b4f70' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;width:100%;padding-right:36px}@media (prefers-color-scheme:dark){.field{background-color:var(--sunken)}select.field{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23bcbfd8' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}}input[type=number].field{font-variant-numeric:tabular-nums;width:5.5em}.field-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.field-row .times{color:var(--ink-2)}input[type=range]{width:100%;height:32px;accent-color:var(--accent);cursor:pointer;margin:0}.bands{gap:2px;margin:0;padding:0;list-style:none;display:grid}.band{width:100%;height:36px;font:500 .8125rem/1 var(--font-sans);font-variant-numeric:tabular-nums;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:28px minmax(0,1fr) 7.5ch 4ch;align-items:center;gap:10px;padding:0 8px;display:grid}.band:hover{background:var(--sunken)}.band[aria-pressed=true]{background:var(--sunken);box-shadow:inset 0 0 0 2px var(--highlight)}.band .chip{width:28px;height:20px;box-shadow:inset 0 0 0 1px var(--line-strong);border-radius:4px}.band .bar{background:var(--track);border-radius:3px;height:6px;overflow:hidden}.band .bar i{background:var(--ink-2);height:100%;display:block}.band .range,.band .share{text-align:right;color:var(--ink-2)}.swatches{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.swatch{font:inherit;color:var(--ink-2);cursor:pointer;background:0 0;border:0;justify-items:center;gap:4px;padding:0;display:grid}.swatch-chip{aspect-ratio:1;width:100%;box-shadow:inset 0 0 0 1px var(--line);border-radius:8px;display:block}.swatch[aria-pressed=true] .swatch-chip{outline:2px solid var(--selected);outline-offset:2px}.swatch-share{font-variant-numeric:tabular-nums;font-size:.75rem}.readout{background:var(--sunken);border-radius:var(--r-2);gap:6px;padding:12px;display:grid}.readout p{margin:0;font-size:.875rem}.readout-head{grid-template-columns:40px 1fr auto;align-items:center;gap:12px;margin-bottom:2px;display:grid}.readout-chip{width:40px;height:40px;box-shadow:inset 0 0 0 1px var(--line);border-radius:8px}.readout-hex{font:600 .9375rem/1.2 var(--font-mono)!important}.value-scale{height:14px;box-shadow:inset 0 0 0 1px var(--line);border-radius:4px;margin-top:6px;position:relative}.value-scale i{background:var(--accent);width:4px;box-shadow:0 0 0 1px var(--surface);border-radius:2px;margin-left:-2px;position:absolute;top:-4px;bottom:-4px}.scale-labels{color:var(--ink-2);justify-content:space-between;display:flex;font-size:.75rem!important}.legend{color:var(--ink-2);grid-template-columns:auto 1fr auto;align-items:center;gap:8px;font-size:.8125rem;display:grid}.legend i{background:linear-gradient(90deg,#2878ff,gray,#ff8420);border-radius:5px;height:10px}.color-dots{border:0;flex-wrap:wrap;gap:10px;margin:0;padding:0;display:flex}.color-dots label{position:relative}.color-dots input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.color-dots span{width:30px;height:30px;box-shadow:inset 0 0 0 1px var(--line-strong);cursor:pointer;border-radius:50%;display:block}.color-dots input:checked+span{outline:2px solid var(--selected);outline-offset:2px}.color-dots input:focus-visible+span{outline:2px solid var(--focus);outline-offset:3px}.color-dots legend{width:100%;margin-bottom:10px}.dot-contrast{background:linear-gradient(135deg,#fff 50%,#1c1c1c 50%)}.dot-white{background:#fff}.dot-black{background:#000}.dot-red{background:#ff3b30}.dot-yellow{background:#fc0}.dot-cyan{background:#32ade6}.readout-list{background:var(--sunken);border-radius:var(--r-2);font-variant-numeric:tabular-nums;grid-template-columns:auto 1fr;gap:4px 16px;margin:0;padding:12px;font-size:.875rem;display:grid}.readout-list dt{color:var(--ink-2)}.readout-list dd{text-align:right;margin:0;font-weight:500}.marks{margin:0;font-size:.875rem;line-height:1.55}.tool-more{margin-top:var(--section);gap:32px 48px;display:grid}.tool-more .prose{max-width:var(--measure)}@media (width>=1024px){.tool-more{grid-template-columns:8fr 3fr}}.related h2{font:600 .8125rem/1.2 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin-bottom:12px}.related ul{margin:0;padding:0;list-style:none}.related li{border-top:1px solid var(--line)}.related a{color:var(--ink);padding:12px 0;font-size:.9375rem;text-decoration:none;display:block}.related a:hover{color:var(--link)}.privacy-note{color:var(--ink-2);font-size:.8125rem}.page-head{align-items:start;gap:20px 48px;padding-block:32px 24px;display:grid}.page-head .lede{margin:16px 0 0}@media (width>=1024px){.page-head{grid-template-columns:8fr 4fr;padding-block:48px 32px}.page-head .app-aside{margin-top:8px}}.crumbs{margin:0 0 12px;font-size:.8125rem}.crumbs a{color:var(--ink-2)}.jump{scrollbar-width:none;gap:8px;margin:0 0 16px;padding:2px 2px 8px;list-style:none;display:flex;overflow-x:auto}.jump::-webkit-scrollbar{display:none}.chip{border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);height:32px;color:var(--ink);font:500 .875rem/1 var(--font-sans);white-space:nowrap;align-items:center;padding:0 12px;text-decoration:none;display:inline-flex}.chip:hover{background:var(--sunken);color:var(--ink)}.prose{max-width:var(--measure)}.prose h2{margin:2em 0 .6em;scroll-margin-top:24px}.prose h3{margin:1.6em 0 .4em}.prose>:first-child{margin-top:0}.prose li{margin-bottom:.4em}.prose figure,.figure{background:var(--sunken);border-radius:var(--r-3);justify-items:center;gap:16px;margin:32px 0;padding:24px;display:grid}.prose figure svg{width:100%;max-width:360px;height:auto;color:var(--ink)}.prose figure .device{width:min(100%,240px)}.prose figcaption{color:var(--ink-2);justify-self:stretch;font-size:.875rem;line-height:1.5}.prose table{display:block;overflow-x:auto}.sources-title{font-size:1.25rem!important}.sources{color:var(--ink-2);padding-left:1.1em;font-size:.875rem}.sources li{margin-bottom:.6em}.byline{color:var(--ink-2);margin:12px 0 0;font-size:.875rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--shadow-1);margin:24px 0;padding:24px}.card>:last-child{margin-bottom:0}.callout{background:var(--sunken);border-radius:var(--r-3);margin:24px 0;padding:18px 20px}.callout>:last-child{margin-bottom:0}.article{gap:32px 48px;display:grid}.article-head{max-width:48rem;padding-block:32px 8px}.toc{display:none}.toc-mobile{border:1px solid var(--line);border-radius:var(--r-2);background:var(--surface);margin:16px 0 8px}.toc-mobile summary{font:600 .875rem/1 var(--font-sans);cursor:pointer;padding:12px 16px}.toc-mobile ol{margin:0;padding:0 16px 12px 32px;font-size:.9375rem}.toc-mobile li{padding:4px 0}.toc-title{font:600 .8125rem/1.2 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin:0 0 10px}.toc ol{border-left:2px solid var(--line);margin:0 0 24px;padding:0;list-style:none}.toc ol a{color:var(--ink-2);padding:6px 0 6px 12px;font-size:.875rem;line-height:1.4;text-decoration:none;display:block}.toc ol a:hover{color:var(--ink)}@media (width>=1024px){.article{grid-template-columns:minmax(0,8fr) minmax(0,3fr)}.article-head{padding-block:48px 16px}.toc{align-self:start;display:block;position:sticky;top:24px}.toc-mobile{display:none}}.table-scroll{border:1px solid var(--line);border-radius:var(--r-3);background:var(--surface);background-image:linear-gradient(to right, var(--surface), var(--surface)), linear-gradient(to right, var(--surface), var(--surface)), linear-gradient(to right, #0000001f, transparent), linear-gradient(to left, #0000001f, transparent);background-position:0,100%,0,100%;background-repeat:no-repeat;background-size:24px 100%,24px 100%,12px 100%,12px 100%;background-attachment:local,local,scroll,scroll;margin:16px 0 32px;overflow-x:auto}.data-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9375rem}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;height:44px;padding:10px 14px}.data-table tbody tr:last-child>*{border-bottom:0}.data-table thead th{background:var(--sunken);font:600 .8125rem/1.2 var(--font-sans);color:var(--ink-2)}.data-table .num{text-align:right}.data-table tbody th{font-weight:600}.data-table tbody th,.data-table thead th:first-child{z-index:1;background:var(--surface);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.data-table thead th:first-child{background:var(--sunken)}@media (hover:hover){.data-table tbody tr:hover>*{background:var(--sunken)}}.shape-glyph{border:1.5px solid var(--ink-2);vertical-align:-3px;border-radius:2px;height:16px;margin-right:8px;display:inline-block}.prose table:not(.data-table){border-collapse:collapse;width:100%;margin:16px 0 24px;font-size:.9375rem}.prose table:not(.data-table) th,.prose table:not(.data-table) td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:8px 10px}.prose table:not(.data-table) th{background:var(--sunken);font-size:.875rem}.filters{flex-wrap:wrap;align-items:center;gap:12px 24px;margin:0 0 24px;display:flex}.filter-group{border:0;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;margin:0;padding:0;display:flex}.filter-group legend{float:left;font:600 .8125rem/32px var(--font-sans);color:var(--ink-2);margin-right:4px;padding:0}.chips{flex-wrap:wrap;gap:6px;display:flex}.chips label{position:relative}.chips input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.chips span{border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);height:32px;font:500 .875rem/1 var(--font-sans);white-space:nowrap;cursor:pointer;align-items:center;padding:0 12px;display:inline-flex}.chips label:hover span{background:var(--sunken)}.chips input:checked+span{background:var(--selected);color:var(--on-selected);border-color:#0000}.chips input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}.filter-count{color:var(--ink-2);margin-left:auto;font-size:.8125rem}.filter-toggle{display:none}@media (width<=639px){.filter-toggle{justify-content:space-between;width:100%;display:flex}.filters{gap:14px;display:grid}.filters[data-closed] .filter-group{display:none}.filter-count{margin:0}}.portrait-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px;margin:0;padding:0;list-style:none;display:grid}@media (width>=640px){.portrait-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:32px 16px}}@media (width>=1024px){.portrait-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}.portrait-card{color:var(--ink);gap:8px;text-decoration:none;display:grid}.portrait-card .thumb{aspect-ratio:4/5;border-radius:var(--r-2);background:var(--stage);display:block;overflow:hidden}.portrait-card img{object-fit:contain;width:100%;height:100%;transition:filter var(--dur) var(--ease);display:block}.portrait-card:hover{color:var(--ink)}.portrait-card:hover img{filter:brightness(1.04)}.portrait-card:hover .title{text-decoration:underline}.portrait-card .title{font:600 .9375rem/1.35 var(--font-sans);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.portrait-card .who{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}.portrait-card:focus-visible{outline-offset:3px;border-radius:var(--r-2)}.portrait{gap:24px 48px;padding-top:24px;display:grid}.portrait-media{background:var(--stage);border-radius:var(--r-4);margin-inline:calc(var(--gutter) * -1);place-items:center;padding:24px;display:grid}.portrait-media img{width:auto;max-height:70svh;display:block;box-shadow:0 1px 3px #00000040}.portrait-credit{color:var(--ink-2);margin:10px 0 0;font-size:.8125rem}.portrait-info h1{font-size:clamp(2rem,1.6rem + 1.4vw,2.5rem)}.tags{flex-wrap:wrap;gap:6px;margin:16px 0;padding:0;list-style:none;display:flex}.tags li{border-radius:var(--r-pill);background:var(--sunken);height:28px;color:var(--ink);align-items:center;padding:0 10px;font-size:.8125rem;display:inline-flex}.action-list{margin:12px 0 16px;padding:0;list-style:none}.action-list li{border-top:1px solid var(--line)}.action-list li:last-child{border-bottom:1px solid var(--line)}.action-list a{min-height:48px;color:var(--ink);justify-content:space-between;align-items:center;font-weight:500;text-decoration:none;display:flex}.action-list a:after{content:"›";color:var(--ink-2);font-size:1.25rem}.action-list a:hover{color:var(--link)}.portrait-info .button.wide{width:100%;margin-top:4px}@media (width>=640px){.portrait-media{margin-inline:0}}@media (width>=1024px){.portrait{grid-template-columns:7fr 5fr;align-items:start;padding-top:32px}.portrait-media{position:sticky;top:24px}.portrait-media img{max-height:calc(100svh - 160px)}}.studies{grid-template-columns:1fr;gap:24px;display:grid}@media (width>=640px){.studies{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}.studies figure{margin:0}.studies .study-media{background:var(--stage);border-radius:var(--r-3);place-items:center;padding:12px;display:grid}.studies img{width:auto;max-height:60svh;display:block}.studies figcaption{color:var(--ink-2);margin-top:10px;font-size:.875rem;line-height:1.5}.studies figcaption strong{color:var(--ink)}.palette-bar{border-radius:var(--r-2);height:48px;box-shadow:inset 0 0 0 1px var(--line);margin:16px 0;display:flex;overflow:hidden}.palette-bar span{height:100%;display:block}.palette-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 16px;padding:0;list-style:none;display:grid}@media (width>=640px){.palette-details{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=1024px){.palette-details{grid-template-columns:repeat(8,minmax(0,1fr))}}.palette-details li{color:var(--ink-2);font-size:.8125rem;line-height:1.45}.palette-details .swatch-chip{aspect-ratio:auto;border-radius:6px;height:32px;margin-bottom:6px}.palette-details strong{font:600 .875rem/1.3 var(--font-mono);color:var(--ink);display:block}.contact-card .button{margin:4px 0 14px}.facts-card{grid-template-columns:96px 1fr;align-items:center;gap:16px 24px;display:grid}.facts-card .app-icon{width:96px;height:96px}.shot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px;padding:0;list-style:none;display:grid}@media (width>=1024px){.shot-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.shot-grid a{color:var(--ink-2);gap:10px;font-size:.8125rem;text-decoration:none;display:grid}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.button:active,.tool-card:active,.head-cta:active{transform:none}}.home-band{padding-block:56px;display:block}.home-band .band-inner{justify-items:start;gap:20px;display:grid}.home-band h2{margin:0}.home-band .requirement{margin-top:8px}body[data-layout=home] .site-foot{margin-top:0}@media (width>=1024px){.home-band{padding-block:72px}.home-band .band-inner{grid-template-columns:auto 1fr auto;align-items:center;gap:28px}}.card-grid+.card-grid{margin-top:16px}@media (width>=1024px){.card-grid+.card-grid{margin-top:24px}}.table-title{margin:40px 0 0;scroll-margin-top:24px}@media (width<=639px){.hide-phone{display:none}}.head-note{margin-top:12px}.prose-wide{margin-top:var(--s-8)}.prose-wide>h2{margin-bottom:16px}.portrait-info .crumbs{margin-top:0}.portrait-app{margin-top:24px}.portrait-info .note{margin-top:4px}.topic{margin-top:var(--s-7)}.topic>h2{margin-bottom:16px}.link-row{flex-wrap:wrap;gap:8px 24px;margin-top:32px;display:flex}@media (width<=639px){.facts-card{grid-template-columns:1fr}.facts-card .button{white-space:normal;text-align:center;height:auto;min-height:36px;padding-block:8px}}
