:root{--paper:#f5f3ee;--paper-2:#ece9e1;--ink:#171614;--ink-2:#4a4741;--muted:#7a766d;--rule:#d8d3c8;--accent:#4d2ff5;--accent-ink:#fff;--serif:"Newsreader", ui-serif, Georgia, "Times New Roman", serif;--sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Consolas, monospace;--wrap:1180px;--gutter:clamp(16px, 4vw, 40px);color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#141312;--paper-2:#1d1c1a;--ink:#ece8df;--ink-2:#bdb8ad;--muted:#8d887e;--rule:#34322e;--accent:#8f7bff;--accent-ink:#141312;color-scheme:dark}}:root[data-theme=dark]{--paper:#141312;--paper-2:#1d1c1a;--ink:#ece8df;--ink-2:#bdb8ad;--muted:#8d887e;--rule:#34322e;--accent:#8f7bff;--accent-ink:#141312;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--accent)}code{font:.88em var(--mono);background:var(--paper-2);border-radius:3px;padding:.1em .35em}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}section[id]{scroll-margin-top:72px}.wrap{max-width:var(--wrap);padding:0 var(--gutter);margin:0 auto}.mono{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:12px}.masthead{z-index:10;background:color-mix(in srgb, var(--paper) 92%, transparent);-webkit-backdrop-filter:saturate(1.2)blur(8px);border-bottom:1px solid var(--rule);position:sticky;top:0}.masthead-row{align-items:center;gap:24px;height:60px;display:flex}.wordmark{white-space:nowrap;letter-spacing:-.01em;align-items:center;gap:10px;font-weight:600;text-decoration:none;display:flex}.wordmark img{border-radius:7px}.nav{gap:22px;margin-inline-start:auto;font-size:14px;display:flex}.nav a{color:var(--ink-2);white-space:nowrap;text-decoration:none}.nav a:hover{color:var(--ink)}.theme-switch{border:1px solid var(--rule);border-radius:999px;padding:2px;display:flex}.theme-switch button{white-space:nowrap;font:500 12px var(--sans);color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:4px 10px}.theme-switch button[aria-checked=true]{background:var(--ink);color:var(--paper)}.lang-menu{position:relative}.lang-menu summary{cursor:pointer;font:500 12px var(--sans);color:var(--ink-2);border:1px solid var(--rule);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;list-style:none;display:flex}.lang-menu summary::-webkit-details-marker{display:none}.lang-menu summary:hover{color:var(--ink)}.lang-menu ul{inset-inline-end:0;background:var(--paper);border:1px solid var(--rule);border-radius:8px;min-width:170px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 6px)}.lang-menu a{color:var(--ink-2);border-radius:5px;padding:6px 10px;font-size:14px;text-decoration:none;display:block}.lang-menu a:hover{background:var(--paper-2);color:var(--ink)}.lang-menu a[aria-current=page]{color:var(--ink);font-weight:600}h1,h2,h3{font-family:var(--serif);letter-spacing:-.015em;overflow-wrap:break-word;hyphens:auto;margin:0;font-weight:400}h1,h2{text-wrap:balance}html:lang(ja){--serif:"Newsreader", "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif}html:lang(zh-Hans){--serif:"Newsreader", "Songti SC", "Noto Serif SC", "SimSun", serif}html:lang(zh-Hant){--serif:"Newsreader", "Songti TC", "Noto Serif TC", "PMingLiU", serif}html:lang(ko){--serif:"Newsreader", "AppleMyungjo", "Noto Serif KR", "Batang", serif}html:lang(ar){--serif:"Newsreader", "Noto Naskh Arabic", "Geeza Pro", "Times New Roman", serif}html:is(:lang(ja),:lang(zh-Hans),:lang(zh-Hant),:lang(ko),:lang(ar)) :is(h1,h2,h3){letter-spacing:0;line-height:1.2}html:is(:lang(ja),:lang(zh-Hans),:lang(zh-Hant),:lang(ko),:lang(ar)) :is(h1,h2) em{font-style:normal}html:is(:lang(ja),:lang(zh-Hans),:lang(zh-Hant),:lang(ko)) h1{font-size:clamp(34px,10.5vw,112px)}h1{letter-spacing:-.03em;font-size:clamp(48px,8.6vw,112px);line-height:.98}h1 em,h2 em{color:var(--ink-2);font-style:italic}h2{font-size:clamp(32px,4.4vw,56px);line-height:1.05}h3{font-size:24px;line-height:1.2}.kicker{font:500 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 28px}.lede{color:var(--ink-2);max-width:36em;margin:0;font-size:20px;line-height:1.55}.fine{color:var(--muted);margin:0;font-size:13px}.note{color:var(--muted);font-size:15px}.button{border:1px solid var(--ink);height:44px;color:var(--ink);font:500 15px var(--sans);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:0 20px;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.button:hover,.button.primary{background:var(--ink);color:var(--paper)}.button.primary:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.button.small{height:30px;padding:0 12px;font-size:13px}.hero{padding-top:clamp(48px,9vw,120px)}.hero-foot{grid-template-columns:1.4fr 1fr;align-items:end;gap:48px;margin-top:40px;display:grid}.cta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.cta .fine{text-align:end;flex-basis:100%}.ph-badge{line-height:0;display:inline-flex}.ph-badge img{width:250px;height:54px}.ph-dark{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ph-light{display:none}:root:not([data-theme=light]) .ph-dark{display:block}}:root[data-theme=dark] .ph-light{display:none}:root[data-theme=dark] .ph-dark{display:block}.demo{margin:56px 0 0}.placeholder{aspect-ratio:var(--ratio,16 / 9);border:1px dashed var(--muted);background:repeating-linear-gradient(0deg, transparent 0 31px, color-mix(in srgb, var(--rule) 55%, transparent) 31px 32px), repeating-linear-gradient(90deg, transparent 0 31px, color-mix(in srgb, var(--rule) 55%, transparent) 31px 32px), var(--paper-2);border-radius:10px;flex-direction:column;justify-content:flex-end;width:100%;padding:clamp(14px,2.4vw,28px);display:flex;position:relative;overflow:hidden}.placeholder p{max-width:46em;color:var(--ink-2);margin:6px 0 0;font-size:14px;line-height:1.5}.ph-label{font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.dark-ph{--paper-2:#1d1c1a;--rule:#34322e;--ink-2:#bdb8ad}.demo.pair{grid-template-columns:1fr 1fr;gap:16px;display:grid}.demo.pair figure{margin:0}.demo.pair figcaption{font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:10px}[hidden]{display:none!important}.media{background:var(--paper-2);border-radius:10px;width:100%;height:auto;display:block}.shot{border:1px solid var(--rule)}video.media{aspect-ratio:16/9;object-fit:cover}.demo figcaption,.col-figure figcaption{color:var(--muted);margin-top:10px;font-size:12px}.ratio-frame video.fill{aspect-ratio:auto;object-fit:cover;width:100%;height:100%}.facts{margin-top:96px}.facts dl{border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);grid-template-columns:repeat(4,1fr);margin:0;display:grid}.facts dl>div{padding:22px 20px 24px 0}.facts dl>div+div{border-inline-start:1px solid var(--rule);padding-inline-start:20px}.facts dt{font:400 52px/1 var(--serif);letter-spacing:-.02em}.facts dd{color:var(--ink-2);margin:8px 0 0;font-size:14px}.chapter{padding-top:clamp(88px,12vw,152px)}.chapter-head{border-top:1px solid var(--ink);grid-template-columns:80px 1fr;gap:0 24px;margin-bottom:48px;padding-top:22px;display:grid}.chapter-head .num{font:500 13px var(--mono);color:var(--accent);padding-top:12px}.chapter-head h2{max-width:16em}.cols{grid-template-columns:5fr 7fr;align-items:start;gap:clamp(28px,5vw,72px);display:grid}.col-text>p:first-child{color:var(--ink-2);margin-top:0;font-size:18px}.col-figure{margin:0}.col-figure figcaption{color:var(--muted);margin-top:10px;font-size:12px}.ticks,.steps{margin:24px 0 0;padding:0;list-style:none}.ticks li,.steps li{border-top:1px solid var(--rule);padding:10px 0;font-size:15px}.ticks li:before{content:"+";font-family:var(--mono);color:var(--accent);margin-inline-end:12px}.steps{counter-reset:s}.cols>.steps{margin-top:0}.steps li{counter-increment:s}.steps li:before{content:counter(s, decimal-leading-zero);font:500 12px var(--mono);color:var(--accent);margin-inline-end:14px}.features{gap:clamp(56px,8vw,104px);display:grid}.feature{grid-template-columns:3fr 9fr;align-items:center;gap:clamp(24px,4vw,56px);display:grid}.feature:nth-child(2n){grid-template-columns:9fr 3fr}.feature:nth-child(2n) .feature-text{order:2}.feature h3{margin:0}.feature p{color:var(--ink-2);margin:10px 0 0;font-size:16px}.feature-media{margin:0}.segmented{border:1px solid var(--ink);border-radius:7px;margin-top:20px;padding:2px;display:inline-flex;position:relative}.segmented button{z-index:1;font:500 14px var(--sans);color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:5px;height:34px;padding:0 16px;transition:color .2s;position:relative}.segmented button[aria-checked=true]{background:var(--ink);color:var(--paper)}.ratio-stage{justify-content:center;align-items:center;height:clamp(320px,42vw,480px);display:flex}.ratio-frame{aspect-ratio:16/9;width:100%;transition:width .45s cubic-bezier(.2,.8,.2,1),height .45s cubic-bezier(.2,.8,.2,1)}.ratio-frame .placeholder{aspect-ratio:auto;height:100%}@media (prefers-reduced-motion:reduce){.ratio-frame{transition:none}}.native{margin-bottom:48px}.native-lede{max-width:40em;color:var(--ink-2);margin:0;font-size:20px;line-height:1.5}.grid-notes{border-top:1px solid var(--rule);grid-template-columns:repeat(3,1fr);gap:0;display:grid}.grid-notes>div{border-bottom:1px solid var(--rule);padding:24px 24px 28px 0}.grid-notes>div:not(:nth-child(3n+1)){border-inline-start:1px solid var(--rule);padding-inline-start:24px}.grid-notes h3{font-size:22px}.grid-notes p{color:var(--ink-2);margin:8px 0 0;font-size:15px}.langs{font-family:var(--serif);line-height:1.5;font-size:18px!important}.download{padding-top:clamp(96px,13vw,168px);padding-bottom:72px}.download h2{letter-spacing:-.03em;font-size:clamp(56px,9vw,120px);line-height:1}.download>.lede{margin:20px 0 48px}.dl-grid{border-top:1px solid var(--ink);grid-template-columns:1fr 1fr;margin-bottom:28px;display:grid}.dl{padding:28px 32px 32px 0}.dl+.dl{border-inline-start:1px solid var(--rule);padding-inline-start:32px}.dl-shot{margin-bottom:24px}.dl h3{align-items:center;gap:12px;font-size:32px;display:flex}.dl .fine{margin:6px 0 20px}.dl>p:last-child,.dl details{color:var(--ink-2);margin-top:16px;font-size:14px}.dl-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.dl-actions+p{color:var(--ink-2);margin-top:16px;font-size:14px}.store-badge{border-radius:6px;display:inline-flex}.store-badge img{width:auto;height:44px;display:block}.store-badge .badge-for-dark{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .store-badge .badge-for-light{display:none}:root:not([data-theme=light]) .store-badge .badge-for-dark{display:block}}:root[data-theme=dark] .store-badge .badge-for-light{display:none}:root[data-theme=dark] .store-badge .badge-for-dark{display:block}details summary{cursor:pointer;color:var(--ink)}details p{margin:10px 0 0}.footer{border-top:1px solid var(--rule);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:24px;padding-bottom:48px;font-size:13px;display:flex}.footer p{margin:0}.legal{max-width:46em;padding-top:clamp(48px,8vw,104px);padding-bottom:96px}.legal h1{font-size:clamp(44px,7vw,80px)}.legal .lede{margin:20px 0 8px}.legal h2{border-top:1px solid var(--ink);margin:56px 0 0;padding-top:18px;font-size:clamp(26px,3vw,34px)}.legal h3{margin:28px 0 0;font-size:20px}.legal p,.legal li{color:var(--ink-2)}.legal ul{padding-inline-start:1.2em}.legal li+li{margin-top:6px}.legal table{border-collapse:collapse;width:100%;margin:20px 0 0;font-size:15px}.legal th,.legal td{text-align:start;vertical-align:top;border-top:1px solid var(--rule);padding-block:10px;padding-inline:0 12px}.legal th{font:500 12px var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.legal td{color:var(--ink-2)}.legal td:first-child{color:var(--ink);width:30%}@media (width<=600px){.legal thead{display:none}.legal tr,.legal td{width:auto;display:block}.legal tr{border-top:1px solid var(--rule);padding:10px 0}.legal td{border:0;padding:2px 0}.legal td:first-child{width:auto;font-weight:500}}.back{color:var(--ink-2);white-space:nowrap;margin-inline-start:auto;font-size:14px;text-decoration:none}@media (width<=1180px){.nav{display:none}.theme-switch{margin-inline-start:auto}}@media (width<=900px){.hero-foot,.cols{grid-template-columns:1fr}.cta{justify-content:flex-start}.cta .fine{text-align:start}.feature,.feature:nth-child(2n){grid-template-columns:1fr}.feature:nth-child(2n) .feature-text{order:0}.grid-notes{grid-template-columns:1fr 1fr}.grid-notes>div{padding:22px 0 24px;padding-inline:0 20px;border-inline-start:0!important}.grid-notes>div:nth-child(2n){padding-inline-start:20px;border-inline-start:1px solid var(--rule)!important}.facts dl{grid-template-columns:1fr 1fr}.facts dl>div:nth-child(3){border-inline-start:0;padding-inline-start:0}.facts dl>div:nth-child(n+3){border-top:1px solid var(--rule)}}@media (width<=600px){body{font-size:16px}.masthead-row{gap:10px}.lang-name{display:none}}@media (width<=480px){.wordmark span{display:none}}@media (width<=600px){.chapter-head{grid-template-columns:1fr}.chapter-head .num{margin-bottom:8px;padding-top:0}.grid-notes,.dl-grid,.demo.pair{grid-template-columns:1fr}.grid-notes>div{border-inline-start:0!important;padding-inline-start:0!important}.dl+.dl{border-inline-start:0;border-top:1px solid var(--rule);padding-inline-start:0}.ratio-stage{height:360px}.facts dt{font-size:40px}}
