@font-face{font-family:Anton;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/anton-vietnamese-400-normal.CkBxLiRJ.woff2)format("woff2"),url(/_astro/anton-vietnamese-400-normal.2FfR1wHA.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Anton;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/anton-latin-ext-400-normal.SyiqE2Jt.woff2)format("woff2"),url(/_astro/anton-latin-ext-400-normal.BMODBQc6.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Anton;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/anton-latin-400-normal.Byf51wtH.woff2)format("woff2"),url(/_astro/anton-latin-400-normal.AUNGEG_V.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#0a0a0a;--grey:#5e5e5e;--mist:#8c8c8c;--line:#ededed;--paper:#fff;--on-ink:#fff;--display:"Anton", "Helvetica Neue Condensed", "Arial Narrow", Impact, sans-serif;--sans:"Helvetica Neue", Helvetica, Arial, sans-serif;--m:24px}@media (prefers-color-scheme:dark){:root{--ink:#f5f5f5;--grey:#a1a1a1;--mist:#737373;--line:#2e2e2e;--paper:#000;--on-ink:#000}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font:400 18px/1.5 var(--sans);margin:0}img,svg{max-width:100%}a{color:var(--ink);text-underline-offset:3px;text-decoration-thickness:2px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.skip{background:var(--ink);color:var(--on-ink);z-index:10;padding:12px 16px;position:absolute;top:0;left:-999px}.skip:focus{left:0}.wrap{max-width:1040px;padding:0 var(--m);margin:0 auto}.prose-wrap{max-width:720px}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;min-height:44px;padding-top:16px;padding-bottom:16px;display:flex}.wordmark{font:400 32px/1 var(--display);text-transform:uppercase;letter-spacing:.01em;text-decoration:none}.nav{flex-wrap:wrap;gap:0 20px;display:flex}.nav a{align-items:center;min-height:44px;font-size:16px;font-weight:700;text-decoration:none;display:inline-flex}.nav a:hover,.nav a[aria-current=page]{text-underline-offset:6px;text-decoration:underline 2px}.display-xl{font:400 clamp(72px, 15vw, 168px)/.9 var(--display);text-transform:uppercase;letter-spacing:.005em;margin:0;padding-top:.12em}.display-l{font:400 clamp(48px, 9vw, 96px)/.95 var(--display);text-transform:uppercase;margin:0;padding-top:.08em}.heading{font:700 28px/1.1 var(--sans);letter-spacing:-.02em;margin:0 0 8px}.title{font:700 20px/1.2 var(--sans);margin:0 0 4px}.label{font:700 12px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--grey);margin:0}.caption{color:var(--grey);margin:0;font-size:14px;line-height:1.45}.lead{max-width:640px;margin:24px 0;font-size:22px;line-height:1.4}p{margin:0 0 16px}.section{border-top:2px solid var(--ink);margin-top:56px;padding-top:12px}.section>.label{margin-bottom:16px}.hero{padding:24px 0 8px}.hero .label{margin-bottom:16px}.grid3{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.grid2{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}@media (width<=760px){.grid3,.grid2{grid-template-columns:1fr}}.step-n{font:400 64px/1 var(--display);margin:0 0 8px}.btn{background:var(--ink);min-height:56px;color:var(--on-ink);font:700 16px/1.2 var(--sans);border:2px solid var(--ink);cursor:pointer;border-radius:0;justify-content:space-between;align-items:center;gap:24px;width:100%;max-width:360px;padding:0 20px;text-decoration:none;display:flex}.btn:hover{background:var(--paper);color:var(--ink)}.btn.secondary{background:var(--paper);color:var(--ink);justify-content:center}.btn.secondary:hover{background:var(--ink);color:var(--on-ink)}.btn[aria-disabled=true]{cursor:default}.ticks{margin:0;padding:0;list-style:none}.ticks li{border-bottom:1px solid var(--line);padding:10px 0 10px 32px;position:relative}.ticks li:before{content:"✓";font-weight:700;position:absolute;left:0}.ticks.plain li:before{content:"–"}.rows{margin:0;padding:0;list-style:none}.rows li{border-bottom:1px solid var(--line);padding:16px 0}.rows a{text-decoration:none}.rows a:hover .title{text-decoration:underline 2px}.plans{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}@media (width<=760px){.plans{grid-template-columns:1fr}}.plan{border:1px solid var(--grey);padding:16px}.plan.best{border:2px solid var(--ink)}.plan .price{font:700 28px/1.1 var(--sans);letter-spacing:-.02em;margin:8px 0 4px}table{border-collapse:collapse;width:100%;margin:8px 0 24px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:12px 8px 12px 0}th{font:700 12px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--grey);border-bottom:2px solid var(--ink)}.callout,blockquote{border:2px solid var(--ink);margin:24px 0;padding:16px 20px}blockquote p:last-child,.callout p:last-child{margin-bottom:0}.prose h2{font:700 28px/1.15 var(--sans);letter-spacing:-.02em;border-top:2px solid var(--ink);margin:40px 0 12px;padding-top:12px}.prose h3{font:700 20px/1.2 var(--sans);margin:28px 0 8px}.prose ul,.prose ol{margin:0 0 16px;padding-left:24px}.prose li{margin-bottom:6px}.prose code{background:var(--line);padding:1px 5px;font-family:ui-monospace,Menlo,monospace;font-size:.92em}.prose hr{border:0;border-top:1px solid var(--line);margin:32px 0}.meta{color:var(--grey);margin-bottom:24px;font-size:14px}.sources li{overflow-wrap:anywhere}.faq h2{font:700 12px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--grey);border-top:2px solid var(--ink);margin:48px 0 8px;padding-top:12px}.faq h3{font:700 20px/1.25 var(--sans);margin:24px 0 6px}.faq p{max-width:680px}.field{margin:0 0 24px}.field label{font:700 12px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--grey);margin-bottom:4px;display:block}.field input,.field select,.field textarea{width:100%;font:700 20px/1.3 var(--sans);color:var(--ink);border:0;border-bottom:2px solid var(--ink);background:0 0;border-radius:0;padding:8px 0}.field textarea{resize:vertical;min-height:160px;font-weight:400}.field select{appearance:none;background-image:none}.hp{height:0;position:absolute;left:-9999px;overflow:hidden}.status{margin-top:16px;font-weight:700}.foot{border-top:2px solid var(--ink);margin-top:72px;padding-top:24px;padding-bottom:48px}.foot nav{flex-wrap:wrap;gap:0 20px;margin:8px 0 16px;display:flex}.foot nav a{align-items:center;min-height:44px;font-size:16px;display:inline-flex}.shot{margin:0}.shot img{border:2px solid var(--ink);background:var(--paper);border-radius:0;width:100%;height:auto;display:block}.shot figcaption{color:var(--grey);margin-top:8px;font-size:14px;line-height:1.45}.prose .post-shot{max-width:280px;margin:28px auto 32px}.hero-grid{grid-template-columns:1fr 300px;align-items:start;gap:48px;display:grid}@media (width<=860px){.hero-grid{grid-template-columns:1fr;gap:32px}.hero-grid .shot{max-width:300px}}.feature{grid-template-columns:1fr 300px;align-items:start;gap:48px;display:grid}.feature.flip{grid-template-columns:300px 1fr}.feature.flip .shots{order:-1}.feature .shots{gap:16px;display:grid}.feature .shots.two{grid-template-columns:1fr 1fr;justify-self:end;width:min(100%,624px)}.feature:has(.shots.two){grid-template-columns:1fr minmax(0,624px)}.feature.flip:has(.shots.two){grid-template-columns:minmax(0,624px) 1fr}@media (width<=860px){.feature,.feature.flip,.feature:has(.shots.two),.feature.flip:has(.shots.two){grid-template-columns:1fr;gap:24px}.feature.flip .shots{order:0}.feature .shots,.feature .shots.two{justify-self:start;max-width:624px}.feature .shots:not(.two){max-width:300px}}.tag{font:700 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;border:2px solid var(--ink);vertical-align:middle;margin-left:8px;padding:4px 6px;display:inline-block}.chips{flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.chips li{border:2px solid var(--ink);font:700 14px/1.2 var(--sans);padding:8px 12px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.strip{justify-content:flex-end;padding-top:8px;display:flex}.lang{position:relative}.lang summary{cursor:pointer;min-height:44px;font:700 14px/1.2 var(--sans);align-items:center;gap:6px;list-style:none;display:inline-flex}.lang summary::-webkit-details-marker{display:none}.lang summary:hover{text-underline-offset:4px;text-decoration:underline 2px}.lang-menu{z-index:20;background:var(--paper);border:2px solid var(--ink);grid-template-columns:repeat(2,1fr);gap:16px 24px;width:min(92vw,520px);padding:16px 20px;display:grid;position:absolute;top:100%;right:0}.lang-menu ul{margin:4px 0 0;padding:0;list-style:none}.lang-menu a{border-bottom:1px solid var(--line);align-items:center;min-height:40px;font-size:16px;text-decoration:none;display:flex}.lang-menu a:hover,.lang-menu a[aria-current=true]{font-weight:700}.lang-menu a[aria-current=true]:before{content:"■";margin-right:8px;font-size:8px}@media (width<=520px){.lang-menu{grid-template-columns:1fr;right:-8px}}.note{color:var(--grey);margin:0 0 12px;font-size:14px}.lang-menu.simple{width:auto;min-width:180px;padding:8px 16px;display:block}.lang-menu.simple ul{margin:0}:root{--p-bw:#0a0a0a;--p-bw-text:#fff;--p-c41:#f2a65a;--p-e6:#7fb2f0;--p-ecn2:#e8877f;--p-other:#c9b6f0;--p-text:#0a0a0a}@media (prefers-color-scheme:dark){:root{--p-bw:#000;--p-c41:#c2541b;--p-e6:#1f5fc4;--p-ecn2:#b3261e;--p-other:#6e4fb8;--p-text:#fff}}.iso{border:2px solid var(--ink);min-width:64px;height:40px;font:400 22px/1 var(--display);letter-spacing:.02em;background:var(--p-other);color:var(--p-text);justify-content:center;align-items:center;padding:0 8px;display:inline-flex}.iso.bw{background:var(--p-bw);color:var(--p-bw-text)}.iso.c41{background:var(--p-c41)}.iso.e6{background:var(--p-e6)}.iso.ecn2{background:var(--p-ecn2)}.iso.bw_reversal{color:#0a0a0a;background:#fff}.film-row{border-bottom:1px solid var(--line);grid-template-columns:72px 1fr auto;align-items:center;gap:16px;min-height:64px;padding:12px 0;text-decoration:none;display:grid}.film-row:hover .title{text-decoration:underline 2px}.film-row .side{text-align:right}@media (width<=560px){.film-row{grid-template-columns:64px 1fr}.film-row .side{text-align:left;grid-column:2}}.maker-h{font:700 20px/1.2 var(--sans);border-top:2px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin:40px 0 4px;padding-top:12px;display:flex}.tablewrap{margin:8px 0 16px;overflow-x:auto}.tablewrap table{min-width:620px;margin:0}td.num{font-variant-numeric:tabular-nums;white-space:nowrap}.src-tag{font:700 11px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;border:2px solid var(--ink);margin-right:6px;padding:3px 5px;display:inline-block}.app-tag{margin-right:0;padding:5px 8px;font-size:12px}.src-tag.tested,.src-tag.forum{background:var(--ink);color:var(--on-ink)}details.dev>summary{cursor:pointer;font:700 20px/1.2 var(--sans);border-bottom:1px solid var(--line);min-height:44px;padding:14px 0}details.dev[open]>summary{border-bottom:2px solid var(--ink)}.notes-list{color:var(--grey);margin:0 0 16px;padding-left:20px;font-size:14px}.plans.two{grid-template-columns:repeat(3,1fr)}.plans .plan.best{border-width:2px}.coming{border:2px solid var(--ink);min-height:56px;font:700 16px/1.2 var(--sans);align-items:center;padding:0 20px;display:inline-flex}.key{border:2px solid var(--ink);margin:24px 0;padding:16px 20px}.key-list{grid-template-columns:repeat(2,1fr);gap:12px 24px;margin:12px 0 0;padding:0;list-style:none;display:grid}.key-list li{align-items:center;gap:12px;display:flex}.key-list .iso{min-width:72px;height:36px;font-size:16px;font-family:var(--sans);flex:none;font-weight:700}@media (width<=640px){.key-list{grid-template-columns:1fr}}.mail-actions{justify-items:start;gap:12px;display:grid}.mail-actions .btn{width:100%;max-width:360px}.mail-address{user-select:all;margin:4px 0 0}.lead-s{color:var(--grey);margin:0 0 12px;font-size:18px}tbody th[scope=row]{border-bottom:1px solid var(--line)}.page-title,.prose h1{font:400 clamp(48px, 8vw, 80px)/.95 var(--display);text-transform:uppercase;letter-spacing:.005em;overflow-wrap:anywhere;margin:24px 0 16px;padding-top:.08em}.page-title+.lead,.prose h1+p{margin-top:0}.dev-block{margin:24px 0 0}.dev-block .title{border-top:2px solid var(--ink);margin:0;padding-top:12px}.app-block{margin-top:32px}.app-block .coming{margin:0}tbody th.dev-name{font:700 16px/1.3 var(--sans);letter-spacing:0;text-transform:none;color:var(--ink)}.filters{margin:24px 0 8px}.filter-row{grid-template-columns:repeat(3,1fr);gap:0 24px;display:grid}@media (width<=760px){.filter-row{grid-template-columns:1fr}}.field input[type=search]{-webkit-appearance:none;appearance:none}.field select{background-image:linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%);background-position:calc(100% - 14px) 55%,calc(100% - 8px) 55%;background-repeat:no-repeat;background-size:6px 6px;padding-right:28px}.field select option{color:#0a0a0a;font-weight:400}.check{cursor:pointer;align-items:center;gap:12px;min-height:44px;margin-bottom:8px;font-weight:700;display:flex}.check input{width:22px;height:22px;accent-color:var(--ink)}.link-btn{min-height:44px;font:inherit;color:var(--ink);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline 2px}[hidden]{display:none!important}.taster{grid-template-columns:repeat(2,1fr);gap:0 32px;margin:0 0 24px;display:grid}@media (width<=760px){.taster{grid-template-columns:1fr}}.key-compact{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.key-compact .iso{min-width:56px;height:28px;font:700 12px/1 var(--sans);letter-spacing:0}.key-compact .caption{margin-left:4px}.protect,.protect *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.pv:before{content:attr(data-v)}.print-note{margin-top:16px;display:none}@media print{.protect{display:none}.print-note{display:block}}.home-sub{max-width:640px;color:var(--ink);margin:0 0 24px;font-size:20px}.steps{grid-template-columns:repeat(3,1fr);gap:32px;margin:0;padding:0;list-style:none;display:grid}.steps .step-n{margin:8px 0 4px}.steps .heading{margin:0 0 8px}@media (width<=860px){.steps{grid-template-columns:1fr;gap:24px}}.tools-title{margin:8px 0}.tool-group{margin-top:40px}.tool-group>.heading{margin:0 0 4px}.tools{grid-template-columns:repeat(3,1fr);gap:0 32px;display:grid}@media (width<=960px){.tools{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.tools{grid-template-columns:1fr}}.tool{border-top:2px solid var(--ink);padding:12px 0 20px}.tool .title{margin:0 0 6px}.tool p{color:var(--grey);margin:0}.chip-filter{flex-wrap:wrap;gap:8px;margin:0 0 16px;display:flex}.chip-btn{border:2px solid var(--ink);color:var(--ink);min-height:44px;font:700 14px/1.2 var(--sans);cursor:pointer;background:0 0;padding:8px 12px}.chip-btn[aria-pressed=true]{background:var(--ink);color:var(--paper,#fff)}.chip-n{font-weight:400}.post-groups{flex-wrap:wrap;gap:8px;margin:0 0 16px;display:flex}.post-groups a{border:2px solid var(--ink);min-height:44px;font:700 14px/1.2 var(--sans);color:var(--ink);align-items:center;padding:8px 12px;text-decoration:none;display:inline-flex}.post-groups a:hover,.post-groups a:focus-visible{background:var(--ink);color:var(--paper,#fff)}.form-actions{flex-wrap:wrap;gap:12px;display:flex}.form-actions .btn{width:auto;min-width:220px}
